@zonease/aiworker-cli 0.4.3 → 0.4.4
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 +175 -175
- package/package.json +1 -1
- package/web/fleet/assets/index-Czxa0E7b.css +2 -0
- package/web/fleet/index.html +2 -2
- package/web/worker/assets/index-Czxa0E7b.css +2 -0
- package/web/worker/index.html +2 -2
- package/web/fleet/assets/index-BPew1ixe.css +0 -2
- package/web/worker/assets/index-BPew1ixe.css +0 -2
- /package/web/fleet/assets/{index-eX1qtjIG.js → index-BkCxuWAF.js} +0 -0
- /package/web/worker/assets/{index-UA_D2MZv.js → index-CsmNHJI_.js} +0 -0
package/aiworker.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
|
-
var
|
|
3
|
+
var fZ=Object.create;var{getPrototypeOf:kZ,defineProperty:R$,getOwnPropertyNames:vZ}=Object;var hZ=Object.prototype.hasOwnProperty;function xZ(D){return this[D]}var gZ,yZ,uZ=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?gZ??=new WeakMap:yZ??=new WeakMap,Y=J.get(D);if(Y)return Y}F=D!=null?fZ(kZ(D)):{};let G=$||!D||!D.__esModule?R$(F,"default",{value:D,enumerable:!0}):F;for(let B of vZ(D))if(!hZ.call(G,B))R$(G,B,{get:xZ.bind(D,B),enumerable:!0});if(X)J.set(D,G);return G};var f=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var mZ=(D)=>D;function pZ(D,$){this[D]=mZ.bind(null,$)}var y8=(D,$)=>{for(var F in $)R$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:pZ.bind($,F)})};var Z=(D,$)=>()=>(D&&($=D(D=0)),$);var X8=import.meta.require;import{statSync as cZ}from"fs";import{access as dZ,mkdir as lZ,stat as nl,writeFile as iZ}from"fs/promises";import{homedir as WB}from"os";import BD from"path";import VB from"process";function BB(D){return D.startsWith("~")?BD.join(WB(),D.slice(1)):D}function HB(D){try{return cZ(D).isDirectory()}catch{return!1}}function M$(D){let $=BD.resolve(D??VB.cwd());if(!$)return null;while(!0){let F=BD.join($,S1);if(HB(F))return $;let X=BD.join($,".git");if(HB(X))return null;let J=BD.dirname($);if(J===$)return null;$=J}}function t0(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:BD.resolve(BB(D.explicitHome)),source:"cli-flag"};let $=VB.env[nZ];if($&&$.length>0)return{scope:"explicit",home:BD.resolve(BB($)),source:"env"};if(!D.disableProjectDetect){let F=M$(D.cwd);if(F)return{scope:"project",home:BD.join(F,S1,C$),projectRoot:F,source:"project-detect"}}return{scope:"user",home:BD.resolve(WB(),S1),source:"user-default"}}function y2(){return t0().home}function e0(D){let $=t0();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,S1);return BD.join($.home,"workers",D)}function b1(D){let $=t0();if($.scope==="project"&&$.projectRoot)return BD.join($.projectRoot,S1);return BD.join(e0(D),"brain")}function sZ(D){return BD.join(b1(D),"skills")}function rZ(D){return BD.join(b1(D),"memories")}function Z$(D){return BD.join(b1(D),"MEMORY.md")}function r9(D){let $=t0();if($.scope==="project"&&$.projectRoot)return BD.join($.home,"workspaces");return BD.join(e0(D),"workspaces")}function _B(D){return BD.join(e0(D),"config.yaml")}function q$(D){return BD.join(e0(D),"AGENT.md")}function N$(D){return BD.join(e0(D),"SOUL.md")}function P$(D){return BD.join(e0(D),"USER.md")}function UB(D){return BD.join(e0(D),"ROLLUP.md")}function QB(D){return BD.join(e0(D),"mcp.json")}async function f0(D,$){await lZ(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function b0(D,$){try{await dZ(D)}catch{await iZ(D,$,{encoding:"utf8"})}}async function L$(D){let $=t0();if($.scope==="project"){await f0($.home,448),await f0(r9(D));return}let F=e0(D);await f0(F),await f0(b1(D)),await f0(sZ(D)),await f0(rZ(D)),await f0(r9(D)),await b0(q$(D),`# Agent ${D}
|
|
4
4
|
|
|
5
5
|
> Draft persona document. Describe the role, responsibilities, and tone that this agent should adopt. The orchestrator may inject this file into the system prompt.
|
|
6
|
-
`),await b0(
|
|
6
|
+
`),await b0(N$(D),`# Voice of ${D}
|
|
7
7
|
|
|
8
8
|
> Draft voice / style guide. Influences how the agent phrases responses across channels.
|
|
9
9
|
`),await b0(P$(D),`# User profile (maintained by ${D})
|
|
10
10
|
|
|
11
11
|
> The agent writes learned facts about the primary user here over time. Edit by hand to bootstrap.
|
|
12
|
-
`),await b0(
|
|
12
|
+
`),await b0(Z$(D),`# Memory index
|
|
13
13
|
|
|
14
14
|
> One line per memory: \`- [Title](filename.md) \u2014 short description.\`
|
|
15
|
-
`)}async function
|
|
15
|
+
`)}async function j$(D){let $=BD.resolve(D),F=BD.join($,S1),X=BD.join(F,C$);await f0(F),await f0(BD.join(F,"skills")),await f0(BD.join(F,"memories")),await f0(X,448),await f0(BD.join(X,"workspaces")),await b0(BD.join(F,"AGENT.md"),`# Agent
|
|
16
16
|
|
|
17
17
|
> Persona / role document for the agent that lives in this project. The orchestrator injects this file into the system prompt.
|
|
18
18
|
`),await b0(BD.join(F,"SOUL.md"),`# Voice & style
|
|
@@ -28,161 +28,161 @@ var SZ=Object.create;var{getPrototypeOf:bZ,defineProperty:C$,getOwnPropertyNames
|
|
|
28
28
|
|
|
29
29
|
> Auto-distilled by the evolution cron job. Recent decisions / todos / context that survive session compaction.
|
|
30
30
|
`),await b0(BD.join(F,"mcp.json"),`${JSON.stringify({servers:{}},null,2)}
|
|
31
|
-
`),await b0(BD.join(F,".gitignore"),`${
|
|
31
|
+
`),await b0(BD.join(F,".gitignore"),`${C$}/
|
|
32
32
|
`),await b0(BD.join(X,".gitignore"),`*
|
|
33
33
|
!.gitignore
|
|
34
|
-
`)}var
|
|
34
|
+
`)}var nZ="AIWORKER_HOME",S1=".aiworker",C$="local";var P2=()=>{};function w$(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 k$(D,$,F=".",X){if(!w$($))return k$(D,{},F,X);let J=Object.assign({},$);for(let Y in D){if(Y==="__proto__"||Y==="constructor")continue;let G=D[Y];if(G===null||G===void 0)continue;if(X&&X(J,Y,G,F))continue;if(Array.isArray(G)&&Array.isArray(J[Y]))J[Y]=[...G,...J[Y]];else if(w$(G)&&w$(J[Y]))J[Y]=k$(G,J[Y],(F?`${F}.`:"")+Y.toString(),X);else J[Y]=G}return J}function Cq(D){return(...$)=>$.reduce((F,X)=>k$(F,X,"",D),{})}function Zq(D){return Object.prototype.toString.call(D)==="[object Object]"}function qq(D){if(!Zq(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||f$;this.options=Mq({...D,defaults:{...D.defaults},level:b$(D.level,$),reporters:[...D.reporters||[]]},{types:f$,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=b$(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(){S$=!0}resumeLogs(){S$=!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(S$){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:b$(D.level,this.options.types)};if(!F&&$.length===1&&qq($[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(`
|
|
35
35
|
`);X.args.push(`
|
|
36
36
|
`+X.additional.join(`
|
|
37
|
-
`)),delete X.additional}X.type=typeof X.type==="string"?X.type.toLowerCase():"log",X.tag=typeof X.tag==="string"?X.tag:"";let J=(G=!1)=>{let B=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&B>0){let H=[...this._lastLog.object.args];if(B>1)H.push(`(repeated ${B} times)`);this._log({...this._lastLog.object,args:H}),this._lastLog.count=1}if(G)this._lastLog.object=X,this._log(X)};clearTimeout(this._lastLog.timeout);let Y=this._lastLog.time&&X.date?X.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=X.date,Y<this.options.throttle)try{let G=JSON.stringify([X.type,X.tag,X.args]),B=this._lastLog.serialized===G;if(this._lastLog.serialized=G,B){if(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin){this._lastLog.timeout=setTimeout(J,this.options.throttle);return}}}catch{}J(!0)}_log(D){for(let $ of this.options.reporters)$.log(D,{options:this.options})}}function
|
|
37
|
+
`)),delete X.additional}X.type=typeof X.type==="string"?X.type.toLowerCase():"log",X.tag=typeof X.tag==="string"?X.tag:"";let J=(G=!1)=>{let B=(this._lastLog.count||0)-this.options.throttleMin;if(this._lastLog.object&&B>0){let H=[...this._lastLog.object.args];if(B>1)H.push(`(repeated ${B} times)`);this._log({...this._lastLog.object,args:H}),this._lastLog.count=1}if(G)this._lastLog.object=X,this._log(X)};clearTimeout(this._lastLog.timeout);let Y=this._lastLog.time&&X.date?X.date.getTime()-this._lastLog.time.getTime():0;if(this._lastLog.time=X.date,Y<this.options.throttle)try{let G=JSON.stringify([X.type,X.tag,X.args]),B=this._lastLog.serialized===G;if(this._lastLog.serialized=G,B){if(this._lastLog.count=(this._lastLog.count||0)+1,this._lastLog.count>this.options.throttleMin){this._lastLog.timeout=setTimeout(J,this.options.throttle);return}}}catch{}J(!0)}_log(D){for(let $ of this.options.reporters)$.log(D,{options:this.options})}}function b$(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,f$,Mq,S$=!1,PB;var v$=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},f$={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}};Mq=Cq();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 Nq}from"path";function x$(D,$){let F=process.cwd()+Nq;return D.split(`
|
|
38
38
|
`).splice($.split(`
|
|
39
|
-
`).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function
|
|
40
|
-
${X}`)}formatError(D,$){let F=D.message??
|
|
39
|
+
`).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function Pq(D,$){return($.__write||$.write).call($,D)}class t9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+x$(D,$).join(`
|
|
40
|
+
${X}`)}formatError(D,$){let F=D.message??jB($,D),X=D.stack?this.formatStack(D.stack,F,$):"",J=$?.errorLevel||0,Y=J>0?`${" ".repeat(J)}[cause]: `:"",G=D.cause?`
|
|
41
41
|
|
|
42
42
|
`+this.formatError(D.cause,{...$,errorLevel:J+1}):"";return Y+F+`
|
|
43
|
-
`+X+G}formatArgs(D,$){let F=D.map((X)=>{if(X&&typeof X.stack==="string")return this.formatError(X,$);return X});return
|
|
44
|
-
`+[
|
|
43
|
+
`+X+G}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`
|
|
44
|
+
`+[h$(D.tag),D.title&&D.title,...F.split(`
|
|
45
45
|
`)].filter(Boolean).map((X)=>" > "+X).join(`
|
|
46
46
|
`)+`
|
|
47
|
-
`;return this.filterAndJoin([
|
|
48
|
-
`,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var
|
|
49
|
-
`),J=[],Y=
|
|
50
|
-
`)}var
|
|
47
|
+
`;return this.filterAndJoin([h$(D.type),h$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return Pq(F+`
|
|
48
|
+
`,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var h$=(D)=>D?`[${D}]`:"";var zB=()=>{};import*as e9 from"tty";function bB(D,$,F,X,J=$.slice(0,Math.max(0,D))+X,Y=$.slice(Math.max(0,D+F.length)),G=Y.indexOf(F)){return J+(G<0?Y:bB(G,Y,F,X))}function bq(D,$,F,X,J){return D<0?F+$+X:F+bB(D,$,X,J)+X}function fq(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?bq((""+J).indexOf($,X),J,D,$,F):""}function XD(D,$,F){return fq(`\x1B[${D}m`,`\x1B[${$}m`,F)}function kq(D=Sq){return D?IB:Object.fromEntries(Object.keys(IB).map(($)=>[$,String]))}function vq(D,$="reset"){return E0[D]||E0[$]}function J8(D){return D.replace(new RegExp(hq,"g"),"")}function fB(D,$={}){let F={...$,style:{...xq,...$.style}},X=D.split(`
|
|
49
|
+
`),J=[],Y=vq(F.style.borderColor),G={...typeof F.style.borderStyle==="string"?TB[F.style.borderStyle]||TB.solid:F.style.borderStyle};if(Y)for(let A in G)G[A]=Y(G[A]);let B=F.style.padding%2===0?F.style.padding:F.style.padding+1,H=X.length+B,W=Math.max(...X.map((A)=>J8(A).length),F.title?J8(F.title).length:0)+B,_=W+B,U=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let A=Y?Y(F.title):F.title,O=G.h.repeat(Math.floor((W-J8(F.title).length)/2)),E=G.h.repeat(W-J8(F.title).length-J8(O).length+B);J.push(`${U}${G.tl}${O}${A}${E}${G.tr}`)}else J.push(`${U}${G.tl}${G.h.repeat(_)}${G.tr}`);let Q=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<Q||A>=Q+X.length)J.push(`${U}${G.v}${" ".repeat(_)}${G.v}`);else{let O=X[A-Q],E=" ".repeat(B),K=" ".repeat(W-J8(O).length);J.push(`${U}${G.v}${E}${O}${K}${G.v}`)}if(J.push(`${U}${G.bl}${G.h.repeat(_)}${G.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
|
|
50
|
+
`)}var G8,wB,Lq,jq,zq,Iq,SB,Tq,wq,Sq,IB,E0,hq,TB,xq;var kB=Z(()=>{({env:G8={},argv:wB=[],platform:Lq=""}=typeof process>"u"?{}:process),jq="NO_COLOR"in G8||wB.includes("--no-color"),zq="FORCE_COLOR"in G8||wB.includes("--color"),Iq=Lq==="win32",SB=G8.TERM==="dumb",Tq=e9&&e9.isatty&&e9.isatty(1)&&G8.TERM&&!SB,wq="CI"in G8&&(("GITHUB_ACTIONS"in G8)||("GITLAB_CI"in G8)||("CIRCLECI"in G8)),Sq=!jq&&(zq||Iq&&!SB||Tq||wq);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)};E0=kq();hq=[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"}},xq={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var GH={};y8(GH,{prompt:()=>JH,kCancel:()=>XH});import $2,{stdin as gq,stdout as yq}from"process";import vB from"readline";import{WriteStream as uq}from"tty";function mq(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function pq(){if(hB)return g$;hB=1;let D="\x1B",$=`${D}[`,F="\x07",X={to(G,B){if(!B)return`${$}${G+1}G`;return`${$}${B+1};${G+1}H`},move(G,B){let H="";if(G<0)H+=`${$}${-G}D`;else if(G>0)H+=`${$}${G}C`;if(B<0)H+=`${$}${-B}A`;else if(B>0)H+=`${$}${B}B`;return H},up:(G=1)=>`${$}${G}A`,down:(G=1)=>`${$}${G}B`,forward:(G=1)=>`${$}${G}C`,backward:(G=1)=>`${$}${G}D`,nextLine:(G=1)=>`${$}E`.repeat(G),prevLine:(G=1)=>`${$}F`.repeat(G),left:`${$}G`,hide:`${$}?25l`,show:`${$}?25h`,save:`${D}7`,restore:`${D}8`},J={up:(G=1)=>`${$}S`.repeat(G),down:(G=1)=>`${$}T`.repeat(G)},Y={screen:`${$}2J`,up:(G=1)=>`${$}1J`.repeat(G),down:(G=1)=>`${$}J`.repeat(G),line:`${$}2K`,lineEnd:`${$}K`,lineStart:`${$}1K`,lines(G){let B="";for(let H=0;H<G;H++)B+=this.line+(H<G-1?X.up():"");if(G)B+=X.left;return B}};return g$={cursor:X,scroll:J,erase:Y,beep:F},g$}function cq(){if(xB)return D7.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)=>(_)=>{let U=""+_,Q=U.indexOf(H,B.length);return~Q?B+Y(U,H,W,Q)+H:B+U+H},Y=(B,H,W,_)=>{let U="",Q=0;do U+=B.substring(Q,_)+W,Q=_+H.length,_=B.indexOf(H,Q);while(~_);return U+B.substring(Q)},G=(B=X)=>{let H=B?J:()=>String;return{isColorSupported:B,reset:H("\x1B[0m","\x1B[0m"),bold:H("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:H("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:H("\x1B[3m","\x1B[23m"),underline:H("\x1B[4m","\x1B[24m"),inverse:H("\x1B[7m","\x1B[27m"),hidden:H("\x1B[8m","\x1B[28m"),strikethrough:H("\x1B[9m","\x1B[29m"),black:H("\x1B[30m","\x1B[39m"),red:H("\x1B[31m","\x1B[39m"),green:H("\x1B[32m","\x1B[39m"),yellow:H("\x1B[33m","\x1B[39m"),blue:H("\x1B[34m","\x1B[39m"),magenta:H("\x1B[35m","\x1B[39m"),cyan:H("\x1B[36m","\x1B[39m"),white:H("\x1B[37m","\x1B[39m"),gray:H("\x1B[90m","\x1B[39m"),bgBlack:H("\x1B[40m","\x1B[49m"),bgRed:H("\x1B[41m","\x1B[49m"),bgGreen:H("\x1B[42m","\x1B[49m"),bgYellow:H("\x1B[43m","\x1B[49m"),bgBlue:H("\x1B[44m","\x1B[49m"),bgMagenta:H("\x1B[45m","\x1B[49m"),bgCyan:H("\x1B[46m","\x1B[49m"),bgWhite:H("\x1B[47m","\x1B[49m"),blackBright:H("\x1B[90m","\x1B[39m"),redBright:H("\x1B[91m","\x1B[39m"),greenBright:H("\x1B[92m","\x1B[39m"),yellowBright:H("\x1B[93m","\x1B[39m"),blueBright:H("\x1B[94m","\x1B[39m"),magentaBright:H("\x1B[95m","\x1B[39m"),cyanBright:H("\x1B[96m","\x1B[39m"),whiteBright:H("\x1B[97m","\x1B[39m"),bgBlackBright:H("\x1B[100m","\x1B[49m"),bgRedBright:H("\x1B[101m","\x1B[49m"),bgGreenBright:H("\x1B[102m","\x1B[49m"),bgYellowBright:H("\x1B[103m","\x1B[49m"),bgBlueBright:H("\x1B[104m","\x1B[49m"),bgMagentaBright:H("\x1B[105m","\x1B[49m"),bgCyanBright:H("\x1B[106m","\x1B[49m"),bgWhiteBright:H("\x1B[107m","\x1B[49m")}};return D7.exports=G(),D7.exports.createColors=G,D7.exports}function lq({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(iq,"")}function rB(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function e6(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=sB(D),D.length===0))return 0;D=D.replace(aq()," ");let F=$.ambiguousIsNarrow?1:2,X=0;for(let J of D){let Y=J.codePointAt(0);if(Y<=31||Y>=127&&Y<=159||Y>=768&&Y<=879)continue;switch(sq.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function eq(){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(y$),LD.bgColor.ansi256=yB(y$),LD.bgColor.ansi16m=uB(y$),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((Y)=>Y+Y).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 Y=Math.max(F,X,J)*2;if(Y===0)return 30;let G=30+(Math.round(J)<<2|Math.round(X)<<1|Math.round(F));return Y===2&&(G+=60),G},enumerable:!1},rgbToAnsi:{value:($,F,X)=>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,`
|
|
51
51
|
`).split(`
|
|
52
|
-
`).map((X)=>
|
|
53
|
-
`)}function
|
|
52
|
+
`).map((X)=>GN(X,$,F)).join(`
|
|
53
|
+
`)}function eB(D,$){if(typeof D=="string")return F7.aliases.get(D)===$;for(let F of D)if(F!==void 0&&eB(F,$))return!0;return!1}function BN(D,$){if(D===$)return;let F=D.split(`
|
|
54
54
|
`),X=$.split(`
|
|
55
|
-
`),J=[];for(let Y=0;Y<Math.max(F.length,X.length);Y++)F[Y]!==X[Y]&&J.push(Y);return J}function
|
|
56
|
-
`)
|
|
57
|
-
`).length-1;this.output.write(F2.cursor.move(-999,D*-1))}render(){let D=
|
|
55
|
+
`),J=[];for(let Y=0;Y<Math.max(F.length,X.length);Y++)F[Y]!==X[Y]&&J.push(Y);return J}function $7(D,$){let F=D;F.isTTY&&F.setRawMode($)}class D3{constructor(D,$=!0){L0(this,"input"),L0(this,"output"),L0(this,"_abortSignal"),L0(this,"rl"),L0(this,"opts"),L0(this,"_render"),L0(this,"_track",!1),L0(this,"_prevFrame",""),L0(this,"_subscribers",new Map),L0(this,"_cursor",0),L0(this,"state","initial"),L0(this,"error",""),L0(this,"value");let{input:F=gq,output:X=yq,render:J,signal:Y,...G}=D;this.opts=G,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=J.bind(this),this._track=$,this._abortSignal=Y,this.input=F,this.output=X}unsubscribe(){this._subscribers.clear()}setSubscriber(D,$){let F=this._subscribers.get(D)??[];F.push($),this._subscribers.set(D,F)}on(D,$){this.setSubscriber(D,{cb:$})}once(D,$){this.setSubscriber(D,{cb:$,once:!0})}emit(D,...$){let F=this._subscribers.get(D)??[],X=[];for(let J of F)J.cb(...$),J.once&&X.push(()=>F.splice(F.indexOf(J),1));for(let J of X)J()}prompt(){return new Promise((D,$)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),D(dB);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new uq(0);F._write=(X,J,Y)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),Y()},this.input.pipe(F),this.rl=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),$7(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(F2.cursor.show),this.output.off("resize",this.render),$7(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(F2.cursor.show),this.output.off("resize",this.render),$7(this.input,!1),D(dB)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&F7.aliases.has($.name)&&this.emit("cursor",F7.aliases.get($.name)),F7.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(`
|
|
56
|
+
`),$7(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(`
|
|
57
|
+
`).length-1;this.output.write(F2.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(F2.cursor.hide);else{let $=BN(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(F2.cursor.move(0,F)),this.output.write(F2.erase.lines(1));let X=D.split(`
|
|
58
58
|
`);this.output.write(X[F]),this._prevFrame=D,this.output.write(F2.cursor.move(0,X.length-F-1));return}if($&&$?.length>1){let F=$[0];this.output.write(F2.cursor.move(0,F)),this.output.write(F2.erase.down());let X=D.split(`
|
|
59
59
|
`).slice(F);this.output.write(X.join(`
|
|
60
|
-
`)),this._prevFrame=D;return}this.output.write(F2.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function QP(){return $2.platform!=="win32"?$2.env.TERM!=="linux":!!$2.env.CI||!!$2.env.WT_SESSION||!!$2.env.TERMINUS_SUBLIME||$2.env.ConEmuTask==="{cmd::Cmder}"||$2.env.TERM_PROGRAM==="Terminus-Sublime"||$2.env.TERM_PROGRAM==="vscode"||$2.env.TERM==="xterm-256color"||$2.env.TERM==="alacritty"||$2.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function XH(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,XH);throw J}case"undefined":return;case"null":return null;case"symbol":return FH;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await ZP({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await qP({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await PP({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await NP({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 x$,vB,F2,e9,hB,pq,k,dq,rB,lq,iq,nq=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},sq,g$=10,xB=(D=0)=>($)=>`\x1B[${$+D}m`,gB=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,yB=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,LD,rq,aq,tq,F7,eq=39,c$="\x07",aB="[",DP="]",oB="m",d$,uB=(D)=>`${F7.values().next().value}${aB}${D}${oB}`,mB=(D)=>`${F7.values().next().value}${d$}${D}${c$}`,$P=(D)=>D.split(" ").map(($)=>e6($)),y$=(D,$,F)=>{let X=[...$],J=!1,Y=!1,G=e6(nB(D[D.length-1]));for(let[B,H]of X.entries()){let W=e6(H);if(G+W<=F?D[D.length-1]+=H:(D.push(H),G=0),F7.has(H)&&(J=!0,Y=X.slice(B+1).join("").startsWith(d$)),J){Y?H===c$&&(J=!1,Y=!1):H===oB&&(J=!1);continue}G+=W,G===F&&B<X.length-1&&(D.push(""),G=0)}!G&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},FP=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(e6($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},XP=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,Y,G=$P(D),B=[""];for(let[W,_]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let U=e6(B[B.length-1]);if(W!==0&&(U>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),U=0),(U>0||F.trim===!1)&&(B[B.length-1]+=" ",U++)),F.hard&&G[W]>$){let Q=$-U,A=1+Math.floor((G[W]-Q-1)/$);Math.floor((G[W]-1)/$)<A&&B.push(""),y$(B,_,$);continue}if(U+G[W]>$&&U>0&&G[W]>0){if(F.wordWrap===!1&&U<$){y$(B,_,$);continue}B.push("")}if(U+G[W]>$&&F.wordWrap===!1){y$(B,_,$);continue}B[B.length-1]+=_}F.trim!==!1&&(B=B.map((W)=>FP(W)));let H=[...B.join(`
|
|
61
|
-
`)];for(let[W,_]of H.entries()){if(X+=_,
|
|
62
|
-
`?(Y&&(X+=
|
|
63
|
-
`&&(J&&U&&(X+=
|
|
64
|
-
${
|
|
60
|
+
`)),this._prevFrame=D;return}this.output.write(F2.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function KN(){return $2.platform!=="win32"?$2.env.TERM!=="linux":!!$2.env.CI||!!$2.env.WT_SESSION||!!$2.env.TERMINUS_SUBLIME||$2.env.ConEmuTask==="{cmd::Cmder}"||$2.env.TERM_PROGRAM==="Terminus-Sublime"||$2.env.TERM_PROGRAM==="vscode"||$2.env.TERM==="xterm-256color"||$2.env.TERM==="alacritty"||$2.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 NN({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await PN({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await LN({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await jN({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 g$,hB,F2,D7,xB,dq,k,iq,aB,nq,sq,rq=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},aq,y$=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,oq,tq,DN,X7,$N=39,d$="\x07",oB="[",FN="]",tB="m",l$,mB=(D)=>`${X7.values().next().value}${oB}${D}${tB}`,pB=(D)=>`${X7.values().next().value}${l$}${D}${d$}`,XN=(D)=>D.split(" ").map(($)=>e6($)),u$=(D,$,F)=>{let X=[...$],J=!1,Y=!1,G=e6(sB(D[D.length-1]));for(let[B,H]of X.entries()){let W=e6(H);if(G+W<=F?D[D.length-1]+=H:(D.push(H),G=0),X7.has(H)&&(J=!0,Y=X.slice(B+1).join("").startsWith(l$)),J){Y?H===d$&&(J=!1,Y=!1):H===tB&&(J=!1);continue}G+=W,G===F&&B<X.length-1&&(D.push(""),G=0)}!G&&D[D.length-1].length>0&&D.length>1&&(D[D.length-2]+=D.pop())},JN=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(e6($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},GN=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,Y,G=XN(D),B=[""];for(let[W,_]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let U=e6(B[B.length-1]);if(W!==0&&(U>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),U=0),(U>0||F.trim===!1)&&(B[B.length-1]+=" ",U++)),F.hard&&G[W]>$){let Q=$-U,A=1+Math.floor((G[W]-Q-1)/$);Math.floor((G[W]-1)/$)<A&&B.push(""),u$(B,_,$);continue}if(U+G[W]>$&&U>0&&G[W]>0){if(F.wordWrap===!1&&U<$){u$(B,_,$);continue}B.push("")}if(U+G[W]>$&&F.wordWrap===!1){u$(B,_,$);continue}B[B.length-1]+=_}F.trim!==!1&&(B=B.map((W)=>JN(W)));let H=[...B.join(`
|
|
61
|
+
`)];for(let[W,_]of H.entries()){if(X+=_,X7.has(_)){let{groups:Q}=new RegExp(`(?:\\${oB}(?<code>\\d+)m|\\${l$}(?<uri>.*)${d$})`).exec(H.slice(W).join(""))||{groups:{}};if(Q.code!==void 0){let A=Number.parseFloat(Q.code);J=A===$N?void 0:A}else Q.uri!==void 0&&(Y=Q.uri.length===0?void 0:Q.uri)}let U=DN.codes.get(Number(J));H[W+1]===`
|
|
62
|
+
`?(Y&&(X+=pB("")),J&&U&&(X+=mB(U))):_===`
|
|
63
|
+
`&&(J&&U&&(X+=mB(J)),Y&&(X+=pB(Y)))}return X},YN,F7,dB,HN,WN=(D,$,F)=>($ in D)?HN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,L0=(D,$,F)=>(WN(D,typeof $!="symbol"?$+"":$,F),F),DH,VN,_N=(D,$,F)=>($ in D)?VN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,lB=(D,$,F)=>(_N(D,typeof $!="symbol"?$+"":$,F),F),UN,QN,AN=(D,$,F)=>($ in D)?QN(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,iB=(D,$,F)=>(AN(D,typeof $!="symbol"?$+"":$,F),F),$H,FH,EN,X2=(D,$)=>EN?D:$,ON,RN,CN,MN,ZD,f1,m$,p$,ZN,nB,qN,J7=(D)=>{switch(D){case"initial":case"active":return k.cyan(ON);case"cancel":return k.red(RN);case"error":return k.yellow(CN);case"submit":return k.green(MN)}},c$=(D)=>{let{cursor:$,options:F,style:X}=D,J=D.maxItems??Number.POSITIVE_INFINITY,Y=Math.max(process.stdout.rows-4,0),G=Math.min(Y,Math.max(J,5)),B=0;$>=B+G-3?B=Math.max(Math.min($-G+3,F.length-G),0):$<B+2&&(B=Math.max($-2,0));let H=G<F.length&&B>0,W=G<F.length&&B+G<F.length;return F.slice(B,B+G).map((_,U,Q)=>{let A=U===0&&H,O=U===Q.length-1&&W;return A||O?k.dim("..."):X(_,U+B===$)})},NN=(D)=>new FH({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${k.gray(ZD)}
|
|
64
|
+
${J7(this.state)} ${D.message}
|
|
65
65
|
`,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()}
|
|
66
66
|
${k.yellow(ZD)} ${X}
|
|
67
67
|
${k.yellow(f1)} ${k.yellow(this.error)}
|
|
68
68
|
`;case"submit":return`${$}${k.gray(ZD)} ${k.dim(this.value||D.placeholder)}`;case"cancel":return`${$}${k.gray(ZD)} ${k.strikethrough(k.dim(this.value??""))}${this.value?.trim()?`
|
|
69
69
|
${k.gray(ZD)}`:""}`;default:return`${$}${k.cyan(ZD)} ${X}
|
|
70
70
|
${k.cyan(f1)}
|
|
71
|
-
`}}}).prompt(),
|
|
72
|
-
${
|
|
71
|
+
`}}}).prompt(),PN=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new DH({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${k.gray(ZD)}
|
|
72
|
+
${J7(this.state)} ${D.message}
|
|
73
73
|
`,J=this.value?$:F;switch(this.state){case"submit":return`${X}${k.gray(ZD)} ${k.dim(J)}`;case"cancel":return`${X}${k.gray(ZD)} ${k.strikethrough(k.dim(J))}
|
|
74
|
-
${k.gray(ZD)}`;default:return`${X}${k.cyan(ZD)} ${this.value?`${k.green(
|
|
74
|
+
${k.gray(ZD)}`;default:return`${X}${k.cyan(ZD)} ${this.value?`${k.green(m$)} ${$}`:`${k.dim(p$)} ${k.dim($)}`} ${k.dim("/")} ${this.value?`${k.dim(p$)} ${k.dim(F)}`:`${k.green(m$)} ${F}`}
|
|
75
75
|
${k.cyan(f1)}
|
|
76
|
-
`}}}).prompt()},
|
|
77
|
-
${
|
|
76
|
+
`}}}).prompt()},LN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${k.dim(J)}`;case"active":return`${k.green(m$)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`;case"cancelled":return`${k.strikethrough(k.dim(J))}`;default:return`${k.dim(p$)} ${k.dim(J)}`}};return new $H({options:D.options,initialValue:D.initialValue,render(){let F=`${k.gray(ZD)}
|
|
77
|
+
${J7(this.state)} ${D.message}
|
|
78
78
|
`;switch(this.state){case"submit":return`${F}${k.gray(ZD)} ${$(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${k.gray(ZD)} ${$(this.options[this.cursor],"cancelled")}
|
|
79
|
-
${k.gray(ZD)}`;default:return`${F}${k.cyan(ZD)} ${
|
|
79
|
+
${k.gray(ZD)}`;default:return`${F}${k.cyan(ZD)} ${c$({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(X,J)=>$(X,J?"active":"inactive")}).join(`
|
|
80
80
|
${k.cyan(ZD)} `)}
|
|
81
81
|
${k.cyan(f1)}
|
|
82
|
-
`}}}).prompt()},
|
|
82
|
+
`}}}).prompt()},jN=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${k.cyan(ZN)} ${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(qN)} ${k.dim(J)}`};return new UN({options:D.options,initialValues:D.initialValues,required:D.required??!0,cursorAt:D.cursorAt,validate(F){if(this.required&&F.length===0)return`Please select at least one option.
|
|
83
83
|
${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(ZD)}
|
|
84
|
-
${
|
|
84
|
+
${J7(this.state)} ${D.message}
|
|
85
85
|
`,X=(J,Y)=>{let G=this.value.includes(J.value);return Y&&G?$(J,"active-selected"):G?$(J,"selected"):$(J,Y?"active":"inactive")};switch(this.state){case"submit":return`${F}${k.gray(ZD)} ${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:Y})=>this.value.includes(Y)).map((Y)=>$(Y,"cancelled")).join(k.dim(", "));return`${F}${k.gray(ZD)} ${J.trim()?`${J}
|
|
86
86
|
${k.gray(ZD)}`:""}`}case"error":{let J=this.error.split(`
|
|
87
87
|
`).map((Y,G)=>G===0?`${k.yellow(f1)} ${k.yellow(Y)}`:` ${Y}`).join(`
|
|
88
|
-
`);return`${F+k.yellow(ZD)} ${
|
|
88
|
+
`);return`${F+k.yellow(ZD)} ${c$({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
|
|
89
89
|
${k.yellow(ZD)} `)}
|
|
90
90
|
${J}
|
|
91
|
-
`}default:return`${F}${k.cyan(ZD)} ${
|
|
91
|
+
`}default:return`${F}${k.cyan(ZD)} ${c$({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
|
|
92
92
|
${k.cyan(ZD)} `)}
|
|
93
93
|
${k.cyan(f1)}
|
|
94
|
-
`}}}).prompt()},FH;var GH=Z(()=>{F2=uq(),e9={exports:{}};pq=mq(),k=yq(pq);dq=cq();rB={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),Y=X.length==2?X.charCodeAt(1):0,G=J;return 55296<=J&&J<=56319&&56320<=Y&&Y<=57343&&(J&=1023,Y&=1023,G=J<<10|Y,G+=65536),G==12288||65281<=G&&G<=65376||65504<=G&&G<=65510?"F":G==8361||65377<=G&&G<=65470||65474<=G&&G<=65479||65482<=G&&G<=65487||65490<=G&&G<=65495||65498<=G&&G<=65500||65512<=G&&G<=65518?"H":4352<=G&&G<=4447||4515<=G&&G<=4519||4602<=G&&G<=4607||9001<=G&&G<=9002||11904<=G&&G<=11929||11931<=G&&G<=12019||12032<=G&&G<=12245||12272<=G&&G<=12283||12289<=G&&G<=12350||12353<=G&&G<=12438||12441<=G&&G<=12543||12549<=G&&G<=12589||12593<=G&&G<=12686||12688<=G&&G<=12730||12736<=G&&G<=12771||12784<=G&&G<=12830||12832<=G&&G<=12871||12880<=G&&G<=13054||13056<=G&&G<=19903||19968<=G&&G<=42124||42128<=G&&G<=42182||43360<=G&&G<=43388||44032<=G&&G<=55203||55216<=G&&G<=55238||55243<=G&&G<=55291||63744<=G&&G<=64255||65040<=G&&G<=65049||65072<=G&&G<=65106||65108<=G&&G<=65126||65128<=G&&G<=65131||110592<=G&&G<=110593||127488<=G&&G<=127490||127504<=G&&G<=127546||127552<=G&&G<=127560||127568<=G&&G<=127569||131072<=G&&G<=194367||177984<=G&&G<=196605||196608<=G&&G<=262141?"W":32<=G&&G<=126||162<=G&&G<=163||165<=G&&G<=166||G==172||G==175||10214<=G&&G<=10221||10629<=G&&G<=10630?"Na":G==161||G==164||167<=G&&G<=168||G==170||173<=G&&G<=174||176<=G&&G<=180||182<=G&&G<=186||188<=G&&G<=191||G==198||G==208||215<=G&&G<=216||222<=G&&G<=225||G==230||232<=G&&G<=234||236<=G&&G<=237||G==240||242<=G&&G<=243||247<=G&&G<=250||G==252||G==254||G==257||G==273||G==275||G==283||294<=G&&G<=295||G==299||305<=G&&G<=307||G==312||319<=G&&G<=322||G==324||328<=G&&G<=331||G==333||338<=G&&G<=339||358<=G&&G<=359||G==363||G==462||G==464||G==466||G==468||G==470||G==472||G==474||G==476||G==593||G==609||G==708||G==711||713<=G&&G<=715||G==717||G==720||728<=G&&G<=731||G==733||G==735||768<=G&&G<=879||913<=G&&G<=929||931<=G&&G<=937||945<=G&&G<=961||963<=G&&G<=969||G==1025||1040<=G&&G<=1103||G==1105||G==8208||8211<=G&&G<=8214||8216<=G&&G<=8217||8220<=G&&G<=8221||8224<=G&&G<=8226||8228<=G&&G<=8231||G==8240||8242<=G&&G<=8243||G==8245||G==8251||G==8254||G==8308||G==8319||8321<=G&&G<=8324||G==8364||G==8451||G==8453||G==8457||G==8467||G==8470||8481<=G&&G<=8482||G==8486||G==8491||8531<=G&&G<=8532||8539<=G&&G<=8542||8544<=G&&G<=8555||8560<=G&&G<=8569||G==8585||8592<=G&&G<=8601||8632<=G&&G<=8633||G==8658||G==8660||G==8679||G==8704||8706<=G&&G<=8707||8711<=G&&G<=8712||G==8715||G==8719||G==8721||G==8725||G==8730||8733<=G&&G<=8736||G==8739||G==8741||8743<=G&&G<=8748||G==8750||8756<=G&&G<=8759||8764<=G&&G<=8765||G==8776||G==8780||G==8786||8800<=G&&G<=8801||8804<=G&&G<=8807||8810<=G&&G<=8811||8814<=G&&G<=8815||8834<=G&&G<=8835||8838<=G&&G<=8839||G==8853||G==8857||G==8869||G==8895||G==8978||9312<=G&&G<=9449||9451<=G&&G<=9547||9552<=G&&G<=9587||9600<=G&&G<=9615||9618<=G&&G<=9621||9632<=G&&G<=9633||9635<=G&&G<=9641||9650<=G&&G<=9651||9654<=G&&G<=9655||9660<=G&&G<=9661||9664<=G&&G<=9665||9670<=G&&G<=9672||G==9675||9678<=G&&G<=9681||9698<=G&&G<=9701||G==9711||9733<=G&&G<=9734||G==9737||9742<=G&&G<=9743||9748<=G&&G<=9749||G==9756||G==9758||G==9792||G==9794||9824<=G&&G<=9825||9827<=G&&G<=9829||9831<=G&&G<=9834||9836<=G&&G<=9837||G==9839||9886<=G&&G<=9887||9918<=G&&G<=9919||9924<=G&&G<=9933||9935<=G&&G<=9953||G==9955||9960<=G&&G<=9983||G==10045||G==10071||10102<=G&&G<=10111||11093<=G&&G<=11097||12872<=G&&G<=12879||57344<=G&&G<=63743||65024<=G&&G<=65039||G==65533||127232<=G&&G<=127242||127248<=G&&G<=127277||127280<=G&&G<=127337||127344<=G&&G<=127386||917760<=G&&G<=917999||983040<=G&&G<=1048573||1048576<=G&&G<=1114109?"A":"N"},$.characterLength=function(X){var J=this.eastAsianWidth(X);return J=="F"||J=="W"||J=="A"?2:1};function F(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var J=F(X),Y=0,G=0;G<J.length;G++)Y=Y+this.characterLength(J[G]);return Y},$.slice=function(X,J,Y){textLen=$.length(X),J=J||0,Y=Y||1,J<0&&(J=textLen+J),Y<0&&(Y=textLen+Y);for(var G="",B=0,H=F(X),W=0;W<H.length;W++){var _=H[W],U=$.length(_);if(B>=J-(U==2?1:0))if(B+U<=Y)G+=_;else break;B+=U}return G}})(rB);lq=rB.exports,iq=sB(lq),sq=sB(nq);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);rq=Object.keys(LD.color),aq=Object.keys(LD.bgColor);[...rq,...aq];tq=oq(),F7=new Set(["\x1B","\x9B"]),d$=`${DP}8;;`;JP=["up","down","left","right","space","enter","cancel"],$7={actions:new Set(JP),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");cB=Symbol("clack:cancel");YP=Object.defineProperty;eB=class eB extends D3{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(F2.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};HP=Object.defineProperty,VP=class extends D3{constructor(D){super(D,!1),dB(this,"options"),dB(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]}},_P=Object.defineProperty;DH=class DH extends D3{constructor(D){super(D,!1),lB(this,"options"),lB(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}};$H=class $H extends D3{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)})}};AP=QP(),KP=X2("\u276F",">"),EP=X2("\u25A0","x"),CP=X2("\u25B2","x"),RP=X2("\u2714","\u221A"),ZD=X2(""),f1=X2(""),u$=X2("\u25CF",">"),m$=X2("\u25CB"," "),OP=X2("\u25FB","[\u2022]"),iB=X2("\u25FC","[+]"),MP=X2("\u25FB","[ ]");`${k.gray(ZD)} `;FH=Symbol.for("cancel")});import YH from"process";function zP(){if(globalThis.process?.env)for(let D of jP){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 m8(D){return D?D!=="false":!1}function mP(){let D=uP.find(($)=>$[0]);if(D)return{name:D[1]}}function cP({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 lP(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(dP,"")}function iP(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 nP(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function sP(D){return D>=4352&&D<=4447||D===8986||D===8987||D===9001||D===9002||D>=9193&&D<=9196||D===9200||D===9203||D===9725||D===9726||D===9748||D===9749||D>=9776&&D<=9783||D>=9800&&D<=9811||D===9855||D>=9866&&D<=9871||D===9875||D===9889||D===9898||D===9899||D===9917||D===9918||D===9924||D===9925||D===9934||D===9940||D===9962||D===9970||D===9971||D===9973||D===9978||D===9981||D===9989||D===9994||D===9995||D===10024||D===10060||D===10062||D>=10067&&D<=10069||D===10071||D>=10133&&D<=10135||D===10160||D===10175||D===11035||D===11036||D===11088||D===11093||D>=11904&&D<=11929||D>=11931&&D<=12019||D>=12032&&D<=12245||D>=12272&&D<=12287||D>=12289&&D<=12350||D>=12353&&D<=12438||D>=12441&&D<=12543||D>=12549&&D<=12591||D>=12593&&D<=12686||D>=12688&&D<=12773||D>=12783&&D<=12830||D>=12832&&D<=12871||D>=12880&&D<=42124||D>=42128&&D<=42182||D>=43360&&D<=43388||D>=44032&&D<=55203||D>=63744&&D<=64255||D>=65040&&D<=65049||D>=65072&&D<=65106||D>=65108&&D<=65126||D>=65128&&D<=65131||D>=94176&&D<=94180||D===94192||D===94193||D>=94208&&D<=100343||D>=100352&&D<=101589||D>=101631&&D<=101640||D>=110576&&D<=110579||D>=110581&&D<=110587||D===110589||D===110590||D>=110592&&D<=110882||D===110898||D>=110928&&D<=110930||D===110933||D>=110948&&D<=110951||D>=110960&&D<=111355||D>=119552&&D<=119638||D>=119648&&D<=119670||D===126980||D===127183||D===127374||D>=127377&&D<=127386||D>=127488&&D<=127490||D>=127504&&D<=127547||D>=127552&&D<=127560||D===127568||D===127569||D>=127584&&D<=127589||D>=127744&&D<=127776||D>=127789&&D<=127797||D>=127799&&D<=127868||D>=127870&&D<=127891||D>=127904&&D<=127946||D>=127951&&D<=127955||D>=127968&&D<=127984||D===127988||D>=127992&&D<=128062||D===128064||D>=128066&&D<=128252||D>=128255&&D<=128317||D>=128331&&D<=128334||D>=128336&&D<=128359||D===128378||D===128405||D===128406||D===128420||D>=128507&&D<=128591||D>=128640&&D<=128709||D===128716||D>=128720&&D<=128722||D>=128725&&D<=128727||D>=128732&&D<=128735||D===128747||D===128748||D>=128756&&D<=128764||D>=128992&&D<=129003||D===129008||D>=129292&&D<=129338||D>=129340&&D<=129349||D>=129351&&D<=129535||D>=129648&&D<=129660||D>=129664&&D<=129673||D>=129679&&D<=129734||D>=129742&&D<=129756||D>=129759&&D<=129769||D>=129776&&D<=129784||D>=131072&&D<=196605||D>=196608&&D<=262141}function rP(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function aP(D,{ambiguousAsWide:$=!1}={}){if(rP(D),nP(D)||sP(D)||$&&iP(D))return 2;return 1}function DN(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=lP(D);if(D.length===0)return 0;let J=0,Y={ambiguousAsWide:!F};for(let{segment:G}of tP.segment(D)){let B=G.codePointAt(0);if(B<=31||B>=127&&B<=159)continue;if(B>=8203&&B<=8207||B===65279)continue;if(B>=768&&B<=879||B>=6832&&B<=6911||B>=7616&&B<=7679||B>=8400&&B<=8447||B>=65056&&B<=65071)continue;if(B>=55296&&B<=57343)continue;if(B>=65024&&B<=65039)continue;if(eP.test(G))continue;if(oP().test(G)){J+=2;continue}J+=aP(B,Y)}return J}function $N(){let{env:D}=YH,{TERM:$,TERM_PROGRAM:F}=D;if(YH.platform!=="win32")return $!=="linux";return Boolean(D.WT_SESSION)||Boolean(D.TERMINUS_SUBLIME)||D.ConEmuTask==="{cmd::Cmder}"||F==="Terminus-Sublime"||F==="vscode"||$==="xterm-256color"||$==="alacritty"||$==="rxvt-unicode"||$==="rxvt-unicode-256color"||D.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function WH(D){if(typeof Intl!=="object"||!Intl.Segmenter)return G8(D).length;return DN(D)}function J7(D){return D.replace(/`([^`]+)`/gm,($,F)=>E0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${E0.underline(F)} `)}function GN(D="white"){return E0[D]||E0.white}function YN(D="bgWhite"){return E0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||E0.bgWhite}function BN(D={}){let $=HN();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return NB({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (GH(),JH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(l$||i$)?new UH:new o9],...D})}function HN(){if(TP)return F0.debug;if(i$)return F0.warn;return F0.info}var G7,$3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?G7:globalThis),B8,LP,jP,VH,IP,l$,_H,TP,i$,wP,SP,bP,BH,fP,kP,vP,hP,xP,gP,yP,uP,pP,dP,oP=()=>{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},tP,eP,FN,XN,JN,j2=(D,$)=>JN?D:$,HH,UH,O;var JD=Z(()=>{k$();k$();jB();fB();G7=Object.create(null),B8=new Proxy(G7,{get(D,$){return $3()[$]??G7[$]},has(D,$){let F=$3();return $ in F||$ in G7},set(D,$,F){let X=$3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=$3(!0);return delete F[$],!0},ownKeys(){let D=$3(!0);return Object.keys(D)}}),LP=typeof process<"u"&&process.env&&"development"||"",jP=[["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}]];VH=zP();VH.name;IP=globalThis.process?.platform||"",l$=m8(B8.CI)||VH.ci!==!1,_H=m8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),TP=m8(B8.DEBUG),i$=LP==="test"||m8(B8.TEST);m8(B8.MINIMAL);wP=/^win/i.test(IP);!m8(B8.NO_COLOR)&&(m8(B8.FORCE_COLOR)||(_H||wP)&&B8.TERM);SP=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(SP?.split(".")[0]);bP=globalThis.process||Object.create(null),BH={versions:{}};new Proxy(bP,{get(D,$){if($==="env")return B8;if($ in D)return D[$];if($ in BH)return BH[$]}});fP=globalThis.process?.release?.name==="node",kP=!!globalThis.Bun||!!globalThis.process?.versions?.bun,vP=!!globalThis.Deno,hP=!!globalThis.fastly,xP=!!globalThis.Netlify,gP=!!globalThis.EdgeRuntime,yP=globalThis.navigator?.userAgent==="Cloudflare-Workers",uP=[[xP,"netlify"],[gP,"edge-light"],[yP,"workerd"],[hP,"fastly"],[vP,"deno"],[kP,"bun"],[fP,"node"]];pP=mP();pP?.name;dP=cP();tP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},eP=/^\p{Default_Ignorable_Code_Point}$/u;FN={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},XN={0:"red",1:"yellow"},JN=$N(),HH={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 o9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
|
|
95
|
-
${X}`+
|
|
96
|
-
${X}`)}formatType(D,$,F){let X=
|
|
97
|
-
`);if(D.type==="box")return
|
|
94
|
+
`}}}).prompt()},XH;var YH=Z(()=>{F2=pq(),D7={exports:{}};dq=cq(),k=mq(dq);iq=lq();aB={exports:{}};(function(D){var $={};D.exports=$,$.eastAsianWidth=function(X){var J=X.charCodeAt(0),Y=X.length==2?X.charCodeAt(1):0,G=J;return 55296<=J&&J<=56319&&56320<=Y&&Y<=57343&&(J&=1023,Y&=1023,G=J<<10|Y,G+=65536),G==12288||65281<=G&&G<=65376||65504<=G&&G<=65510?"F":G==8361||65377<=G&&G<=65470||65474<=G&&G<=65479||65482<=G&&G<=65487||65490<=G&&G<=65495||65498<=G&&G<=65500||65512<=G&&G<=65518?"H":4352<=G&&G<=4447||4515<=G&&G<=4519||4602<=G&&G<=4607||9001<=G&&G<=9002||11904<=G&&G<=11929||11931<=G&&G<=12019||12032<=G&&G<=12245||12272<=G&&G<=12283||12289<=G&&G<=12350||12353<=G&&G<=12438||12441<=G&&G<=12543||12549<=G&&G<=12589||12593<=G&&G<=12686||12688<=G&&G<=12730||12736<=G&&G<=12771||12784<=G&&G<=12830||12832<=G&&G<=12871||12880<=G&&G<=13054||13056<=G&&G<=19903||19968<=G&&G<=42124||42128<=G&&G<=42182||43360<=G&&G<=43388||44032<=G&&G<=55203||55216<=G&&G<=55238||55243<=G&&G<=55291||63744<=G&&G<=64255||65040<=G&&G<=65049||65072<=G&&G<=65106||65108<=G&&G<=65126||65128<=G&&G<=65131||110592<=G&&G<=110593||127488<=G&&G<=127490||127504<=G&&G<=127546||127552<=G&&G<=127560||127568<=G&&G<=127569||131072<=G&&G<=194367||177984<=G&&G<=196605||196608<=G&&G<=262141?"W":32<=G&&G<=126||162<=G&&G<=163||165<=G&&G<=166||G==172||G==175||10214<=G&&G<=10221||10629<=G&&G<=10630?"Na":G==161||G==164||167<=G&&G<=168||G==170||173<=G&&G<=174||176<=G&&G<=180||182<=G&&G<=186||188<=G&&G<=191||G==198||G==208||215<=G&&G<=216||222<=G&&G<=225||G==230||232<=G&&G<=234||236<=G&&G<=237||G==240||242<=G&&G<=243||247<=G&&G<=250||G==252||G==254||G==257||G==273||G==275||G==283||294<=G&&G<=295||G==299||305<=G&&G<=307||G==312||319<=G&&G<=322||G==324||328<=G&&G<=331||G==333||338<=G&&G<=339||358<=G&&G<=359||G==363||G==462||G==464||G==466||G==468||G==470||G==472||G==474||G==476||G==593||G==609||G==708||G==711||713<=G&&G<=715||G==717||G==720||728<=G&&G<=731||G==733||G==735||768<=G&&G<=879||913<=G&&G<=929||931<=G&&G<=937||945<=G&&G<=961||963<=G&&G<=969||G==1025||1040<=G&&G<=1103||G==1105||G==8208||8211<=G&&G<=8214||8216<=G&&G<=8217||8220<=G&&G<=8221||8224<=G&&G<=8226||8228<=G&&G<=8231||G==8240||8242<=G&&G<=8243||G==8245||G==8251||G==8254||G==8308||G==8319||8321<=G&&G<=8324||G==8364||G==8451||G==8453||G==8457||G==8467||G==8470||8481<=G&&G<=8482||G==8486||G==8491||8531<=G&&G<=8532||8539<=G&&G<=8542||8544<=G&&G<=8555||8560<=G&&G<=8569||G==8585||8592<=G&&G<=8601||8632<=G&&G<=8633||G==8658||G==8660||G==8679||G==8704||8706<=G&&G<=8707||8711<=G&&G<=8712||G==8715||G==8719||G==8721||G==8725||G==8730||8733<=G&&G<=8736||G==8739||G==8741||8743<=G&&G<=8748||G==8750||8756<=G&&G<=8759||8764<=G&&G<=8765||G==8776||G==8780||G==8786||8800<=G&&G<=8801||8804<=G&&G<=8807||8810<=G&&G<=8811||8814<=G&&G<=8815||8834<=G&&G<=8835||8838<=G&&G<=8839||G==8853||G==8857||G==8869||G==8895||G==8978||9312<=G&&G<=9449||9451<=G&&G<=9547||9552<=G&&G<=9587||9600<=G&&G<=9615||9618<=G&&G<=9621||9632<=G&&G<=9633||9635<=G&&G<=9641||9650<=G&&G<=9651||9654<=G&&G<=9655||9660<=G&&G<=9661||9664<=G&&G<=9665||9670<=G&&G<=9672||G==9675||9678<=G&&G<=9681||9698<=G&&G<=9701||G==9711||9733<=G&&G<=9734||G==9737||9742<=G&&G<=9743||9748<=G&&G<=9749||G==9756||G==9758||G==9792||G==9794||9824<=G&&G<=9825||9827<=G&&G<=9829||9831<=G&&G<=9834||9836<=G&&G<=9837||G==9839||9886<=G&&G<=9887||9918<=G&&G<=9919||9924<=G&&G<=9933||9935<=G&&G<=9953||G==9955||9960<=G&&G<=9983||G==10045||G==10071||10102<=G&&G<=10111||11093<=G&&G<=11097||12872<=G&&G<=12879||57344<=G&&G<=63743||65024<=G&&G<=65039||G==65533||127232<=G&&G<=127242||127248<=G&&G<=127277||127280<=G&&G<=127337||127344<=G&&G<=127386||917760<=G&&G<=917999||983040<=G&&G<=1048573||1048576<=G&&G<=1114109?"A":"N"},$.characterLength=function(X){var J=this.eastAsianWidth(X);return J=="F"||J=="W"||J=="A"?2:1};function F(X){return X.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}$.length=function(X){for(var J=F(X),Y=0,G=0;G<J.length;G++)Y=Y+this.characterLength(J[G]);return Y},$.slice=function(X,J,Y){textLen=$.length(X),J=J||0,Y=Y||1,J<0&&(J=textLen+J),Y<0&&(Y=textLen+Y);for(var G="",B=0,H=F(X),W=0;W<H.length;W++){var _=H[W],U=$.length(_);if(B>=J-(U==2?1:0))if(B+U<=Y)G+=_;else break;B+=U}return G}})(aB);nq=aB.exports,sq=rB(nq),aq=rB(rq);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);oq=Object.keys(LD.color),tq=Object.keys(LD.bgColor);[...oq,...tq];DN=eq(),X7=new Set(["\x1B","\x9B"]),l$=`${FN}8;;`;YN=["up","down","left","right","space","enter","cancel"],F7={actions:new Set(YN),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");dB=Symbol("clack:cancel");HN=Object.defineProperty;DH=class DH extends D3{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(F2.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};VN=Object.defineProperty,UN=class extends D3{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]}},QN=Object.defineProperty;$H=class $H extends D3{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 D3{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=KN(),ON=X2("\u276F",">"),RN=X2("\u25A0","x"),CN=X2("\u25B2","x"),MN=X2("\u2714","\u221A"),ZD=X2(""),f1=X2(""),m$=X2("\u25CF",">"),p$=X2("\u25CB"," "),ZN=X2("\u25FB","[\u2022]"),nB=X2("\u25FC","[+]"),qN=X2("\u25FB","[ ]");`${k.gray(ZD)} `;XH=Symbol.for("cancel")});import BH from"process";function TN(){if(globalThis.process?.env)for(let D of IN){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 m8(D){return D?D!=="false":!1}function cN(){let D=pN.find(($)=>$[0]);if(D)return{name:D[1]}}function lN({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 nN(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(iN,"")}function sN(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 rN(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function aN(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 oN(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function tN(D,{ambiguousAsWide:$=!1}={}){if(oN(D),rN(D)||aN(D)||$&&sN(D))return 2;return 1}function FP(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=nN(D);if(D.length===0)return 0;let J=0,Y={ambiguousAsWide:!F};for(let{segment:G}of DP.segment(D)){let B=G.codePointAt(0);if(B<=31||B>=127&&B<=159)continue;if(B>=8203&&B<=8207||B===65279)continue;if(B>=768&&B<=879||B>=6832&&B<=6911||B>=7616&&B<=7679||B>=8400&&B<=8447||B>=65056&&B<=65071)continue;if(B>=55296&&B<=57343)continue;if(B>=65024&&B<=65039)continue;if($P.test(G))continue;if(eN().test(G)){J+=2;continue}J+=tN(B,Y)}return J}function XP(){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 J8(D).length;return FP(D)}function G7(D){return D.replace(/`([^`]+)`/gm,($,F)=>E0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${E0.underline(F)} `)}function BP(D="white"){return E0[D]||E0.white}function HP(D="bgWhite"){return E0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||E0.bgWhite}function WP(D={}){let $=VP();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(() => (YH(),GH)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(i$||n$)?new QH:new t9],...D})}function VP(){if(SN)return F0.debug;if(n$)return F0.warn;return F0.info}var Y7,$3=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?Y7:globalThis),Y8,zN,IN,_H,wN,i$,UH,SN,n$,bN,fN,kN,HH,vN,hN,xN,gN,yN,uN,mN,pN,dN,iN,eN=()=>{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},DP,$P,JP,GP,YP,L2=(D,$)=>YP?D:$,WH,QH,C;var JD=Z(()=>{v$();v$();zB();kB();Y7=Object.create(null),Y8=new Proxy(Y7,{get(D,$){return $3()[$]??Y7[$]},has(D,$){let F=$3();return $ in F||$ in Y7},set(D,$,F){let X=$3(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=$3(!0);return delete F[$],!0},ownKeys(){let D=$3(!0);return Object.keys(D)}}),zN=typeof process<"u"&&process.env&&"development"||"",IN=[["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=TN();_H.name;wN=globalThis.process?.platform||"",i$=m8(Y8.CI)||_H.ci!==!1,UH=m8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),SN=m8(Y8.DEBUG),n$=zN==="test"||m8(Y8.TEST);m8(Y8.MINIMAL);bN=/^win/i.test(wN);!m8(Y8.NO_COLOR)&&(m8(Y8.FORCE_COLOR)||(UH||bN)&&Y8.TERM);fN=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(fN?.split(".")[0]);kN=globalThis.process||Object.create(null),HH={versions:{}};new Proxy(kN,{get(D,$){if($==="env")return Y8;if($ in D)return D[$];if($ in HH)return HH[$]}});vN=globalThis.process?.release?.name==="node",hN=!!globalThis.Bun||!!globalThis.process?.versions?.bun,xN=!!globalThis.Deno,gN=!!globalThis.fastly,yN=!!globalThis.Netlify,uN=!!globalThis.EdgeRuntime,mN=globalThis.navigator?.userAgent==="Cloudflare-Workers",pN=[[yN,"netlify"],[uN,"edge-light"],[mN,"workerd"],[gN,"fastly"],[xN,"deno"],[hN,"bun"],[vN,"node"]];dN=cN();dN?.name;iN=lN();DP=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},$P=/^\p{Default_Ignorable_Code_Point}$/u;JP={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},GP={0:"red",1:"yellow"},YP=XP(),WH={error:L2("\u2716","\xD7"),fatal:L2("\u2716","\xD7"),ready:L2("\u2714","\u221A"),warn:L2("\u26A0","\u203C"),info:L2("\u2139","i"),success:L2("\u2714","\u221A"),debug:L2("\u2699","D"),trace:L2("\u2192","\u2192"),fail:L2("\u2716","\xD7"),start:L2("\u25D0","o"),log:""};QH=class QH extends t9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
|
|
95
|
+
${X}`+x$(D,$).map((J)=>" "+J.replace(/^at +/,(Y)=>E0.gray(Y)).replace(/\((.+)\)/,(Y,G)=>`(${E0.cyan(G)})`)).join(`
|
|
96
|
+
${X}`)}formatType(D,$,F){let X=JP[D.type]||GP[D.level]||"gray";if($)return HP(X)(E0.black(` ${D.type.toUpperCase()} `));let J=typeof WH[D.type]==="string"?WH[D.type]:D.icon||D.type;return J?BP(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
|
|
97
|
+
`);if(D.type==="box")return fB(G7(F+(X.length>0?`
|
|
98
98
|
`+X.join(`
|
|
99
|
-
`):"")),{title:D.title?
|
|
99
|
+
`):"")),{title:D.title?G7(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),Y=J&&E0.gray(J),G=D.badge??D.level<2,B=this.formatType(D,G,$),H=D.tag?E0.gray(D.tag):"",W,_=this.filterAndJoin([B,G7(F)]),U=this.filterAndJoin($.columns?[H,Y]:[H]),Q=($.columns||0)-VH(_)-VH(U)-2;if(W=Q>0&&($.columns||0)>=80?_+" ".repeat(Q)+U:(U?`${E0.gray(`[${U}]`)} `:"")+_,W+=G7(X.length>0?`
|
|
100
100
|
`+X.join(`
|
|
101
101
|
`):""),D.type==="trace"){let A=Error("Trace: "+D.message);W+=this.formatStack(A.stack||"",A.message)}return G?`
|
|
102
102
|
`+W+`
|
|
103
|
-
`:W}};O=BN()});var HD,n$,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 F3=Z(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let Y={};for(let G of J)Y[G]=G;return Y},D.getValidEnumValues=(J)=>{let Y=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),G={};for(let B of Y)G[B]=J[B];return D.objectValues(G)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(Y){return J[Y]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let G in J)if(Object.prototype.hasOwnProperty.call(J,G))Y.push(G);return Y},D.find=(J,Y)=>{for(let G of J)if(Y(G))return G;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,Y=" | "){return J.map((G)=>typeof G==="string"?`'${G}'`:G).join(Y)}D.joinValues=X,D.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(HD||(HD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(n$||(n$={}));h=HD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var S,VN=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},R0;var Y7=Z(()=>{F3();S=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"]);R0=class R0 extends Error{get errors(){return this.issues}constructor(D){super();this.issues=[],this.addIssue=(F)=>{this.issues=[...this.issues,F]},this.addIssues=(F=[])=>{this.issues=[...this.issues,...F]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=D}format(D){let $=D||function(J){return J.message},F={_errors:[]},X=(J)=>{for(let Y of J.issues)if(Y.code==="invalid_union")Y.unionErrors.map(X);else if(Y.code==="invalid_return_type")X(Y.returnTypeError);else if(Y.code==="invalid_arguments")X(Y.argumentsError);else if(Y.path.length===0)F._errors.push($(Y));else{let G=F,B=0;while(B<Y.path.length){let H=Y.path[B];if(B!==Y.path.length-1)G[H]=G[H]||{_errors:[]};else G[H]=G[H]||{_errors:[]},G[H]._errors.push($(Y));G=G[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof R0))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()}};R0.create=(D)=>{return new R0(D)}});var _N=(D,$)=>{let F;switch(D.code){case S.invalid_type:if(D.received===h.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case S.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,HD.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:F=`Unrecognized key(s) in object: ${HD.joinValues(D.keys,", ")}`;break;case S.invalid_union:F="Invalid input";break;case S.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${HD.joinValues(D.options)}`;break;case S.invalid_enum_value:F=`Invalid enum value. Expected ${HD.joinValues(D.options)}, received '${D.received}'`;break;case S.invalid_arguments:F="Invalid function arguments";break;case S.invalid_return_type:F="Invalid function return type";break;case S.invalid_date:F="Invalid date";break;case S.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 S.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 S.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 S.custom:F="Invalid input";break;case S.invalid_intersection_types:F="Intersection results could not be merged";break;case S.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case S.not_finite:F="Number must be finite";break;default:F=$.defaultError,HD.assertNever(D)}return{message:F}},m2;var s$=Z(()=>{Y7();F3();m2=_N});function UN(D){AH=D}function k1(){return AH}var AH;var B7=Z(()=>{s$();AH=m2});function g(D,$){let F=k1(),X=X3({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===m2?void 0:m2].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,Y=await X.value;F.push({key:J,value:Y})}return X0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:Y}=X;if(J.status==="aborted")return l;if(Y.status==="aborted")return l;if(J.status==="dirty")D.dirty();if(Y.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof Y.value<"u"||X.alwaysSet))F[J.value]=Y.value}return{status:D.value,value:F}}}var X3=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,Y=[...F,...J.path||[]],G={...J,path:Y};if(J.message!==void 0)return{...J,path:Y,message:J.message};let B="",H=X.filter((W)=>!!W).slice().reverse();for(let W of H)B=W(G,{data:$,defaultError:B}).message;return{...J,path:Y,message:B}},QN,l,p8=(D)=>({status:"dirty",value:D}),H0=(D)=>({status:"valid",value:D}),H7=(D)=>D.status==="aborted",W7=(D)=>D.status==="dirty",H8=(D)=>D.status==="valid",v1=(D)=>typeof Promise<"u"&&D instanceof Promise;var r$=Z(()=>{B7();s$();QN=[];l=Object.freeze({status:"aborted"})});var KH=()=>{};var p;var EH=Z(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(p||(p={}))});class B2{constructor(D,$,F,X){this._cachedPath=[],this.parent=D,this.data=$,this._path=F,this._key=X}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function FD(D){if(!D)return{};let{errorMap:$,invalid_type_error:F,required_error:X,description:J}=D;if($&&(F||X))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(G,B)=>{let{message:H}=D;if(G.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(G.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class GD{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(v1($))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(v1(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 Y=D(X),G=()=>J.addIssue({code:S.custom,...F(X)});if(typeof Promise<"u"&&Y instanceof Promise)return Y.then((B)=>{if(!B)return G(),!1;else return!0});if(!Y)return G(),!1;else return!0})}refinement(D,$){return this._refinement((F,X)=>{if(!D(F))return X.addIssue(typeof $==="function"?$(F,X):$),!1;else return!0})}_refinement(D){return new H2({schema:this,typeName:i.ZodEffects,effect:{type:"refinement",refinement:D}})}superRefine(D){return this._refinement(D)}constructor(D){this.spa=this.safeParseAsync,this._def=D,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return Y2.create(this,this._def)}nullable(){return c2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return G2.create(this)}promise(){return i8.create(this,this._def)}or(D){return m1.create([this,D],this._def)}and(D){return p1.create(this,D,this._def)}transform(D){return new H2({...FD(this._def),schema:this,typeName:i.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new i1({...FD(this._def),innerType:this,defaultValue:$,typeName:i.ZodDefault})}brand(){return new _7({typeName:i.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new n1({...FD(this._def),innerType:this,catchValue:$,typeName:i.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return W3.create(this,D)}readonly(){return s1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function MH(D){let $="[0-5]\\d";if(D.precision)$=`${$}\\.\\d{${D.precision}}`;else if(D.precision==null)$=`${$}(\\.\\d+)?`;let F=D.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${$})${F}`}function wN(D){return new RegExp(`^${MH(D)}$`)}function ZH(D){let $=`${OH}T${MH(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function SN(D,$){if(($==="v4"||!$)&&PN.test(D))return!0;if(($==="v6"||!$)&&LN.test(D))return!0;return!1}function bN(D,$){if(!ON.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 fN(D,$){if(($==="v4"||!$)&&NN.test(D))return!0;if(($==="v6"||!$)&&jN.test(D))return!0;return!1}function kN(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,Y=Number.parseInt(D.toFixed(J).replace(".","")),G=Number.parseInt($.toFixed(J).replace(".",""));return Y%G/10**J}function h1(D){if(D instanceof SD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=Y2.create(h1(X))}return new SD({...D._def,shape:()=>$})}else if(D instanceof G2)return new G2({...D._def,type:h1(D.element)});else if(D instanceof Y2)return Y2.create(h1(D.unwrap()));else if(D instanceof c2)return c2.create(h1(D.unwrap()));else if(D instanceof T2)return T2.create(D.items.map(($)=>h1($)));else return D}function o$(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($),Y=HD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),G={...D,...$};for(let B of Y){let H=o$(D[B],$[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(F===h.array&&X===h.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let Y=0;Y<D.length;Y++){let G=D[Y],B=$[Y],H=o$(G,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===h.date&&X===h.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function qH(D,$){return new U8({values:D,typeName:i.ZodEnum,...FD($)})}function RH(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 d8.create().superRefine((X,J)=>{let Y=D(X);if(Y instanceof Promise)return Y.then((G)=>{if(!G){let B=RH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!Y){let G=RH($,X),B=G.fatal??F??!0;J.addIssue({code:"custom",...G,fatal:B})}return});return d8.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 R0(D.common.issues);return this._error=F,this._error}}}},AN,KN,EN,CN,RN,ON,MN,ZN,qN="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",a$,PN,NN,LN,jN,zN,IN,OH="((\\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])))",TN,J2,V8,_8,g1,c8,J3,y1,u1,d8,W8,I2,G3,G2,SD,m1,p2=(D)=>{if(D instanceof c1)return p2(D.schema);else if(D instanceof H2)return p2(D.innerType());else if(D instanceof d1)return[D.value];else if(D instanceof U8)return D.options;else if(D instanceof l1)return HD.objectValues(D.enum);else if(D instanceof i1)return p2(D._def.innerType);else if(D instanceof y1)return[void 0];else if(D instanceof u1)return[null];else if(D instanceof Y2)return[void 0,...p2(D.unwrap())];else if(D instanceof c2)return[null,...p2(D.unwrap())];else if(D instanceof _7)return p2(D.unwrap());else if(D instanceof s1)return p2(D.unwrap());else if(D instanceof n1)return p2(D._def.innerType);else return[]},V7,p1,T2,Y3,B3,l8,x1,c1,d1,U8,l1,i8,H2,Y2,c2,i1,n1,H3,vN,_7,W3,s1,hN,i,xN=(D,$={message:`Input not instance of ${D.name}`})=>PH((F)=>F instanceof D,$),NH,LH,gN,yN,jH,uN,mN,pN,cN,dN,lN,iN,nN,sN,rN,aN,oN,tN,eN,DL,$L,FL,XL,JL,GL,YL,BL,HL,WL,VL,_L,UL,QL,AL,KL=()=>NH().optional(),EL=()=>LH().optional(),CL=()=>jH().optional(),RL,OL;var zH=Z(()=>{Y7();B7();EH();r$();F3();AN=/^c[^\s-]{8,}$/i,KN=/^[0-9a-z]+$/,EN=/^[0-9A-HJKMNP-TV-Z]{26}$/i,CN=/^[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,RN=/^[a-z0-9_-]{21}$/i,ON=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,MN=/^[-+]?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)?)??$/,ZN=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,PN=/^(?:(?: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])$/,NN=/^(?:(?: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])$/,LN=/^(([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]))$/,jN=/^(([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])$/,zN=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,IN=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,TN=new RegExp(`^${OH}$`);J2=class J2 extends GD{_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:S.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:S.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:S.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let Y=D.data.length>J.value,G=D.data.length<J.value;if(Y||G){if(X=this._getOrReturnCtx(D,X),Y)g(X,{code:S.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(G)g(X,{code:S.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!ZN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"email",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!a$)a$=new RegExp(qN,"u");if(!a$.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"emoji",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!CN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"uuid",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!RN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"nanoid",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!AN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!KN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid2",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!EN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"ulid",code:S.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:S.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:S.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:S.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:S.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:S.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!ZH(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:S.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!TN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:S.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!wN(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:S.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!MN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"duration",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!SN(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"ip",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!bN(D.data,J.alg))X=this._getOrReturnCtx(D,X),g(X,{validation:"jwt",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!fN(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"cidr",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!zN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!IN.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64url",code:S.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:S.invalid_string,...p.errToObj(F)})}_addCheck(D){return new J2({...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 J2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new J2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new J2({...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}};J2.create=(D)=>{return new J2({checks:[],typeName:i.ZodString,coerce:D?.coerce??!1,...FD(D)})};V8=class V8 extends GD{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:S.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:S.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:S.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:S.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(kN(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),g(F,{code:S.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:S.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:i.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};_8=class _8 extends GD{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:S.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:S.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:S.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:S.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 _8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new _8({...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}};_8.create=(D)=>{return new _8({checks:[],typeName:i.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};g1=class g1 extends GD{_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:S.invalid_type,expected:h.boolean,received:F.parsedType}),l}return H0(D.data)}};g1.create=(D)=>{return new g1({typeName:i.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};c8=class c8 extends GD{_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:S.invalid_type,expected:h.date,received:J.parsedType}),l}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return g(J,{code:S.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:S.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:S.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 c8({...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}};c8.create=(D)=>{return new c8({checks:[],coerce:D?.coerce||!1,typeName:i.ZodDate,...FD(D)})};J3=class J3 extends GD{_parse(D){if(this._getType(D)!==h.symbol){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.symbol,received:F.parsedType}),l}return H0(D.data)}};J3.create=(D)=>{return new J3({typeName:i.ZodSymbol,...FD(D)})};y1=class y1 extends GD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.undefined,received:F.parsedType}),l}return H0(D.data)}};y1.create=(D)=>{return new y1({typeName:i.ZodUndefined,...FD(D)})};u1=class u1 extends GD{_parse(D){if(this._getType(D)!==h.null){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.null,received:F.parsedType}),l}return H0(D.data)}};u1.create=(D)=>{return new u1({typeName:i.ZodNull,...FD(D)})};d8=class d8 extends GD{constructor(){super(...arguments);this._any=!0}_parse(D){return H0(D.data)}};d8.create=(D)=>{return new d8({typeName:i.ZodAny,...FD(D)})};W8=class W8 extends GD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return H0(D.data)}};W8.create=(D)=>{return new W8({typeName:i.ZodUnknown,...FD(D)})};I2=class I2 extends GD{_parse(D){let $=this._getOrReturnCtx(D);return g($,{code:S.invalid_type,expected:h.never,received:$.parsedType}),l}};I2.create=(D)=>{return new I2({typeName:i.ZodNever,...FD(D)})};G3=class G3 extends GD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.void,received:F.parsedType}),l}return H0(D.data)}};G3.create=(D)=>{return new G3({typeName:i.ZodVoid,...FD(D)})};G2=class G2 extends GD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==h.array)return g($,{code:S.invalid_type,expected:h.array,received:$.parsedType}),l;if(X.exactLength!==null){let Y=$.data.length>X.exactLength.value,G=$.data.length<X.exactLength.value;if(Y||G)g($,{code:Y?S.too_big:S.too_small,minimum:G?X.exactLength.value:void 0,maximum:Y?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),F.dirty()}if(X.minLength!==null){if($.data.length<X.minLength.value)g($,{code:S.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:S.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((Y,G)=>{return X.type._parseAsync(new B2($,Y,$.path,G))})).then((Y)=>{return X0.mergeArray(F,Y)});let J=[...$.data].map((Y,G)=>{return X.type._parseSync(new B2($,Y,$.path,G))});return X0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new G2({...this._def,minLength:{value:D,message:p.toString($)}})}max(D,$){return new G2({...this._def,maxLength:{value:D,message:p.toString($)}})}length(D,$){return new G2({...this._def,exactLength:{value:D,message:p.toString($)}})}nonempty(D){return this.min(1,D)}};G2.create=(D,$)=>{return new G2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:i.ZodArray,...FD($)})};SD=class SD extends GD{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:S.invalid_type,expected:h.object,received:H.parsedType}),l}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:Y}=this._getCached(),G=[];if(!(this._def.catchall instanceof I2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!Y.includes(H))G.push(H)}let B=[];for(let H of Y){let W=J[H],_=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new B2(X,_,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 G)B.push({key:{status:"valid",value:W},value:{status:"valid",value:X.data[W]}});else if(H==="strict"){if(G.length>0)g(X,{code:S.unrecognized_keys,keys:G}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of G){let _=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new B2(X,_,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 _=await W.key,U=await W.value;H.push({key:_,value:U,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:i.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 h1(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 Y2)J=J._def.innerType;$[F]=J}return new SD({...this._def,shape:()=>$})}keyof(){return qH(HD.objectKeys(this.shape))}};SD.create=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strip",catchall:I2.create(),typeName:i.ZodObject,...FD($)})};SD.strictCreate=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strict",catchall:I2.create(),typeName:i.ZodObject,...FD($)})};SD.lazycreate=(D,$)=>{return new SD({shape:D,unknownKeys:"strip",catchall:I2.create(),typeName:i.ZodObject,...FD($)})};m1=class m1 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let G of J)if(G.result.status==="valid")return G.result;for(let G of J)if(G.result.status==="dirty")return $.common.issues.push(...G.ctx.common.issues),G.result;let Y=J.map((G)=>new R0(G.ctx.common.issues));return g($,{code:S.invalid_union,unionErrors:Y}),l}if($.common.async)return Promise.all(F.map(async(J)=>{let Y={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:Y}),ctx:Y}})).then(X);else{let J=void 0,Y=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},W=B._parseSync({data:$.data,path:$.path,parent:H});if(W.status==="valid")return W;else if(W.status==="dirty"&&!J)J={result:W,ctx:H};if(H.common.issues.length)Y.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let G=Y.map((B)=>new R0(B));return g($,{code:S.invalid_union,unionErrors:G}),l}}get options(){return this._def.options}};m1.create=(D,$)=>{return new m1({options:D,typeName:i.ZodUnion,...FD($)})};V7=class V7 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.object)return g($,{code:S.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:S.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 Y=p2(J.shape[D]);if(!Y.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let G of Y){if(X.has(G))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(G)}`);X.set(G,J)}}return new V7({typeName:i.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};p1=class p1 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,Y)=>{if(H7(J)||H7(Y))return l;let G=o$(J.value,Y.value);if(!G.valid)return g(F,{code:S.invalid_intersection_types}),l;if(W7(J)||W7(Y))$.dirty();return{status:$.value,value:G.data}};if(F.common.async)return Promise.all([this._def.left._parseAsync({data:F.data,path:F.path,parent:F}),this._def.right._parseAsync({data:F.data,path:F.path,parent:F})]).then(([J,Y])=>X(J,Y));else return X(this._def.left._parseSync({data:F.data,path:F.path,parent:F}),this._def.right._parseSync({data:F.data,path:F.path,parent:F}))}};p1.create=(D,$,F)=>{return new p1({left:D,right:$,typeName:i.ZodIntersection,...FD(F)})};T2=class T2 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.array)return g(F,{code:S.invalid_type,expected:h.array,received:F.parsedType}),l;if(F.data.length<this._def.items.length)return g(F,{code:S.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:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((Y,G)=>{let B=this._def.items[G]||this._def.rest;if(!B)return null;return B._parse(new B2(F,Y,F.path,G))}).filter((Y)=>!!Y);if(F.common.async)return Promise.all(J).then((Y)=>{return X0.mergeArray($,Y)});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:i.ZodTuple,rest:null,...FD($)})};Y3=class Y3 extends GD{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:S.invalid_type,expected:h.object,received:F.parsedType}),l;let X=[],J=this._def.keyType,Y=this._def.valueType;for(let G in F.data)X.push({key:J._parse(new B2(F,G,F.path,G)),value:Y._parse(new B2(F,F.data[G],F.path,G)),alwaysSet:G 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 GD)return new Y3({keyType:D,valueType:$,typeName:i.ZodRecord,...FD(F)});return new Y3({keyType:J2.create(),valueType:D,typeName:i.ZodRecord,...FD($)})}};B3=class B3 extends GD{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:S.invalid_type,expected:h.map,received:F.parsedType}),l;let X=this._def.keyType,J=this._def.valueType,Y=[...F.data.entries()].map(([G,B],H)=>{return{key:X._parse(new B2(F,G,F.path,[H,"key"])),value:J._parse(new B2(F,B,F.path,[H,"value"]))}});if(F.common.async){let G=new Map;return Promise.resolve().then(async()=>{for(let B of Y){let H=await B.key,W=await B.value;if(H.status==="aborted"||W.status==="aborted")return l;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}})}else{let G=new Map;for(let B of Y){let{key:H,value:W}=B;if(H.status==="aborted"||W.status==="aborted")return l;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}}}};B3.create=(D,$,F)=>{return new B3({valueType:$,keyType:D,typeName:i.ZodMap,...FD(F)})};l8=class l8 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.set)return g(F,{code:S.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:S.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:S.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function Y(B){let H=new Set;for(let W of B){if(W.status==="aborted")return l;if(W.status==="dirty")$.dirty();H.add(W.value)}return{status:$.value,value:H}}let G=[...F.data.values()].map((B,H)=>J._parse(new B2(F,B,F.path,H)));if(F.common.async)return Promise.all(G).then((B)=>Y(B));else return Y(G)}min(D,$){return new l8({...this._def,minSize:{value:D,message:p.toString($)}})}max(D,$){return new l8({...this._def,maxSize:{value:D,message:p.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};l8.create=(D,$)=>{return new l8({valueType:D,minSize:null,maxSize:null,typeName:i.ZodSet,...FD($)})};x1=class x1 extends GD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.function)return g($,{code:S.invalid_type,expected:h.function,received:$.parsedType}),l;function F(G,B){return X3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,k1(),m2].filter((H)=>!!H),issueData:{code:S.invalid_arguments,argumentsError:B}})}function X(G,B){return X3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,k1(),m2].filter((H)=>!!H),issueData:{code:S.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},Y=$.data;if(this._def.returns instanceof i8){let G=this;return H0(async function(...B){let H=new R0([]),W=await G._def.args.parseAsync(B,J).catch((Q)=>{throw H.addIssue(F(B,Q)),H}),_=await Reflect.apply(Y,this,W);return await G._def.returns._def.type.parseAsync(_,J).catch((Q)=>{throw H.addIssue(X(_,Q)),H})})}else{let G=this;return H0(function(...B){let H=G._def.args.safeParse(B,J);if(!H.success)throw new R0([F(B,H.error)]);let W=Reflect.apply(Y,this,H.data),_=G._def.returns.safeParse(W,J);if(!_.success)throw new R0([X(W,_.error)]);return _.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new x1({...this._def,args:T2.create(D).rest(W8.create())})}returns(D){return new x1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new x1({args:D?D:T2.create([]).rest(W8.create()),returns:$||W8.create(),typeName:i.ZodFunction,...FD(F)})}};c1=class c1 extends GD{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};c1.create=(D,$)=>{return new c1({getter:D,typeName:i.ZodLazy,...FD($)})};d1=class d1 extends GD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return g($,{received:$.data,code:S.invalid_literal,expected:this._def.value}),l}return{status:"valid",value:D.data}}get value(){return this._def.value}};d1.create=(D,$)=>{return new d1({value:D,typeName:i.ZodLiteral,...FD($)})};U8=class U8 extends GD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return g($,{expected:HD.joinValues(F),received:$.parsedType,code:S.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:S.invalid_enum_value,options:F}),l}return H0(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 U8.create(D,{...this._def,...$})}exclude(D,$=this._def){return U8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};U8.create=qH;l1=class l1 extends GD{_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:S.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:S.invalid_enum_value,options:X}),l}return H0(D.data)}get enum(){return this._def.values}};l1.create=(D,$)=>{return new l1({values:D,typeName:i.ZodNativeEnum,...FD($)})};i8=class i8 extends GD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.promise&&$.common.async===!1)return g($,{code:S.invalid_type,expected:h.promise,received:$.parsedType}),l;let F=$.parsedType===h.promise?$.data:Promise.resolve($.data);return H0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};i8.create=(D,$)=>{return new i8({type:D,typeName:i.ZodPromise,...FD($)})};H2=class H2 extends GD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===i.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(Y)=>{if(g(F,Y),Y.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let Y=X.transform(F.data,J);if(F.common.async)return Promise.resolve(Y).then(async(G)=>{if($.value==="aborted")return l;let B=await this._def.schema._parseAsync({data:G,path:F.path,parent:F});if(B.status==="aborted")return l;if(B.status==="dirty")return p8(B.value);if($.value==="dirty")return p8(B.value);return B});else{if($.value==="aborted")return l;let G=this._def.schema._parseSync({data:Y,path:F.path,parent:F});if(G.status==="aborted")return l;if(G.status==="dirty")return p8(G.value);if($.value==="dirty")return p8(G.value);return G}}if(X.type==="refinement"){let Y=(G)=>{let B=X.refinement(G,J);if(F.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return G};if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(G.status==="aborted")return l;if(G.status==="dirty")$.dirty();return Y(G.value),{status:$.value,value:G.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(G.status==="aborted")return l;if(G.status==="dirty")$.dirty();return Y(G.value).then(()=>{return{status:$.value,value:G.value}})})}if(X.type==="transform")if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!H8(Y))return l;let G=X.transform(Y.value,J);if(G instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:G}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(!H8(Y))return l;return Promise.resolve(X.transform(Y.value,J)).then((G)=>({status:$.value,value:G}))});HD.assertNever(X)}};H2.create=(D,$,F)=>{return new H2({schema:D,typeName:i.ZodEffects,effect:$,...FD(F)})};H2.createWithPreprocess=(D,$,F)=>{return new H2({schema:$,effect:{type:"preprocess",transform:D},typeName:i.ZodEffects,...FD(F)})};Y2=class Y2 extends GD{_parse(D){if(this._getType(D)===h.undefined)return H0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};Y2.create=(D,$)=>{return new Y2({innerType:D,typeName:i.ZodOptional,...FD($)})};c2=class c2 extends GD{_parse(D){if(this._getType(D)===h.null)return H0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};c2.create=(D,$)=>{return new c2({innerType:D,typeName:i.ZodNullable,...FD($)})};i1=class i1 extends GD{_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}};i1.create=(D,$)=>{return new i1({innerType:D,typeName:i.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};n1=class n1 extends GD{_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(v1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new R0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new R0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};n1.create=(D,$)=>{return new n1({innerType:D,typeName:i.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};H3=class H3 extends GD{_parse(D){if(this._getType(D)!==h.nan){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.nan,received:F.parsedType}),l}return{status:"valid",value:D.data}}};H3.create=(D)=>{return new H3({typeName:i.ZodNaN,...FD(D)})};vN=Symbol("zod_brand");_7=class _7 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};W3=class W3 extends GD{_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(),p8(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 W3({in:D,out:$,typeName:i.ZodPipeline})}};s1=class s1 extends GD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(H8(X))X.value=Object.freeze(X.value);return X};return v1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};s1.create=(D,$)=>{return new s1({innerType:D,typeName:i.ZodReadonly,...FD($)})};hN={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"})(i||(i={}));NH=J2.create,LH=V8.create,gN=H3.create,yN=_8.create,jH=g1.create,uN=c8.create,mN=J3.create,pN=y1.create,cN=u1.create,dN=d8.create,lN=W8.create,iN=I2.create,nN=G3.create,sN=G2.create,rN=SD.create,aN=SD.strictCreate,oN=m1.create,tN=V7.create,eN=p1.create,DL=T2.create,$L=Y3.create,FL=B3.create,XL=l8.create,JL=x1.create,GL=c1.create,YL=d1.create,BL=U8.create,HL=l1.create,WL=i8.create,VL=H2.create,_L=Y2.create,UL=c2.create,QL=H2.createWithPreprocess,AL=W3.create,RL={string:(D)=>J2.create({...D,coerce:!0}),number:(D)=>V8.create({...D,coerce:!0}),boolean:(D)=>g1.create({...D,coerce:!0}),bigint:(D)=>_8.create({...D,coerce:!0}),date:(D)=>c8.create({...D,coerce:!0})},OL=l});var V={};y8(V,{void:()=>nN,util:()=>HD,unknown:()=>lN,union:()=>oN,undefined:()=>pN,tuple:()=>DL,transformer:()=>VL,symbol:()=>mN,string:()=>NH,strictObject:()=>aN,setErrorMap:()=>UN,set:()=>XL,record:()=>$L,quotelessJson:()=>VN,promise:()=>WL,preprocess:()=>QL,pipeline:()=>AL,ostring:()=>KL,optional:()=>_L,onumber:()=>EL,oboolean:()=>CL,objectUtil:()=>n$,object:()=>rN,number:()=>LH,nullable:()=>UL,null:()=>cN,never:()=>iN,nativeEnum:()=>HL,nan:()=>gN,map:()=>FL,makeIssue:()=>X3,literal:()=>YL,lazy:()=>GL,late:()=>hN,isValid:()=>H8,isDirty:()=>W7,isAsync:()=>v1,isAborted:()=>H7,intersection:()=>eN,instanceof:()=>xN,getParsedType:()=>z2,getErrorMap:()=>k1,function:()=>JL,enum:()=>BL,effect:()=>VL,discriminatedUnion:()=>tN,defaultErrorMap:()=>m2,datetimeRegex:()=>ZH,date:()=>uN,custom:()=>PH,coerce:()=>RL,boolean:()=>jH,bigint:()=>yN,array:()=>sN,any:()=>dN,addIssueToContext:()=>g,ZodVoid:()=>G3,ZodUnknown:()=>W8,ZodUnion:()=>m1,ZodUndefined:()=>y1,ZodType:()=>GD,ZodTuple:()=>T2,ZodTransformer:()=>H2,ZodSymbol:()=>J3,ZodString:()=>J2,ZodSet:()=>l8,ZodSchema:()=>GD,ZodRecord:()=>Y3,ZodReadonly:()=>s1,ZodPromise:()=>i8,ZodPipeline:()=>W3,ZodParsedType:()=>h,ZodOptional:()=>Y2,ZodObject:()=>SD,ZodNumber:()=>V8,ZodNullable:()=>c2,ZodNull:()=>u1,ZodNever:()=>I2,ZodNativeEnum:()=>l1,ZodNaN:()=>H3,ZodMap:()=>B3,ZodLiteral:()=>d1,ZodLazy:()=>c1,ZodIssueCode:()=>S,ZodIntersection:()=>p1,ZodFunction:()=>x1,ZodFirstPartyTypeKind:()=>i,ZodError:()=>R0,ZodEnum:()=>U8,ZodEffects:()=>H2,ZodDiscriminatedUnion:()=>V7,ZodDefault:()=>i1,ZodDate:()=>c8,ZodCatch:()=>n1,ZodBranded:()=>_7,ZodBoolean:()=>g1,ZodBigInt:()=>_8,ZodArray:()=>G2,ZodAny:()=>d8,Schema:()=>GD,ParseStatus:()=>X0,OK:()=>H0,NEVER:()=>OL,INVALID:()=>l,EMPTY_PATH:()=>QN,DIRTY:()=>p8,BRAND:()=>vN});var t$=Z(()=>{B7();r$();KH();F3();zH();Y7()});var yD=Z(()=>{t$();t$()});function e$(D){return Object.prototype.hasOwnProperty.call(gH,D)}var o,k0,IH,TH,wH,SH,bH,fH,kH,vH,hH,U7,Q7,xH,gH;var yH=Z(()=>{yD();o={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"},k0=V.object({workerId:V.string().min(1)}),IH=k0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),TH=k0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),wH=k0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),SH=k0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),bH=k0.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()}),fH=k0.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()}),kH=k0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),vH=k0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),hH=k0.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()}),U7=k0.extend({otp:V.string().min(1),expiresAt:V.number().int()}),Q7=k0.extend({deviceToken:V.string().min(1)}),xH=k0.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"])}),gH={[o.WORKER_ONLINE]:IH,[o.WORKER_OFFLINE]:TH,[o.CHAT_MESSAGE]:wH,[o.AGENT_THINKING]:SH,[o.AGENT_TOOL_CALL]:bH,[o.AGENT_DONE]:fH,[o.CONFIG_CHANGED]:kH,[o.LOGS_LINE]:vH,[o.APPROVAL_REQUESTED]:hH,[o.ENROLLMENT_OTP]:U7,[o.ENROLLMENT_APPROVED]:Q7,[o.ENROLLMENT_PENDING]:xH}});var jD;var uH=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 A7=20;var r1,K7="0123456789abcdefghjkmnpqrstvwxyz";var mH=Z(()=>{r1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function Q8(D){return typeof D==="string"&&d2.test(D)}var E7="wtk_",d2;var pH=Z(()=>{d2=/^wtk_[\w-]{32,}$/});var DF=Z(()=>{mH();pH()});import{randomBytes as ZL}from"crypto";function qL(D,$){let F=0,X=0,J="";for(let Y=0;Y<D.length&&J.length<$;Y+=1){X=X<<8|D[Y],F+=8;while(F>=5&&J.length<$)J+=K7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function $F(){let D=ZL(10);return`w_${qL(D,12)}`}var cH=Z(()=>{DF()});var FF,XF,C7,PL,JF,dH;var lH=Z(()=>{yD();FF=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()})]),XF=V.enum(["pending","running","success","failed","pending_approval","denied"]),C7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),PL=V.record(V.unknown()),JF=V.enum(["stop","tool","length","error","cancelled"]),dH=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:FF,status:XF.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:C7}),V.object({type:V.literal("engine_binding"),engine:V.string().min(1),binding:PL.nullable()}),V.object({type:V.literal("finish"),reason:JF,usage:C7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var iH=Z(()=>{lH()});var j0=Z(()=>{uH();DF();cH();iH()});var n8,GF;var YF=Z(()=>{yD();n8={OPERATOR:"operator",NODE:"node"},GF=V.union([V.literal(n8.OPERATOR),V.literal(n8.NODE)])});function s8(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=tH.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 nH,sH,rH,NL,LL,aH,oH,tH;var eH=Z(()=>{j0();yD();YF();nH=V.object({type:V.literal("connect"),role:GF,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(d2,"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"})}),sH=V.object({type:V.literal("request"),id:V.string().min(1),method:V.string().min(1),params:V.unknown().optional()}),rH=V.object({code:V.string().min(1),message:V.string(),details:V.unknown().optional()}),NL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),LL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:rH}),aH=V.discriminatedUnion("ok",[NL,LL]),oH=V.object({type:V.literal("event"),name:V.string().min(1),payload:V.unknown(),ts:V.number().int()}),tH=V.union([nH,sH,aH,oH])});function vD(D){return D}function Z7(D){return Object.prototype.hasOwnProperty.call(oD,D)}function V3(D){if(!Z7(D))return;return oD[D]}var r8,jL,zL,DW,a1,IL,TL,wL,SL,R7,bL,fL,kL,O7,vL,hL,xL,gL,yL,uL,$W,FW,mL,pL,cL,BF,M7,XW,JW,dL,lL,iL,nL,oD;var GW=Z(()=>{yD();r8=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()}),jL=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(r8)}),routing:"operator-to-gateway"}),zL=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"}),DW=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().min(1),displayName:V.string().optional()}),a1=V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),IL=vD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:DW,result:a1,routing:"operator-to-gateway"}),TL=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:a1,routing:"operator-to-gateway"}),wL=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"}),SL=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"}),R7=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()}),bL=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(R7)}),routing:"operator-to-gateway"}),fL=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"}),kL=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"}),O7=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()}),vL=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(O7),hasMore:V.boolean()}),routing:"operator-to-gateway"}),hL=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"}),xL=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"}),gL=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"}),yL=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"}),uL=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"}),$W=V.enum(["allow","deny"]),FW=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()}),mL=vD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:V.object({workerId:V.string().min(1)}),result:V.object({approvals:V.array(FW)}),routing:"operator-to-node"}),pL=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:$W}),result:V.object({granted:V.boolean()}),routing:"operator-to-node"}),cL=vD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:V.object({}).optional().default({}),result:V.object({now:V.number().int(),online:V.array(r8)}),routing:"operator-to-gateway"}),BF=V.enum(["web","line","telegram","lark","whatsapp"]),M7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:BF,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()}),XW=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:BF,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),JW=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:BF.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"}),dL=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(M7)}),routing:"operator-to-node"}),lL=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:XW}),result:V.object({job:M7}),routing:"operator-to-node"}),iL=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"}),nL=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:JW}),result:V.object({job:M7}),routing:"operator-to-node"}),oD={"workers.list":jL,"workers.info":zL,"workers.pair":IL,"workers.launch":TL,"workers.stop":wL,"workers.remove":SL,"enroll.list":bL,"enroll.approve":fL,"enroll.reject":kL,"audit.list":vL,"chat.send":hL,"config.get":xL,"config.put":gL,"token.rotate":yL,"logs.tail":uL,"system.presence":cL,"approval.list":mL,"approval.grant":pL,"cron.list":dL,"cron.add":lL,"cron.remove":iL,"cron.update":nL}});var J0=Z(()=>{yH();eH();GW();YF()});var j7={};y8(j7,{saveAimState:()=>WF,resolveGatewayPidPath:()=>P7,resolveGatewayLogPath:()=>N7,resolveAimStatePath:()=>HF,patchAimState:()=>_3,loadAimState:()=>L7});import{chmod as sL,mkdir as rL,readFile as aL,rename as oL,writeFile as tL}from"fs/promises";import q7 from"path";function HF(){return q7.join(u2(),"aim.json")}function P7(){return q7.join(u2(),"aim-gateway.pid")}function N7(){return q7.join(u2(),"aim-gateway.log")}function Dj(){return`op-${crypto.randomUUID()}`}function $j(){return{gatewayUrl:eL,deviceId:Dj(),deviceToken:""}}function Fj(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 L7(){let D=HF(),$;try{$=await aL(D,"utf8")}catch(X){if(X.code==="ENOENT")return $j();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(!Fj(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return F}async function WF(D){let $=HF();await rL(q7.dirname($),{recursive:!0});let F=`${$}.tmp`;await tL(F,`${JSON.stringify(D,null,2)}
|
|
104
|
-
`,{encoding:"utf8",mode:384}),await oL(F,$);try{await sL($,384)}catch{}}async function _3(D){let F={...await L7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;F[X]=J}return await WF(F),F}var eL="ws://localhost:9218";var a8=Z(()=>{L2()});function j(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,N))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(N in F&&F[N]===$[N])return!0;F=Object.getPrototypeOf(F)}return!1}var N;var r=Z(()=>{N=Symbol.for("drizzle:entityKind")});var EW,VF,_F;var z7=Z(()=>{r();EW=class EW{static[N]="ConsoleLogWriter";write(D){console.log(D)}};VF=class VF{static[N]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new EW}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}`)}};_F=class _F{static[N]="NoopLogger";logQuery(){}}});var z0;var U3=Z(()=>{z0=Symbol.for("drizzle:Name")});function A8(D){return D[z0]}function o8(D){return`${D[I7]??"public"}.${D[z0]}`}var I7,T7,CW,UF,QF,Q3,RW,Xj,x;var W0=Z(()=>{r();U3();I7=Symbol.for("drizzle:Schema"),T7=Symbol.for("drizzle:Columns"),CW=Symbol.for("drizzle:ExtraConfigColumns"),UF=Symbol.for("drizzle:OriginalName"),QF=Symbol.for("drizzle:BaseName"),Q3=Symbol.for("drizzle:IsAlias"),RW=Symbol.for("drizzle:ExtraConfigBuilder"),Xj=Symbol.for("drizzle:IsDrizzleTable");x=class x{static[N]="Table";static Symbol={Name:z0,Schema:I7,OriginalName:UF,Columns:T7,ExtraConfigColumns:CW,BaseName:QF,IsAlias:Q3,ExtraConfigBuilder:RW};[z0];[UF];[I7];[T7];[CW];[QF];[Q3]=!1;[Xj]=!0;[RW]=void 0;constructor(D,$,F){this[z0]=this[UF]=D,this[I7]=$,this[QF]=F}}});var ED;var V2=Z(()=>{r();ED=class ED{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[N]="Column";name;keyAsName;primary;notNull;default;defaultFn;onUpdateFn;hasDefault;isUnique;uniqueName;uniqueType;dataType;columnType;enumValues=void 0;generated=void 0;generatedIdentity=void 0;config;mapFromDriverValue(D){return D}mapToDriverValue(D){return D}shouldDisableInsert(){return this.config.generated!==void 0&&this.config.generated.type!=="byDefault"}}});var AF;var KF=Z(()=>{r();AF=class AF{static[N]="ColumnBuilder";config;constructor(D,$,F){this.config={name:D,keyAsName:D==="",notNull:!1,default:void 0,hasDefault:!1,primaryKey:!1,isUnique:!1,uniqueName:void 0,uniqueType:void 0,dataType:$,columnType:F,generated:void 0}}$type(){return this}notNull(){return this.config.notNull=!0,this}default(D){return this.config.default=D,this.config.hasDefault=!0,this}$defaultFn(D){return this.config.defaultFn=D,this.config.hasDefault=!0,this}$default=this.$defaultFn;$onUpdateFn(D){return this.config.onUpdateFn=D,this.config.hasDefault=!0,this}$onUpdate=this.$onUpdateFn;primaryKey(){return this.config.primaryKey=!0,this.config.notNull=!0,this}setName(D){if(this.config.name!=="")return;this.config.name=D}}});function OW(D,...$){return D(...$)}var MW=()=>{};function ZW(D,$){return`${D[z0]}_${$.join("_")}_unique`}var qW=Z(()=>{U3()});var A3,Jj;var PW=Z(()=>{V2();r();qW();A3=class A3 extends ED{constructor(D,$){if(!$.uniqueName)$.uniqueName=ZW(D,[$.name]);super(D,$);this.table=D}static[N]="PgColumn"};Jj=class Jj extends A3{static[N]="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 LW(D){return!!D&&typeof D==="function"&&NW in D&&D[NW]===!0}var Gj,NW,Yj;var jW=Z(()=>{r();PW();Gj=class Gj extends A3{static[N]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};NW=Symbol.for("drizzle:isPgEnum");Yj=class Yj extends A3{static[N]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var pD,K3;var _2=Z(()=>{r();pD=class pD{static[N]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};K3=class K3 extends pD{static[N]="WithSubquery"}});var zW="0.44.7";var IW=()=>{};var EF,CF,TW;var wW=Z(()=>{MW();IW();TW={startActiveSpan(D,$){if(!EF)return $();if(!CF)CF=EF.trace.getTracer("drizzle-orm",zW);return OW((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(Y){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:Y instanceof Error?Y.message:"Unknown error"}),Y}finally{J.end()}}),EF,CF)}}});var fD;var l2=Z(()=>{fD=Symbol.for("drizzle:ViewBaseConfig")});function RF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Bj(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 SW(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 E3(D,$){return D.map((F)=>{if(j(F,K8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(j(F,I0)&&j(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,w7,bW,fW,vs,I0,K8,Hj,v0;var tD=Z(()=>{r();jW();_2();wW();l2();V2();W0();nD=class nD{static[N]="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(j($,x)){let F=$[x.Symbol.Schema];this.usedTables.push(F===void 0?$[x.Symbol.Name]:F+"."+$[x.Symbol.Name])}}static[N]="SQL";decoder=bW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return TW.startActiveSpan("drizzle.buildSQL",($)=>{let F=this.buildQueryFromSourceParams(this.queryChunks,D);return $?.setAttributes({"drizzle.query.text":F.sql,"drizzle.query.params":JSON.stringify(F.params)}),F})}buildQueryFromSourceParams(D,$){let F=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:X,escapeName:J,escapeParam:Y,prepareTyping:G,inlineParams:B,paramStartIndex:H}=F;return Bj(D.map((W)=>{if(j(W,nD))return{sql:W.value.join(""),params:[]};if(j(W,w7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let _=[new nD("(")];for(let[U,Q]of W.entries())if(_.push(Q),U<W.length-1)_.push(new nD(", "));return _.push(new nD(")")),this.buildQueryFromSourceParams(_,F)}if(j(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(j(W,x)){let _=W[x.Symbol.Schema],U=W[x.Symbol.Name];return{sql:_===void 0||W[Q3]?J(U):J(_)+"."+J(U),params:[]}}if(j(W,ED)){let _=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(_),params:[]};let U=W.table[x.Symbol.Schema];return{sql:W.table[Q3]||U===void 0?J(W.table[x.Symbol.Name])+"."+J(_):J(U)+"."+J(W.table[x.Symbol.Name])+"."+J(_),params:[]}}if(j(W,v0)){let _=W[fD].schema,U=W[fD].name;return{sql:_===void 0||W[fD].isAlias?J(U):J(_)+"."+J(U),params:[]}}if(j(W,I0)){if(j(W.value,K8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};let _=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(j(_,m))return this.buildQueryFromSourceParams([_],F);if(B)return{sql:this.mapInlineParam(_,F),params:[]};let U=["none"];if(G)U=[G(W.encoder)];return{sql:Y(H.value++,_),params:[_],typings:U}}if(j(W,K8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};if(j(W,m.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(j(W,pD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new nD("("),W._.sql,new nD(") "),new w7(W._.alias)],F)}if(LW(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(RF(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:Y(H.value++,W),params:[W],typings:["none"]}}))}mapInlineParam(D,{escapeString:$}){if(D===null)return"null";if(typeof D==="number"||typeof D==="boolean")return D.toString();if(typeof D==="string")return $(D);if(typeof D==="object"){let F=D.toString();if(F==="[object Object]")return $(JSON.stringify(D));return $(F)}throw Error("Unexpected param value: "+D)}getSQL(){return this}as(D){if(D===void 0)return this;return new m.Aliased(this,D)}mapWith(D){return this.decoder=typeof D==="function"?{mapFromDriverValue:D}:D,this}inlineParams(){return this.shouldInlineParams=!0,this}if(D){return D?this:void 0}};w7=class w7{constructor(D){this.value=D}static[N]="Name";brand;getSQL(){return new m([this])}};bW={mapFromDriverValue:(D)=>D},fW={mapToDriverValue:(D)=>D},vs={...bW,...fW};I0=class I0{constructor(D,$=fW){this.value=D,this.encoder=$}static[N]="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 _=[];for(let[U,Q]of H.entries()){if(U>0&&W!==void 0)_.push(W);_.push(Q)}return new m(_)}D.join=J;function Y(H){return new w7(H)}D.identifier=Y;function G(H){return new K8(H)}D.placeholder=G;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[N]="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[N]="Placeholder";getSQL(){return new m([this])}};Hj=Symbol.for("drizzle:IsDrizzleView");v0=class v0{static[N]="View";[fD];[Hj]=!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])}};ED.prototype.getSQL=function(){return new m([this])};x.prototype.getSQL=function(){return new m([this])};pD.prototype.getSQL=function(){return new m([this])}});function OF(D,$,F){let X={},J=D.reduce((Y,{path:G,field:B},H)=>{let W;if(j(B,ED))W=B;else if(j(B,m))W=B.decoder;else W=B.sql.decoder;let _=Y;for(let[U,Q]of G.entries())if(U<G.length-1){if(!(Q in _))_[Q]={};_=_[Q]}else{let A=$[H],E=_[Q]=A===null?null:W.mapFromDriverValue(A);if(F&&j(B,ED)&&G.length===2){let C=G[0];if(!(C in X))X[C]=E===null?A8(B.table):!1;else if(typeof X[C]==="string"&&X[C]!==A8(B.table))X[C]=!1}}return Y},{});if(F&&Object.keys(X).length>0){for(let[Y,G]of Object.entries(X))if(typeof G==="string"&&!F[G])J[Y]=null}return J}function h0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let Y=$?[...$,X]:[X];if(j(J,ED)||j(J,m)||j(J,m.Aliased))F.push({path:Y,field:J});else if(j(J,x))F.push(...h0(J[x.Symbol.Columns],Y));else F.push(...h0(J,Y));return F},[])}function C3(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,Y]of F.entries())if(Y!==X[J])return!1;return!0}function S7(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(j(J,m)||j(J,ED))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 kW(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 vW(D){return D[x.Symbol.Columns]}function R3(D){return j(D,pD)?D._.alias:j(D,v0)?D[fD].name:j(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 hW(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 MF;var O0=Z(()=>{V2();r();tD();_2();W0();l2();MF=typeof TextDecoder>"u"?null:new TextDecoder});var xW,gW,ZF;var yW=Z(()=>{r();W0();xW=Symbol.for("drizzle:PgInlineForeignKeys"),gW=Symbol.for("drizzle:EnableRLS");ZF=class ZF extends x{static[N]="PgTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:xW,EnableRLS:gW});[xW]=[];[gW]=!1;[x.Symbol.ExtraConfigBuilder]=void 0;[x.Symbol.ExtraConfigColumns]={}}});var qF,uW;var mW=Z(()=>{r();yW();qF=class qF{static[N]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new uW(D,this.columns,this.name)}};uW=class uW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[N]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[ZF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function M0(D,$){if(SW($)&&!RF(D)&&!j(D,I0)&&!j(D,K8)&&!j(D,ED)&&!j(D,x)&&!j(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 cW(...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 dW(D){return M`not ${D}`}function E8(D,$){if(Array.isArray($)){if($.length===0)return M`false`;return M`${D} in ${$.map((F)=>M0(F,D))}`}return M`${D} in ${M0($,D)}`}function iW(D,$){if(Array.isArray($)){if($.length===0)return M`true`;return M`${D} not in ${$.map((F)=>M0(F,D))}`}return M`${D} not in ${M0($,D)}`}function M3(D){return M`${D} is null`}function nW(D){return M`${D} is not null`}function sW(D){return M`exists ${D}`}function rW(D){return M`not exists ${D}`}function aW(D,$,F){return M`${D} between ${M0($,D)} and ${M0(F,D)}`}function oW(D,$,F){return M`${D} not between ${M0($,D)} and ${M0(F,D)}`}function tW(D,$){return M`${D} like ${$}`}function eW(D,$){return M`${D} not like ${$}`}function DV(D,$){return M`${D} ilike ${$}`}function $V(D,$){return M`${D} not ilike ${$}`}var v=(D,$)=>{return M`${D} = ${M0($,D)}`},pW=(D,$)=>{return M`${D} <> ${M0($,D)}`},O3=(D,$)=>{return M`${D} > ${M0($,D)}`},lW=(D,$)=>{return M`${D} >= ${M0($,D)}`},b7=(D,$)=>{return M`${D} < ${M0($,D)}`},f7=(D,$)=>{return M`${D} <= ${M0($,D)}`};var FV=Z(()=>{V2();r();W0();tD()});function S2(D){return M`${D} asc`}function hD(D){return M`${D} desc`}var XV=Z(()=>{tD()});var PF=Z(()=>{FV();XV()});function GV(){return{and:uD,between:aW,eq:v,exists:sW,gt:O3,gte:lW,ilike:DV,inArray:E8,isNull:M3,isNotNull:nW,like:tW,lt:b7,lte:f7,ne:pW,not:dW,notBetween:oW,notExists:rW,notLike:eW,notIlike:$V,notInArray:iW,or:cW,sql:M}}function YV(){return{sql:M,asc:S2,desc:hD}}function BV(D,$){if(Object.keys(D).length===1&&"default"in D&&!j(D.default,x))D=D.default;let F={},X={},J={};for(let[Y,G]of Object.entries(D))if(j(G,x)){let B=o8(G),H=X[B];F[B]=Y,J[Y]={tsName:Y,dbName:G[x.Symbol.Name],schema:G[x.Symbol.Schema],columns:G[x.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let _ of Object.values(G[x.Symbol.Columns]))if(_.primary)J[Y].primaryKey.push(_);let W=G[x.Symbol.ExtraConfigBuilder]?.(G[x.Symbol.ExtraConfigColumns]);if(W){for(let _ of Object.values(W))if(j(_,qF))J[Y].primaryKey.push(..._.columns)}}else if(j(G,JV)){let B=o8(G.table),H=F[B],W=G.config($(G.table)),_;for(let[U,Q]of Object.entries(W))if(H){let A=J[H];if(A.relations[U]=Q,_)A.primaryKey.push(..._)}else{if(!(B in X))X[B]={relations:{},primaryKey:_};X[B].relations[U]=Q}}return{tables:J,tableNamesMap:F}}function Wj(D){return function(F,X){return new C8(D,F,X,X?.fields.reduce((J,Y)=>J&&Y.notNull,!0)??!1)}}function Vj(D){return function(F,X){return new Z3(D,F,X)}}function HV(D,$,F){if(j(F,C8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[o8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[x.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let Y=F.sourceTable,G=$[o8(Y)];if(!G)throw Error(`Table "${Y[x.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[x.Symbol.Name]}". Please specify relation name`);if(B[0]&&j(B[0],C8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${G}.${F.fieldName}"`)}function WV(D){return{one:Wj(D),many:Vj(D)}}function k7(D,$,F,X,J=(Y)=>Y){let Y={};for(let[G,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[G],_=typeof W==="string"?JSON.parse(W):W;Y[B.tsKey]=j(H,C8)?_&&k7(D,D[B.relationTableTsKey],_,B.selection,J):_.map((U)=>k7(D,D[B.relationTableTsKey],U,B.selection,J))}else{let H=J(F[G]),W=B.field,_;if(j(W,ED))_=W;else if(j(W,m))_=W.decoder;else _=W.sql.decoder;Y[B.tsKey]=H===null?null:_.mapFromDriverValue(H)}return Y}var NF,JV,C8,Z3;var q3=Z(()=>{W0();V2();r();mW();PF();tD();NF=class NF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[x.Symbol.Name]}static[N]="Relation";referencedTableName;fieldName};JV=class JV{constructor(D,$){this.table=D,this.config=$}static[N]="Relations"};C8=class C8 extends NF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[N]="One";withFieldName(D){let $=new C8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};Z3=class Z3 extends NF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[N]="Many";withFieldName(D){let $=new Z3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function v7(D,$){return new Proxy(D,new P3($,!1))}function b2(D,$){return new Proxy(D,new o1(new Proxy(D.table,new P3($,!1))))}function LF(D,$){return new m.Aliased(N3(D.sql,$),D.fieldAlias)}function N3(D,$){return M.join(D.queryChunks.map((F)=>{if(j(F,ED))return b2(F,$);if(j(F,m))return N3(F,$);if(j(F,m.Aliased))return LF(F,$);return F}))}var o1,P3;var h7=Z(()=>{V2();r();tD();W0();l2();o1=class o1{constructor(D){this.table=D}static[N]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};P3=class P3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[N]="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((Y)=>{J[Y]=new Proxy(X[Y],new o1(new Proxy(D,this)))}),J}let F=D[$];if(j(F,ED))return new Proxy(F,new o1(new Proxy(D,this)));return F}}});var cD;var t1=Z(()=>{h7();V2();r();tD();_2();l2();cD=class cD{static[N]="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=(j(D,pD)?D._.selectedFields:j(D,v0)?D[fD].selectedFields:D)[$];if(j(X,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(j(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(j(X,ED)){if(this.config.alias)return new Proxy(X,new o1(new Proxy(X.table,new P3(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 C0;var i2=Z(()=>{r();C0=class C0{static[N]="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 jF,VV;var zF=Z(()=>{r();U3();jF=class jF{static[N]="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 VV(D,this)}};VV=class VV{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[N]="SQLiteForeignKey";reference;onUpdate;onDelete;getName(){let{name:D,columns:$,foreignColumns:F}=this.reference(),X=$.map((G)=>G.name),J=F.map((G)=>G.name),Y=[this.table[z0],...X,F[0].table[z0],...J];return D??`${Y.join("_")}_fk`}}});function _V(D,$){return`${D[z0]}_${$.join("_")}_unique`}var IF=Z(()=>{U3()});var eD,xD;var R8=Z(()=>{KF();V2();r();zF();IF();eD=class eD extends AF{static[N]="SQLiteColumnBuilder";foreignKeyConfigs=[];references(D,$={}){return this.foreignKeyConfigs.push({ref:D,actions:$}),this}unique(D){return this.config.isUnique=!0,this.config.uniqueName=D,this}generatedAlwaysAs(D,$){return this.config.generated={as:D,type:"always",mode:$?.mode??"virtual"},this}buildForeignKeys(D,$){return this.foreignKeyConfigs.map(({ref:F,actions:X})=>{return((J,Y)=>{let G=new jF(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(Y.onUpdate)G.onUpdate(Y.onUpdate);if(Y.onDelete)G.onDelete(Y.onDelete);return G.build($)})(F,X)})}};xD=class xD extends ED{constructor(D,$){if(!$.uniqueName)$.uniqueName=_V(D,[$.name]);super(D,$);this.table=D}static[N]="SQLiteColumn"}});function RV(D,$){let{name:F,config:X}=w2(D,$);if(X?.mode==="json")return new AV(F);if(X?.mode==="bigint")return new UV(F);return new EV(F)}var UV,QV,AV,KV,EV,CV;var TF=Z(()=>{r();O0();R8();UV=class UV extends eD{static[N]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new QV(D,this.config)}};QV=class QV extends xD{static[N]="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(MF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};AV=class AV extends eD{static[N]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new KV(D,this.config)}};KV=class KV extends xD{static[N]="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(MF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};EV=class EV extends eD{static[N]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new CV(D,this.config)}};CV=class CV extends xD{static[N]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function ZV(D){return($,F)=>{let{name:X,config:J}=w2($,F);return new OV(X,J,D)}}var OV,MV;var wF=Z(()=>{r();O0();R8();OV=class OV extends eD{static[N]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new MV(D,this.config)}};MV=class MV extends xD{static[N]="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 NV(F,X.mode);if(X?.mode==="boolean")return new jV(F,X.mode);return new qV(F)}var x7,g7,qV,PV,NV,LV,jV,zV;var SF=Z(()=>{r();tD();O0();R8();x7=class x7 extends eD{static[N]="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()}};g7=class g7 extends xD{static[N]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};qV=class qV extends x7{static[N]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new PV(D,this.config)}};PV=class PV extends g7{static[N]="SQLiteInteger"};NV=class NV extends x7{static[N]="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 LV(D,this.config)}};LV=class LV extends g7{static[N]="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 $}};jV=class jV extends x7{static[N]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new zV(D,this.config)}};zV=class zV extends g7{static[N]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function kV(D,$){let{name:F,config:X}=w2(D,$),J=X?.mode;return J==="number"?new wV(F):J==="bigint"?new bV(F):new IV(F)}var IV,TV,wV,SV,bV,fV;var bF=Z(()=>{r();O0();R8();IV=class IV extends eD{static[N]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new TV(D,this.config)}};TV=class TV extends xD{static[N]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};wV=class wV extends eD{static[N]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new SV(D,this.config)}};SV=class SV extends xD{static[N]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};bV=class bV extends eD{static[N]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new fV(D,this.config)}};fV=class fV extends xD{static[N]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function xV(D){return new vV(D??"")}var vV,hV;var fF=Z(()=>{r();R8();vV=class vV extends eD{static[N]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new hV(D,this.config)}};hV=class hV extends xD{static[N]="SQLiteReal";getSQLType(){return"real"}}});function I(D,$={}){let{name:F,config:X}=w2(D,$);if(X.mode==="json")return new uV(F);return new gV(F,X)}var gV,yV,uV,mV;var kF=Z(()=>{r();O0();R8();gV=class gV extends eD{static[N]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new yV(D,this.config)}};yV=class yV extends xD{static[N]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};uV=class uV extends eD{static[N]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new mV(D,this.config)}};mV=class mV extends xD{static[N]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function pV(){return{blob:RV,customType:ZV,integer:ID,numeric:kV,real:xV,text:I}}var cV=Z(()=>{TF();wF();SF();bF();fF();kF()});function _j(D,$,F,X,J=D){let Y=new D0(D,X,J),G=typeof $==="function"?$(pV()):$,B=Object.fromEntries(Object.entries(G).map(([W,_])=>{let U=_;U.setName(W);let Q=U.build(Y);return Y[vF].push(...U.buildForeignKeys(Q,Y)),[W,Q]})),H=Object.assign(Y,B);if(H[x.Symbol.Columns]=B,H[x.Symbol.ExtraConfigColumns]=B,F)H[D0.Symbol.ExtraConfigBuilder]=F;return H}var vF,D0,V0=(D,$,F)=>{return _j(D,$,F)};var t8=Z(()=>{r();W0();cV();vF=Symbol.for("drizzle:SQLiteInlineForeignKeys");D0=class D0 extends x{static[N]="SQLiteTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:vF});[x.Symbol.Columns];[vF]=[];[x.Symbol.ExtraConfigBuilder]=void 0}});var dV=()=>{};function x0(D){return new hF(D,!1)}function nV(D){return new hF(D,!0)}var hF,lV,iV;var sV=Z(()=>{r();hF=class hF{constructor(D,$){this.name=D,this.unique=$}static[N]="SQLiteIndexBuilderOn";on(...D){return new lV(this.name,D,this.unique)}};lV=class lV{static[N]="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 iV(this.config,D)}};iV=class iV{static[N]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var rV=()=>{};function U2(D){if(j(D,D0))return[`${D[x.Symbol.BaseName]}`];if(j(D,pD))return D._.usedTables??[];if(j(D,m))return D.usedTables??[];return[]}var e1=Z(()=>{r();tD();_2();W0();t8()});var y7;var aV=Z(()=>{r();i2();t1();t8();W0();O0();e1();y7=class y7 extends C0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[N]="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 Uj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Qj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let Y=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+Y},"")}function Aj(D){return D}var xF;var oV=Z(()=>{r();W0();xF=class xF{static[N]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Uj:D==="camelCase"?Qj:Aj}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[x.Symbol.Schema]??"public",F=D.table[x.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[x.Symbol.Schema]??"public",F=D[x.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[x.Symbol.Columns])){let Y=`${X}.${J.name}`;this.cache[Y]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var D6,n2,gF;var u7=Z(()=>{r();D6=class D6 extends Error{static[N]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};n2=class n2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
|
|
105
|
-
params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,n2),F)this.cause=F}};gF=class gF extends D6{static[N]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function m7(D){return M`count(${D||M.raw("*")})`.mapWith(Number)}var tV=Z(()=>{tD()});var eV=()=>{};var D_=Z(()=>{tV();eV()});var yF=Z(()=>{PF();D_();tD()});var uF=Z(()=>{TF();R8();wF();SF();bF();fF();kF()});var e8;var p7=Z(()=>{r();tD();e8=class e8 extends v0{static[N]="SQLiteViewBase"}});var L3,j3;var c7=Z(()=>{h7();oV();V2();r();u7();q3();yF();tD();uF();t8();_2();W0();O0();l2();p7();L3=class L3{static[N]="SQLiteDialect";casing;constructor(D){this.casing=new xF(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:Y}){let G=this.buildWithCTE(X),B=F?M` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?M` where ${$}`:void 0,W=this.buildOrderBy(Y),_=this.buildLimit(J);return M`${G}delete from ${D}${H}${B}${W}${_}`}buildUpdateSet(D,$){let F=D[x.Symbol.Columns],X=Object.keys(F).filter((Y)=>$[Y]!==void 0||F[Y]?.onUpdateFn!==void 0),J=X.length;return M.join(X.flatMap((Y,G)=>{let B=F[Y],H=$[Y]??M.param(B.onUpdateFn(),B),W=M`${M.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(G<J-1)return[W,M.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:Y,from:G,limit:B,orderBy:H}){let W=this.buildWithCTE(J),_=this.buildUpdateSet(D,$),U=G&&M.join([M.raw(" from "),this.buildFromTable(G)]),Q=this.buildJoins(Y),A=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,E=F?M` where ${F}`:void 0,C=this.buildOrderBy(H),K=this.buildLimit(B);return M`${W}update ${D} set ${_}${U}${Q}${E}${A}${C}${K}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},Y)=>{let G=[];if(j(J,m.Aliased)&&J.isSelectionField)G.push(M.identifier(J.fieldAlias));else if(j(J,m.Aliased)||j(J,m)){let B=j(J,m.Aliased)?J.sql:J;if($)G.push(new m(B.queryChunks.map((H)=>{if(j(H,ED))return M.identifier(this.casing.getColumnCasing(H));return H})));else G.push(B);if(j(J,m.Aliased))G.push(M` as ${M.identifier(J.fieldAlias)}`)}else if(j(J,ED)){let B=J.table[x.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)G.push(M`cast(${M.identifier(this.casing.getColumnCasing(J))} as text)`);else G.push(M`cast(${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)G.push(M.identifier(this.casing.getColumnCasing(J)));else G.push(M`${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))}`)}if(Y<F-1)G.push(M`, `);return G});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,Y=X.on?M` on ${X.on}`:void 0;if(j(J,D0)){let G=J[D0.Symbol.Name],B=J[D0.Symbol.Schema],H=J[D0.Symbol.OriginalName],W=G===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)}`}${Y}`)}else $.push(M`${M.raw(X.joinType)} join ${J}${Y}`);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(j(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:Y,joins:G,orderBy:B,groupBy:H,limit:W,offset:_,distinct:U,setOperators:Q}){let A=F??h0($);for(let $D of A)if(j($D.field,ED)&&A8($D.field.table)!==(j(Y,pD)?Y._.alias:j(Y,e8)?Y[fD].name:j(Y,m)?void 0:A8(Y))&&!((rD)=>G?.some(({alias:N2})=>N2===(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 E=!G||G.length===0,C=this.buildWithCTE(D),K=U?M` distinct`:void 0,R=this.buildSelection(A,{isSingleTable:E}),q=this.buildFromTable(Y),P=this.buildJoins(G),b=X?M` where ${X}`:void 0,T=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 w=L.length>0?M` group by ${M.join(L)}`:void 0,z=this.buildOrderBy(B),s=this.buildLimit(W),QD=_?M` offset ${_}`:void 0,VD=M`${C}select${K} ${R} from ${q}${P}${b}${w}${T}${z}${s}${QD}`;if(Q.length>0)return this.buildSetOperations(VD,Q);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:Y,offset:G}}){let B=M`${D.getSQL()} `,H=M`${X.getSQL()}`,W;if(Y&&Y.length>0){let A=[];for(let E of Y)if(j(E,xD))A.push(M.identifier(E.name));else if(j(E,m)){for(let C=0;C<E.queryChunks.length;C++){let K=E.queryChunks[C];if(j(K,xD))E.queryChunks[C]=M.identifier(this.casing.getColumnCasing(K))}A.push(M`${E}`)}else A.push(M`${E}`);W=M` order by ${M.join(A,M`, `)}`}let _=typeof J==="object"||typeof J==="number"&&J>=0?M` limit ${J}`:void 0,U=M.raw(`${$} ${F?"all ":""}`),Q=G?M` offset ${G}`:void 0;return M`${B}${U}${H}${W}${_}${Q}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:Y}){let G=[],B=D[x.Symbol.Columns],H=Object.entries(B).filter(([E,C])=>!C.shouldDisableInsert()),W=H.map(([,E])=>M.identifier(this.casing.getColumnCasing(E)));if(Y){let E=$;if(j(E,m))G.push(E);else G.push(E.getSQL())}else{let E=$;G.push(M.raw("values "));for(let[C,K]of E.entries()){let R=[];for(let[q,P]of H){let b=K[q];if(b===void 0||j(b,I0)&&b.value===void 0){let T;if(P.default!==null&&P.default!==void 0)T=j(P.default,m)?P.default:M.param(P.default,P);else if(P.defaultFn!==void 0){let L=P.defaultFn();T=j(L,m)?L:M.param(L,P)}else if(!P.default&&P.onUpdateFn!==void 0){let L=P.onUpdateFn();T=j(L,m)?L:M.param(L,P)}else T=M`null`;R.push(T)}else R.push(b)}if(G.push(R),C<E.length-1)G.push(M`, `)}}let _=this.buildWithCTE(J),U=M.join(G),Q=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?M.join(F):void 0;return M`${_}insert into ${D} ${W} ${U}${A}${Q}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:Y,tableAlias:G,nestedQueryRelation:B,joinOn:H}){let W=[],_,U,Q=[],A,E=[];if(Y===!0)W=Object.entries(J.columns).map(([R,q])=>({dbKey:q.name,tsKey:R,field:b2(q,G),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([L,w])=>[L,b2(w,G)]));if(Y.where){let L=typeof Y.where==="function"?Y.where(K,GV()):Y.where;A=L&&N3(L,G)}let R=[],q=[];if(Y.columns){let L=!1;for(let[w,z]of Object.entries(Y.columns)){if(z===void 0)continue;if(w in J.columns){if(!L&&z===!0)L=!0;q.push(w)}}if(q.length>0)q=L?q.filter((w)=>Y.columns?.[w]===!0):Object.keys(J.columns).filter((w)=>!q.includes(w))}else q=Object.keys(J.columns);for(let L of q){let w=J.columns[L];R.push({tsKey:L,value:w})}let P=[];if(Y.with)P=Object.entries(Y.with).filter((L)=>!!L[1]).map(([L,w])=>({tsKey:L,queryConfig:w,relation:J.relations[L]}));let b;if(Y.extras){b=typeof Y.extras==="function"?Y.extras(K,{sql:M}):Y.extras;for(let[L,w]of Object.entries(b))R.push({tsKey:L,value:LF(w,G)})}for(let{tsKey:L,value:w}of R)W.push({dbKey:j(w,m.Aliased)?w.fieldAlias:J.columns[L].name,tsKey:L,field:j(w,ED)?b2(w,G):w,relationTableTsKey:void 0,isJson:!1,selection:[]});let T=typeof Y.orderBy==="function"?Y.orderBy(K,YV()):Y.orderBy??[];if(!Array.isArray(T))T=[T];Q=T.map((L)=>{if(j(L,ED))return b2(L,G);return N3(L,G)}),_=Y.limit,U=Y.offset;for(let{tsKey:L,queryConfig:w,relation:z}of P){let s=HV($,F,z),QD=o8(z.referencedTable),VD=F[QD],$D=`${G}_${L}`,rD=uD(...s.fields.map((TZ,wZ)=>v(b2(s.references[wZ],$D),b2(TZ,G)))),N2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[VD],tableConfig:$[VD],queryConfig:j(z,C8)?w===!0?{limit:1}:{...w,limit:1}:w,tableAlias:$D,joinOn:rD,nestedQueryRelation:z}),IZ=M`(${N2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:IZ,relationTableTsKey:VD,isJson:!0,selection:N2.selection})}}if(W.length===0)throw new D6({message:`No fields selected for table "${J.tsName}" ("${G}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let C;if(A=uD(H,A),B){let K=M`json_array(${M.join(W.map(({field:P})=>j(P,xD)?M.identifier(this.casing.getColumnCasing(P)):j(P,m.Aliased)?P.sql:P),M`, `)})`;if(j(B,Z3))K=M`coalesce(json_group_array(${K}), json_array())`;let R=[{dbKey:"data",tsKey:"data",field:K.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(_!==void 0||U!==void 0||Q.length>0)C=this.buildSelectQuery({table:v7(X,G),fields:{},fieldsFlat:[{path:[],field:M.raw("*")}],where:A,limit:_,offset:U,orderBy:Q,setOperators:[]}),A=void 0,_=void 0,U=void 0,Q=void 0;else C=v7(X,G);C=this.buildSelectQuery({table:j(C,D0)?C:new pD(C,{},G),fields:{},fieldsFlat:R.map(({field:P})=>({path:[],field:j(P,ED)?b2(P,G):P})),joins:E,where:A,limit:_,offset:U,orderBy:Q,setOperators:[]})}else C=this.buildSelectQuery({table:v7(X,G),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:j(K,ED)?b2(K,G):K})),joins:E,where:A,limit:_,offset:U,orderBy:Q,setOperators:[]});return{tableTsKey:J.tsName,sql:C,selection:W}}};j3=class j3 extends L3{static[N]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=M`
|
|
103
|
+
`:W}};C=WP()});var HD,s$,h,j2=(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 F3=Z(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let Y={};for(let G of J)Y[G]=G;return Y},D.getValidEnumValues=(J)=>{let Y=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),G={};for(let B of Y)G[B]=J[B];return D.objectValues(G)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(Y){return J[Y]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let G in J)if(Object.prototype.hasOwnProperty.call(J,G))Y.push(G);return Y},D.find=(J,Y)=>{for(let G of J)if(Y(G))return G;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,Y=" | "){return J.map((G)=>typeof G==="string"?`'${G}'`:G).join(Y)}D.joinValues=X,D.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(HD||(HD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(s$||(s$={}));h=HD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var S,UP=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},R0;var B7=Z(()=>{F3();S=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"]);R0=class R0 extends Error{get errors(){return this.issues}constructor(D){super();this.issues=[],this.addIssue=(F)=>{this.issues=[...this.issues,F]},this.addIssues=(F=[])=>{this.issues=[...this.issues,...F]};let $=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,$);else this.__proto__=$;this.name="ZodError",this.issues=D}format(D){let $=D||function(J){return J.message},F={_errors:[]},X=(J)=>{for(let Y of J.issues)if(Y.code==="invalid_union")Y.unionErrors.map(X);else if(Y.code==="invalid_return_type")X(Y.returnTypeError);else if(Y.code==="invalid_arguments")X(Y.argumentsError);else if(Y.path.length===0)F._errors.push($(Y));else{let G=F,B=0;while(B<Y.path.length){let H=Y.path[B];if(B!==Y.path.length-1)G[H]=G[H]||{_errors:[]};else G[H]=G[H]||{_errors:[]},G[H]._errors.push($(Y));G=G[H],B++}}};return X(this),F}static assert(D){if(!(D instanceof R0))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()}};R0.create=(D)=>{return new R0(D)}});var QP=(D,$)=>{let F;switch(D.code){case S.invalid_type:if(D.received===h.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case S.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,HD.jsonStringifyReplacer)}`;break;case S.unrecognized_keys:F=`Unrecognized key(s) in object: ${HD.joinValues(D.keys,", ")}`;break;case S.invalid_union:F="Invalid input";break;case S.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${HD.joinValues(D.options)}`;break;case S.invalid_enum_value:F=`Invalid enum value. Expected ${HD.joinValues(D.options)}, received '${D.received}'`;break;case S.invalid_arguments:F="Invalid function arguments";break;case S.invalid_return_type:F="Invalid function return type";break;case S.invalid_date:F="Invalid date";break;case S.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 S.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 S.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 S.custom:F="Invalid input";break;case S.invalid_intersection_types:F="Intersection results could not be merged";break;case S.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case S.not_finite:F="Number must be finite";break;default:F=$.defaultError,HD.assertNever(D)}return{message:F}},u2;var r$=Z(()=>{B7();F3();u2=QP});function AP(D){KH=D}function k1(){return KH}var KH;var H7=Z(()=>{r$();KH=u2});function g(D,$){let F=k1(),X=X3({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,Y=await X.value;F.push({key:J,value:Y})}return X0.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:Y}=X;if(J.status==="aborted")return l;if(Y.status==="aborted")return l;if(J.status==="dirty")D.dirty();if(Y.status==="dirty")D.dirty();if(J.value!=="__proto__"&&(typeof Y.value<"u"||X.alwaysSet))F[J.value]=Y.value}return{status:D.value,value:F}}}var X3=(D)=>{let{data:$,path:F,errorMaps:X,issueData:J}=D,Y=[...F,...J.path||[]],G={...J,path:Y};if(J.message!==void 0)return{...J,path:Y,message:J.message};let B="",H=X.filter((W)=>!!W).slice().reverse();for(let W of H)B=W(G,{data:$,defaultError:B}).message;return{...J,path:Y,message:B}},KP,l,p8=(D)=>({status:"dirty",value:D}),H0=(D)=>({status:"valid",value:D}),W7=(D)=>D.status==="aborted",V7=(D)=>D.status==="dirty",B8=(D)=>D.status==="valid",v1=(D)=>typeof Promise<"u"&&D instanceof Promise;var a$=Z(()=>{H7();r$();KP=[];l=Object.freeze({status:"aborted"})});var EH=()=>{};var p;var OH=Z(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(p||(p={}))});class B2{constructor(D,$,F,X){this._cachedPath=[],this.parent=D,this.data=$,this._path=F,this._key=X}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}function FD(D){if(!D)return{};let{errorMap:$,invalid_type_error:F,required_error:X,description:J}=D;if($&&(F||X))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if($)return{errorMap:$,description:J};return{errorMap:(G,B)=>{let{message:H}=D;if(G.code==="invalid_enum_value")return{message:H??B.defaultError};if(typeof B.data>"u")return{message:H??X??B.defaultError};if(G.code!=="invalid_type")return{message:B.defaultError};return{message:H??F??B.defaultError}},description:J}}class GD{get description(){return this._def.description}_getType(D){return j2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:j2(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:j2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(v1($))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:j2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return RH(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:j2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return B8(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)=>B8(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:j2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(v1(X)?X:Promise.resolve(X));return RH(F,J)}refine(D,$){let F=(X)=>{if(typeof $==="string"||typeof $>"u")return{message:$};else if(typeof $==="function")return $(X);else return $};return this._refinement((X,J)=>{let Y=D(X),G=()=>J.addIssue({code:S.custom,...F(X)});if(typeof Promise<"u"&&Y instanceof Promise)return Y.then((B)=>{if(!B)return G(),!1;else return!0});if(!Y)return G(),!1;else return!0})}refinement(D,$){return this._refinement((F,X)=>{if(!D(F))return X.addIssue(typeof $==="function"?$(F,X):$),!1;else return!0})}_refinement(D){return new H2({schema:this,typeName:i.ZodEffects,effect:{type:"refinement",refinement:D}})}superRefine(D){return this._refinement(D)}constructor(D){this.spa=this.safeParseAsync,this._def=D,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:($)=>this["~validate"]($)}}optional(){return Y2.create(this,this._def)}nullable(){return p2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return G2.create(this)}promise(){return i8.create(this,this._def)}or(D){return m1.create([this,D],this._def)}and(D){return p1.create(this,D,this._def)}transform(D){return new H2({...FD(this._def),schema:this,typeName:i.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new i1({...FD(this._def),innerType:this,defaultValue:$,typeName:i.ZodDefault})}brand(){return new U7({typeName:i.ZodBranded,type:this,...FD(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new n1({...FD(this._def),innerType:this,catchValue:$,typeName:i.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return W3.create(this,D)}readonly(){return s1.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 bP(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 fP(D,$){if(($==="v4"||!$)&&LP.test(D))return!0;if(($==="v6"||!$)&&zP.test(D))return!0;return!1}function kP(D,$){if(!ZP.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 vP(D,$){if(($==="v4"||!$)&&jP.test(D))return!0;if(($==="v6"||!$)&&IP.test(D))return!0;return!1}function hP(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,Y=Number.parseInt(D.toFixed(J).replace(".","")),G=Number.parseInt($.toFixed(J).replace(".",""));return Y%G/10**J}function h1(D){if(D instanceof SD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=Y2.create(h1(X))}return new SD({...D._def,shape:()=>$})}else if(D instanceof G2)return new G2({...D._def,type:h1(D.element)});else if(D instanceof Y2)return Y2.create(h1(D.unwrap()));else if(D instanceof p2)return p2.create(h1(D.unwrap()));else if(D instanceof I2)return I2.create(D.items.map(($)=>h1($)));else return D}function t$(D,$){let F=j2(D),X=j2($);if(D===$)return{valid:!0,data:D};else if(F===h.object&&X===h.object){let J=HD.objectKeys($),Y=HD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),G={...D,...$};for(let B of Y){let H=t$(D[B],$[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(F===h.array&&X===h.array){if(D.length!==$.length)return{valid:!1};let J=[];for(let Y=0;Y<D.length;Y++){let G=D[Y],B=$[Y],H=t$(G,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===h.date&&X===h.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function NH(D,$){return new _8({values:D,typeName:i.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 d8.create().superRefine((X,J)=>{let Y=D(X);if(Y instanceof Promise)return Y.then((G)=>{if(!G){let B=CH($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!Y){let G=CH($,X),B=G.fatal??F??!0;J.addIssue({code:"custom",...G,fatal:B})}return});return d8.create()}var RH=(D,$)=>{if(B8($))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 R0(D.common.issues);return this._error=F,this._error}}}},EP,OP,RP,CP,MP,ZP,qP,NP,PP="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",o$,LP,jP,zP,IP,TP,wP,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])))",SP,J2,W8,V8,g1,c8,J3,y1,u1,d8,H8,z2,G3,G2,SD,m1,m2=(D)=>{if(D instanceof c1)return m2(D.schema);else if(D instanceof H2)return m2(D.innerType());else if(D instanceof d1)return[D.value];else if(D instanceof _8)return D.options;else if(D instanceof l1)return HD.objectValues(D.enum);else if(D instanceof i1)return m2(D._def.innerType);else if(D instanceof y1)return[void 0];else if(D instanceof u1)return[null];else if(D instanceof Y2)return[void 0,...m2(D.unwrap())];else if(D instanceof p2)return[null,...m2(D.unwrap())];else if(D instanceof U7)return m2(D.unwrap());else if(D instanceof s1)return m2(D.unwrap());else if(D instanceof n1)return m2(D._def.innerType);else return[]},_7,p1,I2,Y3,B3,l8,x1,c1,d1,_8,l1,i8,H2,Y2,p2,i1,n1,H3,xP,U7,W3,s1,gP,i,yP=(D,$={message:`Input not instance of ${D.name}`})=>PH((F)=>F instanceof D,$),LH,jH,uP,mP,zH,pP,cP,dP,lP,iP,nP,sP,rP,aP,oP,tP,eP,DL,$L,FL,XL,JL,GL,YL,BL,HL,WL,VL,_L,UL,QL,AL,KL,EL,OL=()=>LH().optional(),RL=()=>jH().optional(),CL=()=>zH().optional(),ML,ZL;var IH=Z(()=>{B7();H7();OH();a$();F3();EP=/^c[^\s-]{8,}$/i,OP=/^[0-9a-z]+$/,RP=/^[0-9A-HJKMNP-TV-Z]{26}$/i,CP=/^[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,MP=/^[a-z0-9_-]{21}$/i,ZP=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,qP=/^[-+]?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)?)??$/,NP=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,LP=/^(?:(?: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])$/,jP=/^(?:(?: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])$/,zP=/^(([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]))$/,IP=/^(([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])$/,TP=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,wP=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,SP=new RegExp(`^${MH}$`);J2=class J2 extends GD{_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:S.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:S.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:S.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let Y=D.data.length>J.value,G=D.data.length<J.value;if(Y||G){if(X=this._getOrReturnCtx(D,X),Y)g(X,{code:S.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(G)g(X,{code:S.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!NP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"email",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!o$)o$=new RegExp(PP,"u");if(!o$.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"emoji",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!CP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"uuid",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!MP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"nanoid",code:S.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:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!OP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"cuid2",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!RP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"ulid",code:S.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:S.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:S.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:S.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:S.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:S.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:S.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!SP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:S.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!bP(J).test(D.data))X=this._getOrReturnCtx(D,X),g(X,{code:S.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!qP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"duration",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!fP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"ip",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!kP(D.data,J.alg))X=this._getOrReturnCtx(D,X),g(X,{validation:"jwt",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!vP(D.data,J.version))X=this._getOrReturnCtx(D,X),g(X,{validation:"cidr",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!TP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64",code:S.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!wP.test(D.data))X=this._getOrReturnCtx(D,X),g(X,{validation:"base64url",code:S.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:S.invalid_string,...p.errToObj(F)})}_addCheck(D){return new J2({...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 J2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new J2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new J2({...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}};J2.create=(D)=>{return new J2({checks:[],typeName:i.ZodString,coerce:D?.coerce??!1,...FD(D)})};W8=class W8 extends GD{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:S.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:S.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:S.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:S.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(hP(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),g(F,{code:S.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:S.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 W8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:p.toString(X)}]})}_addCheck(D){return new W8({...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)}};W8.create=(D)=>{return new W8({checks:[],typeName:i.ZodNumber,coerce:D?.coerce||!1,...FD(D)})};V8=class V8 extends GD{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:S.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:S.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:S.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:S.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 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]})}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}};V8.create=(D)=>{return new V8({checks:[],typeName:i.ZodBigInt,coerce:D?.coerce??!1,...FD(D)})};g1=class g1 extends GD{_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:S.invalid_type,expected:h.boolean,received:F.parsedType}),l}return H0(D.data)}};g1.create=(D)=>{return new g1({typeName:i.ZodBoolean,coerce:D?.coerce||!1,...FD(D)})};c8=class c8 extends GD{_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:S.invalid_type,expected:h.date,received:J.parsedType}),l}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return g(J,{code:S.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:S.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:S.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 c8({...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}};c8.create=(D)=>{return new c8({checks:[],coerce:D?.coerce||!1,typeName:i.ZodDate,...FD(D)})};J3=class J3 extends GD{_parse(D){if(this._getType(D)!==h.symbol){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.symbol,received:F.parsedType}),l}return H0(D.data)}};J3.create=(D)=>{return new J3({typeName:i.ZodSymbol,...FD(D)})};y1=class y1 extends GD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.undefined,received:F.parsedType}),l}return H0(D.data)}};y1.create=(D)=>{return new y1({typeName:i.ZodUndefined,...FD(D)})};u1=class u1 extends GD{_parse(D){if(this._getType(D)!==h.null){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.null,received:F.parsedType}),l}return H0(D.data)}};u1.create=(D)=>{return new u1({typeName:i.ZodNull,...FD(D)})};d8=class d8 extends GD{constructor(){super(...arguments);this._any=!0}_parse(D){return H0(D.data)}};d8.create=(D)=>{return new d8({typeName:i.ZodAny,...FD(D)})};H8=class H8 extends GD{constructor(){super(...arguments);this._unknown=!0}_parse(D){return H0(D.data)}};H8.create=(D)=>{return new H8({typeName:i.ZodUnknown,...FD(D)})};z2=class z2 extends GD{_parse(D){let $=this._getOrReturnCtx(D);return g($,{code:S.invalid_type,expected:h.never,received:$.parsedType}),l}};z2.create=(D)=>{return new z2({typeName:i.ZodNever,...FD(D)})};G3=class G3 extends GD{_parse(D){if(this._getType(D)!==h.undefined){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.void,received:F.parsedType}),l}return H0(D.data)}};G3.create=(D)=>{return new G3({typeName:i.ZodVoid,...FD(D)})};G2=class G2 extends GD{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==h.array)return g($,{code:S.invalid_type,expected:h.array,received:$.parsedType}),l;if(X.exactLength!==null){let Y=$.data.length>X.exactLength.value,G=$.data.length<X.exactLength.value;if(Y||G)g($,{code:Y?S.too_big:S.too_small,minimum:G?X.exactLength.value:void 0,maximum:Y?X.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:X.exactLength.message}),F.dirty()}if(X.minLength!==null){if($.data.length<X.minLength.value)g($,{code:S.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:S.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((Y,G)=>{return X.type._parseAsync(new B2($,Y,$.path,G))})).then((Y)=>{return X0.mergeArray(F,Y)});let J=[...$.data].map((Y,G)=>{return X.type._parseSync(new B2($,Y,$.path,G))});return X0.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new G2({...this._def,minLength:{value:D,message:p.toString($)}})}max(D,$){return new G2({...this._def,maxLength:{value:D,message:p.toString($)}})}length(D,$){return new G2({...this._def,exactLength:{value:D,message:p.toString($)}})}nonempty(D){return this.min(1,D)}};G2.create=(D,$)=>{return new G2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:i.ZodArray,...FD($)})};SD=class SD extends GD{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:S.invalid_type,expected:h.object,received:H.parsedType}),l}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:Y}=this._getCached(),G=[];if(!(this._def.catchall instanceof z2&&this._def.unknownKeys==="strip")){for(let H in X.data)if(!Y.includes(H))G.push(H)}let B=[];for(let H of Y){let W=J[H],_=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new B2(X,_,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof z2){let H=this._def.unknownKeys;if(H==="passthrough")for(let W of G)B.push({key:{status:"valid",value:W},value:{status:"valid",value:X.data[W]}});else if(H==="strict"){if(G.length>0)g(X,{code:S.unrecognized_keys,keys:G}),F.dirty()}else if(H==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let H=this._def.catchall;for(let W of G){let _=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new B2(X,_,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 _=await W.key,U=await W.value;H.push({key:_,value:U,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:i.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 h1(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 Y2)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:z2.create(),typeName:i.ZodObject,...FD($)})};SD.strictCreate=(D,$)=>{return new SD({shape:()=>D,unknownKeys:"strict",catchall:z2.create(),typeName:i.ZodObject,...FD($)})};SD.lazycreate=(D,$)=>{return new SD({shape:D,unknownKeys:"strip",catchall:z2.create(),typeName:i.ZodObject,...FD($)})};m1=class m1 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D),F=this._def.options;function X(J){for(let G of J)if(G.result.status==="valid")return G.result;for(let G of J)if(G.result.status==="dirty")return $.common.issues.push(...G.ctx.common.issues),G.result;let Y=J.map((G)=>new R0(G.ctx.common.issues));return g($,{code:S.invalid_union,unionErrors:Y}),l}if($.common.async)return Promise.all(F.map(async(J)=>{let Y={...$,common:{...$.common,issues:[]},parent:null};return{result:await J._parseAsync({data:$.data,path:$.path,parent:Y}),ctx:Y}})).then(X);else{let J=void 0,Y=[];for(let B of F){let H={...$,common:{...$.common,issues:[]},parent:null},W=B._parseSync({data:$.data,path:$.path,parent:H});if(W.status==="valid")return W;else if(W.status==="dirty"&&!J)J={result:W,ctx:H};if(H.common.issues.length)Y.push(H.common.issues)}if(J)return $.common.issues.push(...J.ctx.common.issues),J.result;let G=Y.map((B)=>new R0(B));return g($,{code:S.invalid_union,unionErrors:G}),l}}get options(){return this._def.options}};m1.create=(D,$)=>{return new m1({options:D,typeName:i.ZodUnion,...FD($)})};_7=class _7 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.object)return g($,{code:S.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:S.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 Y=m2(J.shape[D]);if(!Y.length)throw Error(`A discriminator value for key \`${D}\` could not be extracted from all schema options`);for(let G of Y){if(X.has(G))throw Error(`Discriminator property ${String(D)} has duplicate value ${String(G)}`);X.set(G,J)}}return new _7({typeName:i.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...FD(F)})}};p1=class p1 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,Y)=>{if(W7(J)||W7(Y))return l;let G=t$(J.value,Y.value);if(!G.valid)return g(F,{code:S.invalid_intersection_types}),l;if(V7(J)||V7(Y))$.dirty();return{status:$.value,value:G.data}};if(F.common.async)return Promise.all([this._def.left._parseAsync({data:F.data,path:F.path,parent:F}),this._def.right._parseAsync({data:F.data,path:F.path,parent:F})]).then(([J,Y])=>X(J,Y));else return X(this._def.left._parseSync({data:F.data,path:F.path,parent:F}),this._def.right._parseSync({data:F.data,path:F.path,parent:F}))}};p1.create=(D,$,F)=>{return new p1({left:D,right:$,typeName:i.ZodIntersection,...FD(F)})};I2=class I2 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.array)return g(F,{code:S.invalid_type,expected:h.array,received:F.parsedType}),l;if(F.data.length<this._def.items.length)return g(F,{code:S.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:S.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),$.dirty();let J=[...F.data].map((Y,G)=>{let B=this._def.items[G]||this._def.rest;if(!B)return null;return B._parse(new B2(F,Y,F.path,G))}).filter((Y)=>!!Y);if(F.common.async)return Promise.all(J).then((Y)=>{return X0.mergeArray($,Y)});else return X0.mergeArray($,J)}get items(){return this._def.items}rest(D){return new I2({...this._def,rest:D})}};I2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new I2({items:D,typeName:i.ZodTuple,rest:null,...FD($)})};Y3=class Y3 extends GD{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:S.invalid_type,expected:h.object,received:F.parsedType}),l;let X=[],J=this._def.keyType,Y=this._def.valueType;for(let G in F.data)X.push({key:J._parse(new B2(F,G,F.path,G)),value:Y._parse(new B2(F,F.data[G],F.path,G)),alwaysSet:G 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 GD)return new Y3({keyType:D,valueType:$,typeName:i.ZodRecord,...FD(F)});return new Y3({keyType:J2.create(),valueType:D,typeName:i.ZodRecord,...FD($)})}};B3=class B3 extends GD{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:S.invalid_type,expected:h.map,received:F.parsedType}),l;let X=this._def.keyType,J=this._def.valueType,Y=[...F.data.entries()].map(([G,B],H)=>{return{key:X._parse(new B2(F,G,F.path,[H,"key"])),value:J._parse(new B2(F,B,F.path,[H,"value"]))}});if(F.common.async){let G=new Map;return Promise.resolve().then(async()=>{for(let B of Y){let H=await B.key,W=await B.value;if(H.status==="aborted"||W.status==="aborted")return l;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}})}else{let G=new Map;for(let B of Y){let{key:H,value:W}=B;if(H.status==="aborted"||W.status==="aborted")return l;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}}}};B3.create=(D,$,F)=>{return new B3({valueType:$,keyType:D,typeName:i.ZodMap,...FD(F)})};l8=class l8 extends GD{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==h.set)return g(F,{code:S.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:S.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:S.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function Y(B){let H=new Set;for(let W of B){if(W.status==="aborted")return l;if(W.status==="dirty")$.dirty();H.add(W.value)}return{status:$.value,value:H}}let G=[...F.data.values()].map((B,H)=>J._parse(new B2(F,B,F.path,H)));if(F.common.async)return Promise.all(G).then((B)=>Y(B));else return Y(G)}min(D,$){return new l8({...this._def,minSize:{value:D,message:p.toString($)}})}max(D,$){return new l8({...this._def,maxSize:{value:D,message:p.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};l8.create=(D,$)=>{return new l8({valueType:D,minSize:null,maxSize:null,typeName:i.ZodSet,...FD($)})};x1=class x1 extends GD{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.function)return g($,{code:S.invalid_type,expected:h.function,received:$.parsedType}),l;function F(G,B){return X3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,k1(),u2].filter((H)=>!!H),issueData:{code:S.invalid_arguments,argumentsError:B}})}function X(G,B){return X3({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,k1(),u2].filter((H)=>!!H),issueData:{code:S.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},Y=$.data;if(this._def.returns instanceof i8){let G=this;return H0(async function(...B){let H=new R0([]),W=await G._def.args.parseAsync(B,J).catch((Q)=>{throw H.addIssue(F(B,Q)),H}),_=await Reflect.apply(Y,this,W);return await G._def.returns._def.type.parseAsync(_,J).catch((Q)=>{throw H.addIssue(X(_,Q)),H})})}else{let G=this;return H0(function(...B){let H=G._def.args.safeParse(B,J);if(!H.success)throw new R0([F(B,H.error)]);let W=Reflect.apply(Y,this,H.data),_=G._def.returns.safeParse(W,J);if(!_.success)throw new R0([X(W,_.error)]);return _.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new x1({...this._def,args:I2.create(D).rest(H8.create())})}returns(D){return new x1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new x1({args:D?D:I2.create([]).rest(H8.create()),returns:$||H8.create(),typeName:i.ZodFunction,...FD(F)})}};c1=class c1 extends GD{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};c1.create=(D,$)=>{return new c1({getter:D,typeName:i.ZodLazy,...FD($)})};d1=class d1 extends GD{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return g($,{received:$.data,code:S.invalid_literal,expected:this._def.value}),l}return{status:"valid",value:D.data}}get value(){return this._def.value}};d1.create=(D,$)=>{return new d1({value:D,typeName:i.ZodLiteral,...FD($)})};_8=class _8 extends GD{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return g($,{expected:HD.joinValues(F),received:$.parsedType,code:S.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:S.invalid_enum_value,options:F}),l}return H0(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;l1=class l1 extends GD{_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:S.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:S.invalid_enum_value,options:X}),l}return H0(D.data)}get enum(){return this._def.values}};l1.create=(D,$)=>{return new l1({values:D,typeName:i.ZodNativeEnum,...FD($)})};i8=class i8 extends GD{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==h.promise&&$.common.async===!1)return g($,{code:S.invalid_type,expected:h.promise,received:$.parsedType}),l;let F=$.parsedType===h.promise?$.data:Promise.resolve($.data);return H0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};i8.create=(D,$)=>{return new i8({type:D,typeName:i.ZodPromise,...FD($)})};H2=class H2 extends GD{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===i.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=this._def.effect||null,J={addIssue:(Y)=>{if(g(F,Y),Y.fatal)$.abort();else $.dirty()},get path(){return F.path}};if(J.addIssue=J.addIssue.bind(J),X.type==="preprocess"){let Y=X.transform(F.data,J);if(F.common.async)return Promise.resolve(Y).then(async(G)=>{if($.value==="aborted")return l;let B=await this._def.schema._parseAsync({data:G,path:F.path,parent:F});if(B.status==="aborted")return l;if(B.status==="dirty")return p8(B.value);if($.value==="dirty")return p8(B.value);return B});else{if($.value==="aborted")return l;let G=this._def.schema._parseSync({data:Y,path:F.path,parent:F});if(G.status==="aborted")return l;if(G.status==="dirty")return p8(G.value);if($.value==="dirty")return p8(G.value);return G}}if(X.type==="refinement"){let Y=(G)=>{let B=X.refinement(G,J);if(F.common.async)return Promise.resolve(B);if(B instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return G};if(F.common.async===!1){let G=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(G.status==="aborted")return l;if(G.status==="dirty")$.dirty();return Y(G.value),{status:$.value,value:G.value}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((G)=>{if(G.status==="aborted")return l;if(G.status==="dirty")$.dirty();return Y(G.value).then(()=>{return{status:$.value,value:G.value}})})}if(X.type==="transform")if(F.common.async===!1){let Y=this._def.schema._parseSync({data:F.data,path:F.path,parent:F});if(!B8(Y))return l;let G=X.transform(Y.value,J);if(G instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:$.value,value:G}}else return this._def.schema._parseAsync({data:F.data,path:F.path,parent:F}).then((Y)=>{if(!B8(Y))return l;return Promise.resolve(X.transform(Y.value,J)).then((G)=>({status:$.value,value:G}))});HD.assertNever(X)}};H2.create=(D,$,F)=>{return new H2({schema:D,typeName:i.ZodEffects,effect:$,...FD(F)})};H2.createWithPreprocess=(D,$,F)=>{return new H2({schema:$,effect:{type:"preprocess",transform:D},typeName:i.ZodEffects,...FD(F)})};Y2=class Y2 extends GD{_parse(D){if(this._getType(D)===h.undefined)return H0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};Y2.create=(D,$)=>{return new Y2({innerType:D,typeName:i.ZodOptional,...FD($)})};p2=class p2 extends GD{_parse(D){if(this._getType(D)===h.null)return H0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};p2.create=(D,$)=>{return new p2({innerType:D,typeName:i.ZodNullable,...FD($)})};i1=class i1 extends GD{_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}};i1.create=(D,$)=>{return new i1({innerType:D,typeName:i.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...FD($)})};n1=class n1 extends GD{_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(v1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new R0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new R0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};n1.create=(D,$)=>{return new n1({innerType:D,typeName:i.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...FD($)})};H3=class H3 extends GD{_parse(D){if(this._getType(D)!==h.nan){let F=this._getOrReturnCtx(D);return g(F,{code:S.invalid_type,expected:h.nan,received:F.parsedType}),l}return{status:"valid",value:D.data}}};H3.create=(D)=>{return new H3({typeName:i.ZodNaN,...FD(D)})};xP=Symbol("zod_brand");U7=class U7 extends GD{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};W3=class W3 extends GD{_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(),p8(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 W3({in:D,out:$,typeName:i.ZodPipeline})}};s1=class s1 extends GD{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(B8(X))X.value=Object.freeze(X.value);return X};return v1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};s1.create=(D,$)=>{return new s1({innerType:D,typeName:i.ZodReadonly,...FD($)})};gP={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"})(i||(i={}));LH=J2.create,jH=W8.create,uP=H3.create,mP=V8.create,zH=g1.create,pP=c8.create,cP=J3.create,dP=y1.create,lP=u1.create,iP=d8.create,nP=H8.create,sP=z2.create,rP=G3.create,aP=G2.create,oP=SD.create,tP=SD.strictCreate,eP=m1.create,DL=_7.create,$L=p1.create,FL=I2.create,XL=Y3.create,JL=B3.create,GL=l8.create,YL=x1.create,BL=c1.create,HL=d1.create,WL=_8.create,VL=l1.create,_L=i8.create,UL=H2.create,QL=Y2.create,AL=p2.create,KL=H2.createWithPreprocess,EL=W3.create,ML={string:(D)=>J2.create({...D,coerce:!0}),number:(D)=>W8.create({...D,coerce:!0}),boolean:(D)=>g1.create({...D,coerce:!0}),bigint:(D)=>V8.create({...D,coerce:!0}),date:(D)=>c8.create({...D,coerce:!0})},ZL=l});var V={};y8(V,{void:()=>rP,util:()=>HD,unknown:()=>nP,union:()=>eP,undefined:()=>dP,tuple:()=>FL,transformer:()=>UL,symbol:()=>cP,string:()=>LH,strictObject:()=>tP,setErrorMap:()=>AP,set:()=>GL,record:()=>XL,quotelessJson:()=>UP,promise:()=>_L,preprocess:()=>KL,pipeline:()=>EL,ostring:()=>OL,optional:()=>QL,onumber:()=>RL,oboolean:()=>CL,objectUtil:()=>s$,object:()=>oP,number:()=>jH,nullable:()=>AL,null:()=>lP,never:()=>sP,nativeEnum:()=>VL,nan:()=>uP,map:()=>JL,makeIssue:()=>X3,literal:()=>HL,lazy:()=>BL,late:()=>gP,isValid:()=>B8,isDirty:()=>V7,isAsync:()=>v1,isAborted:()=>W7,intersection:()=>$L,instanceof:()=>yP,getParsedType:()=>j2,getErrorMap:()=>k1,function:()=>YL,enum:()=>WL,effect:()=>UL,discriminatedUnion:()=>DL,defaultErrorMap:()=>u2,datetimeRegex:()=>qH,date:()=>pP,custom:()=>PH,coerce:()=>ML,boolean:()=>zH,bigint:()=>mP,array:()=>aP,any:()=>iP,addIssueToContext:()=>g,ZodVoid:()=>G3,ZodUnknown:()=>H8,ZodUnion:()=>m1,ZodUndefined:()=>y1,ZodType:()=>GD,ZodTuple:()=>I2,ZodTransformer:()=>H2,ZodSymbol:()=>J3,ZodString:()=>J2,ZodSet:()=>l8,ZodSchema:()=>GD,ZodRecord:()=>Y3,ZodReadonly:()=>s1,ZodPromise:()=>i8,ZodPipeline:()=>W3,ZodParsedType:()=>h,ZodOptional:()=>Y2,ZodObject:()=>SD,ZodNumber:()=>W8,ZodNullable:()=>p2,ZodNull:()=>u1,ZodNever:()=>z2,ZodNativeEnum:()=>l1,ZodNaN:()=>H3,ZodMap:()=>B3,ZodLiteral:()=>d1,ZodLazy:()=>c1,ZodIssueCode:()=>S,ZodIntersection:()=>p1,ZodFunction:()=>x1,ZodFirstPartyTypeKind:()=>i,ZodError:()=>R0,ZodEnum:()=>_8,ZodEffects:()=>H2,ZodDiscriminatedUnion:()=>_7,ZodDefault:()=>i1,ZodDate:()=>c8,ZodCatch:()=>n1,ZodBranded:()=>U7,ZodBoolean:()=>g1,ZodBigInt:()=>V8,ZodArray:()=>G2,ZodAny:()=>d8,Schema:()=>GD,ParseStatus:()=>X0,OK:()=>H0,NEVER:()=>ZL,INVALID:()=>l,EMPTY_PATH:()=>KP,DIRTY:()=>p8,BRAND:()=>xP});var e$=Z(()=>{H7();a$();EH();F3();IH();B7()});var yD=Z(()=>{e$();e$()});function DF(D){return Object.prototype.hasOwnProperty.call(yH,D)}var o,k0,TH,wH,SH,bH,fH,kH,vH,hH,xH,Q7,A7,gH,yH;var uH=Z(()=>{yD();o={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"},k0=V.object({workerId:V.string().min(1)}),TH=k0.extend({displayName:V.string().optional(),deviceId:V.string().min(1),connectedAt:V.number().int()}),wH=k0.extend({deviceId:V.string().min(1),reason:V.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:V.number().int()}),SH=k0.extend({conversationId:V.string().min(1),role:V.enum(["user","assistant","system"]),content:V.string(),createdAt:V.number().int()}),bH=k0.extend({conversationId:V.string().min(1),taskId:V.string().min(1).optional(),chunk:V.string().optional()}),fH=k0.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=k0.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=k0.extend({version:V.number().int().nonnegative(),changedAt:V.number().int()}),hH=k0.extend({stream:V.enum(["stdout","stderr"]),line:V.string(),ts:V.number().int()}),xH=k0.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()}),Q7=k0.extend({otp:V.string().min(1),expiresAt:V.number().int()}),A7=k0.extend({deviceToken:V.string().min(1)}),gH=k0.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={[o.WORKER_ONLINE]:TH,[o.WORKER_OFFLINE]:wH,[o.CHAT_MESSAGE]:SH,[o.AGENT_THINKING]:bH,[o.AGENT_TOOL_CALL]:fH,[o.AGENT_DONE]:kH,[o.CONFIG_CHANGED]:vH,[o.LOGS_LINE]:hH,[o.APPROVAL_REQUESTED]:xH,[o.ENROLLMENT_OTP]:Q7,[o.ENROLLMENT_APPROVED]:A7,[o.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 K7=20;var r1,E7="0123456789abcdefghjkmnpqrstvwxyz";var pH=Z(()=>{r1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function U8(D){return typeof D==="string"&&c2.test(D)}var O7="wtk_",c2;var cH=Z(()=>{c2=/^wtk_[\w-]{32,}$/});var $F=Z(()=>{pH();cH()});import{randomBytes as NL}from"crypto";function PL(D,$){let F=0,X=0,J="";for(let Y=0;Y<D.length&&J.length<$;Y+=1){X=X<<8|D[Y],F+=8;while(F>=5&&J.length<$)J+=E7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function FF(){let D=NL(10);return`w_${PL(D,12)}`}var dH=Z(()=>{$F()});var XF,JF,R7,LL,GF,lH;var iH=Z(()=>{yD();XF=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()})]),JF=V.enum(["pending","running","success","failed","pending_approval","denied"]),R7=V.object({inputTokens:V.number().int().nonnegative(),outputTokens:V.number().int().nonnegative()}),LL=V.record(V.unknown()),GF=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:XF,status:JF.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:R7}),V.object({type:V.literal("engine_binding"),engine:V.string().min(1),binding:LL.nullable()}),V.object({type:V.literal("finish"),reason:GF,usage:R7.optional()}),V.object({type:V.literal("error"),error:V.string()})])});var nH=Z(()=>{iH()});var j0=Z(()=>{mH();$F();dH();nH()});var n8,YF;var BF=Z(()=>{yD();n8={OPERATOR:"operator",NODE:"node"},YF=V.union([V.literal(n8.OPERATOR),V.literal(n8.NODE)])});function s8(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,jL,zL,oH,tH,eH;var DW=Z(()=>{j0();yD();BF();sH=V.object({type:V.literal("connect"),role:YF,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()}),jL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!0),result:V.unknown()}),zL=V.object({type:V.literal("response"),id:V.string().min(1),ok:V.literal(!1),error:aH}),oH=V.discriminatedUnion("ok",[jL,zL]),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 q7(D){return Object.prototype.hasOwnProperty.call(oD,D)}function V3(D){if(!q7(D))return;return oD[D]}var r8,IL,TL,$W,a1,wL,SL,bL,fL,C7,kL,vL,hL,M7,xL,gL,yL,uL,mL,pL,FW,XW,cL,dL,lL,HF,Z7,JW,GW,iL,nL,sL,rL,oD;var YW=Z(()=>{yD();r8=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()}),IL=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(r8)}),routing:"operator-to-gateway"}),TL=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()}),a1=V.object({workerId:V.string().min(1),deviceToken:V.string().min(1)}),wL=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:a1,routing:"operator-to-gateway"}),SL=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:a1,routing:"operator-to-gateway"}),bL=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"}),fL=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"}),C7=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()}),kL=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(C7)}),routing:"operator-to-gateway"}),vL=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"}),hL=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"}),M7=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()}),xL=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(M7),hasMore:V.boolean()}),routing:"operator-to-gateway"}),gL=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"}),yL=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"}),uL=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"}),mL=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"}),pL=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()}),cL=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"}),dL=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"}),lL=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(r8)}),routing:"operator-to-gateway"}),HF=V.enum(["web","line","telegram","lark","whatsapp"]),Z7=V.object({id:V.string().min(1),expression:V.string().min(1),prompt:V.string().min(1),channel:HF,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:HF,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:HF.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"}),iL=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(Z7)}),routing:"operator-to-node"}),nL=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:Z7}),routing:"operator-to-node"}),sL=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"}),rL=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:Z7}),routing:"operator-to-node"}),oD={"workers.list":IL,"workers.info":TL,"workers.pair":wL,"workers.launch":SL,"workers.stop":bL,"workers.remove":fL,"enroll.list":kL,"enroll.approve":vL,"enroll.reject":hL,"audit.list":xL,"chat.send":gL,"config.get":yL,"config.put":uL,"token.rotate":mL,"logs.tail":pL,"system.presence":lL,"approval.list":cL,"approval.grant":dL,"cron.list":iL,"cron.add":nL,"cron.remove":sL,"cron.update":rL}});var J0=Z(()=>{uH();DW();YW();BF()});var z7={};y8(z7,{saveAimState:()=>VF,resolveGatewayPidPath:()=>P7,resolveGatewayLogPath:()=>L7,resolveAimStatePath:()=>WF,patchAimState:()=>_3,loadAimState:()=>j7});import{chmod as aL,mkdir as oL,readFile as tL,rename as eL,writeFile as Dj}from"fs/promises";import N7 from"path";function WF(){return N7.join(y2(),"aim.json")}function P7(){return N7.join(y2(),"aim-gateway.pid")}function L7(){return N7.join(y2(),"aim-gateway.log")}function Fj(){return`op-${crypto.randomUUID()}`}function Xj(){return{gatewayUrl:$j,deviceId:Fj(),deviceToken:""}}function Jj(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 j7(){let D=WF(),$;try{$=await tL(D,"utf8")}catch(X){if(X.code==="ENOENT")return Xj();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(!Jj(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return F}async function VF(D){let $=WF();await oL(N7.dirname($),{recursive:!0});let F=`${$}.tmp`;await Dj(F,`${JSON.stringify(D,null,2)}
|
|
104
|
+
`,{encoding:"utf8",mode:384}),await eL(F,$);try{await aL($,384)}catch{}}async function _3(D){let F={...await j7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;F[X]=J}return await VF(F),F}var $j="ws://localhost:9218";var a8=Z(()=>{P2()});function j(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 r=Z(()=>{P=Symbol.for("drizzle:entityKind")});var OW,_F,UF;var I7=Z(()=>{r();OW=class OW{static[P]="ConsoleLogWriter";write(D){console.log(D)}};_F=class _F{static[P]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new OW}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}`)}};UF=class UF{static[P]="NoopLogger";logQuery(){}}});var z0;var U3=Z(()=>{z0=Symbol.for("drizzle:Name")});function Q8(D){return D[z0]}function o8(D){return`${D[T7]??"public"}.${D[z0]}`}var T7,w7,RW,QF,AF,Q3,CW,Gj,x;var W0=Z(()=>{r();U3();T7=Symbol.for("drizzle:Schema"),w7=Symbol.for("drizzle:Columns"),RW=Symbol.for("drizzle:ExtraConfigColumns"),QF=Symbol.for("drizzle:OriginalName"),AF=Symbol.for("drizzle:BaseName"),Q3=Symbol.for("drizzle:IsAlias"),CW=Symbol.for("drizzle:ExtraConfigBuilder"),Gj=Symbol.for("drizzle:IsDrizzleTable");x=class x{static[P]="Table";static Symbol={Name:z0,Schema:T7,OriginalName:QF,Columns:w7,ExtraConfigColumns:RW,BaseName:AF,IsAlias:Q3,ExtraConfigBuilder:CW};[z0];[QF];[T7];[w7];[RW];[AF];[Q3]=!1;[Gj]=!0;[CW]=void 0;constructor(D,$,F){this[z0]=this[QF]=D,this[T7]=$,this[AF]=F}}});var ED;var V2=Z(()=>{r();ED=class ED{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 KF;var EF=Z(()=>{r();KF=class KF{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 MW(D,...$){return D(...$)}var ZW=()=>{};function qW(D,$){return`${D[z0]}_${$.join("_")}_unique`}var NW=Z(()=>{U3()});var A3,Yj;var PW=Z(()=>{V2();r();NW();A3=class A3 extends ED{constructor(D,$){if(!$.uniqueName)$.uniqueName=qW(D,[$.name]);super(D,$);this.table=D}static[P]="PgColumn"};Yj=class Yj extends A3{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 jW(D){return!!D&&typeof D==="function"&&LW in D&&D[LW]===!0}var Bj,LW,Hj;var zW=Z(()=>{r();PW();Bj=class Bj extends A3{static[P]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};LW=Symbol.for("drizzle:isPgEnum");Hj=class Hj extends A3{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,K3;var _2=Z(()=>{r();pD=class pD{static[P]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};K3=class K3 extends pD{static[P]="WithSubquery"}});var IW="0.44.7";var TW=()=>{};var OF,RF,wW;var SW=Z(()=>{ZW();TW();wW={startActiveSpan(D,$){if(!OF)return $();if(!RF)RF=OF.trace.getTracer("drizzle-orm",IW);return MW((F,X)=>X.startActiveSpan(D,(J)=>{try{return $(J)}catch(Y){throw J.setStatus({code:F.SpanStatusCode.ERROR,message:Y instanceof Error?Y.message:"Unknown error"}),Y}finally{J.end()}}),OF,RF)}}});var fD;var d2=Z(()=>{fD=Symbol.for("drizzle:ViewBaseConfig")});function CF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function Wj(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 bW(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 E3(D,$){return D.map((F)=>{if(j(F,A8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(j(F,I0)&&j(F.value,A8)){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,S7,fW,kW,gs,I0,A8,Vj,v0;var tD=Z(()=>{r();zW();_2();SW();d2();V2();W0();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(j($,x)){let F=$[x.Symbol.Schema];this.usedTables.push(F===void 0?$[x.Symbol.Name]:F+"."+$[x.Symbol.Name])}}static[P]="SQL";decoder=fW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return wW.startActiveSpan("drizzle.buildSQL",($)=>{let F=this.buildQueryFromSourceParams(this.queryChunks,D);return $?.setAttributes({"drizzle.query.text":F.sql,"drizzle.query.params":JSON.stringify(F.params)}),F})}buildQueryFromSourceParams(D,$){let F=Object.assign({},$,{inlineParams:$.inlineParams||this.shouldInlineParams,paramStartIndex:$.paramStartIndex||{value:0}}),{casing:X,escapeName:J,escapeParam:Y,prepareTyping:G,inlineParams:B,paramStartIndex:H}=F;return Wj(D.map((W)=>{if(j(W,nD))return{sql:W.value.join(""),params:[]};if(j(W,S7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let _=[new nD("(")];for(let[U,Q]of W.entries())if(_.push(Q),U<W.length-1)_.push(new nD(", "));return _.push(new nD(")")),this.buildQueryFromSourceParams(_,F)}if(j(W,m))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(j(W,x)){let _=W[x.Symbol.Schema],U=W[x.Symbol.Name];return{sql:_===void 0||W[Q3]?J(U):J(_)+"."+J(U),params:[]}}if(j(W,ED)){let _=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(_),params:[]};let U=W.table[x.Symbol.Schema];return{sql:W.table[Q3]||U===void 0?J(W.table[x.Symbol.Name])+"."+J(_):J(U)+"."+J(W.table[x.Symbol.Name])+"."+J(_),params:[]}}if(j(W,v0)){let _=W[fD].schema,U=W[fD].name;return{sql:_===void 0||W[fD].isAlias?J(U):J(_)+"."+J(U),params:[]}}if(j(W,I0)){if(j(W.value,A8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};let _=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(j(_,m))return this.buildQueryFromSourceParams([_],F);if(B)return{sql:this.mapInlineParam(_,F),params:[]};let U=["none"];if(G)U=[G(W.encoder)];return{sql:Y(H.value++,_),params:[_],typings:U}}if(j(W,A8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};if(j(W,m.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(j(W,pD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new nD("("),W._.sql,new nD(") "),new S7(W._.alias)],F)}if(jW(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(CF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new nD("("),W.getSQL(),new nD(")")],F)}if(B)return{sql:this.mapInlineParam(W,F),params:[]};return{sql:Y(H.value++,W),params:[W],typings:["none"]}}))}mapInlineParam(D,{escapeString:$}){if(D===null)return"null";if(typeof D==="number"||typeof D==="boolean")return D.toString();if(typeof D==="string")return $(D);if(typeof D==="object"){let F=D.toString();if(F==="[object Object]")return $(JSON.stringify(D));return $(F)}throw Error("Unexpected param value: "+D)}getSQL(){return this}as(D){if(D===void 0)return this;return new m.Aliased(this,D)}mapWith(D){return this.decoder=typeof D==="function"?{mapFromDriverValue:D}:D,this}inlineParams(){return this.shouldInlineParams=!0,this}if(D){return D?this:void 0}};S7=class S7{constructor(D){this.value=D}static[P]="Name";brand;getSQL(){return new m([this])}};fW={mapFromDriverValue:(D)=>D},kW={mapToDriverValue:(D)=>D},gs={...fW,...kW};I0=class I0{constructor(D,$=kW){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 _=[];for(let[U,Q]of H.entries()){if(U>0&&W!==void 0)_.push(W);_.push(Q)}return new m(_)}D.join=J;function Y(H){return new S7(H)}D.identifier=Y;function G(H){return new A8(H)}D.placeholder=G;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={}));A8=class A8{constructor(D){this.name=D}static[P]="Placeholder";getSQL(){return new m([this])}};Vj=Symbol.for("drizzle:IsDrizzleView");v0=class v0{static[P]="View";[fD];[Vj]=!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])}};ED.prototype.getSQL=function(){return new m([this])};x.prototype.getSQL=function(){return new m([this])};pD.prototype.getSQL=function(){return new m([this])}});function MF(D,$,F){let X={},J=D.reduce((Y,{path:G,field:B},H)=>{let W;if(j(B,ED))W=B;else if(j(B,m))W=B.decoder;else W=B.sql.decoder;let _=Y;for(let[U,Q]of G.entries())if(U<G.length-1){if(!(Q in _))_[Q]={};_=_[Q]}else{let A=$[H],O=_[Q]=A===null?null:W.mapFromDriverValue(A);if(F&&j(B,ED)&&G.length===2){let E=G[0];if(!(E in X))X[E]=O===null?Q8(B.table):!1;else if(typeof X[E]==="string"&&X[E]!==Q8(B.table))X[E]=!1}}return Y},{});if(F&&Object.keys(X).length>0){for(let[Y,G]of Object.entries(X))if(typeof G==="string"&&!F[G])J[Y]=null}return J}function h0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let Y=$?[...$,X]:[X];if(j(J,ED)||j(J,m)||j(J,m.Aliased))F.push({path:Y,field:J});else if(j(J,x))F.push(...h0(J[x.Symbol.Columns],Y));else F.push(...h0(J,Y));return F},[])}function O3(D,$){let F=Object.keys(D),X=Object.keys($);if(F.length!==X.length)return!1;for(let[J,Y]of F.entries())if(Y!==X[J])return!1;return!0}function b7(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(j(J,m)||j(J,ED))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 vW(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 hW(D){return D[x.Symbol.Columns]}function R3(D){return j(D,pD)?D._.alias:j(D,v0)?D[fD].name:j(D,m)?void 0:D[x.Symbol.IsAlias]?D[x.Symbol.Name]:D[x.Symbol.BaseName]}function T2(D,$){return{name:typeof D==="string"&&D.length>0?D:"",config:typeof D==="object"?D:$}}function xW(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 ZF;var C0=Z(()=>{V2();r();tD();_2();W0();d2();ZF=typeof TextDecoder>"u"?null:new TextDecoder});var gW,yW,qF;var uW=Z(()=>{r();W0();gW=Symbol.for("drizzle:PgInlineForeignKeys"),yW=Symbol.for("drizzle:EnableRLS");qF=class qF extends x{static[P]="PgTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:gW,EnableRLS:yW});[gW]=[];[yW]=!1;[x.Symbol.ExtraConfigBuilder]=void 0;[x.Symbol.ExtraConfigColumns]={}}});var NF,mW;var pW=Z(()=>{r();uW();NF=class NF{static[P]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new mW(D,this.columns,this.name)}};mW=class mW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[P]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[qF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function M0(D,$){if(bW($)&&!CF(D)&&!j(D,I0)&&!j(D,A8)&&!j(D,ED)&&!j(D,x)&&!j(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 dW(...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 lW(D){return M`not ${D}`}function K8(D,$){if(Array.isArray($)){if($.length===0)return M`false`;return M`${D} in ${$.map((F)=>M0(F,D))}`}return M`${D} in ${M0($,D)}`}function nW(D,$){if(Array.isArray($)){if($.length===0)return M`true`;return M`${D} not in ${$.map((F)=>M0(F,D))}`}return M`${D} not in ${M0($,D)}`}function M3(D){return M`${D} is null`}function sW(D){return M`${D} is not null`}function rW(D){return M`exists ${D}`}function aW(D){return M`not exists ${D}`}function oW(D,$,F){return M`${D} between ${M0($,D)} and ${M0(F,D)}`}function tW(D,$,F){return M`${D} not between ${M0($,D)} and ${M0(F,D)}`}function eW(D,$){return M`${D} like ${$}`}function DV(D,$){return M`${D} not like ${$}`}function $V(D,$){return M`${D} ilike ${$}`}function FV(D,$){return M`${D} not ilike ${$}`}var v=(D,$)=>{return M`${D} = ${M0($,D)}`},cW=(D,$)=>{return M`${D} <> ${M0($,D)}`},C3=(D,$)=>{return M`${D} > ${M0($,D)}`},iW=(D,$)=>{return M`${D} >= ${M0($,D)}`},f7=(D,$)=>{return M`${D} < ${M0($,D)}`},k7=(D,$)=>{return M`${D} <= ${M0($,D)}`};var XV=Z(()=>{V2();r();W0();tD()});function w2(D){return M`${D} asc`}function hD(D){return M`${D} desc`}var JV=Z(()=>{tD()});var PF=Z(()=>{XV();JV()});function YV(){return{and:uD,between:oW,eq:v,exists:rW,gt:C3,gte:iW,ilike:$V,inArray:K8,isNull:M3,isNotNull:sW,like:eW,lt:f7,lte:k7,ne:cW,not:lW,notBetween:tW,notExists:aW,notLike:DV,notIlike:FV,notInArray:nW,or:dW,sql:M}}function BV(){return{sql:M,asc:w2,desc:hD}}function HV(D,$){if(Object.keys(D).length===1&&"default"in D&&!j(D.default,x))D=D.default;let F={},X={},J={};for(let[Y,G]of Object.entries(D))if(j(G,x)){let B=o8(G),H=X[B];F[B]=Y,J[Y]={tsName:Y,dbName:G[x.Symbol.Name],schema:G[x.Symbol.Schema],columns:G[x.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let _ of Object.values(G[x.Symbol.Columns]))if(_.primary)J[Y].primaryKey.push(_);let W=G[x.Symbol.ExtraConfigBuilder]?.(G[x.Symbol.ExtraConfigColumns]);if(W){for(let _ of Object.values(W))if(j(_,NF))J[Y].primaryKey.push(..._.columns)}}else if(j(G,GV)){let B=o8(G.table),H=F[B],W=G.config($(G.table)),_;for(let[U,Q]of Object.entries(W))if(H){let A=J[H];if(A.relations[U]=Q,_)A.primaryKey.push(..._)}else{if(!(B in X))X[B]={relations:{},primaryKey:_};X[B].relations[U]=Q}}return{tables:J,tableNamesMap:F}}function _j(D){return function(F,X){return new E8(D,F,X,X?.fields.reduce((J,Y)=>J&&Y.notNull,!0)??!1)}}function Uj(D){return function(F,X){return new Z3(D,F,X)}}function WV(D,$,F){if(j(F,E8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[o8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[x.Symbol.Name]}" not found in schema`);let J=D[X];if(!J)throw Error(`Table "${X}" not found in schema`);let Y=F.sourceTable,G=$[o8(Y)];if(!G)throw Error(`Table "${Y[x.Symbol.Name]}" not found in schema`);let B=[];for(let H of Object.values(J.relations))if(F.relationName&&F!==H&&H.relationName===F.relationName||!F.relationName&&H.referencedTable===F.sourceTable)B.push(H);if(B.length>1)throw F.relationName?Error(`There are multiple relations with name "${F.relationName}" in table "${X}"`):Error(`There are multiple relations between "${X}" and "${F.sourceTable[x.Symbol.Name]}". Please specify relation name`);if(B[0]&&j(B[0],E8)&&B[0].config)return{fields:B[0].config.references,references:B[0].config.fields};throw Error(`There is not enough information to infer relation "${G}.${F.fieldName}"`)}function VV(D){return{one:_j(D),many:Uj(D)}}function v7(D,$,F,X,J=(Y)=>Y){let Y={};for(let[G,B]of X.entries())if(B.isJson){let H=$.relations[B.tsKey],W=F[G],_=typeof W==="string"?JSON.parse(W):W;Y[B.tsKey]=j(H,E8)?_&&v7(D,D[B.relationTableTsKey],_,B.selection,J):_.map((U)=>v7(D,D[B.relationTableTsKey],U,B.selection,J))}else{let H=J(F[G]),W=B.field,_;if(j(W,ED))_=W;else if(j(W,m))_=W.decoder;else _=W.sql.decoder;Y[B.tsKey]=H===null?null:_.mapFromDriverValue(H)}return Y}var LF,GV,E8,Z3;var q3=Z(()=>{W0();V2();r();pW();PF();tD();LF=class LF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[x.Symbol.Name]}static[P]="Relation";referencedTableName;fieldName};GV=class GV{constructor(D,$){this.table=D,this.config=$}static[P]="Relations"};E8=class E8 extends LF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[P]="One";withFieldName(D){let $=new E8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};Z3=class Z3 extends LF{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 h7(D,$){return new Proxy(D,new N3($,!1))}function S2(D,$){return new Proxy(D,new o1(new Proxy(D.table,new N3($,!1))))}function jF(D,$){return new m.Aliased(P3(D.sql,$),D.fieldAlias)}function P3(D,$){return M.join(D.queryChunks.map((F)=>{if(j(F,ED))return S2(F,$);if(j(F,m))return P3(F,$);if(j(F,m.Aliased))return jF(F,$);return F}))}var o1,N3;var x7=Z(()=>{V2();r();tD();W0();d2();o1=class o1{constructor(D){this.table=D}static[P]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};N3=class N3{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((Y)=>{J[Y]=new Proxy(X[Y],new o1(new Proxy(D,this)))}),J}let F=D[$];if(j(F,ED))return new Proxy(F,new o1(new Proxy(D,this)));return F}}});var cD;var t1=Z(()=>{x7();V2();r();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=(j(D,pD)?D._.selectedFields:j(D,v0)?D[fD].selectedFields:D)[$];if(j(X,m.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(j(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(j(X,ED)){if(this.config.alias)return new Proxy(X,new o1(new Proxy(X.table,new N3(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 O0;var l2=Z(()=>{r();O0=class O0{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 zF,_V;var IF=Z(()=>{r();U3();zF=class zF{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 _V(D,this)}};_V=class _V{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((G)=>G.name),J=F.map((G)=>G.name),Y=[this.table[z0],...X,F[0].table[z0],...J];return D??`${Y.join("_")}_fk`}}});function UV(D,$){return`${D[z0]}_${$.join("_")}_unique`}var TF=Z(()=>{U3()});var eD,xD;var O8=Z(()=>{EF();V2();r();IF();TF();eD=class eD extends KF{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,Y)=>{let G=new zF(()=>{let B=J();return{columns:[D],foreignColumns:[B]}});if(Y.onUpdate)G.onUpdate(Y.onUpdate);if(Y.onDelete)G.onDelete(Y.onDelete);return G.build($)})(F,X)})}};xD=class xD extends ED{constructor(D,$){if(!$.uniqueName)$.uniqueName=UV(D,[$.name]);super(D,$);this.table=D}static[P]="SQLiteColumn"}});function CV(D,$){let{name:F,config:X}=T2(D,$);if(X?.mode==="json")return new KV(F);if(X?.mode==="bigint")return new QV(F);return new OV(F)}var QV,AV,KV,EV,OV,RV;var wF=Z(()=>{r();C0();O8();QV=class QV extends eD{static[P]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new AV(D,this.config)}};AV=class AV 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(ZF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};KV=class KV extends eD{static[P]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new EV(D,this.config)}};EV=class EV 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(ZF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};OV=class OV extends eD{static[P]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new RV(D,this.config)}};RV=class RV extends xD{static[P]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function qV(D){return($,F)=>{let{name:X,config:J}=T2($,F);return new MV(X,J,D)}}var MV,ZV;var SF=Z(()=>{r();C0();O8();MV=class MV extends eD{static[P]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new ZV(D,this.config)}};ZV=class ZV 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}=T2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new LV(F,X.mode);if(X?.mode==="boolean")return new zV(F,X.mode);return new NV(F)}var g7,y7,NV,PV,LV,jV,zV,IV;var bF=Z(()=>{r();tD();C0();O8();g7=class g7 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()}};y7=class y7 extends xD{static[P]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};NV=class NV extends g7{static[P]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new PV(D,this.config)}};PV=class PV extends y7{static[P]="SQLiteInteger"};LV=class LV extends g7{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 jV(D,this.config)}};jV=class jV extends y7{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 $}};zV=class zV extends g7{static[P]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new IV(D,this.config)}};IV=class IV extends y7{static[P]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function vV(D,$){let{name:F,config:X}=T2(D,$),J=X?.mode;return J==="number"?new SV(F):J==="bigint"?new fV(F):new TV(F)}var TV,wV,SV,bV,fV,kV;var fF=Z(()=>{r();C0();O8();TV=class TV extends eD{static[P]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new wV(D,this.config)}};wV=class wV extends xD{static[P]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};SV=class SV extends eD{static[P]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new bV(D,this.config)}};bV=class bV extends xD{static[P]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};fV=class fV extends eD{static[P]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new kV(D,this.config)}};kV=class kV extends xD{static[P]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function gV(D){return new hV(D??"")}var hV,xV;var kF=Z(()=>{r();O8();hV=class hV extends eD{static[P]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new xV(D,this.config)}};xV=class xV extends xD{static[P]="SQLiteReal";getSQLType(){return"real"}}});function I(D,$={}){let{name:F,config:X}=T2(D,$);if(X.mode==="json")return new mV(F);return new yV(F,X)}var yV,uV,mV,pV;var vF=Z(()=>{r();C0();O8();yV=class yV extends eD{static[P]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new uV(D,this.config)}};uV=class uV 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})`:""}`}};mV=class mV extends eD{static[P]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new pV(D,this.config)}};pV=class pV extends xD{static[P]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function cV(){return{blob:CV,customType:qV,integer:ID,numeric:vV,real:gV,text:I}}var dV=Z(()=>{wF();SF();bF();fF();kF();vF()});function Qj(D,$,F,X,J=D){let Y=new D0(D,X,J),G=typeof $==="function"?$(cV()):$,B=Object.fromEntries(Object.entries(G).map(([W,_])=>{let U=_;U.setName(W);let Q=U.build(Y);return Y[hF].push(...U.buildForeignKeys(Q,Y)),[W,Q]})),H=Object.assign(Y,B);if(H[x.Symbol.Columns]=B,H[x.Symbol.ExtraConfigColumns]=B,F)H[D0.Symbol.ExtraConfigBuilder]=F;return H}var hF,D0,V0=(D,$,F)=>{return Qj(D,$,F)};var t8=Z(()=>{r();W0();dV();hF=Symbol.for("drizzle:SQLiteInlineForeignKeys");D0=class D0 extends x{static[P]="SQLiteTable";static Symbol=Object.assign({},x.Symbol,{InlineForeignKeys:hF});[x.Symbol.Columns];[hF]=[];[x.Symbol.ExtraConfigBuilder]=void 0}});var lV=()=>{};function x0(D){return new xF(D,!1)}function sV(D){return new xF(D,!0)}var xF,iV,nV;var rV=Z(()=>{r();xF=class xF{constructor(D,$){this.name=D,this.unique=$}static[P]="SQLiteIndexBuilderOn";on(...D){return new iV(this.name,D,this.unique)}};iV=class iV{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 nV(this.config,D)}};nV=class nV{static[P]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var aV=()=>{};function U2(D){if(j(D,D0))return[`${D[x.Symbol.BaseName]}`];if(j(D,pD))return D._.usedTables??[];if(j(D,m))return D.usedTables??[];return[]}var e1=Z(()=>{r();tD();_2();W0();t8()});var u7;var oV=Z(()=>{r();l2();t1();t8();W0();C0();e1();u7=class u7 extends O0{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 Aj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function Kj(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).reduce((F,X,J)=>{let Y=J===0?X.toLowerCase():`${X[0].toUpperCase()}${X.slice(1)}`;return F+Y},"")}function Ej(D){return D}var gF;var tV=Z(()=>{r();W0();gF=class gF{static[P]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?Aj:D==="camelCase"?Kj:Ej}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[x.Symbol.Schema]??"public",F=D.table[x.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[x.Symbol.Schema]??"public",F=D[x.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[x.Symbol.Columns])){let Y=`${X}.${J.name}`;this.cache[Y]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var D6,i2,yF;var m7=Z(()=>{r();D6=class D6 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}
|
|
105
|
+
params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,i2),F)this.cause=F}};yF=class yF extends D6{static[P]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function p7(D){return M`count(${D||M.raw("*")})`.mapWith(Number)}var eV=Z(()=>{tD()});var D_=()=>{};var $_=Z(()=>{eV();D_()});var uF=Z(()=>{PF();$_();tD()});var mF=Z(()=>{wF();O8();SF();bF();fF();kF();vF()});var e8;var c7=Z(()=>{r();tD();e8=class e8 extends v0{static[P]="SQLiteViewBase"}});var L3,j3;var d7=Z(()=>{x7();tV();V2();r();m7();q3();uF();tD();mF();t8();_2();W0();C0();d2();c7();L3=class L3{static[P]="SQLiteDialect";casing;constructor(D){this.casing=new gF(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:Y}){let G=this.buildWithCTE(X),B=F?M` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?M` where ${$}`:void 0,W=this.buildOrderBy(Y),_=this.buildLimit(J);return M`${G}delete from ${D}${H}${B}${W}${_}`}buildUpdateSet(D,$){let F=D[x.Symbol.Columns],X=Object.keys(F).filter((Y)=>$[Y]!==void 0||F[Y]?.onUpdateFn!==void 0),J=X.length;return M.join(X.flatMap((Y,G)=>{let B=F[Y],H=$[Y]??M.param(B.onUpdateFn(),B),W=M`${M.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(G<J-1)return[W,M.raw(", ")];return[W]}))}buildUpdateQuery({table:D,set:$,where:F,returning:X,withList:J,joins:Y,from:G,limit:B,orderBy:H}){let W=this.buildWithCTE(J),_=this.buildUpdateSet(D,$),U=G&&M.join([M.raw(" from "),this.buildFromTable(G)]),Q=this.buildJoins(Y),A=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,O=F?M` where ${F}`:void 0,E=this.buildOrderBy(H),K=this.buildLimit(B);return M`${W}update ${D} set ${_}${U}${Q}${O}${A}${E}${K}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},Y)=>{let G=[];if(j(J,m.Aliased)&&J.isSelectionField)G.push(M.identifier(J.fieldAlias));else if(j(J,m.Aliased)||j(J,m)){let B=j(J,m.Aliased)?J.sql:J;if($)G.push(new m(B.queryChunks.map((H)=>{if(j(H,ED))return M.identifier(this.casing.getColumnCasing(H));return H})));else G.push(B);if(j(J,m.Aliased))G.push(M` as ${M.identifier(J.fieldAlias)}`)}else if(j(J,ED)){let B=J.table[x.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)G.push(M`cast(${M.identifier(this.casing.getColumnCasing(J))} as text)`);else G.push(M`cast(${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)G.push(M.identifier(this.casing.getColumnCasing(J)));else G.push(M`${M.identifier(B)}.${M.identifier(this.casing.getColumnCasing(J))}`)}if(Y<F-1)G.push(M`, `);return G});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,Y=X.on?M` on ${X.on}`:void 0;if(j(J,D0)){let G=J[D0.Symbol.Name],B=J[D0.Symbol.Schema],H=J[D0.Symbol.OriginalName],W=G===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)}`}${Y}`)}else $.push(M`${M.raw(X.joinType)} join ${J}${Y}`);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(j(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:Y,joins:G,orderBy:B,groupBy:H,limit:W,offset:_,distinct:U,setOperators:Q}){let A=F??h0($);for(let $D of A)if(j($D.field,ED)&&Q8($D.field.table)!==(j(Y,pD)?Y._.alias:j(Y,e8)?Y[fD].name:j(Y,m)?void 0:Q8(Y))&&!((rD)=>G?.some(({alias:N2})=>N2===(rD[x.Symbol.IsAlias]?Q8(rD):rD[x.Symbol.BaseName])))($D.field.table)){let rD=Q8($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 O=!G||G.length===0,E=this.buildWithCTE(D),K=U?M` distinct`:void 0,R=this.buildSelection(A,{isSingleTable:O}),q=this.buildFromTable(Y),N=this.buildJoins(G),b=X?M` where ${X}`:void 0,T=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 w=L.length>0?M` group by ${M.join(L)}`:void 0,z=this.buildOrderBy(B),s=this.buildLimit(W),QD=_?M` offset ${_}`:void 0,VD=M`${E}select${K} ${R} from ${q}${N}${b}${w}${T}${z}${s}${QD}`;if(Q.length>0)return this.buildSetOperations(VD,Q);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:Y,offset:G}}){let B=M`${D.getSQL()} `,H=M`${X.getSQL()}`,W;if(Y&&Y.length>0){let A=[];for(let O of Y)if(j(O,xD))A.push(M.identifier(O.name));else if(j(O,m)){for(let E=0;E<O.queryChunks.length;E++){let K=O.queryChunks[E];if(j(K,xD))O.queryChunks[E]=M.identifier(this.casing.getColumnCasing(K))}A.push(M`${O}`)}else A.push(M`${O}`);W=M` order by ${M.join(A,M`, `)}`}let _=typeof J==="object"||typeof J==="number"&&J>=0?M` limit ${J}`:void 0,U=M.raw(`${$} ${F?"all ":""}`),Q=G?M` offset ${G}`:void 0;return M`${B}${U}${H}${W}${_}${Q}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:Y}){let G=[],B=D[x.Symbol.Columns],H=Object.entries(B).filter(([O,E])=>!E.shouldDisableInsert()),W=H.map(([,O])=>M.identifier(this.casing.getColumnCasing(O)));if(Y){let O=$;if(j(O,m))G.push(O);else G.push(O.getSQL())}else{let O=$;G.push(M.raw("values "));for(let[E,K]of O.entries()){let R=[];for(let[q,N]of H){let b=K[q];if(b===void 0||j(b,I0)&&b.value===void 0){let T;if(N.default!==null&&N.default!==void 0)T=j(N.default,m)?N.default:M.param(N.default,N);else if(N.defaultFn!==void 0){let L=N.defaultFn();T=j(L,m)?L:M.param(L,N)}else if(!N.default&&N.onUpdateFn!==void 0){let L=N.onUpdateFn();T=j(L,m)?L:M.param(L,N)}else T=M`null`;R.push(T)}else R.push(b)}if(G.push(R),E<O.length-1)G.push(M`, `)}}let _=this.buildWithCTE(J),U=M.join(G),Q=X?M` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,A=F?.length?M.join(F):void 0;return M`${_}insert into ${D} ${W} ${U}${A}${Q}`}sqlToQuery(D,$){return D.toQuery({casing:this.casing,escapeName:this.escapeName,escapeParam:this.escapeParam,escapeString:this.escapeString,invokeSource:$})}buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:X,tableConfig:J,queryConfig:Y,tableAlias:G,nestedQueryRelation:B,joinOn:H}){let W=[],_,U,Q=[],A,O=[];if(Y===!0)W=Object.entries(J.columns).map(([R,q])=>({dbKey:q.name,tsKey:R,field:S2(q,G),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let K=Object.fromEntries(Object.entries(J.columns).map(([L,w])=>[L,S2(w,G)]));if(Y.where){let L=typeof Y.where==="function"?Y.where(K,YV()):Y.where;A=L&&P3(L,G)}let R=[],q=[];if(Y.columns){let L=!1;for(let[w,z]of Object.entries(Y.columns)){if(z===void 0)continue;if(w in J.columns){if(!L&&z===!0)L=!0;q.push(w)}}if(q.length>0)q=L?q.filter((w)=>Y.columns?.[w]===!0):Object.keys(J.columns).filter((w)=>!q.includes(w))}else q=Object.keys(J.columns);for(let L of q){let w=J.columns[L];R.push({tsKey:L,value:w})}let N=[];if(Y.with)N=Object.entries(Y.with).filter((L)=>!!L[1]).map(([L,w])=>({tsKey:L,queryConfig:w,relation:J.relations[L]}));let b;if(Y.extras){b=typeof Y.extras==="function"?Y.extras(K,{sql:M}):Y.extras;for(let[L,w]of Object.entries(b))R.push({tsKey:L,value:jF(w,G)})}for(let{tsKey:L,value:w}of R)W.push({dbKey:j(w,m.Aliased)?w.fieldAlias:J.columns[L].name,tsKey:L,field:j(w,ED)?S2(w,G):w,relationTableTsKey:void 0,isJson:!1,selection:[]});let T=typeof Y.orderBy==="function"?Y.orderBy(K,BV()):Y.orderBy??[];if(!Array.isArray(T))T=[T];Q=T.map((L)=>{if(j(L,ED))return S2(L,G);return P3(L,G)}),_=Y.limit,U=Y.offset;for(let{tsKey:L,queryConfig:w,relation:z}of N){let s=WV($,F,z),QD=o8(z.referencedTable),VD=F[QD],$D=`${G}_${L}`,rD=uD(...s.fields.map((SZ,bZ)=>v(S2(s.references[bZ],$D),S2(SZ,G)))),N2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[VD],tableConfig:$[VD],queryConfig:j(z,E8)?w===!0?{limit:1}:{...w,limit:1}:w,tableAlias:$D,joinOn:rD,nestedQueryRelation:z}),wZ=M`(${N2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:wZ,relationTableTsKey:VD,isJson:!0,selection:N2.selection})}}if(W.length===0)throw new D6({message:`No fields selected for table "${J.tsName}" ("${G}"). You need to have at least one item in "columns", "with" or "extras". If you need to select all columns, omit the "columns" key or set it to undefined.`});let E;if(A=uD(H,A),B){let K=M`json_array(${M.join(W.map(({field:N})=>j(N,xD)?M.identifier(this.casing.getColumnCasing(N)):j(N,m.Aliased)?N.sql:N),M`, `)})`;if(j(B,Z3))K=M`coalesce(json_group_array(${K}), json_array())`;let R=[{dbKey:"data",tsKey:"data",field:K.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(_!==void 0||U!==void 0||Q.length>0)E=this.buildSelectQuery({table:h7(X,G),fields:{},fieldsFlat:[{path:[],field:M.raw("*")}],where:A,limit:_,offset:U,orderBy:Q,setOperators:[]}),A=void 0,_=void 0,U=void 0,Q=void 0;else E=h7(X,G);E=this.buildSelectQuery({table:j(E,D0)?E:new pD(E,{},G),fields:{},fieldsFlat:R.map(({field:N})=>({path:[],field:j(N,ED)?S2(N,G):N})),joins:O,where:A,limit:_,offset:U,orderBy:Q,setOperators:[]})}else E=this.buildSelectQuery({table:h7(X,G),fields:{},fieldsFlat:W.map(({field:K})=>({path:[],field:j(K,ED)?S2(K,G):K})),joins:O,where:A,limit:_,offset:U,orderBy:Q,setOperators:[]});return{tableTsKey:J.tsName,sql:E,selection:W}}};j3=class j3 extends L3{static[P]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=M`
|
|
106
106
|
CREATE TABLE IF NOT EXISTS ${M.identifier(X)} (
|
|
107
107
|
id SERIAL PRIMARY KEY,
|
|
108
108
|
hash text NOT NULL,
|
|
109
109
|
created_at numeric
|
|
110
110
|
)
|
|
111
|
-
`;$.run(J);let G=$.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(!G||Number(G[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 mF;var $_=Z(()=>{r();mF=class mF{static[N]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function d7(D,$){return(F,X,...J)=>{let Y=[X,...J].map((G)=>({type:D,isAll:$,rightSelect:G}));for(let G of Y)if(!C3(F.getSelectedFields(),G.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return F.addSetOperators(Y)}}var Q2,F_,pF,Kj=()=>({union:Ej,unionAll:Cj,intersect:Rj,except:Oj}),Ej,Cj,Rj,Oj;var cF=Z(()=>{r();$_();i2();t1();tD();_2();W0();O0();l2();e1();p7();Q2=class Q2{static[N]="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(j(D,pD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(j(D,e8))F=D[fD].selectedFields;else if(j(D,m))F={};else F=vW(D);return new pF({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};F_=class F_ extends mF{static[N]="SQLiteSelectQueryBuilder";_;config;joinsNotNullableMap;tableName;isPartialSelect;session;dialect;cacheConfig=void 0;usedTables=new Set;constructor({table:D,fields:$,isPartialSelect:F,session:X,dialect:J,withList:Y,distinct:G}){super();this.config={withList:Y,table:D,fields:{...$},distinct:G,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=R3(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=R3($);for(let Y of U2($))this.usedTables.add(Y);if(typeof J==="string"&&this.config.joins?.some((Y)=>Y.alias===J))throw Error(`Alias "${J}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof X==="string")this.config.fields={[X]:this.config.fields};if(typeof J==="string"&&!j($,m)){let Y=j($,pD)?$._.selectedFields:j($,v0)?$[fD].selectedFields:$[x.Symbol.Columns];this.config.fields[J]=Y}}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(([Y])=>[Y,!1])),this.joinsNotNullableMap[J]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(D,$){return(F)=>{let X=typeof F==="function"?F(Kj()):F;if(!C3(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}};pF=class pF extends F_{static[N]="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()}};kW(pF,[C0]);Ej=d7("union",!1),Cj=d7("union",!0),Rj=d7("intersect",!1),Oj=d7("except",!1)});var z3;var dF=Z(()=>{r();t1();c7();_2();cF();z3=class z3{static[N]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=j(D,L3)?D:void 0,this.dialectConfig=j(D,L3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new K3(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 Q2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new Q2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new Q2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new Q2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new j3(this.dialectConfig);return this.dialect}}});var l7,lF;var X_=Z(()=>{r();i2();tD();t8();W0();O0();e1();dF();l7=class l7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[N]="SQLiteInsertBuilder";values(D){if(D=Array.isArray(D)?D:[D],D.length===0)throw Error("values() must be called with at least one value");let $=D.map((F)=>{let X={},J=this.table[x.Symbol.Columns];for(let Y of Object.keys(F)){let G=F[Y];X[Y]=j(G,m)?G:new I0(G,J[Y])}return X});return new lF(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new z3):D;if(!j($,m)&&!C3(this.table[T7],$._.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 lF(this.table,$,this.session,this.dialect,this.withList,!0)}};lF=class lF extends C0{constructor(D,$,F,X,J,Y){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:Y}}static[N]="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]}`,Y=this.dialect.buildUpdateSet(this.config.table,S7(this.config.table,D.set));return this.config.onConflict.push(M` on conflict ${J}${F} do update set ${Y}${$}${X}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables: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 i7,J_;var G_=Z(()=>{r();i2();t1();t8();_2();W0();O0();l2();e1();p7();i7=class i7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[N]="SQLiteUpdateBuilder";set(D){return new J_(this.table,S7(this.table,D),this.session,this.dialect,this.withList)}};J_=class J_ extends C0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[N]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=R3($);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?j($,D0)?$[x.Symbol.Columns]:j($,pD)?$._.selectedFields:j($,e8)?$[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 iF=Z(()=>{aV();X_();dF();cF();G_()});var I3;var Y_=Z(()=>{r();tD();I3=class I3 extends m{constructor(D){super(I3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=I3.buildCount(D.source,D.filters)}sql;static[N]="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 sF,n7,nF;var B_=Z(()=>{r();i2();q3();sF=class sF{constructor(D,$,F,X,J,Y,G,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=Y,this.dialect=G,this.session=B}static[N]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new nF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new n7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new nF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new n7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};n7=class n7 extends C0{constructor(D,$,F,X,J,Y,G,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=Y,this.session=G,this.config=B,this.mode=H}static[N]="SQLiteAsyncRelationalQuery";mode;getSQL(){return this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}).sql}_prepare(D=!1){let{query:$,builtQuery:F}=this._toSQL();return this.session[D?"prepareOneTimeQuery":"prepareQuery"](F,void 0,this.mode==="first"?"get":"all",!0,(X,J)=>{let Y=X.map((G)=>k7(this.schema,this.tableConfig,G,$.selection,J));if(this.mode==="first")return Y[0];return Y})}prepare(){return this._prepare(!1)}_toSQL(){let D=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),$=this.dialect.sqlToQuery(D.sql);return{query:D,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}executeRaw(){if(this.mode==="first")return this._prepare(!1).get();return this._prepare(!1).all()}async execute(){return this.executeRaw()}};nF=class nF extends n7{static[N]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var $6;var H_=Z(()=>{r();i2();$6=class $6 extends C0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[N]="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 T3;var s7=Z(()=>{r();t1();tD();iF();_2();Y_();B_();H_();T3=class T3{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[Y,G]of Object.entries(this._.schema))J[Y]=new sF(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],G,$,F);this.$cache={invalidate:async(Y)=>{}}}static[N]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new z3(F.dialect));return new Proxy(new K3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new I3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new Q2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new Q2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new i7(B,$.session,$.dialect,D)}function Y(B){return new l7(B,$.session,$.dialect,D)}function G(B){return new y7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:Y,delete:G}}select(D){return new Q2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new Q2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new i7(D,this.session,this.dialect)}$cache;insert(D){return new l7(D,this.session,this.dialect)}delete(D){return new y7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new $6(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 $6(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 $6(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 $6(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 W_=()=>{};async function aF(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),Y=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(Y)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var V_,rF;var __=Z(()=>{r();V_=class V_{static[N]="Cache"};rF=class rF extends V_{strategy(){return"all"}static[N]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var U_,oF,tF,eF;var DX=Z(()=>{__();r();u7();i2();s7();U_=class U_ extends C0{constructor(D){super();this.resultCb=D}static[N]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};oF=class oF{constructor(D,$,F,X,J,Y){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=Y,X&&X.strategy()==="all"&&Y===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}static[N]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||j(this.cache,rF)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new n2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new n2(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 n2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new n2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await aF(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(Y){throw new n2(D,$,Y)}return await this.cache.put(this.cacheConfig.tag??await aF(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 n2(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 U_(()=>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,$)}}};tF=class tF{constructor(D){this.dialect=D}static[N]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,Y,G){return this.prepareQuery(D,$,F,X,J,Y,G)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new D6({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")}};eF=class eF extends T3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[N]="SQLiteTransaction";rollback(){throw new gF}}});var Q_=()=>{};var r7=Z(()=>{W_();dV();uF();s7();c7();zF();sV();rV();iF();DX();t8();IF();e1();Q_()});var $X,FX,A_;var XX=Z(()=>{r();z7();tD();r7();DX();O0();$X=class $X extends tF{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new _F}static[N]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let Y=this.client.prepare(D.sql);return new A_(Y,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new FX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};FX=class FX extends eF{static[N]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new FX("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}}};A_=class A_ extends oF{constructor(D,$,F,X,J,Y,G){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=Y,this.customResultMapper=G}static[N]="SQLiteBunPreparedQuery";run(D){let $=E3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.run(...$)}all(D){let{fields:$,query:F,logger:X,joinsNotNullableMap:J,stmt:Y,customResultMapper:G}=this;if(!$&&!G){let H=E3(F.params,D??{});return X.logQuery(F.sql,H),Y.all(...H)}let B=this.values(D);if(G)return G(B);return B.map((H)=>OF($,H,J))}get(D){let $=E3(this.query.params,D??{});this.logger.logQuery(this.query.sql,$);let F=this.stmt.values(...$)[0];if(!F)return;let{fields:X,joinsNotNullableMap:J,customResultMapper:Y}=this;if(!X&&!Y)return F;if(Y)return Y([F]);return OF(X,F,J)}values(D){let $=E3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as a7}from"bun:sqlite";function F6(D,$={}){let F=new j3({casing:$.casing}),X;if($.logger===!0)X=new VF;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=BV($.schema,WV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let Y=new $X(D,F,J,{logger:X}),G=new K_("sync",F,Y,J);return G.$client=D,G}function X6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new a7:new a7(D[0]);return F6($,D[1])}if(hW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return F6(F,X);if(typeof $==="object"){let{source:Y,...G}=$,B=Object.values(G).filter((W)=>W!==void 0).length?G:void 0,H=new a7(Y,B);return F6(H,X)}let J=new a7($);return F6(J,X)}return F6(D[0],D[1])}var K_;var E_=Z(()=>{r();z7();q3();s7();c7();O0();XX();K_=class K_ extends T3{static[N]="BunSQLiteDatabase"};((D)=>{function $(F){return F6({},F)}D.mock=$})(X6||(X6={}))});var JX=Z(()=>{E_();XX()});import Mj from"crypto";import GX from"fs";function C_(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!GX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=GX.readFileSync(`${$}/meta/_journal.json`).toString(),Y=JSON.parse(J);for(let G of Y.entries){let B=`${$}/${G.tag}.sql`;try{let H=GX.readFileSync(`${$}/${G.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((_)=>{return _});F.push({sql:W,bps:G.breakpoints,folderMillis:G.when,hash:Mj.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var R_=()=>{};function o7(D,$){let F=C_($);D.dialect.migrate(F,D.session,$)}var YX=Z(()=>{R_()});var _0=Z(()=>{h7();KF();V2();r();u7();z7();i2();q3();yF();_2();W0();O0();l2()});var W4={};y8(W4,{workerSecrets:()=>U0,workerIdentity:()=>g0,workerConfig:()=>K2,skillDrafts:()=>Z0,skillBindings:()=>b3,sessionEntries:()=>WD,messages:()=>d,executionLogs:()=>a2,evolutionObservations:()=>A2,cronJobs:()=>PD,conversations:()=>c,agentTasks:()=>Z8});var Z8,c,WD,d,a2,b3,Z0,A2,g0,K2,PD,U0;var ZX=Z(()=>{r7();Z8=V0("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=V0("conversations",{id:I("id").primaryKey(),taskId:I("task_id").references(()=>Z8.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=V0("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=V0("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=V0("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)})),b3=V0("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:nV("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),Z0=V0("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")}),A2=V0("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=V0("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")}),K2=V0("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"]})}),PD=V0("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=V0("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 zX={};y8(zX,{workerSecrets:()=>U0,workerSchema:()=>W4,workerIdentity:()=>g0,workerConfig:()=>K2,upsertSessionEntry:()=>PX,updateSessionEngineBinding:()=>jX,touchSessionEntry:()=>B6,skillDrafts:()=>Z0,skillBindings:()=>b3,sessionEntries:()=>WD,runWorkerMigrations:()=>v3,rotateSessionConversation:()=>NX,recordSessionCompaction:()=>LX,messages:()=>d,initWorkerDb:()=>k3,getWorkerDb:()=>u,getSessionEntry:()=>Y0,executionLogs:()=>a2,evolutionObservations:()=>A2,defaultWorkerMigrationsFolder:()=>Y6,cronJobs:()=>PD,conversations:()=>c,closeWorkerDb:()=>DI,agentTasks:()=>Z8});import{existsSync as NU}from"fs";import qX from"path";import{fileURLToPath as az}from"url";import{Database as oz}from"bun:sqlite";function tz(D){let $=qX.resolve(LU,"../../drizzle",D);if(NU($))return $;let F=qX.resolve(LU,"drizzle",D);if(NU(F))return F;return $}function ez(D){let $=new oz(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),X6($,{schema:W4})}function k3(D){return f3=ez(D),f3}function u(){if(!f3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return f3}function DI(){f3=null}function v3(D=Y6){o7(u(),{migrationsFolder:D})}function Y0(D){return u().select().from(WD).where(v(WD.sessionKey,D)).get()??null}function PX(D){let $=u(),F=D.at??new Date().toISOString(),X=Y0(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 Y0(D.sessionKey)}function B6(D,$={}){if(!Y0(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(),Y0(D)}function NX(D){if(!Y0(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(),Y0(D.sessionKey)}function LX(D,$={}){let F=Y0(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(),Y0(D)}function jX(D,$,F,X){let J=Y0(D);if(!J)return null;let Y={...J.engineBindings};if(F===null)delete Y[$];else Y[$]=F;return u().update(WD).set({engineBindings:Y,updatedAt:X??new Date().toISOString()}).where(v(WD.sessionKey,D)).run(),Y0(D)}var LU,Y6,f3=null;var TD=Z(()=>{_0();JX();YX();ZX();ZX();LU=qX.dirname(az(import.meta.url));Y6=tz("worker")});import jU from"path";import zU from"process";function FI(D){let $={};for(let[F,X]of Object.entries(D)){let J=/^MAX_CONCURRENT_(.+)$/.exec(F);if(!J)continue;if(J[1]==="TOTAL")continue;let Y=J[1].toLowerCase().replace(/_/g,"-"),G=Number.parseInt(X??"",10);if(Number.isFinite(G)&&G>0)$[Y]=G}return $}function X1(){if(V4)return V4;let D=$I.parse(zU.env);return V4=Object.freeze({...D,perEngineLimits:Object.freeze({...FI(zU.env)})}),V4}var $I,V4=null,n;var _4=Z(()=>{L2();j0();TD();yD();$I=V.object({PORT:V.coerce.number().default(9217),WORKER_DB_PATH:V.string().default(()=>jU.join(u2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:V.string().default(()=>Y6),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(r1).optional(),AIWORKER_FORCE_TOKEN:V.string().regex(d2).optional(),AIWORKER_ADVERTISED_BASE_URL:V.string().optional(),WORKER_DATA_ROOT:V.string().default(()=>jU.join(u2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:V.string().optional(),AIWORKER_GATEWAY_URL:V.string().url().optional(),AIWORKER_JOIN_TOKEN:V.string().min(1).optional(),AIWORKER_DISPLAY_NAME:V.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:V.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:V.string().optional(),MAX_CONCURRENT_TOTAL:V.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:V.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:V.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:V.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:V.coerce.number().int().min(0).default(30000)});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 $=XI[D.engine];if(!$)throw Error(`unknown executor engine: ${D.engine}`);let F=$.variants[D.variant];if(!F)throw Error(`unknown executor variant '${D.variant}' for engine '${D.engine}'`);let{cmd:X,...J}=D.overrides??{},Y={...F,...J};return{engine:D.engine,body:Y,...X?{cmd:X}:{},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}}}function IU(D){if(!D||typeof D!=="object")return{...x3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...x3};switch(F){case"http":return{engine:"http",variant:"default",overrides:h3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:h3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:h3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:h3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:h3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...x3}}}function h3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var XI,x3;var J1=Z(()=>{XI={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}}}},x3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var H6;var IX=Z(()=>{J1();H6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...x3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function G1(D){let $=await D.select().from(K2).where(v(K2.pk,"default")).get();if($)return{config:JI($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(K2).values({pk:"default",configJson:H6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:H6,version:1}}function JI(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:IU($)}}var TU=Z(()=>{TD();_0();J1();IX()});import{randomBytes as GI}from"crypto";function W6(){let D=GI(32),$=`${E7}${YI(D)}`;if(!Q8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function YI(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Y1(D,$,F={}){let X=await D.select().from(g0).where(v(g0.pk,"default")).get();if(X){let U=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!Q8(U))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await N$(X.workerId),{workerId:X.workerId,token:U,justMinted:!1}}let J=F.forceId??U4();if(!r1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let Y=F.forceToken??W6();if(!Q8(Y))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let G=Y,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(G),_=new Date().toISOString();return await D.insert(g0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:_,createdAt:_}).run(),await N$(J),{workerId:J,token:G,justMinted:!0}}var U4;var TX=Z(()=>{L2();j0();TD();_0();U4=$F});import BI from"process";function B1(D,$,F,X,J=BI.stdout){if(!X)return;J.write(`[worker] id=${D}
|
|
111
|
+
`;$.run(J);let G=$.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(!G||Number(G[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 pF;var F_=Z(()=>{r();pF=class pF{static[P]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function l7(D,$){return(F,X,...J)=>{let Y=[X,...J].map((G)=>({type:D,isAll:$,rightSelect:G}));for(let G of Y)if(!O3(F.getSelectedFields(),G.rightSelect.getSelectedFields()))throw Error("Set operator error (union / intersect / except): selected fields are not the same or are in a different order");return F.addSetOperators(Y)}}var Q2,X_,cF,Oj=()=>({union:Rj,unionAll:Cj,intersect:Mj,except:Zj}),Rj,Cj,Mj,Zj;var dF=Z(()=>{r();F_();l2();t1();tD();_2();W0();C0();d2();e1();c7();Q2=class Q2{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(j(D,pD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(j(D,e8))F=D[fD].selectedFields;else if(j(D,m))F={};else F=hW(D);return new cF({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};X_=class X_ extends pF{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:Y,distinct:G}){super();this.config={withList:Y,table:D,fields:{...$},distinct:G,setOperators:[]},this.isPartialSelect=F,this.session=X,this.dialect=J,this._={selectedFields:$,config:this.config},this.tableName=R3(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=R3($);for(let Y of U2($))this.usedTables.add(Y);if(typeof J==="string"&&this.config.joins?.some((Y)=>Y.alias===J))throw Error(`Alias "${J}" is already used in this query`);if(!this.isPartialSelect){if(Object.keys(this.joinsNotNullableMap).length===1&&typeof X==="string")this.config.fields={[X]:this.config.fields};if(typeof J==="string"&&!j($,m)){let Y=j($,pD)?$._.selectedFields:j($,v0)?$[fD].selectedFields:$[x.Symbol.Columns];this.config.fields[J]=Y}}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(([Y])=>[Y,!1])),this.joinsNotNullableMap[J]=!0;break}case"cross":case"inner":{this.joinsNotNullableMap[J]=!0;break}case"full":{this.joinsNotNullableMap=Object.fromEntries(Object.entries(this.joinsNotNullableMap).map(([Y])=>[Y,!1])),this.joinsNotNullableMap[J]=!1;break}}return this}}leftJoin=this.createJoin("left");rightJoin=this.createJoin("right");innerJoin=this.createJoin("inner");fullJoin=this.createJoin("full");crossJoin=this.createJoin("cross");createSetOperator(D,$){return(F)=>{let X=typeof F==="function"?F(Oj()):F;if(!O3(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}};cF=class cF extends X_{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()}};vW(cF,[O0]);Rj=l7("union",!1),Cj=l7("union",!0),Mj=l7("intersect",!1),Zj=l7("except",!1)});var z3;var lF=Z(()=>{r();t1();d7();_2();dF();z3=class z3{static[P]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=j(D,L3)?D:void 0,this.dialectConfig=j(D,L3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new K3(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 Q2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new Q2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new Q2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new Q2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new j3(this.dialectConfig);return this.dialect}}});var i7,iF;var J_=Z(()=>{r();l2();tD();t8();W0();C0();e1();lF();i7=class i7{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 Y of Object.keys(F)){let G=F[Y];X[Y]=j(G,m)?G:new I0(G,J[Y])}return X});return new iF(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new z3):D;if(!j($,m)&&!O3(this.table[w7],$._.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 iF(this.table,$,this.session,this.dialect,this.withList,!0)}};iF=class iF extends O0{constructor(D,$,F,X,J,Y){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:Y}}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]}`,Y=this.dialect.buildUpdateSet(this.config.table,b7(this.config.table,D.set));return this.config.onConflict.push(M` on conflict ${J}${F} do update set ${Y}${$}${X}`),this}getSQL(){return this.dialect.buildInsertQuery(this.config)}toSQL(){let{typings:D,...$}=this.dialect.sqlToQuery(this.getSQL());return $}_prepare(D=!0){return this.session[D?"prepareOneTimeQuery":"prepareQuery"](this.dialect.sqlToQuery(this.getSQL()),this.config.returning,this.config.returning?"all":"run",!0,void 0,{type:"insert",tables: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 n7,G_;var Y_=Z(()=>{r();l2();t1();t8();_2();W0();C0();d2();e1();c7();n7=class n7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[P]="SQLiteUpdateBuilder";set(D){return new G_(this.table,b7(this.table,D),this.session,this.dialect,this.withList)}};G_=class G_ extends O0{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=R3($);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?j($,D0)?$[x.Symbol.Columns]:j($,pD)?$._.selectedFields:j($,e8)?$[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 nF=Z(()=>{oV();J_();lF();dF();Y_()});var I3;var B_=Z(()=>{r();tD();I3=class I3 extends m{constructor(D){super(I3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=I3.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 rF,s7,sF;var H_=Z(()=>{r();l2();q3();rF=class rF{constructor(D,$,F,X,J,Y,G,B){this.mode=D,this.fullSchema=$,this.schema=F,this.tableNamesMap=X,this.table=J,this.tableConfig=Y,this.dialect=G,this.session=B}static[P]="SQLiteAsyncRelationalQueryBuilder";findMany(D){return this.mode==="sync"?new sF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many"):new s7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?D:{},"many")}findFirst(D){return this.mode==="sync"?new sF(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first"):new s7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};s7=class s7 extends O0{constructor(D,$,F,X,J,Y,G,B,H){super();this.fullSchema=D,this.schema=$,this.tableNamesMap=F,this.table=X,this.tableConfig=J,this.dialect=Y,this.session=G,this.config=B,this.mode=H}static[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 Y=X.map((G)=>v7(this.schema,this.tableConfig,G,$.selection,J));if(this.mode==="first")return Y[0];return Y})}prepare(){return this._prepare(!1)}_toSQL(){let D=this.dialect.buildRelationalQuery({fullSchema:this.fullSchema,schema:this.schema,tableNamesMap:this.tableNamesMap,table:this.table,tableConfig:this.tableConfig,queryConfig:this.config,tableAlias:this.tableConfig.tsName}),$=this.dialect.sqlToQuery(D.sql);return{query:D,builtQuery:$}}toSQL(){return this._toSQL().builtQuery}executeRaw(){if(this.mode==="first")return this._prepare(!1).get();return this._prepare(!1).all()}async execute(){return this.executeRaw()}};sF=class sF extends s7{static[P]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var $6;var W_=Z(()=>{r();l2();$6=class $6 extends O0{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 T3;var r7=Z(()=>{r();t1();tD();nF();_2();B_();H_();W_();T3=class T3{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[Y,G]of Object.entries(this._.schema))J[Y]=new rF(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],G,$,F);this.$cache={invalidate:async(Y)=>{}}}static[P]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new z3(F.dialect));return new Proxy(new K3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new cD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new I3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new Q2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new Q2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new n7(B,$.session,$.dialect,D)}function Y(B){return new i7(B,$.session,$.dialect,D)}function G(B){return new u7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:Y,delete:G}}select(D){return new Q2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new Q2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new n7(D,this.session,this.dialect)}$cache;insert(D){return new i7(D,this.session,this.dialect)}delete(D){return new u7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?M.raw(D):D.getSQL();if(this.resultKind==="async")return new $6(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 $6(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 $6(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 $6(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 V_=()=>{};async function oF(D,$){let F=`${D}-${JSON.stringify($)}`,J=new TextEncoder().encode(F),Y=await crypto.subtle.digest("SHA-256",J);return[...new Uint8Array(Y)].map((H)=>H.toString(16).padStart(2,"0")).join("")}var __,aF;var U_=Z(()=>{r();__=class __{static[P]="Cache"};aF=class aF extends __{strategy(){return"all"}static[P]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var Q_,tF,eF,DX;var $X=Z(()=>{U_();r();m7();l2();r7();Q_=class Q_ extends O0{constructor(D){super();this.resultCb=D}static[P]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};tF=class tF{constructor(D,$,F,X,J,Y){if(this.mode=D,this.executeMethod=$,this.query=F,this.cache=X,this.queryMetadata=J,this.cacheConfig=Y,X&&X.strategy()==="all"&&Y===void 0)this.cacheConfig={enable:!0,autoInvalidate:!0};if(!this.cacheConfig?.enable)this.cacheConfig=void 0}static[P]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||j(this.cache,aF)||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 oF(D,$),this.queryMetadata.tables,this.cacheConfig.tag!==void 0,this.cacheConfig.autoInvalidate);if(X===void 0){let J;try{J=await F()}catch(Y){throw new i2(D,$,Y)}return await this.cache.put(this.cacheConfig.tag??await oF(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 Q_(()=>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,$)}}};eF=class eF{constructor(D){this.dialect=D}static[P]="SQLiteSession";prepareOneTimeQuery(D,$,F,X,J,Y,G){return this.prepareQuery(D,$,F,X,J,Y,G)}run(D){let $=this.dialect.sqlToQuery(D);try{return this.prepareOneTimeQuery($,void 0,"run",!1).run()}catch(F){throw new D6({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")}};DX=class DX extends T3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[P]="SQLiteTransaction";rollback(){throw new yF}}});var A_=()=>{};var a7=Z(()=>{V_();lV();mF();r7();d7();IF();rV();aV();nF();$X();t8();TF();e1();A_()});var FX,XX,K_;var JX=Z(()=>{r();I7();tD();a7();$X();C0();FX=class FX extends eF{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new UF}static[P]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let Y=this.client.prepare(D.sql);return new K_(Y,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new XX("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};XX=class XX extends DX{static[P]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new XX("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}}};K_=class K_ extends tF{constructor(D,$,F,X,J,Y,G){super("sync",J,$);this.stmt=D,this.logger=F,this.fields=X,this._isResponseInArrayMode=Y,this.customResultMapper=G}static[P]="SQLiteBunPreparedQuery";run(D){let $=E3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.run(...$)}all(D){let{fields:$,query:F,logger:X,joinsNotNullableMap:J,stmt:Y,customResultMapper:G}=this;if(!$&&!G){let H=E3(F.params,D??{});return X.logQuery(F.sql,H),Y.all(...H)}let B=this.values(D);if(G)return G(B);return B.map((H)=>MF($,H,J))}get(D){let $=E3(this.query.params,D??{});this.logger.logQuery(this.query.sql,$);let F=this.stmt.values(...$)[0];if(!F)return;let{fields:X,joinsNotNullableMap:J,customResultMapper:Y}=this;if(!X&&!Y)return F;if(Y)return Y([F]);return MF(X,F,J)}values(D){let $=E3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as o7}from"bun:sqlite";function F6(D,$={}){let F=new j3({casing:$.casing}),X;if($.logger===!0)X=new _F;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=HV($.schema,VV);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let Y=new FX(D,F,J,{logger:X}),G=new E_("sync",F,Y,J);return G.$client=D,G}function X6(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new o7:new o7(D[0]);return F6($,D[1])}if(xW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return F6(F,X);if(typeof $==="object"){let{source:Y,...G}=$,B=Object.values(G).filter((W)=>W!==void 0).length?G:void 0,H=new o7(Y,B);return F6(H,X)}let J=new o7($);return F6(J,X)}return F6(D[0],D[1])}var E_;var O_=Z(()=>{r();I7();q3();r7();d7();C0();JX();E_=class E_ extends T3{static[P]="BunSQLiteDatabase"};((D)=>{function $(F){return F6({},F)}D.mock=$})(X6||(X6={}))});var GX=Z(()=>{O_();JX()});import qj from"crypto";import YX from"fs";function R_(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!YX.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=YX.readFileSync(`${$}/meta/_journal.json`).toString(),Y=JSON.parse(J);for(let G of Y.entries){let B=`${$}/${G.tag}.sql`;try{let H=YX.readFileSync(`${$}/${G.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((_)=>{return _});F.push({sql:W,bps:G.breakpoints,folderMillis:G.when,hash:qj.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var C_=()=>{};function t7(D,$){let F=R_($);D.dialect.migrate(F,D.session,$)}var BX=Z(()=>{C_()});var _0=Z(()=>{x7();EF();V2();r();m7();I7();l2();q3();uF();_2();W0();C0();d2()});var V4={};y8(V4,{workerSecrets:()=>U0,workerIdentity:()=>g0,workerConfig:()=>K2,skillDrafts:()=>Z0,skillBindings:()=>b3,sessionEntries:()=>WD,messages:()=>d,executionLogs:()=>r2,evolutionObservations:()=>A2,cronJobs:()=>ND,conversations:()=>c,agentTasks:()=>M8});var M8,c,WD,d,r2,b3,Z0,A2,g0,K2,ND,U0;var qX=Z(()=>{a7();M8=V0("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=V0("conversations",{id:I("id").primaryKey(),taskId:I("task_id").references(()=>M8.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=V0("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=V0("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)})),r2=V0("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)})),b3=V0("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:sV("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),Z0=V0("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")}),A2=V0("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=V0("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")}),K2=V0("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=V0("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=V0("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 IX={};y8(IX,{workerSecrets:()=>U0,workerSchema:()=>V4,workerIdentity:()=>g0,workerConfig:()=>K2,upsertSessionEntry:()=>PX,updateSessionEngineBinding:()=>zX,touchSessionEntry:()=>B6,skillDrafts:()=>Z0,skillBindings:()=>b3,sessionEntries:()=>WD,runWorkerMigrations:()=>v3,rotateSessionConversation:()=>LX,recordSessionCompaction:()=>jX,messages:()=>d,initWorkerDb:()=>k3,getWorkerDb:()=>u,getSessionEntry:()=>Y0,executionLogs:()=>r2,evolutionObservations:()=>A2,defaultWorkerMigrationsFolder:()=>Y6,cronJobs:()=>ND,conversations:()=>c,closeWorkerDb:()=>FI,agentTasks:()=>M8});import{existsSync as LU}from"fs";import NX from"path";import{fileURLToPath as tz}from"url";import{Database as ez}from"bun:sqlite";function DI(D){let $=NX.resolve(jU,"../../drizzle",D);if(LU($))return $;let F=NX.resolve(jU,"drizzle",D);if(LU(F))return F;return $}function $I(D){let $=new ez(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),X6($,{schema:V4})}function k3(D){return f3=$I(D),f3}function u(){if(!f3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return f3}function FI(){f3=null}function v3(D=Y6){t7(u(),{migrationsFolder:D})}function Y0(D){return u().select().from(WD).where(v(WD.sessionKey,D)).get()??null}function PX(D){let $=u(),F=D.at??new Date().toISOString(),X=Y0(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 Y0(D.sessionKey)}function B6(D,$={}){if(!Y0(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(),Y0(D)}function LX(D){if(!Y0(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(),Y0(D.sessionKey)}function jX(D,$={}){let F=Y0(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(),Y0(D)}function zX(D,$,F,X){let J=Y0(D);if(!J)return null;let Y={...J.engineBindings};if(F===null)delete Y[$];else Y[$]=F;return u().update(WD).set({engineBindings:Y,updatedAt:X??new Date().toISOString()}).where(v(WD.sessionKey,D)).run(),Y0(D)}var jU,Y6,f3=null;var TD=Z(()=>{_0();GX();BX();qX();qX();jU=NX.dirname(tz(import.meta.url));Y6=DI("worker")});import zU from"path";import IU from"process";function JI(D){let $={};for(let[F,X]of Object.entries(D)){let J=/^MAX_CONCURRENT_(.+)$/.exec(F);if(!J)continue;if(J[1]==="TOTAL")continue;let Y=J[1].toLowerCase().replace(/_/g,"-"),G=Number.parseInt(X??"",10);if(Number.isFinite(G)&&G>0)$[Y]=G}return $}function X1(){if(_4)return _4;let D=XI.parse(IU.env);return _4=Object.freeze({...D,perEngineLimits:Object.freeze({...JI(IU.env)})}),_4}var XI,_4=null,n;var U4=Z(()=>{P2();j0();TD();yD();XI=V.object({PORT:V.coerce.number().default(9217),WORKER_DB_PATH:V.string().default(()=>zU.join(y2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:V.string().default(()=>Y6),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(r1).optional(),AIWORKER_FORCE_TOKEN:V.string().regex(c2).optional(),AIWORKER_ADVERTISED_BASE_URL:V.string().optional(),WORKER_DATA_ROOT:V.string().default(()=>zU.join(y2(),"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 a2(D){let $=GI[D.engine];if(!$)throw Error(`unknown executor engine: ${D.engine}`);let F=$.variants[D.variant];if(!F)throw Error(`unknown executor variant '${D.variant}' for engine '${D.engine}'`);let{cmd:X,...J}=D.overrides??{},Y={...F,...J};return{engine:D.engine,body:Y,...X?{cmd:X}:{},...D.modelId===void 0?{}:{modelId:D.modelId},...D.reasoningId===void 0?{}:{reasoningId:D.reasoningId},...D.permissionPolicy===void 0?{}:{permissionPolicy:D.permissionPolicy}}}function TU(D){if(!D||typeof D!=="object")return{...x3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...x3};switch(F){case"http":return{engine:"http",variant:"default",overrides:h3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:h3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:h3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:h3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:h3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...x3}}}function h3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var GI,x3;var J1=Z(()=>{GI={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}}}},x3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var H6;var TX=Z(()=>{J1();H6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...x3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function G1(D){let $=await D.select().from(K2).where(v(K2.pk,"default")).get();if($)return{config:YI($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(K2).values({pk:"default",configJson:H6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:H6,version:1}}function YI(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:TU($)}}var wU=Z(()=>{TD();_0();J1();TX()});import{randomBytes as BI}from"crypto";function W6(){let D=BI(32),$=`${O7}${HI(D)}`;if(!U8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function HI(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Y1(D,$,F={}){let X=await D.select().from(g0).where(v(g0.pk,"default")).get();if(X){let U=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!U8(U))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await L$(X.workerId),{workerId:X.workerId,token:U,justMinted:!1}}let J=F.forceId??Q4();if(!r1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let Y=F.forceToken??W6();if(!U8(Y))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let G=Y,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(G),_=new Date().toISOString();return await D.insert(g0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:_,createdAt:_}).run(),await L$(J),{workerId:J,token:G,justMinted:!0}}var Q4;var wX=Z(()=>{P2();j0();TD();_0();Q4=FF});import WI from"process";function B1(D,$,F,X,J=WI.stdout){if(!X)return;J.write(`[worker] id=${D}
|
|
112
112
|
`),J.write(`[worker] AIWORKER_BOOTSTRAP_TOKEN=${$}
|
|
113
113
|
`),J.write(`[worker] save this token; it will not be printed again.
|
|
114
|
-
`),F.update(g0).set({bootstrapShownAt:new Date().toISOString()}).where(v(g0.pk,"default")).run()}var wU=Z(()=>{TD();_0()});var SU=Z(()=>{TU();IX();TX();wU()});import{Buffer as bU}from"buffer";import{timingSafeEqual as HI}from"crypto";function f2(D,$){let F=bU.from(D,"utf8"),X=bU.from($,"utf8");if(F.length!==X.length)return!1;return HI(F,X)}var Q4=()=>{};import{Buffer as fU}from"buffer";import{createDecipheriv as WI,createHash as VI}from"crypto";function UI(D,$){let F=VI("sha256").update($,"utf8").digest(),X=fU.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),Y=X.subarray(16),G=WI("aes-256-cbc",F,J);return fU.concat([G.update(Y),G.final()]).toString("utf8")}function kU(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(UI(F.encrypt,$))}return F}function QI(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function AI(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function KI(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 EI(D,$){let F=wX.get(D);if(!F)F={},wX.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>_I)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=KI(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function CI(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function hU(){wX.clear()}var _I=60000,wX,vU;var SX=Z(()=>{Q4();wX=new Map;vU={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=kU(D,F.credentials.encryptKey),J=AI(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,Y=kU(D,J);if(QI(Y))return[];if(Y.header?.event_type!=="im.message.receive_v1")return[];let G=Y.event?.message;if(!G||G.message_type!=="text")return[];let B="";try{let E=JSON.parse(G.content);B=typeof E.text==="string"?E.text:""}catch{return[]}if(!B)return[];let H=Y.event?.sender,W=H?.sender_id?.open_id,_=H?.sender_id?.name,U=G.chat_type==="group"?`group:${G.chat_id}`:`p2p:${W??""}`,Q=CI(G);return[{workerId:$,channel:"lark",accountId:X,chatId:U,...W===void 0?{}:{userId:W},..._===void 0?{}:{userDisplayName:_},text:B,...Q===void 0?{}:{richMetadata:Q},receivedAt:new Date(Number(G.create_time)).toISOString(),raw:Y}]},async send(D,$){if(D.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let{appId:F,appSecret:X}=D.credentials,J=await EI(F,X),[Y,G]=$.chatId.split(":",2);if(!Y||!G)throw Error(`lark send: malformed chatId ${$.chatId}`);if(Y!=="group"&&Y!=="p2p")throw Error(`lark send: unsupported chat kind "${Y}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${Y==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:G,msg_type:"text",content:JSON.stringify({text:$.text})})}),W=await H.json().catch(()=>({}));if(W.code!==0)throw Error(`Lark send failed: ${W.code??H.status} ${W.msg??H.statusText}`)}}});function V6(){return new Date().toISOString()}import{Buffer as xU}from"buffer";import{createHash as RI,createHmac as OI,timingSafeEqual as MI}from"crypto";function ZI(D,$){return OI("sha256",D).update($,"utf8").digest("base64")}function qI(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function PI(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var gU;var yU=Z(()=>{gU={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=ZI(F.credentials.channelSecret,D),Y=xU.from(X,"base64"),G=xU.from(J,"base64");if(Y.length!==G.length||!MI(Y,G))throw Error("invalid LINE signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="line")throw Error("line adapter requires a line binding for accountId derivation");let X=RI("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),Y=[];for(let G of J.events){if(G.type!=="message"||G.message?.type!=="text"||!G.message.text)continue;let B=qI(G.source),H=G.source.type==="user"?G.source.userId:("userId"in G.source)?G.source.userId:void 0,W=PI(G);Y.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:G.message.text,...W===void 0?{}:{richMetadata:W},receivedAt:new Date(G.timestamp).toISOString()||V6(),raw:G})}return Y},async send(D,$){if(D.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let F=D.credentials.channelAccessToken,[X,J]=$.chatId.split(":",2);if(!X||!J)throw Error(`line send: malformed chatId ${$.chatId}`);let Y=await fetch("https://api.line.me/v2/bot/message/push",{method:"POST",headers:{Authorization:`Bearer ${F}`,"Content-Type":"application/json"},body:JSON.stringify({to:J,messages:[{type:"text",text:$.text}]})});if(!Y.ok){let G=await Y.text();throw Error(`LINE push failed: ${Y.status} ${G}`)}}}});import{Buffer as uU}from"buffer";import{createHash as NI,timingSafeEqual as LI}from"crypto";function TI(D,$){let F=uU.from(D,"utf8"),X=uU.from($,"utf8");if(F.length!==X.length)return!1;return LI(F,X)}function wI(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 SI(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let Y=$-1;Y>0;Y--)if(II.test(X[Y])){J=Y;break}if(J>0)F.push(X.slice(0,J)),X=X.slice(J+1);else F.push(X.slice(0,$)),X=X.slice($)}if(X.length>0)F.push(X);return F}function bI(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return NI("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function fI(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 jI=4096,zI="x-telegram-bot-api-secret-token",II,mU;var pU=Z(()=>{II=/\s/;mU={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=$[zI];if(!J||!TI(J,X))throw Error("invalid X-Telegram-Bot-Api-Secret-Token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="telegram")throw Error("telegram adapter requires a telegram binding for accountId derivation");let X=JSON.parse(D),J=X.message;if(!J||typeof J.text!=="string")return[];let Y=`${J.chat.type}:${J.chat.id}`,G=J.from?.id?.toString(),B=wI(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():V6(),W=bI(F.credentials),_=fI(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:Y,...G===void 0?{}:{userId:G},...B===void 0?{}:{userDisplayName:B},text:J.text,..._===void 0?{}:{richMetadata:_},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),Y=Number(J);if(!Number.isFinite(Y)||!Number.isInteger(Y))throw Error(`telegram send: malformed chatId ${$.chatId}`);let G=`https://api.telegram.org/bot${F}/sendMessage`,B=SI($.text,jI);for(let H of B){let W=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:Y,text:H})});if(!W.ok){let _=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${_}`)}}}}});function vI(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 hI(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var kI="default",cU;var dU=Z(()=>{Q4();cU={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=hI($);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:kI,J=JSON.parse(D),Y=vI(J.metadata);return[{workerId:$,channel:"web",accountId:X,chatId:J.chatId,...J.threadId===void 0?{}:{threadId:J.threadId},...J.userId===void 0?{}:{userId:J.userId},...J.userDisplayName===void 0?{}:{userDisplayName:J.userDisplayName},text:J.text,...Y===void 0?{}:{richMetadata:Y},receivedAt:V6(),raw:J}]},async send(){}}});import{Buffer as lU}from"buffer";import{createHmac as xI,timingSafeEqual as gI}from"crypto";function uI(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 mI(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 yI="v21.0",iU;var nU=Z(()=>{iU={channel:"whatsapp",async verify(D,$,F){if(F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let X=$["x-hub-signature-256"];if(!X)throw Error("missing X-Hub-Signature-256 header");let[J,Y]=X.split("=",2);if(J!=="sha256"||!Y)throw Error("invalid X-Hub-Signature-256 format");let G=xI("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=lU.from(Y,"hex"),H=lU.from(G,"hex");if(B.length!==H.length||!gI(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),Y=[];for(let G of J.entry??[])for(let B of G.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let _ of H.messages){let U=uI(_);if(U===void 0)continue;let Q=_.from,E=W.find((K)=>K.wa_id===Q)?.profile?.name,C=mI(_);Y.push({workerId:$,channel:"whatsapp",accountId:X,chatId:Q,userId:Q,...E?{userDisplayName:E}:{},text:U,...C===void 0?{}:{richMetadata:C},receivedAt:new Date(Number(_.timestamp)*1000).toISOString(),raw:_})}}return Y},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${yI}/${F}/messages`,Y=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/json"},body:JSON.stringify({messaging_product:"whatsapp",recipient_type:"individual",to:$.chatId,type:"text",text:{preview_url:!1,body:$.text}})});if(!Y.ok){let G=await Y.text();throw Error(`WhatsApp send failed: ${Y.status} ${G}`)}}}});function H1(D){return pI[D]}class g3{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 pI;var y3=Z(()=>{SX();yU();pU();dU();nU();pI={web:cU,line:gU,telegram:mU,lark:vU,whatsapp:iU}});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 A4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),cI($),$.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 _6(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}),dI(F,$),F.channels=F.channels.map((X)=>{let J=X.credentials;switch(J.channel){case"line":return{...X,credentials:{...J,channelSecret:$.get("channels.line.credentials.channelSecret")??"",channelAccessToken:$.get("channels.line.credentials.channelAccessToken")??""}};case"telegram":{let Y=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:Y??J.webhookSecretToken}}}case"lark":return{...X,credentials:{...J,appSecret:$.get("channels.lark.credentials.appSecret")??"",encryptKey:$.get("channels.lark.credentials.encryptKey")??"",verificationToken:$.get("channels.lark.credentials.verificationToken")??""}};case"whatsapp":return{...X,credentials:{...J,accessToken:$.get("channels.whatsapp.credentials.accessToken")??"",appSecret:$.get("channels.whatsapp.credentials.appSecret")??"",verifyToken:$.get("channels.whatsapp.credentials.verifyToken")??""}};case"web":{let Y=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:Y??J.inboundToken}}}default:return X}}),F}function cI(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 dI(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 rU=f((sU)=>{Object.defineProperty(sU,"__esModule",{value:!0})});var q8=f((aU)=>{Object.defineProperty(aU,"__esModule",{value:!0});aU.CronField=void 0;class bX{#D=!1;#$=!1;#X=!1;#G=[];options={rawValue:""};static get min(){throw Error("min must be overridden")}static get max(){throw Error("max must be overridden")}static get chars(){return Object.freeze([])}static get validChars(){return/^[?,*\dH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}static get constraints(){return{min:this.min,max:this.max,chars:this.chars,validChars:this.validChars}}constructor(D,$={rawValue:""}){if(!Array.isArray(D))throw Error(`${this.constructor.name} Validation error, values is not an array`);if(!(D.length>0))throw Error(`${this.constructor.name} Validation error, values contains no values`);this.options={...$,rawValue:$.rawValue??""},this.#G=D.sort(bX.sorter),this.#X=this.options.wildcard!==void 0?this.options.wildcard:this.#J(),this.#D=this.options.rawValue.includes("L")||D.includes("L"),this.#$=this.options.rawValue.includes("?")||D.includes("?")}get min(){return this.constructor.min}get max(){return this.constructor.max}get chars(){return this.constructor.chars}get hasLastChar(){return this.#D}get hasQuestionMarkChar(){return this.#$}get isWildcard(){return this.#X}get values(){return this.#G}static sorter(D,$){let F=typeof D==="number",X=typeof $==="number";if(F&&X)return D-$;if(!F&&!X)return D.localeCompare($);return F?-1:1}static findNearestValueInList(D,$,F=!1){if(F){for(let X=D.length-1;X>=0;X--)if(D[X]<$)return D[X];return null}for(let X=0;X<D.length;X++)if(D[X]>$)return D[X];return null}findNearestValue(D,$=!1){return this.constructor.findNearestValueInList(this.values,D,$)}serialize(){return{wildcard:this.#X,values:this.#G}}validate(){let D,$=this.chars.length>0?` or chars ${this.chars.join("")}`:"",F=(G)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(G),X=(G)=>{return D=G,typeof G==="number"?G>=this.min&&G<=this.max:this.chars.some(F(G))};if(!this.#G.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let Y=this.#G.find((G,B)=>this.#G.indexOf(G)!==B);if(Y)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${Y}`)}#J(){if(this.options.rawValue.length>0)return["*","?"].includes(this.options.rawValue);return Array.from({length:this.max-this.min+1},(D,$)=>$+this.min).every((D)=>this.#G.includes(D))}}aU.CronField=bX});var $Q=f((eU)=>{Object.defineProperty(eU,"__esModule",{value:!0});eU.CronDayOfMonth=void 0;var lI=q8(),iI=1,nI=31,sI=Object.freeze(["L"]);class tU extends lI.CronField{static get min(){return iI}static get max(){return nI}static get chars(){return sI}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}}eU.CronDayOfMonth=tU});var GQ=f((XQ)=>{Object.defineProperty(XQ,"__esModule",{value:!0});XQ.CronDayOfWeek=void 0;var rI=q8(),aI=0,oI=7,tI=Object.freeze(["L"]);class FQ extends rI.CronField{static get min(){return aI}static get max(){return oI}static get chars(){return tI}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}}XQ.CronDayOfWeek=FQ});var WQ=f((BQ)=>{Object.defineProperty(BQ,"__esModule",{value:!0});BQ.CronHour=void 0;var eI=q8(),DT=0,$T=23,FT=Object.freeze([]);class YQ extends eI.CronField{static get min(){return DT}static get max(){return $T}static get chars(){return FT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}BQ.CronHour=YQ});var QQ=f((_Q)=>{Object.defineProperty(_Q,"__esModule",{value:!0});_Q.CronMinute=void 0;var XT=q8(),JT=0,GT=59,YT=Object.freeze([]);class VQ extends XT.CronField{static get min(){return JT}static get max(){return GT}static get chars(){return YT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}_Q.CronMinute=VQ});var aA=f((rA)=>{Object.defineProperty(rA,"__esModule",{value:!0});class j8 extends Error{}class dQ extends j8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class lQ extends j8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class iQ extends j8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class _1 extends j8{}class eX extends j8{constructor(D){super(`Invalid unit ${D}`)}}class B0 extends j8{}class D8 extends j8{constructor(){super("Zone is an abstract class")}}var y="numeric",R2="short",w0="long",q4={year:y,month:y,day:y},nQ={year:y,month:R2,day:y},BT={year:y,month:R2,day:y,weekday:R2},sQ={year:y,month:w0,day:y},rQ={year:y,month:w0,day:y,weekday:w0},aQ={hour:y,minute:y},oQ={hour:y,minute:y,second:y},tQ={hour:y,minute:y,second:y,timeZoneName:R2},eQ={hour:y,minute:y,second:y,timeZoneName:w0},DA={hour:y,minute:y,hourCycle:"h23"},$A={hour:y,minute:y,second:y,hourCycle:"h23"},FA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:R2},XA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:w0},JA={year:y,month:y,day:y,hour:y,minute:y},GA={year:y,month:y,day:y,hour:y,minute:y,second:y},YA={year:y,month:R2,day:y,hour:y,minute:y},BA={year:y,month:R2,day:y,hour:y,minute:y,second:y},HT={year:y,month:R2,day:y,weekday:R2,hour:y,minute:y},HA={year:y,month:w0,day:y,hour:y,minute:y,timeZoneName:R2},WA={year:y,month:w0,day:y,hour:y,minute:y,second:y,timeZoneName:R2},VA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,timeZoneName:w0},_A={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,second:y,timeZoneName:w0};class Q1{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 fX=null;class i3 extends Q1{static get instance(){if(fX===null)fX=new i3;return fX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return LA(D,$,F)}formatOffset(D,$){return d3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var pX=new Map;function WT(D){let $=pX.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"}),pX.set(D,$);return $}var VT={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function _T(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,Y,G,B,H,W,_]=X;return[G,J,Y,B,H,W,_]}function UT(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:Y,value:G}=F[J],B=VT[Y];if(Y==="era")X[B]=G;else if(!a(B))X[B]=parseInt(G,10)}return X}var kX=new Map;class k2 extends Q1{static create(D){let $=kX.get(D);if($===void 0)kX.set(D,$=new k2(D));return $}static resetCache(){kX.clear(),pX.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 LA(D,$,F,this.name)}formatOffset(D,$){return d3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=WT(this.name),[X,J,Y,G,B,H,W]=F.formatToParts?UT(F,$):_T(F,$);if(G==="BC")X=-Math.abs(X)+1;let U=z4({year:X,month:J,day:Y,hour:B===24?0:B,minute:H,second:W,millisecond:0}),Q=+$,A=Q%1000;return Q-=A>=0?A:1000+A,(U-Q)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var AQ={};function QT(D,$={}){let F=JSON.stringify([D,$]),X=AQ[F];if(!X)X=new Intl.ListFormat(D,$),AQ[F]=X;return X}var cX=new Map;function dX(D,$={}){let F=JSON.stringify([D,$]),X=cX.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),cX.set(F,X);return X}var lX=new Map;function AT(D,$={}){let F=JSON.stringify([D,$]),X=lX.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),lX.set(F,X);return X}var iX=new Map;function KT(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),Y=iX.get(J);if(Y===void 0)Y=new Intl.RelativeTimeFormat(D,$),iX.set(J,Y);return Y}var m3=null;function ET(){if(m3)return m3;else return m3=new Intl.DateTimeFormat().resolvedOptions().locale,m3}var nX=new Map;function UA(D){let $=nX.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),nX.set(D,$);return $}var sX=new Map;function CT(D){let $=sX.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...EA,...$};sX.set(D,$)}return $}function RT(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=dX(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=dX(H).resolvedOptions(),J=H}let{numberingSystem:Y,calendar:G}=X;return[J,Y,G]}}function OT(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function MT(D){let $=[];for(let F=1;F<=12;F++){let X=t.utc(2009,F,1);$.push(D(X))}return $}function ZT(D){let $=[];for(let F=1;F<=7;F++){let X=t.utc(2016,11,13+F);$.push(D(X))}return $}function K4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function qT(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||UA(D.locale).numberingSystem==="latn"}class QA{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...Y}=F;if(!$||Object.keys(Y).length>0){let G={useGrouping:!1,...F};if(F.padTo>0)G.minimumIntegerDigits=F.padTo;this.inf=AT(D,G)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):GJ(D,3);return dD($,this.padTo)}}}class AA{constructor(D,$,F){this.opts=F,this.originalZone=void 0;let X=void 0;if(this.opts.timeZone)this.dt=D;else if(D.zone.type==="fixed"){let Y=-1*(D.offset/60),G=Y>=0?`Etc/GMT+${Y}`:`Etc/GMT${Y}`;if(D.offset!==0&&k2.create(G).valid)X=G,this.dt=D;else X="UTC",this.dt=D.offset===0?D:D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone}else if(D.zone.type==="system")this.dt=D;else if(D.zone.type==="iana")this.dt=D,X=D.zone.name;else X="UTC",this.dt=D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone;let J={...this.opts};J.timeZone=J.timeZone||X,this.dtf=dX($,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 KA{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&PA())this.rtf=KT(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return cT($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var EA={firstDay:1,minimalDays:4,weekend:[6,7]};class CD{static fromOpts(D){return CD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let Y=D||wD.defaultLocale,G=Y||(J?"en-US":ET()),B=$||wD.defaultNumberingSystem,H=F||wD.defaultOutputCalendar,W=aX(X)||wD.defaultWeekSettings;return new CD(G,B,H,W,Y)}static resetCache(){m3=null,cX.clear(),lX.clear(),iX.clear(),nX.clear(),sX.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return CD.create(D,$,F,X)}constructor(D,$,F,X,J){let[Y,G,B]=RT(D);this.locale=Y,this.numberingSystem=$||G||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=OT(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=qT(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 CD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,aX(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 K4(this,D,IA,()=>{let F=this.intl==="ja"||this.intl.startsWith("ja-");$&=!F;let X=$?{month:D,day:"numeric"}:{month:D},J=$?"format":"standalone";if(!this.monthsCache[J][D]){let Y=!F?(G)=>this.extract(G,X,"month"):(G)=>this.dtFormatter(G,X).format();this.monthsCache[J][D]=MT(Y)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return K4(this,D,SA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=ZT((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return K4(this,void 0,()=>bA,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[t.utc(2016,11,13,9),t.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return K4(this,D,fA,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[t.utc(-40,1,1),t.utc(2017,1,1)].map((F)=>this.extract(F,$,"era"));return this.eraCache[D]})}extract(D,$,F){let X=this.dtFormatter(D,$),J=X.formatToParts(),Y=J.find((G)=>G.type.toLowerCase()===F);return Y?Y.value:null}numberFormatter(D={}){return new QA(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new AA(D,this.intl,$)}relFormatter(D={}){return new KA(this.intl,this.isEnglish(),D)}listFormatter(D={}){return QT(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||UA(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!NA())return EA;else return CT(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 vX=null;class A0 extends Q1{static get utcInstance(){if(vX===null)vX=new A0(0);return vX}static instance(D){return D===0?A0.utcInstance:new A0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new A0(I4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${d3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${d3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return d3(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 DJ extends Q1{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 N8(D,$){if(a(D)||D===null)return $;else if(D instanceof Q1)return D;else if(IT(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return i3.instance;else if(F==="utc"||F==="gmt")return A0.utcInstance;else return A0.parseSpecifier(F)||k2.create(D)}else if(L8(D))return A0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new DJ(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"},KQ={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]},PT=$J.hanidec.replace(/[\[|\]]/g,"").split("");function NT(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)$+=PT.indexOf(D[F]);else for(let J in KQ){let[Y,G]=KQ[J];if(X>=Y&&X<=G)$+=X-Y}}return parseInt($,10)}else return $}var rX=new Map;function LT(){rX.clear()}function E2({numberingSystem:D},$=""){let F=D||"latn",X=rX.get(F);if(X===void 0)X=new Map,rX.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${$J[F]}${$}`),X.set($,J);return J}var EQ=()=>Date.now(),CQ="system",RQ=null,OQ=null,MQ=null,ZQ=60,qQ,PQ=null;class wD{static get now(){return EQ}static set now(D){EQ=D}static set defaultZone(D){CQ=D}static get defaultZone(){return N8(CQ,i3.instance)}static get defaultLocale(){return RQ}static set defaultLocale(D){RQ=D}static get defaultNumberingSystem(){return OQ}static set defaultNumberingSystem(D){OQ=D}static get defaultOutputCalendar(){return MQ}static set defaultOutputCalendar(D){MQ=D}static get defaultWeekSettings(){return PQ}static set defaultWeekSettings(D){PQ=aX(D)}static get twoDigitCutoffYear(){return ZQ}static set twoDigitCutoffYear(D){ZQ=D%100}static get throwOnInvalid(){return qQ}static set throwOnInvalid(D){qQ=D}static resetCaches(){CD.resetCache(),k2.resetCache(),t.resetCache(),LT()}}class u0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var CA=[0,31,59,90,120,151,181,212,243,273,304,334],RA=[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 FJ(D,$,F){let X=new Date(Date.UTC(D,$-1,F));if(D<100&&D>=0)X.setUTCFullYear(X.getUTCFullYear()-1900);let J=X.getUTCDay();return J===0?7:J}function OA(D,$,F){return F+(n3(D)?RA:CA)[$-1]}function MA(D,$){let F=n3(D)?RA:CA,X=F.findIndex((Y)=>Y<$),J=$-F[X];return{month:X+1,day:J}}function XJ(D,$){return(D-$+7)%7+1}function P4(D,$=4,F=1){let{year:X,month:J,day:Y}=D,G=OA(X,J,Y),B=XJ(FJ(X,J,Y),F),H=Math.floor((G-B+14-$)/7),W;if(H<1)W=X-1,H=l3(W,$,F);else if(H>l3(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...T4(D)}}function NQ(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:Y}=D,G=XJ(FJ(X,1,$),F),B=E6(X),H=J*7+Y-G-7+$,W;if(H<1)W=X-1,H+=E6(W);else if(H>B)W=X+1,H-=E6(X);else W=X;let{month:_,day:U}=MA(W,H);return{year:W,month:_,day:U,...T4(D)}}function hX(D){let{year:$,month:F,day:X}=D,J=OA($,F,X);return{year:$,ordinal:J,...T4(D)}}function LQ(D){let{year:$,ordinal:F}=D,{month:X,day:J}=MA($,F);return{year:$,month:X,day:J,...T4(D)}}function jQ(D,$){if(!a(D.localWeekday)||!a(D.localWeekNumber)||!a(D.localWeekYear)){if(!a(D.weekday)||!a(D.weekNumber)||!a(D.weekYear))throw new _1("Cannot mix locale-based week fields with ISO-based week fields");if(!a(D.localWeekday))D.weekday=D.localWeekday;if(!a(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!a(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 jT(D,$=4,F=1){let X=j4(D.weekYear),J=p0(D.weekNumber,1,l3(D.weekYear,$,F)),Y=p0(D.weekday,1,7);if(!X)return m0("weekYear",D.weekYear);else if(!J)return m0("week",D.weekNumber);else if(!Y)return m0("weekday",D.weekday);else return!1}function zT(D){let $=j4(D.year),F=p0(D.ordinal,1,E6(D.year));if(!$)return m0("year",D.year);else if(!F)return m0("ordinal",D.ordinal);else return!1}function ZA(D){let $=j4(D.year),F=p0(D.month,1,12),X=p0(D.day,1,N4(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 qA(D){let{hour:$,minute:F,second:X,millisecond:J}=D,Y=p0($,0,23)||$===24&&F===0&&X===0&&J===0,G=p0(F,0,59),B=p0(X,0,59),H=p0(J,0,999);if(!Y)return m0("hour",$);else if(!G)return m0("minute",F);else if(!B)return m0("second",X);else if(!H)return m0("millisecond",J);else return!1}function a(D){return typeof D>"u"}function L8(D){return typeof D==="number"}function j4(D){return typeof D==="number"&&D%1===0}function IT(D){return typeof D==="string"}function TT(D){return Object.prototype.toString.call(D)==="[object Date]"}function PA(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function NA(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function wT(D){return Array.isArray(D)?D:[D]}function zQ(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let Y=[$(J),J];if(!X)return Y;else if(F(X[0],Y[0])===X[0])return X;else return Y},null)[1]}function ST(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function R6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function aX(D){if(D==null)return null;else if(typeof D!=="object")throw new B0("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 B0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function p0(D,$,F){return j4(D)&&D>=$&&D<=F}function bT(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(a(D)||D===null||D==="")return;else return parseInt(D,10)}function W1(D){if(a(D)||D===null||D==="")return;else return parseFloat(D)}function JJ(D){if(a(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function GJ(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 n3(D){return D%4===0&&(D%100!==0||D%400===0)}function E6(D){return n3(D)?366:365}function N4(D,$){let F=bT($-1,12)+1,X=D+($-F)/12;if(F===2)return n3(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function z4(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 IQ(D,$,F){return-XJ(FJ(D,1,$),F)+$-1}function l3(D,$=4,F=1){let X=IQ(D,$,F),J=IQ(D+1,$,F);return(E6(D)-X+J)/7}function oX(D){if(D>99)return D;else return D>wD.twoDigitCutoffYear?1900+D:2000+D}function LA(D,$,F,X=null){let J=new Date(D),Y={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)Y.timeZone=X;let G={timeZoneName:$,...Y},B=new Intl.DateTimeFormat(F,G).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function I4(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 jA(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new B0(`Invalid unit value ${D}`);return $}function L4(D,$){let F={};for(let X in D)if(R6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=jA(J)}return F}function d3(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 T4(D){return ST(D,["hour","minute","second","millisecond"])}var fT=["January","February","March","April","May","June","July","August","September","October","November","December"],zA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],kT=["J","F","M","A","M","J","J","A","S","O","N","D"];function IA(D){switch(D){case"narrow":return[...kT];case"short":return[...zA];case"long":return[...fT];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 TA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],wA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],vT=["M","T","W","T","F","S","S"];function SA(D){switch(D){case"narrow":return[...vT];case"short":return[...wA];case"long":return[...TA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var bA=["AM","PM"],hT=["Before Christ","Anno Domini"],xT=["BC","AD"],gT=["B","A"];function fA(D){switch(D){case"narrow":return[...gT];case"short":return[...xT];case"long":return[...hT];default:return null}}function yT(D){return bA[D.hour<12?0:1]}function uT(D,$){return SA($)[D.weekday-1]}function mT(D,$){return IA($)[D.month-1]}function pT(D,$){return fA($)[D.year<0?0:1]}function cT(D,$,F="always",X=!1){let J={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},Y=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&Y){let U=D==="days";switch($){case 1:return U?"tomorrow":`next ${J[D][0]}`;case-1:return U?"yesterday":`last ${J[D][0]}`;case 0:return U?"today":`this ${J[D][0]}`}}let G=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],_=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return G?`${B} ${_} ago`:`in ${B} ${_}`}function TQ(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var dT={D:q4,DD:nQ,DDD:sQ,DDDD:rQ,t:aQ,tt:oQ,ttt:tQ,tttt:eQ,T:DA,TT:$A,TTT:FA,TTTT:XA,f:JA,ff:YA,fff:HA,ffff:VA,F:GA,FF:BA,FFF:WA,FFFF:_A};class Q0{static create(D,$={}){return new Q0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let Y=0;Y<D.length;Y++){let G=D.charAt(Y);if(G==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=G;else if(G===$)F+=G;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=G,$=G}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return dT[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=(Q,A)=>this.loc.extract(D,Q,A),Y=(Q)=>{if(D.isOffsetFixed&&D.offset===0&&Q.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,Q.format):""},G=()=>F?yT(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(Q,A)=>F?mT(D,Q):J(A?{month:Q}:{month:Q,day:"numeric"},"month"),H=(Q,A)=>F?uT(D,Q):J(A?{weekday:Q}:{weekday:Q,month:"long",day:"numeric"},"weekday"),W=(Q)=>{let A=Q0.macroTokenToFormatOpts(Q);if(A)return this.formatWithSystemDefault(D,A);else return Q},_=(Q)=>F?pT(D,Q):J({era:Q},"era"),U=(Q)=>{switch(Q){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return Y({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return Y({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return Y({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return G();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return _("short");case"GG":return _("long");case"GGGGG":return _("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(Q)}};return TQ(Q0.parseFormat($),U)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(W)=>{switch(W[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(W,_)=>(U)=>{let Q=X(U);if(Q){let A=_.isNegativeDuration&&Q!==_.largestUnit?F:1,E;if(this.opts.signMode==="negativeLargestOnly"&&Q!==_.largestUnit)E="never";else if(this.opts.signMode==="all")E="always";else E="auto";return this.num(W.get(Q)*A,U.length,E)}else return U},Y=Q0.parseFormat($),G=Y.reduce((W,{literal:_,val:U})=>_?W:W.concat(U),[]),B=D.shiftTo(...G.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return TQ(Y,J(B,H))}}var kA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function O6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function M6(...D){return($)=>D.reduce(([F,X,J],Y)=>{let[G,B,H]=Y($,J);return[{...F,...G},B||X,H]},[{},null,1]).slice(0,2)}function Z6(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 vA(...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 hA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,lT=`(?:${hA.source}?(?:\\[(${kA.source})\\])?)?`,YJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,xA=RegExp(`${YJ.source}${lT}`),BJ=RegExp(`(?:[Tt]${xA.source})?`),iT=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,nT=/(\d{4})-?W(\d\d)(?:-?(\d))?/,sT=/(\d{4})-?(\d{3})/,rT=vA("weekYear","weekNumber","weekDay"),aT=vA("year","ordinal"),oT=/(\d{4})-(\d\d)-(\d\d)/,gA=RegExp(`${YJ.source} ?(?:${hA.source}|(${kA.source}))?`),tT=RegExp(`(?: ${gA.source})?`);function C6(D,$,F){let X=D[$];return a(X)?F:P8(X)}function eT(D,$){return[{year:C6(D,$),month:C6(D,$+1,1),day:C6(D,$+2,1)},null,$+3]}function q6(D,$){return[{hours:C6(D,$,0),minutes:C6(D,$+1,0),seconds:C6(D,$+2,0),milliseconds:JJ(D[$+3])},null,$+4]}function s3(D,$){let F=!D[$]&&!D[$+1],X=I4(D[$+1],D[$+2]),J=F?null:A0.instance(X);return[{},J,$+3]}function r3(D,$){let F=D[$]?k2.create(D[$]):null;return[{},F,$+1]}var Dw=RegExp(`^T?${YJ.source}$`),$w=/^-?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 Fw(D){let[$,F,X,J,Y,G,B,H,W]=D,_=$[0]==="-",U=H&&H[0]==="-",Q=(A,E=!1)=>A!==void 0&&(E||A&&_)?-A:A;return[{years:Q(W1(F)),months:Q(W1(X)),weeks:Q(W1(J)),days:Q(W1(Y)),hours:Q(W1(G)),minutes:Q(W1(B)),seconds:Q(W1(H),H==="-0"),milliseconds:Q(JJ(W),U)}]}var Xw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function HJ(D,$,F,X,J,Y,G){let B={year:$.length===2?oX(P8($)):P8($),month:zA.indexOf(F)+1,day:P8(X),hour:P8(J),minute:P8(Y)};if(G)B.second=P8(G);if(D)B.weekday=D.length>3?TA.indexOf(D)+1:wA.indexOf(D)+1;return B}var Jw=/^(?:(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 Gw(D){let[,$,F,X,J,Y,G,B,H,W,_,U]=D,Q=HJ($,J,X,F,Y,G,B),A;if(H)A=Xw[H];else if(W)A=0;else A=I4(_,U);return[Q,new A0(A)]}function Yw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Bw=/^(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$/,Hw=/^(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$/,Ww=/^(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 wQ(D){let[,$,F,X,J,Y,G,B]=D;return[HJ($,J,X,F,Y,G,B),A0.utcInstance]}function Vw(D){let[,$,F,X,J,Y,G,B]=D;return[HJ($,B,F,X,J,Y,G),A0.utcInstance]}var _w=O6(iT,BJ),Uw=O6(nT,BJ),Qw=O6(sT,BJ),Aw=O6(xA),yA=M6(eT,q6,s3,r3),Kw=M6(rT,q6,s3,r3),Ew=M6(aT,q6,s3,r3),Cw=M6(q6,s3,r3);function Rw(D){return Z6(D,[_w,yA],[Uw,Kw],[Qw,Ew],[Aw,Cw])}function Ow(D){return Z6(Yw(D),[Jw,Gw])}function Mw(D){return Z6(D,[Bw,wQ],[Hw,wQ],[Ww,Vw])}function Zw(D){return Z6(D,[$w,Fw])}var qw=M6(q6);function Pw(D){return Z6(D,[Dw,qw])}var Nw=O6(oT,tT),Lw=O6(gA),jw=M6(q6,s3,r3);function zw(D){return Z6(D,[Nw,yA],[Lw,jw])}var SQ="Invalid Duration",uA={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}},Iw={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},...uA},y0=365.2425,U6=30.436875,Tw={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:U6/7,days:U6,hours:U6*24,minutes:U6*24*60,seconds:U6*24*60*60,milliseconds:U6*24*60*60*1000},...uA},U1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],ww=U1.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 mA(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of ww.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function bQ(D,$){let F=mA(D,$)<0?-1:1;U1.reduceRight((X,J)=>{if(!a($[J])){if(X){let Y=$[X]*F,G=D[J][X],B=Math.floor(Y/G);$[J]+=B*F,$[X]-=B*G*F}return J}else return X},null),U1.reduce((X,J)=>{if(!a($[J])){if(X){let Y=$[X]%1;$[X]-=Y,$[J]+=Y*D[X][J]}return J}else return X},null)}function fQ(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=$?Tw:Iw;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||CD.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 B0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new _D({values:L4(D,_D.normalizeUnit),loc:CD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(L8(D))return _D.fromMillis(D);else if(_D.isDuration(D))return D;else if(typeof D==="object")return _D.fromObject(D);else throw new B0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=Zw(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]=Pw(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 B0("need to specify a reason the Duration is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new iQ(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 eX(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?Q0.create(this.loc,F).formatDurationFromString(this,D):SQ}toHuman(D={}){if(!this.isValid)return SQ;let $=D.showZeros!==!1,F=U1.map((X)=>{let J=this.values[X];if(a(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+=GJ(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},t.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 mA(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D),F={};for(let X of U1)if(R6($.values,X)||R6(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]=jA(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,...L4(D,_D.normalizeUnit)};return e2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let Y={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return e2(this,Y)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return bQ(this.matrix,D),e2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=fQ(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((Y)=>_D.normalizeUnit(Y));let $={},F={},X=this.toObject(),J;for(let Y of U1)if(D.indexOf(Y)>=0){J=Y;let G=0;for(let H in F)G+=this.matrix[H][Y]*F[H],F[H]=0;if(L8(X[Y]))G+=X[Y];let B=Math.trunc(G);$[Y]=B,F[Y]=(G*1000-B*1000)/1000}else if(L8(X[Y]))F[Y]=X[Y];for(let Y in F)if(F[Y]!==0)$[J]+=Y===J?F[Y]:F[Y]/this.matrix[J][Y];return bQ(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=fQ(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 U1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var Q6="Invalid Interval";function Sw(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 B0("need to specify a reason the Interval is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new lQ(F);else return new kD({invalid:F})}static fromDateTimes(D,$){let F=u3(D),X=u3($),J=Sw(F,X);if(J==null)return new kD({start:F,end:X});else return J}static after(D,$){let F=_D.fromDurationLike($),X=u3(D);return kD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=_D.fromDurationLike($),X=u3(D);return kD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,Y;try{J=t.fromISO(F,$),Y=J.isValid}catch(H){Y=!1}let G,B;try{G=t.fromISO(X,$),B=G.isValid}catch(H){B=!1}if(Y&&B)return kD.fromDateTimes(J,G);if(Y){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(G,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(u3).filter((Y)=>this.contains(Y)).sort((Y,G)=>Y.toMillis()-G.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let Y=$[J]||this.e,G=+Y>+this.e?this.e:Y;F.push(kD.fromDateTimes(X,G)),X=G,J+=1}return F}splitBy(D){let $=_D.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,Y=[];while(F<this.e){let G=this.start.plus($.mapUnits((B)=>B*X));J=+G>+this.e?this.e:G,Y.push(kD.fromDateTimes(F,J)),F=J,X+=1}return Y}divideEqually(D){if(!this.isValid)return[];return this.splitBy(this.length()/D).slice(0,D)}overlaps(D){return this.e>D.s&&this.s<D.e}abutsStart(D){if(!this.isValid)return!1;return+this.e===+D.s}abutsEnd(D){if(!this.isValid)return!1;return+D.e===+this.s}engulfs(D){if(!this.isValid)return!1;return this.s<=D.s&&this.e>=D.e}equals(D){if(!this.isValid||!D.isValid)return!1;return this.s.equals(D.s)&&this.e.equals(D.e)}intersection(D){if(!this.isValid)return this;let $=this.s>D.s?this.s:D.s,F=this.e<D.e?this.e:D.e;if($>=F)return null;else return 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],Y)=>{if(!J)return[X,Y];else if(J.overlaps(Y)||J.abutsStart(Y))return[X,J.union(Y)];else return[X.concat([J]),Y]},[[],null]);if(F)$.push(F);return $}static xor(D){let $=null,F=0,X=[],J=D.map((B)=>[{time:B.s,type:"s"},{time:B.e,type:"e"}]),Y=Array.prototype.concat(...J),G=Y.sort((B,H)=>B.time-H.time);for(let B of G)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(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 Q6;return`[${this.s.toISO()} \u2013 ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(D=q4,$={}){return this.isValid?Q0.create(this.s.loc.clone($),D).formatInterval(this):Q6}toISO(D){if(!this.isValid)return Q6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return Q6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return Q6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return Q6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return _D.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return kD.fromDateTimes(D(this.s),D(this.e))}}class K6{static hasDST(D=wD.defaultZone){let $=t.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 N8(D,wD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||CD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||CD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||CD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||CD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||CD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||CD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||CD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return CD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return CD.create($,null,"gregory").eras(D)}static features(){return{relative:PA(),localeWeek:NA()}}}function kQ(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 bw(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 _=kQ(H,W);return(_-_%7)/7}],["days",kQ]],J={},Y=D,G,B;for(let[H,W]of X)if(F.indexOf(H)>=0)if(G=H,J[H]=W(D,$),B=Y.plus(J),B>$){if(J[H]--,D=Y.plus(J),D>$)B=D,J[H]--,D=Y.plus(J)}else D=B;return[D,J,B,G]}function fw(D,$,F,X){let[J,Y,G,B]=bw(D,$,F),H=$-J,W=F.filter((U)=>["hours","minutes","seconds","milliseconds"].indexOf(U)>=0);if(W.length===0){if(G<$)G=J.plus({[B]:1});if(G!==J)Y[B]=(Y[B]||0)+H/(G-J)}let _=_D.fromObject(Y,X);if(W.length>0)return _D.fromMillis(H,X).shiftTo(...W).plus(_);else return _}var kw="missing Intl.DateTimeFormat.formatToParts support";function AD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(NT(F))}}var vw=String.fromCharCode(160),pA=`[ ${vw}]`,cA=new RegExp(pA,"g");function hw(D){return D.replace(/\./g,"\\.?").replace(cA,pA)}function vQ(D){return D.replace(/\./g,"").replace(cA," ").toLowerCase()}function C2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(hw).join("|")),deser:([F])=>D.findIndex((X)=>vQ(F)===vQ(X))+$}}function hQ(D,$){return{regex:D,deser:([,F,X])=>I4(F,X),groups:$}}function E4(D){return{regex:D,deser:([$])=>$}}function xw(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function gw(D,$){let F=E2($),X=E2($,"{2}"),J=E2($,"{3}"),Y=E2($,"{4}"),G=E2($,"{6}"),B=E2($,"{1,2}"),H=E2($,"{1,3}"),W=E2($,"{1,6}"),_=E2($,"{1,9}"),U=E2($,"{2,4}"),Q=E2($,"{4,6}"),A=(K)=>({regex:RegExp(xw(K.val)),deser:([R])=>R,literal:!0}),C=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return C2($.eras("short"),0);case"GG":return C2($.eras("long"),0);case"y":return AD(W);case"yy":return AD(U,oX);case"yyyy":return AD(Y);case"yyyyy":return AD(Q);case"yyyyyy":return AD(G);case"M":return AD(B);case"MM":return AD(X);case"MMM":return C2($.months("short",!0),1);case"MMMM":return C2($.months("long",!0),1);case"L":return AD(B);case"LL":return AD(X);case"LLL":return C2($.months("short",!1),1);case"LLLL":return C2($.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 E4(_);case"uu":return E4(B);case"uuu":return AD(F);case"a":return C2($.meridiems(),0);case"kkkk":return AD(Y);case"kk":return AD(U,oX);case"W":return AD(B);case"WW":return AD(X);case"E":case"c":return AD(F);case"EEE":return C2($.weekdays("short",!1),1);case"EEEE":return C2($.weekdays("long",!1),1);case"ccc":return C2($.weekdays("short",!0),1);case"cccc":return C2($.weekdays("long",!0),1);case"Z":case"ZZ":return hQ(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return hQ(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return E4(/[a-z_+-/]{1,256}?/i);case" ":return E4(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:kw};return C.token=D,C}var yw={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 uw(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let Y=$[X],G=X;if(X==="hour")if($.hour12!=null)G=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")G="hour12";else G="hour24";else G=F.hour12?"hour12":"hour24";let B=yw[G];if(typeof B==="object")B=B[Y];if(B)return{literal:!1,val:B};return}function mw(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function pw(D,$,F){let X=D.match($);if(X){let J={},Y=1;for(let G in F)if(R6(F,G)){let B=F[G],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(Y,Y+H));Y+=H}return[X,J]}else return[X,{}]}function cw(D){let $=(Y)=>{switch(Y){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},F=null,X;if(!a(D.z))F=k2.create(D.z);if(!a(D.Z)){if(!F)F=new A0(D.Z);X=D.Z}if(!a(D.q))D.M=(D.q-1)*3+1;if(!a(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(!a(D.u))D.S=JJ(D.u);return[Object.keys(D).reduce((Y,G)=>{let B=$(G);if(B)Y[B]=D[G];return Y},{}),F,X]}var xX=null;function dw(){if(!xX)xX=t.fromMillis(1555555555555);return xX}function lw(D,$){if(D.literal)return D;let F=Q0.macroTokenToFormatOpts(D.val),X=iA(F,$);if(X==null||X.includes(void 0))return D;return X}function dA(D,$){return Array.prototype.concat(...D.map((F)=>lw(F,$)))}class WJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=dA(Q0.parseFormat($),D),this.units=this.tokens.map((F)=>gw(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=mw(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]=pw(D,this.regex,this.handlers),[X,J,Y]=F?cw(F):[null,null,void 0];if(R6(F,"a")&&R6(F,"H"))throw new _1("Can't include meridiem when specifying 24-hour format");return{input:D,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:F,result:X,zone:J,specificOffset:Y}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function lA(D,$,F){return new WJ(D,F).explainFromTokens($)}function iw(D,$,F){let{result:X,zone:J,specificOffset:Y,invalidReason:G}=lA(D,$,F);return[X,J,Y,G]}function iA(D,$){if(!D)return null;let X=Q0.create($,D).dtFormatter(dw()),J=X.formatToParts(),Y=X.resolvedOptions();return J.map((G)=>uw(G,D,Y))}var gX="Invalid DateTime",xQ=8640000000000000;function p3(D){return new u0("unsupported zone",`the zone "${D.name}" is not supported`)}function yX(D){if(D.weekData===null)D.weekData=P4(D.c);return D.weekData}function uX(D){if(D.localWeekData===null)D.localWeekData=P4(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 t({...F,...$,old:F})}function nA(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let Y=F.offset(X);if(J===Y)return[X,J];return[D-Math.min(J,Y)*60*1000,Math.max(J,Y)]}function C4(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 O4(D,$,F){return nA(z4(D),$,F)}function gQ(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,Y={...D.c,year:X,month:J,day:Math.min(D.c.day,N4(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},G=_D.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),B=z4(Y),[H,W]=nA(B,F,D.zone);if(G!==0)H+=G,W=D.zone.offset(H);return{ts:H,o:W}}function A6(D,$,F,X,J,Y){let{setZone:G,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=t.fromObject(D,{...F,zone:H,specificOffset:Y});return G?W:W.setZone(B)}else return t.invalid(new u0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function R4(D,$,F=!0){return D.isValid?Q0.create(CD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function mX(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 yQ(D,$,F,X,J,Y,G){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(G){case"day":case"month":case"year":break;default:if(H+=dD(D.c.hour),G==="hour")break;if($){if(H+=":",H+=dD(D.c.minute),G==="minute")break;if(B)H+=":",H+=dD(D.c.second)}else{if(H+=dD(D.c.minute),G==="minute")break;if(B)H+=dD(D.c.second)}if(G==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=dD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!Y)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(Y)H+="["+D.zone.ianaName+"]";return H}var sA={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},nw={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},sw={ordinal:1,hour:0,minute:0,second:0,millisecond:0},M4=["year","month","day","hour","minute","second","millisecond"],rw=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],aw=["year","ordinal","hour","minute","second","millisecond"];function Z4(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 eX(D);return $}function uQ(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return Z4(D)}}function ow(D){if(c3===void 0)c3=wD.now();if(D.type!=="iana")return D.offset(c3);let $=D.name,F=tX.get($);if(F===void 0)F=D.offset(c3),tX.set($,F);return F}function mQ(D,$){let F=N8($.zone,wD.defaultZone);if(!F.isValid)return t.invalid(p3(F));let X=CD.fromObject($),J,Y;if(!a(D.year)){for(let H of M4)if(a(D[H]))D[H]=sA[H];let G=ZA(D)||qA(D);if(G)return t.invalid(G);let B=ow(F);[J,Y]=O4(D,B,F)}else J=wD.now();return new t({ts:J,zone:F,loc:X,o:Y})}function pQ(D,$,F){let X=a(F.round)?!0:F.round,J=a(F.rounding)?"trunc":F.rounding,Y=(B,H)=>{return B=GJ(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},G=(B)=>{if(F.calendary)if(!$.hasSame(D,B))return $.startOf(B).diff(D.startOf(B),B).get(B);else return 0;else return $.diff(D,B).get(B)};if(F.unit)return Y(G(F.unit),F.unit);for(let B of F.units){let H=G(B);if(Math.abs(H)>=1)return Y(H,B)}return Y(D>$?-0:0,F.units[F.units.length-1])}function cQ(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 c3,tX=new Map;class t{constructor(D){let $=D.zone||wD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new u0("invalid input"):null)||(!$.isValid?p3($):null);this.ts=a(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 G=L8(D.o)&&!D.old?D.o:$.offset(this.ts);X=C4(this.ts,G),F=Number.isNaN(X.year)?new u0("invalid input"):null,X=F?null:X,J=F?null:G}this._zone=$,this.loc=D.loc||CD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[D,$]=cQ(arguments),[F,X,J,Y,G,B,H]=$;return mQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static utc(){let[D,$]=cQ(arguments),[F,X,J,Y,G,B,H]=$;return D.zone=A0.utcInstance,mQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=TT(D)?D.valueOf():NaN;if(Number.isNaN(F))return t.invalid("invalid input");let X=N8($.zone,wD.defaultZone);if(!X.isValid)return t.invalid(p3(X));return new t({ts:F,zone:X,loc:CD.fromObject($)})}static fromMillis(D,$={}){if(!L8(D))throw new B0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-xQ||D>xQ)return t.invalid("Timestamp out of range");else return new t({ts:D,zone:N8($.zone,wD.defaultZone),loc:CD.fromObject($)})}static fromSeconds(D,$={}){if(!L8(D))throw new B0("fromSeconds requires a numerical input");else return new t({ts:D*1000,zone:N8($.zone,wD.defaultZone),loc:CD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=N8($.zone,wD.defaultZone);if(!F.isValid)return t.invalid(p3(F));let X=CD.fromObject($),J=L4(D,uQ),{minDaysInFirstWeek:Y,startOfWeek:G}=jQ(J,X),B=wD.now(),H=!a($.specificOffset)?$.specificOffset:F.offset(B),W=!a(J.ordinal),_=!a(J.year),U=!a(J.month)||!a(J.day),Q=_||U,A=J.weekYear||J.weekNumber;if((Q||W)&&A)throw new _1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(U&&W)throw new _1("Can't mix ordinal dates with month/day");let E=A||J.weekday&&!Q,C,K,R=C4(B,H);if(E)C=rw,K=nw,R=P4(R,Y,G);else if(W)C=aw,K=sw,R=hX(R);else C=M4,K=sA;let q=!1;for(let s of C){let QD=J[s];if(!a(QD))q=!0;else if(q)J[s]=K[s];else J[s]=R[s]}let P=E?jT(J,Y,G):W?zT(J):ZA(J),b=P||qA(J);if(b)return t.invalid(b);let T=E?NQ(J,Y,G):W?LQ(J):J,[L,w]=O4(T,H,F),z=new t({ts:L,zone:F,o:w,loc:X});if(J.weekday&&Q&&D.weekday!==z.weekday)return t.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${z.toISO()}`);if(!z.isValid)return t.invalid(z.invalid);return z}static fromISO(D,$={}){let[F,X]=Rw(D);return A6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=Ow(D);return A6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=Mw(D);return A6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(a(D)||a($))throw new B0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,Y=CD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[G,B,H,W]=iw(Y,D,$);if(W)return t.invalid(W);else return A6(G,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return t.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=zw(D);return A6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new B0("need to specify a reason the DateTime is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new dQ(F);else return new t({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=iA(D,CD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return dA(Q0.parseFormat(D),CD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){c3=void 0,tX.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?yX(this).weekYear:NaN}get weekNumber(){return this.isValid?yX(this).weekNumber:NaN}get weekday(){return this.isValid?yX(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?uX(this).weekday:NaN}get localWeekNumber(){return this.isValid?uX(this).weekNumber:NaN}get localWeekYear(){return this.isValid?uX(this).weekYear:NaN}get ordinal(){return this.isValid?hX(this.c).ordinal:NaN}get monthShort(){return this.isValid?K6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?K6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?K6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?K6.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=z4(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),Y=this.zone.offset(F-X*$),G=this.zone.offset(F-J*$);if(Y===G)return[this];let B=F-Y*$,H=F-G*$,W=C4(B,Y),_=C4(H,G);if(W.hour===_.hour&&W.minute===_.minute&&W.second===_.second&&W.millisecond===_.millisecond)return[V1(this,{ts:B}),V1(this,{ts:H})];return[this]}get isInLeapYear(){return n3(this.year)}get daysInMonth(){return N4(this.year,this.month)}get daysInYear(){return this.isValid?E6(this.year):NaN}get weeksInWeekYear(){return this.isValid?l3(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?l3(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=Q0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(A0.instance(D),$)}toLocal(){return this.setZone(wD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=N8(D,wD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return t.invalid(p3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),Y=this.toObject();[X]=O4(Y,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 $=L4(D,uQ),{minDaysInFirstWeek:F,startOfWeek:X}=jQ($,this.loc),J=!a($.weekYear)||!a($.weekNumber)||!a($.weekday),Y=!a($.ordinal),G=!a($.year),B=!a($.month)||!a($.day),H=G||B,W=$.weekYear||$.weekNumber;if((H||Y)&&W)throw new _1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&Y)throw new _1("Can't mix ordinal dates with month/day");let _;if(J)_=NQ({...P4(this.c,F,X),...$},F,X);else if(!a($.ordinal))_=LQ({...hX(this.c),...$});else if(_={...this.toObject(),...$},a($.day))_.day=Math.min(N4(_.year,_.month),_.day);let[U,Q]=O4(_,this.o,this.zone);return V1(this,{ts:U,o:Q})}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return V1(this,gQ(this,$))}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D).negate();return V1(this,gQ(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=_D.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday:Y}=this;if(Y<J)F.weekNumber=this.weekNumber-1;F.weekday=J}else F.weekday=1;if(X==="quarters"){let J=Math.ceil(this.month/3);F.month=(J-1)*3+1}return this.set(F)}endOf(D,$){return this.isValid?this.plus({[D]:1}).startOf(D,$).minus(1):this}toFormat(D,$={}){return this.isValid?Q0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):gX}toLocaleString(D=q4,$={}){return this.isValid?Q0.create(this.loc.clone($),D).formatDateTime(this):gX}toLocaleParts(D={}){return this.isValid?Q0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:Y="milliseconds"}={}){if(!this.isValid)return null;Y=Z4(Y);let G=D==="extended",B=mX(this,G,Y);if(M4.indexOf(Y)>=3)B+="T";return B+=yQ(this,G,$,F,X,J,Y),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return mX(this,D==="extended",Z4($))}toISOWeekDate(){return R4(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:Y="extended",precision:G="milliseconds"}={}){if(!this.isValid)return null;return G=Z4(G),(X&&M4.indexOf(G)>=3?"T":"")+yQ(this,Y==="extended",$,D,F,J,G)}toRFC2822(){return R4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return R4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return mX(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 R4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():gX}[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=wT($).map(_D.normalizeUnit),Y=D.valueOf()>this.valueOf(),G=Y?this:D,B=Y?D:this,H=fw(G,B,J,X);return Y?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(t.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||t.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 pQ($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return pQ(D.base||t.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(t.isDateTime))throw new B0("min requires all arguments be DateTimes");return zQ(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(t.isDateTime))throw new B0("max requires all arguments be DateTimes");return zQ(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,Y=CD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return lA(Y,D,$)}static fromStringExplain(D,$,F={}){return t.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=CD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new WJ(J,D)}static fromFormatParser(D,$,F={}){if(a(D)||a($))throw new B0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,Y=CD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!Y.equals($.locale))throw new B0(`fromFormatParser called with a locale of ${Y}, but the format parser was created for ${$.locale}`);let{result:G,zone:B,specificOffset:H,invalidReason:W}=$.explainFromTokens(D);if(W)return t.invalid(W);else return A6(G,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return q4}static get DATE_MED(){return nQ}static get DATE_MED_WITH_WEEKDAY(){return BT}static get DATE_FULL(){return sQ}static get DATE_HUGE(){return rQ}static get TIME_SIMPLE(){return aQ}static get TIME_WITH_SECONDS(){return oQ}static get TIME_WITH_SHORT_OFFSET(){return tQ}static get TIME_WITH_LONG_OFFSET(){return eQ}static get TIME_24_SIMPLE(){return DA}static get TIME_24_WITH_SECONDS(){return $A}static get TIME_24_WITH_SHORT_OFFSET(){return FA}static get TIME_24_WITH_LONG_OFFSET(){return XA}static get DATETIME_SHORT(){return JA}static get DATETIME_SHORT_WITH_SECONDS(){return GA}static get DATETIME_MED(){return YA}static get DATETIME_MED_WITH_SECONDS(){return BA}static get DATETIME_MED_WITH_WEEKDAY(){return HT}static get DATETIME_FULL(){return HA}static get DATETIME_FULL_WITH_SECONDS(){return WA}static get DATETIME_HUGE(){return VA}static get DATETIME_HUGE_WITH_SECONDS(){return _A}}function u3(D){if(t.isDateTime(D))return D;else if(D&&D.valueOf&&L8(D.valueOf()))return t.fromJSDate(D);else if(D&&typeof D==="object")return t.fromObject(D);else throw new B0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var tw="3.7.2";rA.DateTime=t;rA.Duration=_D;rA.FixedOffsetZone=A0;rA.IANAZone=k2;rA.Info=K6;rA.Interval=kD;rA.InvalidZone=DJ;rA.Settings=wD;rA.SystemZone=i3;rA.VERSION=tw;rA.Zone=Q1});var S4=f((oA)=>{Object.defineProperty(oA,"__esModule",{value:!0});oA.CronDate=oA.DAYS_IN_MONTH=oA.DateMathOp=oA.TimeUnit=void 0;var A1=aA(),K0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(K0||(oA.TimeUnit=K0={}));var w4;(function(D){D.Add="Add",D.Subtract="Subtract"})(w4||(oA.DateMathOp=w4={}));oA.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class P6{#D;#$=null;#X=null;#G={add:{[K0.Year]:this.addYear.bind(this),[K0.Month]:this.addMonth.bind(this),[K0.Day]:this.addDay.bind(this),[K0.Hour]:this.addHour.bind(this),[K0.Minute]:this.addMinute.bind(this),[K0.Second]:this.addSecond.bind(this)},subtract:{[K0.Year]:this.subtractYear.bind(this),[K0.Month]:this.subtractMonth.bind(this),[K0.Day]:this.subtractDay.bind(this),[K0.Hour]:this.subtractHour.bind(this),[K0.Minute]:this.subtractMinute.bind(this),[K0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A1.DateTime.local();else if(D instanceof P6)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.#G.add[D]()}subtractUnit(D){this.#G.subtract[D]()}invokeDateOperation(D,$){if(D===w4.Add){this.addUnit($);return}if(D===w4.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=P6.#J(this.#D.year);return D===oA.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===oA.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=oA.DAYS_IN_MONTH[$-1]-(P6.#J(this.#D.year)?0:1);else F=oA.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===K0.Month||$===K0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),Y=J-X;if(Y===2){if(F!==24)this.dstStart=J}else if(Y===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}oA.CronDate=P6;oA.default=P6});var FK=f((DK)=>{Object.defineProperty(DK,"__esModule",{value:!0});DK.CronMonth=void 0;var QS=S4(),AS=q8(),KS=1,ES=12,CS=Object.freeze([]);class eA extends AS.CronField{static get min(){return KS}static get max(){return ES}static get chars(){return CS}static get daysInMonth(){return QS.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}DK.CronMonth=eA});var YK=f((JK)=>{Object.defineProperty(JK,"__esModule",{value:!0});JK.CronSecond=void 0;var RS=q8(),OS=0,MS=59,ZS=Object.freeze([]);class XK extends RS.CronField{static get min(){return OS}static get max(){return MS}static get chars(){return ZS}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}JK.CronSecond=XK});var b4=f((q0)=>{var qS=q0&&q0.__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]}),z8=q0&&q0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))qS($,D,F)};Object.defineProperty(q0,"__esModule",{value:!0});z8(rU(),q0);z8($Q(),q0);z8(GQ(),q0);z8(q8(),q0);z8(WQ(),q0);z8(QQ(),q0);z8(FK(),q0);z8(YK(),q0)});var VJ=f((BK)=>{Object.defineProperty(BK,"__esModule",{value:!0});BK.CronFieldCollection=void 0;var c0=b4();class N6{#D;#$;#X;#G;#J;#F;static from(D,$){return new N6({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:Y}){if(!D)throw Error("Validation error, Field second is missing");if(!$)throw Error("Validation error, Field minute is missing");if(!F)throw Error("Validation error, Field hour is missing");if(!X)throw Error("Validation error, Field dayOfMonth is missing");if(!J)throw Error("Validation error, Field month is missing");if(!Y)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=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=Y,this.#G=X}get second(){return this.#D}get minute(){return this.#$}get hour(){return this.#X}get dayOfMonth(){return this.#G}get month(){return this.#J}get dayOfWeek(){return this.#F}static compactField(D){if(D.length===0)return[];let $=[],F=void 0;if(D.forEach((X,J,Y)=>{if(F===void 0){F={start:X,count:1};return}let G=Y[J-1]||F.start,B=Y[J+1];if(X==="L"||X==="W"){$.push(F),$.push({start:X,count:1}),F=void 0;return}if(F.step===void 0&&B!==void 0){let H=X-G,W=B-X;if(H<=W){F={...F,count:2,end:X,step:H};return}F.step=1}if(X-(F.end??0)===F.step)F.count++,F.end=X;else{if(F.count===1)$.push({start:F.start,count:1});else if(F.count===2)$.push({start:F.start,count:1}),$.push({start:F.end??G,count:1});else $.push(F);F={start:X,count:1}}}),F)$.push(F);return $}static#W(D,$,F){let X=$.step;if(!X)return null;if(X===1&&$.start===D.min&&$.end&&$.end>=F)return D.hasQuestionMarkChar?"?":"*";if(X!==1&&$.start===D.min&&$.end&&$.end>=F-X+1)return`*/${X}`;return null}static#H(D,$){let F=D.step;if(F===1)return`${D.start}-${D.end}`;let X=D.start===0?D.count-1:D.count;if(!F)throw Error("Unexpected range step");if(!D.end)throw Error("Unexpected range end");if(F*X>D.end){let J=(G,B)=>{if(typeof D.start!=="number")throw Error("Unexpected range start");return B%F===0?D.start+B:null};if(typeof D.start!=="number")throw Error("Unexpected range start");let Y={length:D.end-D.start+1};return Array.from(Y,J).filter((G)=>G!==null).join(",")}return D.end===$-F+1?`${D.start}/${F}`:`${D.start}-${D.end}/${F}`}stringifyField(D){let{max:$,values:F}=D;if(D instanceof 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=N6.compactField(F);if(X.length===1){let J=N6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let Y=J.count===1?J.start.toString():N6.#H(J,$);if(D instanceof c0.CronDayOfWeek&&D.nthDay>0)return`${Y}#${D.nthDay}`;return Y}).join(",")}stringify(D=!1){let $=[];if(D)$.push(this.stringifyField(this.#D));return $.push(this.stringifyField(this.#$),this.stringifyField(this.#X),this.stringifyField(this.#G),this.stringifyField(this.#J),this.stringifyField(this.#F)),$.join(" ")}serialize(){return{second:this.#D.serialize(),minute:this.#$.serialize(),hour:this.#X.serialize(),dayOfMonth:this.#G.serialize(),month:this.#J.serialize(),dayOfWeek:this.#F.serialize()}}}BK.CronFieldCollection=N6});var UJ=f((VK)=>{Object.defineProperty(VK,"__esModule",{value:!0});VK.CronExpression=VK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=VK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var gD=S4();VK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";VK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var WK=1e4;class d0{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.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.#G&&X.getTime()<this.#G.getTime())F=this.#G;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)}#Y(D,$){return D[$?D.length-1:0]}#_(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}#U(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),Y=this.#F.second.findNearestValue(J,F);if(Y!==null){D.setSeconds(Y);return}D.applyDateOperation($,gD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#V(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,Y=D.getMinutes(),G=this.#F.minute.findNearestValue(Y,F);if(G!==null){D.setMinutes(G),D.setSeconds(this.#Y(J,F));return}D.applyDateOperation($,gD.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#Y(X,F)),D.setSeconds(this.#Y(J,F))}static#K(D,$){let F=$.isLastWeekdayOfMonth();return D.some((X)=>{let J=parseInt(X.toString().charAt(0),10)%7;if(Number.isNaN(J))throw Error(`Invalid last weekday of the month expression: ${X}`);return $.getDay()===J&&F})}next(){return this.#Q()}prev(){return this.#Q(!0)}hasNext(){let D=this.#X;try{return this.#Q(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#Q(!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,Y=new gD.CronDate(D,this.#$);if(!$.values.includes(Y.getSeconds())||!F.values.includes(Y.getMinutes())||!X.values.includes(Y.getHours())||!J.values.includes(Y.getMonth()+1))return!1;if(!this.#A(Y))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(Y.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#A(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,Y=d0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),G=d0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&d0.#K(this.#F.dayOfWeek.values,D);if(F&&J&&(Y||G))return!0;if(Y&&!J)return!0;if($&&!X&&G)return!0;return!1}#E(D,$,F){let X=this.#F.hour.values,J=X,Y=D.getHours(),G=d0.#B(Y,X),B=D.dstStart===Y,H=D.dstEnd===Y;if(B){if(d0.#B(Y-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(G)return!0;D.dstStart=null;let W=this.#F.hour.findNearestValue(Y,F);if(W===null)return D.applyDateOperation($,gD.TimeUnit.Day,J.length),!1;if(this.#_(D)){let _=F?Y-W:W-Y;for(let U=0;U<_;U++)D.applyDateOperation($,gD.TimeUnit.Hour,J.length)}else D.setHours(W);return D.setMinutes(this.#Y(this.#F.minute.values,F)),D.setSeconds(this.#Y(this.#F.second.values,F)),!1}#C(D){if(!this.#G&&!this.#J)return;let $=D.getTime();if(this.#G&&$<this.#G.getTime())throw Error(VK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(VK.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#Q(D=!1){let $=D?gD.DateMathOp.Subtract:gD.DateMathOp.Add,F=new gD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<WK){if(this.#C(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.#E(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.#U(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>WK)throw Error(VK.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#Q(),done:!this.hasNext()}}}}}VK.CronExpression=d0;VK.default=d0});var AK=f((QK)=>{Object.defineProperty(QK,"__esModule",{value:!0});QK.seededRandom=jS;function NS(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function LS(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function jS(D){let $=D?NS(D)():Math.floor(Math.random()*10000000000);return LS($)}});var f4=f((KK)=>{Object.defineProperty(KK,"__esModule",{value:!0});KK.CronExpressionParser=KK.DayOfWeek=KK.Months=KK.CronUnit=KK.PredefinedExpressions=void 0;var IS=VJ(),TS=UJ(),wS=AK(),l0=b4(),QJ;(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"})(QJ||(KK.PredefinedExpressions=QJ={}));var i0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(i0||(KK.CronUnit=i0={}));var AJ;(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"})(AJ||(KK.Months=AJ={}));var KJ;(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"})(KJ||(KK.DayOfWeek=KJ={}));class P0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,wS.seededRandom)(X);D=QJ[D]||D;let Y=P0.#D(D,F);if(!(Y.dayOfMonth==="*"||Y.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let G=P0.#$(i0.Second,Y.second,l0.CronSecond.constraints,J),B=P0.#$(i0.Minute,Y.minute,l0.CronMinute.constraints,J),H=P0.#$(i0.Hour,Y.hour,l0.CronHour.constraints,J),W=P0.#$(i0.Month,Y.month,l0.CronMonth.constraints,J),_=P0.#$(i0.DayOfMonth,Y.dayOfMonth,l0.CronDayOfMonth.constraints,J),{dayOfWeek:U,nthDayOfWeek:Q}=P0.#_(Y.dayOfWeek),A=P0.#$(i0.DayOfWeek,U,l0.CronDayOfWeek.constraints,J),E=new IS.CronFieldCollection({second:new l0.CronSecond(G,{rawValue:Y.second}),minute:new l0.CronMinute(B,{rawValue:Y.minute}),hour:new l0.CronHour(H,{rawValue:Y.hour}),dayOfMonth:new l0.CronDayOfMonth(_,{rawValue:Y.dayOfMonth}),month:new l0.CronMonth(W,{rawValue:Y.month}),dayOfWeek:new l0.CronDayOfWeek(A,{rawValue:Y.dayOfWeek,nthDayOfWeek:Q})});return new TS.CronExpression(E,{...$,expression:D})}static#D(D,$){if($&&!D.length)throw Error("Invalid cron expression");D=D||"0 * * * * *";let F=D.trim().split(/\s+/);if($&&F.length<6)throw Error("Invalid cron expression, expected 6 fields");if(F.length>6)throw Error("Invalid cron expression, too many fields");let X=["*","*","*","*","*","0"];if(F.length<X.length)F.unshift(...X.slice(F.length));let[J,Y,G,B,H,W]=F;return{second:J,minute:Y,hour:G,dayOfMonth:B,month:H,dayOfWeek:W}}static#$(D,$,F,X){if(D===i0.Month||D===i0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let Y=AJ[J]||KJ[J];if(Y===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return Y.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#G($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#G(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,Y,G,B)=>{if(Y&&G&&B){let H=parseInt(Y,10),W=parseInt(G,10),_=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(_<=0)throw Error(`Invalid step: ${_}, must be positive`);let U=Math.max(H,$.min),Q=Math.floor(X*_),A=[];for(let E=Math.floor(U/_)*_+Q;E<=W;E+=_)if(E>=U)A.push(E);return A.join(",")}else if(Y&&G){let H=parseInt(Y,10),W=parseInt(G,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);return String(Math.floor(X*(W-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let W=Math.floor(X*H),_=[];for(let U=Math.floor($.min/H)*H+W;U<=$.max;U+=H)if(U>=$.min)_.push(U);return _.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(G,B){if(Array.isArray(G))X.push(...G);else if(P0.#U(B,G))X.push(G);else{let H=parseInt(G.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${G} expected range ${B.min}-${B.max}`);X.push(D===i0.DayOfWeek?H%7:G)}}return $.split(",").forEach((G)=>{if(!(G.length>0))throw Error("Invalid list value format");J(P0.#F(D,G,F),F)}),X}static#F(D,$,F){let X=$.split("/");if(X.length>2)throw Error(`Invalid repeat: ${$}`);if(X.length===2){if(!isNaN(parseInt(X[0],10)))X[0]=`${X[0]}-${F.max}`;return P0.#Y(D,X[0],parseInt(X[1],10),F)}return P0.#Y(D,$,1,F)}static#W(D,$,F){if(!(!isNaN(D)&&!isNaN($)&&D>=F.min&&$<=F.max))throw Error(`Constraint error, got range ${D}-${$} expected range ${F.min}-${F.max}`);if(D>$)throw Error(`Invalid range: ${D}-${$}, min(${D}) > max(${$})`)}static#H(D){if(!(!isNaN(D)&&D>0))throw Error(`Constraint error, cannot repeat at every ${D} time.`)}static#B(D,$,F,X){let J=[];if(D===i0.DayOfWeek&&F%7===0)J.push(0);for(let Y=$;Y<=F;Y+=X)if(J.indexOf(Y)===-1)J.push(Y);return J}static#Y(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[Y,G]=J.map((B)=>parseInt(B,10));return this.#W(Y,G,X),this.#H(F),this.#B(D,Y,G,F)}static#_(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#U(D,$){return D.chars.some((F)=>$.toString().includes(F))}}KK.CronExpressionParser=P0});var CK=f((v2)=>{var vS=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]}),hS=v2&&v2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),xS=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")vS(F,$,X[J])}return hS(F,$),F}}();Object.defineProperty(v2,"__esModule",{value:!0});v2.CronFileParser=void 0;var gS=f4();class o3{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>xS(J8("fs/promises"))),F=await $(D,"utf8");return o3.#D(F)}static parseFileSync(D){let{readFileSync:$}=J8("fs"),F=$(D,"utf8");return o3.#D(F)}static#D(D){let $=D.split(`
|
|
115
|
-
`),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let Y=J.match(/^(.*)=(.*)$/);if(Y){let[,G,B]=Y;F.variables[G]=B.replace(/["']/g,"");continue}try{let G=o3.#$(J);F.expressions.push(G.interval)}catch(G){F.errors[J]=G}}return F}static#$(D){let $=D.split(" ");return{interval:gS.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}v2.CronFileParser=o3});var RK=f(($0)=>{var yS=$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]}),uS=$0&&$0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))yS($,D,F)};Object.defineProperty($0,"__esModule",{value:!0});$0.CronFileParser=$0.CronExpressionParser=$0.CronExpression=$0.CronFieldCollection=$0.CronDate=void 0;var mS=f4(),pS=S4();Object.defineProperty($0,"CronDate",{enumerable:!0,get:function(){return pS.CronDate}});var cS=VJ();Object.defineProperty($0,"CronFieldCollection",{enumerable:!0,get:function(){return cS.CronFieldCollection}});var dS=UJ();Object.defineProperty($0,"CronExpression",{enumerable:!0,get:function(){return dS.CronExpression}});var lS=f4();Object.defineProperty($0,"CronExpressionParser",{enumerable:!0,get:function(){return lS.CronExpressionParser}});var iS=CK();Object.defineProperty($0,"CronFileParser",{enumerable:!0,get:function(){return iS.CronFileParser}});uS(b4(),$0);$0.default=mS.CronExpressionParser});class t3{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=nS){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>O.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 $=k4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,Y=D.accountId??sS;if(Y.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let G={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:Y,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};u().insert(PD).values(G).run();let B=u().select().from(PD).where(v(PD.id,F)).get();return v4(B)}async listJobs(){return u().select().from(PD).all().map(v4)}async getJob(D){let $=u().select().from(PD).where(v(PD.id,D)).get();return $?v4($):null}async removeJob(D){let $=u();if(!$.select({id:PD.id}).from(PD).where(v(PD.id,D)).get())return{removed:!1};return $.delete(PD).where(v(PD.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=u().select().from(PD).where(v(PD.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)k4($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let G=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=G?k4(B,new Date).toISOString():null}u().update(PD).set(X).where(v(PD.id,D)).run();let Y=u().select().from(PD).where(v(PD.id,D)).get();return v4(Y)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=u().select().from(PD).where(uD(v(PD.enabled,!0),f7(PD.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=k4(D.expression,$).toISOString()}catch(Y){O.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(Y)}`)}let J=$.toISOString();u().update(PD).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(v(PD.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(Y){O.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(Y)}`)}}}function k4(D,$){return OK.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function v4(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 OK,nS=60000,sS="sys:cron";var EJ=Z(()=>{TD();JD();_0();OK=gZ(RK(),1)});class e3{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){O.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var CJ=Z(()=>{JD()});import qK from"fs/promises";import rS from"os";import n0 from"path";import h4 from"process";function NK(D=PK){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),_=await D.resolveBinary(H.binaryName),U={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)U.agent=H.agent;if(!_)return{...U,authHint:"binary-not-on-path"};let Q=D.homedir();for(let A of H.authPaths(Q))if(await D.pathExists(A))return{...U,status:"ready",binaryPath:_,authHint:"auth-file-present"};return{...U,status:"login-required",binaryPath:_,authHint:"auth-file-missing"}}async function X(H,W){let _=$.get(H.key);if(!W&&_&&_.expiresAt>D.now())return _.value;let U=await F(H);return $.set(H.key,{value:U,expiresAt:D.now()+aS}),U}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function Y(H={}){let W=H.refresh??!1,_=[];for(let U of MK)_.push(J(U));for(let U of ZK)_.push(await X(U,W));return _}async function G(H,W={}){let _=W.refresh??!1;if(MK.includes(H))return J(H);let U=ZK.filter((A)=>A.kind===H);if(U.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let Q=W.agent?U.find((A)=>A.agent===W.agent)??U[0]:U[0];return X(Q,_)}function B(){$.clear()}return{probe:G,probeAll:Y,clearCache:B}}function x4(){if(!D9)D9=NK();return D9}function LK(D){return D9=NK(D),D9}function RJ(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 jK(D,$=PK){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=n0.join(F,X,"oauth_creds.json"),Y=n0.join(F,X,"settings.json");if(await $.pathExists(J))return RJ("login","oauth_creds.json present");if(await $.pathExists(Y))return RJ("install","settings.json present, login pending");return RJ("none",`~/${X} not present`)}function zK(){return jK("gemini")}function IK(){return jK("qwen")}async function oS(D){let $=h4.env.PATH??"",F=h4.platform==="win32"?";":":",X=h4.platform==="win32"?(h4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=n0.join(J,`${D}${Y.toLowerCase()}`);try{if((await qK.stat(G)).isFile())return G}catch{}}}return null}async function tS(D){try{return await qK.stat(D),!0}catch{return!1}}var aS=600000,PK,MK,ZK,D9=null;var g4=Z(()=>{PK={resolveBinary:oS,pathExists:tS,homedir:()=>rS.homedir(),now:()=>Date.now()},MK=["http","mcp","cli"],ZK=[{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 OJ{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!==eS){O.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(bD(D))}catch(F){O.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;O.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){O.warn(`[gateway-client ${$}] ws ctor threw: ${String(X)}`),this.scheduleReconnect();return}this.ws=F,F.onopen=()=>{let X=this.deps.options.enroll,J=X===void 0||this.enrolledViaOtp?void 0:X.mode==="otp"?{mode:"otp",apiToken:X.apiToken,...X.displayName?{displayName:X.displayName}:{}}:{apiToken:X.apiToken,joinToken:X.joinToken,...X.displayName?{displayName:X.displayName}:{}},Y={type:"connect",role:n8.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(Y))}catch(G){O.warn(`[gateway-client ${$}] connect frame send failed: ${String(G)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,O.success(`[gateway-client ${$}] connected, node=${this.deps.options.deviceId}`),this.deps.onConnected()},F.onmessage=(X)=>{let J=typeof X.data==="string"?X.data:String(X.data),Y=s8(J);if(!Y.ok){O.warn(`[gateway-client ${$}] drop malformed frame: ${Y.error}`);return}let G=Y.frame;if(G.type==="event"&&G.name===o.ENROLLMENT_OTP){let B=U7.safeParse(G.payload);if(!B.success){O.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){O.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(G.type==="event"&&G.name===o.ENROLLMENT_APPROVED){let B=Q7.safeParse(G.payload);if(!B.success){O.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){O.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(G)}catch(B){O.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{O.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){O.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);O.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 eS=1;var TK=Z(()=>{J0();JD()});function wK(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((Bb)=>{var MJ=Symbol.for("yaml.alias"),SK=Symbol.for("yaml.document"),y4=Symbol.for("yaml.map"),bK=Symbol.for("yaml.pair"),ZJ=Symbol.for("yaml.scalar"),u4=Symbol.for("yaml.seq"),$8=Symbol.for("yaml.node.type"),Db=(D)=>!!D&&typeof D==="object"&&D[$8]===MJ,$b=(D)=>!!D&&typeof D==="object"&&D[$8]===SK,Fb=(D)=>!!D&&typeof D==="object"&&D[$8]===y4,Xb=(D)=>!!D&&typeof D==="object"&&D[$8]===bK,fK=(D)=>!!D&&typeof D==="object"&&D[$8]===ZJ,Jb=(D)=>!!D&&typeof D==="object"&&D[$8]===u4;function kK(D){if(D&&typeof D==="object")switch(D[$8]){case y4:case u4:return!0}return!1}function Gb(D){if(D&&typeof D==="object")switch(D[$8]){case MJ:case y4:case ZJ:case u4:return!0}return!1}var Yb=(D)=>(fK(D)||kK(D))&&!!D.anchor;Bb.ALIAS=MJ;Bb.DOC=SK;Bb.MAP=y4;Bb.NODE_TYPE=$8;Bb.PAIR=bK;Bb.SCALAR=ZJ;Bb.SEQ=u4;Bb.hasAnchor=Yb;Bb.isAlias=Db;Bb.isCollection=kK;Bb.isDocument=$b;Bb.isMap=Fb;Bb.isNode=Gb;Bb.isPair=Xb;Bb.isScalar=fK;Bb.isSeq=Jb});var $9=f((Nb)=>{var sD=UD(),N0=Symbol("break visit"),vK=Symbol("skip children"),h2=Symbol("remove node");function m4(D,$){let F=hK($);if(sD.isDocument(D)){if(L6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else L6(null,D,F,Object.freeze([]))}m4.BREAK=N0;m4.SKIP=vK;m4.REMOVE=h2;function L6(D,$,F,X){let J=xK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return gK(D,X,J),L6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=L6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===N0)return N0;else if(G===h2)$.items.splice(Y,1),Y-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let Y=L6("key",$.key,F,X);if(Y===N0)return N0;else if(Y===h2)$.key=null;let G=L6("value",$.value,F,X);if(G===N0)return N0;else if(G===h2)$.value=null}}return J}async function p4(D,$){let F=hK($);if(sD.isDocument(D)){if(await j6(null,D.contents,F,Object.freeze([D]))===h2)D.contents=null}else await j6(null,D,F,Object.freeze([]))}p4.BREAK=N0;p4.SKIP=vK;p4.REMOVE=h2;async function j6(D,$,F,X){let J=await xK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return gK(D,X,J),j6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=await j6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===N0)return N0;else if(G===h2)$.items.splice(Y,1),Y-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let Y=await j6("key",$.key,F,X);if(Y===N0)return N0;else if(Y===h2)$.key=null;let G=await j6("value",$.value,F,X);if(G===N0)return N0;else if(G===h2)$.value=null}}return J}function hK(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 xK(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 gK(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`)}}Nb.visit=m4;Nb.visitAsync=p4});var qJ=f((wb)=>{var yK=UD(),zb=$9(),Ib={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Tb=(D)=>D.replace(/[!,[\]{}]/g,($)=>Ib[$]);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,Y]=F;return this.tags[J]=Y,!0}case"%YAML":{if(this.yaml.explicit=!0,F.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[J]=F;if(J==="1.1"||J==="1.2")return this.yaml.version=J,!0;else{let Y=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,Y),!1}}default:return $(0,`Unknown directive ${X}`,!0),!1}}tagName(D,$){if(D==="!")return"!";if(D[0]!=="!")return $(`Not a valid tag: ${D}`),null;if(D[1]==="<"){let Y=D.slice(2,-1);if(Y==="!"||Y==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return Y}let[,F,X]=D.match(/^(.*!)([^!]*)$/s);if(!X)$(`The ${D} tag has no suffix`);let J=this.tags[F];if(J)try{return J+decodeURIComponent(X)}catch(Y){return $(String(Y)),null}if(F==="!")return D;return $(`Could not resolve tag: ${D}`),null}tagString(D){for(let[$,F]of Object.entries(this.tags))if(D.startsWith(F))return $+Tb(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&&yK.isNode(D.contents)){let J={};zb.visit(D.contents,(Y,G)=>{if(yK.isNode(G)&&G.tag)J[G.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,Y]of F){if(J==="!!"&&Y==="tag:yaml.org,2002:")continue;if(!D||X.some((G)=>G.startsWith(Y)))$.push(`%TAG ${J} ${Y}`)}return $.join(`
|
|
116
|
-
`)}}s0.defaultYaml={explicit:!1,version:"1.2"};s0.defaultTags={"!!":"tag:yaml.org,2002:"};
|
|
117
|
-
`)?
|
|
114
|
+
`),F.update(g0).set({bootstrapShownAt:new Date().toISOString()}).where(v(g0.pk,"default")).run()}var SU=Z(()=>{TD();_0()});var bU=Z(()=>{wU();TX();wX();SU()});import{Buffer as fU}from"buffer";import{timingSafeEqual as VI}from"crypto";function b2(D,$){let F=fU.from(D,"utf8"),X=fU.from($,"utf8");if(F.length!==X.length)return!1;return VI(F,X)}var A4=()=>{};import{Buffer as kU}from"buffer";import{createDecipheriv as _I,createHash as UI}from"crypto";function AI(D,$){let F=UI("sha256").update($,"utf8").digest(),X=kU.from(D,"base64");if(X.length<=16)throw Error("lark: encrypted payload too short");let J=X.subarray(0,16),Y=X.subarray(16),G=_I("aes-256-cbc",F,J);return kU.concat([G.update(Y),G.final()]).toString("utf8")}function vU(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(AI(F.encrypt,$))}return F}function KI(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function EI(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function OI(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 RI(D,$){let F=SX.get(D);if(!F)F={},SX.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>QI)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=OI(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function CI(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function xU(){SX.clear()}var QI=60000,SX,hU;var bX=Z(()=>{A4();SX=new Map;hU={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=vU(D,F.credentials.encryptKey),J=EI(X);if(J===void 0||!b2(J,F.credentials.verificationToken))throw Error("invalid Lark verification token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="lark")throw Error("lark adapter requires a lark binding for accountId derivation");let X=F.credentials.appId,J=F.credentials.encryptKey,Y=vU(D,J);if(KI(Y))return[];if(Y.header?.event_type!=="im.message.receive_v1")return[];let G=Y.event?.message;if(!G||G.message_type!=="text")return[];let B="";try{let O=JSON.parse(G.content);B=typeof O.text==="string"?O.text:""}catch{return[]}if(!B)return[];let H=Y.event?.sender,W=H?.sender_id?.open_id,_=H?.sender_id?.name,U=G.chat_type==="group"?`group:${G.chat_id}`:`p2p:${W??""}`,Q=CI(G);return[{workerId:$,channel:"lark",accountId:X,chatId:U,...W===void 0?{}:{userId:W},..._===void 0?{}:{userDisplayName:_},text:B,...Q===void 0?{}:{richMetadata:Q},receivedAt:new Date(Number(G.create_time)).toISOString(),raw:Y}]},async send(D,$){if(D.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let{appId:F,appSecret:X}=D.credentials,J=await RI(F,X),[Y,G]=$.chatId.split(":",2);if(!Y||!G)throw Error(`lark send: malformed chatId ${$.chatId}`);if(Y!=="group"&&Y!=="p2p")throw Error(`lark send: unsupported chat kind "${Y}"`);let H=await fetch(`https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=${Y==="group"?"chat_id":"open_id"}`,{method:"POST",headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/json"},body:JSON.stringify({receive_id:G,msg_type:"text",content:JSON.stringify({text:$.text})})}),W=await H.json().catch(()=>({}));if(W.code!==0)throw Error(`Lark send failed: ${W.code??H.status} ${W.msg??H.statusText}`)}}});function V6(){return new Date().toISOString()}import{Buffer as gU}from"buffer";import{createHash as MI,createHmac as ZI,timingSafeEqual as qI}from"crypto";function NI(D,$){return ZI("sha256",D).update($,"utf8").digest("base64")}function PI(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function LI(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var yU;var uU=Z(()=>{yU={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=NI(F.credentials.channelSecret,D),Y=gU.from(X,"base64"),G=gU.from(J,"base64");if(Y.length!==G.length||!qI(Y,G))throw Error("invalid LINE signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="line")throw Error("line adapter requires a line binding for accountId derivation");let X=MI("sha256").update(F.credentials.channelAccessToken,"utf8").digest("hex").slice(0,16),J=JSON.parse(D),Y=[];for(let G of J.events){if(G.type!=="message"||G.message?.type!=="text"||!G.message.text)continue;let B=PI(G.source),H=G.source.type==="user"?G.source.userId:("userId"in G.source)?G.source.userId:void 0,W=LI(G);Y.push({workerId:$,channel:"line",accountId:X,chatId:B,...H===void 0?{}:{userId:H},text:G.message.text,...W===void 0?{}:{richMetadata:W},receivedAt:new Date(G.timestamp).toISOString()||V6(),raw:G})}return Y},async send(D,$){if(D.credentials.channel!=="line")throw Error("line adapter called with non-line credentials");let F=D.credentials.channelAccessToken,[X,J]=$.chatId.split(":",2);if(!X||!J)throw Error(`line send: malformed chatId ${$.chatId}`);let Y=await fetch("https://api.line.me/v2/bot/message/push",{method:"POST",headers:{Authorization:`Bearer ${F}`,"Content-Type":"application/json"},body:JSON.stringify({to:J,messages:[{type:"text",text:$.text}]})});if(!Y.ok){let G=await Y.text();throw Error(`LINE push failed: ${Y.status} ${G}`)}}}});import{Buffer as mU}from"buffer";import{createHash as jI,timingSafeEqual as zI}from"crypto";function SI(D,$){let F=mU.from(D,"utf8"),X=mU.from($,"utf8");if(F.length!==X.length)return!1;return zI(F,X)}function bI(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 fI(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let Y=$-1;Y>0;Y--)if(wI.test(X[Y])){J=Y;break}if(J>0)F.push(X.slice(0,J)),X=X.slice(J+1);else F.push(X.slice(0,$)),X=X.slice($)}if(X.length>0)F.push(X);return F}function kI(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return jI("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function vI(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 II=4096,TI="x-telegram-bot-api-secret-token",wI,pU;var cU=Z(()=>{wI=/\s/;pU={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=$[TI];if(!J||!SI(J,X))throw Error("invalid X-Telegram-Bot-Api-Secret-Token")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="telegram")throw Error("telegram adapter requires a telegram binding for accountId derivation");let X=JSON.parse(D),J=X.message;if(!J||typeof J.text!=="string")return[];let Y=`${J.chat.type}:${J.chat.id}`,G=J.from?.id?.toString(),B=bI(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():V6(),W=kI(F.credentials),_=vI(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:Y,...G===void 0?{}:{userId:G},...B===void 0?{}:{userDisplayName:B},text:J.text,..._===void 0?{}:{richMetadata:_},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),Y=Number(J);if(!Number.isFinite(Y)||!Number.isInteger(Y))throw Error(`telegram send: malformed chatId ${$.chatId}`);let G=`https://api.telegram.org/bot${F}/sendMessage`,B=fI($.text,II);for(let H of B){let W=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chat_id:Y,text:H})});if(!W.ok){let _=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${_}`)}}}}});function xI(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 gI(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var hI="default",dU;var lU=Z(()=>{A4();dU={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=gI($);if(!J||!b2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:hI,J=JSON.parse(D),Y=xI(J.metadata);return[{workerId:$,channel:"web",accountId:X,chatId:J.chatId,...J.threadId===void 0?{}:{threadId:J.threadId},...J.userId===void 0?{}:{userId:J.userId},...J.userDisplayName===void 0?{}:{userDisplayName:J.userDisplayName},text:J.text,...Y===void 0?{}:{richMetadata:Y},receivedAt:V6(),raw:J}]},async send(){}}});import{Buffer as iU}from"buffer";import{createHmac as yI,timingSafeEqual as uI}from"crypto";function pI(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 cI(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 mI="v21.0",nU;var sU=Z(()=>{nU={channel:"whatsapp",async verify(D,$,F){if(F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let X=$["x-hub-signature-256"];if(!X)throw Error("missing X-Hub-Signature-256 header");let[J,Y]=X.split("=",2);if(J!=="sha256"||!Y)throw Error("invalid X-Hub-Signature-256 format");let G=yI("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=iU.from(Y,"hex"),H=iU.from(G,"hex");if(B.length!==H.length||!uI(B,H))throw Error("invalid WhatsApp signature")},async toEnvelopes(D,$,F){if(!F||F.credentials.channel!=="whatsapp")throw Error("whatsapp adapter requires a whatsapp binding for accountId derivation");let X=F.credentials.phoneNumberId,J=JSON.parse(D),Y=[];for(let G of J.entry??[])for(let B of G.changes??[]){let H=B.value;if(!H||!H.messages||H.messages.length===0)continue;let W=H.contacts??[];for(let _ of H.messages){let U=pI(_);if(U===void 0)continue;let Q=_.from,O=W.find((K)=>K.wa_id===Q)?.profile?.name,E=cI(_);Y.push({workerId:$,channel:"whatsapp",accountId:X,chatId:Q,userId:Q,...O?{userDisplayName:O}:{},text:U,...E===void 0?{}:{richMetadata:E},receivedAt:new Date(Number(_.timestamp)*1000).toISOString(),raw:_})}}return Y},async send(D,$){if(D.credentials.channel!=="whatsapp")throw Error("whatsapp adapter called with non-whatsapp credentials");let{phoneNumberId:F,accessToken:X}=D.credentials,J=`https://graph.facebook.com/${mI}/${F}/messages`,Y=await fetch(J,{method:"POST",headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/json"},body:JSON.stringify({messaging_product:"whatsapp",recipient_type:"individual",to:$.chatId,type:"text",text:{preview_url:!1,body:$.text}})});if(!Y.ok){let G=await Y.text();throw Error(`WhatsApp send failed: ${Y.status} ${G}`)}}}});function H1(D){return dI[D]}class g3{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 dI;var y3=Z(()=>{bX();uU();cU();lU();sU();dI={web:dU,line:yU,telegram:pU,lark:hU,whatsapp:nU}});function o2(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 K4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),lI($),$.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 _6(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}),iI(F,$),F.channels=F.channels.map((X)=>{let J=X.credentials;switch(J.channel){case"line":return{...X,credentials:{...J,channelSecret:$.get("channels.line.credentials.channelSecret")??"",channelAccessToken:$.get("channels.line.credentials.channelAccessToken")??""}};case"telegram":{let Y=$.get("channels.telegram.credentials.webhookSecretToken");return{...X,credentials:{...J,botToken:$.get("channels.telegram.credentials.botToken")??"",webhookSecretToken:Y??J.webhookSecretToken}}}case"lark":return{...X,credentials:{...J,appSecret:$.get("channels.lark.credentials.appSecret")??"",encryptKey:$.get("channels.lark.credentials.encryptKey")??"",verificationToken:$.get("channels.lark.credentials.verificationToken")??""}};case"whatsapp":return{...X,credentials:{...J,accessToken:$.get("channels.whatsapp.credentials.accessToken")??"",appSecret:$.get("channels.whatsapp.credentials.appSecret")??"",verifyToken:$.get("channels.whatsapp.credentials.verifyToken")??""}};case"web":{let Y=$.get("channels.web.credentials.inboundToken");return{...X,credentials:{...J,inboundToken:Y??J.inboundToken}}}default:return X}}),F}function lI(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 iI(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 aU=f((rU)=>{Object.defineProperty(rU,"__esModule",{value:!0})});var Z8=f((oU)=>{Object.defineProperty(oU,"__esModule",{value:!0});oU.CronField=void 0;class fX{#D=!1;#$=!1;#X=!1;#G=[];options={rawValue:""};static get min(){throw Error("min must be overridden")}static get max(){throw Error("max must be overridden")}static get chars(){return Object.freeze([])}static get validChars(){return/^[?,*\dH/-]+$|^.*H\(\d+-\d+\)\/\d+.*$|^.*H\(\d+-\d+\).*$|^.*H\/\d+.*$/}static get constraints(){return{min:this.min,max:this.max,chars:this.chars,validChars:this.validChars}}constructor(D,$={rawValue:""}){if(!Array.isArray(D))throw Error(`${this.constructor.name} Validation error, values is not an array`);if(!(D.length>0))throw Error(`${this.constructor.name} Validation error, values contains no values`);this.options={...$,rawValue:$.rawValue??""},this.#G=D.sort(fX.sorter),this.#X=this.options.wildcard!==void 0?this.options.wildcard:this.#J(),this.#D=this.options.rawValue.includes("L")||D.includes("L"),this.#$=this.options.rawValue.includes("?")||D.includes("?")}get min(){return this.constructor.min}get max(){return this.constructor.max}get chars(){return this.constructor.chars}get hasLastChar(){return this.#D}get hasQuestionMarkChar(){return this.#$}get isWildcard(){return this.#X}get values(){return this.#G}static sorter(D,$){let F=typeof D==="number",X=typeof $==="number";if(F&&X)return D-$;if(!F&&!X)return D.localeCompare($);return F?-1:1}static findNearestValueInList(D,$,F=!1){if(F){for(let X=D.length-1;X>=0;X--)if(D[X]<$)return D[X];return null}for(let X=0;X<D.length;X++)if(D[X]>$)return D[X];return null}findNearestValue(D,$=!1){return this.constructor.findNearestValueInList(this.values,D,$)}serialize(){return{wildcard:this.#X,values:this.#G}}validate(){let D,$=this.chars.length>0?` or chars ${this.chars.join("")}`:"",F=(G)=>(B)=>new RegExp(`^\\d{0,2}${B}$`).test(G),X=(G)=>{return D=G,typeof G==="number"?G>=this.min&&G<=this.max:this.chars.some(F(G))};if(!this.#G.every(X))throw Error(`${this.constructor.name} Validation error, got value ${D} expected range ${this.min}-${this.max}${$}`);let Y=this.#G.find((G,B)=>this.#G.indexOf(G)!==B);if(Y)throw Error(`${this.constructor.name} Validation error, duplicate values found: ${Y}`)}#J(){if(this.options.rawValue.length>0)return["*","?"].includes(this.options.rawValue);return Array.from({length:this.max-this.min+1},(D,$)=>$+this.min).every((D)=>this.#G.includes(D))}}oU.CronField=fX});var FQ=f((DQ)=>{Object.defineProperty(DQ,"__esModule",{value:!0});DQ.CronDayOfMonth=void 0;var nI=Z8(),sI=1,rI=31,aI=Object.freeze(["L"]);class eU extends nI.CronField{static get min(){return sI}static get max(){return rI}static get chars(){return aI}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}}DQ.CronDayOfMonth=eU});var YQ=f((JQ)=>{Object.defineProperty(JQ,"__esModule",{value:!0});JQ.CronDayOfWeek=void 0;var oI=Z8(),tI=0,eI=7,DT=Object.freeze(["L"]);class XQ extends oI.CronField{static get min(){return tI}static get max(){return eI}static get chars(){return DT}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}}JQ.CronDayOfWeek=XQ});var VQ=f((HQ)=>{Object.defineProperty(HQ,"__esModule",{value:!0});HQ.CronHour=void 0;var $T=Z8(),FT=0,XT=23,JT=Object.freeze([]);class BQ extends $T.CronField{static get min(){return FT}static get max(){return XT}static get chars(){return JT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}HQ.CronHour=BQ});var AQ=f((UQ)=>{Object.defineProperty(UQ,"__esModule",{value:!0});UQ.CronMinute=void 0;var GT=Z8(),YT=0,BT=59,HT=Object.freeze([]);class _Q extends GT.CronField{static get min(){return YT}static get max(){return BT}static get chars(){return HT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}UQ.CronMinute=_Q});var oA=f((aA)=>{Object.defineProperty(aA,"__esModule",{value:!0});class L8 extends Error{}class lQ extends L8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class iQ extends L8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class nQ extends L8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class _1 extends L8{}class DJ extends L8{constructor(D){super(`Invalid unit ${D}`)}}class B0 extends L8{}class e2 extends L8{constructor(){super("Zone is an abstract class")}}var y="numeric",R2="short",w0="long",N4={year:y,month:y,day:y},sQ={year:y,month:R2,day:y},WT={year:y,month:R2,day:y,weekday:R2},rQ={year:y,month:w0,day:y},aQ={year:y,month:w0,day:y,weekday:w0},oQ={hour:y,minute:y},tQ={hour:y,minute:y,second:y},eQ={hour:y,minute:y,second:y,timeZoneName:R2},DA={hour:y,minute:y,second:y,timeZoneName:w0},$A={hour:y,minute:y,hourCycle:"h23"},FA={hour:y,minute:y,second:y,hourCycle:"h23"},XA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:R2},JA={hour:y,minute:y,second:y,hourCycle:"h23",timeZoneName:w0},GA={year:y,month:y,day:y,hour:y,minute:y},YA={year:y,month:y,day:y,hour:y,minute:y,second:y},BA={year:y,month:R2,day:y,hour:y,minute:y},HA={year:y,month:R2,day:y,hour:y,minute:y,second:y},VT={year:y,month:R2,day:y,weekday:R2,hour:y,minute:y},WA={year:y,month:w0,day:y,hour:y,minute:y,timeZoneName:R2},VA={year:y,month:w0,day:y,hour:y,minute:y,second:y,timeZoneName:R2},_A={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,timeZoneName:w0},UA={year:y,month:w0,day:y,weekday:w0,hour:y,minute:y,second:y,timeZoneName:w0};class Q1{get type(){throw new e2}get name(){throw new e2}get ianaName(){return this.name}get isUniversal(){throw new e2}offsetName(D,$){throw new e2}formatOffset(D,$){throw new e2}offset(D){throw new e2}equals(D){throw new e2}get isValid(){throw new e2}}var kX=null;class i3 extends Q1{static get instance(){if(kX===null)kX=new i3;return kX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return jA(D,$,F)}formatOffset(D,$){return d3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var cX=new Map;function _T(D){let $=cX.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"}),cX.set(D,$);return $}var UT={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function QT(D,$){let F=D.format($).replace(/\u200E/g,""),X=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(F),[,J,Y,G,B,H,W,_]=X;return[G,J,Y,B,H,W,_]}function AT(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:Y,value:G}=F[J],B=UT[Y];if(Y==="era")X[B]=G;else if(!a(B))X[B]=parseInt(G,10)}return X}var vX=new Map;class f2 extends Q1{static create(D){let $=vX.get(D);if($===void 0)vX.set(D,$=new f2(D));return $}static resetCache(){vX.clear(),cX.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=f2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return jA(D,$,F,this.name)}formatOffset(D,$){return d3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=_T(this.name),[X,J,Y,G,B,H,W]=F.formatToParts?AT(F,$):QT(F,$);if(G==="BC")X=-Math.abs(X)+1;let U=I4({year:X,month:J,day:Y,hour:B===24?0:B,minute:H,second:W,millisecond:0}),Q=+$,A=Q%1000;return Q-=A>=0?A:1000+A,(U-Q)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var KQ={};function KT(D,$={}){let F=JSON.stringify([D,$]),X=KQ[F];if(!X)X=new Intl.ListFormat(D,$),KQ[F]=X;return X}var dX=new Map;function lX(D,$={}){let F=JSON.stringify([D,$]),X=dX.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),dX.set(F,X);return X}var iX=new Map;function ET(D,$={}){let F=JSON.stringify([D,$]),X=iX.get(F);if(X===void 0)X=new Intl.NumberFormat(D,$),iX.set(F,X);return X}var nX=new Map;function OT(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),Y=nX.get(J);if(Y===void 0)Y=new Intl.RelativeTimeFormat(D,$),nX.set(J,Y);return Y}var m3=null;function RT(){if(m3)return m3;else return m3=new Intl.DateTimeFormat().resolvedOptions().locale,m3}var sX=new Map;function QA(D){let $=sX.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),sX.set(D,$);return $}var rX=new Map;function CT(D){let $=rX.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...OA,...$};rX.set(D,$)}return $}function MT(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=lX(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=lX(H).resolvedOptions(),J=H}let{numberingSystem:Y,calendar:G}=X;return[J,Y,G]}}function ZT(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function qT(D){let $=[];for(let F=1;F<=12;F++){let X=t.utc(2009,F,1);$.push(D(X))}return $}function NT(D){let $=[];for(let F=1;F<=7;F++){let X=t.utc(2016,11,13+F);$.push(D(X))}return $}function E4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function PT(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||QA(D.locale).numberingSystem==="latn"}class AA{constructor(D,$,F){this.padTo=F.padTo||0,this.floor=F.floor||!1;let{padTo:X,floor:J,...Y}=F;if(!$||Object.keys(Y).length>0){let G={useGrouping:!1,...F};if(F.padTo>0)G.minimumIntegerDigits=F.padTo;this.inf=ET(D,G)}}format(D){if(this.inf){let $=this.floor?Math.floor(D):D;return this.inf.format($)}else{let $=this.floor?Math.floor(D):YJ(D,3);return dD($,this.padTo)}}}class KA{constructor(D,$,F){this.opts=F,this.originalZone=void 0;let X=void 0;if(this.opts.timeZone)this.dt=D;else if(D.zone.type==="fixed"){let Y=-1*(D.offset/60),G=Y>=0?`Etc/GMT+${Y}`:`Etc/GMT${Y}`;if(D.offset!==0&&f2.create(G).valid)X=G,this.dt=D;else X="UTC",this.dt=D.offset===0?D:D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone}else if(D.zone.type==="system")this.dt=D;else if(D.zone.type==="iana")this.dt=D,X=D.zone.name;else X="UTC",this.dt=D.setZone("UTC").plus({minutes:D.offset}),this.originalZone=D.zone;let J={...this.opts};J.timeZone=J.timeZone||X,this.dtf=lX($,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 EA{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&PA())this.rtf=OT(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return lT($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var OA={firstDay:1,minimalDays:4,weekend:[6,7]};class OD{static fromOpts(D){return OD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let Y=D||wD.defaultLocale,G=Y||(J?"en-US":RT()),B=$||wD.defaultNumberingSystem,H=F||wD.defaultOutputCalendar,W=oX(X)||wD.defaultWeekSettings;return new OD(G,B,H,W,Y)}static resetCache(){m3=null,dX.clear(),iX.clear(),nX.clear(),sX.clear(),rX.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return OD.create(D,$,F,X)}constructor(D,$,F,X,J){let[Y,G,B]=MT(D);this.locale=Y,this.numberingSystem=$||G||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=ZT(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=PT(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 OD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,oX(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 E4(this,D,TA,()=>{let F=this.intl==="ja"||this.intl.startsWith("ja-");$&=!F;let X=$?{month:D,day:"numeric"}:{month:D},J=$?"format":"standalone";if(!this.monthsCache[J][D]){let Y=!F?(G)=>this.extract(G,X,"month"):(G)=>this.dtFormatter(G,X).format();this.monthsCache[J][D]=qT(Y)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return E4(this,D,bA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=NT((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return E4(this,void 0,()=>fA,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[t.utc(2016,11,13,9),t.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return E4(this,D,kA,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[t.utc(-40,1,1),t.utc(2017,1,1)].map((F)=>this.extract(F,$,"era"));return this.eraCache[D]})}extract(D,$,F){let X=this.dtFormatter(D,$),J=X.formatToParts(),Y=J.find((G)=>G.type.toLowerCase()===F);return Y?Y.value:null}numberFormatter(D={}){return new AA(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new KA(D,this.intl,$)}relFormatter(D={}){return new EA(this.intl,this.isEnglish(),D)}listFormatter(D={}){return KT(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||QA(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!LA())return OA;else return CT(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 hX=null;class A0 extends Q1{static get utcInstance(){if(hX===null)hX=new A0(0);return hX}static instance(D){return D===0?A0.utcInstance:new A0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new A0(T4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${d3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${d3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return d3(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 $J extends Q1{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 N8(D,$){if(a(D)||D===null)return $;else if(D instanceof Q1)return D;else if(wT(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return i3.instance;else if(F==="utc"||F==="gmt")return A0.utcInstance;else return A0.parseSpecifier(F)||f2.create(D)}else if(P8(D))return A0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new $J(D)}var FJ={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"},EQ={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]},LT=FJ.hanidec.replace(/[\[|\]]/g,"").split("");function jT(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(FJ.hanidec)!==-1)$+=LT.indexOf(D[F]);else for(let J in EQ){let[Y,G]=EQ[J];if(X>=Y&&X<=G)$+=X-Y}}return parseInt($,10)}else return $}var aX=new Map;function zT(){aX.clear()}function E2({numberingSystem:D},$=""){let F=D||"latn",X=aX.get(F);if(X===void 0)X=new Map,aX.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${FJ[F]}${$}`),X.set($,J);return J}var OQ=()=>Date.now(),RQ="system",CQ=null,MQ=null,ZQ=null,qQ=60,NQ,PQ=null;class wD{static get now(){return OQ}static set now(D){OQ=D}static set defaultZone(D){RQ=D}static get defaultZone(){return N8(RQ,i3.instance)}static get defaultLocale(){return CQ}static set defaultLocale(D){CQ=D}static get defaultNumberingSystem(){return MQ}static set defaultNumberingSystem(D){MQ=D}static get defaultOutputCalendar(){return ZQ}static set defaultOutputCalendar(D){ZQ=D}static get defaultWeekSettings(){return PQ}static set defaultWeekSettings(D){PQ=oX(D)}static get twoDigitCutoffYear(){return qQ}static set twoDigitCutoffYear(D){qQ=D%100}static get throwOnInvalid(){return NQ}static set throwOnInvalid(D){NQ=D}static resetCaches(){OD.resetCache(),f2.resetCache(),t.resetCache(),zT()}}class u0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var RA=[0,31,59,90,120,151,181,212,243,273,304,334],CA=[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 XJ(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 MA(D,$,F){return F+(n3(D)?CA:RA)[$-1]}function ZA(D,$){let F=n3(D)?CA:RA,X=F.findIndex((Y)=>Y<$),J=$-F[X];return{month:X+1,day:J}}function JJ(D,$){return(D-$+7)%7+1}function P4(D,$=4,F=1){let{year:X,month:J,day:Y}=D,G=MA(X,J,Y),B=JJ(XJ(X,J,Y),F),H=Math.floor((G-B+14-$)/7),W;if(H<1)W=X-1,H=l3(W,$,F);else if(H>l3(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...w4(D)}}function LQ(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:Y}=D,G=JJ(XJ(X,1,$),F),B=E6(X),H=J*7+Y-G-7+$,W;if(H<1)W=X-1,H+=E6(W);else if(H>B)W=X+1,H-=E6(X);else W=X;let{month:_,day:U}=ZA(W,H);return{year:W,month:_,day:U,...w4(D)}}function xX(D){let{year:$,month:F,day:X}=D,J=MA($,F,X);return{year:$,ordinal:J,...w4(D)}}function jQ(D){let{year:$,ordinal:F}=D,{month:X,day:J}=ZA($,F);return{year:$,month:X,day:J,...w4(D)}}function zQ(D,$){if(!a(D.localWeekday)||!a(D.localWeekNumber)||!a(D.localWeekYear)){if(!a(D.weekday)||!a(D.weekNumber)||!a(D.weekYear))throw new _1("Cannot mix locale-based week fields with ISO-based week fields");if(!a(D.localWeekday))D.weekday=D.localWeekday;if(!a(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!a(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 IT(D,$=4,F=1){let X=z4(D.weekYear),J=p0(D.weekNumber,1,l3(D.weekYear,$,F)),Y=p0(D.weekday,1,7);if(!X)return m0("weekYear",D.weekYear);else if(!J)return m0("week",D.weekNumber);else if(!Y)return m0("weekday",D.weekday);else return!1}function TT(D){let $=z4(D.year),F=p0(D.ordinal,1,E6(D.year));if(!$)return m0("year",D.year);else if(!F)return m0("ordinal",D.ordinal);else return!1}function qA(D){let $=z4(D.year),F=p0(D.month,1,12),X=p0(D.day,1,L4(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 NA(D){let{hour:$,minute:F,second:X,millisecond:J}=D,Y=p0($,0,23)||$===24&&F===0&&X===0&&J===0,G=p0(F,0,59),B=p0(X,0,59),H=p0(J,0,999);if(!Y)return m0("hour",$);else if(!G)return m0("minute",F);else if(!B)return m0("second",X);else if(!H)return m0("millisecond",J);else return!1}function a(D){return typeof D>"u"}function P8(D){return typeof D==="number"}function z4(D){return typeof D==="number"&&D%1===0}function wT(D){return typeof D==="string"}function ST(D){return Object.prototype.toString.call(D)==="[object Date]"}function PA(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function LA(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function bT(D){return Array.isArray(D)?D:[D]}function IQ(D,$,F){if(D.length===0)return;return D.reduce((X,J)=>{let Y=[$(J),J];if(!X)return Y;else if(F(X[0],Y[0])===X[0])return X;else return Y},null)[1]}function fT(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function R6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function oX(D){if(D==null)return null;else if(typeof D!=="object")throw new B0("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 B0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function p0(D,$,F){return z4(D)&&D>=$&&D<=F}function kT(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 q8(D){if(a(D)||D===null||D==="")return;else return parseInt(D,10)}function W1(D){if(a(D)||D===null||D==="")return;else return parseFloat(D)}function GJ(D){if(a(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function YJ(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 n3(D){return D%4===0&&(D%100!==0||D%400===0)}function E6(D){return n3(D)?366:365}function L4(D,$){let F=kT($-1,12)+1,X=D+($-F)/12;if(F===2)return n3(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function I4(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 TQ(D,$,F){return-JJ(XJ(D,1,$),F)+$-1}function l3(D,$=4,F=1){let X=TQ(D,$,F),J=TQ(D+1,$,F);return(E6(D)-X+J)/7}function tX(D){if(D>99)return D;else return D>wD.twoDigitCutoffYear?1900+D:2000+D}function jA(D,$,F,X=null){let J=new Date(D),Y={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(X)Y.timeZone=X;let G={timeZoneName:$,...Y},B=new Intl.DateTimeFormat(F,G).formatToParts(J).find((H)=>H.type.toLowerCase()==="timezonename");return B?B.value:null}function T4(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 zA(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new B0(`Invalid unit value ${D}`);return $}function j4(D,$){let F={};for(let X in D)if(R6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=zA(J)}return F}function d3(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 w4(D){return fT(D,["hour","minute","second","millisecond"])}var vT=["January","February","March","April","May","June","July","August","September","October","November","December"],IA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],hT=["J","F","M","A","M","J","J","A","S","O","N","D"];function TA(D){switch(D){case"narrow":return[...hT];case"short":return[...IA];case"long":return[...vT];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 wA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],SA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],xT=["M","T","W","T","F","S","S"];function bA(D){switch(D){case"narrow":return[...xT];case"short":return[...SA];case"long":return[...wA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var fA=["AM","PM"],gT=["Before Christ","Anno Domini"],yT=["BC","AD"],uT=["B","A"];function kA(D){switch(D){case"narrow":return[...uT];case"short":return[...yT];case"long":return[...gT];default:return null}}function mT(D){return fA[D.hour<12?0:1]}function pT(D,$){return bA($)[D.weekday-1]}function cT(D,$){return TA($)[D.month-1]}function dT(D,$){return kA($)[D.year<0?0:1]}function lT(D,$,F="always",X=!1){let J={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},Y=["hours","minutes","seconds"].indexOf(D)===-1;if(F==="auto"&&Y){let U=D==="days";switch($){case 1:return U?"tomorrow":`next ${J[D][0]}`;case-1:return U?"yesterday":`last ${J[D][0]}`;case 0:return U?"today":`this ${J[D][0]}`}}let G=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],_=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return G?`${B} ${_} ago`:`in ${B} ${_}`}function wQ(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var iT={D:N4,DD:sQ,DDD:rQ,DDDD:aQ,t:oQ,tt:tQ,ttt:eQ,tttt:DA,T:$A,TT:FA,TTT:XA,TTTT:JA,f:GA,ff:BA,fff:WA,ffff:_A,F:YA,FF:HA,FFF:VA,FFFF:UA};class Q0{static create(D,$={}){return new Q0(D,$)}static parseFormat(D){let $=null,F="",X=!1,J=[];for(let Y=0;Y<D.length;Y++){let G=D.charAt(Y);if(G==="'"){if(F.length>0||X)J.push({literal:X||/^\s+$/.test(F),val:F===""?"'":F});$=null,F="",X=!X}else if(X)F+=G;else if(G===$)F+=G;else{if(F.length>0)J.push({literal:/^\s+$/.test(F),val:F});F=G,$=G}}if(F.length>0)J.push({literal:X||/^\s+$/.test(F),val:F});return J}static macroTokenToFormatOpts(D){return iT[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=(Q,A)=>this.loc.extract(D,Q,A),Y=(Q)=>{if(D.isOffsetFixed&&D.offset===0&&Q.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,Q.format):""},G=()=>F?mT(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(Q,A)=>F?cT(D,Q):J(A?{month:Q}:{month:Q,day:"numeric"},"month"),H=(Q,A)=>F?pT(D,Q):J(A?{weekday:Q}:{weekday:Q,month:"long",day:"numeric"},"weekday"),W=(Q)=>{let A=Q0.macroTokenToFormatOpts(Q);if(A)return this.formatWithSystemDefault(D,A);else return Q},_=(Q)=>F?dT(D,Q):J({era:Q},"era"),U=(Q)=>{switch(Q){case"S":return this.num(D.millisecond);case"u":case"SSS":return this.num(D.millisecond,3);case"s":return this.num(D.second);case"ss":return this.num(D.second,2);case"uu":return this.num(Math.floor(D.millisecond/10),2);case"uuu":return this.num(Math.floor(D.millisecond/100));case"m":return this.num(D.minute);case"mm":return this.num(D.minute,2);case"h":return this.num(D.hour%12===0?12:D.hour%12);case"hh":return this.num(D.hour%12===0?12:D.hour%12,2);case"H":return this.num(D.hour);case"HH":return this.num(D.hour,2);case"Z":return Y({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return Y({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return Y({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return D.zone.offsetName(D.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return D.zone.offsetName(D.ts,{format:"long",locale:this.loc.locale});case"z":return D.zoneName;case"a":return G();case"d":return X?J({day:"numeric"},"day"):this.num(D.day);case"dd":return X?J({day:"2-digit"},"day"):this.num(D.day,2);case"c":return this.num(D.weekday);case"ccc":return H("short",!0);case"cccc":return H("long",!0);case"ccccc":return H("narrow",!0);case"E":return this.num(D.weekday);case"EEE":return H("short",!1);case"EEEE":return H("long",!1);case"EEEEE":return H("narrow",!1);case"L":return X?J({month:"numeric",day:"numeric"},"month"):this.num(D.month);case"LL":return X?J({month:"2-digit",day:"numeric"},"month"):this.num(D.month,2);case"LLL":return B("short",!0);case"LLLL":return B("long",!0);case"LLLLL":return B("narrow",!0);case"M":return X?J({month:"numeric"},"month"):this.num(D.month);case"MM":return X?J({month:"2-digit"},"month"):this.num(D.month,2);case"MMM":return B("short",!1);case"MMMM":return B("long",!1);case"MMMMM":return B("narrow",!1);case"y":return X?J({year:"numeric"},"year"):this.num(D.year);case"yy":return X?J({year:"2-digit"},"year"):this.num(D.year.toString().slice(-2),2);case"yyyy":return X?J({year:"numeric"},"year"):this.num(D.year,4);case"yyyyyy":return X?J({year:"numeric"},"year"):this.num(D.year,6);case"G":return _("short");case"GG":return _("long");case"GGGGG":return _("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(Q)}};return wQ(Q0.parseFormat($),U)}formatDurationFromString(D,$){let F=this.opts.signMode==="negativeLargestOnly"?-1:1,X=(W)=>{switch(W[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},J=(W,_)=>(U)=>{let Q=X(U);if(Q){let A=_.isNegativeDuration&&Q!==_.largestUnit?F:1,O;if(this.opts.signMode==="negativeLargestOnly"&&Q!==_.largestUnit)O="never";else if(this.opts.signMode==="all")O="always";else O="auto";return this.num(W.get(Q)*A,U.length,O)}else return U},Y=Q0.parseFormat($),G=Y.reduce((W,{literal:_,val:U})=>_?W:W.concat(U),[]),B=D.shiftTo(...G.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return wQ(Y,J(B,H))}}var vA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function C6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function M6(...D){return($)=>D.reduce(([F,X,J],Y)=>{let[G,B,H]=Y($,J);return[{...F,...G},B||X,H]},[{},null,1]).slice(0,2)}function Z6(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 hA(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=q8($[F+J]);return[X,null,F+J]}}var xA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,nT=`(?:${xA.source}?(?:\\[(${vA.source})\\])?)?`,BJ=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,gA=RegExp(`${BJ.source}${nT}`),HJ=RegExp(`(?:[Tt]${gA.source})?`),sT=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,rT=/(\d{4})-?W(\d\d)(?:-?(\d))?/,aT=/(\d{4})-?(\d{3})/,oT=hA("weekYear","weekNumber","weekDay"),tT=hA("year","ordinal"),eT=/(\d{4})-(\d\d)-(\d\d)/,yA=RegExp(`${BJ.source} ?(?:${xA.source}|(${vA.source}))?`),Dw=RegExp(`(?: ${yA.source})?`);function O6(D,$,F){let X=D[$];return a(X)?F:q8(X)}function $w(D,$){return[{year:O6(D,$),month:O6(D,$+1,1),day:O6(D,$+2,1)},null,$+3]}function q6(D,$){return[{hours:O6(D,$,0),minutes:O6(D,$+1,0),seconds:O6(D,$+2,0),milliseconds:GJ(D[$+3])},null,$+4]}function s3(D,$){let F=!D[$]&&!D[$+1],X=T4(D[$+1],D[$+2]),J=F?null:A0.instance(X);return[{},J,$+3]}function r3(D,$){let F=D[$]?f2.create(D[$]):null;return[{},F,$+1]}var Fw=RegExp(`^T?${BJ.source}$`),Xw=/^-?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 Jw(D){let[$,F,X,J,Y,G,B,H,W]=D,_=$[0]==="-",U=H&&H[0]==="-",Q=(A,O=!1)=>A!==void 0&&(O||A&&_)?-A:A;return[{years:Q(W1(F)),months:Q(W1(X)),weeks:Q(W1(J)),days:Q(W1(Y)),hours:Q(W1(G)),minutes:Q(W1(B)),seconds:Q(W1(H),H==="-0"),milliseconds:Q(GJ(W),U)}]}var Gw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function WJ(D,$,F,X,J,Y,G){let B={year:$.length===2?tX(q8($)):q8($),month:IA.indexOf(F)+1,day:q8(X),hour:q8(J),minute:q8(Y)};if(G)B.second=q8(G);if(D)B.weekday=D.length>3?wA.indexOf(D)+1:SA.indexOf(D)+1;return B}var Yw=/^(?:(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 Bw(D){let[,$,F,X,J,Y,G,B,H,W,_,U]=D,Q=WJ($,J,X,F,Y,G,B),A;if(H)A=Gw[H];else if(W)A=0;else A=T4(_,U);return[Q,new A0(A)]}function Hw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Ww=/^(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$/,Vw=/^(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$/,_w=/^(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 SQ(D){let[,$,F,X,J,Y,G,B]=D;return[WJ($,J,X,F,Y,G,B),A0.utcInstance]}function Uw(D){let[,$,F,X,J,Y,G,B]=D;return[WJ($,B,F,X,J,Y,G),A0.utcInstance]}var Qw=C6(sT,HJ),Aw=C6(rT,HJ),Kw=C6(aT,HJ),Ew=C6(gA),uA=M6($w,q6,s3,r3),Ow=M6(oT,q6,s3,r3),Rw=M6(tT,q6,s3,r3),Cw=M6(q6,s3,r3);function Mw(D){return Z6(D,[Qw,uA],[Aw,Ow],[Kw,Rw],[Ew,Cw])}function Zw(D){return Z6(Hw(D),[Yw,Bw])}function qw(D){return Z6(D,[Ww,SQ],[Vw,SQ],[_w,Uw])}function Nw(D){return Z6(D,[Xw,Jw])}var Pw=M6(q6);function Lw(D){return Z6(D,[Fw,Pw])}var jw=C6(eT,Dw),zw=C6(yA),Iw=M6(q6,s3,r3);function Tw(D){return Z6(D,[jw,uA],[zw,Iw])}var bQ="Invalid Duration",mA={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}},ww={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},...mA},y0=365.2425,U6=30.436875,Sw={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:U6/7,days:U6,hours:U6*24,minutes:U6*24*60,seconds:U6*24*60*60,milliseconds:U6*24*60*60*1000},...mA},U1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],bw=U1.slice(0).reverse();function t2(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 pA(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of bw.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function fQ(D,$){let F=pA(D,$)<0?-1:1;U1.reduceRight((X,J)=>{if(!a($[J])){if(X){let Y=$[X]*F,G=D[J][X],B=Math.floor(Y/G);$[J]+=B*F,$[X]-=B*G*F}return J}else return X},null),U1.reduce((X,J)=>{if(!a($[J])){if(X){let Y=$[X]%1;$[X]-=Y,$[J]+=Y*D[X][J]}return J}else return X},null)}function kQ(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=$?Sw:ww;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||OD.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 B0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new _D({values:j4(D,_D.normalizeUnit),loc:OD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(P8(D))return _D.fromMillis(D);else if(_D.isDuration(D))return D;else if(typeof D==="object")return _D.fromObject(D);else throw new B0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=Nw(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]=Lw(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 B0("need to specify a reason the Duration is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new nQ(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 DJ(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?Q0.create(this.loc,F).formatDurationFromString(this,D):bQ}toHuman(D={}){if(!this.isValid)return bQ;let $=D.showZeros!==!1,F=U1.map((X)=>{let J=this.values[X];if(a(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+=YJ(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},t.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 pA(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D),F={};for(let X of U1)if(R6($.values,X)||R6(this.values,X))F[X]=$.get(X)+this.get(X);return t2(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]=zA(D(this.values[F],F));return t2(this,{values:$},!0)}get(D){return this[_D.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...j4(D,_D.normalizeUnit)};return t2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let Y={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return t2(this,Y)}as(D){return this.isValid?this.shiftTo(D).get(D):NaN}normalize(){if(!this.isValid)return this;let D=this.toObject();return fQ(this.matrix,D),t2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=kQ(this.normalize().shiftToAll().toObject());return t2(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((Y)=>_D.normalizeUnit(Y));let $={},F={},X=this.toObject(),J;for(let Y of U1)if(D.indexOf(Y)>=0){J=Y;let G=0;for(let H in F)G+=this.matrix[H][Y]*F[H],F[H]=0;if(P8(X[Y]))G+=X[Y];let B=Math.trunc(G);$[Y]=B,F[Y]=(G*1000-B*1000)/1000}else if(P8(X[Y]))F[Y]=X[Y];for(let Y in F)if(F[Y]!==0)$[J]+=Y===J?F[Y]:F[Y]/this.matrix[J][Y];return fQ(this.matrix,$),t2(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 t2(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=kQ(this.values);return t2(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 U1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var Q6="Invalid Interval";function fw(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 B0("need to specify a reason the Interval is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new iQ(F);else return new kD({invalid:F})}static fromDateTimes(D,$){let F=u3(D),X=u3($),J=fw(F,X);if(J==null)return new kD({start:F,end:X});else return J}static after(D,$){let F=_D.fromDurationLike($),X=u3(D);return kD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=_D.fromDurationLike($),X=u3(D);return kD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,Y;try{J=t.fromISO(F,$),Y=J.isValid}catch(H){Y=!1}let G,B;try{G=t.fromISO(X,$),B=G.isValid}catch(H){B=!1}if(Y&&B)return kD.fromDateTimes(J,G);if(Y){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(G,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(u3).filter((Y)=>this.contains(Y)).sort((Y,G)=>Y.toMillis()-G.toMillis()),F=[],{s:X}=this,J=0;while(X<this.e){let Y=$[J]||this.e,G=+Y>+this.e?this.e:Y;F.push(kD.fromDateTimes(X,G)),X=G,J+=1}return F}splitBy(D){let $=_D.fromDurationLike(D);if(!this.isValid||!$.isValid||$.as("milliseconds")===0)return[];let{s:F}=this,X=1,J,Y=[];while(F<this.e){let G=this.start.plus($.mapUnits((B)=>B*X));J=+G>+this.e?this.e:G,Y.push(kD.fromDateTimes(F,J)),F=J,X+=1}return Y}divideEqually(D){if(!this.isValid)return[];return this.splitBy(this.length()/D).slice(0,D)}overlaps(D){return this.e>D.s&&this.s<D.e}abutsStart(D){if(!this.isValid)return!1;return+this.e===+D.s}abutsEnd(D){if(!this.isValid)return!1;return+D.e===+this.s}engulfs(D){if(!this.isValid)return!1;return this.s<=D.s&&this.e>=D.e}equals(D){if(!this.isValid||!D.isValid)return!1;return this.s.equals(D.s)&&this.e.equals(D.e)}intersection(D){if(!this.isValid)return this;let $=this.s>D.s?this.s:D.s,F=this.e<D.e?this.e:D.e;if($>=F)return null;else return 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],Y)=>{if(!J)return[X,Y];else if(J.overlaps(Y)||J.abutsStart(Y))return[X,J.union(Y)];else return[X.concat([J]),Y]},[[],null]);if(F)$.push(F);return $}static xor(D){let $=null,F=0,X=[],J=D.map((B)=>[{time:B.s,type:"s"},{time:B.e,type:"e"}]),Y=Array.prototype.concat(...J),G=Y.sort((B,H)=>B.time-H.time);for(let B of G)if(F+=B.type==="s"?1:-1,F===1)$=B.time;else{if($&&+$!==+B.time)X.push(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 Q6;return`[${this.s.toISO()} \u2013 ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(D=N4,$={}){return this.isValid?Q0.create(this.s.loc.clone($),D).formatInterval(this):Q6}toISO(D){if(!this.isValid)return Q6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return Q6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return Q6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return Q6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return _D.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return kD.fromDateTimes(D(this.s),D(this.e))}}class K6{static hasDST(D=wD.defaultZone){let $=t.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return f2.isValidZone(D)}static normalizeZone(D){return N8(D,wD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||OD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||OD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||OD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||OD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||OD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||OD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||OD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return OD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return OD.create($,null,"gregory").eras(D)}static features(){return{relative:PA(),localeWeek:LA()}}}function vQ(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 kw(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 _=vQ(H,W);return(_-_%7)/7}],["days",vQ]],J={},Y=D,G,B;for(let[H,W]of X)if(F.indexOf(H)>=0)if(G=H,J[H]=W(D,$),B=Y.plus(J),B>$){if(J[H]--,D=Y.plus(J),D>$)B=D,J[H]--,D=Y.plus(J)}else D=B;return[D,J,B,G]}function vw(D,$,F,X){let[J,Y,G,B]=kw(D,$,F),H=$-J,W=F.filter((U)=>["hours","minutes","seconds","milliseconds"].indexOf(U)>=0);if(W.length===0){if(G<$)G=J.plus({[B]:1});if(G!==J)Y[B]=(Y[B]||0)+H/(G-J)}let _=_D.fromObject(Y,X);if(W.length>0)return _D.fromMillis(H,X).shiftTo(...W).plus(_);else return _}var hw="missing Intl.DateTimeFormat.formatToParts support";function AD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(jT(F))}}var xw=String.fromCharCode(160),cA=`[ ${xw}]`,dA=new RegExp(cA,"g");function gw(D){return D.replace(/\./g,"\\.?").replace(dA,cA)}function hQ(D){return D.replace(/\./g,"").replace(dA," ").toLowerCase()}function O2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(gw).join("|")),deser:([F])=>D.findIndex((X)=>hQ(F)===hQ(X))+$}}function xQ(D,$){return{regex:D,deser:([,F,X])=>T4(F,X),groups:$}}function O4(D){return{regex:D,deser:([$])=>$}}function yw(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function uw(D,$){let F=E2($),X=E2($,"{2}"),J=E2($,"{3}"),Y=E2($,"{4}"),G=E2($,"{6}"),B=E2($,"{1,2}"),H=E2($,"{1,3}"),W=E2($,"{1,6}"),_=E2($,"{1,9}"),U=E2($,"{2,4}"),Q=E2($,"{4,6}"),A=(K)=>({regex:RegExp(yw(K.val)),deser:([R])=>R,literal:!0}),E=((K)=>{if(D.literal)return A(K);switch(K.val){case"G":return O2($.eras("short"),0);case"GG":return O2($.eras("long"),0);case"y":return AD(W);case"yy":return AD(U,tX);case"yyyy":return AD(Y);case"yyyyy":return AD(Q);case"yyyyyy":return AD(G);case"M":return AD(B);case"MM":return AD(X);case"MMM":return O2($.months("short",!0),1);case"MMMM":return O2($.months("long",!0),1);case"L":return AD(B);case"LL":return AD(X);case"LLL":return O2($.months("short",!1),1);case"LLLL":return O2($.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 O4(_);case"uu":return O4(B);case"uuu":return AD(F);case"a":return O2($.meridiems(),0);case"kkkk":return AD(Y);case"kk":return AD(U,tX);case"W":return AD(B);case"WW":return AD(X);case"E":case"c":return AD(F);case"EEE":return O2($.weekdays("short",!1),1);case"EEEE":return O2($.weekdays("long",!1),1);case"ccc":return O2($.weekdays("short",!0),1);case"cccc":return O2($.weekdays("long",!0),1);case"Z":case"ZZ":return xQ(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return xQ(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return O4(/[a-z_+-/]{1,256}?/i);case" ":return O4(/[^\S\n\r]/);default:return A(K)}})(D)||{invalidReason:hw};return E.token=D,E}var mw={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 pw(D,$,F){let{type:X,value:J}=D;if(X==="literal"){let H=/^\s+$/.test(J);return{literal:!H,val:H?" ":J}}let Y=$[X],G=X;if(X==="hour")if($.hour12!=null)G=$.hour12?"hour12":"hour24";else if($.hourCycle!=null)if($.hourCycle==="h11"||$.hourCycle==="h12")G="hour12";else G="hour24";else G=F.hour12?"hour12":"hour24";let B=mw[G];if(typeof B==="object")B=B[Y];if(B)return{literal:!1,val:B};return}function cw(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function dw(D,$,F){let X=D.match($);if(X){let J={},Y=1;for(let G in F)if(R6(F,G)){let B=F[G],H=B.groups?B.groups+1:1;if(!B.literal&&B.token)J[B.token.val[0]]=B.deser(X.slice(Y,Y+H));Y+=H}return[X,J]}else return[X,{}]}function lw(D){let $=(Y)=>{switch(Y){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},F=null,X;if(!a(D.z))F=f2.create(D.z);if(!a(D.Z)){if(!F)F=new A0(D.Z);X=D.Z}if(!a(D.q))D.M=(D.q-1)*3+1;if(!a(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(!a(D.u))D.S=GJ(D.u);return[Object.keys(D).reduce((Y,G)=>{let B=$(G);if(B)Y[B]=D[G];return Y},{}),F,X]}var gX=null;function iw(){if(!gX)gX=t.fromMillis(1555555555555);return gX}function nw(D,$){if(D.literal)return D;let F=Q0.macroTokenToFormatOpts(D.val),X=nA(F,$);if(X==null||X.includes(void 0))return D;return X}function lA(D,$){return Array.prototype.concat(...D.map((F)=>nw(F,$)))}class VJ{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=lA(Q0.parseFormat($),D),this.units=this.tokens.map((F)=>uw(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=cw(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]=dw(D,this.regex,this.handlers),[X,J,Y]=F?lw(F):[null,null,void 0];if(R6(F,"a")&&R6(F,"H"))throw new _1("Can't include meridiem when specifying 24-hour format");return{input:D,tokens:this.tokens,regex:this.regex,rawMatches:$,matches:F,result:X,zone:J,specificOffset:Y}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function iA(D,$,F){return new VJ(D,F).explainFromTokens($)}function sw(D,$,F){let{result:X,zone:J,specificOffset:Y,invalidReason:G}=iA(D,$,F);return[X,J,Y,G]}function nA(D,$){if(!D)return null;let X=Q0.create($,D).dtFormatter(iw()),J=X.formatToParts(),Y=X.resolvedOptions();return J.map((G)=>pw(G,D,Y))}var yX="Invalid DateTime",gQ=8640000000000000;function p3(D){return new u0("unsupported zone",`the zone "${D.name}" is not supported`)}function uX(D){if(D.weekData===null)D.weekData=P4(D.c);return D.weekData}function mX(D){if(D.localWeekData===null)D.localWeekData=P4(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 t({...F,...$,old:F})}function sA(D,$,F){let X=D-$*60*1000,J=F.offset(X);if($===J)return[X,$];X-=(J-$)*60*1000;let Y=F.offset(X);if(J===Y)return[X,J];return[D-Math.min(J,Y)*60*1000,Math.max(J,Y)]}function R4(D,$){D+=$*60*1000;let F=new Date(D);return{year:F.getUTCFullYear(),month:F.getUTCMonth()+1,day:F.getUTCDate(),hour:F.getUTCHours(),minute:F.getUTCMinutes(),second:F.getUTCSeconds(),millisecond:F.getUTCMilliseconds()}}function M4(D,$,F){return sA(I4(D),$,F)}function yQ(D,$){let F=D.o,X=D.c.year+Math.trunc($.years),J=D.c.month+Math.trunc($.months)+Math.trunc($.quarters)*3,Y={...D.c,year:X,month:J,day:Math.min(D.c.day,L4(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},G=_D.fromObject({years:$.years-Math.trunc($.years),quarters:$.quarters-Math.trunc($.quarters),months:$.months-Math.trunc($.months),weeks:$.weeks-Math.trunc($.weeks),days:$.days-Math.trunc($.days),hours:$.hours,minutes:$.minutes,seconds:$.seconds,milliseconds:$.milliseconds}).as("milliseconds"),B=I4(Y),[H,W]=sA(B,F,D.zone);if(G!==0)H+=G,W=D.zone.offset(H);return{ts:H,o:W}}function A6(D,$,F,X,J,Y){let{setZone:G,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=t.fromObject(D,{...F,zone:H,specificOffset:Y});return G?W:W.setZone(B)}else return t.invalid(new u0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function C4(D,$,F=!0){return D.isValid?Q0.create(OD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function pX(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 uQ(D,$,F,X,J,Y,G){let B=!F||D.c.millisecond!==0||D.c.second!==0,H="";switch(G){case"day":case"month":case"year":break;default:if(H+=dD(D.c.hour),G==="hour")break;if($){if(H+=":",H+=dD(D.c.minute),G==="minute")break;if(B)H+=":",H+=dD(D.c.second)}else{if(H+=dD(D.c.minute),G==="minute")break;if(B)H+=dD(D.c.second)}if(G==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=dD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!Y)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(Y)H+="["+D.zone.ianaName+"]";return H}var rA={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},rw={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},aw={ordinal:1,hour:0,minute:0,second:0,millisecond:0},Z4=["year","month","day","hour","minute","second","millisecond"],ow=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],tw=["year","ordinal","hour","minute","second","millisecond"];function q4(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 DJ(D);return $}function mQ(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return q4(D)}}function ew(D){if(c3===void 0)c3=wD.now();if(D.type!=="iana")return D.offset(c3);let $=D.name,F=eX.get($);if(F===void 0)F=D.offset(c3),eX.set($,F);return F}function pQ(D,$){let F=N8($.zone,wD.defaultZone);if(!F.isValid)return t.invalid(p3(F));let X=OD.fromObject($),J,Y;if(!a(D.year)){for(let H of Z4)if(a(D[H]))D[H]=rA[H];let G=qA(D)||NA(D);if(G)return t.invalid(G);let B=ew(F);[J,Y]=M4(D,B,F)}else J=wD.now();return new t({ts:J,zone:F,loc:X,o:Y})}function cQ(D,$,F){let X=a(F.round)?!0:F.round,J=a(F.rounding)?"trunc":F.rounding,Y=(B,H)=>{return B=YJ(B,X||F.calendary?0:2,F.calendary?"round":J),$.loc.clone(F).relFormatter(F).format(B,H)},G=(B)=>{if(F.calendary)if(!$.hasSame(D,B))return $.startOf(B).diff(D.startOf(B),B).get(B);else return 0;else return $.diff(D,B).get(B)};if(F.unit)return Y(G(F.unit),F.unit);for(let B of F.units){let H=G(B);if(Math.abs(H)>=1)return Y(H,B)}return Y(D>$?-0:0,F.units[F.units.length-1])}function dQ(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 c3,eX=new Map;class t{constructor(D){let $=D.zone||wD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new u0("invalid input"):null)||(!$.isValid?p3($):null);this.ts=a(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 G=P8(D.o)&&!D.old?D.o:$.offset(this.ts);X=R4(this.ts,G),F=Number.isNaN(X.year)?new u0("invalid input"):null,X=F?null:X,J=F?null:G}this._zone=$,this.loc=D.loc||OD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new t({})}static local(){let[D,$]=dQ(arguments),[F,X,J,Y,G,B,H]=$;return pQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static utc(){let[D,$]=dQ(arguments),[F,X,J,Y,G,B,H]=$;return D.zone=A0.utcInstance,pQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=ST(D)?D.valueOf():NaN;if(Number.isNaN(F))return t.invalid("invalid input");let X=N8($.zone,wD.defaultZone);if(!X.isValid)return t.invalid(p3(X));return new t({ts:F,zone:X,loc:OD.fromObject($)})}static fromMillis(D,$={}){if(!P8(D))throw new B0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-gQ||D>gQ)return t.invalid("Timestamp out of range");else return new t({ts:D,zone:N8($.zone,wD.defaultZone),loc:OD.fromObject($)})}static fromSeconds(D,$={}){if(!P8(D))throw new B0("fromSeconds requires a numerical input");else return new t({ts:D*1000,zone:N8($.zone,wD.defaultZone),loc:OD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=N8($.zone,wD.defaultZone);if(!F.isValid)return t.invalid(p3(F));let X=OD.fromObject($),J=j4(D,mQ),{minDaysInFirstWeek:Y,startOfWeek:G}=zQ(J,X),B=wD.now(),H=!a($.specificOffset)?$.specificOffset:F.offset(B),W=!a(J.ordinal),_=!a(J.year),U=!a(J.month)||!a(J.day),Q=_||U,A=J.weekYear||J.weekNumber;if((Q||W)&&A)throw new _1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(U&&W)throw new _1("Can't mix ordinal dates with month/day");let O=A||J.weekday&&!Q,E,K,R=R4(B,H);if(O)E=ow,K=rw,R=P4(R,Y,G);else if(W)E=tw,K=aw,R=xX(R);else E=Z4,K=rA;let q=!1;for(let s of E){let QD=J[s];if(!a(QD))q=!0;else if(q)J[s]=K[s];else J[s]=R[s]}let N=O?IT(J,Y,G):W?TT(J):qA(J),b=N||NA(J);if(b)return t.invalid(b);let T=O?LQ(J,Y,G):W?jQ(J):J,[L,w]=M4(T,H,F),z=new t({ts:L,zone:F,o:w,loc:X});if(J.weekday&&Q&&D.weekday!==z.weekday)return t.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${z.toISO()}`);if(!z.isValid)return t.invalid(z.invalid);return z}static fromISO(D,$={}){let[F,X]=Mw(D);return A6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=Zw(D);return A6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=qw(D);return A6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(a(D)||a($))throw new B0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,Y=OD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[G,B,H,W]=sw(Y,D,$);if(W)return t.invalid(W);else return A6(G,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return t.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=Tw(D);return A6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new B0("need to specify a reason the DateTime is invalid");let F=D instanceof u0?D:new u0(D,$);if(wD.throwOnInvalid)throw new lQ(F);else return new t({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=nA(D,OD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return lA(Q0.parseFormat(D),OD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){c3=void 0,eX.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?uX(this).weekYear:NaN}get weekNumber(){return this.isValid?uX(this).weekNumber:NaN}get weekday(){return this.isValid?uX(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?mX(this).weekday:NaN}get localWeekNumber(){return this.isValid?mX(this).weekNumber:NaN}get localWeekYear(){return this.isValid?mX(this).weekYear:NaN}get ordinal(){return this.isValid?xX(this.c).ordinal:NaN}get monthShort(){return this.isValid?K6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?K6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?K6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?K6.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=I4(this.c),X=this.zone.offset(F-D),J=this.zone.offset(F+D),Y=this.zone.offset(F-X*$),G=this.zone.offset(F-J*$);if(Y===G)return[this];let B=F-Y*$,H=F-G*$,W=R4(B,Y),_=R4(H,G);if(W.hour===_.hour&&W.minute===_.minute&&W.second===_.second&&W.millisecond===_.millisecond)return[V1(this,{ts:B}),V1(this,{ts:H})];return[this]}get isInLeapYear(){return n3(this.year)}get daysInMonth(){return L4(this.year,this.month)}get daysInYear(){return this.isValid?E6(this.year):NaN}get weeksInWeekYear(){return this.isValid?l3(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?l3(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=Q0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(A0.instance(D),$)}toLocal(){return this.setZone(wD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=N8(D,wD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return t.invalid(p3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),Y=this.toObject();[X]=M4(Y,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 $=j4(D,mQ),{minDaysInFirstWeek:F,startOfWeek:X}=zQ($,this.loc),J=!a($.weekYear)||!a($.weekNumber)||!a($.weekday),Y=!a($.ordinal),G=!a($.year),B=!a($.month)||!a($.day),H=G||B,W=$.weekYear||$.weekNumber;if((H||Y)&&W)throw new _1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&Y)throw new _1("Can't mix ordinal dates with month/day");let _;if(J)_=LQ({...P4(this.c,F,X),...$},F,X);else if(!a($.ordinal))_=jQ({...xX(this.c),...$});else if(_={...this.toObject(),...$},a($.day))_.day=Math.min(L4(_.year,_.month),_.day);let[U,Q]=M4(_,this.o,this.zone);return V1(this,{ts:U,o:Q})}plus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D);return V1(this,yQ(this,$))}minus(D){if(!this.isValid)return this;let $=_D.fromDurationLike(D).negate();return V1(this,yQ(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=_D.normalizeUnit(D);switch(X){case"years":F.month=1;case"quarters":case"months":F.day=1;case"weeks":case"days":F.hour=0;case"hours":F.minute=0;case"minutes":F.second=0;case"seconds":F.millisecond=0;break}if(X==="weeks")if($){let J=this.loc.getStartOfWeek(),{weekday:Y}=this;if(Y<J)F.weekNumber=this.weekNumber-1;F.weekday=J}else F.weekday=1;if(X==="quarters"){let J=Math.ceil(this.month/3);F.month=(J-1)*3+1}return this.set(F)}endOf(D,$){return this.isValid?this.plus({[D]:1}).startOf(D,$).minus(1):this}toFormat(D,$={}){return this.isValid?Q0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):yX}toLocaleString(D=N4,$={}){return this.isValid?Q0.create(this.loc.clone($),D).formatDateTime(this):yX}toLocaleParts(D={}){return this.isValid?Q0.create(this.loc.clone(D),D).formatDateTimeParts(this):[]}toISO({format:D="extended",suppressSeconds:$=!1,suppressMilliseconds:F=!1,includeOffset:X=!0,extendedZone:J=!1,precision:Y="milliseconds"}={}){if(!this.isValid)return null;Y=q4(Y);let G=D==="extended",B=pX(this,G,Y);if(Z4.indexOf(Y)>=3)B+="T";return B+=uQ(this,G,$,F,X,J,Y),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return pX(this,D==="extended",q4($))}toISOWeekDate(){return C4(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:D=!1,suppressSeconds:$=!1,includeOffset:F=!0,includePrefix:X=!1,extendedZone:J=!1,format:Y="extended",precision:G="milliseconds"}={}){if(!this.isValid)return null;return G=q4(G),(X&&Z4.indexOf(G)>=3?"T":"")+uQ(this,Y==="extended",$,D,F,J,G)}toRFC2822(){return C4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return C4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return pX(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 C4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():yX}[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=bT($).map(_D.normalizeUnit),Y=D.valueOf()>this.valueOf(),G=Y?this:D,B=Y?D:this,H=vw(G,B,J,X);return Y?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(t.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||t.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 cQ($,this.plus(F),{...D,numeric:"always",units:X,unit:J})}toRelativeCalendar(D={}){if(!this.isValid)return null;return cQ(D.base||t.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(t.isDateTime))throw new B0("min requires all arguments be DateTimes");return IQ(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(t.isDateTime))throw new B0("max requires all arguments be DateTimes");return IQ(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,Y=OD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return iA(Y,D,$)}static fromStringExplain(D,$,F={}){return t.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=OD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new VJ(J,D)}static fromFormatParser(D,$,F={}){if(a(D)||a($))throw new B0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,Y=OD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!Y.equals($.locale))throw new B0(`fromFormatParser called with a locale of ${Y}, but the format parser was created for ${$.locale}`);let{result:G,zone:B,specificOffset:H,invalidReason:W}=$.explainFromTokens(D);if(W)return t.invalid(W);else return A6(G,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return N4}static get DATE_MED(){return sQ}static get DATE_MED_WITH_WEEKDAY(){return WT}static get DATE_FULL(){return rQ}static get DATE_HUGE(){return aQ}static get TIME_SIMPLE(){return oQ}static get TIME_WITH_SECONDS(){return tQ}static get TIME_WITH_SHORT_OFFSET(){return eQ}static get TIME_WITH_LONG_OFFSET(){return DA}static get TIME_24_SIMPLE(){return $A}static get TIME_24_WITH_SECONDS(){return FA}static get TIME_24_WITH_SHORT_OFFSET(){return XA}static get TIME_24_WITH_LONG_OFFSET(){return JA}static get DATETIME_SHORT(){return GA}static get DATETIME_SHORT_WITH_SECONDS(){return YA}static get DATETIME_MED(){return BA}static get DATETIME_MED_WITH_SECONDS(){return HA}static get DATETIME_MED_WITH_WEEKDAY(){return VT}static get DATETIME_FULL(){return WA}static get DATETIME_FULL_WITH_SECONDS(){return VA}static get DATETIME_HUGE(){return _A}static get DATETIME_HUGE_WITH_SECONDS(){return UA}}function u3(D){if(t.isDateTime(D))return D;else if(D&&D.valueOf&&P8(D.valueOf()))return t.fromJSDate(D);else if(D&&typeof D==="object")return t.fromObject(D);else throw new B0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var DS="3.7.2";aA.DateTime=t;aA.Duration=_D;aA.FixedOffsetZone=A0;aA.IANAZone=f2;aA.Info=K6;aA.Interval=kD;aA.InvalidZone=$J;aA.Settings=wD;aA.SystemZone=i3;aA.VERSION=DS;aA.Zone=Q1});var b4=f((tA)=>{Object.defineProperty(tA,"__esModule",{value:!0});tA.CronDate=tA.DAYS_IN_MONTH=tA.DateMathOp=tA.TimeUnit=void 0;var A1=oA(),K0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(K0||(tA.TimeUnit=K0={}));var S4;(function(D){D.Add="Add",D.Subtract="Subtract"})(S4||(tA.DateMathOp=S4={}));tA.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class N6{#D;#$=null;#X=null;#G={add:{[K0.Year]:this.addYear.bind(this),[K0.Month]:this.addMonth.bind(this),[K0.Day]:this.addDay.bind(this),[K0.Hour]:this.addHour.bind(this),[K0.Minute]:this.addMinute.bind(this),[K0.Second]:this.addSecond.bind(this)},subtract:{[K0.Year]:this.subtractYear.bind(this),[K0.Month]:this.subtractMonth.bind(this),[K0.Day]:this.subtractDay.bind(this),[K0.Hour]:this.subtractHour.bind(this),[K0.Minute]:this.subtractMinute.bind(this),[K0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=A1.DateTime.local();else if(D instanceof N6)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.#G.add[D]()}subtractUnit(D){this.#G.subtract[D]()}invokeDateOperation(D,$){if(D===S4.Add){this.addUnit($);return}if(D===S4.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=N6.#J(this.#D.year);return D===tA.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===tA.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=tA.DAYS_IN_MONTH[$-1]-(N6.#J(this.#D.year)?0:1);else F=tA.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===K0.Month||$===K0.Day){this.invokeDateOperation(D,$);return}let X=this.getHours();this.invokeDateOperation(D,$);let J=this.getHours(),Y=J-X;if(Y===2){if(F!==24)this.dstStart=J}else if(Y===0&&this.getMinutes()===0&&this.getSeconds()===0){if(F!==24)this.dstEnd=J}}#F(){return this.#D.toUTC()}}tA.CronDate=N6;tA.default=N6});var XK=f(($K)=>{Object.defineProperty($K,"__esModule",{value:!0});$K.CronMonth=void 0;var KS=b4(),ES=Z8(),OS=1,RS=12,CS=Object.freeze([]);class DK extends ES.CronField{static get min(){return OS}static get max(){return RS}static get chars(){return CS}static get daysInMonth(){return KS.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}$K.CronMonth=DK});var BK=f((GK)=>{Object.defineProperty(GK,"__esModule",{value:!0});GK.CronSecond=void 0;var MS=Z8(),ZS=0,qS=59,NS=Object.freeze([]);class JK extends MS.CronField{static get min(){return ZS}static get max(){return qS}static get chars(){return NS}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}GK.CronSecond=JK});var f4=f((q0)=>{var PS=q0&&q0.__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]}),j8=q0&&q0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))PS($,D,F)};Object.defineProperty(q0,"__esModule",{value:!0});j8(aU(),q0);j8(FQ(),q0);j8(YQ(),q0);j8(Z8(),q0);j8(VQ(),q0);j8(AQ(),q0);j8(XK(),q0);j8(BK(),q0)});var _J=f((HK)=>{Object.defineProperty(HK,"__esModule",{value:!0});HK.CronFieldCollection=void 0;var c0=f4();class P6{#D;#$;#X;#G;#J;#F;static from(D,$){return new P6({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:Y}){if(!D)throw Error("Validation error, Field second is missing");if(!$)throw Error("Validation error, Field minute is missing");if(!F)throw Error("Validation error, Field hour is missing");if(!X)throw Error("Validation error, Field dayOfMonth is missing");if(!J)throw Error("Validation error, Field month is missing");if(!Y)throw Error("Validation error, Field dayOfWeek is missing");if(J.values.length===1&&!X.hasLastChar){if(!(parseInt(X.values[0],10)<=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=Y,this.#G=X}get second(){return this.#D}get minute(){return this.#$}get hour(){return this.#X}get dayOfMonth(){return this.#G}get month(){return this.#J}get dayOfWeek(){return this.#F}static compactField(D){if(D.length===0)return[];let $=[],F=void 0;if(D.forEach((X,J,Y)=>{if(F===void 0){F={start:X,count:1};return}let G=Y[J-1]||F.start,B=Y[J+1];if(X==="L"||X==="W"){$.push(F),$.push({start:X,count:1}),F=void 0;return}if(F.step===void 0&&B!==void 0){let H=X-G,W=B-X;if(H<=W){F={...F,count:2,end:X,step:H};return}F.step=1}if(X-(F.end??0)===F.step)F.count++,F.end=X;else{if(F.count===1)$.push({start:F.start,count:1});else if(F.count===2)$.push({start:F.start,count:1}),$.push({start:F.end??G,count:1});else $.push(F);F={start:X,count:1}}}),F)$.push(F);return $}static#W(D,$,F){let X=$.step;if(!X)return null;if(X===1&&$.start===D.min&&$.end&&$.end>=F)return D.hasQuestionMarkChar?"?":"*";if(X!==1&&$.start===D.min&&$.end&&$.end>=F-X+1)return`*/${X}`;return null}static#H(D,$){let F=D.step;if(F===1)return`${D.start}-${D.end}`;let X=D.start===0?D.count-1:D.count;if(!F)throw Error("Unexpected range step");if(!D.end)throw Error("Unexpected range end");if(F*X>D.end){let J=(G,B)=>{if(typeof D.start!=="number")throw Error("Unexpected range start");return B%F===0?D.start+B:null};if(typeof D.start!=="number")throw Error("Unexpected range start");let Y={length:D.end-D.start+1};return Array.from(Y,J).filter((G)=>G!==null).join(",")}return D.end===$-F+1?`${D.start}/${F}`:`${D.start}-${D.end}/${F}`}stringifyField(D){let{max:$,values:F}=D;if(D instanceof 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=P6.compactField(F);if(X.length===1){let J=P6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let Y=J.count===1?J.start.toString():P6.#H(J,$);if(D instanceof c0.CronDayOfWeek&&D.nthDay>0)return`${Y}#${D.nthDay}`;return Y}).join(",")}stringify(D=!1){let $=[];if(D)$.push(this.stringifyField(this.#D));return $.push(this.stringifyField(this.#$),this.stringifyField(this.#X),this.stringifyField(this.#G),this.stringifyField(this.#J),this.stringifyField(this.#F)),$.join(" ")}serialize(){return{second:this.#D.serialize(),minute:this.#$.serialize(),hour:this.#X.serialize(),dayOfMonth:this.#G.serialize(),month:this.#J.serialize(),dayOfWeek:this.#F.serialize()}}}HK.CronFieldCollection=P6});var QJ=f((_K)=>{Object.defineProperty(_K,"__esModule",{value:!0});_K.CronExpression=_K.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=_K.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var gD=b4();_K.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";_K.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var VK=1e4;class d0{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.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.#G&&X.getTime()<this.#G.getTime())F=this.#G;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)}#Y(D,$){return D[$?D.length-1:0]}#_(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}#U(D,$,F){let X=this.#F.second.values,J=D.getSeconds(),Y=this.#F.second.findNearestValue(J,F);if(Y!==null){D.setSeconds(Y);return}D.applyDateOperation($,gD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#V(D,$,F){let X=this.#F.minute.values,J=this.#F.second.values,Y=D.getMinutes(),G=this.#F.minute.findNearestValue(Y,F);if(G!==null){D.setMinutes(G),D.setSeconds(this.#Y(J,F));return}D.applyDateOperation($,gD.TimeUnit.Hour,this.#F.hour.values.length),D.setMinutes(this.#Y(X,F)),D.setSeconds(this.#Y(J,F))}static#K(D,$){let F=$.isLastWeekdayOfMonth();return D.some((X)=>{let J=parseInt(X.toString().charAt(0),10)%7;if(Number.isNaN(J))throw Error(`Invalid last weekday of the month expression: ${X}`);return $.getDay()===J&&F})}next(){return this.#Q()}prev(){return this.#Q(!0)}hasNext(){let D=this.#X;try{return this.#Q(),!0}catch{return!1}finally{this.#X=D}}hasPrev(){let D=this.#X;try{return this.#Q(!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,Y=new gD.CronDate(D,this.#$);if(!$.values.includes(Y.getSeconds())||!F.values.includes(Y.getMinutes())||!X.values.includes(Y.getHours())||!J.values.includes(Y.getMonth()+1))return!1;if(!this.#A(Y))return!1;if(this.#F.dayOfWeek.nthDay>0){if(Math.ceil(Y.getDate()/7)!==this.#F.dayOfWeek.nthDay)return!1}return!0}toString(){return this.#D.expression||this.stringify(!0)}#A(D){let $=this.#F.dayOfMonth.isWildcard,F=!$,X=this.#F.dayOfWeek.isWildcard,J=!X,Y=d0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),G=d0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&d0.#K(this.#F.dayOfWeek.values,D);if(F&&J&&(Y||G))return!0;if(Y&&!J)return!0;if($&&!X&&G)return!0;return!1}#E(D,$,F){let X=this.#F.hour.values,J=X,Y=D.getHours(),G=d0.#B(Y,X),B=D.dstStart===Y,H=D.dstEnd===Y;if(B){if(d0.#B(Y-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(G)return!0;D.dstStart=null;let W=this.#F.hour.findNearestValue(Y,F);if(W===null)return D.applyDateOperation($,gD.TimeUnit.Day,J.length),!1;if(this.#_(D)){let _=F?Y-W:W-Y;for(let U=0;U<_;U++)D.applyDateOperation($,gD.TimeUnit.Hour,J.length)}else D.setHours(W);return D.setMinutes(this.#Y(this.#F.minute.values,F)),D.setSeconds(this.#Y(this.#F.second.values,F)),!1}#O(D){if(!this.#G&&!this.#J)return;let $=D.getTime();if(this.#G&&$<this.#G.getTime())throw Error(_K.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(_K.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#Q(D=!1){let $=D?gD.DateMathOp.Subtract:gD.DateMathOp.Add,F=new gD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<VK){if(this.#O(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.#E(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.#U(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>VK)throw Error(_K.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE);if(F.getMilliseconds()!==0)F.setMilliseconds(0);return this.#X=F,F}[Symbol.iterator](){return{next:()=>{return{value:this.#Q(),done:!this.hasNext()}}}}}_K.CronExpression=d0;_K.default=d0});var KK=f((AK)=>{Object.defineProperty(AK,"__esModule",{value:!0});AK.seededRandom=IS;function jS(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function zS(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function IS(D){let $=D?jS(D)():Math.floor(Math.random()*10000000000);return zS($)}});var k4=f((EK)=>{Object.defineProperty(EK,"__esModule",{value:!0});EK.CronExpressionParser=EK.DayOfWeek=EK.Months=EK.CronUnit=EK.PredefinedExpressions=void 0;var wS=_J(),SS=QJ(),bS=KK(),l0=f4(),AJ;(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"})(AJ||(EK.PredefinedExpressions=AJ={}));var i0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(i0||(EK.CronUnit=i0={}));var KJ;(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"})(KJ||(EK.Months=KJ={}));var EJ;(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"})(EJ||(EK.DayOfWeek=EJ={}));class N0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,bS.seededRandom)(X);D=AJ[D]||D;let Y=N0.#D(D,F);if(!(Y.dayOfMonth==="*"||Y.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let G=N0.#$(i0.Second,Y.second,l0.CronSecond.constraints,J),B=N0.#$(i0.Minute,Y.minute,l0.CronMinute.constraints,J),H=N0.#$(i0.Hour,Y.hour,l0.CronHour.constraints,J),W=N0.#$(i0.Month,Y.month,l0.CronMonth.constraints,J),_=N0.#$(i0.DayOfMonth,Y.dayOfMonth,l0.CronDayOfMonth.constraints,J),{dayOfWeek:U,nthDayOfWeek:Q}=N0.#_(Y.dayOfWeek),A=N0.#$(i0.DayOfWeek,U,l0.CronDayOfWeek.constraints,J),O=new wS.CronFieldCollection({second:new l0.CronSecond(G,{rawValue:Y.second}),minute:new l0.CronMinute(B,{rawValue:Y.minute}),hour:new l0.CronHour(H,{rawValue:Y.hour}),dayOfMonth:new l0.CronDayOfMonth(_,{rawValue:Y.dayOfMonth}),month:new l0.CronMonth(W,{rawValue:Y.month}),dayOfWeek:new l0.CronDayOfWeek(A,{rawValue:Y.dayOfWeek,nthDayOfWeek:Q})});return new SS.CronExpression(O,{...$,expression:D})}static#D(D,$){if($&&!D.length)throw Error("Invalid cron expression");D=D||"0 * * * * *";let F=D.trim().split(/\s+/);if($&&F.length<6)throw Error("Invalid cron expression, expected 6 fields");if(F.length>6)throw Error("Invalid cron expression, too many fields");let X=["*","*","*","*","*","0"];if(F.length<X.length)F.unshift(...X.slice(F.length));let[J,Y,G,B,H,W]=F;return{second:J,minute:Y,hour:G,dayOfMonth:B,month:H,dayOfWeek:W}}static#$(D,$,F,X){if(D===i0.Month||D===i0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let Y=KJ[J]||EJ[J];if(Y===void 0)throw Error(`Validation error, cannot resolve alias "${J}"`);return Y.toString()});if(!F.validChars.test($))throw Error(`Invalid characters, got value: ${$}`);return $=this.#X($,F),$=this.#G($,F,X),this.#J(D,$,F)}static#X(D,$){return D.replace(/[*?]/g,$.min+"-"+$.max)}static#G(D,$,F){let X=F();return D.replace(/H(?:\((\d+)-(\d+)\))?(?:\/(\d+))?/g,(J,Y,G,B)=>{if(Y&&G&&B){let H=parseInt(Y,10),W=parseInt(G,10),_=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(_<=0)throw Error(`Invalid step: ${_}, must be positive`);let U=Math.max(H,$.min),Q=Math.floor(X*_),A=[];for(let O=Math.floor(U/_)*_+Q;O<=W;O+=_)if(O>=U)A.push(O);return A.join(",")}else if(Y&&G){let H=parseInt(Y,10),W=parseInt(G,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);return String(Math.floor(X*(W-H+1))+H)}else if(B){let H=parseInt(B,10);if(H<=0)throw Error(`Invalid step: ${H}, must be positive`);let W=Math.floor(X*H),_=[];for(let U=Math.floor($.min/H)*H+W;U<=$.max;U+=H)if(U>=$.min)_.push(U);return _.join(",")}else return String(Math.floor(X*($.max-$.min+1)+$.min))})}static#J(D,$,F){let X=[];function J(G,B){if(Array.isArray(G))X.push(...G);else if(N0.#U(B,G))X.push(G);else{let H=parseInt(G.toString(),10);if(!(H>=B.min&&H<=B.max))throw Error(`Constraint error, got value ${G} expected range ${B.min}-${B.max}`);X.push(D===i0.DayOfWeek?H%7:G)}}return $.split(",").forEach((G)=>{if(!(G.length>0))throw Error("Invalid list value format");J(N0.#F(D,G,F),F)}),X}static#F(D,$,F){let X=$.split("/");if(X.length>2)throw Error(`Invalid repeat: ${$}`);if(X.length===2){if(!isNaN(parseInt(X[0],10)))X[0]=`${X[0]}-${F.max}`;return N0.#Y(D,X[0],parseInt(X[1],10),F)}return N0.#Y(D,$,1,F)}static#W(D,$,F){if(!(!isNaN(D)&&!isNaN($)&&D>=F.min&&$<=F.max))throw Error(`Constraint error, got range ${D}-${$} expected range ${F.min}-${F.max}`);if(D>$)throw Error(`Invalid range: ${D}-${$}, min(${D}) > max(${$})`)}static#H(D){if(!(!isNaN(D)&&D>0))throw Error(`Constraint error, cannot repeat at every ${D} time.`)}static#B(D,$,F,X){let J=[];if(D===i0.DayOfWeek&&F%7===0)J.push(0);for(let Y=$;Y<=F;Y+=X)if(J.indexOf(Y)===-1)J.push(Y);return J}static#Y(D,$,F,X){let J=$.split("-");if(J.length<=1)return isNaN(+$)?$:+$;let[Y,G]=J.map((B)=>parseInt(B,10));return this.#W(Y,G,X),this.#H(F),this.#B(D,Y,G,F)}static#_(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#U(D,$){return D.chars.some((F)=>$.toString().includes(F))}}EK.CronExpressionParser=N0});var RK=f((k2)=>{var xS=k2&&k2.__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]}),gS=k2&&k2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),yS=k2&&k2.__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")xS(F,$,X[J])}return gS(F,$),F}}();Object.defineProperty(k2,"__esModule",{value:!0});k2.CronFileParser=void 0;var uS=k4();class o3{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>yS(X8("fs/promises"))),F=await $(D,"utf8");return o3.#D(F)}static parseFileSync(D){let{readFileSync:$}=X8("fs"),F=$(D,"utf8");return o3.#D(F)}static#D(D){let $=D.split(`
|
|
115
|
+
`),F={variables:{},expressions:[],errors:{}};for(let X of $){let J=X.trim();if(J.length===0||J.startsWith("#"))continue;let Y=J.match(/^(.*)=(.*)$/);if(Y){let[,G,B]=Y;F.variables[G]=B.replace(/["']/g,"");continue}try{let G=o3.#$(J);F.expressions.push(G.interval)}catch(G){F.errors[J]=G}}return F}static#$(D){let $=D.split(" ");return{interval:uS.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}k2.CronFileParser=o3});var CK=f(($0)=>{var mS=$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]}),pS=$0&&$0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))mS($,D,F)};Object.defineProperty($0,"__esModule",{value:!0});$0.CronFileParser=$0.CronExpressionParser=$0.CronExpression=$0.CronFieldCollection=$0.CronDate=void 0;var cS=k4(),dS=b4();Object.defineProperty($0,"CronDate",{enumerable:!0,get:function(){return dS.CronDate}});var lS=_J();Object.defineProperty($0,"CronFieldCollection",{enumerable:!0,get:function(){return lS.CronFieldCollection}});var iS=QJ();Object.defineProperty($0,"CronExpression",{enumerable:!0,get:function(){return iS.CronExpression}});var nS=k4();Object.defineProperty($0,"CronExpressionParser",{enumerable:!0,get:function(){return nS.CronExpressionParser}});var sS=RK();Object.defineProperty($0,"CronFileParser",{enumerable:!0,get:function(){return sS.CronFileParser}});pS(f4(),$0);$0.default=cS.CronExpressionParser});class t3{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=rS){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 $=v4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,Y=D.accountId??aS;if(Y.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");let G={id:F,expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,accountId:Y,enabled:J,lastRunAt:null,nextRunAt:J?$.toISOString():null,createdAt:X,updatedAt:X};u().insert(ND).values(G).run();let B=u().select().from(ND).where(v(ND.id,F)).get();return h4(B)}async listJobs(){return u().select().from(ND).all().map(h4)}async getJob(D){let $=u().select().from(ND).where(v(ND.id,D)).get();return $?h4($):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)v4($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let G=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=G?v4(B,new Date).toISOString():null}u().update(ND).set(X).where(v(ND.id,D)).run();let Y=u().select().from(ND).where(v(ND.id,D)).get();return h4(Y)}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),k7(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=v4(D.expression,$).toISOString()}catch(Y){C.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(Y)}`)}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(Y){C.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(Y)}`)}}}function v4(D,$){return MK.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function h4(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 MK,rS=60000,aS="sys:cron";var OJ=Z(()=>{TD();JD();_0();MK=uZ(CK(),1)});class e3{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 RJ=Z(()=>{JD()});import NK from"fs/promises";import oS from"os";import n0 from"path";import x4 from"process";function LK(D=PK){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),_=await D.resolveBinary(H.binaryName),U={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)U.agent=H.agent;if(!_)return{...U,authHint:"binary-not-on-path"};let Q=D.homedir();for(let A of H.authPaths(Q))if(await D.pathExists(A))return{...U,status:"ready",binaryPath:_,authHint:"auth-file-present"};return{...U,status:"login-required",binaryPath:_,authHint:"auth-file-missing"}}async function X(H,W){let _=$.get(H.key);if(!W&&_&&_.expiresAt>D.now())return _.value;let U=await F(H);return $.set(H.key,{value:U,expiresAt:D.now()+tS}),U}function J(H){return{kind:H,status:"ready",checkedAt:new Date(D.now()).toISOString(),authHint:"no-cli-required"}}async function Y(H={}){let W=H.refresh??!1,_=[];for(let U of ZK)_.push(J(U));for(let U of qK)_.push(await X(U,W));return _}async function G(H,W={}){let _=W.refresh??!1;if(ZK.includes(H))return J(H);let U=qK.filter((A)=>A.kind===H);if(U.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let Q=W.agent?U.find((A)=>A.agent===W.agent)??U[0]:U[0];return X(Q,_)}function B(){$.clear()}return{probe:G,probeAll:Y,clearCache:B}}function g4(){if(!D9)D9=LK();return D9}function jK(D){return D9=LK(D),D9}function CJ(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 zK(D,$=PK){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=n0.join(F,X,"oauth_creds.json"),Y=n0.join(F,X,"settings.json");if(await $.pathExists(J))return CJ("login","oauth_creds.json present");if(await $.pathExists(Y))return CJ("install","settings.json present, login pending");return CJ("none",`~/${X} not present`)}function IK(){return zK("gemini")}function TK(){return zK("qwen")}async function eS(D){let $=x4.env.PATH??"",F=x4.platform==="win32"?";":":",X=x4.platform==="win32"?(x4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=n0.join(J,`${D}${Y.toLowerCase()}`);try{if((await NK.stat(G)).isFile())return G}catch{}}}return null}async function Db(D){try{return await NK.stat(D),!0}catch{return!1}}var tS=600000,PK,ZK,qK,D9=null;var y4=Z(()=>{PK={resolveBinary:eS,pathExists:Db,homedir:()=>oS.homedir(),now:()=>Date.now()},ZK=["http","mcp","cli"],qK=[{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 MJ{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!==$b){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}:{}},Y={type:"connect",role:n8.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(Y))}catch(G){C.warn(`[gateway-client ${$}] connect frame send failed: ${String(G)}`);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),Y=s8(J);if(!Y.ok){C.warn(`[gateway-client ${$}] drop malformed frame: ${Y.error}`);return}let G=Y.frame;if(G.type==="event"&&G.name===o.ENROLLMENT_OTP){let B=Q7.safeParse(G.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(G.type==="event"&&G.name===o.ENROLLMENT_APPROVED){let B=A7.safeParse(G.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(G)}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 $b=1;var wK=Z(()=>{J0();JD()});function SK(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((Wb)=>{var ZJ=Symbol.for("yaml.alias"),bK=Symbol.for("yaml.document"),u4=Symbol.for("yaml.map"),fK=Symbol.for("yaml.pair"),qJ=Symbol.for("yaml.scalar"),m4=Symbol.for("yaml.seq"),D8=Symbol.for("yaml.node.type"),Fb=(D)=>!!D&&typeof D==="object"&&D[D8]===ZJ,Xb=(D)=>!!D&&typeof D==="object"&&D[D8]===bK,Jb=(D)=>!!D&&typeof D==="object"&&D[D8]===u4,Gb=(D)=>!!D&&typeof D==="object"&&D[D8]===fK,kK=(D)=>!!D&&typeof D==="object"&&D[D8]===qJ,Yb=(D)=>!!D&&typeof D==="object"&&D[D8]===m4;function vK(D){if(D&&typeof D==="object")switch(D[D8]){case u4:case m4:return!0}return!1}function Bb(D){if(D&&typeof D==="object")switch(D[D8]){case ZJ:case u4:case qJ:case m4:return!0}return!1}var Hb=(D)=>(kK(D)||vK(D))&&!!D.anchor;Wb.ALIAS=ZJ;Wb.DOC=bK;Wb.MAP=u4;Wb.NODE_TYPE=D8;Wb.PAIR=fK;Wb.SCALAR=qJ;Wb.SEQ=m4;Wb.hasAnchor=Hb;Wb.isAlias=Fb;Wb.isCollection=vK;Wb.isDocument=Xb;Wb.isMap=Jb;Wb.isNode=Bb;Wb.isPair=Gb;Wb.isScalar=kK;Wb.isSeq=Yb});var $9=f((jb)=>{var sD=UD(),P0=Symbol("break visit"),hK=Symbol("skip children"),v2=Symbol("remove node");function p4(D,$){let F=xK($);if(sD.isDocument(D)){if(L6(null,D.contents,F,Object.freeze([D]))===v2)D.contents=null}else L6(null,D,F,Object.freeze([]))}p4.BREAK=P0;p4.SKIP=hK;p4.REMOVE=v2;function L6(D,$,F,X){let J=gK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return yK(D,X,J),L6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=L6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===P0)return P0;else if(G===v2)$.items.splice(Y,1),Y-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let Y=L6("key",$.key,F,X);if(Y===P0)return P0;else if(Y===v2)$.key=null;let G=L6("value",$.value,F,X);if(G===P0)return P0;else if(G===v2)$.value=null}}return J}async function c4(D,$){let F=xK($);if(sD.isDocument(D)){if(await j6(null,D.contents,F,Object.freeze([D]))===v2)D.contents=null}else await j6(null,D,F,Object.freeze([]))}c4.BREAK=P0;c4.SKIP=hK;c4.REMOVE=v2;async function j6(D,$,F,X){let J=await gK(D,$,F,X);if(sD.isNode(J)||sD.isPair(J))return yK(D,X,J),j6(D,J,F,X);if(typeof J!=="symbol"){if(sD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=await j6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===P0)return P0;else if(G===v2)$.items.splice(Y,1),Y-=1}}else if(sD.isPair($)){X=Object.freeze(X.concat($));let Y=await j6("key",$.key,F,X);if(Y===P0)return P0;else if(Y===v2)$.key=null;let G=await j6("value",$.value,F,X);if(G===P0)return P0;else if(G===v2)$.value=null}}return J}function xK(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 gK(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 yK(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`)}}jb.visit=p4;jb.visitAsync=c4});var NJ=f((bb)=>{var uK=UD(),Tb=$9(),wb={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},Sb=(D)=>D.replace(/[!,[\]{}]/g,($)=>wb[$]);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,Y]=F;return this.tags[J]=Y,!0}case"%YAML":{if(this.yaml.explicit=!0,F.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[J]=F;if(J==="1.1"||J==="1.2")return this.yaml.version=J,!0;else{let Y=/^\d+\.\d+$/.test(J);return $(6,`Unsupported YAML version ${J}`,Y),!1}}default:return $(0,`Unknown directive ${X}`,!0),!1}}tagName(D,$){if(D==="!")return"!";if(D[0]!=="!")return $(`Not a valid tag: ${D}`),null;if(D[1]==="<"){let Y=D.slice(2,-1);if(Y==="!"||Y==="!!")return $(`Verbatim tags aren't resolved, so ${D} is invalid.`),null;if(D[D.length-1]!==">")$("Verbatim tags must end with a >");return Y}let[,F,X]=D.match(/^(.*!)([^!]*)$/s);if(!X)$(`The ${D} tag has no suffix`);let J=this.tags[F];if(J)try{return J+decodeURIComponent(X)}catch(Y){return $(String(Y)),null}if(F==="!")return D;return $(`Could not resolve tag: ${D}`),null}tagString(D){for(let[$,F]of Object.entries(this.tags))if(D.startsWith(F))return $+Sb(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&&uK.isNode(D.contents)){let J={};Tb.visit(D.contents,(Y,G)=>{if(uK.isNode(G)&&G.tag)J[G.tag]=!0}),X=Object.keys(J)}else X=[];for(let[J,Y]of F){if(J==="!!"&&Y==="tag:yaml.org,2002:")continue;if(!D||X.some((G)=>G.startsWith(Y)))$.push(`%TAG ${J} ${Y}`)}return $.join(`
|
|
116
|
+
`)}}s0.defaultYaml={explicit:!1,version:"1.2"};s0.defaultTags={"!!":"tag:yaml.org,2002:"};bb.Directives=s0});var d4=f((xb)=>{var mK=UD(),kb=$9();function vb(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 pK(D){let $=new Set;return kb.visit(D,{Value(F,X){if(X.anchor)$.add(X.anchor)}}),$}function cK(D,$){for(let F=1;;++F){let X=`${D}${F}`;if(!$.has(X))return X}}function hb(D,$){let F=[],X=new Map,J=null;return{onAnchor:(Y)=>{F.push(Y),J??(J=pK(D));let G=cK($,J);return J.add(G),G},setAnchors:()=>{for(let Y of F){let G=X.get(Y);if(typeof G==="object"&&G.anchor&&(mK.isScalar(G.node)||mK.isCollection(G.node)))G.node.anchor=G.anchor;else{let B=Error("Failed to resolve repeated object (this should not happen)");throw B.source=Y,B}}},sourceObjects:X}}xb.anchorIsValid=vb;xb.anchorNames=pK;xb.createNodeAnchors=hb;xb.findNewAnchor=cK});var PJ=f((pb)=>{function F9(D,$,F,X){if(X&&typeof X==="object")if(Array.isArray(X))for(let J=0,Y=X.length;J<Y;++J){let G=X[J],B=F9(D,X,String(J),G);if(B===void 0)delete X[J];else if(B!==G)X[J]=B}else if(X instanceof Map)for(let J of Array.from(X.keys())){let Y=X.get(J),G=F9(D,X,J,Y);if(G===void 0)X.delete(J);else if(G!==Y)X.set(J,G)}else if(X instanceof Set)for(let J of Array.from(X)){let Y=F9(D,X,J,J);if(Y===void 0)X.delete(J);else if(Y!==J)X.delete(J),X.add(Y)}else for(let[J,Y]of Object.entries(X)){let G=F9(D,X,J,Y);if(G===void 0)delete X[J];else if(G!==Y)X[J]=G}return D.call($,F,X)}pb.applyReviver=F9});var z8=f((lb)=>{var db=UD();function dK(D,$,F){if(Array.isArray(D))return D.map((X,J)=>dK(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!db.hasAnchor(D))return D.toJSON($,F);let X={aliasCount:0,count:1,res:void 0};F.anchors.set(D,X),F.onCreate=(Y)=>{X.res=Y,delete F.onCreate};let J=D.toJSON($,F);if(F.onCreate)F.onCreate(J);return J}if(typeof D==="bigint"&&!F?.keep)return Number(D);return D}lb.toJS=dK});var l4=f((rb)=>{var nb=PJ(),lK=UD(),sb=z8();class iK{constructor(D){Object.defineProperty(this,lK.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(!lK.isDocument(D))throw TypeError("A document argument is required");let Y={anchors:new Map,doc:D,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof F==="number"?F:100},G=sb.toJS(this,"",Y);if(typeof X==="function")for(let{count:B,res:H}of Y.anchors.values())X(H,B);return typeof J==="function"?nb.applyReviver(J,{"":G},"",G):G}}rb.NodeBase=iK});var X9=f(($f)=>{var ob=d4(),tb=$9(),z6=UD(),eb=l4(),Df=z8();class nK extends eb.NodeBase{constructor(D){super(z6.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=[],tb.visit(D,{Node:(J,Y)=>{if(z6.isAlias(Y)||z6.hasAnchor(Y))F.push(Y)}}),$)$.aliasResolveCache=F;let X=void 0;for(let J of F){if(J===this)break;if(J.anchor===this.source)X=J}return X}toJSON(D,$){if(!$)return{source:this.source};let{anchors:F,doc:X,maxAliasCount:J}=$,Y=this.resolve(X,$);if(!Y){let B=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(B)}let G=F.get(Y);if(!G)Df.toJS(Y,null,$),G=F.get(Y);if(G?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(J>=0){if(G.count+=1,G.aliasCount===0)G.aliasCount=i4(X,Y,F);if(G.count*G.aliasCount>J)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return G.res}toString(D,$,F){let X=`*${this.source}`;if(D){if(ob.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 i4(D,$,F){if(z6.isAlias($)){let X=$.resolve(D),J=F&&X&&F.get(X);return J?J.count*J.aliasCount:0}else if(z6.isCollection($)){let X=0;for(let J of $.items){let Y=i4(D,J,F);if(Y>X)X=Y}return X}else if(z6.isPair($)){let X=i4(D,$.key,F),J=i4(D,$.value,F);return Math.max(X,J)}return 1}$f.Alias=nK});var lD=f((Bf)=>{var Xf=UD(),Jf=l4(),Gf=z8(),Yf=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class K1 extends Jf.NodeBase{constructor(D){super(Xf.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Gf.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";Bf.Scalar=K1;Bf.isScalarValue=Yf});var J9=f((Af)=>{var Vf=X9(),E1=UD(),sK=lD(),_f="tag:yaml.org,2002:";function Uf(D,$,F){if($){let X=F.filter((Y)=>Y.tag===$),J=X.find((Y)=>!Y.format)??X[0];if(!J)throw Error(`Tag ${$} not found`);return J}return F.find((X)=>X.identify?.(D)&&!X.format)}function Qf(D,$,F){if(E1.isDocument(D))D=D.contents;if(E1.isNode(D))return D;if(E1.isPair(D)){let U=F.schema[E1.MAP].createNode?.(F.schema,null,F);return U.items.push(D),U}if(D instanceof String||D instanceof Number||D instanceof Boolean||typeof BigInt<"u"&&D instanceof BigInt)D=D.valueOf();let{aliasDuplicateObjects:X,onAnchor:J,onTagObj:Y,schema:G,sourceObjects:B}=F,H=void 0;if(X&&D&&typeof D==="object")if(H=B.get(D),H)return H.anchor??(H.anchor=J(D)),new Vf.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=_f+$.slice(2);let W=Uf(D,$,G.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let U=new sK.Scalar(D);if(H)H.node=U;return U}W=D instanceof Map?G[E1.MAP]:(Symbol.iterator in Object(D))?G[E1.SEQ]:G[E1.MAP]}if(Y)Y(W),delete F.onTagObj;let _=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new sK.Scalar(D);if($)_.tag=$;else if(!W.default)_.tag=W.tag;if(H)H.node=_;return _}Af.createNode=Qf});var n4=f((Rf)=>{var Ef=J9(),h2=UD(),Of=l4();function LJ(D,$,F){let X=F;for(let J=$.length-1;J>=0;--J){let Y=$[J];if(typeof Y==="number"&&Number.isInteger(Y)&&Y>=0){let G=[];G[Y]=X,X=G}else X=new Map([[Y,X]])}return Ef.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 rK=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class aK extends Of.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)=>h2.isNode(F)||h2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(rK(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(h2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,LJ(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(h2.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!$&&h2.isScalar(J)?J.value:J;else return h2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!h2.isPair($))return!1;let F=$.value;return F==null||D&&h2.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 h2.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(h2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,LJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}Rf.Collection=aK;Rf.collectionFromPath=LJ;Rf.isEmptyPath=rK});var G9=f((Pf)=>{var qf=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function jJ(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var Nf=(D,$,F)=>D.endsWith(`
|
|
117
|
+
`)?jJ(F,$):F.includes(`
|
|
118
118
|
`)?`
|
|
119
|
-
`+
|
|
120
|
-
`){if(F==="block")
|
|
121
|
-
`&&A!=="\t"){let b=D[
|
|
122
|
-
`&&b!=="\t")Q=
|
|
119
|
+
`+jJ(F,$):(D.endsWith(" ")?"":" ")+F;Pf.indentComment=jJ;Pf.lineComment=Nf;Pf.stringifyComment=qf});var tK=f((Tf)=>{function If(D,$,F="flow",{indentAtStart:X,lineWidth:J=80,minContentWidth:Y=20,onFold:G,onOverflow:B}={}){if(!J||J<0)return D;if(J<Y)Y=0;let H=Math.max(1+Y,1+J-$.length);if(D.length<=H)return D;let W=[],_={},U=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,Y))W.push(0);else U=J-X;let Q=void 0,A=void 0,O=!1,E=-1,K=-1,R=-1;if(F==="block"){if(E=oK(D,E,$.length),E!==-1)U=E+H}for(let N;N=D[E+=1];){if(F==="quoted"&&N==="\\"){switch(K=E,D[E+1]){case"x":E+=3;break;case"u":E+=5;break;case"U":E+=9;break;default:E+=1}R=E}if(N===`
|
|
120
|
+
`){if(F==="block")E=oK(D,E,$.length);U=E+$.length+H,Q=void 0}else{if(N===" "&&A&&A!==" "&&A!==`
|
|
121
|
+
`&&A!=="\t"){let b=D[E+1];if(b&&b!==" "&&b!==`
|
|
122
|
+
`&&b!=="\t")Q=E}if(E>=U)if(Q)W.push(Q),U=Q+H,Q=void 0;else if(F==="quoted"){while(A===" "||A==="\t")A=N,N=D[E+=1],O=!0;let b=E>R+1?E-2:K-1;if(_[b])return D;W.push(b),_[b]=!0,U=b+H,Q=void 0}else O=!0}A=N}if(O&&B)B();if(W.length===0)return D;if(G)G();let q=D.slice(0,W[0]);for(let N=0;N<W.length;++N){let b=W[N],T=W[N+1]||D.length;if(b===0)q=`
|
|
123
123
|
${$}${D.slice(0,T)}`;else{if(F==="quoted"&&_[b])q+=`${D[b]}\\`;q+=`
|
|
124
|
-
${$}${D.slice(b+1,T)}`}}return q}function
|
|
125
|
-
`);X=$,J=$+1,Y=D[J]}return X}
|
|
126
|
-
`){if(Y-G>X)return!0;if(G=Y+1,J-G<=X)return!1}return!0}function Y9(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,Y=$.indent||(
|
|
124
|
+
${$}${D.slice(b+1,T)}`}}return q}function oK(D,$,F){let X=$,J=$+1,Y=D[J];while(Y===" "||Y==="\t")if($<J+F)Y=D[++$];else{do Y=D[++$];while(Y&&Y!==`
|
|
125
|
+
`);X=$,J=$+1,Y=D[J]}return X}Tf.FOLD_BLOCK="block";Tf.FOLD_FLOW="flow";Tf.FOLD_QUOTED="quoted";Tf.foldFlowLines=If});var B9=f((xf)=>{var C2=lD(),I8=tK(),r4=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),a4=(D)=>/^(%|---|\.\.\.)/m.test(D);function kf(D,$,F){if(!$||$<0)return!1;let X=$-F,J=D.length;if(J<=X)return!1;for(let Y=0,G=0;Y<J;++Y)if(D[Y]===`
|
|
126
|
+
`){if(Y-G>X)return!0;if(G=Y+1,J-G<=X)return!1}return!0}function Y9(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,Y=$.indent||(a4(D)?" ":""),G="",B=0;for(let H=0,W=F[H];W;W=F[++H]){if(W===" "&&F[H+1]==="\\"&&F[H+2]==="n")G+=F.slice(B,H)+"\\ ",H+=1,B=H,W="\\";if(W==="\\")switch(F[H+1]){case"u":{G+=F.slice(B,H);let _=F.substr(H+2,4);switch(_){case"0000":G+="\\0";break;case"0007":G+="\\a";break;case"000b":G+="\\v";break;case"001b":G+="\\e";break;case"0085":G+="\\N";break;case"00a0":G+="\\_";break;case"2028":G+="\\L";break;case"2029":G+="\\P";break;default:if(_.substr(0,2)==="00")G+="\\x"+_.substr(2);else G+=F.substr(H,6)}H+=5,B=H+1}break;case"n":if(X||F[H+2]==='"'||F.length<J)H+=1;else{G+=F.slice(B,H)+`
|
|
127
127
|
|
|
128
128
|
`;while(F[H+2]==="\\"&&F[H+3]==="n"&&F[H+4]!=='"')G+=`
|
|
129
|
-
`,H+=2;if(G+=Y,F[H+2]===" ")G+="\\";H+=1,B=H+1}break;default:H+=1}}return G=B?G+F.slice(B):F,X?G:
|
|
130
|
-
`)||/[ \t]\n|\n[ \t]/.test(D))return Y9(D,$);let F=$.indent||(
|
|
131
|
-
${F}`)+"'";return $.implicitKey?X:
|
|
129
|
+
`,H+=2;if(G+=Y,F[H+2]===" ")G+="\\";H+=1,B=H+1}break;default:H+=1}}return G=B?G+F.slice(B):F,X?G:I8.foldFlowLines(G,Y,I8.FOLD_QUOTED,r4($,!1))}function zJ(D,$){if($.options.singleQuote===!1||$.implicitKey&&D.includes(`
|
|
130
|
+
`)||/[ \t]\n|\n[ \t]/.test(D))return Y9(D,$);let F=$.indent||(a4(D)?" ":""),X="'"+D.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
131
|
+
${F}`)+"'";return $.implicitKey?X:I8.foldFlowLines(X,F,I8.FOLD_FLOW,r4($,!1))}function I6(D,$){let{singleQuote:F}=$.options,X;if(F===!1)X=Y9;else{let J=D.includes('"'),Y=D.includes("'");if(J&&!Y)X=zJ;else if(Y&&!J)X=Y9;else X=F?zJ:Y9}return X(D,$)}var IJ;try{IJ=new RegExp(`(^|(?<!
|
|
132
132
|
))
|
|
133
133
|
+(?!
|
|
134
|
-
|$)`,"g")}catch{
|
|
134
|
+
|$)`,"g")}catch{IJ=/\n+(?!\n|$)/g}function s4({comment:D,type:$,value:F},X,J,Y){let{blockQuote:G,commentString:B,lineWidth:H}=X.options;if(!G||/\n[\t ]+$/.test(F))return I6(F,X);let W=X.indent||(X.forceBlockIndent||a4(F)?" ":""),_=G==="literal"?!0:G==="folded"||$===C2.Scalar.BLOCK_FOLDED?!1:$===C2.Scalar.BLOCK_LITERAL?!0:!kf(F,H,W.length);if(!F)return _?`|
|
|
135
135
|
`:`>
|
|
136
136
|
`;let U,Q;for(Q=F.length;Q>0;--Q){let T=F[Q-1];if(T!==`
|
|
137
|
-
`&&T!=="\t"&&T!==" ")break}let A=F.substring(Q),
|
|
138
|
-
`);if(
|
|
139
|
-
`)A=A.slice(0,-1);A=A.replace(
|
|
140
|
-
`)R=K;else break}let q=F.substring(0,R<K?R+1:K);if(q)F=F.substring(q.length),q=q.replace(/\n+/g,`$&${W}`);let b=(
|
|
141
|
-
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,w=
|
|
137
|
+
`&&T!=="\t"&&T!==" ")break}let A=F.substring(Q),O=A.indexOf(`
|
|
138
|
+
`);if(O===-1)U="-";else if(F===A||O!==A.length-1){if(U="+",Y)Y()}else U="";if(A){if(F=F.slice(0,-A.length),A[A.length-1]===`
|
|
139
|
+
`)A=A.slice(0,-1);A=A.replace(IJ,`$&${W}`)}let E=!1,K,R=-1;for(K=0;K<F.length;++K){let T=F[K];if(T===" ")E=!0;else if(T===`
|
|
140
|
+
`)R=K;else break}let q=F.substring(0,R<K?R+1:K);if(q)F=F.substring(q.length),q=q.replace(/\n+/g,`$&${W}`);let b=(E?W?"2":"1":"")+U;if(D){if(b+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!_){let T=F.replace(/\n+/g,`
|
|
141
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,w=r4(X,!0);if(G!=="folded"&&$!==C2.Scalar.BLOCK_FOLDED)w.onOverflow=()=>{L=!0};let z=I8.foldFlowLines(`${q}${T}${A}`,W,I8.FOLD_BLOCK,w);if(!L)return`>${b}
|
|
142
142
|
${W}${z}`}return F=F.replace(/\n+/g,`$&${W}`),`|${b}
|
|
143
|
-
${W}${q}${F}${A}`}function
|
|
143
|
+
${W}${q}${F}${A}`}function vf(D,$,F,X){let{type:J,value:Y}=D,{actualString:G,implicitKey:B,indent:H,indentStep:W,inFlow:_}=$;if(B&&Y.includes(`
|
|
144
144
|
`)||_&&/[[\]{},]/.test(Y))return I6(Y,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Y))return B||_||!Y.includes(`
|
|
145
|
-
`)?I6(Y,$):
|
|
146
|
-
`))return
|
|
147
|
-
${H}`);if(G){let Q=(
|
|
148
|
-
${$.indent}${B}`}
|
|
149
|
-
${B}:`}else if(K=`${K}:`,Q)K+=W9.lineComment(K,F.indent,W(Q));let R,q,
|
|
145
|
+
`)?I6(Y,$):s4(D,$,F,X);if(!B&&!_&&J!==C2.Scalar.PLAIN&&Y.includes(`
|
|
146
|
+
`))return s4(D,$,F,X);if(a4(Y)){if(H==="")return $.forceBlockIndent=!0,s4(D,$,F,X);else if(B&&H===W)return I6(Y,$)}let U=Y.replace(/\n+/g,`$&
|
|
147
|
+
${H}`);if(G){let Q=(E)=>E.default&&E.tag!=="tag:yaml.org,2002:str"&&E.test?.test(U),{compat:A,tags:O}=$.doc.schema;if(O.some(Q)||A?.some(Q))return I6(Y,$)}return B?U:I8.foldFlowLines(U,H,I8.FOLD_FLOW,r4($,!1))}function hf(D,$,F,X){let{implicitKey:J,inFlow:Y}=$,G=typeof D.value==="string"?D:Object.assign({},D,{value:String(D.value)}),{type:B}=D;if(B!==C2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(G.value))B=C2.Scalar.QUOTE_DOUBLE}let H=(_)=>{switch(_){case C2.Scalar.BLOCK_FOLDED:case C2.Scalar.BLOCK_LITERAL:return J||Y?I6(G.value,$):s4(G,$,F,X);case C2.Scalar.QUOTE_DOUBLE:return Y9(G.value,$);case C2.Scalar.QUOTE_SINGLE:return zJ(G.value,$);case C2.Scalar.PLAIN:return vf(G,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:_,defaultStringType:U}=$.options,Q=J&&_||U;if(W=H(Q),W===null)throw Error(`Unsupported default string type ${Q}`)}return W}xf.stringifyString=hf});var H9=f((nf)=>{var yf=d4(),T8=UD(),uf=G9(),mf=B9();function pf(D,$){let F=Object.assign({blockQuote:!0,commentString:uf.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 cf(D,$){if($.tag){let J=D.filter((Y)=>Y.tag===$.tag);if(J.length>0)return J.find((Y)=>Y.format===$.format)??J[0]}let F=void 0,X;if(T8.isScalar($)){X=$.value;let J=D.filter((Y)=>Y.identify?.(X));if(J.length>1){let Y=J.filter((G)=>G.test);if(Y.length>0)J=Y}F=J.find((Y)=>Y.format===$.format)??J.find((Y)=>!Y.format)}else X=$,F=D.find((J)=>J.nodeClass&&X instanceof J.nodeClass);if(!F){let J=X?.constructor?.name??(X===null?"null":typeof X);throw Error(`Tag not resolved for ${J} value`)}return F}function df(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],Y=(T8.isScalar(D)||T8.isCollection(D))&&D.anchor;if(Y&&yf.anchorIsValid(Y))F.add(Y),J.push(`&${Y}`);let G=D.tag??($.default?null:$.tag);if(G)J.push(X.directives.tagString(G));return J.join(" ")}function lf(D,$,F,X){if(T8.isPair(D))return D.toString($,F,X);if(T8.isAlias(D)){if($.doc.directives)return D.toString($);if($.resolvedAliases?.has(D))throw TypeError("Cannot stringify circular structure without alias nodes");else{if($.resolvedAliases)$.resolvedAliases.add(D);else $.resolvedAliases=new Set([D]);D=D.resolve($.doc)}}let J=void 0,Y=T8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=cf($.doc.schema.tags,Y));let G=df(Y,J,$);if(G.length>0)$.indentAtStart=($.indentAtStart??0)+G.length+1;let B=typeof J.stringify==="function"?J.stringify(Y,$,F,X):T8.isScalar(Y)?mf.stringifyString(Y,$,F,X):Y.toString($,F,X);if(!G)return B;return T8.isScalar(Y)||B[0]==="{"||B[0]==="["?`${G} ${B}`:`${G}
|
|
148
|
+
${$.indent}${B}`}nf.createStringifyContext=pf;nf.stringify=lf});var $E=f((of)=>{var $8=UD(),eK=lD(),DE=H9(),W9=G9();function af({key:D,value:$},F,X,J){let{allNullValues:Y,doc:G,indent:B,indentStep:H,options:{commentString:W,indentSeq:_,simpleKeys:U}}=F,Q=$8.isNode(D)&&D.comment||null;if(U){if(Q)throw Error("With simple keys, key nodes cannot have comments");if($8.isCollection(D)||!$8.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let A=!U&&(!D||Q&&$==null&&!F.inFlow||$8.isCollection(D)||($8.isScalar(D)?D.type===eK.Scalar.BLOCK_FOLDED||D.type===eK.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!A&&(U||!Y),indent:B+H});let O=!1,E=!1,K=DE.stringify(D,F,()=>O=!0,()=>E=!0);if(!A&&!F.inFlow&&K.length>1024){if(U)throw Error("With simple keys, single line scalar must not span more than 1024 characters");A=!0}if(F.inFlow){if(Y||$==null){if(O&&X)X();return K===""?"?":A?`? ${K}`:K}}else if(Y&&!U||$==null&&A){if(K=`? ${K}`,Q&&!O)K+=W9.lineComment(K,F.indent,W(Q));else if(E&&J)J();return K}if(O)Q=null;if(A){if(Q)K+=W9.lineComment(K,F.indent,W(Q));K=`? ${K}
|
|
149
|
+
${B}:`}else if(K=`${K}:`,Q)K+=W9.lineComment(K,F.indent,W(Q));let R,q,N;if($8.isNode($))R=!!$.spaceBefore,q=$.commentBefore,N=$.comment;else if(R=!1,q=null,N=null,$&&typeof $==="object")$=G.createNode($);if(F.implicitKey=!1,!A&&!Q&&$8.isScalar($))F.indentAtStart=K.length+1;if(E=!1,!_&&H.length>=2&&!F.inFlow&&!A&&$8.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let b=!1,T=DE.stringify($,F,()=>b=!0,()=>E=!0),L=" ";if(Q||R||q){if(L=R?`
|
|
150
150
|
`:"",q){let w=W(q);L+=`
|
|
151
151
|
${W9.indentComment(w,F.indent)}`}if(T===""&&!F.inFlow){if(L===`
|
|
152
|
-
`&&
|
|
152
|
+
`&&N)L=`
|
|
153
153
|
|
|
154
154
|
`}else L+=`
|
|
155
|
-
${F.indent}`}else if(!A
|
|
155
|
+
${F.indent}`}else if(!A&&$8.isCollection($)){let w=T[0],z=T.indexOf(`
|
|
156
156
|
`),s=z!==-1,QD=F.inFlow??$.flow??$.items.length===0;if(s||!QD){let VD=!1;if(s&&(w==="&"||w==="!")){let $D=T.indexOf(" ");if(w==="&"&&$D!==-1&&$D<z&&T[$D+1]==="!")$D=T.indexOf(" ",$D+1);if($D===-1||z<$D)VD=!0}if(!VD)L=`
|
|
157
157
|
${F.indent}`}}else if(T===""||T[0]===`
|
|
158
|
-
`)L="";if(K+=L+T,F.inFlow){if(b&&X)X()}else if(
|
|
159
|
-
${H}${
|
|
158
|
+
`)L="";if(K+=L+T,F.inFlow){if(b&&X)X()}else if(N&&!b)K+=W9.lineComment(K,F.indent,W(N));else if(E&&J)J();return K}of.stringifyPair=af});var TJ=f(($k)=>{var FE=X8("process");function ef(D,...$){if(D==="debug")console.log(...$)}function Dk(D,$){if(D==="debug"||D==="warn")if(typeof FE.emitWarning==="function")FE.emitWarning($);else console.warn($)}$k.debug=ef;$k.warn=Dk});var e4=f((Gk)=>{var V9=UD(),XE=lD(),o4="<<",t4={identify:(D)=>D===o4||typeof D==="symbol"&&D.description===o4,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new XE.Scalar(Symbol(o4)),{addToJSMap:JE}),stringify:()=>o4},Jk=(D,$)=>(t4.identify($)||V9.isScalar($)&&(!$.type||$.type===XE.Scalar.PLAIN)&&t4.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===t4.tag&&F.default);function JE(D,$,F){if(F=D&&V9.isAlias(F)?F.resolve(D.doc):F,V9.isSeq(F))for(let X of F.items)wJ(D,$,X);else if(Array.isArray(F))for(let X of F)wJ(D,$,X);else wJ(D,$,F)}function wJ(D,$,F){let X=D&&V9.isAlias(F)?F.resolve(D.doc):F;if(!V9.isMap(X))throw Error("Merge sources must be maps or map aliases");let J=X.toJSON(null,D,Map);for(let[Y,G]of J)if($ instanceof Map){if(!$.has(Y))$.set(Y,G)}else if($ instanceof Set)$.add(Y);else if(!Object.prototype.hasOwnProperty.call($,Y))Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});return $}Gk.addMergeToJSMap=JE;Gk.isMergeKey=Jk;Gk.merge=t4});var bJ=f((Qk)=>{var Wk=TJ(),GE=e4(),Vk=H9(),YE=UD(),SJ=z8();function _k(D,$,{key:F,value:X}){if(YE.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(GE.isMergeKey(D,F))GE.addMergeToJSMap(D,$,X);else{let J=SJ.toJS(F,"",D);if($ instanceof Map)$.set(J,SJ.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let Y=Uk(F,J,D),G=SJ.toJS(X,Y,D);if(Y in $)Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});else $[Y]=G}}return $}function Uk(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(YE.isNode(D)&&F?.doc){let X=Vk.createStringifyContext(F.doc,{});X.anchors=new Set;for(let Y of F.anchors.keys())X.anchors.add(Y.anchor);X.inFlow=!0,X.inStringifyKey=!0;let J=D.toString(X);if(!F.mapKeyWarned){let Y=JSON.stringify(J);if(Y.length>40)Y=Y.substring(0,36)+'..."';Wk.warn(F.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${Y}. Set mapAsMap: true to use object keys.`),F.mapKeyWarned=!0}return J}return JSON.stringify($)}Qk.addPairToJSMap=_k});var w8=f((Rk)=>{var BE=J9(),Kk=$E(),Ek=bJ(),D5=UD();function Ok(D,$,F){let X=BE.createNode(D,void 0,F),J=BE.createNode($,void 0,F);return new $5(X,J)}class $5{constructor(D,$=null){Object.defineProperty(this,D5.NODE_TYPE,{value:D5.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(D5.isNode($))$=$.clone(D);if(D5.isNode(F))F=F.clone(D);return new $5($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return Ek.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Kk.stringifyPair(this,D,$,F):JSON.stringify(this)}}Rk.Pair=$5;Rk.createPair=Ok});var fJ=f((Pk)=>{var O1=UD(),HE=H9(),F5=G9();function Zk(D,$,F){return($.inFlow??D.flow?Nk:qk)(D,$,F)}function qk({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:Y,onChompKeep:G,onComment:B}){let{indent:H,options:{commentString:W}}=F,_=Object.assign({},F,{indent:Y,type:null}),U=!1,Q=[];for(let O=0;O<$.length;++O){let E=$[O],K=null;if(O1.isNode(E)){if(!U&&E.spaceBefore)Q.push("");if(X5(F,Q,E.commentBefore,U),E.comment)K=E.comment}else if(O1.isPair(E)){let q=O1.isNode(E.key)?E.key:null;if(q){if(!U&&q.spaceBefore)Q.push("");X5(F,Q,q.commentBefore,U)}}U=!1;let R=HE.stringify(E,_,()=>K=null,()=>U=!0);if(K)R+=F5.lineComment(R,Y,W(K));if(U&&K)U=!1;Q.push(X+R)}let A;if(Q.length===0)A=J.start+J.end;else{A=Q[0];for(let O=1;O<Q.length;++O){let E=Q[O];A+=E?`
|
|
159
|
+
${H}${E}`:`
|
|
160
160
|
`}}if(D){if(A+=`
|
|
161
|
-
|
|
162
|
-
`)),
|
|
163
|
-
${Y}${J}${
|
|
164
|
-
`;return`${
|
|
165
|
-
${J}${A}`}else return`${Q}${G}${U.join(" ")}${G}${A}`}}function
|
|
166
|
-
`:" ")}return
|
|
161
|
+
`+F5.indentComment(W(D),H),B)B()}else if(U&&G)G();return A}function Nk({items:D},$,{flowChars:F,itemIndent:X}){let{indent:J,indentStep:Y,flowCollectionPadding:G,options:{commentString:B}}=$;X+=Y;let H=Object.assign({},$,{indent:X,inFlow:!0,type:null}),W=!1,_=0,U=[];for(let O=0;O<D.length;++O){let E=D[O],K=null;if(O1.isNode(E)){if(E.spaceBefore)U.push("");if(X5($,U,E.commentBefore,!1),E.comment)K=E.comment}else if(O1.isPair(E)){let q=O1.isNode(E.key)?E.key:null;if(q){if(q.spaceBefore)U.push("");if(X5($,U,q.commentBefore,!1),q.comment)W=!0}let N=O1.isNode(E.value)?E.value:null;if(N){if(N.comment)K=N.comment;if(N.commentBefore)W=!0}else if(E.value==null&&q?.comment)K=q.comment}if(K)W=!0;let R=HE.stringify(E,H,()=>K=null);if(W||(W=U.length>_||R.includes(`
|
|
162
|
+
`)),O<D.length-1)R+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=U.reduce((q,N)=>q+N.length+2,2)+(R.length+2)>$.options.lineWidth);if(W)R+=","}if(K)R+=F5.lineComment(R,X,B(K));U.push(R),_=U.length}let{start:Q,end:A}=F;if(U.length===0)return Q+A;else{if(!W){let O=U.reduce((E,K)=>E+K.length+2,2);W=$.options.lineWidth>0&&O>$.options.lineWidth}if(W){let O=Q;for(let E of U)O+=E?`
|
|
163
|
+
${Y}${J}${E}`:`
|
|
164
|
+
`;return`${O}
|
|
165
|
+
${J}${A}`}else return`${Q}${G}${U.join(" ")}${G}${A}`}}function X5({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let Y=F5.indentComment($(X),D);F.push(Y.trimStart())}}Pk.stringifyCollection=Zk});var b8=f((wk)=>{var jk=fJ(),zk=bJ(),Ik=n4(),S8=UD(),J5=w8(),Tk=lD();function _9(D,$){let F=S8.isScalar($)?$.value:$;for(let X of D)if(S8.isPair(X)){if(X.key===$||X.key===F)return X;if(S8.isScalar(X.key)&&X.key.value===F)return X}return}class WE extends Ik.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(S8.MAP,D);this.items=[]}static from(D,$,F){let{keepUndefined:X,replacer:J}=F,Y=new this(D),G=(B,H)=>{if(typeof J==="function")H=J.call($,B,H);else if(Array.isArray(J)&&!J.includes(B))return;if(H!==void 0||X)Y.items.push(J5.createPair(B,H,F))};if($ instanceof Map)for(let[B,H]of $)G(B,H);else if($&&typeof $==="object")for(let B of Object.keys($))G(B,$[B]);if(typeof D.sortMapEntries==="function")Y.items.sort(D.sortMapEntries);return Y}add(D,$){let F;if(S8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new J5.Pair(D,D?.value);else F=new J5.Pair(D.key,D.value);let X=_9(this.items,F.key),J=this.schema?.sortMapEntries;if(X){if(!$)throw Error(`Key ${F.key} already set`);if(S8.isScalar(X.value)&&Tk.isScalarValue(F.value))X.value.value=F.value;else X.value=F.value}else if(J){let Y=this.items.findIndex((G)=>J(F,G)<0);if(Y===-1)this.items.push(F);else this.items.splice(Y,0,F)}else this.items.push(F)}delete(D){let $=_9(this.items,D);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(D,$){let X=_9(this.items,D)?.value;return(!$&&S8.isScalar(X)?X.value:X)??void 0}has(D){return!!_9(this.items,D)}set(D,$){this.add(new J5.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)zk.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!S8.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 jk.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}wk.YAMLMap=WE;wk.findPair=_9});var T6=f((vk)=>{var fk=UD(),VE=b8(),kk={collection:"map",default:!0,nodeClass:VE.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!fk.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>VE.YAMLMap.from(D,$,F)};vk.map=kk});var f8=f((pk)=>{var xk=J9(),gk=fJ(),yk=n4(),Y5=UD(),uk=lD(),mk=z8();class _E extends yk.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(Y5.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=G5(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=G5(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&Y5.isScalar(X)?X.value:X}has(D){let $=G5(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=G5(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(Y5.isScalar(X)&&uk.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(mk.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return gk.stringifyCollection(this,D,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(D.indent||"")+" ",onChompKeep:F,onComment:$})}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($)){let Y=0;for(let G of $){if(typeof X==="function"){let B=$ instanceof Set?G:String(Y++);G=X.call($,B,G)}J.items.push(xk.createNode(G,void 0,F))}}return J}}function G5(D){let $=Y5.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}pk.YAMLSeq=_E});var w6=f((ik)=>{var dk=UD(),UE=f8(),lk={collection:"seq",default:!0,nodeClass:UE.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!dk.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>UE.YAMLSeq.from(D,$,F)};ik.seq=lk});var U9=f((ak)=>{var sk=B9(),rk={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},$),sk.stringifyString(D,$,F,X)}};ak.string=rk});var B5=f((tk)=>{var QE=lD(),AE={identify:(D)=>D==null,createNode:()=>new QE.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new QE.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&AE.test.test(D)?D:$.options.nullStr};tk.nullTag=AE});var kJ=f(($v)=>{var Dv=lD(),KE={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Dv.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&KE.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};$v.boolTag=KE});var S6=f((Jv)=>{function Xv({format:D,minFractionDigits:$,tag:F,value:X}){if(typeof X==="bigint")return String(X);let J=typeof X==="number"?X:Number(X);if(!isFinite(J))return isNaN(J)?".nan":J<0?"-.inf":".inf";let Y=Object.is(X,-0)?"-0":JSON.stringify(X);if(!D&&$&&(!F||F==="tag:yaml.org,2002:float")&&/^\d/.test(Y)){let G=Y.indexOf(".");if(G<0)G=Y.length,Y+=".";let B=$-(Y.length-G-1);while(B-- >0)Y+="0"}return Y}Jv.stringifyNumber=Xv});var hJ=f((Vv)=>{var Yv=lD(),vJ=S6(),Bv={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:vJ.stringifyNumber},Hv={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():vJ.stringifyNumber(D)}},Wv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Yv.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:vJ.stringifyNumber};Vv.float=Wv;Vv.floatExp=Hv;Vv.floatNaN=Bv});var gJ=f((Ov)=>{var EE=S6(),H5=(D)=>typeof D==="bigint"||Number.isInteger(D),xJ=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function OE(D,$,F){let{value:X}=D;if(H5(X)&&X>=0)return F+X.toString($);return EE.stringifyNumber(D)}var Av={identify:(D)=>H5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>xJ(D,2,8,F),stringify:(D)=>OE(D,8,"0o")},Kv={identify:H5,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>xJ(D,0,10,F),stringify:EE.stringifyNumber},Ev={identify:(D)=>H5(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>xJ(D,2,16,F),stringify:(D)=>OE(D,16,"0x")};Ov.int=Kv;Ov.intHex=Ev;Ov.intOct=Av});var RE=f((zv)=>{var Zv=T6(),qv=B5(),Nv=w6(),Pv=U9(),Lv=kJ(),yJ=hJ(),uJ=gJ(),jv=[Zv.map,Nv.seq,Pv.string,qv.nullTag,Lv.boolTag,uJ.intOct,uJ.int,uJ.intHex,yJ.floatNaN,yJ.floatExp,yJ.float];zv.schema=jv});var ME=f((vv)=>{var Tv=lD(),wv=T6(),Sv=w6();function CE(D){return typeof D==="bigint"||Number.isInteger(D)}var W5=({value:D})=>JSON.stringify(D),bv=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:W5},{identify:(D)=>D==null,createNode:()=>new Tv.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:W5},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:W5},{identify:CE,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})=>CE(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:W5}],fv={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},kv=[wv.map,Sv.seq].concat(bv,fv);vv.schema=kv});var pJ=f((yv)=>{var Q9=X8("buffer"),mJ=lD(),xv=B9(),gv={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,Y){if(!F)return"";let G=F,B;if(typeof Q9.Buffer==="function")B=G instanceof Q9.Buffer?G.toString("base64"):Q9.Buffer.from(G.buffer).toString("base64");else if(typeof btoa==="function"){let H="";for(let W=0;W<G.length;++W)H+=String.fromCharCode(G[W]);B=btoa(H)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=mJ.Scalar.BLOCK_LITERAL),$!==mJ.Scalar.QUOTE_DOUBLE){let H=Math.max(X.options.lineWidth-X.indent.length,X.options.minContentWidth),W=Math.ceil(B.length/H),_=Array(W);for(let U=0,Q=0;U<W;++U,Q+=H)_[U]=B.substr(Q,H);B=_.join($===mJ.Scalar.BLOCK_LITERAL?`
|
|
166
|
+
`:" ")}return xv.stringifyString({comment:D,type:$,value:B},X,J,Y)}};yv.binary=gv});var _5=f((dv)=>{var V5=UD(),cJ=w8(),mv=lD(),pv=f8();function ZE(D,$){if(V5.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(V5.isPair(X))continue;else if(V5.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new cJ.Pair(new mv.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
|
|
167
167
|
${J.key.commentBefore}`:X.commentBefore;if(X.comment){let Y=J.value??J.key;Y.comment=Y.comment?`${X.comment}
|
|
168
|
-
${Y.comment}`:X.comment}X=J}D.items[F]=W5.isPair(X)?X:new pJ.Pair(X)}else $("Expected a sequence for this tag");return D}function ZE(D,$,F){let{replacer:X}=F,J=new uv.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let Y=0;if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,String(Y++),G);let B,H;if(Array.isArray(G))if(G.length===2)B=G[0],H=G[1];else throw TypeError(`Expected [key, value] tuple: ${G}`);else if(G&&G instanceof Object){let W=Object.keys(G);if(W.length===1)B=W[0],H=G[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=G;J.items.push(pJ.createPair(B,H,F))}return J}var mv={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:ME,createNode:ZE};pv.createPairs=ZE;pv.pairs=mv;pv.resolvePairs=ME});var dJ=f((sv)=>{var qE=UD(),cJ=I8(),A9=f8(),iv=k8(),PE=V5();class R1 extends iv.YAMLSeq{constructor(){super();this.add=A9.YAMLMap.prototype.add.bind(this),this.delete=A9.YAMLMap.prototype.delete.bind(this),this.get=A9.YAMLMap.prototype.get.bind(this),this.has=A9.YAMLMap.prototype.has.bind(this),this.set=A9.YAMLMap.prototype.set.bind(this),this.tag=R1.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,Y;if(qE.isPair(X))J=cJ.toJS(X.key,"",$),Y=cJ.toJS(X.value,J,$);else J=cJ.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,Y)}return F}static from(D,$,F){let X=PE.createPairs(D,$,F),J=new this;return J.items=X.items,J}}R1.tag="tag:yaml.org,2002:omap";var nv={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:R1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=PE.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(qE.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 R1,F)},createNode:(D,$,F)=>R1.from(D,$,F)};sv.YAMLOMap=R1;sv.omap=nv});var IE=f((ov)=>{var NE=lD();function LE({value:D,source:$},F){if($&&(D?jE:zE).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var jE={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 NE.Scalar(!0),stringify:LE},zE={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 NE.Scalar(!1),stringify:LE};ov.falseTag=zE;ov.trueTag=jE});var TE=f((Jh)=>{var Dh=lD(),lJ=S6(),$h={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},Fh={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():lJ.stringifyNumber(D)}},Xh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Dh.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:lJ.stringifyNumber};Jh.float=Xh;Jh.floatExp=Fh;Jh.floatNaN=$h});var SE=f((Uh)=>{var wE=S6(),K9=(D)=>typeof D==="bigint"||Number.isInteger(D);function _5(D,$,F,{intAsBigInt:X}){let J=D[0];if(J==="-"||J==="+")$+=1;if(D=D.substring($).replace(/_/g,""),X){switch(F){case 2:D=`0b${D}`;break;case 8:D=`0o${D}`;break;case 16:D=`0x${D}`;break}let G=BigInt(D);return J==="-"?BigInt(-1)*G:G}let Y=parseInt(D,F);return J==="-"?-1*Y:Y}function iJ(D,$,F){let{value:X}=D;if(K9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return wE.stringifyNumber(D)}var Hh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>_5(D,2,2,F),stringify:(D)=>iJ(D,2,"0b")},Wh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>_5(D,1,8,F),stringify:(D)=>iJ(D,8,"0")},Vh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>_5(D,0,10,F),stringify:wE.stringifyNumber},_h={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>_5(D,2,16,F),stringify:(D)=>iJ(D,16,"0x")};Uh.int=Vh;Uh.intBin=Hh;Uh.intHex=_h;Uh.intOct=Wh});var nJ=f((Rh)=>{var A5=UD(),U5=S8(),Q5=f8();class O1 extends Q5.YAMLMap{constructor(D){super(D);this.tag=O1.tag}add(D){let $;if(A5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new U5.Pair(D.key,null);else $=new U5.Pair(D,null);if(!Q5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=Q5.findPair(this.items,D);return!$&&A5.isPair(F)?A5.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=Q5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new U5.Pair(D))}toJSON(D,$){return super.toJSON(D,$,Set)}toString(D,$,F){if(!D)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},D,{allNullValues:!0}),$,F);else throw Error("Set items must all have null values")}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,Y,Y);J.items.push(U5.createPair(Y,null,F))}return J}}O1.tag="tag:yaml.org,2002:set";var Ch={collection:"map",identify:(D)=>D instanceof Set,nodeClass:O1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>O1.from(D,$,F),resolve(D,$){if(A5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new O1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};Rh.YAMLSet=O1;Rh.set=Ch});var rJ=f((Nh)=>{var Zh=S6();function sJ(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(G)=>$?BigInt(G):Number(G),Y=X.replace(/_/g,"").split(":").reduce((G,B)=>G*J(60)+J(B),J(0));return F==="-"?J(-1)*Y:Y}function bE(D){let{value:$}=D,F=(G)=>G;if(typeof $==="bigint")F=(G)=>BigInt(G);else if(isNaN($)||!isFinite($))return Zh.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),Y=[$%J];if($<60)Y.unshift(0);else if($=($-Y[0])/J,Y.unshift($%J),$>=60)$=($-Y[0])/J,Y.unshift($);return X+Y.map((G)=>String(G).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var qh={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})=>sJ(D,F),stringify:bE},Ph={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(D)=>sJ(D,!1),stringify:bE},fE={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(fE.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,Y,G,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,W=Date.UTC(F,X-1,J,Y||0,G||0,B||0,H),_=$[8];if(_&&_!=="Z"){let U=sJ(_,!1);if(Math.abs(U)<30)U*=60;W-=60000*U}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};Nh.floatTime=Ph;Nh.intTime=qh;Nh.timestamp=fE});var vE=f((gh)=>{var Ih=T6(),Th=Y5(),wh=w6(),Sh=U9(),bh=mJ(),kE=IE(),aJ=TE(),K5=SE(),fh=t4(),kh=dJ(),vh=V5(),hh=nJ(),oJ=rJ(),xh=[Ih.map,wh.seq,Sh.string,Th.nullTag,kE.trueTag,kE.falseTag,K5.intBin,K5.intOct,K5.int,K5.intHex,aJ.floatNaN,aJ.floatExp,aJ.float,bh.binary,fh.merge,kh.omap,vh.pairs,hh.set,oJ.intTime,oJ.floatTime,oJ.timestamp];gh.schema=xh});var lE=f((nh)=>{var yE=T6(),uh=Y5(),uE=w6(),mh=U9(),ph=fJ(),tJ=vJ(),eJ=xJ(),ch=CE(),dh=OE(),mE=mJ(),E9=t4(),pE=dJ(),cE=V5(),hE=vE(),dE=nJ(),E5=rJ(),xE=new Map([["core",ch.schema],["failsafe",[yE.map,uE.seq,mh.string]],["json",dh.schema],["yaml11",hE.schema],["yaml-1.1",hE.schema]]),gE={binary:mE.binary,bool:ph.boolTag,float:tJ.float,floatExp:tJ.floatExp,floatNaN:tJ.floatNaN,floatTime:E5.floatTime,int:eJ.int,intHex:eJ.intHex,intOct:eJ.intOct,intTime:E5.intTime,map:yE.map,merge:E9.merge,null:uh.nullTag,omap:pE.omap,pairs:cE.pairs,seq:uE.seq,set:dE.set,timestamp:E5.timestamp},lh={"tag:yaml.org,2002:binary":mE.binary,"tag:yaml.org,2002:merge":E9.merge,"tag:yaml.org,2002:omap":pE.omap,"tag:yaml.org,2002:pairs":cE.pairs,"tag:yaml.org,2002:set":dE.set,"tag:yaml.org,2002:timestamp":E5.timestamp};function ih(D,$,F){let X=xE.get($);if(X&&!D)return F&&!X.includes(E9.merge)?X.concat(E9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let Y=Array.from(xE.keys()).filter((G)=>G!=="yaml11").map((G)=>JSON.stringify(G)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${Y} or define customTags array`)}if(Array.isArray(D))for(let Y of D)J=J.concat(Y);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(E9.merge);return J.reduce((Y,G)=>{let B=typeof G==="string"?gE[G]:G;if(!B){let H=JSON.stringify(G),W=Object.keys(gE).map((_)=>JSON.stringify(_)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!Y.includes(B))Y.push(B);return Y},[])}nh.coreKnownTags=lh;nh.getTags=ih});var FG=f((Dx)=>{var DG=UD(),ah=T6(),oh=w6(),th=U9(),C5=lE(),eh=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class $G{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:Y,toStringDefaults:G}){this.compat=Array.isArray(D)?C5.getTags(D,"compat"):D?C5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?C5.coreKnownTags:{},this.tags=C5.getTags($,this.name,F),this.toStringOptions=G??null,Object.defineProperty(this,DG.MAP,{value:ah.map}),Object.defineProperty(this,DG.SCALAR,{value:th.string}),Object.defineProperty(this,DG.SEQ,{value:oh.seq}),this.sortMapEntries=typeof Y==="function"?Y:Y===!0?eh:null}clone(){let D=Object.create($G.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Dx.Schema=$G});var iE=f((Jx)=>{var Fx=UD(),XG=H9(),C9=G9();function Xx(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=XG.createStringifyContext(D,$),{commentString:Y}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=Y(D.commentBefore);F.unshift(C9.indentComment(H,""))}let G=!1,B=null;if(D.contents){if(Fx.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let _=Y(D.contents.commentBefore);F.push(C9.indentComment(_,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>G=!0,W=XG.stringify(D.contents,J,()=>B=null,H);if(B)W+=C9.lineComment(W,"",Y(B));if((W[0]==="|"||W[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${W}`;else F.push(W)}else F.push(XG.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=Y(D.comment);if(H.includes(`
|
|
169
|
-
`))F.push("..."),F.push(
|
|
168
|
+
${Y.comment}`:X.comment}X=J}D.items[F]=V5.isPair(X)?X:new cJ.Pair(X)}else $("Expected a sequence for this tag");return D}function qE(D,$,F){let{replacer:X}=F,J=new pv.YAMLSeq(D);J.tag="tag:yaml.org,2002:pairs";let Y=0;if($&&Symbol.iterator in Object($))for(let G of $){if(typeof X==="function")G=X.call($,String(Y++),G);let B,H;if(Array.isArray(G))if(G.length===2)B=G[0],H=G[1];else throw TypeError(`Expected [key, value] tuple: ${G}`);else if(G&&G instanceof Object){let W=Object.keys(G);if(W.length===1)B=W[0],H=G[B];else throw TypeError(`Expected tuple with one key, not ${W.length} keys`)}else B=G;J.items.push(cJ.createPair(B,H,F))}return J}var cv={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:ZE,createNode:qE};dv.createPairs=qE;dv.pairs=cv;dv.resolvePairs=ZE});var lJ=f((av)=>{var NE=UD(),dJ=z8(),A9=b8(),sv=f8(),PE=_5();class R1 extends sv.YAMLSeq{constructor(){super();this.add=A9.YAMLMap.prototype.add.bind(this),this.delete=A9.YAMLMap.prototype.delete.bind(this),this.get=A9.YAMLMap.prototype.get.bind(this),this.has=A9.YAMLMap.prototype.has.bind(this),this.set=A9.YAMLMap.prototype.set.bind(this),this.tag=R1.tag}toJSON(D,$){if(!$)return super.toJSON(D);let F=new Map;if($?.onCreate)$.onCreate(F);for(let X of this.items){let J,Y;if(NE.isPair(X))J=dJ.toJS(X.key,"",$),Y=dJ.toJS(X.value,J,$);else J=dJ.toJS(X,"",$);if(F.has(J))throw Error("Ordered maps must not include duplicate keys");F.set(J,Y)}return F}static from(D,$,F){let X=PE.createPairs(D,$,F),J=new this;return J.items=X.items,J}}R1.tag="tag:yaml.org,2002:omap";var rv={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:R1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=PE.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(NE.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 R1,F)},createNode:(D,$,F)=>R1.from(D,$,F)};av.YAMLOMap=R1;av.omap=rv});var TE=f((ev)=>{var LE=lD();function jE({value:D,source:$},F){if($&&(D?zE:IE).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var zE={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 LE.Scalar(!0),stringify:jE},IE={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 LE.Scalar(!1),stringify:jE};ev.falseTag=IE;ev.trueTag=zE});var wE=f((Yh)=>{var Fh=lD(),iJ=S6(),Xh={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:iJ.stringifyNumber},Jh={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():iJ.stringifyNumber(D)}},Gh={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Fh.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:iJ.stringifyNumber};Yh.float=Gh;Yh.floatExp=Jh;Yh.floatNaN=Xh});var bE=f((Ah)=>{var SE=S6(),K9=(D)=>typeof D==="bigint"||Number.isInteger(D);function U5(D,$,F,{intAsBigInt:X}){let J=D[0];if(J==="-"||J==="+")$+=1;if(D=D.substring($).replace(/_/g,""),X){switch(F){case 2:D=`0b${D}`;break;case 8:D=`0o${D}`;break;case 16:D=`0x${D}`;break}let G=BigInt(D);return J==="-"?BigInt(-1)*G:G}let Y=parseInt(D,F);return J==="-"?-1*Y:Y}function nJ(D,$,F){let{value:X}=D;if(K9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return SE.stringifyNumber(D)}var Vh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>U5(D,2,2,F),stringify:(D)=>nJ(D,2,"0b")},_h={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>U5(D,1,8,F),stringify:(D)=>nJ(D,8,"0")},Uh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>U5(D,0,10,F),stringify:SE.stringifyNumber},Qh={identify:K9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>U5(D,2,16,F),stringify:(D)=>nJ(D,16,"0x")};Ah.int=Uh;Ah.intBin=Vh;Ah.intHex=Qh;Ah.intOct=_h});var sJ=f((Mh)=>{var K5=UD(),Q5=w8(),A5=b8();class C1 extends A5.YAMLMap{constructor(D){super(D);this.tag=C1.tag}add(D){let $;if(K5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new Q5.Pair(D.key,null);else $=new Q5.Pair(D,null);if(!A5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=A5.findPair(this.items,D);return!$&&K5.isPair(F)?K5.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=A5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new Q5.Pair(D))}toJSON(D,$){return super.toJSON(D,$,Set)}toString(D,$,F){if(!D)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},D,{allNullValues:!0}),$,F);else throw Error("Set items must all have null values")}static from(D,$,F){let{replacer:X}=F,J=new this(D);if($&&Symbol.iterator in Object($))for(let Y of $){if(typeof X==="function")Y=X.call($,Y,Y);J.items.push(Q5.createPair(Y,null,F))}return J}}C1.tag="tag:yaml.org,2002:set";var Ch={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(K5.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}};Mh.YAMLSet=C1;Mh.set=Ch});var aJ=f((jh)=>{var Nh=S6();function rJ(D,$){let F=D[0],X=F==="-"||F==="+"?D.substring(1):D,J=(G)=>$?BigInt(G):Number(G),Y=X.replace(/_/g,"").split(":").reduce((G,B)=>G*J(60)+J(B),J(0));return F==="-"?J(-1)*Y:Y}function fE(D){let{value:$}=D,F=(G)=>G;if(typeof $==="bigint")F=(G)=>BigInt(G);else if(isNaN($)||!isFinite($))return Nh.stringifyNumber(D);let X="";if($<0)X="-",$*=F(-1);let J=F(60),Y=[$%J];if($<60)Y.unshift(0);else if($=($-Y[0])/J,Y.unshift($%J),$>=60)$=($-Y[0])/J,Y.unshift($);return X+Y.map((G)=>String(G).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Ph={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})=>rJ(D,F),stringify:fE},Lh={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)=>rJ(D,!1),stringify:fE},kE={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(kE.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,F,X,J,Y,G,B]=$.map(Number),H=$[7]?Number(($[7]+"00").substr(1,3)):0,W=Date.UTC(F,X-1,J,Y||0,G||0,B||0,H),_=$[8];if(_&&_!=="Z"){let U=rJ(_,!1);if(Math.abs(U)<30)U*=60;W-=60000*U}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};jh.floatTime=Lh;jh.intTime=Ph;jh.timestamp=kE});var hE=f((uh)=>{var wh=T6(),Sh=B5(),bh=w6(),fh=U9(),kh=pJ(),vE=TE(),oJ=wE(),E5=bE(),vh=e4(),hh=lJ(),xh=_5(),gh=sJ(),tJ=aJ(),yh=[wh.map,bh.seq,fh.string,Sh.nullTag,vE.trueTag,vE.falseTag,E5.intBin,E5.intOct,E5.int,E5.intHex,oJ.floatNaN,oJ.floatExp,oJ.float,kh.binary,vh.merge,hh.omap,xh.pairs,gh.set,tJ.intTime,tJ.floatTime,tJ.timestamp];uh.schema=yh});var iE=f((rh)=>{var uE=T6(),ph=B5(),mE=w6(),ch=U9(),dh=kJ(),eJ=hJ(),DG=gJ(),lh=RE(),ih=ME(),pE=pJ(),E9=e4(),cE=lJ(),dE=_5(),xE=hE(),lE=sJ(),O5=aJ(),gE=new Map([["core",lh.schema],["failsafe",[uE.map,mE.seq,ch.string]],["json",ih.schema],["yaml11",xE.schema],["yaml-1.1",xE.schema]]),yE={binary:pE.binary,bool:dh.boolTag,float:eJ.float,floatExp:eJ.floatExp,floatNaN:eJ.floatNaN,floatTime:O5.floatTime,int:DG.int,intHex:DG.intHex,intOct:DG.intOct,intTime:O5.intTime,map:uE.map,merge:E9.merge,null:ph.nullTag,omap:cE.omap,pairs:dE.pairs,seq:mE.seq,set:lE.set,timestamp:O5.timestamp},nh={"tag:yaml.org,2002:binary":pE.binary,"tag:yaml.org,2002:merge":E9.merge,"tag:yaml.org,2002:omap":cE.omap,"tag:yaml.org,2002:pairs":dE.pairs,"tag:yaml.org,2002:set":lE.set,"tag:yaml.org,2002:timestamp":O5.timestamp};function sh(D,$,F){let X=gE.get($);if(X&&!D)return F&&!X.includes(E9.merge)?X.concat(E9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let Y=Array.from(gE.keys()).filter((G)=>G!=="yaml11").map((G)=>JSON.stringify(G)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${Y} or define customTags array`)}if(Array.isArray(D))for(let Y of D)J=J.concat(Y);else if(typeof D==="function")J=D(J.slice());if(F)J=J.concat(E9.merge);return J.reduce((Y,G)=>{let B=typeof G==="string"?yE[G]:G;if(!B){let H=JSON.stringify(G),W=Object.keys(yE).map((_)=>JSON.stringify(_)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!Y.includes(B))Y.push(B);return Y},[])}rh.coreKnownTags=nh;rh.getTags=sh});var XG=f((Fx)=>{var $G=UD(),th=T6(),eh=w6(),Dx=U9(),R5=iE(),$x=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class FG{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:Y,toStringDefaults:G}){this.compat=Array.isArray(D)?R5.getTags(D,"compat"):D?R5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?R5.coreKnownTags:{},this.tags=R5.getTags($,this.name,F),this.toStringOptions=G??null,Object.defineProperty(this,$G.MAP,{value:th.map}),Object.defineProperty(this,$G.SCALAR,{value:Dx.string}),Object.defineProperty(this,$G.SEQ,{value:eh.seq}),this.sortMapEntries=typeof Y==="function"?Y:Y===!0?$x:null}clone(){let D=Object.create(FG.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Fx.Schema=FG});var nE=f((Yx)=>{var Jx=UD(),JG=H9(),O9=G9();function Gx(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=JG.createStringifyContext(D,$),{commentString:Y}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=Y(D.commentBefore);F.unshift(O9.indentComment(H,""))}let G=!1,B=null;if(D.contents){if(Jx.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let _=Y(D.contents.commentBefore);F.push(O9.indentComment(_,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>G=!0,W=JG.stringify(D.contents,J,()=>B=null,H);if(B)W+=O9.lineComment(W,"",Y(B));if((W[0]==="|"||W[0]===">")&&F[F.length-1]==="---")F[F.length-1]=`--- ${W}`;else F.push(W)}else F.push(JG.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=Y(D.comment);if(H.includes(`
|
|
169
|
+
`))F.push("..."),F.push(O9.indentComment(H,""));else F.push(`... ${H}`)}else F.push("...");else{let H=D.comment;if(H&&G)H=H.replace(/^\n+/,"");if(H){if((!G||B)&&F[F.length-1]!=="")F.push("");F.push(O9.indentComment(Y(H),""))}}return F.join(`
|
|
170
170
|
`)+`
|
|
171
|
-
`}
|
|
171
|
+
`}Yx.stringifyDocument=Gx});var R9=f((Kx)=>{var Hx=X9(),b6=n4(),r0=UD(),Wx=w8(),Vx=z8(),_x=XG(),Ux=nE(),GG=d4(),Qx=PJ(),Ax=J9(),YG=NJ();class BG{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:Y}=J;if(F?._directives){if(this.directives=F._directives.atDocument(),this.directives.yaml.explicit)Y=this.directives.yaml.version}else this.directives=new YG.Directives({version:Y});this.setSchema(Y,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(BG.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(f6(this.contents))this.contents.add(D)}addIn(D,$){if(f6(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=GG.anchorNames(this);D.anchor=!$||F.has($)?GG.findNewAnchor($||"a",F):$}return new Hx.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let E=(R)=>typeof R==="number"||R instanceof String||R instanceof Number,K=$.filter(E).map(String);if(K.length>0)$=$.concat(K);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:Y,flow:G,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:_,setAnchors:U,sourceObjects:Q}=GG.createNodeAnchors(this,Y||"a"),A={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:_,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:Q},O=Ax.createNode(D,W,A);if(G&&r0.isCollection(O))O.flow=!0;return U(),O}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Wx.Pair(X,J)}delete(D){return f6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(b6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return f6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return r0.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(b6.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(b6.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=b6.collectionFromPath(this.schema,[D],$);else if(f6(this.contents))this.contents.set(D,$)}setIn(D,$){if(b6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=b6.collectionFromPath(this.schema,Array.from(D),$);else if(f6(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 YG.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 YG.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 _x.Schema(Object.assign(F,$));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:D,jsonArg:$,mapAsMap:F,maxAliasCount:X,onAnchor:J,reviver:Y}={}){let G={anchors:new Map,doc:this,keep:!D,mapAsMap:F===!0,mapKeyWarned:!1,maxAliasCount:typeof X==="number"?X:100},B=Vx.toJS(this.contents,$??"",G);if(typeof J==="function")for(let{count:H,res:W}of G.anchors.values())J(W,H);return typeof Y==="function"?Qx.applyReviver(Y,{"":B},"",B):B}toJSON(D,$){return this.toJS({json:!0,jsonArg:D,mapAsMap:!1,onAnchor:$})}toString(D={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in D&&(!Number.isInteger(D.indent)||Number(D.indent)<=0)){let $=JSON.stringify(D.indent);throw Error(`"indent" option must be a positive integer, not ${$}`)}return Ux.stringifyDocument(this,D)}}function f6(D){if(r0.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Kx.Document=BG});var C9=f((Rx)=>{class C5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class sE extends C5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class rE extends C5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var Ox=(D,$)=>(F)=>{if(F.pos[0]===-1)return;F.linePos=F.pos.map((B)=>$.linePos(B));let{line:X,col:J}=F.linePos[0];F.message+=` at line ${X}, column ${J}`;let Y=J-1,G=D.substring($.lineStarts[X-1],$.lineStarts[X]).replace(/[\n\r]+$/,"");if(Y>=60&&G.length>80){let B=Math.min(Y-39,G.length-79);G="\u2026"+G.substring(B),Y-=B-1}if(G.length>80)G=G.substring(0,79)+"\u2026";if(X>1&&/^ *$/.test(G.substring(0,Y))){let B=D.substring($.lineStarts[X-2],$.lineStarts[X-1]);if(B.length>80)B=B.substring(0,79)+`\u2026
|
|
172
172
|
`;G=B+G}if(/[^ ]/.test(G)){let B=1,H=F.linePos[1];if(H?.line===X&&H.col>J)B=Math.max(1,Math.min(H.col-J,80-Y));let W=" ".repeat(Y)+"^".repeat(B);F.message+=`:
|
|
173
173
|
|
|
174
174
|
${G}
|
|
175
175
|
${W}
|
|
176
|
-
`}};
|
|
177
|
-
`))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(
|
|
178
|
-
`+
|
|
179
|
-
`+
|
|
180
|
-
`+L.comment;else W.comment=L.comment;U=L.end;continue}if(!G&&F.options.strict&&
|
|
181
|
-
`+w;else z.comment=w;L.comment=L.comment.substring(w.length+1)}}}if(!G&&!b&&!L.found){let w=T?D(F,T,L,J):$(F,L.end,b,null,L,J);if(W.items.push(w),U=w.range[2],
|
|
182
|
-
`+s.comment;else z.comment=s.comment;let VD=new
|
|
183
|
-
`+K.comment;else W.comment=K.comment;W.range=[X.offset,
|
|
184
|
-
`.repeat(Math.max(1,G.length-1)):"",K=X+J.length;if($.source)K+=$.source.length;return{value:
|
|
185
|
-
`;for(let
|
|
176
|
+
`}};Rx.YAMLError=C5;Rx.YAMLParseError=sE;Rx.YAMLWarning=rE;Rx.prettifyError=Ox});var M9=f((Px)=>{function Nx(D,{flow:$,indicator:F,next:X,offset:J,onError:Y,parentIndent:G,startOnNewline:B}){let H=!1,W=B,_=B,U="",Q="",A=!1,O=!1,E=null,K=null,R=null,q=null,N=null,b=null,T=null;for(let z of D){if(O){if(z.type!=="space"&&z.type!=="newline"&&z.type!=="comma")Y(z.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");O=!1}if(E){if(W&&z.type!=="comment"&&z.type!=="newline")Y(E,"TAB_AS_INDENT","Tabs are not allowed as indentation");E=null}switch(z.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&z.source.includes("\t"))E=z;_=!0;break;case"comment":{if(!_)Y(z,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let s=z.source.substring(1)||" ";if(!U)U=s;else U+=Q+s;Q="",W=!1;break}case"newline":if(W){if(U)U+=z.source;else if(!b||F!=="seq-item-ind")H=!0}else Q+=z.source;if(W=!0,A=!0,K||R)q=z;_=!0;break;case"anchor":if(K)Y(z,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(z.source.endsWith(":"))Y(z.offset+z.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);K=z,T??(T=z.offset),W=!1,_=!1,O=!0;break;case"tag":{if(R)Y(z,"MULTIPLE_TAGS","A node can have at most one tag");R=z,T??(T=z.offset),W=!1,_=!1,O=!0;break}case F:if(K||R)Y(z,"BAD_PROP_ORDER",`Anchors and tags must be after the ${z.source} indicator`);if(b)Y(z,"UNEXPECTED_TOKEN",`Unexpected ${z.source} in ${$??"collection"}`);b=z,W=F==="seq-item-ind"||F==="explicit-key-ind",_=!1;break;case"comma":if($){if(N)Y(z,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=z,W=!1,_=!1;break}default:Y(z,"UNEXPECTED_TOKEN",`Unexpected ${z.type} token`),W=!1,_=!1}}let L=D[D.length-1],w=L?L.offset+L.source.length:J;if(O&&X&&X.type!=="space"&&X.type!=="newline"&&X.type!=="comma"&&(X.type!=="scalar"||X.source!==""))Y(X.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(E&&(W&&E.indent<=G||X?.type==="block-map"||X?.type==="block-seq"))Y(E,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:N,found:b,spaceBefore:H,comment:U,hasNewline:A,anchor:K,tag:R,newlineAfterProp:q,end:w,start:T??w}}Px.resolveProps=Nx});var M5=f((jx)=>{function HG(D){if(!D)return null;switch(D.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(D.source.includes(`
|
|
177
|
+
`))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(HG($.key)||HG($.value))return!0}return!1;default:return!0}}jx.containsNewline=HG});var WG=f((wx)=>{var Ix=M5();function Tx(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&Ix.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}wx.flowIndentCheck=Tx});var VG=f((fx)=>{var aE=UD();function bx(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(Y,G)=>Y===G||aE.isScalar(Y)&&aE.isScalar(G)&&Y.value===G.value;return $.some((Y)=>J(Y.key,F))}fx.mapIncludes=bx});var $O=f((yx)=>{var oE=w8(),vx=b8(),tE=M9(),hx=M5(),eE=WG(),xx=VG(),DO="All mapping items must start at the same column";function gx({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??vx.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let _ of X.items){let{start:U,key:Q,sep:A,value:O}=_,E=tE.resolveProps(U,{indicator:"explicit-key-ind",next:Q??A?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),K=!E.found;if(K){if(Q){if(Q.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 Q&&Q.indent!==X.indent)J(H,"BAD_INDENT",DO)}if(!E.anchor&&!E.tag&&!A){if(W=E.end,E.comment)if(B.comment)B.comment+=`
|
|
178
|
+
`+E.comment;else B.comment=E.comment;continue}if(E.newlineAfterProp||hx.containsNewline(Q))J(Q??U[U.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(E.found?.indent!==X.indent)J(H,"BAD_INDENT",DO);F.atKey=!0;let R=E.end,q=Q?D(F,Q,E,J):$(F,R,U,null,E,J);if(F.schema.compat)eE.flowIndentCheck(X.indent,Q,J);if(F.atKey=!1,xx.mapIncludes(F,B.items,q))J(R,"DUPLICATE_KEY","Map keys must be unique");let N=tE.resolveProps(A??[],{indicator:"map-value-ind",next:O,offset:q.range[2],onError:J,parentIndent:X.indent,startOnNewline:!Q||Q.type==="block-scalar"});if(H=N.end,N.found){if(K){if(O?.type==="block-map"&&!N.hasNewline)J(H,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(F.options.strict&&E.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 b=O?D(F,O,N,J):$(F,H,A,null,N,J);if(F.schema.compat)eE.flowIndentCheck(X.indent,O,J);H=b.range[2];let T=new oE.Pair(q,b);if(F.options.keepSourceTokens)T.srcToken=_;B.items.push(T)}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+=`
|
|
179
|
+
`+N.comment;else q.comment=N.comment;let b=new oE.Pair(q);if(F.options.keepSourceTokens)b.srcToken=_;B.items.push(b)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}yx.resolveBlockMap=gx});var FO=f((lx)=>{var mx=f8(),px=M9(),cx=WG();function dx({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??mx.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:_,value:U}of X.items){let Q=px.resolveProps(_,{indicator:"seq-item-ind",next:U,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!Q.found)if(Q.anchor||Q.tag||U)if(U?.type==="block-seq")J(Q.end,"BAD_INDENT","All sequence items must start at the same column");else J(H,"MISSING_CHAR","Sequence item without - indicator");else{if(W=Q.end,Q.comment)B.comment=Q.comment;continue}let A=U?D(F,U,Q,J):$(F,Q.end,_,null,Q,J);if(F.schema.compat)cx.flowIndentCheck(X.indent,U,J);H=A.range[2],B.items.push(A)}return B.range=[X.offset,H,W??H],B}lx.resolveBlockSeq=dx});var k6=f((sx)=>{function nx(D,$,F,X){let J="";if(D){let Y=!1,G="";for(let B of D){let{source:H,type:W}=B;switch(W){case"space":Y=!0;break;case"comment":{if(F&&!Y)X(B,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let _=H.substring(1)||" ";if(!J)J=_;else J+=G+_;G="";break}case"newline":if(J)G+=H;Y=!0;break;default:X(B,"UNEXPECTED_TOKEN",`Unexpected ${W} at node end`)}$+=H.length}}return{comment:J,offset:$}}sx.resolveEnd=nx});var GO=f((Xg)=>{var ax=UD(),ox=w8(),XO=b8(),tx=f8(),ex=k6(),JO=M9(),Dg=M5(),$g=VG(),_G="Block collections are not allowed within flow collections",UG=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Fg({composeNode:D,composeEmptyNode:$},F,X,J,Y){let G=X.start.source==="{",B=G?"flow map":"flow sequence",W=new(Y?.nodeClass??(G?XO.YAMLMap:tx.YAMLSeq))(F.schema);W.flow=!0;let _=F.atRoot;if(_)F.atRoot=!1;if(F.atKey)F.atKey=!1;let U=X.offset+X.start.source.length;for(let K=0;K<X.items.length;++K){let R=X.items[K],{start:q,key:N,sep:b,value:T}=R,L=JO.resolveProps(q,{flow:B,indicator:"explicit-key-ind",next:N??b?.[0],offset:U,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!b&&!T){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+=`
|
|
180
|
+
`+L.comment;else W.comment=L.comment;U=L.end;continue}if(!G&&F.options.strict&&Dg.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 w="";D:for(let z of q)switch(z.type){case"comma":case"space":break;case"comment":w=z.source.substring(1);break D;default:break D}if(w){let z=W.items[W.items.length-1];if(ax.isPair(z))z=z.value??z.key;if(z.comment)z.comment+=`
|
|
181
|
+
`+w;else z.comment=w;L.comment=L.comment.substring(w.length+1)}}}if(!G&&!b&&!L.found){let w=T?D(F,T,L,J):$(F,L.end,b,null,L,J);if(W.items.push(w),U=w.range[2],UG(T))J(w.range,"BLOCK_IN_FLOW",_G)}else{F.atKey=!0;let w=L.end,z=N?D(F,N,L,J):$(F,w,q,null,L,J);if(UG(N))J(z.range,"BLOCK_IN_FLOW",_G);F.atKey=!1;let s=JO.resolveProps(b??[],{flow:B,indicator:"map-value-ind",next:T,offset:z.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(s.found){if(!G&&!L.found&&F.options.strict){if(b)for(let $D of b){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(L.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(T)if("source"in T&&T.source?.[0]===":")J(T,"MISSING_CHAR",`Missing space after : in ${B}`);else J(s.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let QD=T?D(F,T,s,J):s.found?$(F,s.end,b,null,s,J):null;if(QD){if(UG(T))J(QD.range,"BLOCK_IN_FLOW",_G)}else if(s.comment)if(z.comment)z.comment+=`
|
|
182
|
+
`+s.comment;else z.comment=s.comment;let VD=new ox.Pair(z,QD);if(F.options.keepSourceTokens)VD.srcToken=R;if(G){let $D=W;if($g.mapIncludes(F,$D.items,z))J(w,"DUPLICATE_KEY","Map keys must be unique");$D.items.push(VD)}else{let $D=new XO.YAMLMap(F.schema);$D.flow=!0,$D.items.push(VD);let rD=(QD??z).range;$D.range=[z.range[0],rD[1],rD[2]],W.items.push($D)}U=QD?QD.range[2]:s.end}}let Q=G?"}":"]",[A,...O]=X.end,E=U;if(A?.source===Q)E=A.offset+A.source.length;else{let K=B[0].toUpperCase()+B.substring(1),R=_?`${K} must end with a ${Q}`:`${K} in block collection must be sufficiently indented and end with a ${Q}`;if(J(U,_?"MISSING_CHAR":"BAD_INDENT",R),A&&A.source.length!==1)O.unshift(A)}if(O.length>0){let K=ex.resolveEnd(O,E,F.options.strict,J);if(K.comment)if(W.comment)W.comment+=`
|
|
183
|
+
`+K.comment;else W.comment=K.comment;W.range=[X.offset,E,K.offset]}else W.range=[X.offset,E,E];return W}Xg.resolveFlowCollection=Fg});var YO=f((Qg)=>{var Gg=UD(),Yg=lD(),Bg=b8(),Hg=f8(),Wg=$O(),Vg=FO(),_g=GO();function QG(D,$,F,X,J,Y){let G=F.type==="block-map"?Wg.resolveBlockMap(D,$,F,X,Y):F.type==="block-seq"?Vg.resolveBlockSeq(D,$,F,X,Y):_g.resolveFlowCollection(D,$,F,X,Y),B=G.constructor;if(J==="!"||J===B.tagName)return G.tag=B.tagName,G;if(J)G.tag=J;return G}function Ug(D,$,F,X,J){let Y=X.tag,G=!Y?null:$.directives.tagName(Y.source,(Q)=>J(Y,"TAG_RESOLVE_FAILED",Q));if(F.type==="block-seq"){let{anchor:Q,newlineAfterProp:A}=X,O=Q&&Y?Q.offset>Y.offset?Q:Y:Q??Y;if(O&&(!A||A.offset<O.offset))J(O,"MISSING_CHAR","Missing newline after block sequence props")}let B=F.type==="block-map"?"map":F.type==="block-seq"?"seq":F.start.source==="{"?"map":"seq";if(!Y||!G||G==="!"||G===Bg.YAMLMap.tagName&&B==="map"||G===Hg.YAMLSeq.tagName&&B==="seq")return QG(D,$,F,J,G);let H=$.schema.tags.find((Q)=>Q.tag===G&&Q.collection===B);if(!H){let Q=$.schema.knownTags[G];if(Q?.collection===B)$.schema.tags.push(Object.assign({},Q,{default:!1})),H=Q;else{if(Q)J(Y,"BAD_COLLECTION_TYPE",`${Q.tag} used for ${B} collection, but expects ${Q.collection??"scalar"}`,!0);else J(Y,"TAG_RESOLVE_FAILED",`Unresolved tag: ${G}`,!0);return QG(D,$,F,J,G)}}let W=QG(D,$,F,J,G,H),_=H.resolve?.(W,(Q)=>J(Y,"TAG_RESOLVE_FAILED",Q),$.options)??W,U=Gg.isNode(_)?_:new Yg.Scalar(_);if(U.range=W.range,U.tag=G,H?.format)U.format=H.format;return U}Qg.composeCollection=Ug});var KG=f((Rg)=>{var AG=lD();function Kg(D,$,F){let X=$.offset,J=Eg($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let Y=J.mode===">"?AG.Scalar.BLOCK_FOLDED:AG.Scalar.BLOCK_LITERAL,G=$.source?Og($.source):[],B=G.length;for(let E=G.length-1;E>=0;--E){let K=G[E][1];if(K===""||K==="\r")B=E;else break}if(B===0){let E=J.chomp==="+"&&G.length>0?`
|
|
184
|
+
`.repeat(Math.max(1,G.length-1)):"",K=X+J.length;if($.source)K+=$.source.length;return{value:E,type:Y,comment:J.comment,range:[X,K,K]}}let H=$.indent+J.indent,W=$.offset+J.length,_=0;for(let E=0;E<B;++E){let[K,R]=G[E];if(R===""||R==="\r"){if(J.indent===0&&K.length>H)H=K.length}else{if(K.length<H)F(W+K.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(J.indent===0)H=K.length;if(_=E,H===0&&!D.atRoot)F(W,"BAD_INDENT","Block scalar values in collections must be indented");break}W+=K.length+R.length+1}for(let E=G.length-1;E>=B;--E)if(G[E][0].length>H)B=E+1;let U="",Q="",A=!1;for(let E=0;E<_;++E)U+=G[E][0].slice(H)+`
|
|
185
|
+
`;for(let E=_;E<B;++E){let[K,R]=G[E];W+=K.length+R.length+1;let q=R[R.length-1]==="\r";if(q)R=R.slice(0,-1);if(R&&K.length<H){let b=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-R.length-(q?2:1),"BAD_INDENT",b),K=""}if(Y===AG.Scalar.BLOCK_LITERAL)U+=Q+K.slice(H)+R,Q=`
|
|
186
186
|
`;else if(K.length>H||R[0]==="\t"){if(Q===" ")Q=`
|
|
187
187
|
`;else if(!A&&Q===`
|
|
188
188
|
`)Q=`
|
|
@@ -191,154 +191,154 @@ ${W}
|
|
|
191
191
|
`,A=!0}else if(R==="")if(Q===`
|
|
192
192
|
`)U+=`
|
|
193
193
|
`;else Q=`
|
|
194
|
-
`;else U+=Q+R,Q=" ",A=!1}switch(J.chomp){case"-":break;case"+":for(let
|
|
195
|
-
`+G[
|
|
194
|
+
`;else U+=Q+R,Q=" ",A=!1}switch(J.chomp){case"-":break;case"+":for(let E=B;E<G.length;++E)U+=`
|
|
195
|
+
`+G[E][0].slice(H);if(U[U.length-1]!==`
|
|
196
196
|
`)U+=`
|
|
197
197
|
`;break;default:U+=`
|
|
198
|
-
`}let
|
|
198
|
+
`}let O=X+J.length+$.source.length;return{value:U,type:Y,comment:J.comment,range:[X,O,O]}}function Eg({offset:D,props:$},F,X){if($[0].type!=="block-scalar-header")return X($[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:J}=$[0],Y=J[0],G=0,B="",H=-1;for(let Q=1;Q<J.length;++Q){let A=J[Q];if(!B&&(A==="-"||A==="+"))B=A;else{let O=Number(A);if(!G&&O)G=O;else if(H===-1)H=D+Q}}if(H!==-1)X(H,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${J}`);let W=!1,_="",U=J.length;for(let Q=1;Q<$.length;++Q){let A=$[Q];switch(A.type){case"space":W=!0;case"newline":U+=A.source.length;break;case"comment":if(F&&!W)X(A,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");U+=A.source.length,_=A.source.substring(1);break;case"error":X(A,"UNEXPECTED_TOKEN",A.message),U+=A.source.length;break;default:{let O=`Unexpected token in block scalar header: ${A.type}`;X(A,"UNEXPECTED_TOKEN",O);let E=A.source;if(E&&typeof E==="string")U+=E.length}}}return{mode:Y,indent:G,chomp:B,comment:_,length:U}}function Og(D){let $=D.split(/\n( *)/),F=$[0],X=F.match(/^( *)/),Y=[X?.[1]?[X[1],F.slice(X[1].length)]:["",F]];for(let G=1;G<$.length;G+=2)Y.push([$[G],$[G+1]]);return Y}Rg.resolveBlockScalar=Kg});var OG=f((Ig)=>{var EG=lD(),Mg=k6();function Zg(D,$,F){let{offset:X,type:J,source:Y,end:G}=D,B,H,W=(Q,A,O)=>F(X+Q,A,O);switch(J){case"scalar":B=EG.Scalar.PLAIN,H=qg(Y,W);break;case"single-quoted-scalar":B=EG.Scalar.QUOTE_SINGLE,H=Ng(Y,W);break;case"double-quoted-scalar":B=EG.Scalar.QUOTE_DOUBLE,H=Pg(Y,W);break;default:return F(D,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${J}`),{value:"",type:null,comment:"",range:[X,X+Y.length,X+Y.length]}}let _=X+Y.length,U=Mg.resolveEnd(G,_,$,F);return{value:H,type:B,comment:U.comment,range:[X,_,U.offset]}}function qg(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 BO(D)}function Ng(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return BO(D.slice(1,-1)).replace(/''/g,"'")}function BO(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
199
199
|
`,"sy"),F=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
200
200
|
`,"sy")}catch{$=/(.*?)[ \t]*\r?\n/sy,F=/[ \t]*(.*?)[ \t]*\r?\n/sy}let X=$.exec(D);if(!X)return D;let J=X[1],Y=" ",G=$.lastIndex;F.lastIndex=G;while(X=F.exec(D)){if(X[1]==="")if(Y===`
|
|
201
201
|
`)J+=Y;else Y=`
|
|
202
|
-
`;else J+=Y+X[1],Y=" ";G=F.lastIndex}let B=/[ \t]*(.*)/sy;return B.lastIndex=G,X=B.exec(D),J+Y+(X?.[1]??"")}function
|
|
202
|
+
`;else J+=Y+X[1],Y=" ";G=F.lastIndex}let B=/[ \t]*(.*)/sy;return B.lastIndex=G,X=B.exec(D),J+Y+(X?.[1]??"")}function Pg(D,$){let F="";for(let X=1;X<D.length-1;++X){let J=D[X];if(J==="\r"&&D[X+1]===`
|
|
203
203
|
`)continue;if(J===`
|
|
204
|
-
`){let{fold:Y,offset:G}=
|
|
204
|
+
`){let{fold:Y,offset:G}=Lg(D,X);F+=Y,X=G}else if(J==="\\"){let Y=D[++X],G=jg[Y];if(G)F+=G;else if(Y===`
|
|
205
205
|
`){Y=D[X+1];while(Y===" "||Y==="\t")Y=D[++X+1]}else if(Y==="\r"&&D[X+1]===`
|
|
206
|
-
`){Y=D[++X+1];while(Y===" "||Y==="\t")Y=D[++X+1]}else if(Y==="x"||Y==="u"||Y==="U"){let B={x:2,u:4,U:8}[Y];F+=
|
|
206
|
+
`){Y=D[++X+1];while(Y===" "||Y==="\t")Y=D[++X+1]}else if(Y==="x"||Y==="u"||Y==="U"){let B={x:2,u:4,U:8}[Y];F+=zg(D,X+1,B,$),X+=B}else{let B=D.substr(X-1,2);$(X-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),F+=B}}else if(J===" "||J==="\t"){let Y=X,G=D[X+1];while(G===" "||G==="\t")G=D[++X+1];if(G!==`
|
|
207
207
|
`&&!(G==="\r"&&D[X+2]===`
|
|
208
|
-
`))F+=X>Y?D.slice(Y,X+1):J}else F+=J}if(D[D.length-1]!=='"'||D.length===1)$(D.length,"MISSING_CHAR",'Missing closing "quote');return F}function
|
|
208
|
+
`))F+=X>Y?D.slice(Y,X+1):J}else F+=J}if(D[D.length-1]!=='"'||D.length===1)$(D.length,"MISSING_CHAR",'Missing closing "quote');return F}function Lg(D,$){let F="",X=D[$+1];while(X===" "||X==="\t"||X===`
|
|
209
209
|
`||X==="\r"){if(X==="\r"&&D[$+2]!==`
|
|
210
210
|
`)break;if(X===`
|
|
211
211
|
`)F+=`
|
|
212
|
-
`;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var
|
|
213
|
-
`,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function
|
|
212
|
+
`;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var jg={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
213
|
+
`,r:"\r",t:"\t",v:"\v",N:"\x85",_:"\xA0",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function zg(D,$,F,X){let J=D.substr($,F),G=J.length===F&&/^[0-9a-fA-F]+$/.test(J)?parseInt(J,16):NaN;if(isNaN(G)){let B=D.substr($-2,F+2);return X($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${B}`),B}return String.fromCodePoint(G)}Ig.resolveFlowScalar=Zg});var WO=f((vg)=>{var M1=UD(),HO=lD(),wg=KG(),Sg=OG();function bg(D,$,F,X){let{value:J,type:Y,comment:G,range:B}=$.type==="block-scalar"?wg.resolveBlockScalar(D,$,X):Sg.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(U)=>X(F,"TAG_RESOLVE_FAILED",U)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[M1.SCALAR];else if(H)W=fg(D.schema,J,H,F,X);else if($.type==="scalar")W=kg(D,J,$,X);else W=D.schema[M1.SCALAR];let _;try{let U=W.resolve(J,(Q)=>X(F??$,"TAG_RESOLVE_FAILED",Q),D.options);_=M1.isScalar(U)?U:new HO.Scalar(U)}catch(U){let Q=U instanceof Error?U.message:String(U);X(F??$,"TAG_RESOLVE_FAILED",Q),_=new HO.Scalar(J)}if(_.range=B,_.source=J,Y)_.type=Y;if(H)_.tag=H;if(W.format)_.format=W.format;if(G)_.comment=G;return _}function fg(D,$,F,X,J){if(F==="!")return D[M1.SCALAR];let Y=[];for(let B of D.tags)if(!B.collection&&B.tag===F)if(B.default&&B.test)Y.push(B);else return B;for(let B of Y)if(B.test?.test($))return B;let G=D.knownTags[F];if(G&&!G.collection)return D.tags.push(Object.assign({},G,{default:!1,test:void 0})),G;return J(X,"TAG_RESOLVE_FAILED",`Unresolved tag: ${F}`,F!=="tag:yaml.org,2002:str"),D[M1.SCALAR]}function kg({atKey:D,directives:$,schema:F},X,J,Y){let G=F.tags.find((B)=>(B.default===!0||D&&B.default==="key")&&B.test?.test(X))||F[M1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[M1.SCALAR];if(G.tag!==B.tag){let H=$.tagString(G.tag),W=$.tagString(B.tag),_=`Value may be parsed as either ${H} or ${W}`;Y(J,"TAG_RESOLVE_FAILED",_,!0)}}return G}vg.composeScalar=bg});var VO=f((gg)=>{function xg(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}gg.emptyScalarPosition=xg});var QO=f((ng)=>{var ug=X9(),mg=UD(),pg=YO(),_O=WO(),cg=k6(),dg=VO(),lg={composeNode:UO,composeEmptyNode:RG};function UO(D,$,F,X){let J=D.atKey,{spaceBefore:Y,comment:G,anchor:B,tag:H}=F,W,_=!0;switch($.type){case"alias":if(W=ig(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=_O.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=pg.composeCollection(lg,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(U){let Q=U instanceof Error?U.message:String(U);X($,"RESOURCE_EXHAUSTION",Q)}break;default:{let U=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",U),_=!1}}if(W??(W=RG(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&&(!mg.isScalar(W)||typeof W.value!=="string"||W.tag&&W.tag!=="tag:yaml.org,2002:str"))X(H??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(Y)W.spaceBefore=!0;if(G)if($.type==="scalar"&&$.source==="")W.comment=G;else W.commentBefore=G;if(D.options.keepSourceTokens&&_)W.srcToken=$;return W}function RG(D,$,F,X,{spaceBefore:J,comment:Y,anchor:G,tag:B,end:H},W){let _={type:"scalar",offset:dg.emptyScalarPosition($,F,X),indent:-1,source:""},U=_O.composeScalar(D,_,B,W);if(G){if(U.anchor=G.source.substring(1),U.anchor==="")W(G,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)U.spaceBefore=!0;if(Y)U.comment=Y,U.range[2]=H;return U}function ig({options:D},{offset:$,source:F,end:X},J){let Y=new ug.Alias(F.substring(1));if(Y.source==="")J($,"BAD_ALIAS","Alias cannot be an empty string");if(Y.source.endsWith(":"))J($+F.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let G=$+F.length,B=cg.resolveEnd(X,G,D.strict,J);if(Y.range=[$,G,B.offset],B.comment)Y.comment=B.comment;return Y}ng.composeEmptyNode=RG;ng.composeNode=UO});var KO=f((Dy)=>{var ag=R9(),AO=QO(),og=k6(),tg=M9();function eg(D,$,{offset:F,start:X,value:J,end:Y},G){let B=Object.assign({_directives:$},D),H=new ag.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},_=tg.resolveProps(X,{indicator:"doc-start",next:J??Y?.[0],offset:F,onError:G,parentIndent:0,startOnNewline:!0});if(_.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!_.hasNewline)G(_.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?AO.composeNode(W,J,_,G):AO.composeEmptyNode(W,_.end,X,null,_,G);let U=H.contents.range[2],Q=og.resolveEnd(Y,U,!1,G);if(Q.comment)H.comment=Q.comment;return H.range=[F,U,Q.offset],H}Dy.composeDoc=eg});var CG=f((By)=>{var Fy=X8("process"),Xy=NJ(),Jy=R9(),Z9=C9(),EO=UD(),Gy=KO(),Yy=k6();function q9(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 OO(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let Y=D[J];switch(Y[0]){case"#":$+=($===""?"":X?`
|
|
214
214
|
|
|
215
215
|
`:`
|
|
216
|
-
`)+(Y.substring(1)||" "),F=!0,X=!1;break;case"%":if(D[J+1]?.[0]!=="#")J+=1;F=!1;break;default:if(!F)X=!0;F=!1}}return{comment:$,afterEmptyLine:X}}class
|
|
217
|
-
${F}`:F;else if(X||D.directives.docStart||!J)D.commentBefore=F;else if(
|
|
216
|
+
`)+(Y.substring(1)||" "),F=!0,X=!1;break;case"%":if(D[J+1]?.[0]!=="#")J+=1;F=!1;break;default:if(!F)X=!0;F=!1}}return{comment:$,afterEmptyLine:X}}class RO{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let Y=q9($);if(J)this.warnings.push(new Z9.YAMLWarning(Y,F,X));else this.errors.push(new Z9.YAMLParseError(Y,F,X))},this.directives=new Xy.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=OO(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
|
|
217
|
+
${F}`:F;else if(X||D.directives.docStart||!J)D.commentBefore=F;else if(EO.isCollection(J)&&!J.flow&&J.items.length>0){let Y=J.items[0];if(EO.isPair(Y))Y=Y.key;let G=Y.commentBefore;Y.commentBefore=G?`${F}
|
|
218
218
|
${G}`:F}else{let Y=J.commentBefore;J.commentBefore=Y?`${F}
|
|
219
|
-
${Y}`:F}}if($)Array.prototype.push.apply(D.errors,this.errors),Array.prototype.push.apply(D.warnings,this.warnings);else D.errors=this.errors,D.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:
|
|
220
|
-
${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.push(new Z9.YAMLParseError(q9(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
|
|
219
|
+
${Y}`:F}}if($)Array.prototype.push.apply(D.errors,this.errors),Array.prototype.push.apply(D.warnings,this.warnings);else D.errors=this.errors,D.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:OO(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(Fy.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=q9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Gy.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 Z9.YAMLParseError(q9(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 Z9.YAMLParseError(q9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=Yy.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}
|
|
220
|
+
${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.push(new Z9.YAMLParseError(q9(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 Jy.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}}}By.Composer=RO});var ZO=f((Ey)=>{var Wy=KG(),Vy=OG(),_y=C9(),CO=B9();function Uy(D,$=!0,F){if(D){let X=(J,Y,G)=>{let B=typeof J==="number"?J:Array.isArray(J)?J[0]:J.offset;if(F)F(B,Y,G);else throw new _y.YAMLParseError([B,B+1],Y,G)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Vy.resolveFlowScalar(D,$,X);case"block-scalar":return Wy.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function Qy(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:Y=-1,type:G="PLAIN"}=$,B=CO.stringifyString({type:G,value:D},{implicitKey:F,indent:X>0?" ".repeat(X):"",inFlow:J,options:{blockQuote:!0,lineWidth:-1}}),H=$.end??[{type:"newline",offset:-1,indent:X,source:`
|
|
221
221
|
`}];switch(B[0]){case"|":case">":{let W=B.indexOf(`
|
|
222
222
|
`),_=B.substring(0,W),U=B.substring(W+1)+`
|
|
223
|
-
`,Q=[{type:"block-scalar-header",offset:Y,indent:X,source:_}];if(!
|
|
224
|
-
`});return{type:"block-scalar",offset:Y,indent:X,props:Q,source:U}}case'"':return{type:"double-quoted-scalar",offset:Y,indent:X,source:B,end:H};case"'":return{type:"single-quoted-scalar",offset:Y,indent:X,source:B,end:H};default:return{type:"scalar",offset:Y,indent:X,source:B,end:H}}}function
|
|
223
|
+
`,Q=[{type:"block-scalar-header",offset:Y,indent:X,source:_}];if(!MO(Q,H))Q.push({type:"newline",offset:-1,indent:X,source:`
|
|
224
|
+
`});return{type:"block-scalar",offset:Y,indent:X,props:Q,source:U}}case'"':return{type:"double-quoted-scalar",offset:Y,indent:X,source:B,end:H};case"'":return{type:"single-quoted-scalar",offset:Y,indent:X,source:B,end:H};default:return{type:"scalar",offset:Y,indent:X,source:B,end:H}}}function Ay(D,$,F={}){let{afterKey:X=!1,implicitKey:J=!1,inFlow:Y=!1,type:G}=F,B="indent"in D?D.indent:null;if(X&&typeof B==="number")B+=2;if(!G)switch(D.type){case"single-quoted-scalar":G="QUOTE_SINGLE";break;case"double-quoted-scalar":G="QUOTE_DOUBLE";break;case"block-scalar":{let W=D.props[0];if(W.type!=="block-scalar-header")throw Error("Invalid block scalar header");G=W.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:G="PLAIN"}let H=CO.stringifyString({type:G,value:$},{implicitKey:J||B===null,indent:B!==null&&B>0?" ".repeat(B):"",inFlow:Y,options:{blockQuote:!0,lineWidth:-1}});switch(H[0]){case"|":case">":Ky(D,H);break;case'"':MG(D,H,"double-quoted-scalar");break;case"'":MG(D,H,"single-quoted-scalar");break;default:MG(D,H,"scalar")}}function Ky(D,$){let F=$.indexOf(`
|
|
225
225
|
`),X=$.substring(0,F),J=$.substring(F+1)+`
|
|
226
|
-
`;if(D.type==="block-scalar"){let Y=D.props[0];if(Y.type!=="block-scalar-header")throw Error("Invalid block scalar header");Y.source=X,D.source=J}else{let{offset:Y}=D,G="indent"in D?D.indent:-1,B=[{type:"block-scalar-header",offset:Y,indent:G,source:X}];if(!
|
|
227
|
-
`});for(let H of Object.keys(D))if(H!=="type"&&H!=="offset")delete D[H];Object.assign(D,{type:"block-scalar",indent:G,props:B,source:J})}}function
|
|
228
|
-
`};delete D.items,Object.assign(D,{type:F,source:$,end:[J]});break}default:{let X="indent"in D?D.indent:-1,J="end"in D&&Array.isArray(D.end)?D.end.filter((Y)=>Y.type==="space"||Y.type==="comment"||Y.type==="newline"):[];for(let Y of Object.keys(D))if(Y!=="type"&&Y!=="offset")delete D[Y];Object.assign(D,{type:F,indent:X,source:$,end:J})}}}
|
|
226
|
+
`;if(D.type==="block-scalar"){let Y=D.props[0];if(Y.type!=="block-scalar-header")throw Error("Invalid block scalar header");Y.source=X,D.source=J}else{let{offset:Y}=D,G="indent"in D?D.indent:-1,B=[{type:"block-scalar-header",offset:Y,indent:G,source:X}];if(!MO(B,"end"in D?D.end:void 0))B.push({type:"newline",offset:-1,indent:G,source:`
|
|
227
|
+
`});for(let H of Object.keys(D))if(H!=="type"&&H!=="offset")delete D[H];Object.assign(D,{type:"block-scalar",indent:G,props:B,source:J})}}function MO(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 MG(D,$,F){switch(D.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":D.type=F,D.source=$;break;case"block-scalar":{let X=D.props.slice(1),J=$.length;if(D.props[0].type==="block-scalar-header")J-=D.props[0].source.length;for(let Y of X)Y.offset+=J;delete D.props,Object.assign(D,{type:F,source:$,end:X});break}case"block-map":case"block-seq":{let J={type:"newline",offset:D.offset+$.length,indent:D.indent,source:`
|
|
228
|
+
`};delete D.items,Object.assign(D,{type:F,source:$,end:[J]});break}default:{let X="indent"in D?D.indent:-1,J="end"in D&&Array.isArray(D.end)?D.end.filter((Y)=>Y.type==="space"||Y.type==="comment"||Y.type==="newline"):[];for(let Y of Object.keys(D))if(Y!=="type"&&Y!=="offset")delete D[Y];Object.assign(D,{type:F,indent:X,source:$,end:J})}}}Ey.createScalarToken=Qy;Ey.resolveAsScalar=Uy;Ey.setScalarValue=Ay});var qO=f((Zy)=>{var My=(D)=>("type"in D)?q5(D):Z5(D);function q5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=q5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=Z5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=Z5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=Z5(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 Z5({start:D,key:$,sep:F,value:X}){let J="";for(let Y of D)J+=Y.source;if($)J+=q5($);if(F)for(let Y of F)J+=Y.source;if(X)J+=q5(X);return J}Zy.stringify=My});var LO=f((Py)=>{var ZG=Symbol("break visit"),Ny=Symbol("skip children"),NO=Symbol("remove item");function Z1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};PO(Object.freeze([]),D,$)}Z1.BREAK=ZG;Z1.SKIP=Ny;Z1.REMOVE=NO;Z1.itemAtPath=(D,$)=>{let F=D;for(let[X,J]of $){let Y=F?.[X];if(Y&&"items"in Y)F=Y.items[J];else return}return F};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 PO(D,$,F){let X=F($,D);if(typeof X==="symbol")return X;for(let J of["key","value"]){let Y=$[J];if(Y&&"items"in Y){for(let G=0;G<Y.items.length;++G){let B=PO(Object.freeze(D.concat([[J,G]])),Y.items[G],F);if(typeof B==="number")G=B-1;else if(B===ZG)return ZG;else if(B===NO)Y.items.splice(G,1),G-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}Py.visit=Z1});var N5=f((by)=>{var qG=ZO(),jy=qO(),zy=LO(),NG="\uFEFF",PG="\x02",LG="\x18",jG="\x1F",Iy=(D)=>!!D&&("items"in D),Ty=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function wy(D){switch(D){case NG:return"<BOM>";case PG:return"<DOC>";case LG:return"<FLOW_END>";case jG:return"<SCALAR>";default:return JSON.stringify(D)}}function Sy(D){switch(D){case NG:return"byte-order-mark";case PG:return"doc-mode";case LG:return"flow-error-end";case jG:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
229
229
|
`:case`\r
|
|
230
|
-
`: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}
|
|
231
|
-
`:case"\r":case"\t":return!0;default:return!1}}var
|
|
232
|
-
\r `),
|
|
230
|
+
`: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}by.createScalarToken=qG.createScalarToken;by.resolveAsScalar=qG.resolveAsScalar;by.setScalarValue=qG.setScalarValue;by.stringify=jy.stringify;by.visit=zy.visit;by.BOM=NG;by.DOCUMENT=PG;by.FLOW_END=LG;by.SCALAR=jG;by.isCollection=Iy;by.isScalar=Ty;by.prettyToken=wy;by.tokenType=Sy});var IG=f((sy)=>{var N9=N5();function M2(D){switch(D){case void 0:case" ":case`
|
|
231
|
+
`:case"\r":case"\t":return!0;default:return!1}}var jO=new Set("0123456789ABCDEFabcdef"),iy=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),P5=new Set(",[]{}"),ny=new Set(` ,[]{}
|
|
232
|
+
\r `),zG=(D)=>!D||ny.has(D);class zO{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(!$||$==="#"||$===`
|
|
233
233
|
`)return!0;if($==="\r")return this.buffer[D+1]===`
|
|
234
234
|
`;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===`
|
|
235
235
|
`||!X&&!this.atEnd)return D+F+1}return $===`
|
|
236
236
|
`||F>=this.indentNext||!$&&!this.atEnd?D+F:-1}if($==="-"||$==="."){let F=this.buffer.substr(D,3);if((F==="---"||F==="...")&&M2(this.buffer[D+3]))return-1}return D}getLine(){let D=this.lineEndPos;if(typeof D!=="number"||D!==-1&&D<this.pos)D=this.buffer.indexOf(`
|
|
237
|
-
`,this.pos),this.lineEndPos=D;if(D===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[D-1]==="\r")D-=1;return this.buffer.substring(this.pos,D)}hasChars(D){return this.pos+D<=this.buffer.length}setNext(D){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=D,null}peek(D){return this.buffer.substr(this.pos,D)}*parseNext(D){switch(D){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let D=this.getLine();if(D===null)return this.setNext("stream");if(D[0]===
|
|
237
|
+
`,this.pos),this.lineEndPos=D;if(D===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[D-1]==="\r")D-=1;return this.buffer.substring(this.pos,D)}hasChars(D){return this.pos+D<=this.buffer.length}setNext(D){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=D,null}peek(D){return this.buffer.substr(this.pos,D)}*parseNext(D){switch(D){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let D=this.getLine();if(D===null)return this.setNext("stream");if(D[0]===N9.BOM)yield*this.pushCount(1),D=D.substring(1);if(D[0]==="%"){let $=D.length,F=D.indexOf("#");while(F!==-1){let J=D[F-1];if(J===" "||J==="\t"){$=F-1;break}else F=D.indexOf("#",F+1)}while(!0){let J=D[$-1];if(J===" "||J==="\t")$-=1;else break}let X=(yield*this.pushCount($))+(yield*this.pushSpaces(!0));return yield*this.pushCount(D.length-X),this.pushNewline(),"stream"}if(this.atLineEnd()){let $=yield*this.pushSpaces(!0);return yield*this.pushCount(D.length-$),yield*this.pushNewline(),"stream"}return yield N9.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let D=this.charAt(0);if(!D&&!this.atEnd)return this.setNext("line-start");if(D==="-"||D==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let $=this.peek(3);if(($==="---"||$==="...")&&M2(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,$==="---"?"doc":"stream"}if(this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!M2(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){let[D,$]=this.peek(2);if(!$&&!this.atEnd)return this.setNext("block-start");if((D==="-"||D==="?"||D===":")&&M2($)){let F=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=F,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let D=this.getLine();if(D===null)return this.setNext("doc");let $=yield*this.pushIndicators();switch(D[$]){case"#":yield*this.pushCount(D.length-$);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(zG),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return $+=yield*this.parseBlockScalarHeader(),$+=yield*this.pushSpaces(!0),yield*this.pushCount(D.length-$),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let D,$,F=-1;do{if(D=yield*this.pushNewline(),D>0)$=yield*this.pushSpaces(!1),this.indentValue=F=$;else $=0;$+=yield*this.pushSpaces(!0)}while(D+$>0);let X=this.getLine();if(X===null)return this.setNext("flow");if(F!==-1&&F<this.indentNext&&X[0]!=="#"||F===0&&(X.startsWith("---")||X.startsWith("..."))&&M2(X[3])){if(!(F===this.indentNext-1&&this.flowLevel===1&&(X[0]==="]"||X[0]==="}")))return this.flowLevel=0,yield N9.FLOW_END,yield*this.parseLineStart()}let J=0;while(X[J]===",")J+=yield*this.pushCount(1),J+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(J+=yield*this.pushIndicators(),X[J]){case void 0:return"flow";case"#":return yield*this.pushCount(X.length-J),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(zG),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let Y=this.charAt(1);if(this.flowKey||M2(Y)||Y===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let D=this.charAt(0),$=this.buffer.indexOf(D,this.pos+1);if(D==="'")while($!==-1&&this.buffer[$+1]==="'")$=this.buffer.indexOf("'",$+2);else while($!==-1){let J=0;while(this.buffer[$-1-J]==="\\")J+=1;if(J%2===0)break;$=this.buffer.indexOf('"',$+1)}let F=this.buffer.substring(0,$),X=F.indexOf(`
|
|
238
238
|
`,this.pos);if(X!==-1){while(X!==-1){let J=this.continueScalar(X+1);if(J===-1)break;X=F.indexOf(`
|
|
239
239
|
`,J)}if(X!==-1)$=X-(F[X-1]==="\r"?2:1)}if($===-1){if(!this.atEnd)return this.setNext("quoted-scalar");$=this.buffer.length}return yield*this.pushToIndex($+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let D=this.pos;while(!0){let $=this.buffer[++D];if($==="+")this.blockScalarKeep=!0;else if($>"0"&&$<="9")this.blockScalarIndent=Number($)-1;else if($!=="-")break}return yield*this.pushUntil(($)=>M2($)||$==="#")}*parseBlockScalar(){let D=this.pos-1,$=0,F;D:for(let J=this.pos;F=this.buffer[J];++J)switch(F){case" ":$+=1;break;case`
|
|
240
240
|
`:D=J,$=0;break;case"\r":{let Y=this.buffer[J+1];if(!Y&&!this.atEnd)return this.setNext("block-scalar");if(Y===`
|
|
241
241
|
`)break}default:break D}if(!F&&!this.atEnd)return this.setNext("block-scalar");if($>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=$;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let J=this.continueScalar(D+1);if(J===-1)break;D=this.buffer.indexOf(`
|
|
242
242
|
`,J)}while(D!==-1);if(D===-1){if(!this.atEnd)return this.setNext("block-scalar");D=this.buffer.length}}let X=D+1;F=this.buffer[X];while(F===" ")F=this.buffer[++X];if(F==="\t"){while(F==="\t"||F===" "||F==="\r"||F===`
|
|
243
243
|
`)F=this.buffer[++X];D=X-1}else if(!this.blockScalarKeep)do{let J=D-1,Y=this.buffer[J];if(Y==="\r")Y=this.buffer[--J];let G=J;while(Y===" ")Y=this.buffer[--J];if(Y===`
|
|
244
|
-
`&&J>=this.pos&&J+1+$>G)D=J;else break}while(!0);return yield
|
|
244
|
+
`&&J>=this.pos&&J+1+$>G)D=J;else break}while(!0);return yield N9.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(M2(J)||D&&P5.has(J))break;$=F}else if(M2(X)){let J=this.buffer[F+1];if(X==="\r")if(J===`
|
|
245
245
|
`)F+=1,X=`
|
|
246
246
|
`,J=this.buffer[F+1];else $=F;if(J==="#"||D&&P5.has(J))break;if(X===`
|
|
247
|
-
`){let Y=this.continueScalar(F+1);if(Y===-1)break;F=Math.max(F,Y-2)}}else{if(D&&P5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield
|
|
247
|
+
`){let Y=this.continueScalar(F+1);if(Y===-1)break;F=Math.max(F,Y-2)}}else{if(D&&P5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield N9.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(zG))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(M2($)||D&&P5.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(!M2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(iy.has($))$=this.buffer[++D];else if($==="%"&&jO.has(this.buffer[D+1])&&jO.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===`
|
|
248
248
|
`)return yield*this.pushCount(1);else if(D==="\r"&&this.charAt(1)===`
|
|
249
|
-
`)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)}}
|
|
249
|
+
`)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)}}sy.Lexer=zO});var TG=f((ay)=>{class IO{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}}}}ay.LineCounter=IO});var wG=f((Du)=>{var ty=X8("process"),TO=N5(),ey=IG();function k8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function wO(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function bO(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 L5(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 v6(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 SO(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!k8($.start,"explicit-key-ind")&&!k8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,bO($.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 fO{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 ey.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,ty.env.LOG_TOKENS)console.log("|",TO.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=TO.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")SO($);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&&wO(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(wO(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 $=L5(this.peek(2)),F=v6($),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(`
|
|
250
250
|
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
251
|
-
`,$)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,$.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return}if(this.indent>=D.indent){let F=!this.onKeyLine&&this.indent===D.indent,X=F&&($.sep||$.explicitKey)&&this.type!=="seq-item-ind",J=[];if(X&&$.sep&&!$.value){let Y=[];for(let G=0;G<$.sep.length;++G){let B=$.sep[G];switch(B.type){case"newline":Y.push(G);break;case"space":break;case"comment":if(B.indent>D.indent)Y.length=0;break;default:Y.length=0}}if(Y.length>=2)J=$.sep.splice(Y[1])}switch(this.type){case"anchor":case"tag":if(X||$.value)J.push(this.sourceToken),D.items.push({start:J}),this.onKeyLine=!0;else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"explicit-key-ind":if(!$.sep&&!$.explicitKey)$.start.push(this.sourceToken),$.explicitKey=!0;else if(X||$.value)J.push(this.sourceToken),D.items.push({start:J,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if($.explicitKey)if(!$.sep)if(
|
|
251
|
+
`,$)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,$.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return}if(this.indent>=D.indent){let F=!this.onKeyLine&&this.indent===D.indent,X=F&&($.sep||$.explicitKey)&&this.type!=="seq-item-ind",J=[];if(X&&$.sep&&!$.value){let Y=[];for(let G=0;G<$.sep.length;++G){let B=$.sep[G];switch(B.type){case"newline":Y.push(G);break;case"space":break;case"comment":if(B.indent>D.indent)Y.length=0;break;default:Y.length=0}}if(Y.length>=2)J=$.sep.splice(Y[1])}switch(this.type){case"anchor":case"tag":if(X||$.value)J.push(this.sourceToken),D.items.push({start:J}),this.onKeyLine=!0;else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"explicit-key-ind":if(!$.sep&&!$.explicitKey)$.start.push(this.sourceToken),$.explicitKey=!0;else if(X||$.value)J.push(this.sourceToken),D.items.push({start:J,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if($.explicitKey)if(!$.sep)if(k8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let Y=v6($.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Y,key:null,sep:[this.sourceToken]}]})}else if($.value)D.items.push({start:[],key:null,sep:[this.sourceToken]});else if(k8($.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(bO($.key)&&!k8($.sep,"newline")){let Y=v6($.start),G=$.key,B=$.sep;B.push(this.sourceToken),delete $.key,delete $.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:Y,key:G,sep:B}]})}else if(J.length>0)$.sep=$.sep.concat(J,this.sourceToken);else $.sep.push(this.sourceToken);else if(!$.sep)Object.assign($,{key:null,sep:[this.sourceToken]});else if($.value||X)D.items.push({start:J,key:null,sep:[this.sourceToken]});else if(k8($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else $.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let Y=this.flowScalar(this.type);if(X||$.value)D.items.push({start:J,key:Y,sep:[]}),this.onKeyLine=!0;else if($.sep)this.stack.push(Y);else Object.assign($,{key:Y,sep:[]}),this.onKeyLine=!0;return}default:{let Y=this.startBlockValue(D);if(Y){if(Y.type==="block-seq"){if(!$.explicitKey&&$.sep&&!k8($.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(F)D.items.push({start:J});this.stack.push(Y);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(D){let $=D.items[D.items.length-1];switch(this.type){case"newline":if($.value){let F="end"in $.value?$.value.end:void 0;if((Array.isArray(F)?F[F.length-1]:void 0)?.type==="comment")F?.push(this.sourceToken);else D.items.push({start:[this.sourceToken]})}else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)D.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment($.start,D.indent)){let X=D.items[D.items.length-2]?.value?.end;if(Array.isArray(X)){Array.prototype.push.apply(X,$.start),X.push(this.sourceToken),D.items.pop();return}}$.start.push(this.sourceToken)}return;case"anchor":case"tag":if($.value||this.indent<=D.indent)break;$.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==D.indent)break;if($.value||k8($.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=L5(F),J=v6(X);SO(D);let Y=D.end.splice(1,D.end.length);Y.push(this.sourceToken);let G={type:"block-map",offset:D.offset,indent:D.indent,items:[{start:J,key:D,sep:Y}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=G}else yield*this.lineEnd(D)}}flowScalar(D){if(this.onNewLine){let $=this.source.indexOf(`
|
|
252
252
|
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
253
|
-
`,$)+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 $=N5(D),F=v6($);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 $=N5(D),F=v6($);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()}}}ty.Parser=bC});var xC=f((Bu)=>{var fC=RG(),Du=R9(),N9=O9(),$u=IJ(),Fu=UD(),Xu=IG(),kC=TG();function vC(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Xu.LineCounter||null,prettyErrors:$}}function Ju(D,$={}){let{lineCounter:F,prettyErrors:X}=vC($),J=new kC.Parser(F?.addNewLine),Y=new fC.Composer($),G=Array.from(Y.compose(J.parse(D)));if(X&&F)for(let B of G)B.errors.forEach(N9.prettifyError(D,F)),B.warnings.forEach(N9.prettifyError(D,F));if(G.length>0)return G;return Object.assign([],{empty:!0},Y.streamInfo())}function hC(D,$={}){let{lineCounter:F,prettyErrors:X}=vC($),J=new kC.Parser(F?.addNewLine),Y=new fC.Composer($),G=null;for(let B of Y.compose(J.parse(D),!0,D.length))if(!G)G=B;else if(G.options.logLevel!=="silent"){G.errors.push(new N9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)G.errors.forEach(N9.prettifyError(D,F)),G.warnings.forEach(N9.prettifyError(D,F));return G}function Gu(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=hC(D,F);if(!J)return null;if(J.warnings.forEach((Y)=>$u.warn(J.options.logLevel,Y)),J.errors.length>0)if(J.options.logLevel!=="silent")throw J.errors[0];else J.errors=[];return J.toJS(Object.assign({reviver:X},F))}function Yu(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(Fu.isDocument(D)&&!X)return D.toString(F);return new Du.Document(D,X,F).toString(F)}Bu.parse=Gu;Bu.parseAllDocuments=Ju;Bu.parseDocument=hC;Bu.stringify=Yu});var Uu,Qu,Au,wG,Ku,h8,Eu,Cu,Ru,Ou,r6D,Mu,Zu,qu,L5,gC,Pu,Nu,Lu,ju,zu,Iu,Tu,wu,Su,bu,fu,ku,vu,hu,xu,gu,yu,uu,mu,pu,cu,du,j5,lu,iu,SG,nu,su;var bG=Z(()=>{Uu=RG(),Qu=R9(),Au=FG(),wG=O9(),Ku=X9(),h8=UD(),Eu=S8(),Cu=lD(),Ru=f8(),Ou=k8(),r6D=q5(),Mu=zG(),Zu=IG(),qu=TG(),L5=xC(),gC=$9();Pu=Uu.Composer,Nu=Qu.Document,Lu=Au.Schema,ju=wG.YAMLError,zu=wG.YAMLParseError,Iu=wG.YAMLWarning,Tu=Ku.Alias,wu=h8.isAlias,Su=h8.isCollection,bu=h8.isDocument,fu=h8.isMap,ku=h8.isNode,vu=h8.isPair,hu=h8.isScalar,xu=h8.isSeq,gu=Eu.Pair,yu=Cu.Scalar,uu=Ru.YAMLMap,mu=Ou.YAMLSeq,pu=Mu.Lexer,cu=Zu.LineCounter,du=qu.Parser,j5=L5.parse,lu=L5.parseAllDocuments,iu=L5.parseDocument,SG=L5.stringify,nu=gC.visit,su=gC.visitAsync});var ru,au,ou,tu,eu,Dm,uC,$m,Fm,yC,Xm,Jm,Gm,mC;var pC=Z(()=>{yD();ru=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()})}),au=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()})}),ou=V.discriminatedUnion("type",[ru,au]),tu=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(),eu=V.record(V.unknown()).and(V.object({cmd:tu.optional()}).partial()),Dm=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),uC=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:eu.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:uC,onErrorKinds:V.array(Dm).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),$m=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()})]),Fm=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:$m,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"]}),yC=V.enum(["auto","ask","deny"]),Xm=V.object({default:yC,rules:V.array(V.object({pattern:V.string().min(1),action:yC}))}),Jm=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()}),Gm=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:Jm.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"})}),mC=V.object({brains:V.array(ou),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:uC,channels:V.array(Fm),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:Xm.optional(),orchestrator:Gm.optional()})});import{writeFile as Ym}from"fs/promises";async function S0(D){let $=await D.select().from(K2).where(v(K2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function L9(D,$,F,X={}){let J=mC.safeParse(F);if(!J.success)throw new g2(J.error.issues);let Y=await S0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==Y.version)throw new y2(X.ifMatchVersion,Y.version);let G=J.data,B=new Set(t2(Y.config).map((A)=>A.path)),H=t2(G),W=new Set(H.map((A)=>A.path));for(let{path:A,value:E}of H)if(E.length>0)await $.put(A,E);for(let A of B)if(!W.has(A))await $.remove(A);let _=A4(G),U=Y.version+1,Q=new Date().toISOString();return await D.update(K2).set({configJson:_,version:U,updatedAt:Q,updatedBy:"api"}).where(v(K2.pk,"default")).run(),{config:_,version:U}}async function j9(D,$,F){let X=VB(D),J=SG({version:F,config:$});try{await Ym(X,J,{encoding:"utf8"})}catch(Y){O.warn(`[mirror-config] failed to write ${X}: ${String(Y)}`)}}async function h6(D){let $=await L9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await j9(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",O.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var g2,y2;var fG=Z(()=>{L2();TD();JD();_0();bG();pC();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 z5(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 I5($.jobId);return{job:F}}}}var I5;var kG=Z(()=>{I5=class I5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class vG{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=V3(F);if(!J){this.replyError($,"unknown_method",`unknown method: ${F}`);return}if(J.routing!=="operator-to-node"){this.replyError($,"wrong_routing",`method ${F} should be handled by gateway, not node`);return}let Y=J.params.safeParse(X??{});if(!Y.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,Y.error.issues);return}let G=Y.data;switch(F){case oD["chat.send"].method:await this.handleChatSend($,G);break;case oD["config.get"].method:await this.handleConfigGet($);break;case oD["config.put"].method:await this.handleConfigPut($,G);break;case oD["token.rotate"].method:await this.handleTokenRotate($);break;case oD["logs.tail"].method:await this.handleLogsTail($,G);break;case oD["approval.list"].method:this.handleApprovalList($);break;case oD["approval.grant"].method:this.handleApprovalGrant($,G);break;case oD["cron.list"].method:await this.handleCronList($,G);break;case oD["cron.add"].method:await this.handleCronAdd($,G);break;case oD["cron.remove"].method:await this.handleCronRemove($,G);break;case oD["cron.update"].method:await this.handleCronUpdate($,G);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){O.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=Bm(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),Y=typeof $.conversationId==="string"?$.conversationId:void 0,G=Y?`gw:conv:${Y}`:`gw:${this.deps.workerId}:${crypto.randomUUID()}`,B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:G,text:J,receivedAt:new Date().toISOString(),raw:{source:"gateway",...X?{sessionReset:!0,resetCommand:X.command}:{},...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(B).catch((H)=>{O.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:G,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),Y=$.decision==="allow"?"allow":"deny",G=F.grant(X,J,Y);this.replyOk(D,{granted:G})}ensureWorkerMatch(D,$){let F=String($.workerId);if(F!==this.deps.workerId)return this.replyError(D,"worker_mismatch",`targeted workerId=${F}, this node is ${this.deps.workerId}`),!1;return!0}async handleCronList(D,$){if(!this.deps.handlers?.cronList){this.replyError(D,"method_not_implemented","cron.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronList();this.replyOk(D,F)}async handleCronAdd(D,$){if(!this.deps.handlers?.cronAdd){this.replyError(D,"method_not_implemented","cron.add handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronAdd({job:$.job});this.replyOk(D,F)}catch(F){this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleCronRemove(D,$){if(!this.deps.handlers?.cronRemove){this.replyError(D,"method_not_implemented","cron.remove handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronRemove({jobId:String($.jobId)});this.replyOk(D,F)}async handleCronUpdate(D,$){if(!this.deps.handlers?.cronUpdate){this.replyError(D,"method_not_implemented","cron.update handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronUpdate({jobId:String($.jobId),patch:$.patch});this.replyOk(D,F)}catch(F){if(F instanceof I5){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 Bm(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}var cC=Z(()=>{J0();JD();fG();kG()});class hG{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=Z2($.conversationId);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:o.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=Z2($.conversationId),X=$.call??{},J=Z2(X.id),Y=Z2(X.name);if(!F||!J||!Y)return null;return{name:o.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:Y,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=Z2($.conversationId);if(!F)return null;return{name:o.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=Z2($.conversationId);if(!F)return null;return{name:o.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=Z2($.conversationId),X=Z2($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:o.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=Z2($.taskId),X=Z2($.toolCallId),J=Z2($.toolName),Y=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||Y===null)return null;let G=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:o.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:G,expiresAt:Y}}}default:return null}}}function Z2(D){return typeof D==="string"&&D.length>0?D:null}var dC=Z(()=>{J0()});function T5(D){let $=wK(D),F=!1,X=null,J=new hG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(G)=>X?.send(G)}),Y=new vG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(G)=>X?.send(G)});return X=new OJ({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(G)=>{F=!1,J.stop(),O.info(`[gateway-client ${$.workerId}] disconnected: ${G}`)},onFrame:(G)=>{if(G.type==="request"){Y.handleRequest(G);return}O.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${G.type}`)},...D.onEnrollmentOtp?{onEnrollmentOtp:D.onEnrollmentOtp}:{},...D.onEnrollmentApproved?{onEnrollmentApproved:D.onEnrollmentApproved}:{},...D.webSocketCtor?{webSocketCtor:D.webSocketCtor}:{}}),X.start(),{async stop(){if(J.stop(),X)await X.stop(),X=null},isConnected(){return F},notifyRuntimeReloaded(){if(F)J.start()}}}async function lC(D){await D.stop()}var iC=Z(()=>{JD();TK();cC();dC()});function Hm(D){if(D instanceof Error)return D.message;return String(D)}async function w5(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:Hm(X)}]}}}function Vm(D){return Wm.has(D)}function _m(D){if(D instanceof Error)return D.message;return String(D)}async function S5(D,$,F={}){if(!Vm($))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 Y={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,Y),{sent:!0,platformResponse:{ok:!0}}}catch(G){return{sent:!1,error:_m(G)}}}var Wm;var nC=Z(()=>{j0();y3();Wm=new Set(["web","line","telegram","lark","whatsapp"])});function Um(D){if(D instanceof Error)return D.message;return String(D)}async function Qm(D){let $=performance.now(),F=new AbortController,X=setTimeout(()=>F.abort(),5000);try{let J=D.runtime.executor.run({messages:[{role:"user",content:"ping"}],signal:F.signal}),Y="";for await(let G of J)if(G.type==="assistant_message_delta"){if(Y+=G.delta,Y.length>=100)break}else if(G.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-$),error:G.error};else if(G.type==="finish")break;return{ok:!0,latencyMs:Math.round(performance.now()-$),output:Y.slice(0,100)}}catch(J){return{ok:!1,latencyMs:Math.round(performance.now()-$),error:Um(J)}}finally{clearTimeout(X)}}async function b5(D,$,F={}){let X=$.executor.engine,J="unknown";try{J=(await D.runtime.executor.health()).status}catch{J="unknown"}if(!F.probe)return{executor:{type:X,status:J}};let Y=await Qm(D);if(!Y.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:Y.latencyMs},...Y.error===void 0?{}:{probeError:Y.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:Y.latencyMs,...Y.output===void 0?{}:{output:Y.output}}}}}function Km(D){if(!D)return"unknown";return D.status}async function sC(D){try{let $=await D();return Km($??null)}catch{return"unknown"}}function Em(D){let $=Cm(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 Cm(D){try{return o2(D)}catch{return null}}function Rm(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function f5(D,$,F){let{runtime:X}=D,J=await sC(()=>X.executor.health()),Y=await sC(()=>X.brain.health()),G=$.brains.map((_)=>({id:_.id,type:_.type,status:Y})),B=Em($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((_)=>{let U=Rm(F.advertisedBaseUrl,_.channel);return{channel:_.channel,enabled:_.enabled,...U?{webhookUrl:U}:{}}});return{workerId:D.workerId,runtimeVersion:Am,configVersion:D.configVersion,brains:G,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Am="0.2.0";var rC=Z(()=>{J1()});async function x8(D,$,F){let X=W6(),{ciphertext:J,nonce:Y,authTag:G}=$.encryptString(X),B=new Date().toISOString();return await D.update(g0).set({apiTokenEnc:J,nonce:Y,authTag:G,rotatedAt:B}).where(v(g0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var aC=Z(()=>{TD();_0();TX()});async function k5(D){return D.list()}async function v5(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 h5(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 oC=Z(()=>{j0()});class q1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new tC);let $=D.timeoutMs??xG,F=Date.now()+$,X=q1.key(D.taskId,D.toolCallId);return new Promise((J)=>{let Y=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);Y.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:Y})})}grant(D,$,F){let X=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 tC,xG=60000;var x5=Z(()=>{tC=class tC extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class DR{items=[];enqueue(D){this.items.push(D)}head(){return this.items[0]}shift(){return this.items.shift()}drain(){let D=this.items;return this.items=[],D}isEmpty(){return this.items.length===0}remove(D){let $=this.items.findIndex((X)=>X.handle.id===D);if($<0)return;let[F]=this.items.splice($,1);return F}values(){return this.items}}function g5(){return Date.now()}function P1(){return new Date().toISOString()}function gG(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class N1{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:P1(),lastActivityAt:P1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let Y={handle:J,req:D,enqueuedAt:g5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},G=this.groups.get(D.group);if(!G)G=new DR,this.groups.set(D.group,G);if(G.enqueue(Y),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let G of this.handles.values())D[G.state]+=1;let $=new Map,F=0;for(let G of this.groups.values())for(let B of G.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let G of X){let B=this.opts.perEngineLimits[G]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(G)??0,W=$.get(G)??0,_=Math.max(0,B-H),U=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[G]={limit:B,active:H,queued:W,available:Math.min(_,U)}}let Y=this.terminalLog.slice(-10).map((G)=>({id:G.handle.id,engine:G.handle.engine,group:G.handle.group,state:G.handle.state,terminatedAt:G.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:Y}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),gG(this.gcTimer)}gcTerminal(){let D=g5()-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=P1(),this.terminalLog.push({handle:D.handle,recordedAt:g5()}),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($){O.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),gG(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(($)=>O.warn(`[process-manager] hard kill for ${D.handle.id} failed: ${String($)}`))}kick(){if(this.disposed)return;while(!0){let D=this.pickNext();if(!D)return;this.startCandidate(D)}}pickNext(){let D=null,$=-1,F=Number.POSITIVE_INFINITY;for(let[X,J]of this.groups.entries()){if(J.isEmpty())continue;if(this.runningGroups.has(X))continue;let Y=J.head();if(!this.canStart(Y.handle))continue;let G=Om[Y.handle.class];if(G>$||G===$&&Y.enqueueSeq<F)D=Y,$=G,F=Y.enqueueSeq}return D}canStart(D){if(this.totalActive()>=this.opts.maxConcurrentTotal)return!1;let $=this.opts.perEngineLimits[D.engine]??this.opts.maxConcurrentTotal;if((this.runningByEngine.get(D.engine)??0)>=$)return!1;return!0}startCandidate(D){let $=this.groups.get(D.handle.group);if($?.shift(),$&&$.isEmpty())this.groups.delete(D.handle.group);let F={handle:D.handle,spawned:null,stallTimer:null,killTimer:null,cancelRequested:!1,killEscalated:!1};this.running.set(D.handle.id,F),this.runningGroups.add(D.handle.group),this.runningByEngine.set(D.handle.engine,(this.runningByEngine.get(D.handle.engine)??0)+1),D.handle.state="spawning",D.handle.startedAt=P1(),D.handle.lastActivityAt=D.handle.startedAt,D.handle.updatedAt=D.handle.startedAt,this.driveJob(F,D)}async driveJob(D,$){let{handle:F,req:X,resolve:J,reject:Y}=$,G=null;try{let B=await X.onSpawn();if(D.spawned=B,D.cancelRequested){try{await B.cancel()}catch{}throw Error("cancelled")}if(F.state="running",F.updatedAt=P1(),this.armStallTimer(D),G=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",Y(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",Y(B)}finally{if(F.updatedAt=P1(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(G)try{G()}catch{}this.terminalLog.push({handle:F,recordedAt:g5()}),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),gG(D.stallTimer)}onActivity(D){if(eC.has(D.handle.state))return;D.handle.lastActivityAt=P1(),this.armStallTimer(D)}onStall(D){if(eC.has(D.handle.state))return;if(D.cancelRequested)return;O.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var eC,Om;var $R=Z(()=>{JD();eC=new Set(["completed","failed","cancelled"]),Om={interactive:3,default:2,background:1}});class x6{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??Mm}nextId(){return this.idCounter+=1,this.idCounter}headers(D){let $={"Content-Type":"application/json",Accept:"application/json, text/event-stream"};if(this.token)$.Authorization=`Bearer ${this.token}`;if(D&&this.sessionId)$["mcp-session-id"]=this.sessionId;return $}async postJson(D,$){let F=new AbortController,X=setTimeout(()=>F.abort(),this.timeoutMs);try{let J=await fetch(this.url,{method:"POST",headers:this.headers($),body:JSON.stringify(D),signal:F.signal});clearTimeout(X);let Y=await J.text(),G=null;if(Y.length>0)try{G=JSON.parse(Y)}catch{G=null}return{response:J,parsed:G}}catch(J){throw clearTimeout(X),J instanceof Error?J:Error(String(J))}}async initialize(){let D={jsonrpc:"2.0",id:this.nextId(),method:"initialize",params:{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:this.clientName,version:this.clientVersion}}},{response:$,parsed:F}=await this.postJson(D,!1);if(!$.ok)throw Error(`MCP initialize failed: HTTP ${$.status}`);if(F?.error)throw Error(`MCP initialize error: ${F.error.message}`);let X=$.headers.get("mcp-session-id");if(!X)throw Error("MCP initialize response missing mcp-session-id header");this.sessionId=X,await this.postJson({jsonrpc:"2.0",method:"notifications/initialized"},!0)}async ensureSession(){if(this.sessionId)return;if(!this.initPromise)this.initPromise=this.initialize().catch((D)=>{throw this.initPromise=null,D});await this.initPromise,this.initPromise=null}async invoke(D,$){await this.ensureSession();let F={jsonrpc:"2.0",id:this.nextId(),method:D,params:$},{response:X,parsed:J}=await this.postJson(F,!0);if(X.status===404||J?.error&&/session/i.test(J.error.message)){this.sessionId=null,await this.ensureSession();let Y=await this.postJson({...F,id:this.nextId()},!0);X=Y.response,J=Y.parsed}if(!X.ok)throw Error(`MCP ${D} failed: HTTP ${X.status}`);if(!J)throw Error(`MCP ${D} returned non-JSON body`);if(J.error)throw Error(`MCP ${D} error: ${J.error.message}`);if(J.result===void 0)throw Error(`MCP ${D} response missing 'result'`);return J.result}async listTools(){return(await this.invoke("tools/list")).tools??[]}async callTool(D,$={}){return this.invoke("tools/call",{name:D,arguments:$})}async callToolJson(D,$={}){let X=(await this.callTool(D,$)).content.find((J)=>J.type==="text");if(!X)throw Error(`MCP tool '${D}' returned no text content`);try{return JSON.parse(X.text)}catch{return O.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var Mm=30000;var FR=Z(()=>{JD()});var yG=Z(()=>{FR()});function XR(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 uG(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:Y,...G}=D,B={id:J,content:X??"",metadata:{...G,tags:XR(D.tags)},createdAt:$,updatedAt:F};if(typeof Y==="number")B.score=Y;return B}function Zm(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 mG{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new x6({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(Zm)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((Y)=>Y.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((Y)=>!Y.created_at||Y.created_at>=D.since);if(D?.until)J=J.filter((Y)=>!Y.created_at||Y.created_at<=D.until);return J.map(uG)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(uG)}async writeMemory(D){let $=D.metadata??{},F={content:D.content},X=typeof $.title==="string"?$.title:typeof $.name==="string"?$.name:void 0;if(X)F.title=X;let J=typeof $.type_id==="string"?$.type_id:this.defaultTypeId,Y=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(Y)F.category=Y;let G=D.tags??XR($.tags);if(G.length>0)F.tags=G.join(",");let B=typeof $.source_type==="string"?$.source_type:"aiworker";if(F.source_type=B,typeof $.source_ref==="string")F.source_ref=$.source_ref;F.skip_compile=!0;let H=await this.client.callToolJson("knowledge_write",F);return uG(H)}}var JR=Z(()=>{yG()});import{join as y5}from"path";async function GR(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function YR(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:j5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function qm(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=j5(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}=YR(D);return{name:String(X.name??$.split("/").pop()?.replace(/\.md$/,"")??""),description:String(X.description??J.split(`
|
|
254
|
-
`)[0]??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}return null}async function
|
|
253
|
+
`,$)+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 $=L5(D),F=v6($);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 $=L5(D),F=v6($);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()}}}Du.Parser=fO});var gO=f((Wu)=>{var kO=CG(),Fu=R9(),P9=C9(),Xu=TJ(),Ju=UD(),Gu=TG(),vO=wG();function hO(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Gu.LineCounter||null,prettyErrors:$}}function Yu(D,$={}){let{lineCounter:F,prettyErrors:X}=hO($),J=new vO.Parser(F?.addNewLine),Y=new kO.Composer($),G=Array.from(Y.compose(J.parse(D)));if(X&&F)for(let B of G)B.errors.forEach(P9.prettifyError(D,F)),B.warnings.forEach(P9.prettifyError(D,F));if(G.length>0)return G;return Object.assign([],{empty:!0},Y.streamInfo())}function xO(D,$={}){let{lineCounter:F,prettyErrors:X}=hO($),J=new vO.Parser(F?.addNewLine),Y=new kO.Composer($),G=null;for(let B of Y.compose(J.parse(D),!0,D.length))if(!G)G=B;else if(G.options.logLevel!=="silent"){G.errors.push(new P9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)G.errors.forEach(P9.prettifyError(D,F)),G.warnings.forEach(P9.prettifyError(D,F));return G}function Bu(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=xO(D,F);if(!J)return null;if(J.warnings.forEach((Y)=>Xu.warn(J.options.logLevel,Y)),J.errors.length>0)if(J.options.logLevel!=="silent")throw J.errors[0];else J.errors=[];return J.toJS(Object.assign({reviver:X},F))}function Hu(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(Ju.isDocument(D)&&!X)return D.toString(F);return new Fu.Document(D,X,F).toString(F)}Wu.parse=Bu;Wu.parseAllDocuments=Yu;Wu.parseDocument=xO;Wu.stringify=Hu});var Au,Ku,Eu,SG,Ou,v8,Ru,Cu,Mu,Zu,t6D,qu,Nu,Pu,j5,yO,Lu,ju,zu,Iu,Tu,wu,Su,bu,fu,ku,vu,hu,xu,gu,yu,uu,mu,pu,cu,du,lu,iu,z5,nu,su,bG,ru,au;var fG=Z(()=>{Au=CG(),Ku=R9(),Eu=XG(),SG=C9(),Ou=X9(),v8=UD(),Ru=w8(),Cu=lD(),Mu=b8(),Zu=f8(),t6D=N5(),qu=IG(),Nu=TG(),Pu=wG(),j5=gO(),yO=$9();Lu=Au.Composer,ju=Ku.Document,zu=Eu.Schema,Iu=SG.YAMLError,Tu=SG.YAMLParseError,wu=SG.YAMLWarning,Su=Ou.Alias,bu=v8.isAlias,fu=v8.isCollection,ku=v8.isDocument,vu=v8.isMap,hu=v8.isNode,xu=v8.isPair,gu=v8.isScalar,yu=v8.isSeq,uu=Ru.Pair,mu=Cu.Scalar,pu=Mu.YAMLMap,cu=Zu.YAMLSeq,du=qu.Lexer,lu=Nu.LineCounter,iu=Pu.Parser,z5=j5.parse,nu=j5.parseAllDocuments,su=j5.parseDocument,bG=j5.stringify,ru=yO.visit,au=yO.visitAsync});var ou,tu,eu,Dm,$m,Fm,mO,Xm,Jm,uO,Gm,Ym,Bm,pO;var cO=Z(()=>{yD();ou=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()})}),tu=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()})}),eu=V.discriminatedUnion("type",[ou,tu]),Dm=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(),$m=V.record(V.unknown()).and(V.object({cmd:Dm.optional()}).partial()),Fm=V.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),mO=V.lazy(()=>V.object({engine:V.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:V.string().min(1),overrides:$m.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:mO,onErrorKinds:V.array(Fm).min(1),maxRetries:V.number().int().min(1).optional()})).optional()})),Xm=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()})]),Jm=V.object({channel:V.enum(["web","line","telegram","lark","whatsapp"]),enabled:V.boolean(),credentials:Xm,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"]}),uO=V.enum(["auto","ask","deny"]),Gm=V.object({default:uO,rules:V.array(V.object({pattern:V.string().min(1),action:uO}))}),Ym=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()}),Bm=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:Ym.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"})}),pO=V.object({brains:V.array(eu),brainWriteTarget:V.string(),brainRetrieval:V.enum(["merge-by-priority","first-match"]),executor:mO,channels:V.array(Jm),evolution:V.object({enabled:V.boolean(),observationRetentionDays:V.number().int().nonnegative()}),toolPolicy:Gm.optional(),orchestrator:Bm.optional()})});import{writeFile as Hm}from"fs/promises";async function S0(D){let $=await D.select().from(K2).where(v(K2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function L9(D,$,F,X={}){let J=pO.safeParse(F);if(!J.success)throw new x2(J.error.issues);let Y=await S0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==Y.version)throw new g2(X.ifMatchVersion,Y.version);let G=J.data,B=new Set(o2(Y.config).map((A)=>A.path)),H=o2(G),W=new Set(H.map((A)=>A.path));for(let{path:A,value:O}of H)if(O.length>0)await $.put(A,O);for(let A of B)if(!W.has(A))await $.remove(A);let _=K4(G),U=Y.version+1,Q=new Date().toISOString();return await D.update(K2).set({configJson:_,version:U,updatedAt:Q,updatedBy:"api"}).where(v(K2.pk,"default")).run(),{config:_,version:U}}async function j9(D,$,F){let X=_B(D),J=bG({version:F,config:$});try{await Hm(X,J,{encoding:"utf8"})}catch(Y){C.warn(`[mirror-config] failed to write ${X}: ${String(Y)}`)}}async function h6(D){let $=await L9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await j9(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 x2,g2;var kG=Z(()=>{P2();TD();JD();_0();fG();cO();x2=class x2 extends Error{issues;constructor(D,$="invalid worker config"){super($);this.issues=D;this.name="InvalidConfigError"}};g2=class g2 extends Error{expected;actual;constructor(D,$){super(`config version ${D} does not match current version ${$}`);this.expected=D;this.actual=$;this.name="ConfigVersionConflictError"}}});function I5(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 T5($.jobId);return{job:F}}}}var T5;var vG=Z(()=>{T5=class T5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class hG{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=V3(F);if(!J){this.replyError($,"unknown_method",`unknown method: ${F}`);return}if(J.routing!=="operator-to-node"){this.replyError($,"wrong_routing",`method ${F} should be handled by gateway, not node`);return}let Y=J.params.safeParse(X??{});if(!Y.success){this.replyError($,"invalid_params",`params schema mismatch for ${F}`,Y.error.issues);return}let G=Y.data;switch(F){case oD["chat.send"].method:await this.handleChatSend($,G);break;case oD["config.get"].method:await this.handleConfigGet($);break;case oD["config.put"].method:await this.handleConfigPut($,G);break;case oD["token.rotate"].method:await this.handleTokenRotate($);break;case oD["logs.tail"].method:await this.handleLogsTail($,G);break;case oD["approval.list"].method:this.handleApprovalList($);break;case oD["approval.grant"].method:this.handleApprovalGrant($,G);break;case oD["cron.list"].method:await this.handleCronList($,G);break;case oD["cron.add"].method:await this.handleCronAdd($,G);break;case oD["cron.remove"].method:await this.handleCronRemove($,G);break;case oD["cron.update"].method:await this.handleCronUpdate($,G);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=Wm(String($.content)),J=X?.body&&X.body.length>0?X.body:X?"A new session has started. Reply briefly to confirm.":String($.content),Y=typeof $.conversationId==="string"?$.conversationId:void 0,G=Vm(this.deps.workerId,Y),B={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:G,text:J,receivedAt:new Date().toISOString(),raw:{source:"gateway",...X?{sessionReset:!0,resetCommand:X.command}:{},...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(B).catch((H)=>{C.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(H)}`)}),this.replyOk(D,{conversationId:G,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 x2){this.replyError(D,"invalid_config",J.message,{issues:J.issues});return}if(J instanceof g2){this.replyError(D,"version_conflict",J.message,{expected:J.expected,actual:J.actual});return}throw J}}async handleTokenRotate(D){if(!this.deps.handlers?.tokenRotate){this.replyError(D,"method_not_implemented","token.rotate handler not wired");return}let $=await this.deps.handlers.tokenRotate();this.replyOk(D,$)}async handleLogsTail(D,$){if(!this.deps.handlers?.logsTail){this.replyOk(D,{subscribed:!1});return}let F={};if(typeof $.follow==="boolean")F.follow=$.follow;if(typeof $.lines==="number")F.lines=$.lines;let X=await this.deps.handlers.logsTail(F);this.replyOk(D,X)}handleApprovalList(D){let $=this.deps.getRuntime().approvals;if(!$){this.replyError(D,"method_not_implemented","approval store not wired");return}let F=$.list().map((X)=>({workerId:this.deps.workerId,taskId:X.taskId,toolCallId:X.toolCallId,toolName:X.toolName,params:X.params,expiresAt:X.expiresAt}));this.replyOk(D,{approvals:F})}handleApprovalGrant(D,$){let F=this.deps.getRuntime().approvals;if(!F){this.replyError(D,"method_not_implemented","approval store not wired");return}let X=String($.taskId),J=String($.toolCallId),Y=$.decision==="allow"?"allow":"deny",G=F.grant(X,J,Y);this.replyOk(D,{granted:G})}ensureWorkerMatch(D,$){let F=String($.workerId);if(F!==this.deps.workerId)return this.replyError(D,"worker_mismatch",`targeted workerId=${F}, this node is ${this.deps.workerId}`),!1;return!0}async handleCronList(D,$){if(!this.deps.handlers?.cronList){this.replyError(D,"method_not_implemented","cron.list handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronList();this.replyOk(D,F)}async handleCronAdd(D,$){if(!this.deps.handlers?.cronAdd){this.replyError(D,"method_not_implemented","cron.add handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronAdd({job:$.job});this.replyOk(D,F)}catch(F){this.replyError(D,"invalid_cron",F instanceof Error?F.message:String(F))}}async handleCronRemove(D,$){if(!this.deps.handlers?.cronRemove){this.replyError(D,"method_not_implemented","cron.remove handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;let F=await this.deps.handlers.cronRemove({jobId:String($.jobId)});this.replyOk(D,F)}async handleCronUpdate(D,$){if(!this.deps.handlers?.cronUpdate){this.replyError(D,"method_not_implemented","cron.update handler not wired");return}if(!this.ensureWorkerMatch(D,$))return;try{let F=await this.deps.handlers.cronUpdate({jobId:String($.jobId),patch:$.patch});this.replyOk(D,F)}catch(F){if(F instanceof T5){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 Wm(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 Vm(D,$){if($===void 0)return`gw:${D}:${crypto.randomUUID()}`;if($.startsWith("gw:"))return $;return`gw:conv:${$}`}var dO=Z(()=>{J0();JD();kG();vG()});class xG{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=z9($);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:o.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=z9($),X=$.call??{},J=h8(X.id),Y=h8(X.name);if(!F||!J||!Y)return null;return{name:o.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:Y,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=z9($);if(!F)return null;return{name:o.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=z9($);if(!F)return null;return{name:o.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=z9($),X=h8($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:o.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=h8($.taskId),X=h8($.toolCallId),J=h8($.toolName),Y=typeof $.expiresAt==="number"?$.expiresAt:null;if(!F||!X||!J||Y===null)return null;let G=typeof $.params==="object"&&$.params!==null?$.params:{};return{name:o.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:G,expiresAt:Y}}}default:return null}}}function h8(D){return typeof D==="string"&&D.length>0?D:null}function z9(D){return h8(D.gatewayConversationId)??h8(D.conversationId)}var lO=Z(()=>{J0()});function w5(D){let $=SK(D),F=!1,X=null,J=new xG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(G)=>X?.send(G)}),Y=new hG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(G)=>X?.send(G)});return X=new MJ({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(G)=>{F=!1,J.stop(),C.info(`[gateway-client ${$.workerId}] disconnected: ${G}`)},onFrame:(G)=>{if(G.type==="request"){Y.handleRequest(G);return}C.warn(`[gateway-client ${$.workerId}] unexpected inbound frame type=${G.type}`)},...D.onEnrollmentOtp?{onEnrollmentOtp:D.onEnrollmentOtp}:{},...D.onEnrollmentApproved?{onEnrollmentApproved:D.onEnrollmentApproved}:{},...D.webSocketCtor?{webSocketCtor:D.webSocketCtor}:{}}),X.start(),{async stop(){if(J.stop(),X)await X.stop(),X=null},isConnected(){return F},notifyRuntimeReloaded(){if(F)J.start()}}}async function iO(D){await D.stop()}var nO=Z(()=>{JD();wK();dO();lO()});function _m(D){if(D instanceof Error)return D.message;return String(D)}async function S5(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:_m(X)}]}}}function Qm(D){return Um.has(D)}function Am(D){if(D instanceof Error)return D.message;return String(D)}async function b5(D,$,F={}){if(!Qm($))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 Y={channel:$,chatId:F.chatId,text:F.text};try{return await J.send(X,Y),{sent:!0,platformResponse:{ok:!0}}}catch(G){return{sent:!1,error:Am(G)}}}var Um;var sO=Z(()=>{j0();y3();Um=new Set(["web","line","telegram","lark","whatsapp"])});function Km(D){if(D instanceof Error)return D.message;return String(D)}async function Em(D){let $=performance.now(),F=new AbortController,X=setTimeout(()=>F.abort(),5000);try{let J=D.runtime.executor.run({messages:[{role:"user",content:"ping"}],signal:F.signal}),Y="";for await(let G of J)if(G.type==="assistant_message_delta"){if(Y+=G.delta,Y.length>=100)break}else if(G.type==="error")return{ok:!1,latencyMs:Math.round(performance.now()-$),error:G.error};else if(G.type==="finish")break;return{ok:!0,latencyMs:Math.round(performance.now()-$),output:Y.slice(0,100)}}catch(J){return{ok:!1,latencyMs:Math.round(performance.now()-$),error:Km(J)}}finally{clearTimeout(X)}}async function f5(D,$,F={}){let X=$.executor.engine,J="unknown";try{J=(await D.runtime.executor.health()).status}catch{J="unknown"}if(!F.probe)return{executor:{type:X,status:J}};let Y=await Em(D);if(!Y.ok)return{executor:{type:X,status:"degraded",tinyProbe:{ok:!1,latencyMs:Y.latencyMs},...Y.error===void 0?{}:{probeError:Y.error}}};return{executor:{type:X,status:J,tinyProbe:{ok:!0,latencyMs:Y.latencyMs,...Y.output===void 0?{}:{output:Y.output}}}}}function Rm(D){if(!D)return"unknown";return D.status}async function rO(D){try{let $=await D();return Rm($??null)}catch{return"unknown"}}function Cm(D){let $=Mm(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 Mm(D){try{return a2(D)}catch{return null}}function Zm(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function k5(D,$,F){let{runtime:X}=D,J=await rO(()=>X.executor.health()),Y=await rO(()=>X.brain.health()),G=$.brains.map((_)=>({id:_.id,type:_.type,status:Y})),B=Cm($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((_)=>{let U=Zm(F.advertisedBaseUrl,_.channel);return{channel:_.channel,enabled:_.enabled,...U?{webhookUrl:U}:{}}});return{workerId:D.workerId,runtimeVersion:Om,configVersion:D.configVersion,brains:G,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Om="0.2.0";var aO=Z(()=>{J1()});async function x8(D,$,F){let X=W6(),{ciphertext:J,nonce:Y,authTag:G}=$.encryptString(X),B=new Date().toISOString();return await D.update(g0).set({apiTokenEnc:J,nonce:Y,authTag:G,rotatedAt:B}).where(v(g0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var oO=Z(()=>{TD();_0();wX()});async function v5(D){return D.list()}async function h5(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 x5(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 tO=Z(()=>{j0()});class q1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new eO);let $=D.timeoutMs??gG,F=Date.now()+$,X=q1.key(D.taskId,D.toolCallId);return new Promise((J)=>{let Y=setTimeout(()=>{let B=this.pending.get(X);if(!B)return;this.pending.delete(X),B.resolve("deny")},$);Y.unref?.(),this.pending.set(X,{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:F,resolve:J,timer:Y})})}grant(D,$,F){let X=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 eO,gG=60000;var g5=Z(()=>{eO=class eO extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class $R{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 y5(){return Date.now()}function N1(){return new Date().toISOString()}function yG(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 Y={handle:J,req:D,enqueuedAt:y5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},G=this.groups.get(D.group);if(!G)G=new $R,this.groups.set(D.group,G);if(G.enqueue(Y),D.signal)if(D.signal.aborted)this.cancelHandle(X).catch(()=>{return});else{let B=()=>{D.signal?.removeEventListener("abort",B),this.cancelHandle(X).catch(()=>{return})};D.signal.addEventListener("abort",B,{once:!0})}this.kick()})}async cancelGroup(D){let $=this.groups.get(D);if($)for(let X of $.drain())this.markCancelledBeforeStart(X);let F=[];for(let[,X]of this.running.entries())if(X.handle.group===D)F.push(this.cancelRunning(X));await Promise.allSettled(F),this.kick()}async cancelAll(){for(let $ of this.groups.values())for(let F of $.drain())this.markCancelledBeforeStart(F);let D=[];for(let $ of this.running.values())D.push(this.cancelRunning($));await Promise.allSettled(D),this.kick()}snapshot(){let D={queued:0,spawning:0,running:0,completed:0,failed:0,cancelled:0};for(let G of this.handles.values())D[G.state]+=1;let $=new Map,F=0;for(let G of this.groups.values())for(let B of G.values())F+=1,$.set(B.handle.engine,($.get(B.handle.engine)??0)+1);let X=new Set([...Object.keys(this.opts.perEngineLimits),...this.runningByEngine.keys(),...$.keys()]),J={};for(let G of X){let B=this.opts.perEngineLimits[G]??this.opts.maxConcurrentTotal,H=this.runningByEngine.get(G)??0,W=$.get(G)??0,_=Math.max(0,B-H),U=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[G]={limit:B,active:H,queued:W,available:Math.min(_,U)}}let Y=this.terminalLog.slice(-10).map((G)=>({id:G.handle.id,engine:G.handle.engine,group:G.handle.group,state:G.handle.state,terminatedAt:G.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:Y}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),yG(this.gcTimer)}gcTerminal(){let D=y5()-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:y5()}),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),yG(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 Y=J.head();if(!this.canStart(Y.handle))continue;let G=qm[Y.handle.class];if(G>$||G===$&&Y.enqueueSeq<F)D=Y,$=G,F=Y.enqueueSeq}return D}canStart(D){if(this.totalActive()>=this.opts.maxConcurrentTotal)return!1;let $=this.opts.perEngineLimits[D.engine]??this.opts.maxConcurrentTotal;if((this.runningByEngine.get(D.engine)??0)>=$)return!1;return!0}startCandidate(D){let $=this.groups.get(D.handle.group);if($?.shift(),$&&$.isEmpty())this.groups.delete(D.handle.group);let F={handle:D.handle,spawned:null,stallTimer:null,killTimer:null,cancelRequested:!1,killEscalated:!1};this.running.set(D.handle.id,F),this.runningGroups.add(D.handle.group),this.runningByEngine.set(D.handle.engine,(this.runningByEngine.get(D.handle.engine)??0)+1),D.handle.state="spawning",D.handle.startedAt=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:Y}=$,G=null;try{let B=await X.onSpawn();if(D.spawned=B,D.cancelRequested){try{await B.cancel()}catch{}throw Error("cancelled")}if(F.state="running",F.updatedAt=N1(),this.armStallTimer(D),G=B.onActivity(()=>this.onActivity(D)),await X.job(),D.cancelRequested)F.state="cancelled",Y(Error("cancelled"));else F.state="completed",J()}catch(B){F.state=D.cancelRequested?"cancelled":"failed",Y(B)}finally{if(F.updatedAt=N1(),D.stallTimer)clearTimeout(D.stallTimer),D.stallTimer=null;if(D.killTimer)clearTimeout(D.killTimer),D.killTimer=null;if(G)try{G()}catch{}this.terminalLog.push({handle:F,recordedAt:y5()}),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),yG(D.stallTimer)}onActivity(D){if(DR.has(D.handle.state))return;D.handle.lastActivityAt=N1(),this.armStallTimer(D)}onStall(D){if(DR.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 DR,qm;var FR=Z(()=>{JD();DR=new Set(["completed","failed","cancelled"]),qm={interactive:3,default:2,background:1}});class x6{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??Nm}nextId(){return this.idCounter+=1,this.idCounter}headers(D){let $={"Content-Type":"application/json",Accept:"application/json, text/event-stream"};if(this.token)$.Authorization=`Bearer ${this.token}`;if(D&&this.sessionId)$["mcp-session-id"]=this.sessionId;return $}async postJson(D,$){let F=new AbortController,X=setTimeout(()=>F.abort(),this.timeoutMs);try{let J=await fetch(this.url,{method:"POST",headers:this.headers($),body:JSON.stringify(D),signal:F.signal});clearTimeout(X);let Y=await J.text(),G=null;if(Y.length>0)try{G=JSON.parse(Y)}catch{G=null}return{response:J,parsed:G}}catch(J){throw clearTimeout(X),J instanceof Error?J:Error(String(J))}}async initialize(){let D={jsonrpc:"2.0",id:this.nextId(),method:"initialize",params:{protocolVersion:"2025-03-26",capabilities:{},clientInfo:{name:this.clientName,version:this.clientVersion}}},{response:$,parsed:F}=await this.postJson(D,!1);if(!$.ok)throw Error(`MCP initialize failed: HTTP ${$.status}`);if(F?.error)throw Error(`MCP initialize error: ${F.error.message}`);let X=$.headers.get("mcp-session-id");if(!X)throw Error("MCP initialize response missing mcp-session-id header");this.sessionId=X,await this.postJson({jsonrpc:"2.0",method:"notifications/initialized"},!0)}async ensureSession(){if(this.sessionId)return;if(!this.initPromise)this.initPromise=this.initialize().catch((D)=>{throw this.initPromise=null,D});await this.initPromise,this.initPromise=null}async invoke(D,$){await this.ensureSession();let F={jsonrpc:"2.0",id:this.nextId(),method:D,params:$},{response:X,parsed:J}=await this.postJson(F,!0);if(X.status===404||J?.error&&/session/i.test(J.error.message)){this.sessionId=null,await this.ensureSession();let Y=await this.postJson({...F,id:this.nextId()},!0);X=Y.response,J=Y.parsed}if(!X.ok)throw Error(`MCP ${D} failed: HTTP ${X.status}`);if(!J)throw Error(`MCP ${D} returned non-JSON body`);if(J.error)throw Error(`MCP ${D} error: ${J.error.message}`);if(J.result===void 0)throw Error(`MCP ${D} response missing 'result'`);return J.result}async listTools(){return(await this.invoke("tools/list")).tools??[]}async callTool(D,$={}){return this.invoke("tools/call",{name:D,arguments:$})}async callToolJson(D,$={}){let X=(await this.callTool(D,$)).content.find((J)=>J.type==="text");if(!X)throw Error(`MCP tool '${D}' returned no text content`);try{return JSON.parse(X.text)}catch{return C.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var Nm=30000;var XR=Z(()=>{JD()});var uG=Z(()=>{XR()});function JR(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 mG(D){let $=D.created_at??new Date().toISOString(),F=D.updated_at??$,{content:X,id:J,score:Y,...G}=D,B={id:J,content:X??"",metadata:{...G,tags:JR(D.tags)},createdAt:$,updatedAt:F};if(typeof Y==="number")B.score=Y;return B}function Pm(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 pG{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new x6({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(Pm)}async listMemories(D){let $={per_page:Math.min(Math.max(D?.limit??50,1),100),page:1},F=D?.tags?.find((Y)=>Y.startsWith("type:"));if(F)$.type_id=F.slice(5);let J=(await this.client.callToolJson("knowledge_query",$)).entries??[];if(D?.since)J=J.filter((Y)=>!Y.created_at||Y.created_at>=D.since);if(D?.until)J=J.filter((Y)=>!Y.created_at||Y.created_at<=D.until);return J.map(mG)}async searchMemories(D){let $=await this.client.callToolJson("knowledge_search",{query:D,limit:20});if(!Array.isArray($))return[];return $.map(mG)}async writeMemory(D){let $=D.metadata??{},F={content:D.content},X=typeof $.title==="string"?$.title:typeof $.name==="string"?$.name:void 0;if(X)F.title=X;let J=typeof $.type_id==="string"?$.type_id:this.defaultTypeId,Y=typeof $.category==="string"?$.category:this.defaultCategory;if(J)F.type_id=J;else if(Y)F.category=Y;let G=D.tags??JR($.tags);if(G.length>0)F.tags=G.join(",");let B=typeof $.source_type==="string"?$.source_type:"aiworker";if(F.source_type=B,typeof $.source_ref==="string")F.source_ref=$.source_ref;F.skip_compile=!0;let H=await this.client.callToolJson("knowledge_write",F);return mG(H)}}var GR=Z(()=>{uG()});import{join as u5}from"path";async function YR(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function BR(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:z5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function Lm(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=z5(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}=BR(D);return{name:String(X.name??$.split("/").pop()?.replace(/\.md$/,"")??""),description:String(X.description??J.split(`
|
|
254
|
+
`)[0]??""),version:String(X.version??"0.0.0"),capabilities:Array.isArray(X.capabilities)?X.capabilities.map(String):[],filePath:$}}return null}async function HR(D){let $=u5(D,"skills");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.{yaml,yml,md}"),J=[];for await(let Y of X.scan({cwd:$})){let G=u5($,Y);try{let H=await Bun.file(G).text(),W=Lm(H,G);if(W){let _=await YR(H);J.push({...W,hash:_})}}catch{}}return J}catch{return[]}}async function cG(D){let $=u5(D,"memories");try{await(await import("fs/promises")).access($);let X=new Bun.Glob("**/*.md"),J=[];for await(let Y of X.scan({cwd:$})){let G=u5($,Y);try{let H=await Bun.file(G).text(),W=await YR(H),{metadata:_,content:U}=BR(H),Q=Y.replace(/\.md$/,"");J.push({id:String(_.id??Q),title:String(_.title??Q),content:U,metadata:_,filePath:G,hash:W,createdAt:_.createdAt?String(_.createdAt):void 0,updatedAt:_.updatedAt?String(_.updatedAt):void 0})}catch{}}return J}catch{return[]}}var WR=Z(()=>{fG()});import{watch as jm}from"fs";import{join as dG}from"path";function zm(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class lG{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 jm(D,{recursive:!0},(F,X)=>{if(!X)return;let J=dG(D,X),Y=J,G=this.debounceTimers.get(Y);if(G)clearTimeout(G);let B=setTimeout(()=>{this.debounceTimers.delete(Y);let H=F==="rename"?"add":"modify";this.emit({type:H,path:J,kind:zm(J),timestamp:Date.now()})},this.debounceMs);this.debounceTimers.set(Y,B)})}catch{return null}}async start(){if(this.running)return;this.running=!0;let D=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 VR=()=>{};import{existsSync as Im,mkdirSync as Tm}from"fs";import{access as wm,stat as Sm}from"fs/promises";import{join as iG}from"path";function bm(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function _R(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let G=await Sm(D.filePath);F=F??G.birthtime.toISOString(),X=X??G.mtime.toISOString()}catch{let G=new Date(0).toISOString();F=F??G,X=X??G}let J={...D.metadata,title:D.title,filePath:D.filePath,hash:D.hash},Y={id:D.id,content:D.content,metadata:J,createdAt:F,updatedAt:X};if($!==void 0)Y.score=$;return Y}function fm(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 km(D,$){if(!$)return D;let F=D;if($.tags&&$.tags.length>0){let X=$.tags;F=F.filter((J)=>{let Y=Array.isArray(J.metadata.tags)?J.metadata.tags.map(String):[];return X.every((G)=>Y.includes(G))})}if($.since){let X=$.since;F=F.filter((J)=>J.createdAt>=X)}if($.until){let X=$.until;F=F.filter((J)=>J.createdAt<=X)}if(typeof $.limit==="number")F=F.slice(0,$.limit);return F}function vm(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function hm(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function xm(D,$,F,X){let J=iG(D,"..","MEMORY.md"),Y=`- [${$}](memories/${F}) \u2014 ${X}`,G=Bun.file(J);if(await G.exists()){let H=(await G.text()).trimEnd(),W=H?`${H}
|
|
255
255
|
${Y}
|
|
256
256
|
`:`${Y}
|
|
257
257
|
`;await Bun.write(J,W)}else await Bun.write(J,`# Memory index
|
|
258
258
|
|
|
259
259
|
${Y}
|
|
260
|
-
`)}class
|
|
260
|
+
`)}class nG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new lG({home:D.home})}async health(){let D=new Date().toISOString();try{return await wm(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await HR(this.home)).map(bm)}async listMemories(D){let $=await cG(this.home),F=await Promise.all($.map((X)=>_R(X)));return km(F,D)}async searchMemories(D){let $=await cG(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)=>_R(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=vm($.type),Y=iG(this.home,"memories");if(!Im(Y))Tm(Y,{recursive:!0});let G=hm(F),B=`${G}.md`,H=iG(Y,B),W=`---
|
|
261
261
|
name: ${F}
|
|
262
262
|
description: ${X}
|
|
263
263
|
type: ${J}
|
|
264
264
|
---
|
|
265
265
|
`;await Bun.write(H,`${W}${D.content}
|
|
266
|
-
`),await
|
|
267
|
-
`);return{proposedName:Y,source:"evolution",bodyMarkdown:_,rationale:D.rationale,status:"pending"}}function
|
|
268
|
-
`);return[{type:"tool_use",id:`plan-${
|
|
266
|
+
`),await xm(Y,F,B,X);let _=new Date().toISOString();return{id:G,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:_,updatedAt:_}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=fm($);if(F)D(F)})}}var UR=Z(()=>{WR();VR()});class sG{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 gm(D,$){let F;if($.type==="filesystem"){let X=$.config.home??b1(D);F=new nG({home:X})}else F=new pG({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 QR(D,$){let F=$.brains.map((X)=>gm(D,X));return new sG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var AR=Z(()=>{P2();GR();UR()});function KR(D){return D.on((F)=>{try{ym(F)}catch(X){C.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ym(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;u().insert(A2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var ER=Z(()=>{TD();JD()});function RR(D,$=rG){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 _=0;_+W<=H.length;_++){let U=H.slice(_,_+W),Q=pm(U),A=J.get(Q);if(A)A.occurrences+=1,A.conversations.add(B);else J.set(Q,{toolSequence:U,occurrences:1,conversations:new Set([B])})}}}let Y=Math.max(1,$.windowSize),G=[];for(let B of J.values()){if(B.occurrences<$.minOccurrences)continue;if(B.conversations.size<$.minConversations)continue;let H=cm(B.occurrences/Y);G.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:mm(B.toolSequence,B.occurrences,B.conversations.size,H)})}return G.sort((B,H)=>{if(H.occurrences!==B.occurrences)return H.occurrences-B.occurrences;return H.toolSequence.length-B.toolSequence.length}),um(G)}function um(D){let $=[];for(let F of D){if($.find((Y)=>OR(F.toolSequence,Y.toolSequence)))continue;let J=$.findIndex((Y)=>OR(Y.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function OR(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function mm(D,$,F,X){let J=D.join(" \u2192 "),Y=(X*100).toFixed(1);return`Observed tool sequence ${J} ${$}\xD7 across ${F} conversation(s); window confidence ${Y}%.`}function pm(D){return D.join("|")}function cm(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var rG;var CR=Z(()=>{rG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as dm}from"crypto";import lm from"process";function sm(D){return{windowSize:D?.windowSize??m5("EVOLUTION_PROPOSER_WINDOW",im),maxDraftsPerRun:D?.maxDraftsPerRun??m5("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",nm),intervalMs:D?.intervalMs??m5("EVOLUTION_PROPOSER_INTERVAL_MS",ZR)}}async function rm(D){let $=sm(D),F=u(),X=F.select({conversationId:A2.conversationId}).from(A2).orderBy(hD(A2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((_)=>_.conversationId).filter((_)=>typeof _==="string"&&_.length>0)));if(J.length===0)return C.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let Y=F.select({conversationId:r2.conversationId,toolName:r2.toolName}).from(r2).where(K8(r2.conversationId,J)).orderBy(w2(r2.conversationId),w2(r2.id)).all(),G=new Map;for(let _ of Y){if(!_.conversationId)continue;let U=G.get(_.conversationId);if(U)U.push(_.toolName);else G.set(_.conversationId,[_.toolName])}let B=RR(G,{...rG,windowSize:$.windowSize}),H=om(F),W=0;for(let _ of B){if(W>=$.maxDraftsPerRun)break;let U=_.toolSequence.join("|");if(H.has(U))continue;let Q=tm(_);F.insert(Z0).values(Q).run(),H.add(U),W+=1,C.info(`[evolution/proposer] wrote draft ${Q.proposedName} (occurrences=${_.occurrences}, convs=${_.uniqueConversations})`)}return C.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function qR(D){let $=D??m5("EVOLUTION_PROPOSER_INTERVAL_MS",ZR),F=setInterval(()=>{rm().catch((X)=>C.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function am(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 om(D){let $=new Set,F=D.select({bodyMarkdown:Z0.bodyMarkdown}).from(Z0).all();for(let J of F){let Y=am(J.bodyMarkdown);if(Y)$.add(Y.allowedTools.join("|"))}let X=D.select({config:b3.config}).from(b3).all();for(let J of X){let Y=J.config;if(!Y||typeof Y!=="object")continue;let G=Y.allowedTools;if(Array.isArray(G)&&G.every((B)=>typeof B==="string"))$.add(G.join("|"))}return $}function tm(D){let $=D.toolSequence.join("|"),F=dm("sha256").update($).digest("hex").slice(0,6),X=MR(D.toolSequence[0]??"tool"),J=MR(D.toolSequence[D.toolSequence.length-1]??"tool"),Y=`auto-${X}-${J}-${F}`,G=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((U)=>`\`${U}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${G}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,_=[`<!-- evolution-meta: ${JSON.stringify(H)} -->`,"",`# ${Y}`,"","## Trigger","",W,"","## Allowed tools","",B,"","## Prompt template","","```",`You are extending the skill \`${Y}\`. Invoke the following tools in order: ${B}.`,"```",""].join(`
|
|
267
|
+
`);return{proposedName:Y,source:"evolution",bodyMarkdown:_,rationale:D.rationale,status:"pending"}}function MR(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function m5(D,$){let F=lm.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var ZR=21600000,im=500,nm=5;var NR=Z(()=>{TD();JD();_0();CR()});var aG;var oG=Z(()=>{y4();aG={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:()=>IK()}});var tG;var eG=Z(()=>{y4();tG={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:()=>TK()}});function DY(D){let $=em[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var em;var PR=Z(()=>{oG();eG();em={gemini:aG,qwen:tG}});import Dp from"process";function Gp(D){if($p.has(D))return!0;return Fp.some(($)=>D.startsWith($))}function Yp(D){if(Xp.some(($)=>D.startsWith($)))return!0;if(Jp.some(($)=>D.endsWith($)))return!0;return!1}function Z2(D,$=Dp.env){let F={};for(let[X,J]of Object.entries($)){if(J===void 0)continue;if(Yp(X))continue;if(!Gp(X))continue;F[X]=J}if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}var $p,Fp,Xp,Jp;var g6=Z(()=>{$p=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Fp=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Xp=["AIWORKER_","INTERNAL_","WORKER_"],Jp=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function FY(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=$Y(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=$Y(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return Bp(F);case"tool_call_update":return Hp(F);case"plan":return Wp(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function LR(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:I9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=I9(X,["file_path","path","absolute_path","filePath"]),Y=_p(X);return{kind:"file_edit",path:J,...Y?{diff:Y}:{}}}case"execute":return{kind:"command_run",command:I9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:I9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:I9(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 XY(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 Bp(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=LR(D.kind,D.title,X),Y=D.title??D.kind??"acp.tool";if($.push({type:"tool_use",id:F,name:Y,arguments:X,action:J,...D.status?{status:Vp(D.status)}:{}}),zR(D.status)){let G=jR(D.content);$.push({type:"tool_result",id:F,name:Y,content:G,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Hp(D){let $=D.toolCallId;if(!$||!zR(D.status))return[];let F=jR(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 Wp(D){if(!Array.isArray(D)||D.length===0)return[];let $=D.map((F,X)=>`${X+1}. [${F.status??"pending"}] ${F.content}`).join(`
|
|
268
|
+
`);return[{type:"tool_use",id:`plan-${Up($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function $Y(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function jR(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=$Y(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",Y=X.newText??"";$.push(`--- ${X.path??""}
|
|
269
269
|
- ${J}
|
|
270
270
|
+ ${Y}`)}else if(F.type==="terminal"){let X=F;$.push(`[terminal:${X.terminalId??""}]`)}}return $.join(`
|
|
271
|
-
`)}function
|
|
272
|
-
+ ${F}`;if(F!==void 0)return F;return}function
|
|
271
|
+
`)}function Vp(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 zR(D){return D==="completed"||D==="failed"||D==="cancelled"}function I9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function _p(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`- ${$}
|
|
272
|
+
+ ${F}`;if(F!==void 0)return F;return}function Up(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class g8{options;nextId=1;pending=new Map;disposed=!1;constructor(D){this.options=D}async request(D,$,F){if(this.disposed)throw Error("json-rpc peer disposed");if(F?.aborted)throw Error(`json-rpc request ${D} aborted before send`);let X=this.nextId++,J=$===void 0?{jsonrpc:"2.0",id:X,method:D}:{jsonrpc:"2.0",id:X,method:D,params:$};return new Promise((Y,G)=>{let B=this.options.requestTimeoutMs,H=B&&B>0?setTimeout(()=>{this.rejectPending(X,Error(`json-rpc request ${D} timed out after ${B}ms`))},B):null,W=F?()=>this.rejectPending(X,Error(`json-rpc request ${D} aborted`)):null;if(this.pending.set(X,{resolve:(_)=>Y(_),reject:G,timer:H,abortHandler:W,signal:F??null}),W&&F)F.addEventListener("abort",W,{once:!0});try{this.options.writeLine(`${JSON.stringify(J)}
|
|
273
273
|
`)}catch(_){this.rejectPending(X,_ instanceof Error?_:Error(String(_)))}})}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)}
|
|
274
274
|
`)}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)}
|
|
275
|
-
`)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function L1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}import{spawn as
|
|
276
|
-
`)}if(D===void 0||D===null)return"";return JSON.stringify(D)}function
|
|
277
|
-
+ ${D.new_string}`;if(typeof D.content==="string")return D.content;return}function
|
|
278
|
-
`),F.decision==="ask"){let J=
|
|
279
|
-
`)}}function
|
|
275
|
+
`)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function L1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}import{spawn as Qp}from"child_process";import{once as Ap}from"events";import Kp from"fs/promises";import Ep from"path";import y6 from"process";function wR(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=y6.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class p5{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()+Rp,info:F},F}async*runIterable(D){let $=Zp(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??y6.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Qp)(X.cmd,X.args,{cwd:F,env:Z2(this.options.env)}),G=new SR,B=new g8({writeLine:(K)=>{try{Y.stdin.write(K)}catch{}},onNotification:(K)=>this.handleNotification(K,G),onRequest:(K)=>this.handleInboundRequest(K),onError:(K)=>{G.push({type:"error",error:K.message})},requestTimeoutMs:this.options.timeoutMs??IR}),H="",W=(K)=>{let{lines:R,remainder:q}=L1(H,K.toString("utf8"));H=q;for(let N of R)B.handleLine(N)};Y.stdout.on("data",W);let _=null;Y.on("error",(K)=>{_=K.message});let U=Ap(Y,"exit").then((K)=>K[0]??null).catch((K)=>{return _=K instanceof Error?K.message:String(K),null});U.then((K)=>{if(K===0)return;let R=_??(K===null?"acp child exited unexpectedly":`acp child exited with code ${K}`);G.close({kind:"error",message:R}),B.dispose(R)});let Q=setTimeout(()=>TR(Y,"SIGKILL"),this.options.timeoutMs??IR),A="",O=!1,E=()=>{if(O=!0,A)B.notify("session/cancel",{sessionId:A});setTimeout(()=>TR(Y,"SIGTERM"),200)};D.signal?.addEventListener("abort",E,{once:!0});try{if(await B.request("initialize",{protocolVersion:Op,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)=>G.close({kind:"finish",stopReason:N.stopReason}),(N)=>G.close({kind:"error",message:N instanceof Error?N.message:String(N)}));for await(let N of G.iter())yield N;let q=G.terminal;if(q?.kind==="finish")yield{type:"finish",reason:XY(q.stopReason)};else if(q?.kind==="error")yield{type:"error",error:q.message},yield{type:"finish",reason:O?"cancelled":"error"};else yield{type:"finish",reason:O?"cancelled":"stop"}}catch(K){yield{type:"error",error:K instanceof Error?K.message:String(K)},yield{type:"finish",reason:O?"cancelled":"error"}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",E),B.dispose("run ended"),Y.stdout.off("data",W),Mp(Y),await U.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of FY(F.update))$.push(X)}async handleInboundRequest(D){if(D.method==="session/request_permission"){if(!(this.options.autoApprove??!0))return{outcome:{outcome:"cancelled"}};let F=D.params??{},X=Array.isArray(F.options)?F.options:[];return{outcome:{outcome:"selected",optionId:(X.find((Y)=>Y.kind==="allow_always")??X.find((Y)=>Y.kind==="allow_once")??X.find((Y)=>Y.kind==="allow")??X[0])?.optionId??"allow"}}}throw Error(`unsupported acp client method: ${D.method}`)}async resolveCommand(D){let $=this.options.agent,F=this.options.autoApprove??!0,X=$.buildArgs({yolo:F,...D??this.options.model?{model:D??this.options.model}:{},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}}),Y=await(this.options.resolveBinary??Cp)($.commandName);if(Y)return{cmd:Y,args:X};let G=wR($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${G}`,...X]}}}class SR{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 Cp(D){let $=y6.env.PATH??"",F=y6.platform==="win32"?";":":",X=y6.platform==="win32"?(y6.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=Ep.join(J,`${D}${Y.toLowerCase()}`);try{if((await Kp.stat(G)).isFile())return G}catch{}}}return null}function TR(D,$){try{D.kill($)}catch{}}function Mp(D){try{D.stdin.end()}catch{}}function Zp(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 IR=120000,Op=1,Rp=600000;var bR=Z(()=>{g6()});var fR=Z(()=>{oG();PR();eG();bR()});function JY(D){switch(D.type){case"assistant":return qp(D);case"user":return Np(D);case"result":return Pp(D);case"stream_event":return Lp(D);default:return[]}}function qp(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=jp(X);if(J)$.push(J)}return Ip($,F),$}function Np(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(kR(X));return $}function Pp(D){let $=[];if(D.usage){let J=D.usage.input_tokens??0,Y=D.usage.output_tokens??0;$.push({type:"token_usage",usage:{inputTokens:J,outputTokens:Y}})}if(D.is_error||D.subtype==="error"){let J=typeof D.error==="string"&&D.error.length>0?D.error:D.result??"Claude Code run failed";return $.push({type:"error",error:J}),$.push({type:"finish",reason:"error"}),$}let F=wp(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 Lp(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 jp(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:vR(F,X)}}case"tool_result":return kR(D);default:return null}}function kR(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=zp(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function zp(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(`
|
|
276
|
+
`)}if(D===void 0||D===null)return"";return JSON.stringify(D)}function Ip(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 vR(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=Tp($);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 Tp(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
|
|
277
|
+
+ ${D.new_string}`;if(typeof D.content==="string")return D.content;return}function wp(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function j1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}function GY(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $)return $;return null}catch{return null}}class d5{policy;writeLine;constructor(D){this.policy=D.policy??c5,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=Sp($,F);if(this.writeLine(`${JSON.stringify(X)}
|
|
278
|
+
`),F.decision==="ask"){let J=bp($);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($)}
|
|
279
|
+
`)}}function Sp(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 bp(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var c5;var YY=Z(()=>{c5={decide:async(D)=>({decision:"allow"})}});import{spawn as fp}from"child_process";import{once as kp}from"events";import vp from"fs/promises";import hp from"path";import l5 from"process";class s5{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 $=up(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??fp,J=mp(D.engineBinding);if(D.engineBinding!==void 0&&J===void 0)yield{type:"engine_binding",engine:i5,binding:null};let Y,G;try{({cmd:Y,args:G}=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(Y,G,{cwd:F,env:Z2(this.options.env)}),H=new d5({policy:this.options.policy??c5,writeLine:(q)=>{try{B.stdin.write(q)}catch{}}});H.sendUserMessage($);let W=this.options.timeoutMs??xp,_=setTimeout(()=>hR(B,"SIGKILL"),W),U="",Q=null,A="",O=!1,E=kp(B,"exit").then((q)=>q[0]??null).catch((q)=>{return Q=q instanceof Error?q.message:String(q),null});B.on("error",(q)=>{Q=q.message});let K=()=>hR(B,"SIGTERM");D.signal?.addEventListener("abort",K,{once:!0});try{for await(let q of B.stdout){let{lines:N,remainder:b}=j1(U,q.toString("utf8"));U=b;for(let T of N){let L=GY(T);if(!L)continue;let w=pp(L);if(w&&w!==A)A=w,yield{type:"engine_binding",engine:i5,binding:{sessionId:w}};if(L.type==="control_request"){let z=await H.handleLine(L);for(let s of z)yield s;continue}for(let z of JY(L)){if(z.type==="error"&&J!==void 0)yield{type:"engine_binding",engine:i5,binding:null};if(yield z,z.type==="finish")O=!0}if(O)break}if(O)break}}catch(q){yield{type:"error",error:q instanceof Error?q.message:String(q)}}finally{clearTimeout(_),D.signal?.removeEventListener("abort",K),yp(B)}let R=await E;if(!O){if(J!==void 0)yield{type:"engine_binding",engine:i5,binding:null};if(Q)yield{type:"error",error:Q};else if(R!==0&&R!==null)yield{type:"error",error:`Claude Code exited with code ${R}`};yield{type:"finish",reason:R===0?"stop":"error"}}}async resolveCommand(D,$){let F=xR(D??this.options.model,this.options.extraArgs,$),J=await(this.options.resolveClaudeBinary??gp)();if(J)return{cmd:J,args:F};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||n5}`,...F]}}}function xR(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 gp(){let D=l5.env.PATH??"",$=l5.platform==="win32"?";":":",F=l5.platform==="win32"?(l5.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=hp.join(X,`claude${J.toLowerCase()}`);try{if((await vp.stat(Y)).isFile())return Y}catch{}}}return null}function hR(D,$){try{D.kill($)}catch{}}function yp(D){try{D.stdin.end()}catch{}}function up(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 mp(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}function pp(D){if(!D||typeof D!=="object"||Array.isArray(D))return"";let $=D.session_id;return typeof $==="string"&&$.length>0?$:""}var n5="2.1.112",xp=120000,i5="claude-code";var gR=Z(()=>{g6();YY()});var yR=Z(()=>{gR();YY()});function BY(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return uR($);case"codex/event/thinking":return mR($);case"codex/event/token_usage":return cp($);case"codex/event/tool_call":return dp($);case"codex/event/tool_result":return lp($);case"codex/event/stop":return ip($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return uR($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return mR($);case"thread/tokenUsage/updated":return np($);case"turn/completed":return sp($);case"error":return rp($);default:return[]}}function uR(D){let $=dR(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function mR(D){let $=dR(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function cp(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function dp(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:pR(D.name,$),...D.status?{status:ap(D.status)}:{}}]}function lp(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 ip(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:cR(D.reason)}),$}function np(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 sp(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:lR(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 rp(D){return[{type:"error",error:lR(D.error)??"codex error"}]}function pR(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:T9($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=T9($,["path","file_path","filePath"]),J=op($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:T9($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:T9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:T9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function cR(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function ap(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 dR(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function T9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function lR(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 op(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
|
|
280
280
|
+ ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
|
|
281
|
-
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var
|
|
281
|
+
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var HY=()=>{};import{spawn as tp}from"child_process";import{once as ep}from"events";import Dc from"fs/promises";import $c from"path";import u6 from"process";class o5{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 $=Hc(D.messages);if($===null){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=Wc(D.messages),X=D.workspacePath??this.options.fallbackWorkspacePath??u6.cwd(),J;try{J=await this.resolveCommand()}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:"error"};return}let G=(this.options.spawn??tp)(J.cmd,J.args,{cwd:X,env:Z2(this.options.env)}),B=new sR,H=new g8({writeLine:(R)=>{try{G.stdin.write(R)}catch{}},onNotification:(R)=>this.handleNotification(R,B),onRequest:(R)=>this.handleInboundRequest(R),onError:(R)=>B.push({type:"error",error:R.message}),requestTimeoutMs:this.options.timeoutMs??iR}),W="",_=(R)=>{let{lines:q,remainder:N}=L1(W,R.toString("utf8"));W=N;for(let b of q)H.handleLine(b)};G.stdout.on("data",_);let U=null;G.on("error",(R)=>{U=R.message});let Q=ep(G,"exit").then((R)=>R[0]??null).catch((R)=>{return U=R instanceof Error?R.message:String(R),null});Q.then((R)=>{if(R===0)return;let q=U??(R===null?"codex child exited unexpectedly":`codex child exited with code ${R}`);B.close({kind:"error",message:q}),H.dispose(q)});let A=this.options.timeoutMs??iR,O=setTimeout(()=>nR(G,"SIGKILL"),A),E=!1,K=()=>{E=!0,nR(G,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{await H.request("initialize",{protocolVersion:Fc,clientInfo:{name:"aiworker",version:"0.2.0"},capabilities:{experimentalApi:!0}});let R=D.model??this.options.model,q=Jc(D.engineBinding);if(D.engineBinding!==void 0&&q===null)yield{type:"engine_binding",engine:r5,binding:null};let N;if(q?.protocol==="current")try{N=await this.resumeCurrentThread(H,q,R,X)}catch{yield{type:"engine_binding",engine:r5,binding:null},N=await this.startThread(H,R,X)}else N=await this.startThread(H,R,X);if(!N.threadId){yield{type:"error",error:"Codex thread start returned no threadId"},yield{type:"finish",reason:"error"};return}let b=N.resumed?$:F;if(N.protocol==="legacy")H.request("newTurn",{threadId:N.threadId,prompt:b}).then(()=>B.close({kind:"finish"}),(z)=>B.close({kind:"error",message:z instanceof Error?z.message:String(z)}));else{try{await this.startCurrentTurn(H,N.threadId,b)}catch(w){if(!N.resumed)throw w;yield{type:"engine_binding",engine:r5,binding:null},N=await this.startThread(H,R,X),b=F,await this.startCurrentTurn(H,N.threadId,b)}yield{type:"engine_binding",engine:r5,binding:{...Gc(N)}}}let T=!1;for await(let w of B.iter())if(yield w,w.type==="finish")T=!0;let L=B.terminal;if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:E?"cancelled":"error"};else if(!T)yield{type:"finish",reason:E?"cancelled":"stop"}}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:E?"cancelled":"error"}}finally{clearTimeout(O),D.signal?.removeEventListener("abort",K),H.dispose("run ended"),G.stdout.off("data",_),Bc(G),await Q.catch(()=>null)}}handleNotification(D,$){for(let F of BY(D))$.push(F);if(D.method==="turn/completed")$.close({kind:"finish"})}async handleInboundRequest(D){if(D.method==="codex/request_permission"||D.method==="session/request_permission")return{outcome:{outcome:"selected",optionId:"allow"}};throw Error(`unsupported codex client method: ${D.method}`)}async startThread(D,$,F){let X={approval_policy:"never"};if($&&$.length>0)X.model=$;try{return{protocol:"legacy",threadId:(await D.request("thread_start",X)).threadId}}catch(G){if(!Xc(G))throw G}let J={approvalPolicy:"never",cwd:F,experimentalRawEvents:!1,persistExtendedHistory:!0};if($&&$.length>0)J.model=$;let Y=await D.request("thread/start",J);return{protocol:"current",threadId:Y.thread.id,...Y.thread.path===void 0||Y.thread.path===null?{}:{path:Y.thread.path}}}async resumeCurrentThread(D,$,F,X){let J={threadId:$.threadId,approvalPolicy:"never",cwd:X,persistExtendedHistory:!0};if(F&&F.length>0)J.model=F;let Y=await D.request("thread/resume",J);return{protocol:"current",resumed:!0,threadId:Y.thread.id||$.threadId,...Y.thread.path===void 0||Y.thread.path===null?$.path===void 0?{}:{path:$.path}:{path:Y.thread.path}}}async startCurrentTurn(D,$,F){await D.request("turn/start",{threadId:$,input:[{type:"text",text:F}]})}async resolveCommand(){let D=["app-server",...this.options.extraArgs??[]],F=await(this.options.resolveBinary??Yc)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||u6.env.CODEX_CLI_VERSION?.trim()||a5}`,...D]}}}function Xc(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}function Jc(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 Gc(D){return{protocol:"current",threadId:D.threadId,...D.path===void 0?{}:{path:D.path}}}class sR{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 Yc(){let D=u6.env.PATH??"",$=u6.platform==="win32"?";":":",F=u6.platform==="win32"?(u6.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=$c.join(X,`codex${J.toLowerCase()}`);try{if((await Dc.stat(Y)).isFile())return Y}catch{}}}return null}function nR(D,$){try{D.kill($)}catch{}}function Bc(D){try{D.stdin.end()}catch{}}function Hc(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 Wc(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
|
|
282
282
|
${$.content}
|
|
283
283
|
</${F}>`}).join(`
|
|
284
284
|
|
|
285
|
-
`)}var
|
|
285
|
+
`)}var a5="0.121.0",iR=120000,Fc=1,r5="codex";var rR=Z(()=>{g6();HY()});var aR=Z(()=>{rR();HY()});function WY(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function VY(D){switch(D.type){case"system":return[];case"assistant_message":return Vc(D);case"thinking":return _c(D);case"tool_use":return Uc(D);case"tool_result":return Qc(D);case"token_usage":return Ac(D);case"stop":case"end":return Kc(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function _Y(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Vc(D){let $=eR(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function _c(D){let $=eR(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Uc(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:tR(D.name,$),...D.status?{status:Ec(D.status)}:{}}]}function Qc(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 Ac(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Kc(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:oR(D.reason)}),$}function oR(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function Ec(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 tR(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:w9($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=w9($,["path","file_path","filePath"]),J=Oc($);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:w9($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:w9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:w9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function eR(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function w9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Oc(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
|
|
286
286
|
+ ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
|
|
287
|
-
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var
|
|
288
|
-
`),F.stdin.end();let Y=setTimeout(()=>F.kill("SIGKILL"),$),[G]=await
|
|
287
|
+
+ ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var UY=()=>{};import{spawn as Rc}from"child_process";import{once as Cc}from"events";import Mc from"fs/promises";import Zc from"path";import S9 from"process";class e5{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 $=Lc(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??S9.cwd(),X=jc(D.engineBinding);if(D.engineBinding!==void 0&&X===void 0)yield{type:"engine_binding",engine:t5,binding:null};let J;try{J=await this.resolveCommand(D.model,X)}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)},yield{type:"finish",reason:"error"};return}let G=(this.options.spawn??Rc)(J.cmd,J.args,{cwd:F,env:Z2(this.options.env)});try{G.stdin.write($),G.stdin.end()}catch{}let B=this.options.timeoutMs??qc,H=setTimeout(()=>DC(G,"SIGKILL"),B),W="",_=null,U="",Q=!1,A=Cc(G,"exit").then((R)=>R[0]??null).catch((R)=>{return _=R instanceof Error?R.message:String(R),null});G.on("error",(R)=>{_=R.message});let O=!1,E=()=>{O=!0,DC(G,"SIGTERM")};D.signal?.addEventListener("abort",E,{once:!0});try{for await(let R of G.stdout){let{lines:q,remainder:N}=j1(W,R.toString("utf8"));W=N;for(let b of q){let T=WY(b);if(!T)continue;let L=_Y(T);if(L){if(this.lastSessionId=L,L!==U)U=L,yield{type:"engine_binding",engine:t5,binding:{sessionId:L}}}for(let w of VY(T)){if(w.type==="error"&&X!==void 0)yield{type:"engine_binding",engine:t5,binding:null};if(yield w,w.type==="finish")Q=!0}if(Q)break}if(Q)break}}catch(R){yield{type:"error",error:R instanceof Error?R.message:String(R)}}finally{clearTimeout(H),D.signal?.removeEventListener("abort",E),Pc(G)}let K=await A;if(!Q){if(X!==void 0)yield{type:"engine_binding",engine:t5,binding:null};if(_)yield{type:"error",error:_};else if(K!==0&&K!==null)yield{type:"error",error:`cursor-agent exited with code ${K}`};yield{type:"finish",reason:O?"cancelled":K===0?"stop":"error"}}}async resolveCommand(D,$){let X=await(this.options.resolveBinary??Nc)();if(!X)throw Error("cursor-agent binary not found on PATH (install https://cursor.com/cli)");let J=D??this.options.model,Y=$??this.options.resumeSessionId,G=$C({model:J,...Y===void 0?{}:{resumeSessionId:Y},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:X,args:G}}}function $C(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 Nc(){let D=S9.env.PATH??"",$=S9.platform==="win32"?";":":",F=S9.platform==="win32"?(S9.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=Zc.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await Mc.stat(Y)).isFile())return Y}catch{}}}return null}function DC(D,$){try{D.kill($)}catch{}}function Pc(D){try{D.stdin.end()}catch{}}function Lc(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 jc(D){if(!D||typeof D.sessionId!=="string"||D.sessionId.length===0)return;return D.sessionId}var qc=120000,t5="cursor";var FC=Z(()=>{g6();UY()});var XC=Z(()=>{FC();UY()});class AY{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*JC(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=zc($.error),X=$.error;for(let J of this.fallbacks){if(!J.onErrorKinds.includes(F))continue;let Y=Math.max(1,J.maxRetries);for(let G=0;G<Y;G++){let B=yield*JC(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*JC(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 zc(D){if(D===null||D===void 0)return"unknown";let $=GC(D,"status")??GC(D,"statusCode"),F=QY(D,"code"),X=QY(D,"name"),Y=(QY(D,"message")??Ic(D)).toLowerCase();if($===429||Y.includes("rate limit")||Y.includes("rate_limit"))return"rate-limit";if($===408||X==="AbortError"||F==="ETIMEDOUT"||Y.includes("timeout")||Y.includes("engine stall"))return"timeout";if($===401||$===403||Y.includes("invalid api key")||Y.includes("unauthorized"))return"auth";if(F==="ECONNREFUSED"||F==="ENOTFOUND"||F==="ECONNRESET"||F==="EAI_AGAIN"||X==="TypeError"&&Y.includes("fetch failed"))return"network";if(typeof $==="number"&&$>=500&&$<600)return"server-5xx";return"unknown"}function GC(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function QY(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function Ic(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as YC}from"buffer";import{spawn as BC}from"child_process";import{once as HC}from"events";class KY{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=BC(this.opts.command,["--version"],{cwd:this.opts.cwd,env:Z2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([HC($,"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=BC(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:Z2(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)}
|
|
288
|
+
`),F.stdin.end();let Y=setTimeout(()=>F.kill("SIGKILL"),$),[G]=await HC(F,"exit");if(clearTimeout(Y),G!==0){let B=YC.concat(J).toString("utf8");throw Error(`CLI executor exited with ${G??"null"}: ${B||"(no stderr)"}`)}return YC.concat(X).toString("utf8")}}var WC=Z(()=>{g6()});var Tc,wc,Sc,D$;var EY=Z(()=>{yD();Tc=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()}),wc=V.object({role:V.enum(["system","user","assistant","tool"]).optional(),content:V.string().nullable().optional(),tool_calls:V.array(Tc).optional()}),Sc=V.object({prompt_tokens:V.number(),completion_tokens:V.number(),total_tokens:V.number()}),D$=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:wc,finish_reason:V.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:Sc.nullish()})});async function OY(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??bc,X=new AbortController,J=setTimeout(()=>X.abort(),F),Y=()=>X.abort();D.signal?.addEventListener("abort",Y,{once:!0});let G;try{G=await fetch(`${$}/v1/chat/completions`,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",Authorization:`Bearer ${D.apiKey}`},body:JSON.stringify(D.body),signal:X.signal})}catch(B){if(clearTimeout(J),D.signal?.removeEventListener("abort",Y),B instanceof DOMException&&B.name==="AbortError")throw Error(`OpenAI request aborted after ${F}ms`);throw Error(B instanceof Error?B.message:"OpenAI transport error")}if(!G.ok){let B=await G.text().catch(()=>"");throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),new b9(G.status,G.statusText,B)}if(!G.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),Error("OpenAI response has no body");return fc(G.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",Y)})}async function*fc(D,$){let F=D.getReader(),X=new TextDecoder("utf-8"),J="";try{while(!0){let{value:Y,done:G}=await F.read();if(G)break;J+=X.decode(Y,{stream:!0});while(!0){let B=kc(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=VC(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let _;try{_=JSON.parse(W)}catch{continue}let U=D$.safeParse(_);if(!U.success)continue;yield{type:"chunk",chunk:U.data}}}if(J.trim().length>0){let Y=VC(J);if(Y&&Y!=="[DONE]")try{let G=JSON.parse(Y),B=D$.safeParse(G);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function kc(D){let $=D.indexOf(`
|
|
289
289
|
|
|
290
290
|
`),F=D.indexOf(`\r
|
|
291
291
|
\r
|
|
292
|
-
`);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function
|
|
293
|
-
`);if(X==="[DONE]")return"[DONE]";return X}var Tc=60000,S9;var VO=Z(()=>{KY();S9=class S9 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 _O=Z(()=>{VO();KY()});class CY{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(fc),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(bc),$.tool_choice="auto";let F;try{F=await EY({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(G){yield{type:"error",error:UO(G)};return}let X=new Map,J=null,Y;try{for await(let G of F){if(G.type==="done")break;let B=G.chunk.choices[0];if(B){let H=B.delta;if(typeof H.content==="string"&&H.content.length>0)yield{type:"assistant_message_delta",delta:H.content};if(H.tool_calls)for(let W of H.tool_calls)kc(X,W);if(B.finish_reason)J=hc(B.finish_reason)}if(G.chunk.usage)Y={inputTokens:G.chunk.usage.prompt_tokens,outputTokens:G.chunk.usage.completion_tokens}}}catch(G){yield{type:"error",error:UO(G)};return}for(let[,G]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=vc(G);if(B)yield B}if(Y)yield{type:"token_usage",usage:Y};yield{type:"finish",reason:J??"stop",...Y?{usage:Y}:{}}}}function bc(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function fc(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 kc(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 vc(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 hc(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 UO(D){if(D instanceof S9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var QO=Z(()=>{_O()});class RY{name="mcp";client;constructor(D){this.client=new x6({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 AO=Z(()=>{yG()});import KO from"process";function MY(D){let $=xc(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:MY(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new QY($,F)}function xc(D){let $=o2(D);switch($.engine){case"http":{let F=$.body;return new CY({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new RY({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,Y=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,G=OY(F.env,X?.env);return new AY({command:J,args:Y,...F.cwd===void 0?{}:{cwd:F.cwd},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs},...F.sandbox===void 0?{}:{sandbox:F.sandbox}})}case"claude-code":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion??KO.env.CLAUDE_CLI_VERSION??i5,Y=$.modelId??F.model,G=EO(F.extraArgs,X?.extraArgs),B=OY(F.env,X?.env);return new n5({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,Y=$.modelId??F.model,G=EO(F.extraArgs,X?.extraArgs),B=OY(F.env,X?.env),H=eG(F.agent);return new m5({agent:H,...Y===void 0?{}:{model:Y},...J===void 0?{}:{cliVersion:J},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??KO.env.CODEX_CLI_VERSION??r5,Y=$.modelId??F.model,G=X?.extraArgs,B=X?.env;return new a5({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,Y=X?.extraArgs,G=X?.env;return new t5({...J===void 0?{}:{model:J},...Y===void 0?{}:{extraArgs:Y},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function EO(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function OY(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var CO=Z(()=>{J1();bR();gR();rR();FO();HO();QO();AO()});import{Buffer as RO}from"buffer";import{spawn as gc}from"child_process";import{once as yc}from"events";import m6 from"fs/promises";import X8 from"path";import uc from"process";function OO(D,$,F){if(!qO.test(F))throw new $$(`invalid conversation id: ${F}`);let X=X8.resolve(D),J=X8.resolve(X,$);if(!MO(X,J))throw new $$(`workspace subdir "${$}" escapes root`);let Y=X8.resolve(J,F);if(!MO(J,Y))throw new $$(`workspace "${F}" escapes parent`);return Y}function MO(D,$){let F=X8.relative(D,$);return F===""||!F.startsWith("..")&&!X8.isAbsolute(F)}class ZY{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 $=OO(this.root,this.subdir,D);if(await D$($)){let F=await D$(X8.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await m6.mkdir(X8.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await m6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=OO(this.root,this.subdir,D);if(!await D$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await m6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=X8.resolve(this.root,this.subdir);if(!await D$(D))return;let $=await m6.readdir(D);await Promise.all($.map(async(F)=>{if(!qO.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await ZO(["worktree","add","--detach",$],D);if(F.code!==0)throw await m6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await ZO(["worktree","remove","--force",$],D)).code===0}}async function D$(D){try{return await m6.stat(D),!0}catch{return!1}}async function ZO(D,$){let F=gc("git",D,{cwd:$,env:uc.env,stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(G)=>X.push(G)),F.stderr.on("data",(G)=>J.push(G));let[Y]=await yc(F,"exit");return{code:Y,stdout:RO.concat(X).toString("utf8"),stderr:RO.concat(J).toString("utf8")}}var qO,$$;var PO=Z(()=>{qO=/^[\w-]{1,128}$/;$$=class $$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function NO(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function LO(D){let $=Y0(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 jO(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),M3(WD.threadId));return $.select({sessionKey:WD.sessionKey}).from(WD).where(F).limit(1).get()!==void 0}async function zO(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),M3(c.threadId),v(c.status,"open"));return $.select().from(c).where(F).orderBy(hD(c.lastActiveAt)).get()??null}function pc(){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(`
|
|
294
|
-
`)}function
|
|
295
|
-
`)}]}async function IO(D,$,F,X,J,Y){let G={messages:cc(F,X,J),...$?{model:$}:{},...Y?{workspacePath:Y}:{},temperature:0},B="";try{for await(let H of D.run(G))if(H.type==="assistant_message_delta")B+=H.delta;else if(H.type==="error")throw Error(H.error)}catch(H){return O.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 qY(D,$=mc){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)=>!dc(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function dc(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 mc=4;var TO=Z(()=>{TD();JD();_0()});function sc(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 z1(D){return nc+sc(D.content)}function PY(D){return D.reduce(($,F)=>$+z1(F),0)}function rc(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function NY(D,$){if(!rc(D))return null;let F=D?.contextWindowTokens??ac($)??lc,X=ec(D?.reserveTokens??tc(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 SO(D){let $=z1(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let G of D.historyNewestFirst){let B=z1(G);if(!(J+B<=F)){if(X.length===0)X.push(G),J+=B;break}X.push(G),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function b9(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 ac(D){try{let F=o2(D).body,X=Dd(F.contextWindowTokens);if(X!==null)return X;let J=b9(D);return J===void 0?null:oc(J)}catch{return null}}function oc(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 tc(D){return Math.min(ic,Math.floor(D/4))}function ec(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Dd(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var lc=8192,ic=1024,wO=2000,nc=6;var bO=Z(()=>{J1()});function fO(D,$){if(!$)return"auto";for(let F of $.rules)if($d(F.pattern,D))return F.action;return $.default}function $d(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 IY{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),Y=this.persistUserMessage(F.id,D,X);this.deps.bus.emit("conversation.message",{conversationId:F.id,messageId:Y.id,role:"user"});let G=new AbortController,B=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()=>G.abort(),onActivity:(H)=>{return B=H,()=>{if(B===H)B=null}}}),job:()=>this.run(F,D,J,G.signal,()=>B?.(),X)})}async run(D,$,F,X,J,Y){let G=u(),B=(await this.maybeCompactConversation({conversation:D,sessionKey:Y,workspace:F,signal:X,notifyActivity:J})).conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H);B6(Y,{contextTokens:PY(W)});let _=b9(this.deps.config.executor),U=vO($),Q=this.deps.config.executor.engine,A=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:Q}),E=await this.collectAssistantText(A,B.id,U,J,Y);if(!E.ok&&E.staleBindingCleared===!0&&A.engineBinding!==void 0&&E.text.length===0)A=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:Q}),E=await this.collectAssistantText(A,B.id,U,J,Y);if(!E.ok&&this.isContextOverflowError(E.error)){let R=await this.maybeCompactConversation({conversation:B,sessionKey:Y,workspace:F,signal:X,notifyActivity:J,force:!0});if(R.compacted){if(B=R.conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H),B6(Y,{contextTokens:PY(W)}),A=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:Q}),E=await this.collectAssistantText(A,B.id,U,J,Y),!E.ok&&E.staleBindingCleared===!0&&A.engineBinding!==void 0&&E.text.length===0)A=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:Q}),E=await this.collectAssistantText(A,B.id,U,J,Y)}}if(!E.ok){let R=E.error??"executor error";O.warn(`[orchestrator] executor error: ${R}`),this.deps.bus.emit("orchestrator.error",{conversationId:B.id,...U===void 0?{}:{taskId:U},error:R});return}let C=E.text,K=new Date().toISOString();G.insert(d).values({conversationId:B.id,role:"assistant",content:C,createdAt:K}).run(),G.update(c).set({lastActiveAt:K}).where(v(c.id,B.id)).run(),B6(Y,{at:K}),this.deps.bus.emit("orchestrator.finished",{conversationId:B.id,...U===void 0?{}:{taskId:U}}),await this.deliver($.channel,B,C)}async collectAssistantText(D,$,F,X,J){let Y="",G=!1;try{for await(let B of this.deps.executor.run(D))if(X(),B.type==="assistant_message_delta")Y+=B.delta,this.deps.bus.emit("orchestrator.text",{conversationId:$,...F===void 0?{}:{taskId:F},delta:B.delta});else if(B.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...F===void 0?{}:{taskId:F},call:{id:B.id,name:B.name,arguments:B.arguments}});else if(B.type==="engine_binding"){if(B.engine===this.deps.config.executor.engine){if(jX(J,B.engine,B.binding),B.binding===null)G=!0}}else if(B.type==="error")return{ok:!1,text:Y,error:B.error,staleBindingCleared:G};return{ok:!0,text:Y}}catch(B){return O.error(`[orchestrator] run failed: ${String(B)}`),{ok:!1,text:Y,error:String(B),staleBindingCleared:G}}}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=Y0(D)?.engineBindings[$];return Wd(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((Y)=>Y.channel===D&&Y.enabled);if(!X)return;let J=H1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(Y){O.warn(`[orchestrator] deliver to ${D} failed: ${String(Y)}`)}}async resolveConversation(D){let $=NO(D),F=await LO($),J=(F?!0:await jO(D))?null:await zO(D),Y=F??J;if(!Y){let U=this.createConversation(D);return this.upsertSession($,D,U.id),{conversation:U,sessionKey:$}}if(J)this.upsertSession($,D,Y.id);if(Vd(D)){this.closeConversation(Y);let U=this.createConversation(D);return this.rotateSession($,D,U.id,_d(D)),{conversation:U,sessionKey:$}}let G=await this.provisionWorkspace(Y.id),B=await qY(Y.id),H=b9(this.deps.config.executor),W=await IO(this.deps.executor,H,Y.summary??null,B,D.text,G?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:Y.id,decision:W}),W.continue)return{conversation:jY(Y),sessionKey:$};this.closeConversation(Y);let _=this.createConversation(D);return this.rotateSession($,D,_.id,"classifier:new-topic"),{conversation:_,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)=>O.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return O.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){O.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(),Y=vO(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...Y===void 0?{}:{taskId:Y}}),jY(J)}upsertSession(D,$,F){PX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!NX({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=u(),J=new Date().toISOString(),Y=$.richMetadata?JSON.stringify($.richMetadata):null,G=X.insert(d).values({conversationId:D,role:"user",content:$.text,...Y===null?{}:{richMetadata:Y},createdAt:J}).returning({id:d.id}).all();return X.update(c).set({lastActiveAt:J}).where(v(c.id,D)).run(),B6(F,{at:J}),{id:G[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=NY(this.deps.config.orchestrator,this.deps.config.executor);if(!F)return{conversation:D.conversation,compacted:!1};let X=this.loadLatestCompactionCheckpoint(D.conversation.id),J=this.loadPromptTranscriptRows(D.conversation.id,X?.compactedThroughMessageId);if(J.length<=1)return{conversation:D.conversation,compacted:!1};let Y=await this.buildSystemPrompt(D.conversation.summary??null),G=z1({role:"system",content:Y}),B=G+J.reduce((q,P)=>q+z1(F$(P)),0),H=$.triggerTokens??Math.max(0,F.contextWindowTokens-F.reserveTokens);if(!D.force&&B<=H)return{conversation:D.conversation,compacted:!1};let W=Math.min(F.keepRecentTokens,Math.max(0,H-G)),{candidateRows:_}=Fd(J,W);if(_.length===0)return{conversation:D.conversation,compacted:!1};let U=_[0].id,Q=_[_.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:_,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:U,throughId:Q}),E;try{E=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:_,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})}catch(q){return O.warn(`[orchestrator] compaction summary failed: ${String(q)}`),{conversation:D.conversation,compacted:!1}}let C=new Date().toISOString(),K=u();K.insert(d).values({conversationId:D.conversation.id,role:"system",content:E,richMetadata:JSON.stringify({kind:"compaction",version:kO,compactedFromMessageId:U,compactedThroughMessageId:Q,sourceMessageCount:_.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:C}).run(),K.update(c).set({summary:E,lastActiveAt:C}).where(v(c.id,D.conversation.id)).run(),LX(D.sessionKey,{at:C,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let R=K.select().from(c).where(v(c.id,D.conversation.id)).get();return{conversation:R?jY(R):{...D.conversation,summary:E,lastActiveAt:C},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:kO,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:Yd(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 O.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:Gd(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return Bd(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=b9(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=xO(X);if(J?.kind!=="compaction")continue;let Y=Hd(J.compactedThroughMessageId);if(Y!==null)return{messageId:X.id,compactedThroughMessageId:Y}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),O3(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)=>!hO(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),O3(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((Y)=>!hO(Y)).slice(0,F)}isContextOverflowError(D){if(D===void 0)return!1;return/context|token|too large|maximum length|maximum prompt|prompt is too long/i.test(D)}async buildRunContext(D,$){let F={role:"system",content:$},X=NY(this.deps.config.orchestrator,this.deps.config.executor);if(!X){let Y=await this.loadHistoryWindow(D);return[F,...Y]}let J=await this.loadBudgetHistory(D,X.maxHistoryMessages);return SO({systemMessage:F,historyNewestFirst:J,budget:X}).messages}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??A7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await qY(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(F$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??wO).map(F$)}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(`
|
|
296
|
-
`)}async runTool(D){let $=
|
|
297
|
-
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows to compact. Raw rows remain stored for audit:",
|
|
298
|
-
`)}]}function
|
|
299
|
-
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows about to be compacted:",
|
|
300
|
-
`)}]}function
|
|
301
|
-
`);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(
|
|
302
|
-
`)}function
|
|
292
|
+
`);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function VC(D){let $=D.split(/\r?\n/),F=[];for(let J of $){if(J.startsWith(":"))continue;if(J.startsWith("data:")){let Y=J.slice(5).replace(/^ /,"");F.push(Y)}}if(F.length===0)return null;let X=F.join(`
|
|
293
|
+
`);if(X==="[DONE]")return"[DONE]";return X}var bc=60000,b9;var _C=Z(()=>{EY();b9=class b9 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 UC=Z(()=>{_C();EY()});class RY{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(hc),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(vc),$.tool_choice="auto";let F;try{F=await OY({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(G){yield{type:"error",error:QC(G)};return}let X=new Map,J=null,Y;try{for await(let G of F){if(G.type==="done")break;let B=G.chunk.choices[0];if(B){let H=B.delta;if(typeof H.content==="string"&&H.content.length>0)yield{type:"assistant_message_delta",delta:H.content};if(H.tool_calls)for(let W of H.tool_calls)xc(X,W);if(B.finish_reason)J=yc(B.finish_reason)}if(G.chunk.usage)Y={inputTokens:G.chunk.usage.prompt_tokens,outputTokens:G.chunk.usage.completion_tokens}}}catch(G){yield{type:"error",error:QC(G)};return}for(let[,G]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=gc(G);if(B)yield B}if(Y)yield{type:"token_usage",usage:Y};yield{type:"finish",reason:J??"stop",...Y?{usage:Y}:{}}}}function vc(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function hc(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 xc(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 gc(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 yc(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 QC(D){if(D instanceof b9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var AC=Z(()=>{UC()});class CY{name="mcp";client;constructor(D){this.client=new x6({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 KC=Z(()=>{uG()});import EC from"process";function ZY(D){let $=uc(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:ZY(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new AY($,F)}function uc(D){let $=a2(D);switch($.engine){case"http":{let F=$.body;return new RY({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new CY({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,Y=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,G=MY(F.env,X?.env);return new KY({command:J,args:Y,...F.cwd===void 0?{}:{cwd:F.cwd},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs},...F.sandbox===void 0?{}:{sandbox:F.sandbox}})}case"claude-code":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion??EC.env.CLAUDE_CLI_VERSION??n5,Y=$.modelId??F.model,G=OC(F.extraArgs,X?.extraArgs),B=MY(F.env,X?.env);return new s5({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"acp":{let{body:F,cmd:X}=$,J=X?.cliVersion??F.cliVersion,Y=$.modelId??F.model,G=OC(F.extraArgs,X?.extraArgs),B=MY(F.env,X?.env),H=DY(F.agent);return new p5({agent:H,...Y===void 0?{}:{model:Y},...J===void 0?{}:{cliVersion:J},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"codex":{let{body:F,cmd:X}=$,J=X?.cliVersion??EC.env.CODEX_CLI_VERSION??a5,Y=$.modelId??F.model,G=X?.extraArgs,B=X?.env;return new o5({cliVersion:J,...Y===void 0?{}:{model:Y},...G===void 0?{}:{extraArgs:G},...B===void 0?{}:{env:B},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cursor":{let{body:F,cmd:X}=$,J=$.modelId??F.model,Y=X?.extraArgs,G=X?.env;return new e5({...J===void 0?{}:{model:J},...Y===void 0?{}:{extraArgs:Y},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function OC(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function MY(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var RC=Z(()=>{J1();fR();yR();aR();XC();WC();AC();KC()});import{Buffer as CC}from"buffer";import{spawn as mc}from"child_process";import{once as pc}from"events";import m6 from"fs/promises";import F8 from"path";import cc from"process";function MC(D,$,F){if(!NC.test(F))throw new F$(`invalid conversation id: ${F}`);let X=F8.resolve(D),J=F8.resolve(X,$);if(!ZC(X,J))throw new F$(`workspace subdir "${$}" escapes root`);let Y=F8.resolve(J,F);if(!ZC(J,Y))throw new F$(`workspace "${F}" escapes parent`);return Y}function ZC(D,$){let F=F8.relative(D,$);return F===""||!F.startsWith("..")&&!F8.isAbsolute(F)}class qY{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=F8.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 $=MC(this.root,this.subdir,D);if(await $$($)){let F=await $$(F8.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await m6.mkdir(F8.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await m6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=MC(this.root,this.subdir,D);if(!await $$($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await m6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=F8.resolve(this.root,this.subdir);if(!await $$(D))return;let $=await m6.readdir(D);await Promise.all($.map(async(F)=>{if(!NC.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await qC(["worktree","add","--detach",$],D);if(F.code!==0)throw await m6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await qC(["worktree","remove","--force",$],D)).code===0}}async function $$(D){try{return await m6.stat(D),!0}catch{return!1}}async function qC(D,$){let F=mc("git",D,{cwd:$,env:cc.env,stdio:["ignore","pipe","pipe"]}),X=[],J=[];F.stdout.on("data",(G)=>X.push(G)),F.stderr.on("data",(G)=>J.push(G));let[Y]=await pc(F,"exit");return{code:Y,stdout:CC.concat(X).toString("utf8"),stderr:CC.concat(J).toString("utf8")}}var NC,F$;var PC=Z(()=>{NC=/^[\w-]{1,128}$/;F$=class F$ extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});function LC(D){let $=[D.channel,D.accountId,D.chatId];if(D.threadId!==void 0)$.push(D.threadId);return $.map(encodeURIComponent).join(":")}async function jC(D){let $=Y0(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 zC(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),M3(WD.threadId));return $.select({sessionKey:WD.sessionKey}).from(WD).where(F).limit(1).get()!==void 0}async function IC(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),M3(c.threadId),v(c.status,"open"));return $.select().from(c).where(F).orderBy(hD(c.lastActiveAt)).get()??null}function lc(){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(`
|
|
294
|
+
`)}function ic(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:lc()},{role:"user",content:X.join(`
|
|
295
|
+
`)}]}async function TC(D,$,F,X,J,Y){let G={messages:ic(F,X,J),...$?{model:$}:{},...Y?{workspacePath:Y}:{},temperature:0},B="";try{for await(let H of D.run(G))if(H.type==="assistant_message_delta")B+=H.delta;else if(H.type==="error")throw Error(H.error)}catch(H){return 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 NY(D,$=dc){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)=>!nc(J)).slice(0,$).reverse().map((J)=>({role:J.role,content:J.content}))}function nc(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 dc=4;var wC=Z(()=>{TD();JD();_0()});function oc(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 z1(D){return ac+oc(D.content)}function PY(D){return D.reduce(($,F)=>$+z1(F),0)}function tc(D){return D?.contextWindowTokens!==void 0||D?.reserveTokens!==void 0||D?.keepRecentTokens!==void 0||D?.compaction?.enabled===!0||D?.compaction?.triggerTokens!==void 0}function LY(D,$){if(!tc(D))return null;let F=D?.contextWindowTokens??ec($)??sc,X=Fd(D?.reserveTokens??$d(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 bC(D){let $=z1(D.systemMessage),F=Math.max(0,Math.min(D.budget.keepRecentTokens,D.budget.contextWindowTokens-D.budget.reserveTokens-$)),X=[],J=0;for(let G of D.historyNewestFirst){let B=z1(G);if(!(J+B<=F)){if(X.length===0)X.push(G),J+=B;break}X.push(G),J+=B}return{messages:[D.systemMessage,...X.reverse()],contextTokens:$+J,historyTokens:J}}function f9(D){try{let $=a2(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 ec(D){try{let F=a2(D).body,X=Xd(F.contextWindowTokens);if(X!==null)return X;let J=f9(D);return J===void 0?null:Dd(J)}catch{return null}}function Dd(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 $d(D){return Math.min(rc,Math.floor(D/4))}function Fd(D,$){return Math.max(0,Math.min(D,Math.max(0,$-1)))}function Xd(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}var sc=8192,rc=1024,SC=2000,ac=6;var fC=Z(()=>{J1()});function kC(D,$){if(!$)return"auto";for(let F of $.rules)if(Jd(F.pattern,D))return F.action;return $.default}function Jd(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 TY{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),Y=this.persistUserMessage(F.id,D,X),G=gC(D);this.deps.bus.emit("conversation.message",{conversationId:F.id,...G===void 0?{}:{gatewayConversationId:G},messageId:Y.id,role:"user"});let B=new AbortController,H=null;await this.deps.processes.run({group:F.id,engine:this.deps.config.executor.engine,class:"interactive",meta:{conversationId:F.id,channel:D.channel},onSpawn:async()=>({cancel:async()=>B.abort(),onActivity:(W)=>{return H=W,()=>{if(H===W)H=null}}}),job:()=>this.run(F,D,J,B.signal,()=>H?.(),X)})}async run(D,$,F,X,J,Y){let G=u(),B=(await this.maybeCompactConversation({conversation:D,sessionKey:Y,workspace:F,signal:X,notifyActivity:J})).conversation,H=await this.buildSystemPrompt(B.summary??null),W=await this.buildRunContext(B.id,H);B6(Y,{contextTokens:PY(W)});let _=f9(this.deps.config.executor),U=hC($),Q=gC($),A=this.deps.config.executor.engine,O=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:A}),E=await this.collectAssistantText(O,B.id,U,J,Y,Q);if(!E.ok&&E.staleBindingCleared===!0&&O.engineBinding!==void 0&&E.text.length===0)O=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:A}),E=await this.collectAssistantText(O,B.id,U,J,Y,Q);if(!E.ok&&this.isContextOverflowError(E.error)){let q=await this.maybeCompactConversation({conversation:B,sessionKey:Y,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),B6(Y,{contextTokens:PY(W)}),O=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:A}),E=await this.collectAssistantText(O,B.id,U,J,Y,Q),!E.ok&&E.staleBindingCleared===!0&&O.engineBinding!==void 0&&E.text.length===0)O=this.buildAgentRunInput({messages:W,model:_,workspace:F,signal:X,sessionKey:Y,engine:A}),E=await this.collectAssistantText(O,B.id,U,J,Y,Q)}}if(!E.ok){let q=E.error??"executor error";C.warn(`[orchestrator] executor error: ${q}`),this.deps.bus.emit("orchestrator.error",{conversationId:B.id,...Q===void 0?{}:{gatewayConversationId:Q},...U===void 0?{}:{taskId:U},error:q});return}let K=E.text,R=new Date().toISOString();G.insert(d).values({conversationId:B.id,role:"assistant",content:K,createdAt:R}).run(),G.update(c).set({lastActiveAt:R}).where(v(c.id,B.id)).run(),B6(Y,{at:R}),this.deps.bus.emit("orchestrator.finished",{conversationId:B.id,...Q===void 0?{}:{gatewayConversationId:Q},...U===void 0?{}:{taskId:U}}),await this.deliver($.channel,B,K)}async collectAssistantText(D,$,F,X,J,Y){let G="",B=!1;try{for await(let H of this.deps.executor.run(D))if(X(),H.type==="assistant_message_delta")G+=H.delta,this.deps.bus.emit("orchestrator.text",{conversationId:$,...Y===void 0?{}:{gatewayConversationId:Y},...F===void 0?{}:{taskId:F},delta:H.delta});else if(H.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:$,...Y===void 0?{}:{gatewayConversationId:Y},...F===void 0?{}:{taskId:F},call:{id:H.id,name:H.name,arguments:H.arguments}});else if(H.type==="engine_binding"){if(H.engine===this.deps.config.executor.engine){if(zX(J,H.engine,H.binding),H.binding===null)B=!0}}else if(H.type==="error")return{ok:!1,text:G,error:H.error,staleBindingCleared:B};return{ok:!0,text:G}}catch(H){return C.error(`[orchestrator] run failed: ${String(H)}`),{ok:!1,text:G,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=Y0(D)?.engineBindings[$];return Ud(F)?F:void 0}async deliver(D,$,F){let X=this.deps.config.channels.find((Y)=>Y.channel===D&&Y.enabled);if(!X)return;let J=H1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(Y){C.warn(`[orchestrator] deliver to ${D} failed: ${String(Y)}`)}}async resolveConversation(D){let $=LC(D),F=await jC($),J=(F?!0:await zC(D))?null:await IC(D),Y=F??J;if(!Y){let U=this.createConversation(D);return this.upsertSession($,D,U.id),{conversation:U,sessionKey:$}}if(J)this.upsertSession($,D,Y.id);if(Qd(D)){this.closeConversation(Y);let U=this.createConversation(D);return this.rotateSession($,D,U.id,Ad(D)),{conversation:U,sessionKey:$}}let G=await this.provisionWorkspace(Y.id),B=await NY(Y.id),H=f9(this.deps.config.executor),W=await TC(this.deps.executor,H,Y.summary??null,B,D.text,G?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:Y.id,decision:W}),W.continue)return{conversation:zY(Y),sessionKey:$};this.closeConversation(Y);let _=this.createConversation(D);return this.rotateSession($,D,_.id,"classifier:new-topic"),{conversation:_,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(),Y=hC(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...Y===void 0?{}:{taskId:Y}}),zY(J)}upsertSession(D,$,F){PX({sessionKey:D,currentConversationId:F,channel:$.channel,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},accountId:$.accountId})}rotateSession(D,$,F,X){if(!LX({sessionKey:D,currentConversationId:F,resetReason:X}))this.upsertSession(D,$,F)}persistUserMessage(D,$,F){let X=u(),J=new Date().toISOString(),Y=$.richMetadata?JSON.stringify($.richMetadata):null,G=X.insert(d).values({conversationId:D,role:"user",content:$.text,...Y===null?{}:{richMetadata:Y},createdAt:J}).returning({id:d.id}).all();return X.update(c).set({lastActiveAt:J}).where(v(c.id,D)).run(),B6(F,{at:J}),{id:G[0]?.id??-1}}async maybeCompactConversation(D){let $=this.deps.config.orchestrator?.compaction;if($?.enabled!==!0)return{conversation:D.conversation,compacted:!1};let F=LY(this.deps.config.orchestrator,this.deps.config.executor);if(!F)return{conversation:D.conversation,compacted:!1};let X=this.loadLatestCompactionCheckpoint(D.conversation.id),J=this.loadPromptTranscriptRows(D.conversation.id,X?.compactedThroughMessageId);if(J.length<=1)return{conversation:D.conversation,compacted:!1};let Y=await this.buildSystemPrompt(D.conversation.summary??null),G=z1({role:"system",content:Y}),B=G+J.reduce((q,N)=>q+z1(X$(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-G)),{candidateRows:_}=Gd(J,W);if(_.length===0)return{conversation:D.conversation,compacted:!1};let U=_[0].id,Q=_[_.length-1].id,A=await this.runPreCompactionMemoryFlush({conversationId:D.conversation.id,previousSummary:D.conversation.summary??null,rows:_,compaction:$,workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity,fromId:U,throughId:Q}),O;try{O=await this.generateCompactionSummary({previousSummary:D.conversation.summary??null,rows:_,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 E=new Date().toISOString(),K=u();K.insert(d).values({conversationId:D.conversation.id,role:"system",content:O,richMetadata:JSON.stringify({kind:"compaction",version:vC,compactedFromMessageId:U,compactedThroughMessageId:Q,sourceMessageCount:_.length,previousCompactionMessageId:X?.messageId??null,memoryFlush:A.attempted?{status:A.status,at:A.at,...A.error===void 0?{}:{error:A.error}}:{status:"disabled"}}),createdAt:E}).run(),K.update(c).set({summary:O,lastActiveAt:E}).where(v(c.id,D.conversation.id)).run(),jX(D.sessionKey,{at:E,...A.attempted&&A.at!==void 0?{memoryFlushAt:A.at}:{}});let R=K.select().from(c).where(v(c.id,D.conversation.id)).get();return{conversation:R?zY(R):{...D.conversation,summary:O,lastActiveAt:E},compacted:!0}}async runPreCompactionMemoryFlush(D){if(D.compaction.memoryFlush?.enabled!==!0)return{attempted:!1};let $=new Date().toISOString(),F={kind:"memory-flush",version:vC,compactedFromMessageId:D.fromId,compactedThroughMessageId:D.throughId};try{let J=(await this.runSuppressedExecutor({messages:Wd(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:Hd(D.previousSummary,D.rows,D.compaction),workspace:D.workspace,signal:D.signal,notifyActivity:D.notifyActivity})).trim();if(F.length>0)return F;return Vd(D.previousSummary,D.rows)}async runSuppressedExecutor(D){let $=f9(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=yC(X);if(J?.kind!=="compaction")continue;let Y=_d(J.compactedThroughMessageId);if(Y!==null)return{messageId:X.id,compactedThroughMessageId:Y}}return null}loadPromptTranscriptRows(D,$){let F=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),C3(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(w2(d.id)).all().filter((J)=>!xC(J))}loadPromptTranscriptRowsNewestFirst(D,$,F){let X=$===void 0?v(d.conversationId,D):uD(v(d.conversationId,D),C3(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((Y)=>!xC(Y)).slice(0,F)}isContextOverflowError(D){if(D===void 0)return!1;return/context|token|too large|maximum length|maximum prompt|prompt is too long/i.test(D)}async buildRunContext(D,$){let F={role:"system",content:$},X=LY(this.deps.config.orchestrator,this.deps.config.executor);if(!X){let Y=await this.loadHistoryWindow(D);return[F,...Y]}let J=await this.loadBudgetHistory(D,X.maxHistoryMessages);return bC({systemMessage:F,historyNewestFirst:J,budget:X}).messages}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??K7,F=this.loadLatestCompactionCheckpoint(D);if(!F)return(await NY(D,$)).map((J)=>({role:J.role,content:J.content}));return this.loadPromptTranscriptRowsNewestFirst(D,F.compactedThroughMessageId,$).reverse().map(X$)}async loadBudgetHistory(D,$){let F=this.loadLatestCompactionCheckpoint(D);return this.loadPromptTranscriptRowsNewestFirst(D,F?.compactedThroughMessageId,$??SC).map(X$)}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(`
|
|
296
|
+
`)}async runTool(D){let $=kC(D.toolName,this.deps.config.toolPolicy);if($==="auto")return{decision:"allow",policy:"auto"};if($==="deny"){let G=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,G);return this.deps.bus.emit("approval.denied",{taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,reason:"policy"}),{decision:"deny",policy:"deny",syntheticAssistantMessage:G}}let F=D.timeoutMs??gG,X=Date.now()+F;this.deps.bus.emit("approval.requested",{workerId:this.deps.workerId,taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,expiresAt:X});let J;try{J=await this.deps.approvals.wait({taskId:D.taskId,toolCallId:D.toolCallId,toolName:D.toolName,params:D.params,timeoutMs:F})}catch{J="deny"}if(J==="allow")return{decision:"allow",policy:"ask"};let Y=`tool ${D.toolName} blocked by policy`;if(D.conversationId!==void 0)this.persistAssistantMessage(D.conversationId,Y);return{decision:"deny",policy:"ask",syntheticAssistantMessage:Y}}persistAssistantMessage(D,$){let F=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(M8).values({id:F,prompt:D,status:"queued",createdAt:X}).run();let J={workerId:this.deps.workerId,channel:"web",accountId:"sys:task",chatId:`task:${F}`,text:D,receivedAt:X,raw:{taskId:F}};return this.ingest(J).catch((Y)=>C.error(`[orchestrator] submitTask ingest failed: ${String(Y)}`)),{id:F}}}function hC(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 X$(D){return{role:D.role,content:D.content,...D.toolCalls===null?{}:{toolCalls:D.toolCalls},...D.toolCallId===null?{}:{toolCallId:D.toolCallId}}}function Gd(D,$){let F=[],X=0;for(let G=D.length-1;G>=0;G-=1){let B=D[G],H=z1(X$(B));if(F.length>0&&X+H>$)break;F.push(B),X+=H}let J=Yd(D,F.reverse()),Y=J[0]?.id;if(Y===void 0)return{candidateRows:D,recentRows:[]};return{candidateRows:D.filter((G)=>G.id<Y),recentRows:J}}function Yd(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=Bd(D,X);if(J===null||J>=X)break;X=J}return D.slice(X)}function Bd(D,$){let F=new Set;for(let X=$;X<D.length;X+=1){let J=D[X];for(let Y of J.toolCalls??[])F.add(Y.id);if(J.role!=="tool"||J.toolCallId===null||F.has(J.toolCallId))continue;for(let Y=$-1;Y>=0;Y-=1)if(D[Y].toolCalls?.some((B)=>B.id===J.toolCallId)===!0)return Y}return null}function Hd(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(`
|
|
297
|
+
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows to compact. Raw rows remain stored for audit:",wY($,F.maxSummaryMessages??IY)].join(`
|
|
298
|
+
`)}]}function Wd(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(`
|
|
299
|
+
`)},{role:"user",content:["Previous durable summary:",D?.trim()||"(none)","","Transcript rows about to be compacted:",wY($,F.maxSummaryMessages??IY)].join(`
|
|
300
|
+
`)}]}function wY(D,$){if(D.length<=$)return D.map(jY).join(`
|
|
301
|
+
`);let F=Math.ceil($/2),X=Math.floor($/2),J=D.length-F-X;return[...D.slice(0,F).map(jY),`... ${J} transcript rows omitted from summarizer prompt ...`,...D.slice(D.length-X).map(jY)].join(`
|
|
302
|
+
`)}function jY(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 Vd(D,$){let F=$.length===0?"no rows":`rows #${$[0].id}-#${$[$.length-1].id}`;return[D?.trim()||"",`Compacted ${F}.`,wY($,Math.min(12,IY))].filter((X)=>X.length>0).join(`
|
|
303
303
|
|
|
304
|
-
`)}function
|
|
304
|
+
`)}function xC(D){if(D.role!=="system")return!1;let $=yC(D);return $?.kind==="compaction"||$?.kind==="memory-flush"}function yC(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 _d(D){return typeof D==="number"&&Number.isInteger(D)&&D>0?D:null}function Ud(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function Qd(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function gC(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 Ad(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return"manual";let $=D.raw.resetCommand;return $==="/new"||$==="/reset"?`manual:${$}`:"manual"}function zY(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 IY=120,vC=1;var uC=Z(()=>{j0();TD();JD();_0();y3();wC();g5();fC()});function I1(D,$,F){let X=QR(D,$),J=ZY($.executor),Y=new g3($.channels),G=new e3,B=Kd($),H=new q1,W=new TY({config:$,brain:X,executor:J,bus:G,workerId:D,workspaces:B,processes:F.processes,approvals:H}),_=KR(G),U=$.evolution.enabled?qR():()=>{return},Q=new t3({workerId:D,getOrchestrator:()=>W});return Q.start(),{workerId:D,config:$,brain:X,executor:J,channels:Y,bus:G,orchestrator:W,cron:Q,workspaces:B,processes:F.processes,approvals:H,dispose(){_(),U(),H.dispose(),Q.stop(),xU()}}}function Kd(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=a2(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new qY({root:n.WORKER_DATA_ROOT,...$?{subdir:$}:{},...n.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:n.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var mC=Z(()=>{U4();AR();bX();y3();OJ();RJ();ER();NR();J1();RC();PC();g5();uC()});var pC=Z(()=>{U4()});import{Buffer as p6}from"buffer";import{createCipheriv as Ed,createDecipheriv as Od,randomBytes as Rd}from"crypto";class c6{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=p6.from(D,"hex"),this.key.length!==Md)throw Error("SecretsVault: decoded master key length is not 32 bytes")}async put(D,$){let{ciphertext:F,nonce:X,authTag:J}=this.encrypt($),Y=await this.db.select({id:U0.id}).from(U0).where(v(U0.key,D)).get(),G=new Date().toISOString();if(Y)await this.db.update(U0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:G}).where(v(U0.id,Y.id)).run();else await this.db.insert(U0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:G,updatedAt:G}).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 $=Rd(Cd),F=Ed(cC,this.key,$),X=p6.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=Od(cC,this.key,p6.from($,"base64"));return X.setAuthTag(p6.from(F,"base64")),p6.concat([X.update(p6.from(D,"base64")),X.final()]).toString("utf8")}}var cC="aes-256-gcm",Cd=12,Md=32;var SY=Z(()=>{TD();_0()});function mD(){if(!J$)J$=new c6(n.AIWORKER_MASTER_KEY,u());return J$}function dC(){J$=null}var J$=null;var lC=Z(()=>{TD();pC();SY();SY()});function d6(D={}){let $=G$(D.limit,Zd,1,qd),F=G$(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((G)=>nC(G,D.config)),page:{limit:$,offset:F,hasMore:J.length>$}}}function l6(D,$){let F=Y0(D);return F===null?null:nC(F,$)}function i6(D={}){let $=D.apply===!0,F=bY(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(K8(c.id,J),M`${c.status} = 'closed'
|
|
305
305
|
AND ${c.closedAt} IS NOT NULL
|
|
306
306
|
AND ${c.closedAt} <= ${F.cutoff}
|
|
307
|
-
AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`)).run();let Y=X.select({id:c.id}).from(c).where(
|
|
307
|
+
AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`)).run();let Y=X.select({id:c.id}).from(c).where(K8(c.id,J)).all(),G=new Set(Y.map((H)=>H.id)),B=F.planned.transcripts.filter((H)=>!G.has(H.conversationId));return{...F,mode:"apply",applied:{conversationsDeleted:B.length,messagesDeleted:B.reduce((H,W)=>H+W.messageCount,0)}}}function bY(D={}){let $=G$(D.olderThanDays,Ld,0,3650),F=G$(D.limit,Nd,1,Pd),X=wd(D.now,$),Y=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'
|
|
308
308
|
AND ${c.closedAt} IS NOT NULL
|
|
309
309
|
AND ${c.closedAt} <= ${X}
|
|
310
|
-
AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`).orderBy(
|
|
311
|
-
`),{mode:384}),
|
|
312
|
-
`)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;let Y=X.slice(0,J).trim(),G=X.slice(J+1).trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))G=G.slice(1,-1);$[Y]=G}return $}function
|
|
310
|
+
AND ${c.id} NOT IN (SELECT ${WD.currentConversationId} FROM ${WD})`).orderBy(w2(c.closedAt),w2(c.id)).limit(F).all(),G=Td(Y.map((W)=>W.id)),B=Y.map((W)=>({conversationId:W.id,channel:W.channel,chatId:W.chatId,threadId:W.threadId,closedAt:W.closedAt??"",lastActiveAt:W.lastActiveAt,messageCount:G.get(W.id)??0})),H=B.reduce((W,_)=>W+_.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 nC(D,$){let F=Id($),X=sC(D.engineBindings)?D.engineBindings:{},J=iC(F,X[F],bd(X,F)),Y=Object.keys(X).sort().map((G)=>iC(G,X[G],!0));return{sessionKey:D.sessionKey,sessionId:D.currentConversationId,currentConversationId:D.currentConversationId,route:{channel:D.channel,chatId:D.chatId,threadId:D.threadId,accountId:D.accountId},lifecycle:{status:D.status,sessionStartedAt:D.sessionStartedAt,lastInteractionAt:D.lastInteractionAt,resetAt:D.resetAt,resetReason:D.resetReason,createdAt:D.createdAt,updatedAt:D.updatedAt},context:{contextTokens:D.contextTokens,totalTokens:D.totalTokens,totalTokensFresh:D.totalTokensFresh,compactionCount:D.compactionCount},memoryFlush:{status:zd(D),at:D.memoryFlushAt,compactionCount:D.compactionCount,memoryFlushCompactionCount:D.memoryFlushCompactionCount},engineBindings:{configuredEngine:F,configured:J,all:Y}}}function iC(D,$,F){let X=sC($)?Object.keys($).sort():[];return{engine:D,present:F,valueType:F?Sd($):"unknown",fieldCount:X.length,fields:X,redacted:!0}}function zd(D){if(D.compactionCount===0)return"not-needed";if(D.memoryFlushAt===null)return"never";return D.memoryFlushCompactionCount>=D.compactionCount?"current":"stale"}function Id(D){let F=D?.executor?.engine;return typeof F==="string"&&F.length>0?F:"unknown"}function Td(D){if(D.length===0)return new Map;let $=u().select({conversationId:d.conversationId,value:p7()}).from(d).where(K8(d.conversationId,D)).groupBy(d.conversationId).all();return new Map($.map((F)=>[F.conversationId,F.value]))}function wd(D,$){let F=D===void 0?new Date:new Date(D);return new Date(F.getTime()-$*jd).toISOString()}function Sd(D){if(D===null)return"null";if(Array.isArray(D))return"array";let $=typeof D;if($==="boolean"||$==="number"||$==="object"||$==="string")return $;return"unknown"}function sC(D){return D!==null&&typeof D==="object"&&!Array.isArray(D)}function bd(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function G$(D,$,F,X){if(D===void 0||!Number.isInteger(D))return $;return Math.max(F,Math.min(X,D))}var Zd=50,qd=200,Nd=50,Pd=200,Ld=30,jd=86400000;var rC=Z(()=>{TD();_0()});var aC={};y8(aC,{workerEnv:()=>n,timingSafeEqualStrings:()=>b2,stopGatewayNode:()=>iO,startGatewayNode:()=>w5,runClosedTranscriptMaintenance:()=>i6,resetSecretsVaultForTests:()=>dC,resetAvailabilityProbeForTests:()=>jK,redactSecrets:()=>K4,readConfig:()=>S0,putSecret:()=>h5,putConfig:()=>L9,printBootstrapIfJustMinted:()=>B1,planClosedTranscriptMaintenance:()=>bY,mirrorConfigToYaml:()=>j9,mintWorkerId:()=>Q4,mintApiToken:()=>W6,loadOrSeedConfig:()=>G1,loadOrMintIdentity:()=>Y1,listSessionStatuses:()=>d6,listSecrets:()=>v5,hydrateSecrets:()=>_6,handleTokenRotate:()=>x8,handleExecutorTest:()=>f5,handleChannelTest:()=>b5,handleBrainTest:()=>S5,getWorkerEnv:()=>X1,getSessionStatus:()=>l6,getSecretsVault:()=>mD,getChannelAdapter:()=>H1,getAvailabilityProbe:()=>g4,enumerateSecretPaths:()=>o2,deleteSecret:()=>x5,buildWorkerRuntime:()=>I1,buildInfo:()=>k5,buildCronHandlers:()=>I5,applyConfigUpdate:()=>h6,WorkerEventBus:()=>e3,SecretsVault:()=>c6,ProcessManager:()=>P1,InvalidConfigError:()=>x2,DEFAULT_EMPTY_CONFIG:()=>H6,CronService:()=>t3,ConfigVersionConflictError:()=>g2,ChannelRegistry:()=>g3,ApprovalStore:()=>q1});var a0=Z(()=>{U4();bU();y3();OJ();RJ();y4();nO();vG();sO();kG();aO();oO();tO();g5();FR();mC();lC();A4();rC()});import e from"process";P2();import Gq from"process";import{randomBytes as AB}from"crypto";import{chmodSync as aZ,existsSync as KB,mkdirSync as oZ,readFileSync as tZ,writeFileSync as eZ}from"fs";import{homedir as Dq}from"os";import EB from"path";import D2 from"process";var $q=EB.join(Dq(),".aiworker");function u8(D={}){let $=D.home??D2.env.AIWORKER_HOME??$q,F=EB.join($,".env");if(KB(F)){let B=Fq(tZ(F,"utf8"));for(let[H,W]of Object.entries(B))if(D2.env[H]===void 0)D2.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!KB($))oZ($,{recursive:!0,mode:448});let X=D2.env.AIWORKER_MASTER_KEY??AB(32).toString("hex"),J=D2.env.INTERNAL_SHARED_SECRET??AB(24).toString("hex"),Y=["# FEAT-030 first-run minted env. chmod 0600.","# Persisted to disk so subsequent `aiworker` calls don't need to re-mint.","# \u663E\u5F0F `export AIWORKER_MASTER_KEY=...` \u4ECD\u7136\u4F18\u5148\uFF08\u8986\u76D6\u672C\u6587\u4EF6\uFF09\u3002",`AIWORKER_MASTER_KEY=${X}`,`INTERNAL_SHARED_SECRET=${J}`,""];if(eZ(F,Y.join(`
|
|
311
|
+
`),{mode:384}),aZ(F,384),D2.env.AIWORKER_MASTER_KEY===void 0)D2.env.AIWORKER_MASTER_KEY=X;if(D2.env.INTERNAL_SHARED_SECRET===void 0)D2.env.INTERNAL_SHARED_SECRET=J;let G=D2.env.AIWORKER_MASTER_KEY===X?X:null;if(G&&D.printOnMint!==!1)Xq(G,F);return{minted:!0,envFile:F,freshMasterKey:G}}function Fq(D){let $={};for(let F of D.split(`
|
|
312
|
+
`)){let X=F.trim();if(!X||X.startsWith("#"))continue;let J=X.indexOf("=");if(J<=0)continue;let Y=X.slice(0,J).trim(),G=X.slice(J+1).trim();if(G.startsWith('"')&&G.endsWith('"')||G.startsWith("'")&&G.endsWith("'"))G=G.slice(1,-1);$[Y]=G}return $}function Xq(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 ${Jq($,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",""];D2.stderr.write(`${F.join(`
|
|
313
313
|
`)}
|
|
314
|
-
`)}function
|
|
314
|
+
`)}function Jq(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}function Yq(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")return!1;return!0}if(Yq(Gq.argv)){let D=t0();u8({home:D.home})}import{EventEmitter as Bq}from"events";function z$(D){return D==null?[]:Array.isArray(D)?D:[D]}function Hq(D,$,F,X){var J,Y=D[$],G=~X.string.indexOf($)?F==null||F===!0?"":String(F):typeof F==="boolean"?F:~X.boolean.indexOf($)?F==="false"?!1:F==="true"||(D._.push((J=+F,J*0===0)?J:F),!!F):(J=+F,J*0===0)?J:F;D[$]=Y==null?G:Array.isArray(Y)?Y.concat(G):[Y,G]}function Wq(D,$){D=D||[],$=$||{};var F,X,J,Y,G,B={_:[]},H=0,W=0,_=0,U=D.length;let Q=$.alias!==void 0,A=$.unknown!==void 0,O=$.default!==void 0;if($.alias=$.alias||{},$.string=z$($.string),$.boolean=z$($.boolean),Q)for(F in $.alias){X=$.alias[F]=z$($.alias[F]);for(H=0;H<X.length;H++)($.alias[X[H]]=X.concat(F)).splice(H,1)}for(H=$.boolean.length;H-- >0;){X=$.alias[$.boolean[H]]||[];for(W=X.length;W-- >0;)$.boolean.push(X[W])}for(H=$.string.length;H-- >0;){X=$.alias[$.string[H]]||[];for(W=X.length;W-- >0;)$.string.push(X[W])}if(O){for(F in $.default)if(Y=typeof $.default[F],X=$.alias[F]=$.alias[F]||[],$[Y]!==void 0){$[Y].push(F);for(H=0;H<X.length;H++)$[Y].push(X[H])}}let E=A?Object.keys($.alias):[];for(H=0;H<U;H++){if(J=D[H],J==="--"){B._=B._.concat(D.slice(++H));break}for(W=0;W<J.length;W++)if(J.charCodeAt(W)!==45)break;if(W===0)B._.push(J);else if(J.substring(W,W+3)==="no-"){if(Y=J.substring(W+3),A&&!~E.indexOf(Y))return $.unknown(J);B[Y]=!1}else{for(_=W+1;_<J.length;_++)if(J.charCodeAt(_)===61)break;Y=J.substring(W,_),G=J.substring(++_)||(H+1===U||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[Y]:Y;for(_=0;_<X.length;_++){if(Y=X[_],A&&!~E.indexOf(Y))return $.unknown("-".repeat(W)+Y);Hq(B,Y,_+1<X.length||G,$)}}}if(O){for(F in $.default)if(B[F]===void 0)B[F]=$.default[F]}if(Q)for(F in B){X=$.alias[F]||[];while(X.length>0)B[X.shift()]=B[F]}return B}var CB=(D)=>D.replace(/[<[].+/,"").trim(),Vq=(D)=>{let $=/<([^>]+)>/g,F=/\[([^\]]+)\]/g,X=[],J=(B)=>{let H=!1,W=B[1];if(W.startsWith("..."))W=W.slice(3),H=!0;return{required:B[0].startsWith("<"),value:W,variadic:H}},Y;while(Y=$.exec(D))X.push(J(Y));let G;while(G=F.exec(D))X.push(J(G));return X},_q=(D)=>{let $={alias:{},boolean:[]};for(let[F,X]of D.entries()){if(X.names.length>1)$.alias[X.names[0]]=X.names.slice(1);if(X.isBoolean)if(X.negated){if(!D.some((Y,G)=>{return G!==F&&Y.names.some((B)=>X.names.includes(B))&&typeof Y.required==="boolean"}))$.boolean.push(X.names[0])}else $.boolean.push(X.names[0])}return $},OB=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},RB=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},Uq=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},Qq=(D,$,F)=>{let X=0,J=$.length,Y=D,G;for(;X<J;++X)G=Y[$[X]],Y=Y[$[X]]=X===J-1?F:G!=null?G:!!~$[X+1].indexOf(".")||!(+$[X+1]>-1)?{}:[]},Aq=(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)}}},Kq=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},MB=(D)=>{return D.split(".").map(($,F)=>{return F===0?Uq($):$}).join(".")};class o9 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,Oq=`${process.platform}-${process.arch} node-${process.version}`;class I${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=Vq(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 T$}hasOption(D){return D=D.split(".")[0],this.options.find(($)=>{return $.names.includes(D)})}outputHelp(){let{name:D,commands:$}=this.cli,{versionNumber:F,options:X,helpCallback:J}=this.cli.globalCommand,Y=[{body:`${D}${F?`/${F}`:""}`}];if(Y.push({title:"Usage",body:` $ ${D} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&$.length>0){let H=OB($.map((W)=>W.rawName));Y.push({title:"Commands",body:$.map((W)=>{return` ${RB(W.rawName,H.length)} ${W.description}`}).join(`
|
|
315
315
|
`)}),Y.push({title:"For more info, run any command with the `--help` flag",body:$.map((W)=>` $ ${D}${W.name===""?"":` ${W.name}`} --help`).join(`
|
|
316
|
-
`)})}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=
|
|
316
|
+
`)})}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=OB(B.map((W)=>W.rawName));Y.push({title:"Options",body:B.map((W)=>{return` ${RB(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).join(`
|
|
317
317
|
`)})}if(this.examples.length>0)Y.push({title:"Examples",body:this.examples.map((H)=>{if(typeof H==="function")return H(D);return H}).join(`
|
|
318
318
|
`)});if(J)Y=J(Y)||Y;console.log(Y.map((H)=>{return H.title?`${H.title}:
|
|
319
319
|
${H.body}`:H.body}).join(`
|
|
320
320
|
|
|
321
|
-
`))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${
|
|
322
|
-
`)}function W2(D){
|
|
323
|
-
`)}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 HW(D={}){try{let $=await RD(async({client:F})=>{if(D.workerId!==void 0&&D.workerId.length>0)return await F.request("approval.list",{workerId:D.workerId});let J=(await F.request("workers.list",{})).workers.filter((G)=>G.online).map((G)=>G.workerId),Y=[];for(let G of J)try{let B=await F.request("approval.list",{workerId:G});for(let H of B.approvals)Y.push(H)}catch(B){O.warn(`approval.list ${G} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:Y}});return zD($),0}catch($){return O.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function WW(D){try{let $=await RD(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 O.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}J0();JD();async function VW(D){let $=D.timeoutMs??120000;try{return await RD(async({client:F})=>{return await new Promise((X)=>{let J=!1,Y=(_)=>{if(J)return;J=!0,X(_)},G=setTimeout(()=>{W2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),Y(3)},$),B=D.workerId,H=(_)=>{if(_===null||typeof _!=="object")return!1;let U=_.workerId;return typeof U==="string"&&U===B},W=[];W.push(F.onEvent(o.CHAT_MESSAGE,(_)=>{if(!H(_))return;W2({kind:o.CHAT_MESSAGE,payload:_})})),W.push(F.onEvent(o.AGENT_THINKING,(_)=>{if(!H(_))return;W2({kind:o.AGENT_THINKING,payload:_})})),W.push(F.onEvent(o.AGENT_TOOL_CALL,(_)=>{if(!H(_))return;W2({kind:o.AGENT_TOOL_CALL,payload:_})})),W.push(F.onEvent(o.AGENT_DONE,(_)=>{if(!H(_))return;W2({kind:"done",payload:_}),clearTimeout(G);for(let U of W)U();Y(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((_)=>{W2({kind:"accepted",payload:_})}).catch((_)=>{W2({kind:"error",payload:{code:"request_failed",message:_ instanceof Error?_.message:String(_)}}),clearTimeout(G);for(let U of W)U();Y(KD(_))})})})}catch(F){return O.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function _W(D){try{let $=await RD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return zD($),0}catch($){return O.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function UW(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return O.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await RD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return zD(F),0}catch(F){return O.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function QW(){try{let D=await RD(async({client:$})=>{return await $.request("enroll.list",{})});return zD(D),0}catch(D){return O.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),KD(D)}}async function AW(D){try{let $=await RD(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return O.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),zD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return O.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function KW(D){try{let $=await RD(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)O.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else O.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return zD($),0}catch($){return O.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}import H4 from"process";import{createHash as qz}from"crypto";J0();JX();YX();import{existsSync as O_}from"fs";import HX from"path";import{fileURLToPath as Zj}from"url";import{Database as qj}from"bun:sqlite";r7();var BX={};y8(BX,{registeredWorkers:()=>OD,auditEvents:()=>s2});var OD=V0("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")}),s2=V0("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 M_=HX.dirname(Zj(import.meta.url));function Pj(D){let $=HX.resolve(M_,"../../drizzle",D);if(O_($))return $;let F=HX.resolve(M_,"drizzle",D);if(O_(F))return F;return $}var WX=Pj("fleet"),w3=null;function Nj(D){let $=new qj(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),X6($,{schema:BX})}function Z_(D){return w3=Nj(D),w3}function VX(){if(!w3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return w3}function _X(){w3=null}function q_(D=WX){o7(VX(),{migrationsFolder:D})}JD();yD();import Lj from"process";var jj=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"),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().default("./data/fleet.db"),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 P_(){let D=jj.parse(Lj.env);return{port:D.AIWORKER_GATEWAY_PORT,host:D.AIWORKER_GATEWAY_HOST,internalSharedSecret:D.INTERNAL_SHARED_SECRET,masterKeyHex:D.AIWORKER_MASTER_KEY,fleetDbPath: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}}}J0();function T0(D,$){let F=bD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class t7{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 e7{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 D4{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 zj}from"crypto";var UX="ABCDEFGHJKMNPQRSTVWXYZ23456789",N_=4,Ij=5;class F4{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??Tj}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<Ij;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function Tj(){return`${L_(N_)}-${L_(N_)}`}function L_(D){let $=zj(D),F="";for(let X=0;X<D;X++)F+=UX[$[X]%UX.length];return F}_0();import{Buffer as j_}from"buffer";import{createCipheriv as wj,createDecipheriv as RDD,randomBytes as Sj,timingSafeEqual as ODD}from"crypto";var bj="aes-256-gcm",fj=12,kj=32,vj=/^[0-9a-f]{64}$/;function hj(D){if(!vj.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=j_.from(D,"hex");if($.length!==kj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function X4(D,$){let F=hj($),X=Sj(fj),J=wj(bj,F,X),Y=j_.concat([J.update(D,"utf8"),J.final()]),G=J.getAuthTag();return{ciphertext:Y.toString("base64"),nonce:X.toString("base64"),authTag:G.toString("base64")}}function xj(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class J4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(OD).orderBy(hD(OD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(OD).where(v(OD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(OD).where(v(OD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=X4(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),Y={id:D.workerId,baseUrl:J,displayName:D.displayName,apiTokenEnc:F.ciphertext,nonce:F.nonce,authTag:F.authTag,addedAt:X,addedBy:D.addedBy??"manual",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(OD).values(Y).run(),this.db.insert(s2).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:Y.addedBy}}).run();let{apiTokenEnc:G,nonce:B,authTag:H,...W}=Y;return{...W,lastSeenAt:W.lastSeenAt??void 0,lastSeenState:W.lastSeenState??void 0,lastConfigVersion:W.lastConfigVersion??void 0}}upsertEnrolledWorker(D,$){let F=D.baseUrl.replace(/\/+$/,""),X=new Date().toISOString(),J=this.db.select().from(OD).where(v(OD.id,D.workerId)).get();if(!J){let W=X4(D.apiToken,$),_={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(OD).values(_).run();let{apiTokenEnc:U,nonce:Q,authTag:A,...E}=_;return{kind:"created",row:{...E,lastSeenAt:E.lastSeenAt??void 0,lastSeenState:E.lastSeenState??void 0,lastConfigVersion:E.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(OD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(v(OD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:_,authTag:U,...Q}=J;return{kind:"updated",row:{...Q,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:Q.lastConfigVersion??void 0}}}this.db.update(OD).set({lastSeenAt:X,lastSeenState:"online"}).where(v(OD.id,D.workerId)).run();let{apiTokenEnc:Y,nonce:G,authTag:B,...H}=J;return{kind:"unchanged",row:{...H,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:H.lastConfigVersion??void 0}}}updateEncryptedToken(D,$){if(!this.db.select({id:OD.id}).from(OD).where(v(OD.id,D.workerId)).get())return!1;let X=X4(D.newToken,$);return this.db.update(OD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(v(OD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:OD.id}).from(OD).where(v(OD.id,D)).get())return!1;return this.db.delete(OD).where(v(OD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:m7()}).from(OD).get()?.value??0}recordAudit(D){this.db.insert(s2).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(b7(s2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${xj(D.actionPrefix)}%`;F.push(M`${s2.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(v(s2.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:uD(...F),J=this.db.select().from(s2).where(X).orderBy(hD(s2.id)).limit($+1).all(),Y=J.length>$;return{events:(Y?J.slice(0,$):J).map((B)=>({id:B.id,at:B.at,actor:B.actor,action:B.action,workerId:B.workerId??null,detail:B.detail??null})),hasMore:Y}}}J0();import{Buffer as Gz}from"buffer";import{createHash as Yz}from"crypto";import{resolve as QX,sep as gj}from"path";async function z_(D){let{webStaticDir:$}=D,F=QX($),X;try{X=yj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,Y=QX(F,J);if(Y!==F&&!Y.startsWith(F+gj))return new Response("forbidden",{status:403});let G=Bun.file(Y);if(await G.exists())return new Response(G);if(!uj(J)){let B=Bun.file(QX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function yj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function uj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}function AX(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 I_(D){if(AX(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
|
|
321
|
+
`))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${Oq}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new o9(`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 o9(`Unknown option \`${F.length>1?`--${F}`:`-${F}`}\``)}}checkOptionValue(){let{options:D,globalCommand:$}=this.cli,F=[...$.options,...this.options];for(let X of F){let J=D[X.name.split(".")[0]];if(X.required){let Y=F.some((G)=>G.negated&&G.names.includes(X.name));if(J===!0||J===!1&&!Y)throw new o9(`option \`${X.rawName}\` value is missing`)}}}}class T$ extends I${constructor(D){super("@@global@@","",{},D)}}var a9=Object.assign;class qB extends Bq{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new T$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new I$(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]?Kq(D[1]):"cli";let F=!0;for(let J of this.commands){let Y=this.mri(D.slice(2),J),G=Y.args[0];if(J.isMatched(G)){F=!1;let B=a9(a9({},Y),{args:Y.args.slice(1)});this.setParsedInfo(B,J,G),this.emit(`command:${G}`,J)}}if(F){for(let J of this.commands)if(J.name===""){F=!1;let Y=this.mri(D.slice(2),J);this.setParsedInfo(Y,J),this.emit("command:!",J)}}if(F){let J=this.mri(D.slice(2));this.setParsedInfo(J)}if(this.options.help&&this.showHelpOnExit)this.outputHelp(),$=!1,this.unsetMatchedCommand();if(this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null)this.outputVersion(),$=!1,this.unsetMatchedCommand();let X={args:this.args,options:this.options};if($)this.runMatchedCommand();if(!this.matchedCommand&&this.args[0])this.emit("command:*");return X}mri(D,$){let F=[...this.globalCommand.options,...$?$.options:[]],X=_q(F),J=[],Y=D.indexOf("--");if(Y>-1)J=D.slice(Y+1),D=D.slice(0,Y);let G=Wq(D,X);G=Object.keys(G).reduce((U,Q)=>{return a9(a9({},U),{[MB(Q)]:G[Q]})},{_:[]});let B=G._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,_=Object.create(null);for(let U of F){if(!W&&U.config.default!==void 0)for(let Q of U.names)H[Q]=U.config.default;if(Array.isArray(U.config.type)){if(_[U.name]===void 0)_[U.name]=Object.create(null),_[U.name].shouldTransform=!0,_[U.name].transformFunction=U.config.type[0]}}for(let U of Object.keys(G))if(U!=="_"){let Q=U.split(".");Qq(H,Q,G[U]),Aq(H,_)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,Y)=>{if(J.variadic)X.push(D.slice(Y));else X.push(D[Y])}),X.push($),F.commandAction.apply(this,X)}}var Rq=(D="")=>new qB(D),NB=Rq;JD();var AH={name:"@zonease/aiworker-cli",type:"module",version:"0.4.4",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",build:"bun run --filter '@zonease/aiworker-web' build && bun run build:bundle","build:bundle":"bun build --target=bun --minify --outdir=dist src/aiworker.ts && bun scripts/build-publish-manifest.ts",prepublishOnly:"bun run build","smoke:aiworker-run":"bun scripts/smoke-aiworker-run.ts","smoke:aiworker-fleet":"bun scripts/smoke-aiworker-fleet.ts"},devDependencies:{"@types/bun":"^1.2.13","@zonease/aiworker-api":"workspace:*","@zonease/aiworker-core":"workspace:*","@zonease/aiworker-fs-layout":"workspace:*","@zonease/aiworker-gateway":"workspace:*","@zonease/aiworker-gateway-proto":"workspace:*","@zonease/aiworker-shared":"workspace:*","@zonease/aiworker-storage-sqlite":"workspace:*",cac:"^6.7.14",consola:"^3.4.2",typescript:"^5.8.3"}};JD();import HW from"process";J0();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 Y(K){for(let[,R]of X){if(R.timer)clearTimeout(R.timer);R.signalCleanup?.(),R.reject(K)}X.clear()}function G(K){let R=X.get(K.id);if(!R)return;if(X.delete(K.id),R.timer)clearTimeout(R.timer);if(R.signalCleanup?.(),K.ok)R.resolve(K.result);else{let q=K.error;R.reject(new G0(`${q.code}: ${q.message}`,q.code))}}function B(K){let R=J.get(K.name);if(!R||R.size===0)return;for(let q of R)try{q(K.payload)}catch{}}function H(K){let R=s8(K);if(!R.ok)return;let q=R.frame;if(q.type==="response")G(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 R=K.timeoutMs??1e4;await new Promise((q,N)=>{let b=!1,T;try{T=new WebSocket(K.url)}catch(w){N(new G0(`WebSocket \u6784\u9020\u5931\u8D25 (${K.url}): ${w instanceof Error?w.message:String(w)}`,"ws_construct_failed"));return}D=T;let L=setTimeout(()=>{if(b)return;b=!0;try{T.close()}catch{}N(new G0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${R}ms): ${K.url}`,"connect_timeout"))},R);T.onopen=()=>{let w={type:"connect",role:n8.OPERATOR,agentId:K.deviceId,deviceId:K.deviceId,auth:{token:K.token},...K.meta?{meta:K.meta}:{}};try{T.send(bD(w))}catch(z){if(b)return;b=!0,clearTimeout(L),N(new G0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${z instanceof Error?z.message:String(z)}`,"connect_send_failed"));return}if(!b)b=!0,clearTimeout(L),$=!0,q()},T.onmessage=(w)=>{let z=typeof w.data==="string"?w.data:w.data instanceof ArrayBuffer?new TextDecoder().decode(w.data):String(w.data);H(z)},T.onerror=(w)=>{if(b)return;b=!0,clearTimeout(L);let z=w.message??"unknown";N(new G0(`WS \u8FDE\u63A5\u9519\u8BEF: ${z}`,"ws_error"))},T.onclose=(w)=>{if(F=!0,$=!1,Y(new G0(`WS \u5DF2\u5173\u95ED (code=${w.code}, reason=${w.reason||"n/a"})`,"ws_closed")),!b)b=!0,clearTimeout(L),N(new G0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${w.code})`,"ws_closed_early"))}})}function _(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new G0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function U(K,R,q){_();let N=crypto.randomUUID(),b={type:"request",id:N,method:K,...R===void 0?{}:{params:R}};return await new Promise((T,L)=>{let w=q?.timeoutMs??30000,z=null,s=null,QD={resolve:T,reject:L,timer:null,signalCleanup:null};if(z=setTimeout(()=>{X.delete(N),s?.(),L(new G0(`request ${K} \u8D85\u65F6 (>${w}ms)`,"request_timeout"))},w),QD.timer=z,q?.signal){let VD=q.signal;if(VD.aborted){X.delete(N),clearTimeout(z),L(VD.reason??new G0(`request ${K} \u88AB abort`,"aborted"));return}let $D=()=>{if(X.delete(N),z)clearTimeout(z);L(VD.reason??new G0(`request ${K} \u88AB abort`,"aborted"))};VD.addEventListener("abort",$D,{once:!0}),s=()=>VD.removeEventListener("abort",$D),QD.signalCleanup=s}X.set(N,QD);try{D?.send(bD(b))}catch(VD){if(X.delete(N),z)clearTimeout(z);s?.(),L(new G0(`request ${K} \u53D1\u9001\u5931\u8D25: ${VD instanceof Error?VD.message:String(VD)}`,"send_failed"))}})}async function Q(K,R,q){if(!q7(K))throw new G0(`method ${K} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await U(K,R,q)}function A(K,R){if(!DF(K));let q=J.get(K);if(!q)q=new Set,J.set(K,q);return q.add(R),()=>{let N=J.get(K);if(!N)return;if(N.delete(R),N.size===0)J.delete(K)}}async function O(K,R){if(!D||F)return;await new Promise((q)=>{let N=D;if(!N){q();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,q();return}let b=N.onclose;N.onclose=(T)=>{if(typeof b==="function")b.call(N,T);q()};try{N.close(K,R)}catch{}})}function E(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:Q,requestRaw:U,onEvent:A,close:O,isOpen:E}}a8();async function RD(D,$={}){let F=await j7(),X=BW();try{await X.connect({url:$.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);HW.stdout.write(`${$}
|
|
322
|
+
`)}function W2(D){HW.stdout.write(`${JSON.stringify(D)}
|
|
323
|
+
`)}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 WW(D={}){try{let $=await RD(async({client:F})=>{if(D.workerId!==void 0&&D.workerId.length>0)return await F.request("approval.list",{workerId:D.workerId});let J=(await F.request("workers.list",{})).workers.filter((G)=>G.online).map((G)=>G.workerId),Y=[];for(let G of J)try{let B=await F.request("approval.list",{workerId:G});for(let H of B.approvals)Y.push(H)}catch(B){C.warn(`approval.list ${G} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:Y}});return zD($),0}catch($){return C.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}async function VW(D){try{let $=await RD(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($)}}J0();JD();async function _W(D){let $=D.timeoutMs??120000;try{return await RD(async({client:F})=>{return await new Promise((X)=>{let J=!1,Y=(_)=>{if(J)return;J=!0,X(_)},G=setTimeout(()=>{W2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),Y(3)},$),B=D.workerId,H=(_)=>{if(_===null||typeof _!=="object")return!1;let U=_.workerId;return typeof U==="string"&&U===B},W=[];W.push(F.onEvent(o.CHAT_MESSAGE,(_)=>{if(!H(_))return;W2({kind:o.CHAT_MESSAGE,payload:_})})),W.push(F.onEvent(o.AGENT_THINKING,(_)=>{if(!H(_))return;W2({kind:o.AGENT_THINKING,payload:_})})),W.push(F.onEvent(o.AGENT_TOOL_CALL,(_)=>{if(!H(_))return;W2({kind:o.AGENT_TOOL_CALL,payload:_})})),W.push(F.onEvent(o.AGENT_DONE,(_)=>{if(!H(_))return;W2({kind:"done",payload:_}),clearTimeout(G);for(let U of W)U();Y(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((_)=>{W2({kind:"accepted",payload:_})}).catch((_)=>{W2({kind:"error",payload:{code:"request_failed",message:_ instanceof Error?_.message:String(_)}}),clearTimeout(G);for(let U of W)U();Y(KD(_))})})})}catch(F){return C.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),KD(F)}}JD();async function UW(D){try{let $=await RD(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 RD(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 AW(){try{let D=await RD(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 KW(D){try{let $=await RD(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 EW(D){try{let $=await RD(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 W4 from"process";import{createHash as Pz}from"crypto";J0();GX();BX();import{existsSync as M_}from"fs";import WX from"path";import{fileURLToPath as Nj}from"url";import{Database as Pj}from"bun:sqlite";a7();var HX={};y8(HX,{registeredWorkers:()=>CD,auditEvents:()=>n2});var CD=V0("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=V0("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 Z_=WX.dirname(Nj(import.meta.url));function Lj(D){let $=WX.resolve(Z_,"../../drizzle",D);if(M_($))return $;let F=WX.resolve(Z_,"drizzle",D);if(M_(F))return F;return $}var VX=Lj("fleet"),w3=null;function jj(D){let $=new Pj(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),X6($,{schema:HX})}function q_(D){return w3=jj(D),w3}function _X(){if(!w3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return w3}function UX(){w3=null}function N_(D=VX){t7(_X(),{migrationsFolder:D})}JD();yD();import zj from"process";var Ij=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"),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().default("./data/fleet.db"),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 P_(){let D=Ij.parse(zj.env);return{port:D.AIWORKER_GATEWAY_PORT,host:D.AIWORKER_GATEWAY_HOST,internalSharedSecret:D.INTERNAL_SHARED_SECRET,masterKeyHex:D.AIWORKER_MASTER_KEY,fleetDbPath: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}}}J0();function T0(D,$){let F=bD($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class e7{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 D4{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 $4{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 F4{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 Tj}from"crypto";var QX="ABCDEFGHJKMNPQRSTVWXYZ23456789",L_=4,wj=5;class X4{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??Sj}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<wj;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function Sj(){return`${j_(L_)}-${j_(L_)}`}function j_(D){let $=Tj(D),F="";for(let X=0;X<D;X++)F+=QX[$[X]%QX.length];return F}_0();import{Buffer as z_}from"buffer";import{createCipheriv as bj,createDecipheriv as ZDD,randomBytes as fj,timingSafeEqual as qDD}from"crypto";var kj="aes-256-gcm",vj=12,hj=32,xj=/^[0-9a-f]{64}$/;function gj(D){if(!xj.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=z_.from(D,"hex");if($.length!==hj)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function J4(D,$){let F=gj($),X=fj(vj),J=bj(kj,F,X),Y=z_.concat([J.update(D,"utf8"),J.final()]),G=J.getAuthTag();return{ciphertext:Y.toString("base64"),nonce:X.toString("base64"),authTag:G.toString("base64")}}function yj(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class G4{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(CD).orderBy(hD(CD.addedAt)).all().map(($)=>{let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}})}getRegisteredWorker(D){let $=this.db.select().from(CD).where(v(CD.id,D)).get();if(!$)return;let{apiTokenEnc:F,nonce:X,authTag:J,...Y}=$;return{...Y,lastSeenAt:Y.lastSeenAt??void 0,lastSeenState:Y.lastSeenState??void 0,lastConfigVersion:Y.lastConfigVersion??void 0}}getRegisteredWorkerRaw(D){let $=this.db.select().from(CD).where(v(CD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=J4(D.apiToken,$),X=new Date().toISOString(),J=D.baseUrl.replace(/\/+$/,""),Y={id:D.workerId,baseUrl:J,displayName:D.displayName,apiTokenEnc:F.ciphertext,nonce:F.nonce,authTag:F.authTag,addedAt:X,addedBy:D.addedBy??"manual",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(CD).values(Y).run(),this.db.insert(n2).values({actor:"gateway",action:"gateway.worker.paired",workerId:D.workerId,detail:{baseUrl:J,displayName:D.displayName,addedBy:Y.addedBy}}).run();let{apiTokenEnc:G,nonce:B,authTag:H,...W}=Y;return{...W,lastSeenAt:W.lastSeenAt??void 0,lastSeenState:W.lastSeenState??void 0,lastConfigVersion:W.lastConfigVersion??void 0}}upsertEnrolledWorker(D,$){let F=D.baseUrl.replace(/\/+$/,""),X=new Date().toISOString(),J=this.db.select().from(CD).where(v(CD.id,D.workerId)).get();if(!J){let W=J4(D.apiToken,$),_={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(CD).values(_).run();let{apiTokenEnc:U,nonce:Q,authTag:A,...O}=_;return{kind:"created",row:{...O,lastSeenAt:O.lastSeenAt??void 0,lastSeenState:O.lastSeenState??void 0,lastConfigVersion:O.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(CD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(v(CD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:_,authTag:U,...Q}=J;return{kind:"updated",row:{...Q,displayName:D.displayName,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:Q.lastConfigVersion??void 0}}}this.db.update(CD).set({lastSeenAt:X,lastSeenState:"online"}).where(v(CD.id,D.workerId)).run();let{apiTokenEnc:Y,nonce:G,authTag:B,...H}=J;return{kind:"unchanged",row:{...H,lastSeenAt:X,lastSeenState:"online",lastConfigVersion:H.lastConfigVersion??void 0}}}updateEncryptedToken(D,$){if(!this.db.select({id:CD.id}).from(CD).where(v(CD.id,D.workerId)).get())return!1;let X=J4(D.newToken,$);return this.db.update(CD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(v(CD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:CD.id}).from(CD).where(v(CD.id,D)).get())return!1;return this.db.delete(CD).where(v(CD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:p7()}).from(CD).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(f7(n2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${yj(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(),Y=J.length>$;return{events:(Y?J.slice(0,$):J).map((B)=>({id:B.id,at:B.at,actor:B.actor,action:B.action,workerId:B.workerId??null,detail:B.detail??null})),hasMore:Y}}}J0();import{Buffer as Bz}from"buffer";import{createHash as Hz}from"crypto";import{resolve as AX,sep as uj}from"path";async function I_(D){let{webStaticDir:$}=D,F=AX($),X;try{X=mj(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,Y=AX(F,J);if(Y!==F&&!Y.startsWith(F+uj))return new Response("forbidden",{status:403});let G=Bun.file(Y);if(await G.exists())return new Response(G);if(!pj(J)){let B=Bun.file(AX(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function mj(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function pj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}function KX(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 T_(D){if(KX(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
324
|
`+`
|
|
325
325
|
`+`\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
|
|
326
326
|
`+`\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
|
|
327
327
|
`+`
|
|
328
328
|
`+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
|
|
329
329
|
`+` 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
|
|
330
|
-
`+" 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 T_}from"buffer";import{timingSafeEqual as mj}from"crypto";function w_(D,$){let F=T_.from(D,"utf8"),X=T_.from($,"utf8");if(F.length!==X.length)return!1;return mj(F,X)}function S_(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(!w_(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(!w_(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}J0();J0();yD();function b_(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return KX(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 KX(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(Y){return D.ctx.forwards.consume(J.gatewayRequestId),KX(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${Y instanceof Error?Y.message:String(Y)}`,details:{workerId:F}}),!1}}function KX(D,$,F){let X=bD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}J0();yD();var pj=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({}),cj=V.object({events:V.array(O7),hasMore:V.boolean()}),f_=(D,$)=>{let F=pj.safeParse($??{});if(!F.success)return{ok:!1,code:"invalid_params",message:"audit.list \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:F.error.flatten()};let{events:X,hasMore:J}=D.persistence.listAuditEvents({...F.data.limit===void 0?{}:{limit:F.data.limit},...F.data.before===void 0?{}:{before:F.data.before},...F.data.action===void 0?{}:{actionPrefix:F.data.action},...F.data.workerId===void 0?{}:{workerId:F.data.workerId}}),Y=cj.safeParse({events:X,hasMore:J});if(!Y.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${Y.error.message}`};return{ok:!0,result:Y.data}};J0();yD();import{createHash as dj}from"crypto";var k_=V.object({otp:V.string().min(1)}),v_=(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(R7)}).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}},h_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=k_.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.approve \u7F3A\u5C11 otp",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};if(D.maxWorkers!==void 0){let G=lj(D,F.data.otp);if(!(G?D.persistence.getRegisteredWorker(G.workerId)!==void 0:!1)){let H=D.persistence.countRegisteredWorkers();if(H>=D.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${D.maxWorkers} worker \u4E0A\u9650`,details:{limit:D.maxWorkers,current:H}}}}let X=D.pendingEnrollments.approve(F.data.otp);if(!X)return{ok:!1,code:"not_found",message:`OTP ${F.data.otp} \u4E0D\u5728\u5F85\u6279\u5217\u8868\u4E2D\uFF08\u6216\u5DF2\u8FC7\u671F / \u5DF2\u5904\u7406\uFF09`};let J=D.persistence.upsertEnrolledWorker({workerId:X.workerId,baseUrl:"",apiToken:X.apiToken,displayName:X.displayName??X.workerId,addedBy:"otp"},D.masterKeyHex);X.ws.data.role="node",X.ws.data.agentId=X.workerId;let{replaced:Y}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(Y){D.forwards.cancelByWorker(X.workerId);try{Y.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(bD({type:"event",name:o.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(T0(D.operators,{type:"event",name:o.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:o.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}}},x_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=k_.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:ij(X.otp)}}),T0(D.operators,{type:"event",name:o.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 lj(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function ij(D){return dj("sha256").update(D).digest("hex").slice(0,16)}J0();yD();var nj=V.object({now:V.number().int(),online:V.array(r8)}),g_=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let Y=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:Y?.displayName,online:!0,deviceId:J.deviceId,baseUrl:Y?.baseUrl,lastSeenAt:J.pairedAt}}),X=nj.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}};J0();yD();import{Buffer as y_}from"buffer";var sj=V.object({workerId:V.string().min(1)}),u_=async(D,$)=>{let F=sj.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"token.rotate \u7F3A\u5C11 workerId",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let{workerId:X}=F.data;if(!D.persistence.getRegisteredWorker(X))return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let Y=D.nodes.get(X);if(!Y)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((G)=>{let B=new m_(G,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{Y.ws.send(bD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(W){D.forwards.consume(H.gatewayRequestId),G({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${W instanceof Error?W.message:String(W)}`})}})};class m_{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?y_.from(new Uint8Array(D)).toString("utf8"):y_.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(G){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${G instanceof Error?G.message:String(G)}`});return}if(F.type!=="response"){this.resolve({ok:!1,code:"internal_error",message:"token.rotate: \u975E response frame"});return}if(!F.ok){this.resolve({ok:!1,code:F.error.code,message:F.error.message,details:F.error.details});return}let J=F.result?.deviceToken;if(typeof J!=="string"||J.length===0){this.resolve({ok:!1,code:"invalid_worker_response",message:"token.rotate: node \u8FD4\u56DE\u7684 deviceToken \u7F3A\u5931\u6216\u975E\u5B57\u7B26\u4E32"});return}if(!this.ctx.persistence.updateEncryptedToken({workerId:this.workerId,newToken:J},this.ctx.masterKeyHex)){this.resolve({ok:!1,code:"not_found",message:`worker ${this.workerId} \u5728 token.rotate \u56DE\u8C03\u671F\u95F4\u5DF2\u88AB\u5220\u9664`});return}this.ctx.persistence.recordAudit({actor:"gateway",action:"gateway.token.rotated",workerId:this.workerId,detail:{lastFour:J.slice(-4)}}),this.resolve({ok:!0,result:{deviceToken:J}})}close(){}}J0();j0();yD();j0();class S3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class D1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class O8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var rj=1e4;class EX{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??rj}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),Y={Authorization:`Bearer ${this.apiToken}`},G={method:D,headers:Y,signal:X.signal};if(F!==void 0)G.body=JSON.stringify(F),Y["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),G)}catch(B){if(B.name==="AbortError")throw new D1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new D1(`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 S3;if(!D.ok)throw new D1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new O8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!aj($))throw new O8(`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 S3;if(!D.ok)throw new D1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new O8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new O8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!Q8(F))throw new O8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function aj(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class J6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class r2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function oj(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var p_=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let Y=D.nodes.has(J.id),G=Y?D.nodes.get(J.id):void 0,B=G?G.pairedAt:oj(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:Y,deviceId:G?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=V.object({workers:V.array(r8)}).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}},c_=(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 Y=D.nodes.get(X),G=D.persistence.removeRegisteredWorker(X);if(Y){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(Y.ws);try{Y.ws.close(1000,"removed_from_fleet")}catch(B){D.logger.warn(`[gateway] workers.remove \u5173\u95ED\u5728\u7EBF node \u65F6\u62A5\u9519 (workerId=${X})`,B)}}return D.persistence.recordAudit({actor:"gateway",action:"gateway.worker.removed",workerId:X,detail:{displayName:J.displayName,baseUrl:J.baseUrl}}),{ok:!0,result:{removed:G}}},tj=V.object({workerBaseUrl:V.string().min(1),bootstrapToken:V.string().regex(d2,"bootstrapToken must match wtk_<base64url>"),displayName:V.string().min(1).max(80).optional()});function ej(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=tj.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 _=$.persistence.countRegisteredWorkers();if(_>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:_}}}let Y=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new EX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),G;try{G=await Y.info()}catch(_){if(_ instanceof S3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(_ instanceof D1)return{ok:!1,code:"worker_unreachable",message:_.message};if(_ instanceof O8)return{ok:!1,code:"invalid_worker_info",message:_.message};throw _}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??G.workerId,addedBy:"manual",configVersion:G.configVersion},$.masterKeyHex),W=a1.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_=ej(),Dz=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=Dz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,Y=J.displayName??"worker";if($.maxWorkers!==void 0){let _=$.persistence.countRegisteredWorkers();if(_>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:_}}}let G;try{G=await $.supervisor.launchLocal({displayName:Y,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(_){if(_ instanceof J6)return{ok:!1,code:"launch_timeout",message:_.message};if(_ instanceof r2)return{ok:!1,code:"launch_failed",message:_.message};throw _}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId,containerName:G.containerName}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:G.baseUrl,apiToken:G.apiToken,displayName:Y,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:G.containerId,containerName:G.containerName,baseUrl:G.baseUrl}});let W=a1.safeParse({workerId:H.id,deviceToken:G.apiToken});if(!W.success)return{ok:!1,code:"internal_error",message:`workers.launch \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${W.error.message}`};return{ok:!0,result:W.data}}}var l_=$z();var Fz={"system.presence":g_,"workers.list":p_,"workers.remove":c_,"workers.pair":d_,"workers.launch":l_,"token.rotate":u_,"enroll.list":v_,"enroll.approve":h_,"enroll.reject":x_,"audit.list":f_},Xz=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function i_(D,$,F,X){let J=V3(F.method);if(!J){G6($,{type:"response",id:F.id,ok:!1,error:{code:"unknown_method",message:`\u672A\u6CE8\u518C\u65B9\u6CD5 ${F.method}`,details:{method:F.method}}});return}let Y=J.params.safeParse(F.params??void 0);if(!Y.success){G6($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:Y.error.flatten()}});return}let G=Y.data;if(!Xz.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Jz(G),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Fz[F.method];if(!B){G6($,{type:"response",id:F.id,ok:!1,error:{code:"handler_missing",message:`\u65B9\u6CD5 ${F.method} \u6CA1\u6709\u672C\u5730 handler \u7ED1\u5B9A`,details:{method:F.method}}});return}try{let H=await B(D,G);if(H.ok)G6($,{type:"response",id:F.id,ok:!0,result:H.result});else G6($,{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),G6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}b_({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:G})}function n_(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 s_(D,$,F){T0(D.operators,F)}function Jz(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function G6(D,$){try{D.send(bD($))}catch{}}function r_(D){let{config:$,context:F}=D;I_({host:$.host,internalSharedSecret:$.internalSharedSecret});let X=Bun.serve({port:$.port,hostname:$.host,fetch(Y,G){let B=new URL(Y.url);if(B.pathname==="/health")return new Response(JSON.stringify({ok:!0,service:"aiworker-gateway",ts:Date.now()}),{status:200,headers:{"Content-Type":"application/json"}});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 z_({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=G.requestIP(Y)?.address,_=AX(W);if(!_&&F.connectRateLimiter){let A=F.connectRateLimiter.isBlocked(W);if(A.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(A.retryAfterMs/1000))}})}let U=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(G.upgrade(Y,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:_,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:U}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(Y){F.logger.debug(`[gateway] ws opened (remote=${Y.data.remoteAddress??"?"} loopback=${Y.data.loopback})`)},message(Y,G){Bz(Y,G,F,$)},close(Y,G,B){Hz(Y,G,B,F)}}}),J=X.port;if(typeof J!=="number")throw TypeError("Bun.serve did not return a TCP port \u2014 unix socket is not supported");return{server:X,port:J,context:F,stop:async()=>{F.forwards.dispose(),F.pendingEnrollments?.dispose(),await X.stop(!0)}}}function Bz(D,$,F,X){let J=typeof $==="string"?$:Gz.from($).toString("utf8"),Y=s8(J);if(!Y.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${Y.error}`),D.close(4400,"bad_frame");return}let G=Y.frame;if(D.data.role===void 0){if(G.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${G.type}`),D.close(4400,"connect_required");return}let B=G.role==="node"&&G.enroll?G.enroll.mode??"join-token":void 0,H=B==="otp",W=G.role==="node"&&G.enroll!==void 0&&B==="join-token",_=S_({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:G.auth.token,enrollToken:W?G.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!_.ok){let U=_.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.role==="node"?G.agentId:null,detail:{reason:_.reason,role:G.role,agentId:G.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!U&&!D.data.loopback&&F.connectRateLimiter){let E=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(E.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:E.fails,blockUntil:E.blockUntil,path:D.data.path,triggerReason:_.reason}})}let Q=U?4400:4401,A=U?_.reason:`auth:${_.reason}`;D.close(Q,A);return}if(_.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let U=G.enroll,Q=F.pendingEnrollments.submit({workerId:G.agentId,apiToken:U.apiToken,displayName:U.displayName,ws:D});try{D.send(bD({type:"event",name:o.ENROLLMENT_OTP,payload:{workerId:G.agentId,otp:Q.otp,expiresAt:Q.expiresAt},ts:Date.now()}))}catch(A){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${A.message}`),D.close(4500,"enroll_otp_send_failed");return}D.data.role="node-pending",D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:G.agentId,detail:{workerId:G.agentId,displayName:U.displayName,deviceId:G.deviceId,otpHash:Vz(Q.otp),expiresAt:Q.expiresAt,path:D.data.path}}),T0(F.operators,{type:"event",name:o.ENROLLMENT_PENDING,payload:{workerId:G.agentId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:Q.otp,submittedAt:Date.now(),expiresAt:Q.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(G.agentId)===void 0&&A>=F.maxWorkers){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"quota_exceeded",role:G.role,agentId:G.agentId,limit:F.maxWorkers,current:A}}),D.close(4401,"auth:quota_exceeded");return}}if(!F.masterKeyHex){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"master_key_missing",role:G.role,agentId:G.agentId}}),D.close(4401,"auth:master_key_missing");return}let U=G.enroll,Q=F.persistence.upsertEnrolledWorker({workerId:G.agentId,baseUrl:"",apiToken:U.apiToken,displayName:U.displayName??G.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(Q.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:G.agentId,detail:{workerId:G.agentId,displayName:Q.row.displayName,deviceId:G.deviceId,change:Q.kind}})}if(D.data.role=G.role,D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,G.role==="operator")F.operators.register({agentId:G.agentId,deviceId:G.deviceId,ws:D,connectedAt:Date.now()});else{let{replaced:U}=F.nodes.register({workerId:G.agentId,deviceId:G.deviceId,ws:D,pairedAt:Date.now(),meta:G.meta??{}});if(U){F.forwards.cancelByWorker(G.agentId);try{U.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let Q=F.persistence.getRegisteredWorker(G.agentId)?.displayName;T0(F.operators,{type:"event",name:o.WORKER_ONLINE,payload:{workerId:G.agentId,displayName:Q,deviceId:G.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:G.role==="node"?G.agentId:null,detail:{role:G.role,agentId:G.agentId,deviceId:G.deviceId,loopback:D.data.loopback,via:_.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${G.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(G.type==="request"){let B=D.data.agentId??"unknown";i_(F,D,G,B);return}F.logger.warn(`[gateway] operator \u7AEF\u53D1\u9001\u4E86\u975E request \u5E27: ${G.type}`),D.close(4400,"operator_expects_request_only");return}if(D.data.role==="node"){if(G.type==="response"){n_(F,D,G);return}if(G.type==="event"){s_(F,D,G);return}F.logger.warn(`[gateway] node \u7AEF\u53D1\u9001\u4E86\u975E response/event \u5E27: ${G.type}`),D.close(4400,"node_expects_response_or_event_only")}}function Hz(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:o.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:o.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:Wz($),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 Wz(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Vz(D){return Yz("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as a_}from"crypto";import{mkdirSync as Uz}from"fs";import{createServer as Qz}from"net";import{join as o_}from"path";import Az from"process";JD();class CX{socket;constructor(D="/var/run/docker.sock"){this.socket=D}async request(D,$,F){let X=`http://localhost${$}`,J={method:D,unix:this.socket,headers:F!==void 0?{"Content-Type":"application/json"}:{}};if(F!==void 0)J.body=JSON.stringify(F);let Y=await fetch(X,J),G=await Y.text();if(!Y.ok)throw Error(`Docker API ${D} ${$} failed: ${Y.status} ${G}`);if(!G)return;try{return JSON.parse(G)}catch{return G}}ping(){return this.request("GET","/_ping")}createContainer(D,$){return this.request("POST",`/containers/create?name=${encodeURIComponent(D)}`,$)}startContainer(D){return this.request("POST",`/containers/${D}/start`)}async stopContainer(D,$=10){try{await this.request("POST",`/containers/${D}/stop?t=${$}`)}catch(F){if(F instanceof Error&&/304/.test(F.message))return;throw F}}removeContainer(D,$){let F=new URLSearchParams;if($?.force)F.set("force","true");if($?.removeVolumes)F.set("v","true");let X=F.toString();return this.request("DELETE",`/containers/${D}${X?`?${X}`:""}`)}inspectContainer(D){return this.request("GET",`/containers/${D}/json`)}listContainers(D){let $=new URLSearchParams({all:"true"});if(D)$.set("filters",JSON.stringify(D));return this.request("GET",`/containers/json?${$.toString()}`)}async logs(D,$){let F=new URLSearchParams({stdout:String($?.stdout??!0),stderr:String($?.stderr??!0),tail:String($?.tail??200)}),X=`http://localhost/containers/${D}/logs?${F.toString()}`,J=await fetch(X,{method:"GET",unix:this.socket});if(!J.ok){let G=await J.text();throw Error(`Docker logs ${D} failed: ${J.status} ${G}`)}let Y=new Uint8Array(await J.arrayBuffer());return _z(Y)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{O.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function _z(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 Kz=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,Ez=30000,Cz=500;class RX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new CX(D.config.dockerHost),this.allocatePort=D.allocatePort??Zz,this.pollIntervalMs=D.pollIntervalMs??Cz,this.pollTimeoutMs=D.pollTimeoutMs??Ez,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Az.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($)){O.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){O.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"){O.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new r2(`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=${o_("/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 r2(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=a_(32).toString("hex"),J=`aiworker-${a_(4).toString("hex")}`,Y=o_(this.config.workerDataRoot,J);try{Uz(Y,{recursive:!0})}catch(W){throw new r2(`failed to create data dir ${Y}: ${W.message}`,W)}let G=this.buildEnv({masterKeyHex:F,port:$,forceId:D.forceId}),B={Image:this.config.image,Env:G,Labels:{"aiworker.role":"worker","aiworker.addedBy":"launch-local","aiworker.displayName":D.displayName},HostConfig:{RestartPolicy:{Name:"unless-stopped"},NetworkMode:this.config.network,Memory:Mz(this.config.workerMemoryLimit),NanoCpus:Math.round(this.config.workerCpuLimit*1e9),Binds:[`${Y}:/var/lib/aiworker`]},NetworkingConfig:{EndpointsConfig:{[this.config.network]:{Aliases:[J]}}}},H=null;try{let W=await this.docker.createContainer(J,B);H=W.Id,await this.docker.startContainer(W.Id),O.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let _=await this.awaitBootstrapToken(W.Id),U=Oz(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return O.success(`[gateway/supervisor] ${J} bootstrapped as ${_.workerId}`),{workerId:_.workerId,apiToken:_.token,baseUrl:U,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(_){O.warn(`[gateway/supervisor] failed to cleanup ${H}: ${_.message}`)}if(W instanceof J6||W instanceof r2)throw W;throw new r2(`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){O.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=Rz(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new J6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function Rz(D){let $=Kz.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 Oz(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function Mz(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 Zz(){return new Promise((D,$)=>{let F=Qz();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 Pz(D,$={}){Z_(D.fleetDbPath),q_(WX);let F=VX(),X=new J4(F),J=new D4,Y=new $4,G=new e7({onExpire:(_,U)=>{if(O.warn(`[gateway] forward \u53D6\u6D88 (method=${_.method} workerId=${_.workerId} reason=${U})`),U==="operator_gone")return;let Q=U==="timeout"?"forward_timeout":"node_gone",A=U==="timeout"?`\u7B49\u5F85 worker ${_.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${_.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{_.operatorWs.send(bD({type:"response",id:_.operatorRequestId,ok:!1,error:{code:Q,message:A,details:{workerId:_.workerId,method:_.method}}}))}catch{}}}),B=new F4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(_)=>{try{_.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:_.workerId,detail:{displayName:_.displayName,otpHash:qz("sha256").update(_.otp).digest("hex").slice(0,16)}})}catch(U){O.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",U)}try{T0(Y,{type:"event",name:o.ENROLLMENT_PENDING,payload:{workerId:_.workerId,..._.displayName===void 0?{}:{displayName:_.displayName},otp:_.otp,submittedAt:_.submittedAt,expiresAt:_.expiresAt,reason:"expired"},ts:Date.now()})}catch(U){O.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",U)}}}),H=null;if(D.canLaunch)H=new RX({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}}),O.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new t7;return{persistence:X,nodes:J,operators:Y,forwards:G,logger:O.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function t_(D,$={}){let X={...P_(),...D},J=Pz(X,{webStaticDir:$.webStaticDir}),Y=r_({config:X,context:J});return O.success(`[gateway] listening ws://${X.host}:${Y.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...Y,config:X}}JD();import{existsSync as OX,realpathSync as Nz}from"fs";import{dirname as Lz,resolve as $1}from"path";import e_ from"process";import{fileURLToPath as jz}from"url";function G4(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=e_.env[$];if(F){let W=Iz(F);if(W&&OX($1(W,"index.html")))return W}let X=zz();if(!X)return;let J=$1(X,"web",D);if(OX($1(J,"index.html")))return J;let G=X.endsWith(`apps${MX()}cli${MX()}src${MX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=$1(X,...Array.from({length:G},()=>"..")),H=$1(B,"apps","web","dist",D);if(OX($1(H,"index.html")))return H;return}function zz(){if(typeof import.meta.url!=="string")return;try{return Lz(jz(import.meta.url))}catch{return}}function Iz(D){try{return Nz($1(D))}catch{return}}function MX(){return e_.platform==="win32"?"\\":"/"}L2();a8();import{spawn as Tz}from"child_process";import{closeSync as DU,existsSync as wz,openSync as $U,readFileSync as Sz,unlinkSync as Y4,writeFileSync as bz}from"fs";import{mkdir as fz}from"fs/promises";import M8 from"process";var kz="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function FU(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 vz(D){if(!wz(D))return null;try{let $=Sz(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 hz(){await fz(u2(),{recursive:!0})}function B4(){let D=P7(),$=N7(),F=vz(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!FU(F)){try{Y4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function XU(D={}){let $=B4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await hz();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=P7(),J=N7(),Y=$U(J,"a"),G=$U(J,"a"),B={...M8.env,...D.env,PORT:String(F),[kz]:"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=Tz(M8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:M8.cwd(),detached:!0,stdio:["ignore",Y,G]});try{DU(Y)}catch{}if(G!==Y)try{DU(G)}catch{}if(W.pid===void 0)throw Error("gateway \u5B50\u8FDB\u7A0B\u542F\u52A8\u5931\u8D25\uFF1A\u672A\u83B7\u5F97 PID");return W.unref(),bz(X,`${String(W.pid)}
|
|
331
|
-
`,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function
|
|
332
|
-
`);if(!D.operatorHome||D.operatorHome.length===0)throw Error("renderSystemdUnit: scope=system \u5FC5\u987B\u63D0\u4F9B operatorHome\uFF08systemd \u7CFB\u7EDF\u5355\u5143\u4E0D\u5C55\u5F00 %h\uFF09");return["[Unit]","Description=AIWorker gateway daemon (system instance)","After=network.target","","[Service]","Type=simple",`ExecStart=${D.operatorHome}/.bun/bin/aiworker gateway start`,"Restart=on-failure","RestartSec=5",`Environment=AIWORKER_HOME=${
|
|
333
|
-
`)}function
|
|
334
|
-
`),0}catch(D){return
|
|
335
|
-
`),0}catch($){return
|
|
330
|
+
`+" 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 w_}from"buffer";import{timingSafeEqual as cj}from"crypto";function S_(D,$){let F=w_.from(D,"utf8"),X=w_.from($,"utf8");if(F.length!==X.length)return!1;return cj(F,X)}function b_(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(!S_(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(!S_(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}J0();J0();yD();function f_(D){let $=V.object({workerId:V.string().min(1)}).safeParse(D.params);if(!$.success)return EX(D.operatorWs,D.operatorRequestId,{code:"invalid_params",message:`${D.method} \u7F3A\u5C11 workerId`,details:$.error.flatten()}),!1;let{workerId:F}=$.data,X=D.ctx.nodes.get(F);if(!X)return EX(D.operatorWs,D.operatorRequestId,{code:"node_offline",message:`worker ${F} \u5F53\u524D\u672A\u8FDE\u63A5\u5230 gateway`,details:{workerId:F}}),!1;let J=D.ctx.forwards.allocate({operatorRequestId:D.operatorRequestId,operatorWs:D.operatorWs,workerId:F,method:D.method});try{return X.ws.send(bD({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(Y){return D.ctx.forwards.consume(J.gatewayRequestId),EX(D.operatorWs,D.operatorRequestId,{code:"forward_failed",message:`\u8F6C\u53D1\u5230 worker ${F} \u5931\u8D25: ${Y instanceof Error?Y.message:String(Y)}`,details:{workerId:F}}),!1}}function EX(D,$,F){let X=bD({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}J0();yD();var dj=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({}),lj=V.object({events:V.array(M7),hasMore:V.boolean()}),k_=(D,$)=>{let F=dj.safeParse($??{});if(!F.success)return{ok:!1,code:"invalid_params",message:"audit.list \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:F.error.flatten()};let{events:X,hasMore:J}=D.persistence.listAuditEvents({...F.data.limit===void 0?{}:{limit:F.data.limit},...F.data.before===void 0?{}:{before:F.data.before},...F.data.action===void 0?{}:{actionPrefix:F.data.action},...F.data.workerId===void 0?{}:{workerId:F.data.workerId}}),Y=lj.safeParse({events:X,hasMore:J});if(!Y.success)return{ok:!1,code:"internal_error",message:`audit.list \u8FD4\u56DE\u503C\u4E0D\u7B26\u5408 schema: ${Y.error.message}`};return{ok:!0,result:Y.data}};J0();yD();import{createHash as ij}from"crypto";var v_=V.object({otp:V.string().min(1)}),h_=(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(C7)}).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}},x_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=v_.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"enroll.approve \u7F3A\u5C11 otp",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};if(D.maxWorkers!==void 0){let G=nj(D,F.data.otp);if(!(G?D.persistence.getRegisteredWorker(G.workerId)!==void 0:!1)){let H=D.persistence.countRegisteredWorkers();if(H>=D.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${D.maxWorkers} worker \u4E0A\u9650`,details:{limit:D.maxWorkers,current:H}}}}let X=D.pendingEnrollments.approve(F.data.otp);if(!X)return{ok:!1,code:"not_found",message:`OTP ${F.data.otp} \u4E0D\u5728\u5F85\u6279\u5217\u8868\u4E2D\uFF08\u6216\u5DF2\u8FC7\u671F / \u5DF2\u5904\u7406\uFF09`};let J=D.persistence.upsertEnrolledWorker({workerId:X.workerId,baseUrl:"",apiToken:X.apiToken,displayName:X.displayName??X.workerId,addedBy:"otp"},D.masterKeyHex);X.ws.data.role="node",X.ws.data.agentId=X.workerId;let{replaced:Y}=D.nodes.register({workerId:X.workerId,deviceId:X.ws.data.deviceId??X.workerId,ws:X.ws,pairedAt:Date.now(),meta:{}});if(Y){D.forwards.cancelByWorker(X.workerId);try{Y.ws.close(1012,"replaced_by_enroll_approve")}catch{}}try{X.ws.send(bD({type:"event",name:o.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(T0(D.operators,{type:"event",name:o.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:o.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}}},g_=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=v_.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:sj(X.otp)}}),T0(D.operators,{type:"event",name:o.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 nj(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function sj(D){return ij("sha256").update(D).digest("hex").slice(0,16)}J0();yD();var rj=V.object({now:V.number().int(),online:V.array(r8)}),y_=(D)=>{let $=Date.now(),F=D.nodes.list().map((J)=>{let Y=D.persistence.getRegisteredWorker(J.workerId);return{workerId:J.workerId,displayName:Y?.displayName,online:!0,deviceId:J.deviceId,baseUrl:Y?.baseUrl,lastSeenAt:J.pairedAt}}),X=rj.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}};J0();yD();import{Buffer as u_}from"buffer";var aj=V.object({workerId:V.string().min(1)}),m_=async(D,$)=>{let F=aj.safeParse($);if(!F.success)return{ok:!1,code:"invalid_params",message:"token.rotate \u7F3A\u5C11 workerId",details:F.error.flatten()};if(!D.masterKeyHex)return{ok:!1,code:"master_key_missing",message:"gateway \u672A\u914D\u7F6E AIWORKER_MASTER_KEY,\u65E0\u6CD5\u52A0\u5BC6 worker token"};let{workerId:X}=F.data;if(!D.persistence.getRegisteredWorker(X))return{ok:!1,code:"not_found",message:`worker ${X} \u4E0D\u5728 fleet \u4E2D`};let Y=D.nodes.get(X);if(!Y)return{ok:!1,code:"node_offline",message:`worker ${X} \u672A\u8FDE\u63A5\u5230 gateway`};return await new Promise((G)=>{let B=new p_(G,D,X),H=D.forwards.allocate({operatorRequestId:`internal:token-rotate:${X}:${Date.now()}`,operatorWs:B,workerId:X,method:"token.rotate"});try{Y.ws.send(bD({type:"request",id:H.gatewayRequestId,method:"token.rotate",params:{workerId:X}}))}catch(W){D.forwards.consume(H.gatewayRequestId),G({ok:!1,code:"forward_failed",message:`token.rotate \u53D1\u5F80 worker \u5931\u8D25: ${W instanceof Error?W.message:String(W)}`})}})};class p_{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?u_.from(new Uint8Array(D)).toString("utf8"):u_.from(D).toString("utf8"),F;try{F=JSON.parse($)}catch(G){this.resolve({ok:!1,code:"internal_error",message:`token.rotate: \u65E0\u6CD5\u89E3\u6790 node \u54CD\u5E94: ${G instanceof Error?G.message:String(G)}`});return}if(F.type!=="response"){this.resolve({ok:!1,code:"internal_error",message:"token.rotate: \u975E response frame"});return}if(!F.ok){this.resolve({ok:!1,code:F.error.code,message:F.error.message,details:F.error.details});return}let J=F.result?.deviceToken;if(typeof J!=="string"||J.length===0){this.resolve({ok:!1,code:"invalid_worker_response",message:"token.rotate: node \u8FD4\u56DE\u7684 deviceToken \u7F3A\u5931\u6216\u975E\u5B57\u7B26\u4E32"});return}if(!this.ctx.persistence.updateEncryptedToken({workerId:this.workerId,newToken:J},this.ctx.masterKeyHex)){this.resolve({ok:!1,code:"not_found",message:`worker ${this.workerId} \u5728 token.rotate \u56DE\u8C03\u671F\u95F4\u5DF2\u88AB\u5220\u9664`});return}this.ctx.persistence.recordAudit({actor:"gateway",action:"gateway.token.rotated",workerId:this.workerId,detail:{lastFour:J.slice(-4)}}),this.resolve({ok:!0,result:{deviceToken:J}})}close(){}}J0();j0();yD();j0();class S3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class D1 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class R8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var oj=1e4;class OX{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??oj}buildUrl(D){let $=D.replace(/^\/+/,"");return`${this.baseUrl}/api/worker/${$}`}async request(D,$,F){let X=new AbortController,J=setTimeout(()=>X.abort(),this.timeoutMs),Y={Authorization:`Bearer ${this.apiToken}`},G={method:D,headers:Y,signal:X.signal};if(F!==void 0)G.body=JSON.stringify(F),Y["Content-Type"]="application/json";try{return await this.fetchImpl(this.buildUrl($),G)}catch(B){if(B.name==="AbortError")throw new D1(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new D1(`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 S3;if(!D.ok)throw new D1(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new R8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!tj($))throw new R8(`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 S3;if(!D.ok)throw new D1(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new R8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new R8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!U8(F))throw new R8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function tj(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class J6 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class s2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function ej(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var c_=(D)=>{let F=D.persistence.listRegisteredWorkers().map((J)=>{let Y=D.nodes.has(J.id),G=Y?D.nodes.get(J.id):void 0,B=G?G.pairedAt:ej(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:Y,deviceId:G?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=V.object({workers:V.array(r8)}).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 Y=D.nodes.get(X),G=D.persistence.removeRegisteredWorker(X);if(Y){D.forwards.cancelByWorker(X),D.nodes.unregisterByWs(Y.ws);try{Y.ws.close(1000,"removed_from_fleet")}catch(B){D.logger.warn(`[gateway] workers.remove \u5173\u95ED\u5728\u7EBF node \u65F6\u62A5\u9519 (workerId=${X})`,B)}}return D.persistence.recordAudit({actor:"gateway",action:"gateway.worker.removed",workerId:X,detail:{displayName:J.displayName,baseUrl:J.baseUrl}}),{ok:!0,result:{removed:G}}},Dz=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 $z(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=Dz.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 _=$.persistence.countRegisteredWorkers();if(_>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:_}}}let Y=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new OX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),G;try{G=await Y.info()}catch(_){if(_ instanceof S3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(_ instanceof D1)return{ok:!1,code:"worker_unreachable",message:_.message};if(_ instanceof R8)return{ok:!1,code:"invalid_worker_info",message:_.message};throw _}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken,displayName:J.displayName??G.workerId,addedBy:"manual",configVersion:G.configVersion},$.masterKeyHex),W=a1.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 l_=$z(),Fz=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 Xz(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=Fz.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.launch \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data,Y=J.displayName??"worker";if($.maxWorkers!==void 0){let _=$.persistence.countRegisteredWorkers();if(_>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:_}}}let G;try{G=await $.supervisor.launchLocal({displayName:Y,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(_){if(_ instanceof J6)return{ok:!1,code:"launch_timeout",message:_.message};if(_ instanceof s2)return{ok:!1,code:"launch_failed",message:_.message};throw _}if($.persistence.getRegisteredWorker(G.workerId))return{ok:!1,code:"already_registered",message:`worker ${G.workerId} \u5DF2\u5728 fleet \u4E2D`,details:{workerId:G.workerId,containerName:G.containerName}};let H=$.persistence.createRegisteredWorker({workerId:G.workerId,baseUrl:G.baseUrl,apiToken:G.apiToken,displayName:Y,addedBy:"launch-local"},$.masterKeyHex);$.persistence.recordAudit({actor:"gateway",action:"gateway.worker.launched",workerId:H.id,detail:{containerId:G.containerId,containerName:G.containerName,baseUrl:G.baseUrl}});let W=a1.safeParse({workerId:H.id,deviceToken:G.apiToken});if(!W.success)return{ok:!1,code:"internal_error",message:`workers.launch \u6784\u9020\u7684 result \u4E0D\u7B26\u5408 schema: ${W.error.message}`};return{ok:!0,result:W.data}}}var i_=Xz();var Jz={"system.presence":y_,"workers.list":c_,"workers.remove":d_,"workers.pair":l_,"workers.launch":i_,"token.rotate":m_,"enroll.list":h_,"enroll.approve":x_,"enroll.reject":g_,"audit.list":k_},Gz=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function n_(D,$,F,X){let J=V3(F.method);if(!J){G6($,{type:"response",id:F.id,ok:!1,error:{code:"unknown_method",message:`\u672A\u6CE8\u518C\u65B9\u6CD5 ${F.method}`,details:{method:F.method}}});return}let Y=J.params.safeParse(F.params??void 0);if(!Y.success){G6($,{type:"response",id:F.id,ok:!1,error:{code:"invalid_params",message:`${F.method} \u53C2\u6570\u6821\u9A8C\u5931\u8D25`,details:Y.error.flatten()}});return}let G=Y.data;if(!Gz.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Yz(G),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Jz[F.method];if(!B){G6($,{type:"response",id:F.id,ok:!1,error:{code:"handler_missing",message:`\u65B9\u6CD5 ${F.method} \u6CA1\u6709\u672C\u5730 handler \u7ED1\u5B9A`,details:{method:F.method}}});return}try{let H=await B(D,G);if(H.ok)G6($,{type:"response",id:F.id,ok:!0,result:H.result});else G6($,{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),G6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}f_({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:G})}function s_(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 r_(D,$,F){T0(D.operators,F)}function Yz(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function G6(D,$){try{D.send(bD($))}catch{}}function a_(D){let{config:$,context:F}=D;T_({host:$.host,internalSharedSecret:$.internalSharedSecret});let X=Bun.serve({port:$.port,hostname:$.host,fetch(Y,G){let B=new URL(Y.url);if(B.pathname==="/health")return new Response(JSON.stringify({ok:!0,service:"aiworker-gateway",ts:Date.now()}),{status:200,headers:{"Content-Type":"application/json"}});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 I_({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=G.requestIP(Y)?.address,_=KX(W);if(!_&&F.connectRateLimiter){let A=F.connectRateLimiter.isBlocked(W);if(A.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(A.retryAfterMs/1000))}})}let U=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(G.upgrade(Y,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:_,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:U}}))return;return new Response("upgrade failed",{status:400})}return new Response("not found",{status:404})},websocket:{maxPayloadLength:1048576,idleTimeout:120,open(Y){F.logger.debug(`[gateway] ws opened (remote=${Y.data.remoteAddress??"?"} loopback=${Y.data.loopback})`)},message(Y,G){Wz(Y,G,F,$)},close(Y,G,B){Vz(Y,G,B,F)}}}),J=X.port;if(typeof J!=="number")throw TypeError("Bun.serve did not return a TCP port \u2014 unix socket is not supported");return{server:X,port:J,context:F,stop:async()=>{F.forwards.dispose(),F.pendingEnrollments?.dispose(),await X.stop(!0)}}}function Wz(D,$,F,X){let J=typeof $==="string"?$:Bz.from($).toString("utf8"),Y=s8(J);if(!Y.ok){F.logger.warn(`[gateway] \u65E0\u6CD5\u89E3\u6790\u5E27: ${Y.error}`),D.close(4400,"bad_frame");return}let G=Y.frame;if(D.data.role===void 0){if(G.type!=="connect"){F.logger.warn(`[gateway] \u63E1\u624B\u524D\u6536\u5230\u975E connect \u5E27: ${G.type}`),D.close(4400,"connect_required");return}let B=G.role==="node"&&G.enroll?G.enroll.mode??"join-token":void 0,H=B==="otp",W=G.role==="node"&&G.enroll!==void 0&&B==="join-token",_=b_({loopback:D.data.loopback,sharedSecret:X.internalSharedSecret,presentedToken:G.auth.token,enrollToken:W?G.enroll.joinToken:void 0,gatewayJoinToken:X.joinToken,path:D.data.path,isOtpEnrollSubmit:H});if(!_.ok){let U=_.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.role==="node"?G.agentId:null,detail:{reason:_.reason,role:G.role,agentId:G.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!U&&!D.data.loopback&&F.connectRateLimiter){let O=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(O.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:O.fails,blockUntil:O.blockUntil,path:D.data.path,triggerReason:_.reason}})}let Q=U?4400:4401,A=U?_.reason:`auth:${_.reason}`;D.close(Q,A);return}if(_.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let U=G.enroll,Q=F.pendingEnrollments.submit({workerId:G.agentId,apiToken:U.apiToken,displayName:U.displayName,ws:D});try{D.send(bD({type:"event",name:o.ENROLLMENT_OTP,payload:{workerId:G.agentId,otp:Q.otp,expiresAt:Q.expiresAt},ts:Date.now()}))}catch(A){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${A.message}`),D.close(4500,"enroll_otp_send_failed");return}D.data.role="node-pending",D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,F.persistence.recordAudit({actor:"gateway",action:"gateway.enrollment.requested",workerId:G.agentId,detail:{workerId:G.agentId,displayName:U.displayName,deviceId:G.deviceId,otpHash:Uz(Q.otp),expiresAt:Q.expiresAt,path:D.data.path}}),T0(F.operators,{type:"event",name:o.ENROLLMENT_PENDING,payload:{workerId:G.agentId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:Q.otp,submittedAt:Date.now(),expiresAt:Q.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let A=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(G.agentId)===void 0&&A>=F.maxWorkers){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"quota_exceeded",role:G.role,agentId:G.agentId,limit:F.maxWorkers,current:A}}),D.close(4401,"auth:quota_exceeded");return}}if(!F.masterKeyHex){F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.agentId,detail:{reason:"master_key_missing",role:G.role,agentId:G.agentId}}),D.close(4401,"auth:master_key_missing");return}let U=G.enroll,Q=F.persistence.upsertEnrolledWorker({workerId:G.agentId,baseUrl:"",apiToken:U.apiToken,displayName:U.displayName??G.agentId,addedBy:"self-enroll"},F.masterKeyHex);if(Q.kind!=="unchanged")F.persistence.recordAudit({actor:"gateway",action:"gateway.worker.enrolled",workerId:G.agentId,detail:{workerId:G.agentId,displayName:Q.row.displayName,deviceId:G.deviceId,change:Q.kind}})}if(D.data.role=G.role,D.data.agentId=G.agentId,D.data.deviceId=G.deviceId,G.role==="operator")F.operators.register({agentId:G.agentId,deviceId:G.deviceId,ws:D,connectedAt:Date.now()});else{let{replaced:U}=F.nodes.register({workerId:G.agentId,deviceId:G.deviceId,ws:D,pairedAt:Date.now(),meta:G.meta??{}});if(U){F.forwards.cancelByWorker(G.agentId);try{U.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let Q=F.persistence.getRegisteredWorker(G.agentId)?.displayName;T0(F.operators,{type:"event",name:o.WORKER_ONLINE,payload:{workerId:G.agentId,displayName:Q,deviceId:G.deviceId,connectedAt:Date.now()},ts:Date.now()})}if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.accepted",workerId:G.role==="node"?G.agentId:null,detail:{role:G.role,agentId:G.agentId,deviceId:G.deviceId,loopback:D.data.loopback,via:_.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${G.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(G.type==="request"){let B=D.data.agentId??"unknown";n_(F,D,G,B);return}F.logger.warn(`[gateway] operator \u7AEF\u53D1\u9001\u4E86\u975E request \u5E27: ${G.type}`),D.close(4400,"operator_expects_request_only");return}if(D.data.role==="node"){if(G.type==="response"){s_(F,D,G);return}if(G.type==="event"){r_(F,D,G);return}F.logger.warn(`[gateway] node \u7AEF\u53D1\u9001\u4E86\u975E response/event \u5E27: ${G.type}`),D.close(4400,"node_expects_response_or_event_only")}}function Vz(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:o.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:o.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:_z($),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 _z(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Uz(D){return Hz("sha256").update(D).digest("hex").slice(0,8)}JD();import{randomBytes as o_}from"crypto";import{mkdirSync as Az}from"fs";import{createServer as Kz}from"net";import{join as t_}from"path";import Ez from"process";JD();class RX{socket;constructor(D="/var/run/docker.sock"){this.socket=D}async request(D,$,F){let X=`http://localhost${$}`,J={method:D,unix:this.socket,headers:F!==void 0?{"Content-Type":"application/json"}:{}};if(F!==void 0)J.body=JSON.stringify(F);let Y=await fetch(X,J),G=await Y.text();if(!Y.ok)throw Error(`Docker API ${D} ${$} failed: ${Y.status} ${G}`);if(!G)return;try{return JSON.parse(G)}catch{return G}}ping(){return this.request("GET","/_ping")}createContainer(D,$){return this.request("POST",`/containers/create?name=${encodeURIComponent(D)}`,$)}startContainer(D){return this.request("POST",`/containers/${D}/start`)}async stopContainer(D,$=10){try{await this.request("POST",`/containers/${D}/stop?t=${$}`)}catch(F){if(F instanceof Error&&/304/.test(F.message))return;throw F}}removeContainer(D,$){let F=new URLSearchParams;if($?.force)F.set("force","true");if($?.removeVolumes)F.set("v","true");let X=F.toString();return this.request("DELETE",`/containers/${D}${X?`?${X}`:""}`)}inspectContainer(D){return this.request("GET",`/containers/${D}/json`)}listContainers(D){let $=new URLSearchParams({all:"true"});if(D)$.set("filters",JSON.stringify(D));return this.request("GET",`/containers/json?${$.toString()}`)}async logs(D,$){let F=new URLSearchParams({stdout:String($?.stdout??!0),stderr:String($?.stderr??!0),tail:String($?.tail??200)}),X=`http://localhost/containers/${D}/logs?${F.toString()}`,J=await fetch(X,{method:"GET",unix:this.socket});if(!J.ok){let G=await J.text();throw Error(`Docker logs ${D} failed: ${J.status} ${G}`)}let Y=new Uint8Array(await J.arrayBuffer());return Qz(Y)}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 Oz=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,Rz=30000,Cz=500;class CX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new RX(D.config.dockerHost),this.allocatePort=D.allocatePort??Nz,this.pollIntervalMs=D.pollIntervalMs??Cz,this.pollTimeoutMs=D.pollTimeoutMs??Rz,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Ez.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=${t_("/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=o_(32).toString("hex"),J=`aiworker-${o_(4).toString("hex")}`,Y=t_(this.config.workerDataRoot,J);try{Az(Y,{recursive:!0})}catch(W){throw new s2(`failed to create data dir ${Y}: ${W.message}`,W)}let G=this.buildEnv({masterKeyHex:F,port:$,forceId:D.forceId}),B={Image:this.config.image,Env:G,Labels:{"aiworker.role":"worker","aiworker.addedBy":"launch-local","aiworker.displayName":D.displayName},HostConfig:{RestartPolicy:{Name:"unless-stopped"},NetworkMode:this.config.network,Memory:qz(this.config.workerMemoryLimit),NanoCpus:Math.round(this.config.workerCpuLimit*1e9),Binds:[`${Y}:/var/lib/aiworker`]},NetworkingConfig:{EndpointsConfig:{[this.config.network]:{Aliases:[J]}}}},H=null;try{let W=await this.docker.createContainer(J,B);H=W.Id,await this.docker.startContainer(W.Id),C.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let _=await this.awaitBootstrapToken(W.Id),U=Zz(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return C.success(`[gateway/supervisor] ${J} bootstrapped as ${_.workerId}`),{workerId:_.workerId,apiToken:_.token,baseUrl:U,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(_){C.warn(`[gateway/supervisor] failed to cleanup ${H}: ${_.message}`)}if(W instanceof J6||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=Mz(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new J6(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function Mz(D){let $=Oz.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 Zz(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function qz(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 Nz(){return new Promise((D,$)=>{let F=Kz();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 Lz(D,$={}){q_(D.fleetDbPath),N_(VX);let F=_X(),X=new G4(F),J=new $4,Y=new F4,G=new D4({onExpire:(_,U)=>{if(C.warn(`[gateway] forward \u53D6\u6D88 (method=${_.method} workerId=${_.workerId} reason=${U})`),U==="operator_gone")return;let Q=U==="timeout"?"forward_timeout":"node_gone",A=U==="timeout"?`\u7B49\u5F85 worker ${_.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${_.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{_.operatorWs.send(bD({type:"response",id:_.operatorRequestId,ok:!1,error:{code:Q,message:A,details:{workerId:_.workerId,method:_.method}}}))}catch{}}}),B=new X4({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(_)=>{try{_.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:_.workerId,detail:{displayName:_.displayName,otpHash:Pz("sha256").update(_.otp).digest("hex").slice(0,16)}})}catch(U){C.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",U)}try{T0(Y,{type:"event",name:o.ENROLLMENT_PENDING,payload:{workerId:_.workerId,..._.displayName===void 0?{}:{displayName:_.displayName},otp:_.otp,submittedAt:_.submittedAt,expiresAt:_.expiresAt,reason:"expired"},ts:Date.now()})}catch(U){C.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",U)}}}),H=null;if(D.canLaunch)H=new CX({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 e7;return{persistence:X,nodes:J,operators:Y,forwards:G,logger:C.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function e_(D,$={}){let X={...P_(),...D},J=Lz(X,{webStaticDir:$.webStaticDir}),Y=a_({config:X,context:J});return C.success(`[gateway] listening ws://${X.host}:${Y.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...Y,config:X}}JD();import{existsSync as MX,realpathSync as jz}from"fs";import{dirname as zz,resolve as $1}from"path";import DU from"process";import{fileURLToPath as Iz}from"url";function Y4(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=DU.env[$];if(F){let W=wz(F);if(W&&MX($1(W,"index.html")))return W}let X=Tz();if(!X)return;let J=$1(X,"web",D);if(MX($1(J,"index.html")))return J;let G=X.endsWith(`apps${ZX()}cli${ZX()}src${ZX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=$1(X,...Array.from({length:G},()=>"..")),H=$1(B,"apps","web","dist",D);if(MX($1(H,"index.html")))return H;return}function Tz(){if(typeof import.meta.url!=="string")return;try{return zz(Iz(import.meta.url))}catch{return}}function wz(D){try{return jz($1(D))}catch{return}}function ZX(){return DU.platform==="win32"?"\\":"/"}P2();a8();import{spawn as Sz}from"child_process";import{closeSync as $U,existsSync as bz,openSync as FU,readFileSync as fz,unlinkSync as B4,writeFileSync as kz}from"fs";import{mkdir as vz}from"fs/promises";import C8 from"process";var hz="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function XU(D){if(!Number.isFinite(D)||D<=0)return!1;try{return C8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function xz(D){if(!bz(D))return null;try{let $=fz(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 gz(){await vz(y2(),{recursive:!0})}function H4(){let D=P7(),$=L7(),F=xz(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!XU(F)){try{B4(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function JU(D={}){let $=H4();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await gz();let F=D.port??Number.parseInt(C8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=P7(),J=L7(),Y=FU(J,"a"),G=FU(J,"a"),B={...C8.env,...D.env,PORT:String(F),[hz]:"1"},H=C8.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=Sz(C8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:C8.cwd(),detached:!0,stdio:["ignore",Y,G]});try{$U(Y)}catch{}if(G!==Y)try{$U(G)}catch{}if(W.pid===void 0)throw Error("gateway \u5B50\u8FDB\u7A0B\u542F\u52A8\u5931\u8D25\uFF1A\u672A\u83B7\u5F97 PID");return W.unref(),kz(X,`${String(W.pid)}
|
|
331
|
+
`,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function GU(D={}){let $=H4();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{C8.kill(F,"SIGTERM")}catch(G){if(G.code==="ESRCH"){try{B4($.pidFile)}catch{}return null}throw G}let Y=Date.now()+X;while(Date.now()<Y){if(!XU(F)){try{B4($.pidFile)}catch{}return F}await new Promise((G)=>setTimeout(G,J))}try{C8.kill(F,"SIGKILL")}catch{}try{B4($.pidFile)}catch{}return F}a8();async function YU(D={}){if(D.detach===!0)return yz(D);return uz(D)}async function yz(D){try{let $=await JU({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await _3({gatewayUrl:`ws://localhost:${$.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 uz(D){try{let $=W4.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?Y4("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 e_(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 _3({gatewayUrl:`ws://localhost:${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 Y=!1,G=async(B)=>{if(Y)return;Y=!0,C.info(`[gateway] received ${B}, shutting down`);try{await J.stop(),UX()}catch(H){C.error("[gateway] shutdown failed",H)}W4.exit(0)};return W4.once("SIGTERM",()=>void G("SIGTERM")),W4.once("SIGINT",()=>void G("SIGINT")),await new Promise(()=>{}),0}catch($){return C.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function BU(){let D=H4();if(D.running)return C.success(`gateway daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),C.info(`pidFile: ${D.pidFile}`),C.info(`logFile: ${D.logFile}`),0;return C.info("gateway daemon \u672A\u8FD0\u884C\uFF08\u6216\u5728 foreground \u6A21\u5F0F\u4E0B\u7531 systemd \u76F4\u63A5\u7BA1\uFF09"),1}async function HU(D={}){try{let $=await GU(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return C.info("gateway daemon \u5F53\u524D\u672A\u8FD0\u884C"),0;return C.success(`gateway daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return C.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}JD();import{spawnSync as WU}from"child_process";import{existsSync as mz,mkdirSync as pz,readFileSync as cz,writeFileSync as dz}from"fs";import{homedir as VU}from"os";import _U from"path";import lz from"process";var F1="aiworker-gateway.service",iz="/var/lib/aiworker";function nz(D){if(D.scope==="user")return["[Unit]","Description=AIWorker gateway daemon (user instance)","After=network.target","","[Service]","Type=simple","ExecStart=%h/.bun/bin/aiworker gateway start","Restart=on-failure","RestartSec=5","Environment=AIWORKER_HOME=%h/.aiworker","","[Install]","WantedBy=default.target",""].join(`
|
|
332
|
+
`);if(!D.operatorHome||D.operatorHome.length===0)throw Error("renderSystemdUnit: scope=system \u5FC5\u987B\u63D0\u4F9B operatorHome\uFF08systemd \u7CFB\u7EDF\u5355\u5143\u4E0D\u5C55\u5F00 %h\uFF09");return["[Unit]","Description=AIWorker gateway daemon (system instance)","After=network.target","","[Service]","Type=simple",`ExecStart=${D.operatorHome}/.bun/bin/aiworker gateway start`,"Restart=on-failure","RestartSec=5",`Environment=AIWORKER_HOME=${iz}`,"","[Install]","WantedBy=multi-user.target",""].join(`
|
|
333
|
+
`)}function sz(D,$=VU()){if(D==="user")return _U.join($,".config","systemd","user",F1);return`/etc/systemd/system/${F1}`}function rz(D={}){let $=D.scope??"user",F=nz({scope:$,...$==="system"?{operatorHome:VU()}:{}});if(D.dryRun)return{scope:$,content:F,enabled:!1};let X=D.out??sz($);pz(_U.dirname(X),{recursive:!0});let J=!1;if(mz(X)){if(cz(X,"utf8")===F)J=!0}if(!J)dz(X,F,{encoding:"utf8",mode:420});if(!(!D.noEnable&&D.out===void 0))return{scope:$,content:F,written:{path:X,unchanged:J},enabled:!1};return az($),{scope:$,content:F,written:{path:X,unchanged:J},enabled:!0}}function az(D){let $=D==="user"?["--user"]:[],F=WU("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=WU("systemctl",[...$,"enable","--now",F1],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",F1].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function UU(D={}){try{let $=rz(D);if(D.dryRun)return lz.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)C.success(`\u5DF2 enable --now ${F1}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`);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 ${F1}`);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 ${F1}`);return 0}catch($){return C.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}J0();JD();async function QU(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await RD(async({client:X})=>{return await new Promise((J)=>{let Y=!1,G=(W)=>{if(Y)return;Y=!0,J(W)},B=X.onEvent(o.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let _=W.workerId;if(typeof _!=="string"||_!==D.workerId)return;W2(W)}),H=setTimeout(()=>{B(),G(0)},F);X.request("logs.tail",{workerId:D.workerId,follow:$,...D.tail===void 0?{}:{lines:D.tail}}).then(()=>{}).catch((W)=>{B(),clearTimeout(H),W2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),G(KD(W))})})})}catch(X){return C.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),KD(X)}}JD();async function AU(D){try{let $=await RD(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(() => (a8(),z7));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 KU=["web","line","telegram","lark","whatsapp"];function oz(D){if(!KU.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${KU.join(", ")}`);return D}async function EU(D){try{let $=await RD(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 OU(D){try{let $=oz(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 RD(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 RU(D,$){try{let F=await RD(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 CU(D){try{let $=await RD(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 MU(){try{let D=await RD(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 ZU(D){try{let $=await RD(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 qU(D={}){try{let $=await RD(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(() => (a8(),z7));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 NU(D){try{let $=await RD(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 PU(D){try{let $=await RD(async({client:Y})=>{return await Y.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (a8(),z7)),J=await F();if(J.defaultWorkerId===D){let Y={...J};delete Y.defaultWorkerId,await X(Y)}return zD($),0}catch($){return C.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),KD($)}}a0();JD();import fY from"process";a0();TD();import fd from"process";async function kd(D){let $=mD(),F=o2(D).map((J)=>J.path),X=new Map;for(let J of F){let Y=await $.get(J);if(Y!==null)X.set(J,Y)}return _6(D,X)}async function iD(D={}){k3(n.WORKER_DB_PATH);let $=fd.env.WORKER_MIGRATIONS_FOLDER??Y6;v3($);let F=mD(),X=u(),J=await Y1(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 Y=await G1(X),G=await kd(Y.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:Y.version,hydrated:G,db:X,processes:B}}function oC(D){return I1(D.workerId,D.hydrated,{processes:D.processes})}function vd(){return`http://${fY.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${n.PORT}`}async function tC(D,$={}){let F=await iD({silent:!0}),X=`${vd()}${D}`,J=new Headers($.headers??{});if(J.set("Authorization",`Bearer ${F.token}`),$.body!==void 0&&!J.has("content-type"))J.set("content-type","application/json");let Y=await fetch(X,{...$,headers:J}),G=null;try{G=await Y.json()}catch{G=null}return{status:Y.status,body:G}}async function eC(){try{let{status:D,body:$}=await tC("/api/worker/approvals");if(D!==200)return C.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return fY.stdout.write(`${JSON.stringify($,null,2)}
|
|
334
|
+
`),0}catch(D){return C.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function DM(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await tC(`/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 fY.stdout.write(`${JSON.stringify(X,null,2)}
|
|
335
|
+
`),0}catch($){return C.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}a0();JD();async function $M(){await iD({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (TD(),IX)),$=await S0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function FM(D){let $=await iD({silent:!0}),F;try{F=JSON.parse(D.json)}catch(G){return C.error(`[aiw config set] invalid JSON: ${String(G)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (TD(),IX)),J=X(),Y=mD();try{let G=await L9(J,Y,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await j9($.workerId,G.config,G.version),C.success(`[aiw config set] stored config v${G.version}`),0}catch(G){if(G instanceof x2)return C.error(`[aiw config set] invalid config: ${JSON.stringify(G.issues,null,2)}`),2;if(G instanceof g2)return C.error(`[aiw config set] version conflict: expected ${G.expected}, stored is ${G.actual}`),3;throw G}}P2();JD();import{existsSync as hd}from"fs";import{homedir as xd}from"os";import n6 from"path";import kY from"process";async function XM(D={}){if(D.global===!0){let G=n6.join(xd(),".aiworker");kY.env.AIWORKER_HOME=G,u8({home:G});let B=await iD();C.success(`[aiworker init] user-scope worker ${B.workerId} ready (config v${B.configVersion})`);return}let $=t0();if($.scope==="explicit"){u8({home:$.home});let G=await iD();C.success(`[aiworker init] explicit-scope worker ${G.workerId} ready (${$.home})`);return}let F=kY.cwd(),X=M$(F);if(X){await j$(X),u8({home:n6.join(X,".aiworker","local")});let G=await iD();C.success(`[aiworker init] project-scope worker ${G.workerId} ready (${X})`);return}if(D.force!==!0&&!gd(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
|
|
336
336
|
`+` \u2022 Run inside an existing git repo to enable project-scope worker, OR
|
|
337
337
|
`+` \u2022 aiworker init --global \u2192 use ~/.aiworker (single host-wide worker), OR
|
|
338
|
-
`+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await
|
|
338
|
+
`+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await j$(F);let J=n6.join(F,".aiworker","local");delete kY.env.AIWORKER_HOME,u8({home:J});let Y=await iD();C.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${F})`)}function gd(D){let $=n6.resolve(D);while(!0){if(hd(n6.join($,".git")))return!0;let F=n6.dirname($);if(F===$)return!1;$=F}}JD();var yd=120000;async function JM(D={}){let $=D.message??"";if(!$)return C.error("[aiw run] --message is required (non-empty)"),2;let F=await iD(),X=oC(F),J=D.timeoutMs??yd;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 Y=D.chatId??"cli:stdin",G={workerId:F.workerId,channel:"web",accountId:"sys:cli",chatId:Y,text:$,receivedAt:new Date().toISOString(),raw:{source:"aiw-cli"}},B=new Promise((W)=>{let _=null,U=setTimeout(()=>{C.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),_?.(),W(124)},J);_=X.bus.on((Q)=>{if(console.log(JSON.stringify({type:Q.type,at:Q.at,payload:Q.payload})),Q.type==="orchestrator.finished"||Q.type==="orchestrator.error")clearTimeout(U),_?.(),W(Q.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(G)}catch(W){return C.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}JD();var GM=["web","line","telegram","lark","whatsapp"];function ud(D){if(!GM.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${GM.join(", ")}`);return D}async function vY(D){await iD({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (a0(),aC)),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 YM(){try{let D=await vY(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 BM(D){try{let $=ud(D.channel),F=await vY(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 HM(D){try{let $=await vY(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}}P2();import{existsSync as md}from"fs";import WM from"path";import VM from"process";async function _M(){let D=t0();VM.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
|
|
339
339
|
`)}
|
|
340
|
-
`);let $="<workerId>",F=e0($),X=
|
|
341
|
-
`)}return 0}import n9 from"process";function v9(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 YD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function yd(D){return"_def"in D}function f9(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 _M(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,Y){var G,B,H,W,_,U;let Q=typeof J==="string"?Y:J,A=Q!==null&&Q!==void 0?Q:{},{param:E}=A,C=v9(A,["param"]),K=Object.assign(Object.assign({},(G=this._def.openapi)===null||G===void 0?void 0:G._internal),typeof J==="string"?{refId:J}:void 0),R=Object.assign(Object.assign(Object.assign({},(B=this._def.openapi)===null||B===void 0?void 0:B.metadata),C),((W=(H=this._def.openapi)===null||H===void 0?void 0:H.metadata)===null||W===void 0?void 0:W.param)||E?{param:Object.assign(Object.assign({},(U=(_=this._def.openapi)===null||_===void 0?void 0:_.metadata)===null||U===void 0?void 0:U.param),E)}: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(R).length>0?{metadata:R}:void 0)}));if(YD(this,"ZodObject")){let P=this.extend;q.extend=function(...b){var T,L,w,z,s,QD,VD;let $D=P.apply(this,b);return $D._def.openapi={_internal:{extendedFrom:((L=(T=this._def.openapi)===null||T===void 0?void 0:T._internal)===null||L===void 0?void 0:L.refId)?{refId:(z=(w=this._def.openapi)===null||w===void 0?void 0:w._internal)===null||z===void 0?void 0:z.refId,schema:this}:(QD=(s=this._def.openapi)===null||s===void 0?void 0:s._internal)===null||QD===void 0?void 0:QD.extendedFrom},metadata:(VD=$D._def.openapi)===null||VD===void 0?void 0:VD.metadata},$D}}return q},f9(D,"optional"),f9(D,"nullable"),f9(D,"default"),f9(D,"transform"),f9(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),Y=$.apply(this),G=Y._def.shape();return Object.entries(G).forEach(([B,H])=>{var W,_;H._def.openapi=(_=(W=J[B])===null||W===void 0?void 0:W._def)===null||_===void 0?void 0:_.openapi}),Y._def.openapi=void 0,Y};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let Y=F.apply(this,J);return Y._def.openapi=void 0,Y};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let Y=X.apply(this,J);return Y._def.openapi=void 0,Y}}function G$(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)=>G$(D[X],$[X]))}class UM{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)=>G$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>G$(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 h9(D){return D===void 0}function x9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function ud(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((Y)=>Y===X))F[X]=J}),F}function r6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function VM(D){return D.filter(($)=>!h9($))}var vY=G$;function md(D){let $=new UM;return D.forEach((F)=>$.put(F)),[...$.values()]}function QM(D){return typeof D==="string"}class hY{constructor(D){this.parents=D,this._definitions=[]}get definitions(){var D,$;return[...($=(D=this.parents)===null||D===void 0?void 0:D.flatMap((X)=>X.definitions))!==null&&$!==void 0?$:[],...this._definitions]}register(D,$){let F=this.schemaWithRefId(D,$);return this._definitions.push({type:"schema",schema:F}),F}registerParameter(D,$){var F,X,J;let Y=this.schemaWithRefId(D,$),G=(F=Y._def.openapi)===null||F===void 0?void 0:F.metadata,B=Y.openapi(Object.assign(Object.assign({},G),{param:Object.assign(Object.assign({},G===null||G===void 0?void 0:G.param),{name:(J=(X=G===null||G===void 0?void 0:G.param)===null||X===void 0?void 0:X.name)!==null&&J!==void 0?J:D})}));return this._definitions.push({type:"parameter",schema:B}),B}registerPath(D){this._definitions.push({type:"route",route:D})}registerWebhook(D){this._definitions.push({type:"webhook",webhook:D})}registerComponent(D,$,F){return this._definitions.push({type:"component",componentType:D,name:$,component:F}),{name:$,ref:{$ref:`#/components/${D}/${$}`}}}schemaWithRefId(D,$){return $.openapi(D)}}class y9{constructor(D){this.message=D}}class s6 extends y9{constructor(D,$){super(D);this.data=$}}class g9 extends y9{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 k9(D,$){try{return D()}catch(F){if(F instanceof g9)throw new g9(Object.assign(Object.assign({},F.data),$));throw F}}class AM extends y9{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class ND{static getMetadata(D){var $;let F=this.unwrapChained(D),X=D._def.openapi?D._def.openapi:F._def.openapi,J=($=D.description)!==null&&$!==void 0?$:F.description;return{_internal:X===null||X===void 0?void 0:X._internal,metadata:Object.assign({description:J},X===null||X===void 0?void 0:X.metadata)}}static getInternalMetadata(D){let $=this.unwrapChained(D),F=D._def.openapi?D._def.openapi:$._def.openapi;return F===null||F===void 0?void 0:F._internal}static getParamMetadata(D){var $,F;let X=this.unwrapChained(D),J=D._def.openapi?D._def.openapi:X._def.openapi,Y=($=D.description)!==null&&$!==void 0?$:X.description;return{_internal:J===null||J===void 0?void 0:J._internal,metadata:Object.assign(Object.assign({},J===null||J===void 0?void 0:J.metadata),{param:Object.assign({description:Y},(F=J===null||J===void 0?void 0:J.metadata)===null||F===void 0?void 0:F.param)})}}static buildSchemaMetadata(D){return r6(ud(D,["param"]),h9)}static buildParameterMetadata(D){return r6(D,h9)}static applySchemaMetadata(D,$){return r6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),h9)}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($&&YD(D,$))return D;if(YD(D,"ZodOptional")||YD(D,"ZodNullable")||YD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(YD(D,"ZodDefault")||YD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(YD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(YD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class KM{transform(D,$,F){var X,J;let Y=D._def.type;return Object.assign(Object.assign({},$("array")),{items:F(Y),minItems:(X=D._def.minLength)===null||X===void 0?void 0:X.value,maxItems:(J=D._def.maxLength)===null||J===void 0?void 0:J.value})}}class EM{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class CM{transform(D,$,F,X,J){let Y=[...D.options.values()],G=Y.map(X);if($)return{oneOf:F(G,$)};return{oneOf:G,discriminator:this.mapDiscriminator(Y,D.discriminator,J)}}mapDiscriminator(D,$,F){if(D.some((J)=>ND.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var Y;let G=ND.getRefId(J),B=(Y=J.shape)===null||Y===void 0?void 0:Y[$];if(YD(B,"ZodEnum")||YD(B,"ZodNativeEnum")){Object.values(B.enum).filter(QM).forEach((_)=>{X[_]=F(G)});return}let H=B===null||B===void 0?void 0:B._def.value;if(typeof H!=="string")throw Error(`Discriminator ${$} could not be found in one of the values of a discriminated union`);X[H]=F(G)}),{propertyName:$,mapping:X}}}class RM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class OM{transform(D,$,F,X){let Y={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([Y],$)};return Y}flattenIntersectionTypes(D){if(!YD(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 pd(D){let F=Object.keys(D).filter((Y)=>typeof D[D[Y]]!=="number").map((Y)=>D[Y]),X=F.filter((Y)=>typeof Y==="number").length,J=X===0?"string":X===F.length?"numeric":"mixed";return{values:F,type:J}}class ZM{transform(D,$){let{type:F,values:X}=pd(D._def.values);if(F==="mixed")throw new y9("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 qM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class PM{transform(D,$,F,X){var J;let Y=(J=ND.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,G=this.requiredKeysOf(D),B=x9(D._def.shape(),X);if(!Y)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),G.length>0?{required:G}:{}),this.generateAdditionalProperties(D,X));let H=Y.schema;X(H);let W=this.requiredKeysOf(H),_=x9(H===null||H===void 0?void 0:H._def.shape(),X),U=Object.fromEntries(Object.entries(B).filter(([E,C])=>{return!vY(_[E],C)})),Q=G.filter((E)=>!W.includes(E)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:U}),Q.length>0?{required:Q}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${Y.refId}`},A]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(YD(X,"ZodNever")){if(F==="strict")return{additionalProperties:!1};return{}}return{additionalProperties:$(X)}}requiredKeysOf(D){return Object.entries(D._def.shape()).filter(([$,F])=>!ND.isOptionalSchema(F)).map(([$,F])=>$)}}class NM{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,Y=F(X);if(YD(J,"ZodEnum")||YD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(QM).reduce((H,W)=>Object.assign(Object.assign({},H),{[W]:Y}),{});return Object.assign(Object.assign({},$("object")),{properties:B})}return Object.assign(Object.assign({},$("object")),{additionalProperties:Y})}}class LM{transform(D,$){var F,X,J;let Y=this.getZodStringCheck(D,"regex"),G=(F=this.getZodStringCheck(D,"length"))===null||F===void 0?void 0:F.value,B=Number.isFinite(D.minLength)?(X=D.minLength)!==null&&X!==void 0?X:void 0:void 0,H=Number.isFinite(D.maxLength)?(J=D.maxLength)!==null&&J!==void 0?J:void 0:void 0;return Object.assign(Object.assign({},$("string")),{minLength:G!==null&&G!==void 0?G:B,maxLength:G!==null&&G!==void 0?G:H,format:this.mapStringFormat(D),pattern:Y===null||Y===void 0?void 0:Y.regex.source})}mapStringFormat(D){if(D.isUUID)return"uuid";if(D.isEmail)return"email";if(D.isURL)return"uri";if(D.isDate)return"date";if(D.isDatetime)return"date-time";if(D.isCUID)return"cuid";if(D.isCUID2)return"cuid2";if(D.isULID)return"ulid";if(D.isIP)return"ip";if(D.isEmoji)return"emoji";return}getZodStringCheck(D,$){return D._def.checks.find((F)=>{return F.kind===$})}}class jM{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 zM{transform(D,$,F){let J=this.flattenUnionTypes(D).map((Y)=>{let G=this.unwrapNullable(Y);return F(G)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!YD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(YD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class IM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new PM,this.stringTransformer=new LM,this.numberTransformer=new qM,this.bigIntTransformer=new EM,this.literalTransformer=new MM,this.enumTransformer=new RM,this.nativeEnumTransformer=new ZM,this.arrayTransformer=new KM,this.unionTransformer=new zM,this.discriminatedUnionTransformer=new CM,this.intersectionTransformer=new OM,this.recordTransformer=new NM,this.tupleTransformer=new jM(D)}transform(D,$,F,X,J){if(YD(D,"ZodNull"))return this.versionSpecifics.nullType;if(YD(D,"ZodUnknown")||YD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(YD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(G)=>this.versionSpecifics.mapNullableType(G,$),F);let Y=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},Y),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(YD(D,"ZodUnknown")||YD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(YD(D,"ZodString"))return this.stringTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodNumber"))return this.numberTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),(Y)=>this.versionSpecifics.getNumberChecks(Y));if(YD(D,"ZodBigInt"))return this.bigIntTransformer.transform((Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(YD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodEnum"))return this.enumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodArray"))return this.arrayTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodUnion"))return this.unionTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(YD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F,X);if(YD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(YD(D,"ZodRecord"))return this.recordTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=ND.getRefId(D);throw new AM({currentSchema:D._def,schemaName:J})}}class xY{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new IM($),this.sortDefinitions()}generateDocumentData(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents(),paths:this.pathRefs}}generateComponents(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents()}}buildComponents(){var D,$;let F={};return this.rawComponents.forEach(({componentType:X,name:J,component:Y})=>{var G;(G=F[X])!==null&&G!==void 0||(F[X]={}),F[X][J]=Y}),Object.assign(Object.assign({},F),{schemas:Object.assign(Object.assign({},(D=F.schemas)!==null&&D!==void 0?D:{}),this.schemaRefs),parameters:Object.assign(Object.assign({},($=F.parameters)!==null&&$!==void 0?$:{}),this.paramRefs)})}sortDefinitions(){let D=["schema","parameter","component","route"];this.definitions.sort(($,F)=>{if(!("type"in $)){if(!("type"in F))return 0;return-1}if(!("type"in F))return 1;let X=D.findIndex((Y)=>Y===$.type),J=D.findIndex((Y)=>Y===F.type);return X-J})}generateSingle(D){if(!("type"in D)){this.generateSchemaWithRef(D);return}switch(D.type){case"parameter":this.generateParameterDefinition(D.schema);return;case"schema":this.generateSchemaWithRef(D.schema);return;case"route":this.generateSingleRoute(D.route);return;case"component":this.rawComponents.push(D);return}}generateParameterDefinition(D){let $=ND.getRefId(D),F=this.generateParameter(D);if($)this.paramRefs[$]=F;return F}getParameterRef(D,$){var F,X,J,Y,G;let B=(F=D===null||D===void 0?void 0:D.metadata)===null||F===void 0?void 0:F.param,H=((X=D===null||D===void 0?void 0:D._internal)===null||X===void 0?void 0:X.refId)?this.paramRefs[(J=D._internal)===null||J===void 0?void 0:J.refId]:void 0;if(!((Y=D===null||D===void 0?void 0:D._internal)===null||Y===void 0?void 0:Y.refId)||!H)return;if(B&&H.in!==B.in||($===null||$===void 0?void 0:$.in)&&H.in!==$.in)throw new s6(`Conflicting location for parameter ${H.name}`,{key:"in",values:VM([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 s6("Conflicting names for parameter",{key:"name",values:VM([H.name,$===null||$===void 0?void 0:$.name,B===null||B===void 0?void 0:B.name])});return{$ref:`#/components/parameters/${(G=D._internal)===null||G===void 0?void 0:G.refId}`}}generateInlineParameters(D,$){var F;let X=ND.getMetadata(D),J=(F=X===null||X===void 0?void 0:X.metadata)===null||F===void 0?void 0:F.param,Y=this.getParameterRef(X,{in:$});if(Y)return[Y];if(YD(D,"ZodObject")){let G=D._def.shape();return Object.entries(G).map(([H,W])=>{var _,U;let Q=ND.getMetadata(W),A=this.getParameterRef(Q,{in:$,name:H});if(A)return A;let E=(_=Q===null||Q===void 0?void 0:Q.metadata)===null||_===void 0?void 0:_.param;if((E===null||E===void 0?void 0:E.name)&&E.name!==H)throw new s6("Conflicting names for parameter",{key:"name",values:[H,E.name]});if((E===null||E===void 0?void 0:E.in)&&E.in!==$)throw new s6(`Conflicting location for parameter ${(U=E.name)!==null&&U!==void 0?U:H}`,{key:"in",values:[$,E.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new s6(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=ND.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!ND.isOptionalSchema(D)&&!D.isNullable(),Y=this.generateSchemaWithRef(D);return Object.assign({schema:Y,required:J},X?ND.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=ND.getMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=X===null||X===void 0?void 0:X.name,Y=X===null||X===void 0?void 0:X.in;if(!J)throw new g9({missingField:"name"});if(!Y)throw new g9({missingField:"in",paramName:J});let G=this.generateSimpleParameter(D);return Object.assign(Object.assign({},G),{in:Y,name:J})}generateSchemaWithMetadata(D){var $;let F=ND.unwrapChained(D),X=ND.getMetadata(D),J=ND.getDefaultValue(D),Y=(($=X===null||X===void 0?void 0:X.metadata)===null||$===void 0?void 0:$.type)?{type:X===null||X===void 0?void 0:X.metadata.type}:this.toOpenAPISchema(F,D.isNullable(),J);return(X===null||X===void 0?void 0:X.metadata)?ND.applySchemaMetadata(Y,X.metadata):r6(Y,h9)}constructReferencedOpenAPISchema(D){var $;let F=ND.getMetadata(D),X=ND.unwrapChained(D),J=ND.getDefaultValue(D),Y=D.isNullable();if(($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.type)return this.versionSpecifics.mapNullableType(F.metadata.type,Y);return this.toOpenAPISchema(X,Y,J)}generateSimpleSchema(D){var $;let F=ND.getMetadata(D),X=ND.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],Y={$ref:this.generateSchemaRef(X)},G=r6(ND.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,_)=>W===void 0||vY(W,J[_]));if(G.type)return{allOf:[Y,G]};let B=r6(this.constructReferencedOpenAPISchema(D),(W,_)=>W===void 0||vY(W,J[_])),H=ND.applySchemaMetadata(B,G);if(Object.keys(H).length>0)return{allOf:[Y,H]};return Y}generateSchemaWithRef(D){let $=ND.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=v9(D,["content"]),X=this.getBodyContent($);return Object.assign(Object.assign({},F),{content:X})}getParameters(D){if(!D)return[];let{headers:$}=D,F=this.cleanParameter(D.query),X=this.cleanParameter(D.params),J=this.cleanParameter(D.cookies),Y=k9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),G=k9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=k9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=k9(()=>{if(Array.isArray($))return $.flatMap((_)=>this.generateInlineParameters(_,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...G,...Y,...H,...B]}cleanParameter(D){if(!D)return;return YD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,Y=v9(D,["method","path","request","responses"]),G=x9(J,(_)=>{return this.getResponse(_)}),B=k9(()=>this.getParameters(X),{route:`${$} ${F}`}),H=this.getRequestBody(X===null||X===void 0?void 0:X.body);return{[$]:Object.assign(Object.assign(Object.assign(Object.assign({},Y),B.length>0?{parameters:[...Y.parameters||[],...B]}:{}),H?{requestBody:H}:{}),{responses:G})}}generateSingleRoute(D){let $=this.generatePath(D);return this.pathRefs[D.path]=Object.assign(Object.assign({},this.pathRefs[D.path]),$),$}getResponse(D){if(this.isReferenceObject(D))return D;let{content:$,headers:F}=D,X=v9(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let Y=YD(F,"ZodObject")?this.getResponseHeaders(F):F;return Object.assign(Object.assign(Object.assign({},X),{headers:Y}),J)}isReferenceObject(D){return"$ref"in D}getResponseHeaders(D){let $=D._def.shape();return x9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return x9(D,($)=>{if(!$||!yd($.schema))return $;let{schema:F}=$,X=v9($,["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 TM{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 $=md(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 gY{constructor(D){let $=new TM;this.generator=new xY(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class wM{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 cd(D){return"type"in D&&D.type==="webhook"}class yY{constructor(D){this.definitions=D,this.webhookRefs={};let $=new wM;this.generator=new xY(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(cd).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 mY=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},SM=(D)=>{let{groups:$,path:F}=dd(D),X=mY(F);return ld(X,$)},dd=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},ld=(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},Y$={},bM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!Y$[X])if(F[2])Y$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else Y$[X]=[D,F[1],!0];return Y$[X]}return null},a6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},id=(D)=>a6(D,decodeURI),pY=(D)=>{let $=D.url,F=$.indexOf("/",$.indexOf(":")+4),X=F;for(;X<$.length;X++){let J=$.charCodeAt(X);if(J===37){let Y=$.indexOf("?",X),G=$.indexOf("#",X),B=Y===-1?G===-1?void 0:G:G===-1?Y:Math.min(Y,G),H=$.slice(F,B);return id(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var fM=(D)=>{let $=pY(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):$}`}`},B$=(D)=>{if(D.charCodeAt(D.length-1)!==63||!D.includes(":"))return null;let $=D.split("/"),F=[],X="";return $.forEach((J)=>{if(J!==""&&!/\:/.test(J))X+="/"+J;else if(/\:/.test(J))if(/\?/.test(J)){if(F.length===0&&X==="")F.push("/");else F.push(X);let Y=J.replace("?","");X+="/"+Y,F.push(X)}else X+="/"+J}),F.filter((J,Y,G)=>G.indexOf(J)===Y)},uY=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?a6(D,u9):D},kM=(D,$,F)=>{let X;if(!F&&$&&!/[%+]/.test($)){let G=D.indexOf("?",8);if(G===-1)return;if(!D.startsWith($,G+1))G=D.indexOf(`&${$}`,G+1);while(G!==-1){let B=D.charCodeAt(G+$.length+1);if(B===61){let H=G+$.length+2,W=D.indexOf("&",H);return uY(D.slice(H,W===-1?void 0:W))}else if(B==38||isNaN(B))return"";G=D.indexOf(`&${$}`,G+1)}if(X=/[%+]/.test(D),!X)return}let J={};X??=/[%+]/.test(D);let Y=D.indexOf("?",8);while(Y!==-1){let G=D.indexOf("&",Y+1),B=D.indexOf("=",Y);if(B>G&&G!==-1)B=-1;let H=D.slice(Y+1,B===-1?G===-1?void 0:G:B);if(X)H=uY(H);if(Y=G,H==="")continue;let W;if(B===-1)W="";else if(W=D.slice(B+1,G===-1?void 0:G),X)W=uY(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},vM=kM,hM=(D,$)=>{return kM(D,$,!0)},u9=decodeURIComponent;var nd=/^[\w!#$%&'*.^`|~+-]+$/,sd=/^[ !#-:<-[\]-~]*$/,xM=(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)},cY=(D,$)=>{if($&&D.indexOf($)===-1)return{};let F=D.split(";"),X={};for(let J of F){let Y=J.indexOf("=");if(Y===-1)continue;let G=xM(J.substring(0,Y));if($&&$!==G||!nd.test(G))continue;let B=xM(J.substring(Y+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(sd.test(B)){if(X[G]=B.indexOf("%")!==-1?a6(B,u9):B,$)break}}return X};var gM=(D,$,F)=>{let X=D.req.raw.headers.get("Cookie");if(typeof $==="string"){if(!X)return;let Y=$;if(F==="secure")Y="__Secure-"+$;else if(F==="host")Y="__Host-"+$;return cY(X,Y)[Y]}if(!X)return{};return cY(X)};var H$=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 yM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var rd=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,ad=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,od=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,dY=(D,$)=>{return async(F,X)=>{let J={},Y=F.req.header("Content-Type");switch(D){case"json":if(!Y||!rd.test(Y))break;try{J=await F.req.json()}catch{throw new H$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!Y||!(ad.test(Y)||od.test(Y)))break;let B;if(F.req.bodyCache.formData)B=await F.req.bodyCache.formData;else try{let W=await F.req.arrayBuffer();B=await yM(W,Y),F.req.bodyCache.formData=B}catch(W){let _="Malformed FormData request.";throw _+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new H$(400,{message:_})}let H=Object.create(null);B.forEach((W,_)=>{if(_.endsWith("[]"))(H[_]??=[]).push(W);else if(Array.isArray(H[_]))H[_].push(W);else if(Object.hasOwn(H,_))H[_]=[H[_],W];else H[_]=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=gM(F);break}let G=await $(J,F);if(G instanceof Response)return G;return F.req.addValidatedData(D,G),await X()}};function td(D,$,F,X){return dY(D,async(J,Y)=>{let G=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((_)=>[_.toLowerCase(),_]));G=Object.fromEntries(Object.entries(J).map(([_,U])=>[W[_]||_,U]))}let B=X&&X.validationFunction?await X.validationFunction($,G):await $.safeParseAsync(G);if(F){let H=await F({data:G,...B,target:D},Y);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return Y.json(B,400);return B.data})}var T1=td;var lY=(D,$,F)=>{return(X,J)=>{let Y=-1;return G(0);async function G(B){if(B<=Y)throw Error("next() called multiple times");Y=B;let H,W=!1,_;if(D[B])_=D[B][0][0],X.req.routeIndex=B;else _=B===D.length&&J||void 0;if(_)try{H=await _(X,()=>G(B+1))}catch(U){if(U instanceof Error&&$)X.error=U,H=await $(U,X),W=!0;else throw U}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var uM=Symbol();var mM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,Y=(D instanceof W$?D.raw.headers:D.headers).get("Content-Type");if(Y?.startsWith("multipart/form-data")||Y?.startsWith("application/x-www-form-urlencoded"))return ed(D,{all:F,dot:X});return{}};async function ed(D,$){let F=await D.formData();if(F)return Dl(F,$);return{}}function Dl(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else $l(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))Fl(F,X,J),delete F[X]});return F}var $l=(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]},Fl=(D,$,F)=>{if(/(?:^|\.)__proto__\./.test($))return;let X=D,J=$.split(".");J.forEach((Y,G)=>{if(G===J.length-1)X[Y]=F;else{if(!X[Y]||typeof X[Y]!=="object"||Array.isArray(X[Y])||X[Y]instanceof File)X[Y]=Object.create(null);X=X[Y]}})};var pM=(D)=>a6(D,u9),W$=class{raw;#D;#$;routeIndex=0;path;bodyCache={};constructor(D,$="/",F=[[]]){this.raw=D,this.path=$,this.#$=F,this.#D={}}param(D){return D?this.#X(D):this.#G()}#X(D){let $=this.#$[0][this.routeIndex][1][D],F=this.#J($);return F&&/\%/.test(F)?pM(F):F}#G(){let D={},$=Object.keys(this.#$[0][this.routeIndex][1]);for(let F of $){let X=this.#J(this.#$[0][this.routeIndex][1][F]);if(X!==void 0)D[F]=/\%/.test(X)?pM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return vM(this.url,D)}queries(D){return hM(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 mM(this,D)}#F=(D)=>{let{bodyCache:$,raw:F}=this,X=$[D];if(X)return X;let J=Object.keys($)[0];if(J)return $[J].then((Y)=>{if(J==="json")Y=JSON.stringify(Y);return new Response(Y)[D]()});return $[D]=F[D]()};json(){return this.#F("text").then((D)=>JSON.parse(D))}text(){return this.#F("text")}arrayBuffer(){return this.#F("arrayBuffer")}blob(){return this.#F("blob")}formData(){return this.#F("formData")}addValidatedData(D,$){this.#D[D]=$}valid(D){return this.#D[D]}get url(){return this.raw.url}get method(){return this.raw.method}get[uM](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var V$={Stringify:1,BeforeStream:2,Stream:3},Xl=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var m9=async(D,$,F,X,J)=>{if(typeof D==="object"&&!(D instanceof String)){if(!(D instanceof Promise))D=D.toString();if(D instanceof Promise)D=await D}let Y=D.callbacks;if(!Y?.length)return Promise.resolve(D);if(J)J[0]+=D;else J=[D];let G=Promise.all(Y.map((B)=>B({phase:$,buffer:J,context:X}))).then((B)=>Promise.all(B.filter(Boolean).map((H)=>m9(H,$,!1,X,J))).then(()=>J[0]));if(F)return Xl(await G,Y);else return G};var cM="text/plain; charset=UTF-8",iY=(D,$)=>{return{"Content-Type":D,...$}},p9=(D,$)=>new Response(D,$),dM=class{#D;#$;env={};#X;finalized=!1;error;#G;#J;#F;#W;#H;#B;#Y;#_;#U;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#U=$.path,this.#_=$.matchResult}get req(){return this.#$??=new W$(this.#D,this.#U,this.#_),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||=p9(null,{headers:this.#Y??=new Headers})}set res(D){if(this.#F&&D){D=p9(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=p9(this.#F.body,this.#F);let X=this.#F?this.#F.headers:this.#Y??=new Headers;if($===void 0)X.delete(D);else if(F?.append)X.append(D,$);else X.set(D,$)};status=(D)=>{this.#G=D};set=(D,$)=>{this.#X??=new Map,this.#X.set(D,$)};get=(D)=>{return this.#X?this.#X.get(D):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#V(D,$,F){let X=this.#F?new Headers(this.#F.headers):this.#Y??new Headers;if(typeof $==="object"&&"headers"in $){let Y=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[G,B]of Y)if(G.toLowerCase()==="set-cookie")X.append(G,B);else X.set(G,B)}if(F)for(let[Y,G]of Object.entries(F))if(typeof G==="string")X.set(Y,G);else{X.delete(Y);for(let B of G)X.append(Y,B)}let J=typeof $==="number"?$:$?.status??this.#G;return p9(D,{status:J,headers:X})}newResponse=(...D)=>this.#V(...D);body=(D,$,F)=>this.#V(D,$,F);text=(D,$,F)=>{return!this.#Y&&!this.#G&&!$&&!F&&!this.finalized?new Response(D):this.#V(D,$,iY(cM,F))};json=(D,$,F)=>{return this.#V(JSON.stringify(D),$,iY("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#V(J,$,iY("text/html; charset=UTF-8",F));return typeof D==="object"?m9(D,V$.Stringify,!1,{}).then(X):X(D)};redirect=(D,$)=>{let F=String(D);return this.header("Location",!/[^\x00-\xFF]/.test(F)?F:encodeURI(F)),this.newResponse(null,$??302)};notFound=()=>{return this.#B??=()=>p9(),this.#B(this)}};var MD="ALL",lM="all",iM=["get","post","put","delete","options","patch"],_$="Can not add a route since the matcher is already built.",U$=class extends Error{};var nM="__COMPOSED_HANDLER";var Jl=(D)=>{return D.text("404 Not Found",404)},sM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},rM=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...iM,lM].forEach((Y)=>{this[Y]=(G,...B)=>{if(typeof G==="string")this.#D=G;else this.#G(Y,this.#D,G);return B.forEach((H)=>{this.#G(Y,this.#D,H)}),this}}),this.on=(Y,G,...B)=>{for(let H of[G].flat()){this.#D=H;for(let W of[Y].flat())B.map((_)=>{this.#G(W.toUpperCase(),this.#D,_)})}return this},this.use=(Y,...G)=>{if(typeof Y==="string")this.#D=Y;else this.#D="*",G.unshift(Y);return G.forEach((B)=>{this.#G(MD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??pY:fM}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=Jl;errorHandler=sM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let Y;if(F.errorHandler===sM)Y=J.handler;else Y=async(G,B)=>(await lY([],F.errorHandler)(G,()=>J.handler(G,B))).res,Y[nM]=J.handler;X.#G(J.method,J.path,Y)}),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,Y;if(X)if(typeof X==="function")Y=X;else if(Y=X.optionHandler,X.replaceRequest===!1)J=(H)=>H;else J=X.replaceRequest;let G=Y?(H)=>{let W=Y(H);return Array.isArray(W)?W:[W]}:(H)=>{let W=void 0;try{W=H.executionCtx}catch{}return[H.env,W]};J||=(()=>{let H=P2(this._basePath,$),W=H==="/"?0:H.length;return(_)=>{let U=new URL(_.url);return U.pathname=U.pathname.slice(W)||"/",new Request(U,_)}})();let B=async(H,W)=>{let _=await F(J(H.req.raw),...G(H));if(_)return _;await W()};return this.#G(MD,P2($,"*"),B),this}#G($,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 Y=this.getPath($,{env:X}),G=this.router.match(J,Y),B=new dM($,{path:Y,matchResult:G,env:X,executionCtx:F,notFoundHandler:this.#X});if(G[0].length===1){let W;try{W=G[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(_){return this.#J(_,B)}return W instanceof Promise?W.then((_)=>_||(B.finalized?B.res:this.#X(B))).catch((_)=>this.#J(_,B)):W??this.#X(B)}let H=lY(G[0],this.errorHandler,this.#X);return(async()=>{try{let W=await H(B);if(!W.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return W.res}catch(W){return this.#J(W,B)}})()}fetch=($,...F)=>{return this.#F($,F[1],F[0],$.method)};request=($,F,X,J)=>{if($ instanceof Request)return this.fetch(F?new Request($,F):$,X,J);return $=$.toString(),this.fetch(new Request(/^https?:\/\//.test($)?$:`http://localhost${P2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var c9=[];function Q$(D,$){let F=this.buildAllMatchers(),X=(J,Y)=>{let G=F[J]||F[MD],B=G[2][Y];if(B)return B;let H=Y.match(G[0]);if(!H)return[[],c9];let W=H.indexOf("",1);return[G[1][W],H]};return this.match=X,X(D,$)}var A$="[^/]+",d9=".*",l9="(?:|/.*)",w1=Symbol(),Gl=new Set(".\\+*[^]$()");function Yl(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===d9||D===l9)return 1;else if($===d9||$===l9)return-1;if(D===A$)return 1;else if($===A$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var aM=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,Y){if($.length===0){if(this.#D!==void 0)throw w1;if(Y)return;this.#D=F;return}let[G,...B]=$,H=G==="*"?B.length===0?["","",d9]:["","",A$]:G==="/*"?["","",l9]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let _=H[1],U=H[2]||A$;if(_&&H[2]){if(U===".*")throw w1;if(U=U.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(U))throw w1}if(W=this.#X[U],!W){if(Object.keys(this.#X).some((Q)=>Q!==d9&&Q!==l9))throw w1;if(Y)return;if(W=this.#X[U]=new D,_!=="")W.#$=J.varIndex++}if(!Y&&_!=="")X.push([_,W.#$])}else if(W=this.#X[G],!W){if(Object.keys(this.#X).some((_)=>_.length>1&&_!==d9&&_!==l9))throw w1;if(Y)return;W=this.#X[G]=new D}W.insert(B,F,X,J,Y)}buildRegExpStr(){let F=Object.keys(this.#X).sort(Yl).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:Gl.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 oM=class{#D={varIndex:0};#$=new aM;insert(D,$,F){let X=[],J=[];for(let G=0;;){let B=!1;if(D=D.replace(/\{[^}]+\}/g,(H)=>{let W=`@\\${G}`;return J[G]=[W,H],G++,B=!0,W}),!B)break}let Y=D.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let G=J.length-1;G>=0;G--){let[B]=J[G];for(let H=Y.length-1;H>=0;H--)if(Y[H].indexOf(B)!==-1){Y[H]=Y[H].replace(B,J[G][1]);break}}return this.#$.insert(Y,$,X,this.#D,F),X}buildRegExp(){let D=this.#$.buildRegExpStr();if(D==="")return[/^$/,[],[]];let $=0,F=[],X=[];return D=D.replace(/#(\d+)|@(\d+)|\.\*\$/g,(J,Y,G)=>{if(Y!==void 0)return F[++$]=Number(Y),"$()";if(G!==void 0)return X[Number(G)]=++$,"";return""}),[new RegExp(`^${D}`),F,X]}};var Bl=[/^$/,[],Object.create(null)],tM=Object.create(null);function eM(D){return tM[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function Hl(){tM=Object.create(null)}function Wl(D){let $=new oM,F=[];if(D.length===0)return Bl;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,_],[U,Q])=>W?1:U?-1:_.length-Q.length),J=Object.create(null);for(let W=0,_=-1,U=X.length;W<U;W++){let[Q,A,E]=X[W];if(Q)J[A]=[E.map(([K])=>[K,Object.create(null)]),c9];else _++;let C;try{C=$.insert(A,_,Q)}catch(K){throw K===w1?new U$(A):K}if(Q)continue;F[_]=E.map(([K,R])=>{let q=Object.create(null);R-=1;for(;R>=0;R--){let[P,b]=C[R];q[P]=b}return[K,q]})}let[Y,G,B]=$.buildRegExp();for(let W=0,_=F.length;W<_;W++)for(let U=0,Q=F[W].length;U<Q;U++){let A=F[W][U]?.[1];if(!A)continue;let E=Object.keys(A);for(let C=0,K=E.length;C<K;C++)A[E[C]]=B[A[E[C]]]}let H=[];for(let W in G)H[W]=F[G[W]];return[Y,H,J]}function o6(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(eM(F).test($))return[...D[F]];return}var K$=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[MD]:Object.create(null)},this.#$={[MD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(_$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[MD]).forEach((H)=>{B[D][H]=[...B[MD][H]]})});if($==="/*")$="*";let Y=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=eM($);if(D===MD)Object.keys(X).forEach((H)=>{X[H][$]||=o6(X[H],$)||o6(X[MD],$)||[]});else X[D][$]||=o6(X[D],$)||o6(X[MD],$)||[];Object.keys(X).forEach((H)=>{if(D===MD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,Y])})}),Object.keys(J).forEach((H)=>{if(D===MD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,Y]))});return}let G=B$($)||[$];for(let B=0,H=G.length;B<H;B++){let W=G[B];Object.keys(J).forEach((_)=>{if(D===MD||D===_)J[_][W]||=[...o6(X[_],W)||o6(X[MD],W)||[]],J[_][W].push([F,Y-H+B+1])})}}match=Q$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,Hl(),D}#X(D){let $=[],F=D===MD;if([this.#D,this.#$].forEach((X)=>{let J=X[D]?Object.keys(X[D]).map((Y)=>[Y,X[D][Y]]):[];if(J.length!==0)F||=!0,$.push(...J);else if(D!==MD)$.push(...Object.keys(X[MD]).map((Y)=>[Y,X[MD][Y]]))}),!F)return null;else return Wl($)}};var Vl=class{name="PreparedRegExpRouter";#D;#$;constructor(D,$){this.#D=D,this.#$=$}#X(D,$){let F=this.#D[D];F[1].forEach((X)=>X&&X.push($)),Object.values(F[2]).forEach((X)=>X[0].push($))}#G(D,$,F,X,J){let Y=this.#D[D];if(!J)Y[2][$][0].push([F,{}]);else X.forEach((G)=>{if(typeof G==="number")Y[1][G].push([F,J]);else Y[2][G||$][0].push([F,J])})}add(D,$,F){if(!this.#D[D]){let J=this.#D[MD],Y={};for(let G in J[2])Y[G]=[J[2][G][0].slice(),c9];this.#D[D]=[J[0],J[1].map((G)=>Array.isArray(G)?G.slice():0),Y]}if($==="/*"||$==="*"){let J=[F,{}];if(D===MD)for(let Y in this.#D)this.#X(Y,J);else this.#X(D,J);return}let X=this.#$[$];if(!X)throw Error(`Path ${$} is not registered`);for(let[J,Y]of X)if(D===MD)for(let G in this.#D)this.#G(G,$,F,J,Y);else this.#G(D,$,F,J,Y)}buildAllMatchers(){return this.#D}match=Q$};var nY=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(_$);this.#$.push([D,$,F])}match(D,$){if(!this.#$)throw Error("Fatal error");let F=this.#D,X=this.#$,J=F.length,Y=0,G;for(;Y<J;Y++){let B=F[Y];try{for(let H=0,W=X.length;H<W;H++)B.add(...X[H]);G=B.match(D,$)}catch(H){if(H instanceof U$)continue;throw H}this.match=B.match.bind(B),this.#D=[B],this.#$=void 0;break}if(Y===J)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,G}get activeRouter(){if(this.#$||this.#D.length!==1)throw Error("No active router has been determined yet.");return this.#D[0]}};var i9=Object.create(null),_l=(D)=>{for(let $ in D)return!0;return!1},DZ=class D{#D;#$;#X;#G=0;#J=i9;constructor($,F,X){if(this.#$=X||Object.create(null),this.#D=[],$&&F){let J=Object.create(null);J[$]={handler:F,possibleKeys:[],score:0},this.#D=[J]}this.#X=[]}insert($,F,X){this.#G=++this.#G;let J=this,Y=SM(F),G=[];for(let B=0,H=Y.length;B<H;B++){let W=Y[B],_=Y[B+1],U=bM(W,_),Q=Array.isArray(U)?U[0]:W;if(Q in J.#$){if(J=J.#$[Q],U)G.push(U[1]);continue}if(J.#$[Q]=new D,U)J.#X.push(U),G.push(U[1]);J=J.#$[Q]}return J.#D.push({[$]:{handler:X,possibleKeys:G.filter((B,H,W)=>W.indexOf(B)===H),score:this.#G}}),J}#F($,F,X,J,Y){for(let G=0,B=F.#D.length;G<B;G++){let H=F.#D[G],W=H[X]||H[MD],_={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==i9||Y&&Y!==i9)for(let U=0,Q=W.possibleKeys.length;U<Q;U++){let A=W.possibleKeys[U],E=_[W.score];W.params[A]=Y?.[A]&&!E?Y[A]:J[A]??Y?.[A],_[W.score]=!0}}}}search($,F){let X=[];this.#J=i9;let Y=[this],G=mY(F),B=[],H=G.length,W=null;for(let _=0;_<H;_++){let U=G[_],Q=_===H-1,A=[];for(let C=0,K=Y.length;C<K;C++){let R=Y[C],q=R.#$[U];if(q)if(q.#J=R.#J,Q){if(q.#$["*"])this.#F(X,q.#$["*"],$,R.#J);this.#F(X,q,$,R.#J)}else A.push(q);for(let P=0,b=R.#X.length;P<b;P++){let T=R.#X[P],L=R.#J===i9?{}:{...R.#J};if(T==="*"){let VD=R.#$["*"];if(VD)this.#F(X,VD,$,R.#J),VD.#J=L,A.push(VD);continue}let[w,z,s]=T;if(!U&&!(s instanceof RegExp))continue;let QD=R.#$[w];if(s instanceof RegExp){if(W===null){W=Array(H);let rD=F[0]==="/"?1:0;for(let N2=0;N2<H;N2++)W[N2]=rD,rD+=G[N2].length+1}let VD=F.substring(W[_]),$D=s.exec(VD);if($D){if(L[z]=$D[0],this.#F(X,QD,$,R.#J,L),_l(QD.#$)){QD.#J=L;let rD=$D[0].match(/\//)?.length??0;(B[rD]||=[]).push(QD)}continue}}if(s===!0||s.test(U))if(L[z]=U,Q){if(this.#F(X,QD,$,L,R.#J),QD.#$["*"])this.#F(X,QD.#$["*"],$,L,R.#J)}else QD.#J=L,A.push(QD)}}let E=B.shift();Y=E?A.concat(E):A}if(X.length>1)X.sort((_,U)=>{return _.score-U.score});return[X.map(({handler:_,params:U})=>[_,U])]}};var sY=class{name="TrieRouter";#D;constructor(){this.#D=new DZ}add(D,$,F){let X=B$($);if(X){for(let J=0,Y=X.length;J<Y;J++)this.#D.insert(D,X[J],F);return}this.#D.insert(D,$,F)}match(D,$){return this.#D.search(D,$)}};var rY=class extends rM{constructor(D={}){super(D);this.router=D.router??new nY({routers:[new K$,new sY]})}};yD();var o0=class D extends rY{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new hY,this.defaultHook=$?.defaultHook}openapi=({middleware:$,hide:F,...X},J,Y=this.defaultHook)=>{if(!F)this.openAPIRegistry.registerPath(X);let G=[];if(X.request?.query){let W=T1("query",X.request.query,Y);G.push(W)}if(X.request?.params){let W=T1("param",X.request.params,Y);G.push(W)}if(X.request?.headers){let W=T1("header",X.request.headers,Y);G.push(W)}if(X.request?.cookies){let W=T1("cookie",X.request.cookies,Y);G.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let _=B[W].schema;if(!(_ instanceof GD))continue;if(FZ(W)){let U=T1("json",_,Y);if(X.request?.body?.required)G.push(U);else{let Q=async(A,E)=>{if(A.req.header("content-type")){if(FZ(A.req.header("content-type")))return await U(A,E)}A.req.addValidatedData("json",{}),await E()};G.push(Q)}}if(XZ(W)){let U=T1("form",_,Y);if(X.request?.body?.required)G.push(U);else{let Q=async(A,E)=>{if(A.req.header("content-type")){if(XZ(A.req.header("content-type")))return await U(A,E)}A.req.addValidatedData("form",{}),await E()};G.push(Q)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...G,J),this};getOpenAPIDocument=($)=>{let X=new gY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?$Z(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new yY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?$Z(X,this._basePath):X};doc=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPIDocument(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};doc31=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPI31Document(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};route($,F){let X=$.replaceAll(/:([^\/]+)/g,"{$1}");if(super.route($,F),!(F instanceof D))return this;return F.openAPIRegistry.definitions.forEach((J)=>{switch(J.type){case"component":return this.openAPIRegistry.registerComponent(J.componentType,J.name,J.component);case"route":{this.openAPIRegistry.registerPath({...J.route,path: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})}};_M(V);function $Z(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[P2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function FZ(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function XZ(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}yD();var JZ=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],Ul=JZ.map(([D])=>D);function aY(D){if(!Ul.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"),JZ.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var Ql=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),Al=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"]),Kl=V.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),tY=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()}),El=V.object({basePath:V.string()}),YZ=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:Al.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:tY.optional(),theme:Ql.optional().default("default").catch("default"),_integration:Kl.optional()}),GZ="https://api.scalar.com/request-proxy",oY="https://proxy.scalar.com",BZ=YZ.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:El.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=BZ.merge(V.object({spec:V.object({sources:V.array(tY)})})),HZ=(D)=>{let $={...D};if($.customCss)$.customCss=aY($.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===GZ)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${GZ}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${oY}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${oY}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=oY;return $},eY=BZ.transform(HZ),Rl=Cl.transform(HZ);yD();var DB=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,Y=DB.parse({cdn:F,pageTitle:X,customTheme:$}),G=eY.parse(J);return`
|
|
340
|
+
`);let $="<workerId>",F=e0($),X=r9($),J=WM.join(D.home,".env"),Y=WM.join(D.home,"worker.db"),G=[["AGENT.md",q$($)],["SOUL.md",N$($)],["USER.md",P$($)],["MEMORY.md",Z$($)],["ROLLUP.md",UB($)],["mcp.json",QB($)],["worker.db",Y],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of G){let _=md(H)?"\u2713":"\xB7";VM.stdout.write(` ${_} ${B.padEnd(14)} ${H}
|
|
341
|
+
`)}return 0}import s9 from"process";function h9(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 YD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function pd(D){return"_def"in D}function k9(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 QM(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,Y){var G,B,H,W,_,U;let Q=typeof J==="string"?Y:J,A=Q!==null&&Q!==void 0?Q:{},{param:O}=A,E=h9(A,["param"]),K=Object.assign(Object.assign({},(G=this._def.openapi)===null||G===void 0?void 0:G._internal),typeof J==="string"?{refId:J}:void 0),R=Object.assign(Object.assign(Object.assign({},(B=this._def.openapi)===null||B===void 0?void 0:B.metadata),E),((W=(H=this._def.openapi)===null||H===void 0?void 0:H.metadata)===null||W===void 0?void 0:W.param)||O?{param:Object.assign(Object.assign({},(U=(_=this._def.openapi)===null||_===void 0?void 0:_.metadata)===null||U===void 0?void 0:U.param),O)}: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(R).length>0?{metadata:R}:void 0)}));if(YD(this,"ZodObject")){let N=this.extend;q.extend=function(...b){var T,L,w,z,s,QD,VD;let $D=N.apply(this,b);return $D._def.openapi={_internal:{extendedFrom:((L=(T=this._def.openapi)===null||T===void 0?void 0:T._internal)===null||L===void 0?void 0:L.refId)?{refId:(z=(w=this._def.openapi)===null||w===void 0?void 0:w._internal)===null||z===void 0?void 0:z.refId,schema:this}:(QD=(s=this._def.openapi)===null||s===void 0?void 0:s._internal)===null||QD===void 0?void 0:QD.extendedFrom},metadata:(VD=$D._def.openapi)===null||VD===void 0?void 0:VD.metadata},$D}}return q},k9(D,"optional"),k9(D,"nullable"),k9(D,"default"),k9(D,"transform"),k9(D,"refine");let $=D.ZodObject.prototype.deepPartial;D.ZodObject.prototype.deepPartial=function(){let J=this._def.shape(),Y=$.apply(this),G=Y._def.shape();return Object.entries(G).forEach(([B,H])=>{var W,_;H._def.openapi=(_=(W=J[B])===null||W===void 0?void 0:W._def)===null||_===void 0?void 0:_.openapi}),Y._def.openapi=void 0,Y};let F=D.ZodObject.prototype.pick;D.ZodObject.prototype.pick=function(...J){let Y=F.apply(this,J);return Y._def.openapi=void 0,Y};let X=D.ZodObject.prototype.omit;D.ZodObject.prototype.omit=function(...J){let Y=X.apply(this,J);return Y._def.openapi=void 0,Y}}function Y$(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)=>Y$(D[X],$[X]))}class AM{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)=>Y$(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>Y$(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 x9(D){return D===void 0}function g9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function cd(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((Y)=>Y===X))F[X]=J}),F}function r6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function UM(D){return D.filter(($)=>!x9($))}var hY=Y$;function dd(D){let $=new AM;return D.forEach((F)=>$.put(F)),[...$.values()]}function KM(D){return typeof D==="string"}class xY{constructor(D){this.parents=D,this._definitions=[]}get definitions(){var D,$;return[...($=(D=this.parents)===null||D===void 0?void 0:D.flatMap((X)=>X.definitions))!==null&&$!==void 0?$:[],...this._definitions]}register(D,$){let F=this.schemaWithRefId(D,$);return this._definitions.push({type:"schema",schema:F}),F}registerParameter(D,$){var F,X,J;let Y=this.schemaWithRefId(D,$),G=(F=Y._def.openapi)===null||F===void 0?void 0:F.metadata,B=Y.openapi(Object.assign(Object.assign({},G),{param:Object.assign(Object.assign({},G===null||G===void 0?void 0:G.param),{name:(J=(X=G===null||G===void 0?void 0:G.param)===null||X===void 0?void 0:X.name)!==null&&J!==void 0?J:D})}));return this._definitions.push({type:"parameter",schema:B}),B}registerPath(D){this._definitions.push({type:"route",route:D})}registerWebhook(D){this._definitions.push({type:"webhook",webhook:D})}registerComponent(D,$,F){return this._definitions.push({type:"component",componentType:D,name:$,component:F}),{name:$,ref:{$ref:`#/components/${D}/${$}`}}}schemaWithRefId(D,$){return $.openapi(D)}}class u9{constructor(D){this.message=D}}class s6 extends u9{constructor(D,$){super(D);this.data=$}}class y9 extends u9{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 v9(D,$){try{return D()}catch(F){if(F instanceof y9)throw new y9(Object.assign(Object.assign({},F.data),$));throw F}}class EM extends u9{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,Y=($=D.description)!==null&&$!==void 0?$:X.description;return{_internal:J===null||J===void 0?void 0:J._internal,metadata:Object.assign(Object.assign({},J===null||J===void 0?void 0:J.metadata),{param:Object.assign({description:Y},(F=J===null||J===void 0?void 0:J.metadata)===null||F===void 0?void 0:F.param)})}}static buildSchemaMetadata(D){return r6(cd(D,["param"]),x9)}static buildParameterMetadata(D){return r6(D,x9)}static applySchemaMetadata(D,$){return r6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),x9)}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($&&YD(D,$))return D;if(YD(D,"ZodOptional")||YD(D,"ZodNullable")||YD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(YD(D,"ZodDefault")||YD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(YD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(YD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class OM{transform(D,$,F){var X,J;let Y=D._def.type;return Object.assign(Object.assign({},$("array")),{items:F(Y),minItems:(X=D._def.minLength)===null||X===void 0?void 0:X.value,maxItems:(J=D._def.maxLength)===null||J===void 0?void 0:J.value})}}class RM{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class CM{transform(D,$,F,X,J){let Y=[...D.options.values()],G=Y.map(X);if($)return{oneOf:F(G,$)};return{oneOf:G,discriminator:this.mapDiscriminator(Y,D.discriminator,J)}}mapDiscriminator(D,$,F){if(D.some((J)=>PD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var Y;let G=PD.getRefId(J),B=(Y=J.shape)===null||Y===void 0?void 0:Y[$];if(YD(B,"ZodEnum")||YD(B,"ZodNativeEnum")){Object.values(B.enum).filter(KM).forEach((_)=>{X[_]=F(G)});return}let H=B===null||B===void 0?void 0:B._def.value;if(typeof H!=="string")throw Error(`Discriminator ${$} could not be found in one of the values of a discriminated union`);X[H]=F(G)}),{propertyName:$,mapping:X}}}class MM{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class ZM{transform(D,$,F,X){let Y={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([Y],$)};return Y}flattenIntersectionTypes(D){if(!YD(D,"ZodIntersection"))return[D];let $=this.flattenIntersectionTypes(D._def.left),F=this.flattenIntersectionTypes(D._def.right);return[...$,...F]}}class qM{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function ld(D){let F=Object.keys(D).filter((Y)=>typeof D[D[Y]]!=="number").map((Y)=>D[Y]),X=F.filter((Y)=>typeof Y==="number").length,J=X===0?"string":X===F.length?"numeric":"mixed";return{values:F,type:J}}class NM{transform(D,$){let{type:F,values:X}=ld(D._def.values);if(F==="mixed")throw new u9("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 PM{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class LM{transform(D,$,F,X){var J;let Y=(J=PD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,G=this.requiredKeysOf(D),B=g9(D._def.shape(),X);if(!Y)return Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{properties:B,default:$}),G.length>0?{required:G}:{}),this.generateAdditionalProperties(D,X));let H=Y.schema;X(H);let W=this.requiredKeysOf(H),_=g9(H===null||H===void 0?void 0:H._def.shape(),X),U=Object.fromEntries(Object.entries(B).filter(([O,E])=>{return!hY(_[O],E)})),Q=G.filter((O)=>!W.includes(O)),A=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:U}),Q.length>0?{required:Q}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${Y.refId}`},A]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(YD(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 jM{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,Y=F(X);if(YD(J,"ZodEnum")||YD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(KM).reduce((H,W)=>Object.assign(Object.assign({},H),{[W]:Y}),{});return Object.assign(Object.assign({},$("object")),{properties:B})}return Object.assign(Object.assign({},$("object")),{additionalProperties:Y})}}class zM{transform(D,$){var F,X,J;let Y=this.getZodStringCheck(D,"regex"),G=(F=this.getZodStringCheck(D,"length"))===null||F===void 0?void 0:F.value,B=Number.isFinite(D.minLength)?(X=D.minLength)!==null&&X!==void 0?X:void 0:void 0,H=Number.isFinite(D.maxLength)?(J=D.maxLength)!==null&&J!==void 0?J:void 0:void 0;return Object.assign(Object.assign({},$("string")),{minLength:G!==null&&G!==void 0?G:B,maxLength:G!==null&&G!==void 0?G:H,format:this.mapStringFormat(D),pattern:Y===null||Y===void 0?void 0:Y.regex.source})}mapStringFormat(D){if(D.isUUID)return"uuid";if(D.isEmail)return"email";if(D.isURL)return"uri";if(D.isDate)return"date";if(D.isDatetime)return"date-time";if(D.isCUID)return"cuid";if(D.isCUID2)return"cuid2";if(D.isULID)return"ulid";if(D.isIP)return"ip";if(D.isEmoji)return"emoji";return}getZodStringCheck(D,$){return D._def.checks.find((F)=>{return F.kind===$})}}class IM{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 TM{transform(D,$,F){let J=this.flattenUnionTypes(D).map((Y)=>{let G=this.unwrapNullable(Y);return F(G)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!YD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(YD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class wM{constructor(D){this.versionSpecifics=D,this.objectTransformer=new LM,this.stringTransformer=new zM,this.numberTransformer=new PM,this.bigIntTransformer=new RM,this.literalTransformer=new qM,this.enumTransformer=new MM,this.nativeEnumTransformer=new NM,this.arrayTransformer=new OM,this.unionTransformer=new TM,this.discriminatedUnionTransformer=new CM,this.intersectionTransformer=new ZM,this.recordTransformer=new jM,this.tupleTransformer=new IM(D)}transform(D,$,F,X,J){if(YD(D,"ZodNull"))return this.versionSpecifics.nullType;if(YD(D,"ZodUnknown")||YD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(YD(D,"ZodObject"))return this.objectTransformer.transform(D,J,(G)=>this.versionSpecifics.mapNullableType(G,$),F);let Y=this.transformSchemaWithoutDefault(D,$,F,X);return Object.assign(Object.assign({},Y),{default:J})}transformSchemaWithoutDefault(D,$,F,X){if(YD(D,"ZodUnknown")||YD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(YD(D,"ZodString"))return this.stringTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodNumber"))return this.numberTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),(Y)=>this.versionSpecifics.getNumberChecks(Y));if(YD(D,"ZodBigInt"))return this.bigIntTransformer.transform((Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(YD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodEnum"))return this.enumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(YD(D,"ZodArray"))return this.arrayTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodUnion"))return this.unionTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(YD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F,X);if(YD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(YD(D,"ZodRecord"))return this.recordTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(YD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=PD.getRefId(D);throw new EM({currentSchema:D._def,schemaName:J})}}class gY{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new wM($),this.sortDefinitions()}generateDocumentData(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents(),paths:this.pathRefs}}generateComponents(){return this.definitions.forEach((D)=>this.generateSingle(D)),{components:this.buildComponents()}}buildComponents(){var D,$;let F={};return this.rawComponents.forEach(({componentType:X,name:J,component:Y})=>{var G;(G=F[X])!==null&&G!==void 0||(F[X]={}),F[X][J]=Y}),Object.assign(Object.assign({},F),{schemas:Object.assign(Object.assign({},(D=F.schemas)!==null&&D!==void 0?D:{}),this.schemaRefs),parameters:Object.assign(Object.assign({},($=F.parameters)!==null&&$!==void 0?$:{}),this.paramRefs)})}sortDefinitions(){let D=["schema","parameter","component","route"];this.definitions.sort(($,F)=>{if(!("type"in $)){if(!("type"in F))return 0;return-1}if(!("type"in F))return 1;let X=D.findIndex((Y)=>Y===$.type),J=D.findIndex((Y)=>Y===F.type);return X-J})}generateSingle(D){if(!("type"in D)){this.generateSchemaWithRef(D);return}switch(D.type){case"parameter":this.generateParameterDefinition(D.schema);return;case"schema":this.generateSchemaWithRef(D.schema);return;case"route":this.generateSingleRoute(D.route);return;case"component":this.rawComponents.push(D);return}}generateParameterDefinition(D){let $=PD.getRefId(D),F=this.generateParameter(D);if($)this.paramRefs[$]=F;return F}getParameterRef(D,$){var F,X,J,Y,G;let B=(F=D===null||D===void 0?void 0:D.metadata)===null||F===void 0?void 0:F.param,H=((X=D===null||D===void 0?void 0:D._internal)===null||X===void 0?void 0:X.refId)?this.paramRefs[(J=D._internal)===null||J===void 0?void 0:J.refId]:void 0;if(!((Y=D===null||D===void 0?void 0:D._internal)===null||Y===void 0?void 0:Y.refId)||!H)return;if(B&&H.in!==B.in||($===null||$===void 0?void 0:$.in)&&H.in!==$.in)throw new s6(`Conflicting location for parameter ${H.name}`,{key:"in",values:UM([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 s6("Conflicting names for parameter",{key:"name",values:UM([H.name,$===null||$===void 0?void 0:$.name,B===null||B===void 0?void 0:B.name])});return{$ref:`#/components/parameters/${(G=D._internal)===null||G===void 0?void 0:G.refId}`}}generateInlineParameters(D,$){var F;let X=PD.getMetadata(D),J=(F=X===null||X===void 0?void 0:X.metadata)===null||F===void 0?void 0:F.param,Y=this.getParameterRef(X,{in:$});if(Y)return[Y];if(YD(D,"ZodObject")){let G=D._def.shape();return Object.entries(G).map(([H,W])=>{var _,U;let Q=PD.getMetadata(W),A=this.getParameterRef(Q,{in:$,name:H});if(A)return A;let O=(_=Q===null||Q===void 0?void 0:Q.metadata)===null||_===void 0?void 0:_.param;if((O===null||O===void 0?void 0:O.name)&&O.name!==H)throw new s6("Conflicting names for parameter",{key:"name",values:[H,O.name]});if((O===null||O===void 0?void 0:O.in)&&O.in!==$)throw new s6(`Conflicting location for parameter ${(U=O.name)!==null&&U!==void 0?U:H}`,{key:"in",values:[$,O.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new s6(`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(),Y=this.generateSchemaWithRef(D);return Object.assign({schema:Y,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,Y=X===null||X===void 0?void 0:X.in;if(!J)throw new y9({missingField:"name"});if(!Y)throw new y9({missingField:"in",paramName:J});let G=this.generateSimpleParameter(D);return Object.assign(Object.assign({},G),{in:Y,name:J})}generateSchemaWithMetadata(D){var $;let F=PD.unwrapChained(D),X=PD.getMetadata(D),J=PD.getDefaultValue(D),Y=(($=X===null||X===void 0?void 0:X.metadata)===null||$===void 0?void 0:$.type)?{type:X===null||X===void 0?void 0:X.metadata.type}:this.toOpenAPISchema(F,D.isNullable(),J);return(X===null||X===void 0?void 0:X.metadata)?PD.applySchemaMetadata(Y,X.metadata):r6(Y,x9)}constructReferencedOpenAPISchema(D){var $;let F=PD.getMetadata(D),X=PD.unwrapChained(D),J=PD.getDefaultValue(D),Y=D.isNullable();if(($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.type)return this.versionSpecifics.mapNullableType(F.metadata.type,Y);return this.toOpenAPISchema(X,Y,J)}generateSimpleSchema(D){var $;let F=PD.getMetadata(D),X=PD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],Y={$ref:this.generateSchemaRef(X)},G=r6(PD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,_)=>W===void 0||hY(W,J[_]));if(G.type)return{allOf:[Y,G]};let B=r6(this.constructReferencedOpenAPISchema(D),(W,_)=>W===void 0||hY(W,J[_])),H=PD.applySchemaMetadata(B,G);if(Object.keys(H).length>0)return{allOf:[Y,H]};return Y}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=h9(D,["content"]),X=this.getBodyContent($);return Object.assign(Object.assign({},F),{content:X})}getParameters(D){if(!D)return[];let{headers:$}=D,F=this.cleanParameter(D.query),X=this.cleanParameter(D.params),J=this.cleanParameter(D.cookies),Y=v9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),G=v9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=v9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=v9(()=>{if(Array.isArray($))return $.flatMap((_)=>this.generateInlineParameters(_,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...G,...Y,...H,...B]}cleanParameter(D){if(!D)return;return YD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,Y=h9(D,["method","path","request","responses"]),G=g9(J,(_)=>{return this.getResponse(_)}),B=v9(()=>this.getParameters(X),{route:`${$} ${F}`}),H=this.getRequestBody(X===null||X===void 0?void 0:X.body);return{[$]:Object.assign(Object.assign(Object.assign(Object.assign({},Y),B.length>0?{parameters:[...Y.parameters||[],...B]}:{}),H?{requestBody:H}:{}),{responses:G})}}generateSingleRoute(D){let $=this.generatePath(D);return this.pathRefs[D.path]=Object.assign(Object.assign({},this.pathRefs[D.path]),$),$}getResponse(D){if(this.isReferenceObject(D))return D;let{content:$,headers:F}=D,X=h9(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let Y=YD(F,"ZodObject")?this.getResponseHeaders(F):F;return Object.assign(Object.assign(Object.assign({},X),{headers:Y}),J)}isReferenceObject(D){return"$ref"in D}getResponseHeaders(D){let $=D._def.shape();return g9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return g9(D,($)=>{if(!$||!pd($.schema))return $;let{schema:F}=$,X=h9($,["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 SM{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 $=dd(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 yY{constructor(D){let $=new SM;this.generator=new gY(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class bM{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 id(D){return"type"in D&&D.type==="webhook"}class uY{constructor(D){this.definitions=D,this.webhookRefs={};let $=new bM;this.generator=new gY(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(id).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 pY=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},fM=(D)=>{let{groups:$,path:F}=nd(D),X=pY(F);return sd(X,$)},nd=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},sd=(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},B$={},kM=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!B$[X])if(F[2])B$[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else B$[X]=[D,F[1],!0];return B$[X]}return null},a6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},rd=(D)=>a6(D,decodeURI),cY=(D)=>{let $=D.url,F=$.indexOf("/",$.indexOf(":")+4),X=F;for(;X<$.length;X++){let J=$.charCodeAt(X);if(J===37){let Y=$.indexOf("?",X),G=$.indexOf("#",X),B=Y===-1?G===-1?void 0:G:G===-1?Y:Math.min(Y,G),H=$.slice(F,B);return rd(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var vM=(D)=>{let $=cY(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},q2=(D,$,...F)=>{if(F.length)$=q2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},H$=(D)=>{if(D.charCodeAt(D.length-1)!==63||!D.includes(":"))return null;let $=D.split("/"),F=[],X="";return $.forEach((J)=>{if(J!==""&&!/\:/.test(J))X+="/"+J;else if(/\:/.test(J))if(/\?/.test(J)){if(F.length===0&&X==="")F.push("/");else F.push(X);let Y=J.replace("?","");X+="/"+Y,F.push(X)}else X+="/"+J}),F.filter((J,Y,G)=>G.indexOf(J)===Y)},mY=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?a6(D,m9):D},hM=(D,$,F)=>{let X;if(!F&&$&&!/[%+]/.test($)){let G=D.indexOf("?",8);if(G===-1)return;if(!D.startsWith($,G+1))G=D.indexOf(`&${$}`,G+1);while(G!==-1){let B=D.charCodeAt(G+$.length+1);if(B===61){let H=G+$.length+2,W=D.indexOf("&",H);return mY(D.slice(H,W===-1?void 0:W))}else if(B==38||isNaN(B))return"";G=D.indexOf(`&${$}`,G+1)}if(X=/[%+]/.test(D),!X)return}let J={};X??=/[%+]/.test(D);let Y=D.indexOf("?",8);while(Y!==-1){let G=D.indexOf("&",Y+1),B=D.indexOf("=",Y);if(B>G&&G!==-1)B=-1;let H=D.slice(Y+1,B===-1?G===-1?void 0:G:B);if(X)H=mY(H);if(Y=G,H==="")continue;let W;if(B===-1)W="";else if(W=D.slice(B+1,G===-1?void 0:G),X)W=mY(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},xM=hM,gM=(D,$)=>{return hM(D,$,!0)},m9=decodeURIComponent;var ad=/^[\w!#$%&'*.^`|~+-]+$/,od=/^[ !#-:<-[\]-~]*$/,yM=(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)},dY=(D,$)=>{if($&&D.indexOf($)===-1)return{};let F=D.split(";"),X={};for(let J of F){let Y=J.indexOf("=");if(Y===-1)continue;let G=yM(J.substring(0,Y));if($&&$!==G||!ad.test(G))continue;let B=yM(J.substring(Y+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(od.test(B)){if(X[G]=B.indexOf("%")!==-1?a6(B,m9):B,$)break}}return X};var uM=(D,$,F)=>{let X=D.req.raw.headers.get("Cookie");if(typeof $==="string"){if(!X)return;let Y=$;if(F==="secure")Y="__Secure-"+$;else if(F==="host")Y="__Host-"+$;return dY(X,Y)[Y]}if(!X)return{};return dY(X)};var W$=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 mM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var td=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,ed=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,Dl=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,lY=(D,$)=>{return async(F,X)=>{let J={},Y=F.req.header("Content-Type");switch(D){case"json":if(!Y||!td.test(Y))break;try{J=await F.req.json()}catch{throw new W$(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!Y||!(ed.test(Y)||Dl.test(Y)))break;let B;if(F.req.bodyCache.formData)B=await F.req.bodyCache.formData;else try{let W=await F.req.arrayBuffer();B=await mM(W,Y),F.req.bodyCache.formData=B}catch(W){let _="Malformed FormData request.";throw _+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new W$(400,{message:_})}let H=Object.create(null);B.forEach((W,_)=>{if(_.endsWith("[]"))(H[_]??=[]).push(W);else if(Array.isArray(H[_]))H[_].push(W);else if(Object.hasOwn(H,_))H[_]=[H[_],W];else H[_]=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=uM(F);break}let G=await $(J,F);if(G instanceof Response)return G;return F.req.addValidatedData(D,G),await X()}};function $l(D,$,F,X){return lY(D,async(J,Y)=>{let G=J;if(D==="header"&&"_def"in $||D==="header"&&"_zod"in $){let H=Object.keys("in"in $?$.in.shape:$.shape),W=Object.fromEntries(H.map((_)=>[_.toLowerCase(),_]));G=Object.fromEntries(Object.entries(J).map(([_,U])=>[W[_]||_,U]))}let B=X&&X.validationFunction?await X.validationFunction($,G):await $.safeParseAsync(G);if(F){let H=await F({data:G,...B,target:D},Y);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return Y.json(B,400);return B.data})}var T1=$l;var iY=(D,$,F)=>{return(X,J)=>{let Y=-1;return G(0);async function G(B){if(B<=Y)throw Error("next() called multiple times");Y=B;let H,W=!1,_;if(D[B])_=D[B][0][0],X.req.routeIndex=B;else _=B===D.length&&J||void 0;if(_)try{H=await _(X,()=>G(B+1))}catch(U){if(U instanceof Error&&$)X.error=U,H=await $(U,X),W=!0;else throw U}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var pM=Symbol();var cM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,Y=(D instanceof V$?D.raw.headers:D.headers).get("Content-Type");if(Y?.startsWith("multipart/form-data")||Y?.startsWith("application/x-www-form-urlencoded"))return Fl(D,{all:F,dot:X});return{}};async function Fl(D,$){let F=await D.formData();if(F)return Xl(F,$);return{}}function Xl(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Jl(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))Gl(F,X,J),delete F[X]});return F}var Jl=(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]},Gl=(D,$,F)=>{if(/(?:^|\.)__proto__\./.test($))return;let X=D,J=$.split(".");J.forEach((Y,G)=>{if(G===J.length-1)X[Y]=F;else{if(!X[Y]||typeof X[Y]!=="object"||Array.isArray(X[Y])||X[Y]instanceof File)X[Y]=Object.create(null);X=X[Y]}})};var dM=(D)=>a6(D,m9),V$=class{raw;#D;#$;routeIndex=0;path;bodyCache={};constructor(D,$="/",F=[[]]){this.raw=D,this.path=$,this.#$=F,this.#D={}}param(D){return D?this.#X(D):this.#G()}#X(D){let $=this.#$[0][this.routeIndex][1][D],F=this.#J($);return F&&/\%/.test(F)?dM(F):F}#G(){let D={},$=Object.keys(this.#$[0][this.routeIndex][1]);for(let F of $){let X=this.#J(this.#$[0][this.routeIndex][1][F]);if(X!==void 0)D[F]=/\%/.test(X)?dM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return xM(this.url,D)}queries(D){return gM(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 cM(this,D)}#F=(D)=>{let{bodyCache:$,raw:F}=this,X=$[D];if(X)return X;let J=Object.keys($)[0];if(J)return $[J].then((Y)=>{if(J==="json")Y=JSON.stringify(Y);return new Response(Y)[D]()});return $[D]=F[D]()};json(){return this.#F("text").then((D)=>JSON.parse(D))}text(){return this.#F("text")}arrayBuffer(){return this.#F("arrayBuffer")}blob(){return this.#F("blob")}formData(){return this.#F("formData")}addValidatedData(D,$){this.#D[D]=$}valid(D){return this.#D[D]}get url(){return this.raw.url}get method(){return this.raw.method}get[pM](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var _$={Stringify:1,BeforeStream:2,Stream:3},Yl=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var p9=async(D,$,F,X,J)=>{if(typeof D==="object"&&!(D instanceof String)){if(!(D instanceof Promise))D=D.toString();if(D instanceof Promise)D=await D}let Y=D.callbacks;if(!Y?.length)return Promise.resolve(D);if(J)J[0]+=D;else J=[D];let G=Promise.all(Y.map((B)=>B({phase:$,buffer:J,context:X}))).then((B)=>Promise.all(B.filter(Boolean).map((H)=>p9(H,$,!1,X,J))).then(()=>J[0]));if(F)return Yl(await G,Y);else return G};var lM="text/plain; charset=UTF-8",nY=(D,$)=>{return{"Content-Type":D,...$}},c9=(D,$)=>new Response(D,$),iM=class{#D;#$;env={};#X;finalized=!1;error;#G;#J;#F;#W;#H;#B;#Y;#_;#U;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#U=$.path,this.#_=$.matchResult}get req(){return this.#$??=new V$(this.#D,this.#U,this.#_),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||=c9(null,{headers:this.#Y??=new Headers})}set res(D){if(this.#F&&D){D=c9(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=c9(this.#F.body,this.#F);let X=this.#F?this.#F.headers:this.#Y??=new Headers;if($===void 0)X.delete(D);else if(F?.append)X.append(D,$);else X.set(D,$)};status=(D)=>{this.#G=D};set=(D,$)=>{this.#X??=new Map,this.#X.set(D,$)};get=(D)=>{return this.#X?this.#X.get(D):void 0};get var(){if(!this.#X)return{};return Object.fromEntries(this.#X)}#V(D,$,F){let X=this.#F?new Headers(this.#F.headers):this.#Y??new Headers;if(typeof $==="object"&&"headers"in $){let Y=$.headers instanceof Headers?$.headers:new Headers($.headers);for(let[G,B]of Y)if(G.toLowerCase()==="set-cookie")X.append(G,B);else X.set(G,B)}if(F)for(let[Y,G]of Object.entries(F))if(typeof G==="string")X.set(Y,G);else{X.delete(Y);for(let B of G)X.append(Y,B)}let J=typeof $==="number"?$:$?.status??this.#G;return c9(D,{status:J,headers:X})}newResponse=(...D)=>this.#V(...D);body=(D,$,F)=>this.#V(D,$,F);text=(D,$,F)=>{return!this.#Y&&!this.#G&&!$&&!F&&!this.finalized?new Response(D):this.#V(D,$,nY(lM,F))};json=(D,$,F)=>{return this.#V(JSON.stringify(D),$,nY("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#V(J,$,nY("text/html; charset=UTF-8",F));return typeof D==="object"?p9(D,_$.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??=()=>c9(),this.#B(this)}};var MD="ALL",nM="all",sM=["get","post","put","delete","options","patch"],U$="Can not add a route since the matcher is already built.",Q$=class extends Error{};var rM="__COMPOSED_HANDLER";var Bl=(D)=>{return D.text("404 Not Found",404)},aM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},oM=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...sM,nM].forEach((Y)=>{this[Y]=(G,...B)=>{if(typeof G==="string")this.#D=G;else this.#G(Y,this.#D,G);return B.forEach((H)=>{this.#G(Y,this.#D,H)}),this}}),this.on=(Y,G,...B)=>{for(let H of[G].flat()){this.#D=H;for(let W of[Y].flat())B.map((_)=>{this.#G(W.toUpperCase(),this.#D,_)})}return this},this.use=(Y,...G)=>{if(typeof Y==="string")this.#D=Y;else this.#D="*",G.unshift(Y);return G.forEach((B)=>{this.#G(MD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??cY:vM}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=Bl;errorHandler=aM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let Y;if(F.errorHandler===aM)Y=J.handler;else Y=async(G,B)=>(await iY([],F.errorHandler)(G,()=>J.handler(G,B))).res,Y[rM]=J.handler;X.#G(J.method,J.path,Y)}),this}basePath($){let F=this.#$();return F._basePath=q2(this._basePath,$),F}onError=($)=>{return this.errorHandler=$,this};notFound=($)=>{return this.#X=$,this};mount($,F,X){let J,Y;if(X)if(typeof X==="function")Y=X;else if(Y=X.optionHandler,X.replaceRequest===!1)J=(H)=>H;else J=X.replaceRequest;let G=Y?(H)=>{let W=Y(H);return Array.isArray(W)?W:[W]}:(H)=>{let W=void 0;try{W=H.executionCtx}catch{}return[H.env,W]};J||=(()=>{let H=q2(this._basePath,$),W=H==="/"?0:H.length;return(_)=>{let U=new URL(_.url);return U.pathname=U.pathname.slice(W)||"/",new Request(U,_)}})();let B=async(H,W)=>{let _=await F(J(H.req.raw),...G(H));if(_)return _;await W()};return this.#G(MD,q2($,"*"),B),this}#G($,F,X){$=$.toUpperCase(),F=q2(this._basePath,F);let J={basePath:this._basePath,path:F,method:$,handler:X};this.router.add($,F,[X,J]),this.routes.push(J)}#J($,F){if($ instanceof Error)return this.errorHandler($,F);throw $}#F($,F,X,J){if(J==="HEAD")return(async()=>new Response(null,await this.#F($,F,X,"GET")))();let Y=this.getPath($,{env:X}),G=this.router.match(J,Y),B=new iM($,{path:Y,matchResult:G,env:X,executionCtx:F,notFoundHandler:this.#X});if(G[0].length===1){let W;try{W=G[0][0][0][0](B,async()=>{B.res=await this.#X(B)})}catch(_){return this.#J(_,B)}return W instanceof Promise?W.then((_)=>_||(B.finalized?B.res:this.#X(B))).catch((_)=>this.#J(_,B)):W??this.#X(B)}let H=iY(G[0],this.errorHandler,this.#X);return(async()=>{try{let W=await H(B);if(!W.finalized)throw Error("Context is not finalized. Did you forget to return a Response object or `await next()`?");return W.res}catch(W){return this.#J(W,B)}})()}fetch=($,...F)=>{return this.#F($,F[1],F[0],$.method)};request=($,F,X,J)=>{if($ instanceof Request)return this.fetch(F?new Request($,F):$,X,J);return $=$.toString(),this.fetch(new Request(/^https?:\/\//.test($)?$:`http://localhost${q2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var d9=[];function A$(D,$){let F=this.buildAllMatchers(),X=(J,Y)=>{let G=F[J]||F[MD],B=G[2][Y];if(B)return B;let H=Y.match(G[0]);if(!H)return[[],d9];let W=H.indexOf("",1);return[G[1][W],H]};return this.match=X,X(D,$)}var K$="[^/]+",l9=".*",i9="(?:|/.*)",w1=Symbol(),Hl=new Set(".\\+*[^]$()");function Wl(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===l9||D===i9)return 1;else if($===l9||$===i9)return-1;if(D===K$)return 1;else if($===K$)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var tM=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,Y){if($.length===0){if(this.#D!==void 0)throw w1;if(Y)return;this.#D=F;return}let[G,...B]=$,H=G==="*"?B.length===0?["","",l9]:["","",K$]:G==="/*"?["","",i9]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let _=H[1],U=H[2]||K$;if(_&&H[2]){if(U===".*")throw w1;if(U=U.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(U))throw w1}if(W=this.#X[U],!W){if(Object.keys(this.#X).some((Q)=>Q!==l9&&Q!==i9))throw w1;if(Y)return;if(W=this.#X[U]=new D,_!=="")W.#$=J.varIndex++}if(!Y&&_!=="")X.push([_,W.#$])}else if(W=this.#X[G],!W){if(Object.keys(this.#X).some((_)=>_.length>1&&_!==l9&&_!==i9))throw w1;if(Y)return;W=this.#X[G]=new D}W.insert(B,F,X,J,Y)}buildRegExpStr(){let F=Object.keys(this.#X).sort(Wl).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:Hl.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 eM=class{#D={varIndex:0};#$=new tM;insert(D,$,F){let X=[],J=[];for(let G=0;;){let B=!1;if(D=D.replace(/\{[^}]+\}/g,(H)=>{let W=`@\\${G}`;return J[G]=[W,H],G++,B=!0,W}),!B)break}let Y=D.match(/(?::[^\/]+)|(?:\/\*$)|./g)||[];for(let G=J.length-1;G>=0;G--){let[B]=J[G];for(let H=Y.length-1;H>=0;H--)if(Y[H].indexOf(B)!==-1){Y[H]=Y[H].replace(B,J[G][1]);break}}return this.#$.insert(Y,$,X,this.#D,F),X}buildRegExp(){let D=this.#$.buildRegExpStr();if(D==="")return[/^$/,[],[]];let $=0,F=[],X=[];return D=D.replace(/#(\d+)|@(\d+)|\.\*\$/g,(J,Y,G)=>{if(Y!==void 0)return F[++$]=Number(Y),"$()";if(G!==void 0)return X[Number(G)]=++$,"";return""}),[new RegExp(`^${D}`),F,X]}};var Vl=[/^$/,[],Object.create(null)],DZ=Object.create(null);function $Z(D){return DZ[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function _l(){DZ=Object.create(null)}function Ul(D){let $=new eM,F=[];if(D.length===0)return Vl;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,_],[U,Q])=>W?1:U?-1:_.length-Q.length),J=Object.create(null);for(let W=0,_=-1,U=X.length;W<U;W++){let[Q,A,O]=X[W];if(Q)J[A]=[O.map(([K])=>[K,Object.create(null)]),d9];else _++;let E;try{E=$.insert(A,_,Q)}catch(K){throw K===w1?new Q$(A):K}if(Q)continue;F[_]=O.map(([K,R])=>{let q=Object.create(null);R-=1;for(;R>=0;R--){let[N,b]=E[R];q[N]=b}return[K,q]})}let[Y,G,B]=$.buildRegExp();for(let W=0,_=F.length;W<_;W++)for(let U=0,Q=F[W].length;U<Q;U++){let A=F[W][U]?.[1];if(!A)continue;let O=Object.keys(A);for(let E=0,K=O.length;E<K;E++)A[O[E]]=B[A[O[E]]]}let H=[];for(let W in G)H[W]=F[G[W]];return[Y,H,J]}function o6(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if($Z(F).test($))return[...D[F]];return}var E$=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[MD]:Object.create(null)},this.#$={[MD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(U$);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[MD]).forEach((H)=>{B[D][H]=[...B[MD][H]]})});if($==="/*")$="*";let Y=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=$Z($);if(D===MD)Object.keys(X).forEach((H)=>{X[H][$]||=o6(X[H],$)||o6(X[MD],$)||[]});else X[D][$]||=o6(X[D],$)||o6(X[MD],$)||[];Object.keys(X).forEach((H)=>{if(D===MD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,Y])})}),Object.keys(J).forEach((H)=>{if(D===MD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,Y]))});return}let G=H$($)||[$];for(let B=0,H=G.length;B<H;B++){let W=G[B];Object.keys(J).forEach((_)=>{if(D===MD||D===_)J[_][W]||=[...o6(X[_],W)||o6(X[MD],W)||[]],J[_][W].push([F,Y-H+B+1])})}}match=A$;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,_l(),D}#X(D){let $=[],F=D===MD;if([this.#D,this.#$].forEach((X)=>{let J=X[D]?Object.keys(X[D]).map((Y)=>[Y,X[D][Y]]):[];if(J.length!==0)F||=!0,$.push(...J);else if(D!==MD)$.push(...Object.keys(X[MD]).map((Y)=>[Y,X[MD][Y]]))}),!F)return null;else return Ul($)}};var Ql=class{name="PreparedRegExpRouter";#D;#$;constructor(D,$){this.#D=D,this.#$=$}#X(D,$){let F=this.#D[D];F[1].forEach((X)=>X&&X.push($)),Object.values(F[2]).forEach((X)=>X[0].push($))}#G(D,$,F,X,J){let Y=this.#D[D];if(!J)Y[2][$][0].push([F,{}]);else X.forEach((G)=>{if(typeof G==="number")Y[1][G].push([F,J]);else Y[2][G||$][0].push([F,J])})}add(D,$,F){if(!this.#D[D]){let J=this.#D[MD],Y={};for(let G in J[2])Y[G]=[J[2][G][0].slice(),d9];this.#D[D]=[J[0],J[1].map((G)=>Array.isArray(G)?G.slice():0),Y]}if($==="/*"||$==="*"){let J=[F,{}];if(D===MD)for(let Y in this.#D)this.#X(Y,J);else this.#X(D,J);return}let X=this.#$[$];if(!X)throw Error(`Path ${$} is not registered`);for(let[J,Y]of X)if(D===MD)for(let G in this.#D)this.#G(G,$,F,J,Y);else this.#G(D,$,F,J,Y)}buildAllMatchers(){return this.#D}match=A$};var sY=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(U$);this.#$.push([D,$,F])}match(D,$){if(!this.#$)throw Error("Fatal error");let F=this.#D,X=this.#$,J=F.length,Y=0,G;for(;Y<J;Y++){let B=F[Y];try{for(let H=0,W=X.length;H<W;H++)B.add(...X[H]);G=B.match(D,$)}catch(H){if(H instanceof Q$)continue;throw H}this.match=B.match.bind(B),this.#D=[B],this.#$=void 0;break}if(Y===J)throw Error("Fatal error");return this.name=`SmartRouter + ${this.activeRouter.name}`,G}get activeRouter(){if(this.#$||this.#D.length!==1)throw Error("No active router has been determined yet.");return this.#D[0]}};var n9=Object.create(null),Al=(D)=>{for(let $ in D)return!0;return!1},FZ=class D{#D;#$;#X;#G=0;#J=n9;constructor($,F,X){if(this.#$=X||Object.create(null),this.#D=[],$&&F){let J=Object.create(null);J[$]={handler:F,possibleKeys:[],score:0},this.#D=[J]}this.#X=[]}insert($,F,X){this.#G=++this.#G;let J=this,Y=fM(F),G=[];for(let B=0,H=Y.length;B<H;B++){let W=Y[B],_=Y[B+1],U=kM(W,_),Q=Array.isArray(U)?U[0]:W;if(Q in J.#$){if(J=J.#$[Q],U)G.push(U[1]);continue}if(J.#$[Q]=new D,U)J.#X.push(U),G.push(U[1]);J=J.#$[Q]}return J.#D.push({[$]:{handler:X,possibleKeys:G.filter((B,H,W)=>W.indexOf(B)===H),score:this.#G}}),J}#F($,F,X,J,Y){for(let G=0,B=F.#D.length;G<B;G++){let H=F.#D[G],W=H[X]||H[MD],_={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==n9||Y&&Y!==n9)for(let U=0,Q=W.possibleKeys.length;U<Q;U++){let A=W.possibleKeys[U],O=_[W.score];W.params[A]=Y?.[A]&&!O?Y[A]:J[A]??Y?.[A],_[W.score]=!0}}}}search($,F){let X=[];this.#J=n9;let Y=[this],G=pY(F),B=[],H=G.length,W=null;for(let _=0;_<H;_++){let U=G[_],Q=_===H-1,A=[];for(let E=0,K=Y.length;E<K;E++){let R=Y[E],q=R.#$[U];if(q)if(q.#J=R.#J,Q){if(q.#$["*"])this.#F(X,q.#$["*"],$,R.#J);this.#F(X,q,$,R.#J)}else A.push(q);for(let N=0,b=R.#X.length;N<b;N++){let T=R.#X[N],L=R.#J===n9?{}:{...R.#J};if(T==="*"){let VD=R.#$["*"];if(VD)this.#F(X,VD,$,R.#J),VD.#J=L,A.push(VD);continue}let[w,z,s]=T;if(!U&&!(s instanceof RegExp))continue;let QD=R.#$[w];if(s instanceof RegExp){if(W===null){W=Array(H);let rD=F[0]==="/"?1:0;for(let N2=0;N2<H;N2++)W[N2]=rD,rD+=G[N2].length+1}let VD=F.substring(W[_]),$D=s.exec(VD);if($D){if(L[z]=$D[0],this.#F(X,QD,$,R.#J,L),Al(QD.#$)){QD.#J=L;let rD=$D[0].match(/\//)?.length??0;(B[rD]||=[]).push(QD)}continue}}if(s===!0||s.test(U))if(L[z]=U,Q){if(this.#F(X,QD,$,L,R.#J),QD.#$["*"])this.#F(X,QD.#$["*"],$,L,R.#J)}else QD.#J=L,A.push(QD)}}let O=B.shift();Y=O?A.concat(O):A}if(X.length>1)X.sort((_,U)=>{return _.score-U.score});return[X.map(({handler:_,params:U})=>[_,U])]}};var rY=class{name="TrieRouter";#D;constructor(){this.#D=new FZ}add(D,$,F){let X=H$($);if(X){for(let J=0,Y=X.length;J<Y;J++)this.#D.insert(D,X[J],F);return}this.#D.insert(D,$,F)}match(D,$){return this.#D.search(D,$)}};var aY=class extends oM{constructor(D={}){super(D);this.router=D.router??new sY({routers:[new E$,new rY]})}};yD();var o0=class D extends aY{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new xY,this.defaultHook=$?.defaultHook}openapi=({middleware:$,hide:F,...X},J,Y=this.defaultHook)=>{if(!F)this.openAPIRegistry.registerPath(X);let G=[];if(X.request?.query){let W=T1("query",X.request.query,Y);G.push(W)}if(X.request?.params){let W=T1("param",X.request.params,Y);G.push(W)}if(X.request?.headers){let W=T1("header",X.request.headers,Y);G.push(W)}if(X.request?.cookies){let W=T1("cookie",X.request.cookies,Y);G.push(W)}let B=X.request?.body?.content;if(B)for(let W of Object.keys(B)){if(!B[W])continue;let _=B[W].schema;if(!(_ instanceof GD))continue;if(JZ(W)){let U=T1("json",_,Y);if(X.request?.body?.required)G.push(U);else{let Q=async(A,O)=>{if(A.req.header("content-type")){if(JZ(A.req.header("content-type")))return await U(A,O)}A.req.addValidatedData("json",{}),await O()};G.push(Q)}}if(GZ(W)){let U=T1("form",_,Y);if(X.request?.body?.required)G.push(U);else{let Q=async(A,O)=>{if(A.req.header("content-type")){if(GZ(A.req.header("content-type")))return await U(A,O)}A.req.addValidatedData("form",{}),await O()};G.push(Q)}}}let H=$?Array.isArray($)?$:[$]:[];return this.on([X.method],X.path.replaceAll(/\/{(.+?)}/g,"/:$1"),...H,...G,J),this};getOpenAPIDocument=($)=>{let X=new yY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?XZ(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new uY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?XZ(X,this._basePath):X};doc=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPIDocument(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};doc31=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let Y=this.getOpenAPI31Document(J);return X.json(Y)}catch(Y){return X.json(Y,500)}})};route($,F){let X=$.replaceAll(/:([^\/]+)/g,"{$1}");if(super.route($,F),!(F instanceof D))return this;return F.openAPIRegistry.definitions.forEach((J)=>{switch(J.type){case"component":return this.openAPIRegistry.registerComponent(J.componentType,J.name,J.component);case"route":{this.openAPIRegistry.registerPath({...J.route,path:q2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:q2(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})}};QM(V);function XZ(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[q2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function JZ(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function GZ(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}yD();var YZ=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],Kl=YZ.map(([D])=>D);function oY(D){if(!Kl.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"),YZ.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var El=V.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),Ol=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"]),Rl=V.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),eY=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()}),HZ=V.object({authentication:V.any().optional(),baseServerURL:V.string().optional(),hideClientButton:V.boolean().optional().default(!1).catch(!1),proxyUrl:V.string().optional(),searchHotKey:Ol.optional(),servers:V.array(V.any()).optional(),showSidebar:V.boolean().optional().default(!0).catch(!0),spec:eY.optional(),theme:El.optional().default("default").catch("default"),_integration:Rl.optional()}),BZ="https://api.scalar.com/request-proxy",tY="https://proxy.scalar.com",WZ=HZ.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()})),Ml=WZ.merge(V.object({spec:V.object({sources:V.array(eY)})})),VZ=(D)=>{let $={...D};if($.customCss)$.customCss=oY($.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===BZ)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${BZ}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${tY}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${tY}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=tY;return $},DB=WZ.transform(VZ),Zl=Ml.transform(VZ);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 _Z=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,Y=$B.parse({cdn:F,pageTitle:X,customTheme:$}),G=DB.parse(J);return`
|
|
342
342
|
<!DOCTYPE html>
|
|
343
343
|
<html>
|
|
344
344
|
<head>
|
|
@@ -352,16 +352,16 @@ ${H.body}`:H.body}).join(`
|
|
|
352
352
|
</style>
|
|
353
353
|
</head>
|
|
354
354
|
<body>
|
|
355
|
-
${
|
|
355
|
+
${ql(G,Y.cdn)}
|
|
356
356
|
</body>
|
|
357
357
|
</html>
|
|
358
|
-
`};function
|
|
358
|
+
`};function ql(D,$){return`
|
|
359
359
|
<script
|
|
360
360
|
id="api-reference"
|
|
361
361
|
type="application/json"
|
|
362
|
-
data-configuration="${
|
|
362
|
+
data-configuration="${Nl(D)}">${Pl(D)}</script>
|
|
363
363
|
<script src="${$}"></script>
|
|
364
|
-
`}var
|
|
364
|
+
`}var Nl=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join(""")},Pl=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var Ll={_integration:"hono"},jl=`
|
|
365
365
|
.light-mode {
|
|
366
366
|
color-scheme: light;
|
|
367
367
|
--scalar-color-1: #2a2f45;
|
|
@@ -461,11 +461,11 @@ ${H.body}`:H.body}).join(`
|
|
|
461
461
|
--scalar-sidebar-search-border-color: transparent;
|
|
462
462
|
--scalar-sidebar-search-color: var(--scalar-color-3);
|
|
463
463
|
}
|
|
464
|
-
|
|
465
|
-
`),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
|
|
464
|
+
`,FB=(D)=>{let $={...Ll,...D};return async(F)=>F.html(`${_Z($,jl)}`)};a0();TD();JD();j0();JD();function UZ(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 QZ=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 XB,sep as zl}from"path";function AZ(D){let $=XB(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=Il(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let Y=J===""?"index.html":J,G=XB($,Y);if(G!==$&&!G.startsWith($+zl))return F.text("forbidden",403);let B=Bun.file(G);if(await B.exists())return new Response(B);if(!Tl(Y)){let H=Bun.file(XB($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function Il(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 Y=D().channels.get("whatsapp");if(!Y||Y.credentials.channel!=="whatsapp")return X.text("whatsapp channel is not bound to this worker",404);let G=X.req.query("hub.mode"),B=X.req.query("hub.verify_token"),H=X.req.query("hub.challenge")??"";if(G==="subscribe"&&B!==void 0&&b2(B,Y.credentials.verifyToken))return X.text(H,200);return X.text("forbidden",403)}),F.post("/:channel/webhook",async(X)=>{let J=D(),Y=X.req.param("channel"),G=J.channels.get(Y);if(!G)throw jD.notFound(`Channel ${Y} is not bound to this worker`);let B=J.channels.adapter(Y),H=await X.req.text(),W={};X.req.raw.headers.forEach((U,Q)=>{W[Q.toLowerCase()]=U});try{await B.verify(H,W,G)}catch(U){return C.warn(`[channel:${Y}] signature verification failed: ${String(U)}`),X.json({ok:!1,error:"signature verification failed"},401)}let _=await B.toEnvelopes(H,$,G);for(let U of _)await J.orchestrator.ingest(U);return X.json({ok:!0,accepted:_.length})}),F}var JB=class{writer;encoder;writable;abortSubscribers=[];responseReadable;aborted=!1;closed=!1;constructor(D,$){this.writable=D,this.writer=D.getWriter(),this.encoder=new TextEncoder;let F=$.getReader();this.abortSubscribers.push(async()=>{await F.cancel()}),this.responseReadable=new ReadableStream({async pull(X){let{done:J,value:Y}=await F.read();J?X.close():X.enqueue(Y)},cancel:()=>{this.abort()}})}async write(D){try{if(typeof D==="string")D=this.encoder.encode(D);await this.writer.write(D)}catch{}return this}async writeln(D){return await this.write(D+`
|
|
465
|
+
`),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 O$=()=>{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 O$=()=>$,$};var EZ=class extends JB{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await p9(D.data,_$.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
|
|
466
466
|
`);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(`
|
|
467
467
|
`)+`
|
|
468
468
|
|
|
469
|
-
`;await this.write(X)}},zl=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()}},Il=new WeakMap,JB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,Y=new AZ(J,X);if(E$())D.req.raw.signal.addEventListener("abort",()=>{if(!Y.closed)Y.abort()});return Il.set(Y.responseReadable,D),D.header("Transfer-Encoding","chunked"),D.header("Content-Type","text/event-stream"),D.header("Cache-Control","no-cache"),D.header("Connection","keep-alive"),zl(Y,$,F),D.newResponse(Y.responseReadable)};function KZ(D){let $=new o0;return $.get("/stream",(F)=>{let X=D().bus;return JB(F,async(J)=>{let Y=X.on((G)=>{J.writeSSE({event:G.type,data:JSON.stringify({...G.payload,at:G.at})})});await new Promise((G)=>{F.req.raw.signal.addEventListener("abort",()=>{Y(),G()})})})}),$}j0();TD();_0();var t6=new o0;t6.get("/observations",(D)=>{let $=u().select().from(A2).orderBy(hD(A2.noticedAt)).limit(200).all();return D.json({observations:$})});t6.get("/drafts",(D)=>{let $=D.req.query("status"),F=u().select().from(Z0).orderBy(hD(Z0.createdAt)).limit(100),X=$?F.where(v(Z0.status,$)).all():F.all();return D.json({drafts:X})});t6.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(Z0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(Z0.id,$)).run(),D.json({ok:!0})});t6.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(Z0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(Z0.id,$)).run(),D.json({ok:!0})});a0();function EZ({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,Y]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!Y)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:G}=D();if(!G||!f2(Y,G))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}a0();j0();TD();JD();yD();var wl=V.object({value:V.string().min(1)}),CZ=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Sl=V.object({probe:V.boolean().optional()}).optional(),bl=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),fl=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()}),kl=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)}),RZ=V.enum(["web","line","telegram","lark","whatsapp"]),vl=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:RZ,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),hl=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:RZ.optional(),chatId:V.string().min(1).optional(),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function OZ(D){let $=new o0;return $.get("/info",async(F)=>{let X=D.getState(),J=await S0(u()),Y=await f5(X,J.config,{...n.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:n.AIWORKER_ADVERTISED_BASE_URL}});return F.json(Y)}),$.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"),Y=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(Y))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let G=await h6({db:u(),vault:mD(),raw:X,...Y===void 0?{}:{ifMatchVersion:Y},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(G)}catch(G){if(G instanceof g2)return F.json({error:{code:"invalid-config",message:G.message,details:G.issues}},400);if(G instanceof y2)return F.json({error:{code:"version-conflict",message:G.message,expected:G.expected,actual:G.actual}},409);throw G}}),$.get("/secrets",async(F)=>{let X=await k5(mD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=CZ.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);let J=await F.req.json().catch(()=>null),Y=wl.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:Y.error.flatten().fieldErrors}},400);try{return await v5(mD(),X.data,Y.data.value),F.json({ok:!0},200)}catch(G){if(G instanceof jD)return F.json(G.toJSON(),G.status);throw G}}),$.delete("/secrets/:key",async(F)=>{let X=CZ.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 h5(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()),Y=await w5(X,J.config);return F.json(Y)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=Sl.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let Y=D.getState(),G=await S0(u()),B=await b5(Y,G.config,J.data??{});return F.json(B)}),$.post("/channels/:channel/test",async(F)=>{let X=F.req.param("channel"),J=await F.req.json().catch(()=>null),Y=bl.safeParse(J??{});if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let G=D.getState(),B=await S5(G,X,Y.data??{});return F.json(B)}catch(G){if(G instanceof jD)return F.json(G.toJSON(),G.status);throw G}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await x8(u(),mD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=fl.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=d6({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=l6(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=kl.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let Y=J.data,G=i6({olderThanDays:Y.olderThanDays,limit:Y.limit,apply:Y.apply});return F.json(G)}),$.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 O.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 x4().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((Y)=>({taskId:Y.taskId,toolCallId:Y.toolCallId,toolName:Y.toolName,params:Y.params,expiresAt:Y.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),Y=await F.req.json().catch(()=>null),G=V.object({decision:V.enum(["allow","deny"])}).safeParse(Y);if(!G.success)return F.json({error:{code:"invalid-body",message:'decision must be "allow" or "deny"'}},400);let B=D.getState().runtime.approvals.grant(X,J,G.data.decision);return F.json({granted:B})}),$.get("/cron",async(F)=>{let X=await D.getState().runtime.cron.listJobs();return F.json({jobs:X})}),$.post("/cron",async(F)=>{let X=await F.req.json().catch(()=>null),J=vl.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid cron job body",details:J.error.flatten().fieldErrors}},400);try{let Y=await D.getState().runtime.cron.addJob(J.data);return F.json({job:Y},201)}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),Y=hl.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:Y.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.updateJob(X,Y.data);if(!G)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:G})}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},400)}}),$.delete("/cron/:id",async(F)=>{let X=F.req.param("id");if(!(await D.getState().runtime.cron.removeJob(X)).removed)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({ok:!0})}),$}TD();_0();yD();var xl=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(Z8).orderBy(hD(Z8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=xl.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let Y=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:Y},201)}),$.get("/conversations",(F)=>{let X=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 ZZ(D){let $=mD(),F=new Set(t2(D).map((J)=>J.path)),X=new Map;for(let J of F){let Y=await $.get(J);if(Y!==null)X.set(J,Y)}return _6(D,X)}async function qZ(D={}){k3(n.WORKER_DB_PATH),v3(n.WORKER_MIGRATIONS_FOLDER);let $=mD(),F=u(),X=await Y1(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),O.info(`[worker ${X.workerId}] worker.db ready at ${n.WORKER_DB_PATH}`);let J=await G1(F),Y=await ZZ(J.config),G=new N1({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=I1(X.workerId,Y,{processes:G});O.info(`[worker ${X.workerId}] runtime built \u2014 brains=${Y.brains.length} executor=${Y.executor.engine}/${Y.executor.variant} channels=${B.channels.list().length}`);let H={workerId:X.workerId,runtime:B,configVersion:J.version,startedAt:new Date().toISOString(),tokenPlaintext:X.token};async function W(U,Q){let A=await ZZ(U);G.setLimits({maxConcurrentTotal:n.MAX_CONCURRENT_TOTAL,perEngineLimits:{...n.perEngineLimits}});let E=I1(H.workerId,A,{processes:G}),C=H.runtime;if(H.runtime=E,H.configVersion=Q,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(K){O.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(K)}`)}try{C.dispose()}catch(K){O.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(K)}`)}O.info(`[worker ${H.workerId}] runtime reloaded to config version ${Q}`)}let _=new o0;if(_.use(_Z),_.onError(VZ),D.webStaticDir){let U=D.webStaticDir;_.get("/admin",(Q)=>Q.redirect("/admin/",308)),_.use("/admin/*",UZ(U))}return _.get("/health",async(U)=>{let[Q,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return U.json({mode:"worker",workerId:H.workerId,status:"ok",brain:Q,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),_.route("/",QZ(()=>H.runtime,H.workerId)),_.use("/api/worker/*",EZ({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),_.route("/api/worker/orchestrator",MZ(()=>H.runtime)),_.route("/api/worker/evolution",t6),_.route("/api/worker/events",KZ(()=>H.runtime)),_.route("/api/worker",OZ({getState:()=>H,reloadRuntime:W})),_.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}`}}),_.get("/docs",$B({spec:{url:"/openapi.json"}})),{app:_,port:n.PORT,state:H,reloadRuntime:W}}a0();TD();JD();async function PZ(D={}){let $=null,F=n9.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?G4("worker"):void 0;if(X&&!J)O.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{app:Y,port:G,state:B,reloadRuntime:H}=await qZ({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),W=D.port??G,_=Bun.serve({port:W,fetch:Y.fetch});if(O.success(`[aiw serve] worker ${B.workerId} listening on :${W} (config v${B.configVersion})`),J)O.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let U=n.AIWORKER_GATEWAY_URL,Q=n.AIWORKER_JOIN_TOKEN,A=n.AIWORKER_DISPLAY_NAME,E=n.AIWORKER_ENROLL_MODE,C=D.gateway&&D.gateway.length>0?D.gateway:void 0,K,R=D.gatewayToken??"",q,P="legacy";if(C)K=C;else if(U&&U.length>0){let T=E==="otp",L=!!Q&&Q.length>0;if(!T&&L)K=U,P="self-enroll",q={mode:"join-token",joinToken:Q,apiToken:B.tokenPlaintext,...A?{displayName:A}:{}};else{let w=new URL(U);if(w.pathname="/enroll-ws",K=w.toString(),P="otp",R=B.tokenPlaintext,q={mode:"otp",apiToken:B.tokenPlaintext,...A?{displayName:A}:{}},T&&L)O.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(Q&&Q.length>0)O.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(K){if(P==="self-enroll")O.info(`[aiw serve] self-enrolling to ${K} as ${A??B.workerId}`);else if(P==="otp")O.info(`[aiw serve] OTP enrolling to ${K}; awaiting operator approval`);$=T5({url:K,token:R,workerId:B.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...q?{enroll:q}:{},...P==="otp"?{onEnrollmentOtp:({otp:T,expiresAt:L})=>{let w=Math.max(0,Math.round((L-Date.now())/1000)),z=gl(T,w);n9.stdout.write(`${z}
|
|
470
|
-
`),
|
|
471
|
-
`)}a0();JD();async function NZ(D={}){try{let $=yl(D.status),F=await iD({silent:!0}),X=d6({config:F.hydrated,limit:D.limit,offset:D.offset,...$===void 0?{}:{status:$}});return console.log(JSON.stringify(X,null,2)),0}catch($){return O.error(`[aiworker sessions list] failed: ${$ instanceof Error?$.message:String($)}`),$ instanceof GB?2:1}}async function LZ(D){try{let $=await iD({silent:!0}),F=l6(D,$.hydrated);if(F===null)return O.error(`[aiworker sessions show] session not found: ${D}`),1;return console.log(JSON.stringify({session:F},null,2)),0}catch($){return O.error(`[aiworker sessions show] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function jZ(D={}){try{await iD({silent:!0});let $=i6({olderThanDays:D.olderThanDays,limit:D.limit,apply:D.apply===!0});return console.log(JSON.stringify($,null,2)),0}catch($){return O.error(`[aiworker sessions maintenance] failed: ${$ instanceof Error?$.message:String($)}`),1}}class GB extends Error{}function yl(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new GB('status must be "active" or "closed"')}a0();TD();JD();async function zZ(){let D=await iD({silent:!0}),$=mD(),F=u(),X={tokenPlaintext:D.token},{newToken:J}=await x8(F,$,X);return O.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}var DD=qB("aiworker");DD.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 $M({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});DD.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{e.exitCode=await WM()});DD.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 FM({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});e.exit($)});DD.command("serve","Start the worker HTTP server (equivalent to AIWORKER_MODE=worker)").option("--port <n>","Override the PORT env",{type:[Number]}).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.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 PZ($)});DD.command("config-show","Print the stored worker config as JSON").action(async()=>{e.exit(await eO())});DD.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,$)=>{e.exit(await DM({json:D,ifMatch:$.ifMatch?.[0]}))});DD.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{e.exit(await zZ())});DD.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{e.exit(await oO())});DD.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)=>{e.exit(await tO({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});DD.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{e.exit(await JM())});DD.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)O.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),e.exit(2);let $=await GM({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});e.exit($)});DD.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{e.exit(await YM(D))});DD.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)=>{e.exit(await NZ({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});DD.command("sessions show <sessionKey>","Show one local worker session status by session key").action(async(D)=>{e.exit(await LZ(D))});DD.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)=>{e.exit(await jZ({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});DD.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{e.exit(await OU())});DD.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{e.exit(await MU(D))});DD.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)=>{e.exit(await ZU({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});DD.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{e.exit(await qU(D))});DD.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{e.exit(await PU(D))});DD.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=e.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;e.exit(await GU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});DD.command("gateway status","\u663E\u793A gateway daemon \u662F\u5426\u8FD0\u884C").action(()=>{e.exit(YU())});DD.command("gateway stop","\u505C\u6B62 gateway daemon (SIGTERM, \u8D85\u65F6\u540E SIGKILL)").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\uFF0C\u9ED8\u8BA4 5000ms",{type:[Number]}).action(async(D)=>{e.exit(await BU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});DD.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)O.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),e.exit(2);e.exit(await QU({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});DD.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)=>{e.exit(await VW({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});DD.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{e.exit(await _W(D))});DD.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)O.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),e.exit(2);e.exit(await UW({workerId:D,configJson:$,ifMatch:X}))});DD.command("token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{e.exit(await RU(D))});DD.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)=>{e.exit(await HW({...D.worker===void 0?{}:{workerId:D.worker}}))});DD.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)=>{e.exit(await WW({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});DD.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{e.exit(await KU(D))});DD.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)O.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),e.exit(2);e.exit(await EU({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});DD.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{e.exit(await CU(D,$))});DD.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{e.exit(await QW())});DD.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{e.exit(await AW(D))});DD.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{e.exit(await KW(D))});DD.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,$)=>{e.exit(await UU({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});DD.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").action(async(D)=>{if(D.user===!0&&D.system===!0)O.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),e.exit(2);e.exit(await _U({scope:D.system===!0?"system":"user",...D.dryRun===!0?{dryRun:!0}:{},...D.out===void 0?{}:{out:D.out},...D.enable===!1?{noEnable:!0}:{}}))});DD.help();DD.version(QH.version);function ul(D,$=DD){let F=new Set,X=1;for(let J of $.commands){let Y=J.name;if(typeof Y==="string"&&Y.includes(" ")){F.add(Y);let G=Y.split(" ").length;if(G>X)X=G}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let Y=D.slice(2,2+J);if(Y.some((B)=>typeof B!=="string"))continue;let G=Y.join(" ");if(F.has(G)){let B=D.slice();return B.splice(2,J,G),B}}return D}if(import.meta.main)try{DD.parse(ul(e.argv),{run:!1}),await DD.runMatchedCommand()}catch(D){O.error(D),e.exit(1)}export{ul as preprocessArgv,DD as cli};
|
|
469
|
+
`;await this.write(X)}},wl=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()}},Sl=new WeakMap,GB=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,Y=new EZ(J,X);if(O$())D.req.raw.signal.addEventListener("abort",()=>{if(!Y.closed)Y.abort()});return Sl.set(Y.responseReadable,D),D.header("Transfer-Encoding","chunked"),D.header("Content-Type","text/event-stream"),D.header("Cache-Control","no-cache"),D.header("Connection","keep-alive"),wl(Y,$,F),D.newResponse(Y.responseReadable)};function OZ(D){let $=new o0;return $.get("/stream",(F)=>{let X=D().bus;return GB(F,async(J)=>{let Y=X.on((G)=>{J.writeSSE({event:G.type,data:JSON.stringify({...G.payload,at:G.at})})});await new Promise((G)=>{F.req.raw.signal.addEventListener("abort",()=>{Y(),G()})})})}),$}j0();TD();_0();var t6=new o0;t6.get("/observations",(D)=>{let $=u().select().from(A2).orderBy(hD(A2.noticedAt)).limit(200).all();return D.json({observations:$})});t6.get("/drafts",(D)=>{let $=D.req.query("status"),F=u().select().from(Z0).orderBy(hD(Z0.createdAt)).limit(100),X=$?F.where(v(Z0.status,$)).all():F.all();return D.json({drafts:X})});t6.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(Z0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(Z0.id,$)).run(),D.json({ok:!0})});t6.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(Z0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(v(Z0.id,$)).run(),D.json({ok:!0})});a0();function RZ({getIdentity:D}){return async($,F)=>{let X=$.req.header("Authorization");if(!X)return $.json({code:"auth-failed",message:"missing Authorization header"},401);let[J,Y]=X.split(/\s+/,2);if(!J||J.toLowerCase()!=="bearer"||!Y)return $.json({code:"auth-failed",message:"expected Bearer scheme"},401);let{tokenPlaintext:G}=D();if(!G||!b2(Y,G))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}a0();j0();TD();JD();yD();var fl=V.object({value:V.string().min(1)}),CZ=V.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),kl=V.object({probe:V.boolean().optional()}).optional(),vl=V.object({chatId:V.string().optional(),text:V.string().optional()}).optional(),hl=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()}),xl=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)}),MZ=V.enum(["web","line","telegram","lark","whatsapp"]),gl=V.object({expression:V.string().min(1),prompt:V.string().min(1),channel:MZ,chatId:V.string().min(1),accountId:V.string().min(1).optional(),enabled:V.boolean().optional()}),yl=V.object({expression:V.string().min(1).optional(),prompt:V.string().min(1).optional(),channel:MZ.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 ZZ(D){let $=new o0;return $.get("/info",async(F)=>{let X=D.getState(),J=await S0(u()),Y=await k5(X,J.config,{...n.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:n.AIWORKER_ADVERTISED_BASE_URL}});return F.json(Y)}),$.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"),Y=J===void 0?void 0:Number.parseInt(J,10);if(J!==void 0&&Number.isNaN(Y))return F.json({error:{code:"invalid-if-match",message:"If-Match must be an integer"}},400);try{let G=await h6({db:u(),vault:mD(),raw:X,...Y===void 0?{}:{ifMatchVersion:Y},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(G)}catch(G){if(G instanceof x2)return F.json({error:{code:"invalid-config",message:G.message,details:G.issues}},400);if(G instanceof g2)return F.json({error:{code:"version-conflict",message:G.message,expected:G.expected,actual:G.actual}},409);throw G}}),$.get("/secrets",async(F)=>{let X=await v5(mD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=CZ.safeParse(F.req.param("key"));if(!X.success)return F.json({error:{code:"invalid-key",message:X.error.issues[0]?.message??"invalid secret key"}},400);let J=await F.req.json().catch(()=>null),Y=fl.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid secret body",details:Y.error.flatten().fieldErrors}},400);try{return await h5(mD(),X.data,Y.data.value),F.json({ok:!0},200)}catch(G){if(G instanceof jD)return F.json(G.toJSON(),G.status);throw G}}),$.delete("/secrets/:key",async(F)=>{let X=CZ.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 x5(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()),Y=await S5(X,J.config);return F.json(Y)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=kl.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let Y=D.getState(),G=await S0(u()),B=await f5(Y,G.config,J.data??{});return F.json(B)}),$.post("/channels/:channel/test",async(F)=>{let X=F.req.param("channel"),J=await F.req.json().catch(()=>null),Y=vl.safeParse(J??{});if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid channel test body"}},400);try{let G=D.getState(),B=await b5(G,X,Y.data??{});return F.json(B)}catch(G){if(G instanceof jD)return F.json(G.toJSON(),G.status);throw G}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await x8(u(),mD(),X);return F.json(J)}),$.get("/sessions",(F)=>{let X=hl.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=d6({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=l6(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=xl.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid session maintenance body",details:J.error.flatten().fieldErrors}},400);let Y=J.data,G=i6({olderThanDays:Y.olderThanDays,limit:Y.limit,apply:Y.apply});return F.json(G)}),$.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 g4().probeAll({refresh:X});return F.json({engines:J})}),$.get("/approvals",(F)=>{let J=D.getState().runtime.approvals.list().map((Y)=>({taskId:Y.taskId,toolCallId:Y.toolCallId,toolName:Y.toolName,params:Y.params,expiresAt:Y.expiresAt}));return F.json({approvals:J})}),$.post("/approvals/:taskId/:toolCallId/grant",async(F)=>{let X=F.req.param("taskId"),J=F.req.param("toolCallId"),Y=await F.req.json().catch(()=>null),G=V.object({decision:V.enum(["allow","deny"])}).safeParse(Y);if(!G.success)return F.json({error:{code:"invalid-body",message:'decision must be "allow" or "deny"'}},400);let B=D.getState().runtime.approvals.grant(X,J,G.data.decision);return F.json({granted:B})}),$.get("/cron",async(F)=>{let X=await D.getState().runtime.cron.listJobs();return F.json({jobs:X})}),$.post("/cron",async(F)=>{let X=await F.req.json().catch(()=>null),J=gl.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid cron job body",details:J.error.flatten().fieldErrors}},400);try{let Y=await D.getState().runtime.cron.addJob(J.data);return F.json({job:Y},201)}catch(Y){return F.json({error:{code:"invalid-cron",message:Y instanceof Error?Y.message:String(Y)}},400)}}),$.patch("/cron/:id",async(F)=>{let X=F.req.param("id"),J=await F.req.json().catch(()=>null),Y=yl.safeParse(J);if(!Y.success)return F.json({error:{code:"invalid-body",message:"invalid cron patch body",details:Y.error.flatten().fieldErrors}},400);try{let G=await D.getState().runtime.cron.updateJob(X,Y.data);if(!G)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({job:G})}catch(G){return F.json({error:{code:"invalid-cron",message:G instanceof Error?G.message:String(G)}},400)}}),$.delete("/cron/:id",async(F)=>{let X=F.req.param("id");if(!(await D.getState().runtime.cron.removeJob(X)).removed)return F.json({error:{code:"not-found",message:`cron job ${X} \u4E0D\u5B58\u5728`}},404);return F.json({ok:!0})}),$}TD();_0();yD();var ul=V.object({prompt:V.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function qZ(D){let $=new o0;return $.get("/tasks",(F)=>{let X=u().select().from(M8).orderBy(hD(M8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=ul.safeParse(X);if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid task body",details:J.error.flatten().fieldErrors}},400);let Y=await D().orchestrator.submitTask(J.data.prompt);return F.json({task:Y},201)}),$.get("/conversations",(F)=>{let X=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 NZ(D){let $=mD(),F=new Set(o2(D).map((J)=>J.path)),X=new Map;for(let J of F){let Y=await $.get(J);if(Y!==null)X.set(J,Y)}return _6(D,X)}async function PZ(D={}){k3(n.WORKER_DB_PATH),v3(n.WORKER_MIGRATIONS_FOLDER);let $=mD(),F=u(),X=await Y1(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 G1(F),Y=await NZ(J.config),G=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=I1(X.workerId,Y,{processes:G});C.info(`[worker ${X.workerId}] runtime built \u2014 brains=${Y.brains.length} executor=${Y.executor.engine}/${Y.executor.variant} channels=${B.channels.list().length}`);let H={workerId:X.workerId,runtime:B,configVersion:J.version,startedAt:new Date().toISOString(),tokenPlaintext:X.token};async function W(U,Q){let A=await NZ(U);G.setLimits({maxConcurrentTotal:n.MAX_CONCURRENT_TOTAL,perEngineLimits:{...n.perEngineLimits}});let O=I1(H.workerId,A,{processes:G}),E=H.runtime;if(H.runtime=O,H.configVersion=Q,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(K){C.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(K)}`)}try{E.dispose()}catch(K){C.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(K)}`)}C.info(`[worker ${H.workerId}] runtime reloaded to config version ${Q}`)}let _=new o0;if(_.use(QZ),_.onError(UZ),D.webStaticDir){let U=D.webStaticDir;_.get("/admin",(Q)=>Q.redirect("/admin/",308)),_.use("/admin/*",AZ(U))}return _.get("/health",async(U)=>{let[Q,A]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return U.json({mode:"worker",workerId:H.workerId,status:"ok",brain:Q,executor:A,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),_.route("/",KZ(()=>H.runtime,H.workerId)),_.use("/api/worker/*",RZ({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),_.route("/api/worker/orchestrator",qZ(()=>H.runtime)),_.route("/api/worker/evolution",t6),_.route("/api/worker/events",OZ(()=>H.runtime)),_.route("/api/worker",ZZ({getState:()=>H,reloadRuntime:W})),_.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}`}}),_.get("/docs",FB({spec:{url:"/openapi.json"}})),{app:_,port:n.PORT,state:H,reloadRuntime:W}}a0();TD();JD();async function LZ(D={}){let $=null,F=s9.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?Y4("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{app:Y,port:G,state:B,reloadRuntime:H}=await PZ({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),W=D.port??G,_=Bun.serve({port:W,fetch:Y.fetch});if(C.success(`[aiw serve] worker ${B.workerId} listening on :${W} (config v${B.configVersion})`),J)C.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let U=n.AIWORKER_GATEWAY_URL,Q=n.AIWORKER_JOIN_TOKEN,A=n.AIWORKER_DISPLAY_NAME,O=n.AIWORKER_ENROLL_MODE,E=D.gateway&&D.gateway.length>0?D.gateway:void 0,K,R=D.gatewayToken??"",q,N="legacy";if(E)K=E;else if(U&&U.length>0){let T=O==="otp",L=!!Q&&Q.length>0;if(!T&&L)K=U,N="self-enroll",q={mode:"join-token",joinToken:Q,apiToken:B.tokenPlaintext,...A?{displayName:A}:{}};else{let w=new URL(U);if(w.pathname="/enroll-ws",K=w.toString(),N="otp",R=B.tokenPlaintext,q={mode:"otp",apiToken:B.tokenPlaintext,...A?{displayName:A}:{}},T&&L)C.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(Q&&Q.length>0)C.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(K){if(N==="self-enroll")C.info(`[aiw serve] self-enrolling to ${K} as ${A??B.workerId}`);else if(N==="otp")C.info(`[aiw serve] OTP enrolling to ${K}; awaiting operator approval`);$=w5({url:K,token:R,workerId:B.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...q?{enroll:q}:{},...N==="otp"?{onEnrollmentOtp:({otp:T,expiresAt:L})=>{let w=Math.max(0,Math.round((L-Date.now())/1000)),z=ml(T,w);s9.stdout.write(`${z}
|
|
470
|
+
`),C.info(`[aiw serve] OTP ${T} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${T}\` \u51C6\u5165\uFF1Bexpires in ${w}s`)},onEnrollmentApproved:({workerId:T,deviceToken:L})=>{C.success(`[aiw serve] approved as ${T}; deviceToken=${L.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>B.runtime,handlers:{configGet:async()=>{let T=await S0(u());return{version:T.version,config:T.config}},configPut:async({ifMatch:T,config:L})=>{let w=await h6({db:u(),vault:mD(),raw:L,ifMatchVersion:T,workerId:B.workerId,reloadRuntime:H});return{version:w.version,appliedAt:Date.now(),runtimeReload:w.runtimeReload}},tokenRotate:async()=>{let{newToken:T}=await x8(u(),mD(),B);return{deviceToken:T}},...I5(()=>B.runtime.cron)}}),C.success(`[aiw serve] gateway-client dialing ${K}`)}let b=async(T)=>{C.info(`[aiw serve] received ${T}, shutting down`);try{if($)await $.stop(),$=null}catch(L){C.warn(`[aiw serve] gateway shutdown failed: ${String(L)}`)}try{_.stop()}catch(L){C.warn(`[aiw serve] http shutdown failed: ${String(L)}`)}s9.exit(0)};s9.once("SIGTERM",()=>void b("SIGTERM")),s9.once("SIGINT",()=>void b("SIGINT"))}function ml(D,$){let F=`OTP: ${D}`,X=`expires in ${$}s`,J=Math.max(F.length,X.length)+6,Y="\u2500".repeat(J),G=(B)=>`\u2502 ${B}${" ".repeat(J-B.length-4)}\u2502`;return["",`\u250C${Y}\u2510`,G(F),G(X),`\u2514${Y}\u2518`].join(`
|
|
471
|
+
`)}a0();JD();async function jZ(D={}){try{let $=pl(D.status),F=await iD({silent:!0}),X=d6({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 YB?2:1}}async function zZ(D){try{let $=await iD({silent:!0}),F=l6(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 IZ(D={}){try{await iD({silent:!0});let $=i6({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 YB extends Error{}function pl(D){if(D===void 0)return;if(D==="active"||D==="closed")return D;throw new YB('status must be "active" or "closed"')}a0();TD();JD();async function TZ(){let D=await iD({silent:!0}),$=mD(),F=u(),X={tokenPlaintext:D.token},{newToken:J}=await x8(F,$,X);return C.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}var DD=NB("aiworker");DD.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 XM({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});DD.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{e.exitCode=await _M()});DD.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 JM({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});e.exit($)});DD.command("serve","Start the worker HTTP server (equivalent to AIWORKER_MODE=worker)").option("--port <n>","Override the PORT env",{type:[Number]}).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.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 LZ($)});DD.command("config-show","Print the stored worker config as JSON").action(async()=>{e.exit(await $M())});DD.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,$)=>{e.exit(await FM({json:D,ifMatch:$.ifMatch?.[0]}))});DD.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{e.exit(await TZ())});DD.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{e.exit(await eC())});DD.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)=>{e.exit(await DM({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});DD.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{e.exit(await YM())});DD.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"),e.exit(2);let $=await BM({expression:D.expression,prompt:D.prompt,channel:D.channel,chatId:D.chatId,...D.accountId===void 0?{}:{accountId:D.accountId},...D.disabled===!0?{enabled:!1}:{}});e.exit($)});DD.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{e.exit(await HM(D))});DD.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)=>{e.exit(await jZ({limit:D.limit?.[0],offset:D.offset?.[0],...D.status===void 0?{}:{status:D.status}}))});DD.command("sessions show <sessionKey>","Show one local worker session status by session key").action(async(D)=>{e.exit(await zZ(D))});DD.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)=>{e.exit(await IZ({olderThanDays:D.olderThanDays?.[0],limit:D.limit?.[0],...D.apply===void 0?{}:{apply:D.apply}}))});DD.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{e.exit(await MU())});DD.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{e.exit(await ZU(D))});DD.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)=>{e.exit(await qU({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});DD.command("fleet stop <workerId>","\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u6458\u9664\u6CE8\u518C\uFF09").action(async(D)=>{e.exit(await NU(D))});DD.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{e.exit(await PU(D))});DD.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=e.env.AIWORKER_GATEWAY_INTERNAL_FOREGROUND==="1"?!1:D.detach===!0;e.exit(await YU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});DD.command("gateway status","\u663E\u793A gateway daemon \u662F\u5426\u8FD0\u884C").action(()=>{e.exit(BU())});DD.command("gateway stop","\u505C\u6B62 gateway daemon (SIGTERM, \u8D85\u65F6\u540E SIGKILL)").option("--timeout-ms <n>","SIGTERM \u8D85\u65F6\uFF0C\u9ED8\u8BA4 5000ms",{type:[Number]}).action(async(D)=>{e.exit(await HU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});DD.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"),e.exit(2);e.exit(await AU({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});DD.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)=>{e.exit(await _W({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});DD.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{e.exit(await UW(D))});DD.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"),e.exit(2);e.exit(await QW({workerId:D,configJson:$,ifMatch:X}))});DD.command("token rotate <workerId>","\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF08\u65E7 token \u7ACB\u5373\u5931\u6548\uFF09").action(async(D)=>{e.exit(await CU(D))});DD.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)=>{e.exit(await WW({...D.worker===void 0?{}:{workerId:D.worker}}))});DD.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)=>{e.exit(await VW({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});DD.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{e.exit(await EU(D))});DD.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"),e.exit(2);e.exit(await OU({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});DD.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{e.exit(await RU(D,$))});DD.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{e.exit(await AW())});DD.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{e.exit(await KW(D))});DD.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{e.exit(await EW(D))});DD.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,$)=>{e.exit(await QU({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});DD.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").action(async(D)=>{if(D.user===!0&&D.system===!0)C.error("install systemd: \u4E0D\u80FD\u540C\u65F6\u6307\u5B9A --user \u548C --system"),e.exit(2);e.exit(await UU({scope:D.system===!0?"system":"user",...D.dryRun===!0?{dryRun:!0}:{},...D.out===void 0?{}:{out:D.out},...D.enable===!1?{noEnable:!0}:{}}))});DD.help();DD.version(AH.version);function cl(D,$=DD){let F=new Set,X=1;for(let J of $.commands){let Y=J.name;if(typeof Y==="string"&&Y.includes(" ")){F.add(Y);let G=Y.split(" ").length;if(G>X)X=G}}if(F.size===0||D.length<4)return D;for(let J=X;J>=2;J--){if(D.length<2+J)continue;let Y=D.slice(2,2+J);if(Y.some((B)=>typeof B!=="string"))continue;let G=Y.join(" ");if(F.has(G)){let B=D.slice();return B.splice(2,J,G),B}}return D}if(import.meta.main)try{DD.parse(cl(e.argv),{run:!1}),await DD.runMatchedCommand()}catch(D){C.error(D),e.exit(1)}export{cl as preprocessArgv,DD as cli};
|