@zonease/aiworker-cli 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/aiworker.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
- var cM=Object.create;var{getPrototypeOf:dM,defineProperty:$$,getOwnPropertyNames:lM}=Object;var iM=Object.prototype.hasOwnProperty;function nM(D){return this[D]}var sM,rM,oM=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?sM??=new WeakMap:rM??=new WeakMap,Y=J.get(D);if(Y)return Y}F=D!=null?cM(dM(D)):{};let G=$||!D||!D.__esModule?$$(F,"default",{value:D,enumerable:!0}):F;for(let B of lM(D))if(!iM.call(G,B))$$(G,B,{get:nM.bind(D,B),enumerable:!0});if(X)J.set(D,G);return G};var f=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var aM=(D)=>D;function tM(D,$){this[D]=aM.bind(null,$)}var v8=(D,$)=>{for(var F in $)$$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:tM.bind($,F)})};var M=(D,$)=>()=>(D&&($=D(D=0)),$);var D8=import.meta.require;import{statSync as eM}from"fs";import{access as DZ,mkdir as $Z,stat as Wd,writeFile as FZ}from"fs/promises";import{homedir as kY}from"os";import GD from"path";import vY from"process";function bY(D){return D.startsWith("~")?GD.join(kY(),D.slice(1)):D}function fY(D){try{return eM(D).isDirectory()}catch{return!1}}function X$(D){let $=GD.resolve(D??vY.cwd());if(!$)return null;while(!0){let F=GD.join($,j1);if(fY(F))return $;let X=GD.join($,".git");if(fY(X))return null;let J=GD.dirname($);if(J===$)return null;$=J}}function s0(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:GD.resolve(bY(D.explicitHome)),source:"cli-flag"};let $=vY.env[XZ];if($&&$.length>0)return{scope:"explicit",home:GD.resolve(bY($)),source:"env"};if(!D.disableProjectDetect){let F=X$(D.cwd);if(F)return{scope:"project",home:GD.join(F,j1,F$),projectRoot:F,source:"project-detect"}}return{scope:"user",home:GD.resolve(kY(),j1),source:"user-default"}}function h2(){return s0().home}function r0(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.projectRoot,j1);return GD.join($.home,"workers",D)}function z1(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.projectRoot,j1);return GD.join(r0(D),"brain")}function JZ(D){return GD.join(z1(D),"skills")}function GZ(D){return GD.join(z1(D),"memories")}function J$(D){return GD.join(z1(D),"MEMORY.md")}function h9(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.home,"workspaces");return GD.join(r0(D),"workspaces")}function gY(D){return GD.join(r0(D),"config.yaml")}function G$(D){return GD.join(r0(D),"AGENT.md")}function Y$(D){return GD.join(r0(D),"SOUL.md")}function B$(D){return GD.join(r0(D),"USER.md")}function hY(D){return GD.join(r0(D),"ROLLUP.md")}function xY(D){return GD.join(r0(D),"mcp.json")}async function T0(D,$){await $Z(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function w0(D,$){try{await DZ(D)}catch{await FZ(D,$,{encoding:"utf8"})}}async function H$(D){let $=s0();if($.scope==="project"){await T0($.home,448),await T0(h9(D));return}let F=r0(D);await T0(F),await T0(z1(D)),await T0(JZ(D)),await T0(GZ(D)),await T0(h9(D)),await w0(G$(D),`# Agent ${D}
3
+ var iM=Object.create;var{getPrototypeOf:nM,defineProperty:$$,getOwnPropertyNames:sM}=Object;var rM=Object.prototype.hasOwnProperty;function oM(D){return this[D]}var aM,tM,eM=(D,$,F)=>{var X=D!=null&&typeof D==="object";if(X){var J=$?aM??=new WeakMap:tM??=new WeakMap,Y=J.get(D);if(Y)return Y}F=D!=null?iM(nM(D)):{};let G=$||!D||!D.__esModule?$$(F,"default",{value:D,enumerable:!0}):F;for(let B of sM(D))if(!rM.call(G,B))$$(G,B,{get:oM.bind(D,B),enumerable:!0});if(X)J.set(D,G);return G};var f=(D,$)=>()=>($||D(($={exports:{}}).exports,$),$.exports);var DZ=(D)=>D;function $Z(D,$){this[D]=DZ.bind(null,$)}var v8=(D,$)=>{for(var F in $)$$(D,F,{get:$[F],enumerable:!0,configurable:!0,set:$Z.bind($,F)})};var M=(D,$)=>()=>(D&&($=D(D=0)),$);var D8=import.meta.require;import{statSync as FZ}from"fs";import{access as XZ,mkdir as JZ,stat as Cd,writeFile as GZ}from"fs/promises";import{homedir as kY}from"os";import GD from"path";import vY from"process";function bY(D){return D.startsWith("~")?GD.join(kY(),D.slice(1)):D}function fY(D){try{return FZ(D).isDirectory()}catch{return!1}}function X$(D){let $=GD.resolve(D??vY.cwd());if(!$)return null;while(!0){let F=GD.join($,j1);if(fY(F))return $;let X=GD.join($,".git");if(fY(X))return null;let J=GD.dirname($);if(J===$)return null;$=J}}function s0(D={}){if(D.explicitHome&&D.explicitHome.length>0)return{scope:"explicit",home:GD.resolve(bY(D.explicitHome)),source:"cli-flag"};let $=vY.env[YZ];if($&&$.length>0)return{scope:"explicit",home:GD.resolve(bY($)),source:"env"};if(!D.disableProjectDetect){let F=X$(D.cwd);if(F)return{scope:"project",home:GD.join(F,j1,F$),projectRoot:F,source:"project-detect"}}return{scope:"user",home:GD.resolve(kY(),j1),source:"user-default"}}function h2(){return s0().home}function r0(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.projectRoot,j1);return GD.join($.home,"workers",D)}function z1(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.projectRoot,j1);return GD.join(r0(D),"brain")}function BZ(D){return GD.join(z1(D),"skills")}function HZ(D){return GD.join(z1(D),"memories")}function J$(D){return GD.join(z1(D),"MEMORY.md")}function h9(D){let $=s0();if($.scope==="project"&&$.projectRoot)return GD.join($.home,"workspaces");return GD.join(r0(D),"workspaces")}function gY(D){return GD.join(r0(D),"config.yaml")}function G$(D){return GD.join(r0(D),"AGENT.md")}function Y$(D){return GD.join(r0(D),"SOUL.md")}function B$(D){return GD.join(r0(D),"USER.md")}function hY(D){return GD.join(r0(D),"ROLLUP.md")}function xY(D){return GD.join(r0(D),"mcp.json")}async function T0(D,$){await JZ(D,{recursive:!0,...$===void 0?{}:{mode:$}})}async function w0(D,$){try{await XZ(D)}catch{await GZ(D,$,{encoding:"utf8"})}}async function H$(D){let $=s0();if($.scope==="project"){await T0($.home,448),await T0(h9(D));return}let F=r0(D);await T0(F),await T0(z1(D)),await T0(BZ(D)),await T0(HZ(D)),await T0(h9(D)),await w0(G$(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
6
  `),await w0(Y$(D),`# Voice of ${D}
@@ -31,12 +31,12 @@ var cM=Object.create;var{getPrototypeOf:dM,defineProperty:$$,getOwnPropertyNames
31
31
  `),await w0(GD.join(F,".gitignore"),`${F$}/
32
32
  `),await w0(GD.join(X,".gitignore"),`*
33
33
  !.gitignore
34
- `)}var XZ="AIWORKER_HOME",j1=".aiworker",F$="local";var q2=()=>{};function Q$(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 C$(D,$,F=".",X){if(!Q$($))return C$(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(Q$(G)&&Q$(J[Y]))J[Y]=C$(G,J[Y],(F?`${F}.`:"")+Y.toString(),X);else J[Y]=G}return J}function wZ(D){return(...$)=>$.reduce((F,X)=>C$(F,X,"",D),{})}function SZ(D){return Object.prototype.toString.call(D)==="[object Object]"}function bZ(D){if(!SZ(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class lD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||E$;this.options=TZ({...D,defaults:{...D.defaults},level:K$(D.level,$),reporters:[...D.reporters||[]]},{types:E$,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=K$(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 lD({...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(){A$=!0}resumeLogs(){A$=!1;let D=rY.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(A$){rY.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:K$(D.level,this.options.types)};if(!F&&$.length===1&&bZ($[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(`
34
+ `)}var YZ="AIWORKER_HOME",j1=".aiworker",F$="local";var q2=()=>{};function Q$(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 C$(D,$,F=".",X){if(!Q$($))return C$(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(Q$(G)&&Q$(J[Y]))J[Y]=C$(G,J[Y],(F?`${F}.`:"")+Y.toString(),X);else J[Y]=G}return J}function bZ(D){return(...$)=>$.reduce((F,X)=>C$(F,X,"",D),{})}function kZ(D){return Object.prototype.toString.call(D)==="[object Object]"}function vZ(D){if(!kZ(D))return!1;if(!D.message&&!D.args)return!1;if(D.stack)return!1;return!0}class lD{options;_lastLog;_mockFn;constructor(D={}){let $=D.types||E$;this.options=fZ({...D,defaults:{...D.defaults},level:K$(D.level,$),reporters:[...D.reporters||[]]},{types:E$,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=K$(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 lD({...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(){A$=!0}resumeLogs(){A$=!1;let D=rY.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(A$){rY.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:K$(D.level,this.options.types)};if(!F&&$.length===1&&vZ($[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 K$(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 oY(D={}){return new lD(D)}var aD,E$,TZ,A$=!1,rY;var R$=M(()=>{aD={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},E$={silent:{level:-1},fatal:{level:aD.fatal},error:{level:aD.error},warn:{level:aD.warn},log:{level:aD.log},info:{level:aD.info},success:{level:aD.success},fail:{level:aD.fail},ready:{level:aD.info},start:{level:aD.info},box:{level:aD.info},debug:{level:aD.debug},trace:{level:aD.trace},verbose:{level:aD.verbose}};TZ=wZ();rY=[];lD.prototype.add=lD.prototype.addReporter;lD.prototype.remove=lD.prototype.removeReporter;lD.prototype.clear=lD.prototype.removeReporter;lD.prototype.withScope=lD.prototype.withTag;lD.prototype.mock=lD.prototype.mockTypes;lD.prototype.pause=lD.prototype.pauseLogs;lD.prototype.resume=lD.prototype.resumeLogs});import{formatWithOptions as aY}from"util";import{sep as fZ}from"path";function M$(D,$){let F=process.cwd()+fZ;return D.split(`
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 K$(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 oY(D={}){return new lD(D)}var aD,E$,fZ,A$=!1,rY;var R$=M(()=>{aD={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},E$={silent:{level:-1},fatal:{level:aD.fatal},error:{level:aD.error},warn:{level:aD.warn},log:{level:aD.log},info:{level:aD.info},success:{level:aD.success},fail:{level:aD.fail},ready:{level:aD.info},start:{level:aD.info},box:{level:aD.info},debug:{level:aD.debug},trace:{level:aD.trace},verbose:{level:aD.verbose}};fZ=bZ();rY=[];lD.prototype.add=lD.prototype.addReporter;lD.prototype.remove=lD.prototype.removeReporter;lD.prototype.clear=lD.prototype.removeReporter;lD.prototype.withScope=lD.prototype.withTag;lD.prototype.mock=lD.prototype.mockTypes;lD.prototype.pause=lD.prototype.pauseLogs;lD.prototype.resume=lD.prototype.resumeLogs});import{formatWithOptions as aY}from"util";import{sep as gZ}from"path";function M$(D,$){let F=process.cwd()+gZ;return D.split(`
38
38
  `).splice($.split(`
39
- `).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function kZ(D,$){return($.__write||$.write).call($,D)}class u9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+M$(D,$).join(`
39
+ `).length).map((J)=>J.trim().replace("file://","").replace(F,""))}function hZ(D,$){return($.__write||$.write).call($,D)}class u9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return X+M$(D,$).join(`
40
40
  ${X}`)}formatError(D,$){let F=D.message??aY($,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+`
@@ -44,23 +44,23 @@ ${X}`)}formatError(D,$){let F=D.message??aY($,D),X=D.stack?this.formatStack(D.st
44
44
  `+[O$(D.tag),D.title&&D.title,...F.split(`
45
45
  `)].filter(Boolean).map((X)=>" > "+X).join(`
46
46
  `)+`
47
- `;return this.filterAndJoin([O$(D.type),O$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return kZ(F+`
48
- `,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var O$=(D)=>D?`[${D}]`:"";var tY=()=>{};import*as m9 from"tty";function XB(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:XB(G,Y,F,X))}function pZ(D,$,F,X,J){return D<0?F+$+X:F+XB(D,$,X,J)+X}function cZ(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?pZ((""+J).indexOf($,X),J,D,$,F):""}function DD(D,$,F){return cZ(`\x1B[${D}m`,`\x1B[${$}m`,F)}function dZ(D=mZ){return D?eY:Object.fromEntries(Object.keys(eY).map(($)=>[$,String]))}function lZ(D,$="reset"){return U0[D]||U0[$]}function $8(D){return D.replace(new RegExp(iZ,"g"),"")}function JB(D,$={}){let F={...$,style:{...nZ,...$.style}},X=D.split(`
49
- `),J=[],Y=lZ(F.style.borderColor),G={...typeof F.style.borderStyle==="string"?DB[F.style.borderStyle]||DB.solid:F.style.borderStyle};if(Y)for(let K in G)G[K]=Y(G[K]);let B=F.style.padding%2===0?F.style.padding:F.style.padding+1,H=X.length+B,W=Math.max(...X.map((K)=>$8(K).length),F.title?$8(F.title).length:0)+B,U=W+B,V=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let K=Y?Y(F.title):F.title,C=G.h.repeat(Math.floor((W-$8(F.title).length)/2)),E=G.h.repeat(W-$8(F.title).length-$8(C).length+B);J.push(`${V}${G.tl}${C}${K}${E}${G.tr}`)}else J.push(`${V}${G.tl}${G.h.repeat(U)}${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 K=0;K<H;K++)if(K<Q||K>=Q+X.length)J.push(`${V}${G.v}${" ".repeat(U)}${G.v}`);else{let C=X[K-Q],E=" ".repeat(B),A=" ".repeat(W-$8(C).length);J.push(`${V}${G.v}${E}${C}${A}${G.v}`)}if(J.push(`${V}${G.bl}${G.h.repeat(U)}${G.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
50
- `)}var F8,$B,vZ,gZ,hZ,xZ,FB,yZ,uZ,mZ,eY,U0,iZ,DB,nZ;var GB=M(()=>{({env:F8={},argv:$B=[],platform:vZ=""}=typeof process>"u"?{}:process),gZ="NO_COLOR"in F8||$B.includes("--no-color"),hZ="FORCE_COLOR"in F8||$B.includes("--color"),xZ=vZ==="win32",FB=F8.TERM==="dumb",yZ=m9&&m9.isatty&&m9.isatty(1)&&F8.TERM&&!FB,uZ="CI"in F8&&(("GITHUB_ACTIONS"in F8)||("GITLAB_CI"in F8)||("CIRCLECI"in F8)),mZ=!gZ&&(hZ||xZ&&!FB||yZ||uZ);eY={reset:DD(0,0),bold:DD(1,22,"\x1B[22m\x1B[1m"),dim:DD(2,22,"\x1B[22m\x1B[2m"),italic:DD(3,23),underline:DD(4,24),inverse:DD(7,27),hidden:DD(8,28),strikethrough:DD(9,29),black:DD(30,39),red:DD(31,39),green:DD(32,39),yellow:DD(33,39),blue:DD(34,39),magenta:DD(35,39),cyan:DD(36,39),white:DD(37,39),gray:DD(90,39),bgBlack:DD(40,49),bgRed:DD(41,49),bgGreen:DD(42,49),bgYellow:DD(43,49),bgBlue:DD(44,49),bgMagenta:DD(45,49),bgCyan:DD(46,49),bgWhite:DD(47,49),blackBright:DD(90,39),redBright:DD(91,39),greenBright:DD(92,39),yellowBright:DD(93,39),blueBright:DD(94,39),magentaBright:DD(95,39),cyanBright:DD(96,39),whiteBright:DD(97,39),bgBlackBright:DD(100,49),bgRedBright:DD(101,49),bgGreenBright:DD(102,49),bgYellowBright:DD(103,49),bgBlueBright:DD(104,49),bgMagentaBright:DD(105,49),bgCyanBright:DD(106,49),bgWhiteBright:DD(107,49)};U0=dZ();iZ=[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("|");DB={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"}},nZ={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var TB={};v8(TB,{prompt:()=>wB,kCancel:()=>IB});import a0,{stdin as sZ,stdout as rZ}from"process";import YB from"readline";import{WriteStream as oZ}from"tty";function aZ(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function tZ(){if(BB)return Z$;BB=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 Z$={cursor:X,scroll:J,erase:Y,beep:F},Z$}function eZ(){if(HB)return p9.exports;HB=1;let D=process||{},$=D.argv||[],F=D.env||{},X=!(!!F.NO_COLOR||$.includes("--no-color"))&&(!!F.FORCE_COLOR||$.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),J=(B,H,W=B)=>(U)=>{let V=""+U,Q=V.indexOf(H,B.length);return~Q?B+Y(V,H,W,Q)+H:B+V+H},Y=(B,H,W,U)=>{let V="",Q=0;do V+=B.substring(Q,U)+W,Q=U+H.length,U=B.indexOf(H,Q);while(~U);return V+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 p9.exports=G(),p9.exports.createColors=G,p9.exports}function $q({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 OB(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(Fq,"")}function MB(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function d6(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=OB(D),D.length===0))return 0;D=D.replace(Yq()," ");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(Jq.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function Wq(){let D=new Map;for(let[$,F]of Object.entries(ND)){for(let[X,J]of Object.entries(F))ND[X]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},F[X]=ND[X],D.set(J[0],J[1]);Object.defineProperty(ND,$,{value:F,enumerable:!1})}return Object.defineProperty(ND,"codes",{value:D,enumerable:!1}),ND.color.close="\x1B[39m",ND.bgColor.close="\x1B[49m",ND.color.ansi=WB(),ND.color.ansi256=_B(),ND.color.ansi16m=UB(),ND.bgColor.ansi=WB(q$),ND.bgColor.ansi256=_B(q$),ND.bgColor.ansi16m=UB(q$),Object.defineProperties(ND,{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:($)=>ND.rgbToAnsi256(...ND.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)=>ND.ansi256ToAnsi(ND.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>ND.ansi256ToAnsi(ND.hexToAnsi256($)),enumerable:!1}}),ND}function AB(D,$,F){return String(D).normalize().replace(/\r\n/g,`
47
+ `;return this.filterAndJoin([O$(D.type),O$(D.tag),F])}log(D,$){let F=this.formatLogObj(D,{columns:$.options.stdout.columns||0,...$.options.formatOptions});return hZ(F+`
48
+ `,D.level<2?$.options.stderr||process.stderr:$.options.stdout||process.stdout)}}var O$=(D)=>D?`[${D}]`:"";var tY=()=>{};import*as m9 from"tty";function XB(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:XB(G,Y,F,X))}function lZ(D,$,F,X,J){return D<0?F+$+X:F+XB(D,$,X,J)+X}function iZ(D,$,F=D,X=D.length+1){return(J)=>J||!(J===""||J===void 0)?lZ((""+J).indexOf($,X),J,D,$,F):""}function DD(D,$,F){return iZ(`\x1B[${D}m`,`\x1B[${$}m`,F)}function nZ(D=dZ){return D?eY:Object.fromEntries(Object.keys(eY).map(($)=>[$,String]))}function sZ(D,$="reset"){return U0[D]||U0[$]}function $8(D){return D.replace(new RegExp(rZ,"g"),"")}function JB(D,$={}){let F={...$,style:{...oZ,...$.style}},X=D.split(`
49
+ `),J=[],Y=sZ(F.style.borderColor),G={...typeof F.style.borderStyle==="string"?DB[F.style.borderStyle]||DB.solid:F.style.borderStyle};if(Y)for(let K in G)G[K]=Y(G[K]);let B=F.style.padding%2===0?F.style.padding:F.style.padding+1,H=X.length+B,W=Math.max(...X.map((K)=>$8(K).length),F.title?$8(F.title).length:0)+B,U=W+B,V=F.style.marginLeft>0?" ".repeat(F.style.marginLeft):"";if(F.style.marginTop>0)J.push("".repeat(F.style.marginTop));if(F.title){let K=Y?Y(F.title):F.title,C=G.h.repeat(Math.floor((W-$8(F.title).length)/2)),E=G.h.repeat(W-$8(F.title).length-$8(C).length+B);J.push(`${V}${G.tl}${C}${K}${E}${G.tr}`)}else J.push(`${V}${G.tl}${G.h.repeat(U)}${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 K=0;K<H;K++)if(K<Q||K>=Q+X.length)J.push(`${V}${G.v}${" ".repeat(U)}${G.v}`);else{let C=X[K-Q],E=" ".repeat(B),A=" ".repeat(W-$8(C).length);J.push(`${V}${G.v}${E}${C}${A}${G.v}`)}if(J.push(`${V}${G.bl}${G.h.repeat(U)}${G.br}`),F.style.marginBottom>0)J.push("".repeat(F.style.marginBottom));return J.join(`
50
+ `)}var F8,$B,xZ,yZ,uZ,mZ,FB,pZ,cZ,dZ,eY,U0,rZ,DB,oZ;var GB=M(()=>{({env:F8={},argv:$B=[],platform:xZ=""}=typeof process>"u"?{}:process),yZ="NO_COLOR"in F8||$B.includes("--no-color"),uZ="FORCE_COLOR"in F8||$B.includes("--color"),mZ=xZ==="win32",FB=F8.TERM==="dumb",pZ=m9&&m9.isatty&&m9.isatty(1)&&F8.TERM&&!FB,cZ="CI"in F8&&(("GITHUB_ACTIONS"in F8)||("GITLAB_CI"in F8)||("CIRCLECI"in F8)),dZ=!yZ&&(uZ||mZ&&!FB||pZ||cZ);eY={reset:DD(0,0),bold:DD(1,22,"\x1B[22m\x1B[1m"),dim:DD(2,22,"\x1B[22m\x1B[2m"),italic:DD(3,23),underline:DD(4,24),inverse:DD(7,27),hidden:DD(8,28),strikethrough:DD(9,29),black:DD(30,39),red:DD(31,39),green:DD(32,39),yellow:DD(33,39),blue:DD(34,39),magenta:DD(35,39),cyan:DD(36,39),white:DD(37,39),gray:DD(90,39),bgBlack:DD(40,49),bgRed:DD(41,49),bgGreen:DD(42,49),bgYellow:DD(43,49),bgBlue:DD(44,49),bgMagenta:DD(45,49),bgCyan:DD(46,49),bgWhite:DD(47,49),blackBright:DD(90,39),redBright:DD(91,39),greenBright:DD(92,39),yellowBright:DD(93,39),blueBright:DD(94,39),magentaBright:DD(95,39),cyanBright:DD(96,39),whiteBright:DD(97,39),bgBlackBright:DD(100,49),bgRedBright:DD(101,49),bgGreenBright:DD(102,49),bgYellowBright:DD(103,49),bgBlueBright:DD(104,49),bgMagentaBright:DD(105,49),bgCyanBright:DD(106,49),bgWhiteBright:DD(107,49)};U0=nZ();rZ=[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("|");DB={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"}},oZ={borderColor:"white",borderStyle:"rounded",valign:"center",padding:2,marginLeft:1,marginTop:1,marginBottom:1}});var TB={};v8(TB,{prompt:()=>wB,kCancel:()=>IB});import a0,{stdin as aZ,stdout as tZ}from"process";import YB from"readline";import{WriteStream as eZ}from"tty";function Dq(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function $q(){if(BB)return Z$;BB=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 Z$={cursor:X,scroll:J,erase:Y,beep:F},Z$}function Fq(){if(HB)return p9.exports;HB=1;let D=process||{},$=D.argv||[],F=D.env||{},X=!(!!F.NO_COLOR||$.includes("--no-color"))&&(!!F.FORCE_COLOR||$.includes("--color")||D.platform==="win32"||(D.stdout||{}).isTTY&&F.TERM!=="dumb"||!!F.CI),J=(B,H,W=B)=>(U)=>{let V=""+U,Q=V.indexOf(H,B.length);return~Q?B+Y(V,H,W,Q)+H:B+V+H},Y=(B,H,W,U)=>{let V="",Q=0;do V+=B.substring(Q,U)+W,Q=U+H.length,U=B.indexOf(H,Q);while(~U);return V+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 p9.exports=G(),p9.exports.createColors=G,p9.exports}function Jq({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 OB(D){if(typeof D!="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(Gq,"")}function MB(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function d6(D,$={}){if(typeof D!="string"||D.length===0||($={ambiguousIsNarrow:!0,...$},D=OB(D),D.length===0))return 0;D=D.replace(Wq()," ");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(Bq.eastAsianWidth(J)){case"F":case"W":X+=2;break;case"A":X+=F;break;default:X+=1}}return X}function Vq(){let D=new Map;for(let[$,F]of Object.entries(ND)){for(let[X,J]of Object.entries(F))ND[X]={open:`\x1B[${J[0]}m`,close:`\x1B[${J[1]}m`},F[X]=ND[X],D.set(J[0],J[1]);Object.defineProperty(ND,$,{value:F,enumerable:!1})}return Object.defineProperty(ND,"codes",{value:D,enumerable:!1}),ND.color.close="\x1B[39m",ND.bgColor.close="\x1B[49m",ND.color.ansi=WB(),ND.color.ansi256=_B(),ND.color.ansi16m=UB(),ND.bgColor.ansi=WB(q$),ND.bgColor.ansi256=_B(q$),ND.bgColor.ansi16m=UB(q$),Object.defineProperties(ND,{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:($)=>ND.rgbToAnsi256(...ND.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)=>ND.ansi256ToAnsi(ND.rgbToAnsi256($,F,X)),enumerable:!1},hexToAnsi:{value:($)=>ND.ansi256ToAnsi(ND.hexToAnsi256($)),enumerable:!1}}),ND}function AB(D,$,F){return String(D).normalize().replace(/\r\n/g,`
51
51
  `).split(`
52
- `).map((X)=>Kq(X,$,F)).join(`
53
- `)}function PB(D,$){if(typeof D=="string")return d9.aliases.get(D)===$;for(let F of D)if(F!==void 0&&PB(F,$))return!0;return!1}function Cq(D,$){if(D===$)return;let F=D.split(`
52
+ `).map((X)=>Rq(X,$,F)).join(`
53
+ `)}function PB(D,$){if(typeof D=="string")return d9.aliases.get(D)===$;for(let F of D)if(F!==void 0&&PB(F,$))return!0;return!1}function Mq(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 c9(D,$){let F=D;F.isTTY&&F.setRawMode($)}class l6{constructor(D,$=!0){q0(this,"input"),q0(this,"output"),q0(this,"_abortSignal"),q0(this,"rl"),q0(this,"opts"),q0(this,"_render"),q0(this,"_track",!1),q0(this,"_prevFrame",""),q0(this,"_subscribers",new Map),q0(this,"_cursor",0),q0(this,"state","initial"),q0(this,"error",""),q0(this,"value");let{input:F=sZ,output:X=rZ,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(KB);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new oZ(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=YB.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),YB.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),c9(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(t0.cursor.show),this.output.off("resize",this.render),c9(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(t0.cursor.show),this.output.off("resize",this.render),c9(this.input,!1),D(KB)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&d9.aliases.has($.name)&&this.emit("cursor",d9.aliases.get($.name)),d9.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")}PB([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(`
55
+ `),J=[];for(let Y=0;Y<Math.max(F.length,X.length);Y++)F[Y]!==X[Y]&&J.push(Y);return J}function c9(D,$){let F=D;F.isTTY&&F.setRawMode($)}class l6{constructor(D,$=!0){q0(this,"input"),q0(this,"output"),q0(this,"_abortSignal"),q0(this,"rl"),q0(this,"opts"),q0(this,"_render"),q0(this,"_track",!1),q0(this,"_prevFrame",""),q0(this,"_subscribers",new Map),q0(this,"_cursor",0),q0(this,"state","initial"),q0(this,"error",""),q0(this,"value");let{input:F=aZ,output:X=tZ,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(KB);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let F=new eZ(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=YB.createInterface({input:this.input,output:F,tabSize:2,prompt:"",escapeCodeTimeout:50}),YB.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),c9(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(t0.cursor.show),this.output.off("resize",this.render),c9(this.input,!1),D(this.value)}),this.once("cancel",()=>{this.output.write(t0.cursor.show),this.output.off("resize",this.render),c9(this.input,!1),D(KB)})})}onKeypress(D,$){if(this.state==="error"&&(this.state="active"),$?.name&&(!this._track&&d9.aliases.has($.name)&&this.emit("cursor",d9.aliases.get($.name)),d9.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")}PB([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
56
  `),c9(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let D=AB(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
57
- `).length-1;this.output.write(t0.cursor.move(-999,D*-1))}render(){let D=AB(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(t0.cursor.hide);else{let $=Cq(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(t0.cursor.move(0,F)),this.output.write(t0.erase.lines(1));let X=D.split(`
57
+ `).length-1;this.output.write(t0.cursor.move(-999,D*-1))}render(){let D=AB(this._render(this)??"",process.stdout.columns,{hard:!0});if(D!==this._prevFrame){if(this.state==="initial")this.output.write(t0.cursor.hide);else{let $=Mq(this._prevFrame,D);if(this.restoreCursor(),$&&$?.length===1){let F=$[0];this.output.write(t0.cursor.move(0,F)),this.output.write(t0.erase.lines(1));let X=D.split(`
58
58
  `);this.output.write(X[F]),this._prevFrame=D,this.output.write(t0.cursor.move(0,X.length-F-1));return}if($&&$?.length>1){let F=$[0];this.output.write(t0.cursor.move(0,F)),this.output.write(t0.erase.down());let X=D.split(`
59
59
  `).slice(F);this.output.write(X.join(`
60
- `)),this._prevFrame=D;return}this.output.write(t0.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function Lq(){return a0.platform!=="win32"?a0.env.TERM!=="linux":!!a0.env.CI||!!a0.env.WT_SESSION||!!a0.env.TERMINUS_SUBLIME||a0.env.ConEmuTask==="{cmd::Cmder}"||a0.env.TERM_PROGRAM==="Terminus-Sublime"||a0.env.TERM_PROGRAM==="vscode"||a0.env.TERM==="xterm-256color"||a0.env.TERM==="alacritty"||a0.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function wB(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,wB);throw J}case"undefined":return;case"null":return null;case"symbol":return IB;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await fq({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await kq({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await vq({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await gq({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 Z$,BB,t0,p9,HB,Dq,k,Fq,ZB,Xq,Jq,Gq=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},Yq,q$=10,WB=(D=0)=>($)=>`\x1B[${$+D}m`,_B=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,UB=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,ND,Bq,Hq,_q,l9,Uq=39,z$="\x07",qB="[",Vq="]",NB="m",I$,VB=(D)=>`${l9.values().next().value}${qB}${D}${NB}`,QB=(D)=>`${l9.values().next().value}${I$}${D}${z$}`,Qq=(D)=>D.split(" ").map(($)=>d6($)),N$=(D,$,F)=>{let X=[...$],J=!1,Y=!1,G=d6(OB(D[D.length-1]));for(let[B,H]of X.entries()){let W=d6(H);if(G+W<=F?D[D.length-1]+=H:(D.push(H),G=0),l9.has(H)&&(J=!0,Y=X.slice(B+1).join("").startsWith(I$)),J){Y?H===z$&&(J=!1,Y=!1):H===NB&&(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())},Aq=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(d6($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},Kq=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,Y,G=Qq(D),B=[""];for(let[W,U]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let V=d6(B[B.length-1]);if(W!==0&&(V>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),V=0),(V>0||F.trim===!1)&&(B[B.length-1]+=" ",V++)),F.hard&&G[W]>$){let Q=$-V,K=1+Math.floor((G[W]-Q-1)/$);Math.floor((G[W]-1)/$)<K&&B.push(""),N$(B,U,$);continue}if(V+G[W]>$&&V>0&&G[W]>0){if(F.wordWrap===!1&&V<$){N$(B,U,$);continue}B.push("")}if(V+G[W]>$&&F.wordWrap===!1){N$(B,U,$);continue}B[B.length-1]+=U}F.trim!==!1&&(B=B.map((W)=>Aq(W)));let H=[...B.join(`
61
- `)];for(let[W,U]of H.entries()){if(X+=U,l9.has(U)){let{groups:Q}=new RegExp(`(?:\\${qB}(?<code>\\d+)m|\\${I$}(?<uri>.*)${z$})`).exec(H.slice(W).join(""))||{groups:{}};if(Q.code!==void 0){let K=Number.parseFloat(Q.code);J=K===Uq?void 0:K}else Q.uri!==void 0&&(Y=Q.uri.length===0?void 0:Q.uri)}let V=_q.codes.get(Number(J));H[W+1]===`
60
+ `)),this._prevFrame=D;return}this.output.write(t0.erase.down())}this.output.write(D),this.state==="initial"&&(this.state="active"),this._prevFrame=D}}}function Iq(){return a0.platform!=="win32"?a0.env.TERM!=="linux":!!a0.env.CI||!!a0.env.WT_SESSION||!!a0.env.TERMINUS_SUBLIME||a0.env.ConEmuTask==="{cmd::Cmder}"||a0.env.TERM_PROGRAM==="Terminus-Sublime"||a0.env.TERM_PROGRAM==="vscode"||a0.env.TERM==="xterm-256color"||a0.env.TERM==="alacritty"||a0.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}async function wB(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,wB);throw J}case"undefined":return;case"null":return null;case"symbol":return IB;default:case"default":return $.default??$.initial}};if(!$.type||$.type==="text")return await gq({message:D,defaultValue:$.default,placeholder:$.placeholder,initialValue:$.initial}).then(F);if($.type==="confirm")return await hq({message:D,initialValue:$.initial}).then(F);if($.type==="select")return await xq({message:D,options:$.options.map((X)=>typeof X==="string"?{value:X,label:X}:X),initialValue:$.initial}).then(F);if($.type==="multiselect")return await yq({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 Z$,BB,t0,p9,HB,Xq,k,Gq,ZB,Yq,Bq,Hq=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},Wq,q$=10,WB=(D=0)=>($)=>`\x1B[${$+D}m`,_B=(D=0)=>($)=>`\x1B[${38+D};5;${$}m`,UB=(D=0)=>($,F,X)=>`\x1B[${38+D};2;${$};${F};${X}m`,ND,_q,Uq,Qq,l9,Aq=39,z$="\x07",qB="[",Kq="]",NB="m",I$,VB=(D)=>`${l9.values().next().value}${qB}${D}${NB}`,QB=(D)=>`${l9.values().next().value}${I$}${D}${z$}`,Eq=(D)=>D.split(" ").map(($)=>d6($)),N$=(D,$,F)=>{let X=[...$],J=!1,Y=!1,G=d6(OB(D[D.length-1]));for(let[B,H]of X.entries()){let W=d6(H);if(G+W<=F?D[D.length-1]+=H:(D.push(H),G=0),l9.has(H)&&(J=!0,Y=X.slice(B+1).join("").startsWith(I$)),J){Y?H===z$&&(J=!1,Y=!1):H===NB&&(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())},Cq=(D)=>{let $=D.split(" "),F=$.length;for(;F>0&&!(d6($[F-1])>0);)F--;return F===$.length?D:$.slice(0,F).join(" ")+$.slice(F).join("")},Rq=(D,$,F={})=>{if(F.trim!==!1&&D.trim()==="")return"";let X="",J,Y,G=Eq(D),B=[""];for(let[W,U]of D.split(" ").entries()){F.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let V=d6(B[B.length-1]);if(W!==0&&(V>=$&&(F.wordWrap===!1||F.trim===!1)&&(B.push(""),V=0),(V>0||F.trim===!1)&&(B[B.length-1]+=" ",V++)),F.hard&&G[W]>$){let Q=$-V,K=1+Math.floor((G[W]-Q-1)/$);Math.floor((G[W]-1)/$)<K&&B.push(""),N$(B,U,$);continue}if(V+G[W]>$&&V>0&&G[W]>0){if(F.wordWrap===!1&&V<$){N$(B,U,$);continue}B.push("")}if(V+G[W]>$&&F.wordWrap===!1){N$(B,U,$);continue}B[B.length-1]+=U}F.trim!==!1&&(B=B.map((W)=>Cq(W)));let H=[...B.join(`
61
+ `)];for(let[W,U]of H.entries()){if(X+=U,l9.has(U)){let{groups:Q}=new RegExp(`(?:\\${qB}(?<code>\\d+)m|\\${I$}(?<uri>.*)${z$})`).exec(H.slice(W).join(""))||{groups:{}};if(Q.code!==void 0){let K=Number.parseFloat(Q.code);J=K===Aq?void 0:K}else Q.uri!==void 0&&(Y=Q.uri.length===0?void 0:Q.uri)}let V=Qq.codes.get(Number(J));H[W+1]===`
62
62
  `?(Y&&(X+=QB("")),J&&V&&(X+=VB(V))):U===`
63
- `&&(J&&V&&(X+=VB(J)),Y&&(X+=QB(Y)))}return X},Eq,d9,KB,Rq,Oq=(D,$,F)=>($ in D)?Rq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,q0=(D,$,F)=>(Oq(D,typeof $!="symbol"?$+"":$,F),F),LB,Mq,Zq=(D,$,F)=>($ in D)?Mq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,EB=(D,$,F)=>(Zq(D,typeof $!="symbol"?$+"":$,F),F),qq,Nq,Pq=(D,$,F)=>($ in D)?Nq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,CB=(D,$,F)=>(Pq(D,typeof $!="symbol"?$+"":$,F),F),jB,zB,jq,e0=(D,$)=>jq?D:$,zq,Iq,wq,Tq,OD,I1,P$,L$,Sq,RB,bq,i9=(D)=>{switch(D){case"initial":case"active":return k.cyan(zq);case"cancel":return k.red(Iq);case"error":return k.yellow(wq);case"submit":return k.green(Tq)}},j$=(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,V,Q)=>{let K=V===0&&H,C=V===Q.length-1&&W;return K||C?k.dim("..."):X(U,V+B===$)})},fq=(D)=>new zB({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${k.gray(OD)}
63
+ `&&(J&&V&&(X+=VB(J)),Y&&(X+=QB(Y)))}return X},Oq,d9,KB,Zq,qq=(D,$,F)=>($ in D)?Zq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,q0=(D,$,F)=>(qq(D,typeof $!="symbol"?$+"":$,F),F),LB,Nq,Pq=(D,$,F)=>($ in D)?Nq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,EB=(D,$,F)=>(Pq(D,typeof $!="symbol"?$+"":$,F),F),Lq,jq,zq=(D,$,F)=>($ in D)?jq(D,$,{enumerable:!0,configurable:!0,writable:!0,value:F}):D[$]=F,CB=(D,$,F)=>(zq(D,typeof $!="symbol"?$+"":$,F),F),jB,zB,wq,e0=(D,$)=>wq?D:$,Tq,Sq,bq,fq,OD,I1,P$,L$,kq,RB,vq,i9=(D)=>{switch(D){case"initial":case"active":return k.cyan(Tq);case"cancel":return k.red(Sq);case"error":return k.yellow(bq);case"submit":return k.green(fq)}},j$=(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,V,Q)=>{let K=V===0&&H,C=V===Q.length-1&&W;return K||C?k.dim("..."):X(U,V+B===$)})},gq=(D)=>new zB({validate:D.validate,placeholder:D.placeholder,defaultValue:D.defaultValue,initialValue:D.initialValue,render(){let $=`${k.gray(OD)}
64
64
  ${i9(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(OD)} ${X}
@@ -68,18 +68,18 @@ ${k.yellow(I1)} ${k.yellow(this.error)}
68
68
  `;case"submit":return`${$}${k.gray(OD)} ${k.dim(this.value||D.placeholder)}`;case"cancel":return`${$}${k.gray(OD)} ${k.strikethrough(k.dim(this.value??""))}${this.value?.trim()?`
69
69
  ${k.gray(OD)}`:""}`;default:return`${$}${k.cyan(OD)} ${X}
70
70
  ${k.cyan(I1)}
71
- `}}}).prompt(),kq=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new LB({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${k.gray(OD)}
71
+ `}}}).prompt(),hq=(D)=>{let $=D.active??"Yes",F=D.inactive??"No";return new LB({active:$,inactive:F,initialValue:D.initialValue??!0,render(){let X=`${k.gray(OD)}
72
72
  ${i9(this.state)} ${D.message}
73
73
  `,J=this.value?$:F;switch(this.state){case"submit":return`${X}${k.gray(OD)} ${k.dim(J)}`;case"cancel":return`${X}${k.gray(OD)} ${k.strikethrough(k.dim(J))}
74
74
  ${k.gray(OD)}`;default:return`${X}${k.cyan(OD)} ${this.value?`${k.green(P$)} ${$}`:`${k.dim(L$)} ${k.dim($)}`} ${k.dim("/")} ${this.value?`${k.dim(L$)} ${k.dim(F)}`:`${k.green(P$)} ${F}`}
75
75
  ${k.cyan(I1)}
76
- `}}}).prompt()},vq=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${k.dim(J)}`;case"active":return`${k.green(P$)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`;case"cancelled":return`${k.strikethrough(k.dim(J))}`;default:return`${k.dim(L$)} ${k.dim(J)}`}};return new jB({options:D.options,initialValue:D.initialValue,render(){let F=`${k.gray(OD)}
76
+ `}}}).prompt()},xq=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);switch(X){case"selected":return`${k.dim(J)}`;case"active":return`${k.green(P$)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`;case"cancelled":return`${k.strikethrough(k.dim(J))}`;default:return`${k.dim(L$)} ${k.dim(J)}`}};return new jB({options:D.options,initialValue:D.initialValue,render(){let F=`${k.gray(OD)}
77
77
  ${i9(this.state)} ${D.message}
78
78
  `;switch(this.state){case"submit":return`${F}${k.gray(OD)} ${$(this.options[this.cursor],"selected")}`;case"cancel":return`${F}${k.gray(OD)} ${$(this.options[this.cursor],"cancelled")}
79
79
  ${k.gray(OD)}`;default:return`${F}${k.cyan(OD)} ${j$({cursor:this.cursor,options:this.options,maxItems:D.maxItems,style:(X,J)=>$(X,J?"active":"inactive")}).join(`
80
80
  ${k.cyan(OD)} `)}
81
81
  ${k.cyan(I1)}
82
- `}}}).prompt()},gq=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${k.cyan(Sq)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="selected"?`${k.green(RB)} ${k.dim(J)}`:X==="cancelled"?`${k.strikethrough(k.dim(J))}`:X==="active-selected"?`${k.green(RB)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="submitted"?`${k.dim(J)}`:`${k.dim(bq)} ${k.dim(J)}`};return new qq({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.
82
+ `}}}).prompt()},yq=(D)=>{let $=(F,X)=>{let J=F.label??String(F.value);return X==="active"?`${k.cyan(kq)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="selected"?`${k.green(RB)} ${k.dim(J)}`:X==="cancelled"?`${k.strikethrough(k.dim(J))}`:X==="active-selected"?`${k.green(RB)} ${J} ${F.hint?k.dim(`(${F.hint})`):""}`:X==="submitted"?`${k.dim(J)}`:`${k.dim(vq)} ${k.dim(J)}`};return new Lq({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(OD)}
84
84
  ${i9(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(OD)} ${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(OD)} ${J.trim()?`${J}
@@ -91,38 +91,38 @@ ${J}
91
91
  `}default:return`${F}${k.cyan(OD)} ${j$({options:this.options,cursor:this.cursor,maxItems:D.maxItems,style:X}).join(`
92
92
  ${k.cyan(OD)} `)}
93
93
  ${k.cyan(I1)}
94
- `}}}).prompt()},IB;var SB=M(()=>{t0=tZ(),p9={exports:{}};Dq=eZ(),k=aZ(Dq);Fq=$q();ZB={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 U=H[W],V=$.length(U);if(B>=J-(V==2?1:0))if(B+V<=Y)G+=U;else break;B+=V}return G}})(ZB);Xq=ZB.exports,Jq=MB(Xq),Yq=MB(Gq);ND={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(ND.modifier);Bq=Object.keys(ND.color),Hq=Object.keys(ND.bgColor);[...Bq,...Hq];_q=Wq(),l9=new Set(["\x1B","\x9B"]),I$=`${Vq}8;;`;Eq=["up","down","left","right","space","enter","cancel"],d9={actions:new Set(Eq),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");KB=Symbol("clack:cancel");Rq=Object.defineProperty;LB=class LB extends l6{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(t0.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};Mq=Object.defineProperty,qq=class extends l6{constructor(D){super(D,!1),EB(this,"options"),EB(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]}},Nq=Object.defineProperty;jB=class jB extends l6{constructor(D){super(D,!1),CB(this,"options"),CB(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}};zB=class zB extends l6{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)})}};jq=Lq(),zq=e0("\u276F",">"),Iq=e0("\u25A0","x"),wq=e0("\u25B2","x"),Tq=e0("\u2714","\u221A"),OD=e0(""),I1=e0(""),P$=e0("\u25CF",">"),L$=e0("\u25CB"," "),Sq=e0("\u25FB","[\u2022]"),RB=e0("\u25FC","[+]"),bq=e0("\u25FB","[ ]");`${k.gray(OD)} `;IB=Symbol.for("cancel")});import bB from"process";function yq(){if(globalThis.process?.env)for(let D of xq){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 h8(D){return D?D!=="false":!1}function eq(){let D=tq.find(($)=>$[0]);if(D)return{name:D[1]}}function $N({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 XN(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(FN,"")}function JN(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 GN(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function YN(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 BN(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function HN(D,{ambiguousAsWide:$=!1}={}){if(BN(D),GN(D)||YN(D)||$&&JN(D))return 2;return 1}function VN(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=XN(D);if(D.length===0)return 0;let J=0,Y={ambiguousAsWide:!F};for(let{segment:G}of _N.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(UN.test(G))continue;if(WN().test(G)){J+=2;continue}J+=HN(B,Y)}return J}function QN(){let{env:D}=bB,{TERM:$,TERM_PROGRAM:F}=D;if(bB.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 vB(D){if(typeof Intl!=="object"||!Intl.Segmenter)return $8(D).length;return VN(D)}function n9(D){return D.replace(/`([^`]+)`/gm,($,F)=>U0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${U0.underline(F)} `)}function CN(D="white"){return U0[D]||U0.white}function RN(D="bgWhite"){return U0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||U0.bgWhite}function ON(D={}){let $=MN();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return oY({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (SB(),TB)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(w$||T$)?new xB:new u9],...D})}function MN(){if(mq)return aD.debug;if(T$)return aD.warn;return aD.info}var s9,i6=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?s9:globalThis),X8,hq,xq,gB,uq,w$,hB,mq,T$,pq,cq,dq,fB,lq,iq,nq,sq,rq,oq,aq,tq,DN,FN,WN=()=>{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},_N,UN,AN,KN,EN,N2=(D,$)=>EN?D:$,kB,xB,R;var FD=M(()=>{R$();R$();tY();GB();s9=Object.create(null),X8=new Proxy(s9,{get(D,$){return i6()[$]??s9[$]},has(D,$){let F=i6();return $ in F||$ in s9},set(D,$,F){let X=i6(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=i6(!0);return delete F[$],!0},ownKeys(){let D=i6(!0);return Object.keys(D)}}),hq=typeof process<"u"&&process.env&&"development"||"",xq=[["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}]];gB=yq();gB.name;uq=globalThis.process?.platform||"",w$=h8(X8.CI)||gB.ci!==!1,hB=h8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),mq=h8(X8.DEBUG),T$=hq==="test"||h8(X8.TEST);h8(X8.MINIMAL);pq=/^win/i.test(uq);!h8(X8.NO_COLOR)&&(h8(X8.FORCE_COLOR)||(hB||pq)&&X8.TERM);cq=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(cq?.split(".")[0]);dq=globalThis.process||Object.create(null),fB={versions:{}};new Proxy(dq,{get(D,$){if($==="env")return X8;if($ in D)return D[$];if($ in fB)return fB[$]}});lq=globalThis.process?.release?.name==="node",iq=!!globalThis.Bun||!!globalThis.process?.versions?.bun,nq=!!globalThis.Deno,sq=!!globalThis.fastly,rq=!!globalThis.Netlify,oq=!!globalThis.EdgeRuntime,aq=globalThis.navigator?.userAgent==="Cloudflare-Workers",tq=[[rq,"netlify"],[oq,"edge-light"],[aq,"workerd"],[sq,"fastly"],[nq,"deno"],[iq,"bun"],[lq,"node"]];DN=eq();DN?.name;FN=$N();_N=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},UN=/^\p{Default_Ignorable_Code_Point}$/u;AN={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},KN={0:"red",1:"yellow"},EN=QN(),kB={error:N2("\u2716","\xD7"),fatal:N2("\u2716","\xD7"),ready:N2("\u2714","\u221A"),warn:N2("\u26A0","\u203C"),info:N2("\u2139","i"),success:N2("\u2714","\u221A"),debug:N2("\u2699","D"),trace:N2("\u2192","\u2192"),fail:N2("\u2716","\xD7"),start:N2("\u25D0","o"),log:""};xB=class xB extends u9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
94
+ `}}}).prompt()},IB;var SB=M(()=>{t0=$q(),p9={exports:{}};Xq=Fq(),k=Dq(Xq);Gq=Jq();ZB={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 U=H[W],V=$.length(U);if(B>=J-(V==2?1:0))if(B+V<=Y)G+=U;else break;B+=V}return G}})(ZB);Yq=ZB.exports,Bq=MB(Yq),Wq=MB(Hq);ND={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(ND.modifier);_q=Object.keys(ND.color),Uq=Object.keys(ND.bgColor);[..._q,...Uq];Qq=Vq(),l9=new Set(["\x1B","\x9B"]),I$=`${Kq}8;;`;Oq=["up","down","left","right","space","enter","cancel"],d9={actions:new Set(Oq),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};globalThis.process.platform.startsWith("win");KB=Symbol("clack:cancel");Zq=Object.defineProperty;LB=class LB extends l6{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(t0.cursor.move(0,-1)),this.value=$,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};Nq=Object.defineProperty,Lq=class extends l6{constructor(D){super(D,!1),EB(this,"options"),EB(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]}},jq=Object.defineProperty;jB=class jB extends l6{constructor(D){super(D,!1),CB(this,"options"),CB(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}};zB=class zB extends l6{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)})}};wq=Iq(),Tq=e0("\u276F",">"),Sq=e0("\u25A0","x"),bq=e0("\u25B2","x"),fq=e0("\u2714","\u221A"),OD=e0(""),I1=e0(""),P$=e0("\u25CF",">"),L$=e0("\u25CB"," "),kq=e0("\u25FB","[\u2022]"),RB=e0("\u25FC","[+]"),vq=e0("\u25FB","[ ]");`${k.gray(OD)} `;IB=Symbol.for("cancel")});import bB from"process";function pq(){if(globalThis.process?.env)for(let D of mq){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 h8(D){return D?D!=="false":!1}function FN(){let D=$N.find(($)=>$[0]);if(D)return{name:D[1]}}function JN({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 YN(D){if(typeof D!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof D}\``);return D.replace(GN,"")}function BN(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 HN(D){return D===12288||D>=65281&&D<=65376||D>=65504&&D<=65510}function WN(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 _N(D){if(!Number.isSafeInteger(D))throw TypeError(`Expected a code point, got \`${typeof D}\`.`)}function UN(D,{ambiguousAsWide:$=!1}={}){if(_N(D),HN(D)||WN(D)||$&&BN(D))return 2;return 1}function KN(D,$={}){if(typeof D!=="string"||D.length===0)return 0;let{ambiguousIsNarrow:F=!0,countAnsiEscapeCodes:X=!1}=$;if(!X)D=YN(D);if(D.length===0)return 0;let J=0,Y={ambiguousAsWide:!F};for(let{segment:G}of QN.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(AN.test(G))continue;if(VN().test(G)){J+=2;continue}J+=UN(B,Y)}return J}function EN(){let{env:D}=bB,{TERM:$,TERM_PROGRAM:F}=D;if(bB.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 vB(D){if(typeof Intl!=="object"||!Intl.Segmenter)return $8(D).length;return KN(D)}function n9(D){return D.replace(/`([^`]+)`/gm,($,F)=>U0.cyan(F)).replace(/\s+_([^_]+)_\s+/gm,($,F)=>` ${U0.underline(F)} `)}function MN(D="white"){return U0[D]||U0.white}function ZN(D="bgWhite"){return U0[`bg${D[0].toUpperCase()}${D.slice(1)}`]||U0.bgWhite}function qN(D={}){let $=NN();if(process.env.CONSOLA_LEVEL)$=Number.parseInt(process.env.CONSOLA_LEVEL)??$;return oY({level:$,defaults:{level:$},stdout:process.stdout,stderr:process.stderr,prompt:(...X)=>Promise.resolve().then(() => (SB(),TB)).then((J)=>J.prompt(...X)),reporters:D.reporters||[D.fancy??!(w$||T$)?new xB:new u9],...D})}function NN(){if(dq)return aD.debug;if(T$)return aD.warn;return aD.info}var s9,i6=(D)=>globalThis.process?.env||import.meta.env||globalThis.Deno?.env.toObject()||globalThis.__env__||(D?s9:globalThis),X8,uq,mq,gB,cq,w$,hB,dq,T$,lq,iq,nq,fB,sq,rq,oq,aq,tq,eq,DN,$N,XN,GN,VN=()=>{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},QN,AN,CN,RN,ON,N2=(D,$)=>ON?D:$,kB,xB,R;var FD=M(()=>{R$();R$();tY();GB();s9=Object.create(null),X8=new Proxy(s9,{get(D,$){return i6()[$]??s9[$]},has(D,$){let F=i6();return $ in F||$ in s9},set(D,$,F){let X=i6(!0);return X[$]=F,!0},deleteProperty(D,$){if(!$)return!1;let F=i6(!0);return delete F[$],!0},ownKeys(){let D=i6(!0);return Object.keys(D)}}),uq=typeof process<"u"&&process.env&&"development"||"",mq=[["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}]];gB=pq();gB.name;cq=globalThis.process?.platform||"",w$=h8(X8.CI)||gB.ci!==!1,hB=h8(globalThis.process?.stdout&&globalThis.process?.stdout.isTTY),dq=h8(X8.DEBUG),T$=uq==="test"||h8(X8.TEST);h8(X8.MINIMAL);lq=/^win/i.test(cq);!h8(X8.NO_COLOR)&&(h8(X8.FORCE_COLOR)||(hB||lq)&&X8.TERM);iq=(globalThis.process?.versions?.node||"").replace(/^v/,"")||null;Number(iq?.split(".")[0]);nq=globalThis.process||Object.create(null),fB={versions:{}};new Proxy(nq,{get(D,$){if($==="env")return X8;if($ in D)return D[$];if($ in fB)return fB[$]}});sq=globalThis.process?.release?.name==="node",rq=!!globalThis.Bun||!!globalThis.process?.versions?.bun,oq=!!globalThis.Deno,aq=!!globalThis.fastly,tq=!!globalThis.Netlify,eq=!!globalThis.EdgeRuntime,DN=globalThis.navigator?.userAgent==="Cloudflare-Workers",$N=[[tq,"netlify"],[eq,"edge-light"],[DN,"workerd"],[aq,"fastly"],[oq,"deno"],[rq,"bun"],[sq,"node"]];XN=FN();XN?.name;GN=JN();QN=globalThis.Intl?.Segmenter?new Intl.Segmenter:{segment:(D)=>D.split("")},AN=/^\p{Default_Ignorable_Code_Point}$/u;CN={info:"cyan",fail:"red",success:"green",ready:"green",start:"magenta"},RN={0:"red",1:"yellow"},ON=EN(),kB={error:N2("\u2716","\xD7"),fatal:N2("\u2716","\xD7"),ready:N2("\u2714","\u221A"),warn:N2("\u26A0","\u203C"),info:N2("\u2139","i"),success:N2("\u2714","\u221A"),debug:N2("\u2699","D"),trace:N2("\u2192","\u2192"),fail:N2("\u2716","\xD7"),start:N2("\u25D0","o"),log:""};xB=class xB extends u9{formatStack(D,$,F){let X=" ".repeat((F?.errorLevel||0)+1);return`
95
95
  ${X}`+M$(D,$).map((J)=>" "+J.replace(/^at +/,(Y)=>U0.gray(Y)).replace(/\((.+)\)/,(Y,G)=>`(${U0.cyan(G)})`)).join(`
96
- ${X}`)}formatType(D,$,F){let X=AN[D.type]||KN[D.level]||"gray";if($)return RN(X)(U0.black(` ${D.type.toUpperCase()} `));let J=typeof kB[D.type]==="string"?kB[D.type]:D.icon||D.type;return J?CN(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
96
+ ${X}`)}formatType(D,$,F){let X=CN[D.type]||RN[D.level]||"gray";if($)return ZN(X)(U0.black(` ${D.type.toUpperCase()} `));let J=typeof kB[D.type]==="string"?kB[D.type]:D.icon||D.type;return J?MN(X)(J):""}formatLogObj(D,$){let[F,...X]=this.formatArgs(D.args,$).split(`
97
97
  `);if(D.type==="box")return JB(n9(F+(X.length>0?`
98
98
  `+X.join(`
99
99
  `):"")),{title:D.title?n9(D.title):void 0,style:D.style});let J=this.formatDate(D.date,$),Y=J&&U0.gray(J),G=D.badge??D.level<2,B=this.formatType(D,G,$),H=D.tag?U0.gray(D.tag):"",W,U=this.filterAndJoin([B,n9(F)]),V=this.filterAndJoin($.columns?[H,Y]:[H]),Q=($.columns||0)-vB(U)-vB(V)-2;if(W=Q>0&&($.columns||0)>=80?U+" ".repeat(Q)+V:(V?`${U0.gray(`[${V}]`)} `:"")+U,W+=n9(X.length>0?`
100
100
  `+X.join(`
101
101
  `):""),D.type==="trace"){let K=Error("Trace: "+D.message);W+=this.formatStack(K.stack||"",K.message)}return G?`
102
102
  `+W+`
103
- `:W}};R=ON()});var YD,S$,v,P2=(D)=>{switch(typeof D){case"undefined":return v.undefined;case"string":return v.string;case"number":return Number.isNaN(D)?v.nan:v.number;case"boolean":return v.boolean;case"function":return v.function;case"bigint":return v.bigint;case"symbol":return v.symbol;case"object":if(Array.isArray(D))return v.array;if(D===null)return v.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return v.promise;if(typeof Map<"u"&&D instanceof Map)return v.map;if(typeof Set<"u"&&D instanceof Set)return v.set;if(typeof Date<"u"&&D instanceof Date)return v.date;return v.object;default:return v.unknown}};var n6=M(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let Y={};for(let G of J)Y[G]=G;return Y},D.getValidEnumValues=(J)=>{let Y=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),G={};for(let B of Y)G[B]=J[B];return D.objectValues(G)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(Y){return J[Y]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let G in J)if(Object.prototype.hasOwnProperty.call(J,G))Y.push(G);return Y},D.find=(J,Y)=>{for(let G of J)if(Y(G))return G;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,Y=" | "){return J.map((G)=>typeof G==="string"?`'${G}'`:G).join(Y)}D.joinValues=X,D.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(YD||(YD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(S$||(S$={}));v=YD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var w,qN=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},A0;var r9=M(()=>{n6();w=YD.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"]);A0=class A0 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 A0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,YD.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()}};A0.create=(D)=>{return new A0(D)}});var NN=(D,$)=>{let F;switch(D.code){case w.invalid_type:if(D.received===v.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case w.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,YD.jsonStringifyReplacer)}`;break;case w.unrecognized_keys:F=`Unrecognized key(s) in object: ${YD.joinValues(D.keys,", ")}`;break;case w.invalid_union:F="Invalid input";break;case w.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${YD.joinValues(D.options)}`;break;case w.invalid_enum_value:F=`Invalid enum value. Expected ${YD.joinValues(D.options)}, received '${D.received}'`;break;case w.invalid_arguments:F="Invalid function arguments";break;case w.invalid_return_type:F="Invalid function return type";break;case w.invalid_date:F="Invalid date";break;case w.invalid_string:if(typeof D.validation==="object")if("includes"in D.validation){if(F=`Invalid input: must include "${D.validation.includes}"`,typeof D.validation.position==="number")F=`${F} at one or more positions greater than or equal to ${D.validation.position}`}else if("startsWith"in D.validation)F=`Invalid input: must start with "${D.validation.startsWith}"`;else if("endsWith"in D.validation)F=`Invalid input: must end with "${D.validation.endsWith}"`;else YD.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case w.too_small:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at least":"more than"} ${D.minimum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at least":"over"} ${D.minimum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="bigint")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(D.minimum))}`;else F="Invalid input";break;case w.too_big:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at most":"less than"} ${D.maximum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at most":"under"} ${D.maximum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="bigint")F=`BigInt must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly":D.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(D.maximum))}`;else F="Invalid input";break;case w.custom:F="Invalid input";break;case w.invalid_intersection_types:F="Intersection results could not be merged";break;case w.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case w.not_finite:F="Number must be finite";break;default:F=$.defaultError,YD.assertNever(D)}return{message:F}},x2;var b$=M(()=>{r9();n6();x2=NN});function PN(D){uB=D}function w1(){return uB}var uB;var o9=M(()=>{b$();uB=x2});function h(D,$){let F=w1(),X=s6({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===x2?void 0:x2].filter((J)=>!!J)});D.common.issues.push(X)}class tD{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 c;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 tD.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:Y}=X;if(J.status==="aborted")return c;if(Y.status==="aborted")return c;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 s6=(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}},LN,c,x8=(D)=>({status:"dirty",value:D}),F0=(D)=>({status:"valid",value:D}),a9=(D)=>D.status==="aborted",t9=(D)=>D.status==="dirty",J8=(D)=>D.status==="valid",T1=(D)=>typeof Promise<"u"&&D instanceof Promise;var f$=M(()=>{o9();b$();LN=[];c=Object.freeze({status:"aborted"})});var mB=()=>{};var m;var pB=M(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(m||(m={}))});class X2{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 t(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 $D{get description(){return this._def.description}_getType(D){return P2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:P2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new tD,ctx:{common:D.parent.common,data:D.data,parsedType:P2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(T1($))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:P2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return cB(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:P2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return J8(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)=>J8(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:P2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(T1(X)?X:Promise.resolve(X));return cB(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:w.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 J2({schema:this,typeName:d.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 F2.create(this,this._def)}nullable(){return u2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return $2.create(this)}promise(){return p8.create(this,this._def)}or(D){return g1.create([this,D],this._def)}and(D){return h1.create(this,D,this._def)}transform(D){return new J2({...t(this._def),schema:this,typeName:d.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new m1({...t(this._def),innerType:this,defaultValue:$,typeName:d.ZodDefault})}brand(){return new D7({typeName:d.ZodBranded,type:this,...t(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new p1({...t(this._def),innerType:this,catchValue:$,typeName:d.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return D3.create(this,D)}readonly(){return c1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function iB(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 pN(D){return new RegExp(`^${iB(D)}$`)}function nB(D){let $=`${lB}T${iB(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function cN(D,$){if(($==="v4"||!$)&&vN.test(D))return!0;if(($==="v6"||!$)&&hN.test(D))return!0;return!1}function dN(D,$){if(!SN.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 lN(D,$){if(($==="v4"||!$)&&gN.test(D))return!0;if(($==="v6"||!$)&&xN.test(D))return!0;return!1}function iN(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,Y=Number.parseInt(D.toFixed(J).replace(".","")),G=Number.parseInt($.toFixed(J).replace(".",""));return Y%G/10**J}function S1(D){if(D instanceof zD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=F2.create(S1(X))}return new zD({...D._def,shape:()=>$})}else if(D instanceof $2)return new $2({...D._def,type:S1(D.element)});else if(D instanceof F2)return F2.create(S1(D.unwrap()));else if(D instanceof u2)return u2.create(S1(D.unwrap()));else if(D instanceof j2)return j2.create(D.items.map(($)=>S1($)));else return D}function v$(D,$){let F=P2(D),X=P2($);if(D===$)return{valid:!0,data:D};else if(F===v.object&&X===v.object){let J=YD.objectKeys($),Y=YD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),G={...D,...$};for(let B of Y){let H=v$(D[B],$[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(F===v.array&&X===v.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=v$(G,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===v.date&&X===v.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function sB(D,$){return new H8({values:D,typeName:d.ZodEnum,...t($)})}function dB(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function rB(D,$={},F){if(D)return u8.create().superRefine((X,J)=>{let Y=D(X);if(Y instanceof Promise)return Y.then((G)=>{if(!G){let B=dB($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!Y){let G=dB($,X),B=G.fatal??F??!0;J.addIssue({code:"custom",...G,fatal:B})}return});return u8.create()}var cB=(D,$)=>{if(J8($))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 A0(D.common.issues);return this._error=F,this._error}}}},jN,zN,IN,wN,TN,SN,bN,fN,kN="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",k$,vN,gN,hN,xN,yN,uN,lB="((\\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])))",mN,D2,Y8,B8,f1,y8,r6,k1,v1,u8,G8,L2,o6,$2,zD,g1,y2=(D)=>{if(D instanceof x1)return y2(D.schema);else if(D instanceof J2)return y2(D.innerType());else if(D instanceof y1)return[D.value];else if(D instanceof H8)return D.options;else if(D instanceof u1)return YD.objectValues(D.enum);else if(D instanceof m1)return y2(D._def.innerType);else if(D instanceof k1)return[void 0];else if(D instanceof v1)return[null];else if(D instanceof F2)return[void 0,...y2(D.unwrap())];else if(D instanceof u2)return[null,...y2(D.unwrap())];else if(D instanceof D7)return y2(D.unwrap());else if(D instanceof c1)return y2(D.unwrap());else if(D instanceof p1)return y2(D._def.innerType);else return[]},e9,h1,j2,a6,t6,m8,b1,x1,y1,H8,u1,p8,J2,F2,u2,m1,p1,e6,nN,D7,D3,c1,sN,d,rN=(D,$={message:`Input not instance of ${D.name}`})=>rB((F)=>F instanceof D,$),oB,aB,oN,aN,tB,tN,eN,DP,$P,FP,XP,JP,GP,YP,BP,HP,WP,_P,UP,VP,QP,AP,KP,EP,CP,RP,OP,MP,ZP,qP,NP,PP,LP,jP,zP=()=>oB().optional(),IP=()=>aB().optional(),wP=()=>tB().optional(),TP,SP;var eB=M(()=>{r9();o9();pB();f$();n6();jN=/^c[^\s-]{8,}$/i,zN=/^[0-9a-z]+$/,IN=/^[0-9A-HJKMNP-TV-Z]{26}$/i,wN=/^[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,TN=/^[a-z0-9_-]{21}$/i,SN=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,bN=/^[-+]?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)?)??$/,fN=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,vN=/^(?:(?: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])$/,gN=/^(?:(?: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])$/,hN=/^(([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]))$/,xN=/^(([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])$/,yN=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,uN=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,mN=new RegExp(`^${lB}$`);D2=class D2 extends $D{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==v.string){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.string,received:J.parsedType}),c}let F=new tD,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),h(X,{code:w.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="max"){if(D.data.length>J.value)X=this._getOrReturnCtx(D,X),h(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let Y=D.data.length>J.value,G=D.data.length<J.value;if(Y||G){if(X=this._getOrReturnCtx(D,X),Y)h(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(G)h(X,{code:w.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!fN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"email",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!k$)k$=new RegExp(kN,"u");if(!k$.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"emoji",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!wN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"uuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!TN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"nanoid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!jN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"cuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!zN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"cuid2",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!IN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"ulid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="url")try{new URL(D.data)}catch{X=this._getOrReturnCtx(D,X),h(X,{validation:"url",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"regex",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="trim")D.data=D.data.trim();else if(J.kind==="includes"){if(!D.data.includes(J.value,J.position))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),F.dirty()}else if(J.kind==="toLowerCase")D.data=D.data.toLowerCase();else if(J.kind==="toUpperCase")D.data=D.data.toUpperCase();else if(J.kind==="startsWith"){if(!D.data.startsWith(J.value))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{startsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="endsWith"){if(!D.data.endsWith(J.value))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!nB(J).test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!mN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!pN(J).test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!bN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"duration",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!cN(D.data,J.version))X=this._getOrReturnCtx(D,X),h(X,{validation:"ip",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!dN(D.data,J.alg))X=this._getOrReturnCtx(D,X),h(X,{validation:"jwt",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!lN(D.data,J.version))X=this._getOrReturnCtx(D,X),h(X,{validation:"cidr",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!yN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"base64",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!uN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"base64url",code:w.invalid_string,message:J.message}),F.dirty()}else YD.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:w.invalid_string,...m.errToObj(F)})}_addCheck(D){return new D2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...m.errToObj(D)})}url(D){return this._addCheck({kind:"url",...m.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...m.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...m.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...m.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...m.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...m.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...m.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...m.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...m.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...m.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...m.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...m.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,...m.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,...m.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...m.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...m.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...m.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...m.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...m.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...m.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...m.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...m.errToObj($)})}nonempty(D){return this.min(1,m.errToObj(D))}trim(){return new D2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new D2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new D2({...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}};D2.create=(D)=>{return new D2({checks:[],typeName:d.ZodString,coerce:D?.coerce??!1,...t(D)})};Y8=class Y8 extends $D{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)!==v.number){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.number,received:J.parsedType}),c}let F=void 0,X=new tD;for(let J of this._def.checks)if(J.kind==="int"){if(!YD.isInteger(D.data))F=this._getOrReturnCtx(D,F),h(F,{code:w.invalid_type,expected:"integer",received:"float",message:J.message}),X.dirty()}else if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(iN(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),h(F,{code:w.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(D.data))F=this._getOrReturnCtx(D,F),h(F,{code:w.not_finite,message:J.message}),X.dirty()}else YD.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,m.toString($))}gt(D,$){return this.setLimit("min",D,!1,m.toString($))}lte(D,$){return this.setLimit("max",D,!0,m.toString($))}lt(D,$){return this.setLimit("max",D,!1,m.toString($))}setLimit(D,$,F,X){return new Y8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:m.toString(X)}]})}_addCheck(D){return new Y8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:m.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:m.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:m.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:m.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:m.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:m.toString($)})}finite(D){return this._addCheck({kind:"finite",message:m.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:m.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:m.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"&&YD.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)}};Y8.create=(D)=>{return new Y8({checks:[],typeName:d.ZodNumber,coerce:D?.coerce||!1,...t(D)})};B8=class B8 extends $D{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)!==v.bigint)return this._getInvalidInput(D);let F=void 0,X=new tD;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),h(F,{code:w.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(D.data%J.value!==BigInt(0))F=this._getOrReturnCtx(D,F),h(F,{code:w.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else YD.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return h($,{code:w.invalid_type,expected:v.bigint,received:$.parsedType}),c}gte(D,$){return this.setLimit("min",D,!0,m.toString($))}gt(D,$){return this.setLimit("min",D,!1,m.toString($))}lte(D,$){return this.setLimit("max",D,!0,m.toString($))}lt(D,$){return this.setLimit("max",D,!1,m.toString($))}setLimit(D,$,F,X){return new B8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:m.toString(X)}]})}_addCheck(D){return new B8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:m.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:m.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:m.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:m.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:m.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}};B8.create=(D)=>{return new B8({checks:[],typeName:d.ZodBigInt,coerce:D?.coerce??!1,...t(D)})};f1=class f1 extends $D{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==v.boolean){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.boolean,received:F.parsedType}),c}return F0(D.data)}};f1.create=(D)=>{return new f1({typeName:d.ZodBoolean,coerce:D?.coerce||!1,...t(D)})};y8=class y8 extends $D{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==v.date){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.date,received:J.parsedType}),c}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_date}),c}let F=new tD,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),h(X,{code:w.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),F.dirty()}else if(J.kind==="max"){if(D.data.getTime()>J.value)X=this._getOrReturnCtx(D,X),h(X,{code:w.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else YD.assertNever(J);return{status:F.value,value:new Date(D.data.getTime())}}_addCheck(D){return new y8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:m.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:m.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}};y8.create=(D)=>{return new y8({checks:[],coerce:D?.coerce||!1,typeName:d.ZodDate,...t(D)})};r6=class r6 extends $D{_parse(D){if(this._getType(D)!==v.symbol){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.symbol,received:F.parsedType}),c}return F0(D.data)}};r6.create=(D)=>{return new r6({typeName:d.ZodSymbol,...t(D)})};k1=class k1 extends $D{_parse(D){if(this._getType(D)!==v.undefined){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.undefined,received:F.parsedType}),c}return F0(D.data)}};k1.create=(D)=>{return new k1({typeName:d.ZodUndefined,...t(D)})};v1=class v1 extends $D{_parse(D){if(this._getType(D)!==v.null){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.null,received:F.parsedType}),c}return F0(D.data)}};v1.create=(D)=>{return new v1({typeName:d.ZodNull,...t(D)})};u8=class u8 extends $D{constructor(){super(...arguments);this._any=!0}_parse(D){return F0(D.data)}};u8.create=(D)=>{return new u8({typeName:d.ZodAny,...t(D)})};G8=class G8 extends $D{constructor(){super(...arguments);this._unknown=!0}_parse(D){return F0(D.data)}};G8.create=(D)=>{return new G8({typeName:d.ZodUnknown,...t(D)})};L2=class L2 extends $D{_parse(D){let $=this._getOrReturnCtx(D);return h($,{code:w.invalid_type,expected:v.never,received:$.parsedType}),c}};L2.create=(D)=>{return new L2({typeName:d.ZodNever,...t(D)})};o6=class o6 extends $D{_parse(D){if(this._getType(D)!==v.undefined){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.void,received:F.parsedType}),c}return F0(D.data)}};o6.create=(D)=>{return new o6({typeName:d.ZodVoid,...t(D)})};$2=class $2 extends $D{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==v.array)return h($,{code:w.invalid_type,expected:v.array,received:$.parsedType}),c;if(X.exactLength!==null){let Y=$.data.length>X.exactLength.value,G=$.data.length<X.exactLength.value;if(Y||G)h($,{code:Y?w.too_big:w.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)h($,{code:w.too_small,minimum:X.minLength.value,type:"array",inclusive:!0,exact:!1,message:X.minLength.message}),F.dirty()}if(X.maxLength!==null){if($.data.length>X.maxLength.value)h($,{code:w.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((Y,G)=>{return X.type._parseAsync(new X2($,Y,$.path,G))})).then((Y)=>{return tD.mergeArray(F,Y)});let J=[...$.data].map((Y,G)=>{return X.type._parseSync(new X2($,Y,$.path,G))});return tD.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new $2({...this._def,minLength:{value:D,message:m.toString($)}})}max(D,$){return new $2({...this._def,maxLength:{value:D,message:m.toString($)}})}length(D,$){return new $2({...this._def,exactLength:{value:D,message:m.toString($)}})}nonempty(D){return this.min(1,D)}};$2.create=(D,$)=>{return new $2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:d.ZodArray,...t($)})};zD=class zD extends $D{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(),$=YD.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==v.object){let H=this._getOrReturnCtx(D);return h(H,{code:w.invalid_type,expected:v.object,received:H.parsedType}),c}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:Y}=this._getCached(),G=[];if(!(this._def.catchall instanceof L2&&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],U=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new X2(X,U,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof L2){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)h(X,{code:w.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 U=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new X2(X,U,X.path,W)),alwaysSet:W in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let W of B){let U=await W.key,V=await W.value;H.push({key:U,value:V,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return tD.mergeObjectSync(F,H)});else return tD.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return m.errToObj,new zD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:m.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new zD({...this._def,unknownKeys:"strip"})}passthrough(){return new zD({...this._def,unknownKeys:"passthrough"})}extend(D){return new zD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new zD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:d.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new zD({...this._def,catchall:D})}pick(D){let $={};for(let F of YD.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new zD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of YD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new zD({...this._def,shape:()=>$})}deepPartial(){return S1(this)}partial(D){let $={};for(let F of YD.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new zD({...this._def,shape:()=>$})}required(D){let $={};for(let F of YD.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof F2)J=J._def.innerType;$[F]=J}return new zD({...this._def,shape:()=>$})}keyof(){return sB(YD.objectKeys(this.shape))}};zD.create=(D,$)=>{return new zD({shape:()=>D,unknownKeys:"strip",catchall:L2.create(),typeName:d.ZodObject,...t($)})};zD.strictCreate=(D,$)=>{return new zD({shape:()=>D,unknownKeys:"strict",catchall:L2.create(),typeName:d.ZodObject,...t($)})};zD.lazycreate=(D,$)=>{return new zD({shape:D,unknownKeys:"strip",catchall:L2.create(),typeName:d.ZodObject,...t($)})};g1=class g1 extends $D{_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 A0(G.ctx.common.issues));return h($,{code:w.invalid_union,unionErrors:Y}),c}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 A0(B));return h($,{code:w.invalid_union,unionErrors:G}),c}}get options(){return this._def.options}};g1.create=(D,$)=>{return new g1({options:D,typeName:d.ZodUnion,...t($)})};e9=class e9 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.object)return h($,{code:w.invalid_type,expected:v.object,received:$.parsedType}),c;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return h($,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),c;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=y2(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 e9({typeName:d.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...t(F)})}};h1=class h1 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,Y)=>{if(a9(J)||a9(Y))return c;let G=v$(J.value,Y.value);if(!G.valid)return h(F,{code:w.invalid_intersection_types}),c;if(t9(J)||t9(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}))}};h1.create=(D,$,F)=>{return new h1({left:D,right:$,typeName:d.ZodIntersection,...t(F)})};j2=class j2 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.array)return h(F,{code:w.invalid_type,expected:v.array,received:F.parsedType}),c;if(F.data.length<this._def.items.length)return h(F,{code:w.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),c;if(!this._def.rest&&F.data.length>this._def.items.length)h(F,{code:w.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 X2(F,Y,F.path,G))}).filter((Y)=>!!Y);if(F.common.async)return Promise.all(J).then((Y)=>{return tD.mergeArray($,Y)});else return tD.mergeArray($,J)}get items(){return this._def.items}rest(D){return new j2({...this._def,rest:D})}};j2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new j2({items:D,typeName:d.ZodTuple,rest:null,...t($)})};a6=class a6 extends $D{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.object)return h(F,{code:w.invalid_type,expected:v.object,received:F.parsedType}),c;let X=[],J=this._def.keyType,Y=this._def.valueType;for(let G in F.data)X.push({key:J._parse(new X2(F,G,F.path,G)),value:Y._parse(new X2(F,F.data[G],F.path,G)),alwaysSet:G in F.data});if(F.common.async)return tD.mergeObjectAsync($,X);else return tD.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof $D)return new a6({keyType:D,valueType:$,typeName:d.ZodRecord,...t(F)});return new a6({keyType:D2.create(),valueType:D,typeName:d.ZodRecord,...t($)})}};t6=class t6 extends $D{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.map)return h(F,{code:w.invalid_type,expected:v.map,received:F.parsedType}),c;let X=this._def.keyType,J=this._def.valueType,Y=[...F.data.entries()].map(([G,B],H)=>{return{key:X._parse(new X2(F,G,F.path,[H,"key"])),value:J._parse(new X2(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 c;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 c;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}}}};t6.create=(D,$,F)=>{return new t6({valueType:$,keyType:D,typeName:d.ZodMap,...t(F)})};m8=class m8 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.set)return h(F,{code:w.invalid_type,expected:v.set,received:F.parsedType}),c;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)h(F,{code:w.too_small,minimum:X.minSize.value,type:"set",inclusive:!0,exact:!1,message:X.minSize.message}),$.dirty()}if(X.maxSize!==null){if(F.data.size>X.maxSize.value)h(F,{code:w.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function Y(B){let H=new Set;for(let W of B){if(W.status==="aborted")return c;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 X2(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 m8({...this._def,minSize:{value:D,message:m.toString($)}})}max(D,$){return new m8({...this._def,maxSize:{value:D,message:m.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};m8.create=(D,$)=>{return new m8({valueType:D,minSize:null,maxSize:null,typeName:d.ZodSet,...t($)})};b1=class b1 extends $D{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.function)return h($,{code:w.invalid_type,expected:v.function,received:$.parsedType}),c;function F(G,B){return s6({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,w1(),x2].filter((H)=>!!H),issueData:{code:w.invalid_arguments,argumentsError:B}})}function X(G,B){return s6({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,w1(),x2].filter((H)=>!!H),issueData:{code:w.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},Y=$.data;if(this._def.returns instanceof p8){let G=this;return F0(async function(...B){let H=new A0([]),W=await G._def.args.parseAsync(B,J).catch((Q)=>{throw H.addIssue(F(B,Q)),H}),U=await Reflect.apply(Y,this,W);return await G._def.returns._def.type.parseAsync(U,J).catch((Q)=>{throw H.addIssue(X(U,Q)),H})})}else{let G=this;return F0(function(...B){let H=G._def.args.safeParse(B,J);if(!H.success)throw new A0([F(B,H.error)]);let W=Reflect.apply(Y,this,H.data),U=G._def.returns.safeParse(W,J);if(!U.success)throw new A0([X(W,U.error)]);return U.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new b1({...this._def,args:j2.create(D).rest(G8.create())})}returns(D){return new b1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new b1({args:D?D:j2.create([]).rest(G8.create()),returns:$||G8.create(),typeName:d.ZodFunction,...t(F)})}};x1=class x1 extends $D{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};x1.create=(D,$)=>{return new x1({getter:D,typeName:d.ZodLazy,...t($)})};y1=class y1 extends $D{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return h($,{received:$.data,code:w.invalid_literal,expected:this._def.value}),c}return{status:"valid",value:D.data}}get value(){return this._def.value}};y1.create=(D,$)=>{return new y1({value:D,typeName:d.ZodLiteral,...t($)})};H8=class H8 extends $D{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return h($,{expected:YD.joinValues(F),received:$.parsedType,code:w.invalid_type}),c}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 h($,{received:$.data,code:w.invalid_enum_value,options:F}),c}return F0(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 H8.create(D,{...this._def,...$})}exclude(D,$=this._def){return H8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};H8.create=sB;u1=class u1 extends $D{_parse(D){let $=YD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==v.string&&F.parsedType!==v.number){let X=YD.objectValues($);return h(F,{expected:YD.joinValues(X),received:F.parsedType,code:w.invalid_type}),c}if(!this._cache)this._cache=new Set(YD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=YD.objectValues($);return h(F,{received:F.data,code:w.invalid_enum_value,options:X}),c}return F0(D.data)}get enum(){return this._def.values}};u1.create=(D,$)=>{return new u1({values:D,typeName:d.ZodNativeEnum,...t($)})};p8=class p8 extends $D{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.promise&&$.common.async===!1)return h($,{code:w.invalid_type,expected:v.promise,received:$.parsedType}),c;let F=$.parsedType===v.promise?$.data:Promise.resolve($.data);return F0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};p8.create=(D,$)=>{return new p8({type:D,typeName:d.ZodPromise,...t($)})};J2=class J2 extends $D{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===d.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(h(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 c;let B=await this._def.schema._parseAsync({data:G,path:F.path,parent:F});if(B.status==="aborted")return c;if(B.status==="dirty")return x8(B.value);if($.value==="dirty")return x8(B.value);return B});else{if($.value==="aborted")return c;let G=this._def.schema._parseSync({data:Y,path:F.path,parent:F});if(G.status==="aborted")return c;if(G.status==="dirty")return x8(G.value);if($.value==="dirty")return x8(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 c;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 c;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(!J8(Y))return c;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(!J8(Y))return c;return Promise.resolve(X.transform(Y.value,J)).then((G)=>({status:$.value,value:G}))});YD.assertNever(X)}};J2.create=(D,$,F)=>{return new J2({schema:D,typeName:d.ZodEffects,effect:$,...t(F)})};J2.createWithPreprocess=(D,$,F)=>{return new J2({schema:$,effect:{type:"preprocess",transform:D},typeName:d.ZodEffects,...t(F)})};F2=class F2 extends $D{_parse(D){if(this._getType(D)===v.undefined)return F0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};F2.create=(D,$)=>{return new F2({innerType:D,typeName:d.ZodOptional,...t($)})};u2=class u2 extends $D{_parse(D){if(this._getType(D)===v.null)return F0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};u2.create=(D,$)=>{return new u2({innerType:D,typeName:d.ZodNullable,...t($)})};m1=class m1 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===v.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};m1.create=(D,$)=>{return new m1({innerType:D,typeName:d.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...t($)})};p1=class p1 extends $D{_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(T1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new A0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new A0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};p1.create=(D,$)=>{return new p1({innerType:D,typeName:d.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...t($)})};e6=class e6 extends $D{_parse(D){if(this._getType(D)!==v.nan){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.nan,received:F.parsedType}),c}return{status:"valid",value:D.data}}};e6.create=(D)=>{return new e6({typeName:d.ZodNaN,...t(D)})};nN=Symbol("zod_brand");D7=class D7 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};D3=class D3 extends $D{_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 c;if(J.status==="dirty")return $.dirty(),x8(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 c;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 D3({in:D,out:$,typeName:d.ZodPipeline})}};c1=class c1 extends $D{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(J8(X))X.value=Object.freeze(X.value);return X};return T1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};c1.create=(D,$)=>{return new c1({innerType:D,typeName:d.ZodReadonly,...t($)})};sN={object:zD.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"})(d||(d={}));oB=D2.create,aB=Y8.create,oN=e6.create,aN=B8.create,tB=f1.create,tN=y8.create,eN=r6.create,DP=k1.create,$P=v1.create,FP=u8.create,XP=G8.create,JP=L2.create,GP=o6.create,YP=$2.create,BP=zD.create,HP=zD.strictCreate,WP=g1.create,_P=e9.create,UP=h1.create,VP=j2.create,QP=a6.create,AP=t6.create,KP=m8.create,EP=b1.create,CP=x1.create,RP=y1.create,OP=H8.create,MP=u1.create,ZP=p8.create,qP=J2.create,NP=F2.create,PP=u2.create,LP=J2.createWithPreprocess,jP=D3.create,TP={string:(D)=>D2.create({...D,coerce:!0}),number:(D)=>Y8.create({...D,coerce:!0}),boolean:(D)=>f1.create({...D,coerce:!0}),bigint:(D)=>B8.create({...D,coerce:!0}),date:(D)=>y8.create({...D,coerce:!0})},SP=c});var _={};v8(_,{void:()=>GP,util:()=>YD,unknown:()=>XP,union:()=>WP,undefined:()=>DP,tuple:()=>VP,transformer:()=>qP,symbol:()=>eN,string:()=>oB,strictObject:()=>HP,setErrorMap:()=>PN,set:()=>KP,record:()=>QP,quotelessJson:()=>qN,promise:()=>ZP,preprocess:()=>LP,pipeline:()=>jP,ostring:()=>zP,optional:()=>NP,onumber:()=>IP,oboolean:()=>wP,objectUtil:()=>S$,object:()=>BP,number:()=>aB,nullable:()=>PP,null:()=>$P,never:()=>JP,nativeEnum:()=>MP,nan:()=>oN,map:()=>AP,makeIssue:()=>s6,literal:()=>RP,lazy:()=>CP,late:()=>sN,isValid:()=>J8,isDirty:()=>t9,isAsync:()=>T1,isAborted:()=>a9,intersection:()=>UP,instanceof:()=>rN,getParsedType:()=>P2,getErrorMap:()=>w1,function:()=>EP,enum:()=>OP,effect:()=>qP,discriminatedUnion:()=>_P,defaultErrorMap:()=>x2,datetimeRegex:()=>nB,date:()=>tN,custom:()=>rB,coerce:()=>TP,boolean:()=>tB,bigint:()=>aN,array:()=>YP,any:()=>FP,addIssueToContext:()=>h,ZodVoid:()=>o6,ZodUnknown:()=>G8,ZodUnion:()=>g1,ZodUndefined:()=>k1,ZodType:()=>$D,ZodTuple:()=>j2,ZodTransformer:()=>J2,ZodSymbol:()=>r6,ZodString:()=>D2,ZodSet:()=>m8,ZodSchema:()=>$D,ZodRecord:()=>a6,ZodReadonly:()=>c1,ZodPromise:()=>p8,ZodPipeline:()=>D3,ZodParsedType:()=>v,ZodOptional:()=>F2,ZodObject:()=>zD,ZodNumber:()=>Y8,ZodNullable:()=>u2,ZodNull:()=>v1,ZodNever:()=>L2,ZodNativeEnum:()=>u1,ZodNaN:()=>e6,ZodMap:()=>t6,ZodLiteral:()=>y1,ZodLazy:()=>x1,ZodIssueCode:()=>w,ZodIntersection:()=>h1,ZodFunction:()=>b1,ZodFirstPartyTypeKind:()=>d,ZodError:()=>A0,ZodEnum:()=>H8,ZodEffects:()=>J2,ZodDiscriminatedUnion:()=>e9,ZodDefault:()=>m1,ZodDate:()=>y8,ZodCatch:()=>p1,ZodBranded:()=>D7,ZodBoolean:()=>f1,ZodBigInt:()=>B8,ZodArray:()=>$2,ZodAny:()=>u8,Schema:()=>$D,ParseStatus:()=>tD,OK:()=>F0,NEVER:()=>SP,INVALID:()=>c,EMPTY_PATH:()=>LN,DIRTY:()=>x8,BRAND:()=>nN});var g$=M(()=>{o9();f$();mB();n6();eB();r9()});var vD=M(()=>{g$();g$()});function h$(D){return Object.prototype.hasOwnProperty.call(_H,D)}var s,S0,DH,$H,FH,XH,JH,GH,YH,BH,HH,$7,F7,WH,_H;var UH=M(()=>{vD();s={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"},S0=_.object({workerId:_.string().min(1)}),DH=S0.extend({displayName:_.string().optional(),deviceId:_.string().min(1),connectedAt:_.number().int()}),$H=S0.extend({deviceId:_.string().min(1),reason:_.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:_.number().int()}),FH=S0.extend({conversationId:_.string().min(1),role:_.enum(["user","assistant","system"]),content:_.string(),createdAt:_.number().int()}),XH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),chunk:_.string().optional()}),JH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),toolCallId:_.string().min(1),toolName:_.string().min(1),status:_.enum(["pending","running","success","error"]),args:_.unknown().optional(),result:_.unknown().optional()}),GH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),finishReason:_.enum(["stop","length","tool_use","error","cancelled"]),usage:_.object({inputTokens:_.number().int().nonnegative().optional(),outputTokens:_.number().int().nonnegative().optional(),totalTokens:_.number().int().nonnegative().optional()}).optional()}),YH=S0.extend({version:_.number().int().nonnegative(),changedAt:_.number().int()}),BH=S0.extend({stream:_.enum(["stdout","stderr"]),line:_.string(),ts:_.number().int()}),HH=S0.extend({taskId:_.string().min(1),toolCallId:_.string().min(1),toolName:_.string().min(1),params:_.record(_.unknown()),expiresAt:_.number().int()}),$7=S0.extend({otp:_.string().min(1),expiresAt:_.number().int()}),F7=S0.extend({deviceToken:_.string().min(1)}),WH=S0.extend({otp:_.string().min(1),displayName:_.string().min(1).optional(),submittedAt:_.number().int(),expiresAt:_.number().int(),reason:_.enum(["submitted","approved","rejected","expired","abandoned"])}),_H={[s.WORKER_ONLINE]:DH,[s.WORKER_OFFLINE]:$H,[s.CHAT_MESSAGE]:FH,[s.AGENT_THINKING]:XH,[s.AGENT_TOOL_CALL]:JH,[s.AGENT_DONE]:GH,[s.CONFIG_CHANGED]:YH,[s.LOGS_LINE]:BH,[s.APPROVAL_REQUESTED]:HH,[s.ENROLLMENT_OTP]:$7,[s.ENROLLMENT_APPROVED]:F7,[s.ENROLLMENT_PENDING]:WH}});var PD;var VH=M(()=>{PD=class PD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new PD($,400,D)}static notFound(D,$="NOT_FOUND"){return new PD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new PD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var X7=20;var d1,J7="0123456789abcdefghjkmnpqrstvwxyz";var QH=M(()=>{d1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function W8(D){return typeof D==="string"&&m2.test(D)}var G7="wtk_",m2;var AH=M(()=>{m2=/^wtk_[\w-]{32,}$/});var x$=M(()=>{QH();AH()});import{randomBytes as fP}from"crypto";function kP(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+=J7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function y$(){let D=fP(10);return`w_${kP(D,12)}`}var KH=M(()=>{x$()});var u$,m$,Y7,p$,EH;var CH=M(()=>{vD();u$=_.discriminatedUnion("kind",[_.object({kind:_.literal("file_read"),path:_.string()}),_.object({kind:_.literal("file_edit"),path:_.string(),diff:_.string().optional()}),_.object({kind:_.literal("command_run"),command:_.string()}),_.object({kind:_.literal("search"),query:_.string()}),_.object({kind:_.literal("web_fetch"),url:_.string()}),_.object({kind:_.literal("task_plan"),summary:_.string()}),_.object({kind:_.literal("tool"),toolName:_.string(),arguments:_.record(_.unknown()).optional()}),_.object({kind:_.literal("other"),description:_.string().optional()})]),m$=_.enum(["pending","running","success","failed","pending_approval","denied"]),Y7=_.object({inputTokens:_.number().int().nonnegative(),outputTokens:_.number().int().nonnegative()}),p$=_.enum(["stop","tool","length","error","cancelled"]),EH=_.discriminatedUnion("type",[_.object({type:_.literal("assistant_message_delta"),delta:_.string()}),_.object({type:_.literal("thinking_delta"),delta:_.string()}),_.object({type:_.literal("tool_use"),id:_.string(),name:_.string(),arguments:_.record(_.unknown()),action:u$,status:m$.optional()}),_.object({type:_.literal("tool_result"),id:_.string(),name:_.string(),content:_.string(),isError:_.boolean().optional()}),_.object({type:_.literal("permission_request"),id:_.string(),reason:_.string(),toolUseId:_.string().optional()}),_.object({type:_.literal("token_usage"),usage:Y7}),_.object({type:_.literal("finish"),reason:p$,usage:Y7.optional()}),_.object({type:_.literal("error"),error:_.string()})])});var RH=M(()=>{CH()});var N0=M(()=>{VH();x$();KH();RH()});var c8,c$;var d$=M(()=>{vD();c8={OPERATOR:"operator",NODE:"node"},c$=_.union([_.literal(c8.OPERATOR),_.literal(c8.NODE)])});function d8(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=PH.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function ID(D){return JSON.stringify(D)}var OH,MH,ZH,vP,gP,qH,NH,PH;var LH=M(()=>{N0();vD();d$();OH=_.object({type:_.literal("connect"),role:c$,agentId:_.string().min(1),deviceId:_.string().min(1),auth:_.object({token:_.string()}),meta:_.record(_.string()).optional(),enroll:_.object({apiToken:_.string().regex(m2,"apiToken must match wtk_<base64url>"),displayName:_.string().min(1).max(80).optional(),mode:_.enum(["join-token","otp"]).optional(),joinToken:_.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"})}),MH=_.object({type:_.literal("request"),id:_.string().min(1),method:_.string().min(1),params:_.unknown().optional()}),ZH=_.object({code:_.string().min(1),message:_.string(),details:_.unknown().optional()}),vP=_.object({type:_.literal("response"),id:_.string().min(1),ok:_.literal(!0),result:_.unknown()}),gP=_.object({type:_.literal("response"),id:_.string().min(1),ok:_.literal(!1),error:ZH}),qH=_.discriminatedUnion("ok",[vP,gP]),NH=_.object({type:_.literal("event"),name:_.string().min(1),payload:_.unknown(),ts:_.number().int()}),PH=_.union([OH,MH,qH,NH])});function bD(D){return D}function _7(D){return Object.prototype.hasOwnProperty.call(iD,D)}function $3(D){if(!_7(D))return;return iD[D]}var l8,hP,xP,jH,l1,yP,uP,mP,pP,B7,cP,dP,lP,H7,iP,nP,sP,rP,oP,aP,zH,IH,tP,eP,DL,l$,W7,wH,TH,$L,FL,XL,JL,iD;var SH=M(()=>{vD();l8=_.object({workerId:_.string().min(1),displayName:_.string().optional(),online:_.boolean(),deviceId:_.string().min(1).optional(),baseUrl:_.string().optional(),lastSeenAt:_.number().int().nullable().optional()}),hP=bD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:_.object({}).optional().default({}),result:_.object({workers:_.array(l8)}),routing:"operator-to-gateway"}),xP=bD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.unknown(),routing:"operator-to-node"}),jH=_.object({workerBaseUrl:_.string().min(1),bootstrapToken:_.string().min(1),displayName:_.string().optional()}),l1=_.object({workerId:_.string().min(1),deviceToken:_.string().min(1)}),yP=bD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:jH,result:l1,routing:"operator-to-gateway"}),uP=bD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:_.object({displayName:_.string().optional(),image:_.string().optional(),env:_.record(_.string()).optional()}),result:l1,routing:"operator-to-gateway"}),mP=bD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({stopped:_.boolean()}),routing:"operator-to-node"}),pP=bD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({removed:_.boolean()}),routing:"operator-to-gateway"}),B7=_.object({otp:_.string().min(1),workerId:_.string().min(1),displayName:_.string().min(1).optional(),submittedAt:_.number().int(),expiresAt:_.number().int()}),cP=bD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:_.object({}).optional().default({}),result:_.object({pending:_.array(B7)}),routing:"operator-to-gateway"}),dP=bD({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:_.object({otp:_.string().min(1)}),result:_.object({workerId:_.string().min(1),deviceToken:_.string().min(1)}),routing:"operator-to-gateway"}),lP=bD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:_.object({otp:_.string().min(1)}),result:_.object({rejected:_.boolean()}),routing:"operator-to-gateway"}),H7=_.object({id:_.number().int().positive(),at:_.string().min(1),actor:_.string().min(1),action:_.string().min(1),workerId:_.string().min(1).nullable(),detail:_.record(_.unknown()).nullable()}),iP=bD({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:_.object({limit:_.number().int().positive().max(200).optional(),before:_.number().int().positive().optional(),action:_.string().min(1).optional(),workerId:_.string().min(1).optional()}).optional().default({}),result:_.object({events:_.array(H7),hasMore:_.boolean()}),routing:"operator-to-gateway"}),nP=bD({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:_.object({workerId:_.string().min(1),conversationId:_.string().min(1).optional(),content:_.string().min(1),metadata:_.record(_.unknown()).optional()}),result:_.object({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),accepted:_.boolean()}),routing:"operator-to-node"}),sP=bD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({version:_.number().int().nonnegative(),config:_.unknown()}),routing:"operator-to-node"}),rP=bD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:_.object({workerId:_.string().min(1),ifMatch:_.number().int().nonnegative(),config:_.unknown()}),result:_.object({version:_.number().int().nonnegative(),appliedAt:_.number().int()}),routing:"operator-to-node"}),oP=bD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({deviceToken:_.string().min(1)}),routing:"operator-to-gateway"}),aP=bD({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:_.object({workerId:_.string().min(1),follow:_.boolean().optional(),lines:_.number().int().positive().max(1000).optional()}),result:_.object({subscribed:_.boolean()}),routing:"operator-to-node"}),zH=_.enum(["allow","deny"]),IH=_.object({workerId:_.string().min(1),taskId:_.string().min(1),toolCallId:_.string().min(1),toolName:_.string().min(1),params:_.record(_.unknown()),expiresAt:_.number().int()}),tP=bD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({approvals:_.array(IH)}),routing:"operator-to-node"}),eP=bD({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:_.object({workerId:_.string().min(1),taskId:_.string().min(1),toolCallId:_.string().min(1),decision:zH}),result:_.object({granted:_.boolean()}),routing:"operator-to-node"}),DL=bD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:_.object({}).optional().default({}),result:_.object({now:_.number().int(),online:_.array(l8)}),routing:"operator-to-gateway"}),l$=_.enum(["web","line","telegram","lark","whatsapp"]),W7=_.object({id:_.string().min(1),expression:_.string().min(1),prompt:_.string().min(1),channel:l$,chatId:_.string().min(1),accountId:_.string().min(1),enabled:_.boolean(),lastRunAt:_.string().nullable(),nextRunAt:_.string().nullable(),createdAt:_.string(),updatedAt:_.string()}),wH=_.object({expression:_.string().min(1),prompt:_.string().min(1),channel:l$,chatId:_.string().min(1),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}),TH=_.object({expression:_.string().min(1).optional(),prompt:_.string().min(1).optional(),channel:l$.optional(),chatId:_.string().min(1).optional(),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),$L=bD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({jobs:_.array(W7)}),routing:"operator-to-node"}),FL=bD({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:_.object({workerId:_.string().min(1),job:wH}),result:_.object({job:W7}),routing:"operator-to-node"}),XL=bD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:_.object({workerId:_.string().min(1),jobId:_.string().min(1)}),result:_.object({removed:_.boolean()}),routing:"operator-to-node"}),JL=bD({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:_.object({workerId:_.string().min(1),jobId:_.string().min(1),patch:TH}),result:_.object({job:W7}),routing:"operator-to-node"}),iD={"workers.list":hP,"workers.info":xP,"workers.pair":yP,"workers.launch":uP,"workers.stop":mP,"workers.remove":pP,"enroll.list":cP,"enroll.approve":dP,"enroll.reject":lP,"audit.list":iP,"chat.send":nP,"config.get":sP,"config.put":rP,"token.rotate":oP,"logs.tail":aP,"system.presence":DL,"approval.list":tP,"approval.grant":eP,"cron.list":$L,"cron.add":FL,"cron.remove":XL,"cron.update":JL}});var eD=M(()=>{UH();LH();SH();d$()});var K7={};v8(K7,{saveAimState:()=>n$,resolveGatewayPidPath:()=>V7,resolveGatewayLogPath:()=>Q7,resolveAimStatePath:()=>i$,patchAimState:()=>F3,loadAimState:()=>A7});import{chmod as GL,mkdir as YL,readFile as BL,rename as HL,writeFile as WL}from"fs/promises";import U7 from"path";function i$(){return U7.join(h2(),"aim.json")}function V7(){return U7.join(h2(),"aim-gateway.pid")}function Q7(){return U7.join(h2(),"aim-gateway.log")}function UL(){return`op-${crypto.randomUUID()}`}function VL(){return{gatewayUrl:_L,deviceId:UL(),deviceToken:""}}function QL(D){if(D===null||typeof D!=="object")return!1;let $=D;return typeof $.gatewayUrl==="string"&&typeof $.deviceId==="string"&&typeof $.deviceToken==="string"&&($.defaultWorkerId===void 0||typeof $.defaultWorkerId==="string")}async function A7(){let D=i$(),$;try{$=await BL(D,"utf8")}catch(X){if(X.code==="ENOENT")return VL();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(!QL(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return F}async function n$(D){let $=i$();await YL(U7.dirname($),{recursive:!0});let F=`${$}.tmp`;await WL(F,`${JSON.stringify(D,null,2)}
104
- `,{encoding:"utf8",mode:384}),await HL(F,$);try{await GL($,384)}catch{}}async function F3(D){let F={...await A7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;F[X]=J}return await n$(F),F}var _L="ws://localhost:9218";var i8=M(()=>{q2()});function j(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,q))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(q in F&&F[q]===$[q])return!0;F=Object.getPrototypeOf(F)}return!1}var q;var i=M(()=>{q=Symbol.for("drizzle:entityKind")});var pH,s$,r$;var E7=M(()=>{i();pH=class pH{static[q]="ConsoleLogWriter";write(D){console.log(D)}};s$=class s${static[q]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new pH}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}`)}};r$=class r${static[q]="NoopLogger";logQuery(){}}});var P0;var X3=M(()=>{P0=Symbol.for("drizzle:Name")});function _8(D){return D[P0]}function n8(D){return`${D[C7]??"public"}.${D[P0]}`}var C7,R7,cH,o$,a$,J3,dH,AL,g;var X0=M(()=>{i();X3();C7=Symbol.for("drizzle:Schema"),R7=Symbol.for("drizzle:Columns"),cH=Symbol.for("drizzle:ExtraConfigColumns"),o$=Symbol.for("drizzle:OriginalName"),a$=Symbol.for("drizzle:BaseName"),J3=Symbol.for("drizzle:IsAlias"),dH=Symbol.for("drizzle:ExtraConfigBuilder"),AL=Symbol.for("drizzle:IsDrizzleTable");g=class g{static[q]="Table";static Symbol={Name:P0,Schema:C7,OriginalName:o$,Columns:R7,ExtraConfigColumns:cH,BaseName:a$,IsAlias:J3,ExtraConfigBuilder:dH};[P0];[o$];[C7];[R7];[cH];[a$];[J3]=!1;[AL]=!0;[dH]=void 0;constructor(D,$,F){this[P0]=this[o$]=D,this[C7]=$,this[a$]=F}}});var QD;var Y2=M(()=>{i();QD=class QD{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[q]="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 t$;var e$=M(()=>{i();t$=class t${static[q]="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 lH(D,...$){return D(...$)}var iH=()=>{};function nH(D,$){return`${D[P0]}_${$.join("_")}_unique`}var sH=M(()=>{X3()});var G3,KL;var rH=M(()=>{Y2();i();sH();G3=class G3 extends QD{constructor(D,$){if(!$.uniqueName)$.uniqueName=nH(D,[$.name]);super(D,$);this.table=D}static[q]="PgColumn"};KL=class KL extends G3{static[q]="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 aH(D){return!!D&&typeof D==="function"&&oH in D&&D[oH]===!0}var EL,oH,CL;var tH=M(()=>{i();rH();EL=class EL extends G3{static[q]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};oH=Symbol.for("drizzle:isPgEnum");CL=class CL extends G3{static[q]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var hD,Y3;var B2=M(()=>{i();hD=class hD{static[q]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};Y3=class Y3 extends hD{static[q]="WithSubquery"}});var eH="0.44.7";var DW=()=>{};var DF,$F,$W;var FW=M(()=>{iH();DW();$W={startActiveSpan(D,$){if(!DF)return $();if(!$F)$F=DF.trace.getTracer("drizzle-orm",eH);return lH((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()}}),DF,$F)}}});var wD;var p2=M(()=>{wD=Symbol.for("drizzle:ViewBaseConfig")});function FF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function RL(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 XW(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function O(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new mD(D[0]));for(let[X,J]of $.entries())F.push(J,new mD(D[X+1]));return new y(F)}function B3(D,$){return D.map((F)=>{if(j(F,U8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(j(F,L0)&&j(F.value,U8)){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 mD,y,O7,JW,GW,ei,L0,U8,OL,b0;var nD=M(()=>{i();tH();B2();FW();p2();Y2();X0();mD=class mD{static[q]="StringChunk";value;constructor(D){this.value=Array.isArray(D)?D:[D]}getSQL(){return new y([this])}};y=class y{constructor(D){this.queryChunks=D;for(let $ of D)if(j($,g)){let F=$[g.Symbol.Schema];this.usedTables.push(F===void 0?$[g.Symbol.Name]:F+"."+$[g.Symbol.Name])}}static[q]="SQL";decoder=JW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return $W.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 RL(D.map((W)=>{if(j(W,mD))return{sql:W.value.join(""),params:[]};if(j(W,O7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let U=[new mD("(")];for(let[V,Q]of W.entries())if(U.push(Q),V<W.length-1)U.push(new mD(", "));return U.push(new mD(")")),this.buildQueryFromSourceParams(U,F)}if(j(W,y))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(j(W,g)){let U=W[g.Symbol.Schema],V=W[g.Symbol.Name];return{sql:U===void 0||W[J3]?J(V):J(U)+"."+J(V),params:[]}}if(j(W,QD)){let U=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(U),params:[]};let V=W.table[g.Symbol.Schema];return{sql:W.table[J3]||V===void 0?J(W.table[g.Symbol.Name])+"."+J(U):J(V)+"."+J(W.table[g.Symbol.Name])+"."+J(U),params:[]}}if(j(W,b0)){let U=W[wD].schema,V=W[wD].name;return{sql:U===void 0||W[wD].isAlias?J(V):J(U)+"."+J(V),params:[]}}if(j(W,L0)){if(j(W.value,U8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};let U=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(j(U,y))return this.buildQueryFromSourceParams([U],F);if(B)return{sql:this.mapInlineParam(U,F),params:[]};let V=["none"];if(G)V=[G(W.encoder)];return{sql:Y(H.value++,U),params:[U],typings:V}}if(j(W,U8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};if(j(W,y.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(j(W,hD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new mD("("),W._.sql,new mD(") "),new O7(W._.alias)],F)}if(aH(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(FF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new mD("("),W.getSQL(),new mD(")")],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 y.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}};O7=class O7{constructor(D){this.value=D}static[q]="Name";brand;getSQL(){return new y([this])}};JW={mapFromDriverValue:(D)=>D},GW={mapToDriverValue:(D)=>D},ei={...JW,...GW};L0=class L0{constructor(D,$=GW){this.value=D,this.encoder=$}static[q]="Param";brand;getSQL(){return new y([this])}};((D)=>{function $(){return new y([])}D.empty=$;function F(H){return new y(H)}D.fromList=F;function X(H){return new y([new mD(H)])}D.raw=X;function J(H,W){let U=[];for(let[V,Q]of H.entries()){if(V>0&&W!==void 0)U.push(W);U.push(Q)}return new y(U)}D.join=J;function Y(H){return new O7(H)}D.identifier=Y;function G(H){return new U8(H)}D.placeholder=G;function B(H,W){return new L0(H,W)}D.param=B})(O||(O={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[q]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(y||(y={}));U8=class U8{constructor(D){this.name=D}static[q]="Placeholder";getSQL(){return new y([this])}};OL=Symbol.for("drizzle:IsDrizzleView");b0=class b0{static[q]="View";[wD];[OL]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[wD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new y([this])}};QD.prototype.getSQL=function(){return new y([this])};g.prototype.getSQL=function(){return new y([this])};hD.prototype.getSQL=function(){return new y([this])}});function XF(D,$,F){let X={},J=D.reduce((Y,{path:G,field:B},H)=>{let W;if(j(B,QD))W=B;else if(j(B,y))W=B.decoder;else W=B.sql.decoder;let U=Y;for(let[V,Q]of G.entries())if(V<G.length-1){if(!(Q in U))U[Q]={};U=U[Q]}else{let K=$[H],C=U[Q]=K===null?null:W.mapFromDriverValue(K);if(F&&j(B,QD)&&G.length===2){let E=G[0];if(!(E in X))X[E]=C===null?_8(B.table):!1;else if(typeof X[E]==="string"&&X[E]!==_8(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 f0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let Y=$?[...$,X]:[X];if(j(J,QD)||j(J,y)||j(J,y.Aliased))F.push({path:Y,field:J});else if(j(J,g))F.push(...f0(J[g.Symbol.Columns],Y));else F.push(...f0(J,Y));return F},[])}function H3(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 M7(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(j(J,y)||j(J,QD))return[X,J];else return[X,new L0(J,D[g.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function YW(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 BW(D){return D[g.Symbol.Columns]}function W3(D){return j(D,hD)?D._.alias:j(D,b0)?D[wD].name:j(D,y)?void 0:D[g.Symbol.IsAlias]?D[g.Symbol.Name]:D[g.Symbol.BaseName]}function z2(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 JF;var K0=M(()=>{Y2();i();nD();B2();X0();p2();JF=typeof TextDecoder>"u"?null:new TextDecoder});var WW,_W,GF;var UW=M(()=>{i();X0();WW=Symbol.for("drizzle:PgInlineForeignKeys"),_W=Symbol.for("drizzle:EnableRLS");GF=class GF extends g{static[q]="PgTable";static Symbol=Object.assign({},g.Symbol,{InlineForeignKeys:WW,EnableRLS:_W});[WW]=[];[_W]=!1;[g.Symbol.ExtraConfigBuilder]=void 0;[g.Symbol.ExtraConfigColumns]={}}});var YF,VW;var QW=M(()=>{i();UW();YF=class YF{static[q]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new VW(D,this.columns,this.name)}};VW=class VW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[q]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[GF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function E0(D,$){if(XW($)&&!FF(D)&&!j(D,L0)&&!j(D,U8)&&!j(D,QD)&&!j(D,g)&&!j(D,b0))return new L0(D,$);return D}function k0(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new y($);return new y([new mD("("),O.join($,new mD(" and ")),new mD(")")])}function KW(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new y($);return new y([new mD("("),O.join($,new mD(" or ")),new mD(")")])}function EW(D){return O`not ${D}`}function N7(D,$){if(Array.isArray($)){if($.length===0)return O`false`;return O`${D} in ${$.map((F)=>E0(F,D))}`}return O`${D} in ${E0($,D)}`}function OW(D,$){if(Array.isArray($)){if($.length===0)return O`true`;return O`${D} not in ${$.map((F)=>E0(F,D))}`}return O`${D} not in ${E0($,D)}`}function MW(D){return O`${D} is null`}function ZW(D){return O`${D} is not null`}function qW(D){return O`exists ${D}`}function NW(D){return O`not exists ${D}`}function PW(D,$,F){return O`${D} between ${E0($,D)} and ${E0(F,D)}`}function LW(D,$,F){return O`${D} not between ${E0($,D)} and ${E0(F,D)}`}function jW(D,$){return O`${D} like ${$}`}function zW(D,$){return O`${D} not like ${$}`}function IW(D,$){return O`${D} ilike ${$}`}function wW(D,$){return O`${D} not ilike ${$}`}var u=(D,$)=>{return O`${D} = ${E0($,D)}`},AW=(D,$)=>{return O`${D} <> ${E0($,D)}`},CW=(D,$)=>{return O`${D} > ${E0($,D)}`},RW=(D,$)=>{return O`${D} >= ${E0($,D)}`},Z7=(D,$)=>{return O`${D} < ${E0($,D)}`},q7=(D,$)=>{return O`${D} <= ${E0($,D)}`};var TW=M(()=>{Y2();i();X0();nD()});function _3(D){return O`${D} asc`}function J0(D){return O`${D} desc`}var SW=M(()=>{nD()});var BF=M(()=>{TW();SW()});function fW(){return{and:k0,between:PW,eq:u,exists:qW,gt:CW,gte:RW,ilike:IW,inArray:N7,isNull:MW,isNotNull:ZW,like:jW,lt:Z7,lte:q7,ne:AW,not:EW,notBetween:LW,notExists:NW,notLike:zW,notIlike:wW,notInArray:OW,or:KW,sql:O}}function kW(){return{sql:O,asc:_3,desc:J0}}function vW(D,$){if(Object.keys(D).length===1&&"default"in D&&!j(D.default,g))D=D.default;let F={},X={},J={};for(let[Y,G]of Object.entries(D))if(j(G,g)){let B=n8(G),H=X[B];F[B]=Y,J[Y]={tsName:Y,dbName:G[g.Symbol.Name],schema:G[g.Symbol.Schema],columns:G[g.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let U of Object.values(G[g.Symbol.Columns]))if(U.primary)J[Y].primaryKey.push(U);let W=G[g.Symbol.ExtraConfigBuilder]?.(G[g.Symbol.ExtraConfigColumns]);if(W){for(let U of Object.values(W))if(j(U,YF))J[Y].primaryKey.push(...U.columns)}}else if(j(G,bW)){let B=n8(G.table),H=F[B],W=G.config($(G.table)),U;for(let[V,Q]of Object.entries(W))if(H){let K=J[H];if(K.relations[V]=Q,U)K.primaryKey.push(...U)}else{if(!(B in X))X[B]={relations:{},primaryKey:U};X[B].relations[V]=Q}}return{tables:J,tableNamesMap:F}}function ML(D){return function(F,X){return new V8(D,F,X,X?.fields.reduce((J,Y)=>J&&Y.notNull,!0)??!1)}}function ZL(D){return function(F,X){return new U3(D,F,X)}}function gW(D,$,F){if(j(F,V8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[n8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[g.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=$[n8(Y)];if(!G)throw Error(`Table "${Y[g.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[g.Symbol.Name]}". Please specify relation name`);if(B[0]&&j(B[0],V8)&&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 hW(D){return{one:ML(D),many:ZL(D)}}function P7(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],U=typeof W==="string"?JSON.parse(W):W;Y[B.tsKey]=j(H,V8)?U&&P7(D,D[B.relationTableTsKey],U,B.selection,J):U.map((V)=>P7(D,D[B.relationTableTsKey],V,B.selection,J))}else{let H=J(F[G]),W=B.field,U;if(j(W,QD))U=W;else if(j(W,y))U=W.decoder;else U=W.sql.decoder;Y[B.tsKey]=H===null?null:U.mapFromDriverValue(H)}return Y}var HF,bW,V8,U3;var V3=M(()=>{X0();Y2();i();QW();BF();nD();HF=class HF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[g.Symbol.Name]}static[q]="Relation";referencedTableName;fieldName};bW=class bW{constructor(D,$){this.table=D,this.config=$}static[q]="Relations"};V8=class V8 extends HF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[q]="One";withFieldName(D){let $=new V8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};U3=class U3 extends HF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[q]="Many";withFieldName(D){let $=new U3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function L7(D,$){return new Proxy(D,new Q3($,!1))}function I2(D,$){return new Proxy(D,new i1(new Proxy(D.table,new Q3($,!1))))}function WF(D,$){return new y.Aliased(A3(D.sql,$),D.fieldAlias)}function A3(D,$){return O.join(D.queryChunks.map((F)=>{if(j(F,QD))return I2(F,$);if(j(F,y))return A3(F,$);if(j(F,y.Aliased))return WF(F,$);return F}))}var i1,Q3;var j7=M(()=>{Y2();i();nD();X0();p2();i1=class i1{constructor(D){this.table=D}static[q]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};Q3=class Q3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[q]="TableAliasProxyHandler";get(D,$){if($===g.Symbol.IsAlias)return!0;if($===g.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===g.Symbol.OriginalName)return this.alias;if($===wD)return{...D[wD],name:this.alias,isAlias:!0};if($===g.Symbol.Columns){let X=D[g.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((Y)=>{J[Y]=new Proxy(X[Y],new i1(new Proxy(D,this)))}),J}let F=D[$];if(j(F,QD))return new Proxy(F,new i1(new Proxy(D,this)));return F}}});var xD;var n1=M(()=>{j7();Y2();i();nD();B2();p2();xD=class xD{static[q]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===wD)return{...D[wD],selectedFields:new Proxy(D[wD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(j(D,hD)?D._.selectedFields:j(D,b0)?D[wD].selectedFields:D)[$];if(j(X,y.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(j(X,y)){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,QD)){if(this.config.alias)return new Proxy(X,new i1(new Proxy(X.table,new Q3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new xD(this.config))}}});var V0;var c2=M(()=>{i();V0=class V0{static[q]="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 _F,xW;var UF=M(()=>{i();X3();_F=class _F{static[q]="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 xW(D,this)}};xW=class xW{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[q]="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[P0],...X,F[0].table[P0],...J];return D??`${Y.join("_")}_fk`}}});function yW(D,$){return`${D[P0]}_${$.join("_")}_unique`}var VF=M(()=>{X3()});var sD,fD;var Q8=M(()=>{e$();Y2();i();UF();VF();sD=class sD extends t${static[q]="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 _F(()=>{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)})}};fD=class fD extends QD{constructor(D,$){if(!$.uniqueName)$.uniqueName=yW(D,[$.name]);super(D,$);this.table=D}static[q]="SQLiteColumn"}});function iW(D,$){let{name:F,config:X}=z2(D,$);if(X?.mode==="json")return new pW(F);if(X?.mode==="bigint")return new uW(F);return new dW(F)}var uW,mW,pW,cW,dW,lW;var QF=M(()=>{i();K0();Q8();uW=class uW extends sD{static[q]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new mW(D,this.config)}};mW=class mW extends fD{static[q]="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(JF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};pW=class pW extends sD{static[q]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new cW(D,this.config)}};cW=class cW extends fD{static[q]="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(JF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};dW=class dW extends sD{static[q]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new lW(D,this.config)}};lW=class lW extends fD{static[q]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function rW(D){return($,F)=>{let{name:X,config:J}=z2($,F);return new nW(X,J,D)}}var nW,sW;var AF=M(()=>{i();K0();Q8();nW=class nW extends sD{static[q]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new sW(D,this.config)}};sW=class sW extends fD{static[q]="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 pD(D,$){let{name:F,config:X}=z2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new tW(F,X.mode);if(X?.mode==="boolean")return new D_(F,X.mode);return new oW(F)}var z7,I7,oW,aW,tW,eW,D_,$_;var KF=M(()=>{i();nD();K0();Q8();z7=class z7 extends sD{static[q]="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()}};I7=class I7 extends fD{static[q]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};oW=class oW extends z7{static[q]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new aW(D,this.config)}};aW=class aW extends I7{static[q]="SQLiteInteger"};tW=class tW extends z7{static[q]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(O`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new eW(D,this.config)}};eW=class eW extends I7{static[q]="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 $}};D_=class D_ extends z7{static[q]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new $_(D,this.config)}};$_=class $_ extends I7{static[q]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function H_(D,$){let{name:F,config:X}=z2(D,$),J=X?.mode;return J==="number"?new J_(F):J==="bigint"?new Y_(F):new F_(F)}var F_,X_,J_,G_,Y_,B_;var EF=M(()=>{i();K0();Q8();F_=class F_ extends sD{static[q]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new X_(D,this.config)}};X_=class X_ extends fD{static[q]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};J_=class J_ extends sD{static[q]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new G_(D,this.config)}};G_=class G_ extends fD{static[q]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};Y_=class Y_ extends sD{static[q]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new B_(D,this.config)}};B_=class B_ extends fD{static[q]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function U_(D){return new W_(D??"")}var W_,__;var CF=M(()=>{i();Q8();W_=class W_ extends sD{static[q]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new __(D,this.config)}};__=class __ extends fD{static[q]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=z2(D,$);if(X.mode==="json")return new A_(F);return new V_(F,X)}var V_,Q_,A_,K_;var RF=M(()=>{i();K0();Q8();V_=class V_ extends sD{static[q]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new Q_(D,this.config)}};Q_=class Q_ extends fD{static[q]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};A_=class A_ extends sD{static[q]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new K_(D,this.config)}};K_=class K_ extends fD{static[q]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function E_(){return{blob:iW,customType:rW,integer:pD,numeric:H_,real:U_,text:T}}var C_=M(()=>{QF();AF();KF();EF();CF();RF()});function qL(D,$,F,X,J=D){let Y=new rD(D,X,J),G=typeof $==="function"?$(E_()):$,B=Object.fromEntries(Object.entries(G).map(([W,U])=>{let V=U;V.setName(W);let Q=V.build(Y);return Y[OF].push(...V.buildForeignKeys(Q,Y)),[W,Q]})),H=Object.assign(Y,B);if(H[g.Symbol.Columns]=B,H[g.Symbol.ExtraConfigColumns]=B,F)H[rD.Symbol.ExtraConfigBuilder]=F;return H}var OF,rD,Q0=(D,$,F)=>{return qL(D,$,F)};var s8=M(()=>{i();X0();C_();OF=Symbol.for("drizzle:SQLiteInlineForeignKeys");rD=class rD extends g{static[q]="SQLiteTable";static Symbol=Object.assign({},g.Symbol,{InlineForeignKeys:OF});[g.Symbol.Columns];[OF]=[];[g.Symbol.ExtraConfigBuilder]=void 0}});var R_=()=>{};function w2(D){return new MF(D,!1)}function Z_(D){return new MF(D,!0)}var MF,O_,M_;var q_=M(()=>{i();MF=class MF{constructor(D,$){this.name=D,this.unique=$}static[q]="SQLiteIndexBuilderOn";on(...D){return new O_(this.name,D,this.unique)}};O_=class O_{static[q]="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 M_(this.config,D)}};M_=class M_{static[q]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var N_=()=>{};function H2(D){if(j(D,rD))return[`${D[g.Symbol.BaseName]}`];if(j(D,hD))return D._.usedTables??[];if(j(D,y))return D.usedTables??[];return[]}var s1=M(()=>{i();nD();B2();X0();s8()});var w7;var P_=M(()=>{i();c2();n1();s8();X0();K0();s1();w7=class w7 extends V0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[q]="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[g.Symbol.Columns],new xD({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[rD.Symbol.Columns]){return this.config.returning=f0(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:H2(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 NL(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function PL(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 LL(D){return D}var ZF;var L_=M(()=>{i();X0();ZF=class ZF{static[q]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?NL:D==="camelCase"?PL:LL}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[g.Symbol.Schema]??"public",F=D.table[g.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[g.Symbol.Schema]??"public",F=D[g.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[g.Symbol.Columns])){let Y=`${X}.${J.name}`;this.cache[Y]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var r1,d2,qF;var T7=M(()=>{i();r1=class r1 extends Error{static[q]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};d2=class d2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
105
- params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,d2),F)this.cause=F}};qF=class qF extends r1{static[q]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function j_(D){return O`count(${D||O.raw("*")})`.mapWith(Number)}var z_=M(()=>{nD()});var I_=()=>{};var w_=M(()=>{z_();I_()});var NF=M(()=>{BF();w_();nD()});var PF=M(()=>{QF();Q8();AF();KF();EF();CF();RF()});var r8;var S7=M(()=>{i();nD();r8=class r8 extends b0{static[q]="SQLiteViewBase"}});var K3,E3;var b7=M(()=>{j7();L_();Y2();i();T7();V3();NF();nD();PF();s8();B2();X0();K0();p2();S7();K3=class K3{static[q]="SQLiteDialect";casing;constructor(D){this.casing=new ZF(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[O`with `];for(let[F,X]of D.entries())if($.push(O`${O.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(O`, `);return $.push(O` `),O.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:Y}){let G=this.buildWithCTE(X),B=F?O` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?O` where ${$}`:void 0,W=this.buildOrderBy(Y),U=this.buildLimit(J);return O`${G}delete from ${D}${H}${B}${W}${U}`}buildUpdateSet(D,$){let F=D[g.Symbol.Columns],X=Object.keys(F).filter((Y)=>$[Y]!==void 0||F[Y]?.onUpdateFn!==void 0),J=X.length;return O.join(X.flatMap((Y,G)=>{let B=F[Y],H=$[Y]??O.param(B.onUpdateFn(),B),W=O`${O.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(G<J-1)return[W,O.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),U=this.buildUpdateSet(D,$),V=G&&O.join([O.raw(" from "),this.buildFromTable(G)]),Q=this.buildJoins(Y),K=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,C=F?O` where ${F}`:void 0,E=this.buildOrderBy(H),A=this.buildLimit(B);return O`${W}update ${D} set ${U}${V}${Q}${C}${K}${E}${A}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},Y)=>{let G=[];if(j(J,y.Aliased)&&J.isSelectionField)G.push(O.identifier(J.fieldAlias));else if(j(J,y.Aliased)||j(J,y)){let B=j(J,y.Aliased)?J.sql:J;if($)G.push(new y(B.queryChunks.map((H)=>{if(j(H,QD))return O.identifier(this.casing.getColumnCasing(H));return H})));else G.push(B);if(j(J,y.Aliased))G.push(O` as ${O.identifier(J.fieldAlias)}`)}else if(j(J,QD)){let B=J.table[g.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)G.push(O`cast(${O.identifier(this.casing.getColumnCasing(J))} as text)`);else G.push(O`cast(${O.identifier(B)}.${O.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)G.push(O.identifier(this.casing.getColumnCasing(J)));else G.push(O`${O.identifier(B)}.${O.identifier(this.casing.getColumnCasing(J))}`)}if(Y<F-1)G.push(O`, `);return G});return O.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(O` `);let J=X.table,Y=X.on?O` on ${X.on}`:void 0;if(j(J,rD)){let G=J[rD.Symbol.Name],B=J[rD.Symbol.Schema],H=J[rD.Symbol.OriginalName],W=G===H?void 0:X.alias;$.push(O`${O.raw(X.joinType)} join ${B?O`${O.identifier(B)}.`:void 0}${O.identifier(H)}${W&&O` ${O.identifier(W)}`}${Y}`)}else $.push(O`${O.raw(X.joinType)} join ${J}${Y}`);if(F<D.length-1)$.push(O` `)}return O.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?O` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(O`, `)}return $.length>0?O` order by ${O.join($)}`:void 0}buildFromTable(D){if(j(D,g)&&D[g.Symbol.IsAlias])return O`${O`${O.identifier(D[g.Symbol.Schema]??"")}.`.if(D[g.Symbol.Schema])}${O.identifier(D[g.Symbol.OriginalName])} ${O.identifier(D[g.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:U,distinct:V,setOperators:Q}){let K=F??f0($);for(let a of K)if(j(a.field,QD)&&_8(a.field.table)!==(j(Y,hD)?Y._.alias:j(Y,r8)?Y[wD].name:j(Y,y)?void 0:_8(Y))&&!((dD)=>G?.some(({alias:Z2})=>Z2===(dD[g.Symbol.IsAlias]?_8(dD):dD[g.Symbol.BaseName])))(a.field.table)){let dD=_8(a.field.table);throw Error(`Your "${a.path.join("->")}" field references a column "${dD}"."${a.field.name}", but the table "${dD}" is not part of the query! Did you forget to join it?`)}let C=!G||G.length===0,E=this.buildWithCTE(D),A=V?O` distinct`:void 0,Z=this.buildSelection(K,{isSingleTable:C}),L=this.buildFromTable(Y),N=this.buildJoins(G),S=X?O` where ${X}`:void 0,z=J?O` having ${J}`:void 0,P=[];if(H){for(let[a,dD]of H.entries())if(P.push(dD),a<H.length-1)P.push(O`, `)}let b=P.length>0?O` group by ${O.join(P)}`:void 0,I=this.buildOrderBy(B),o=this.buildLimit(W),_D=U?O` offset ${U}`:void 0,BD=O`${E}select${A} ${Z} from ${L}${N}${S}${b}${z}${I}${o}${_D}`;if(Q.length>0)return this.buildSetOperations(BD,Q);return BD}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=O`${D.getSQL()} `,H=O`${X.getSQL()}`,W;if(Y&&Y.length>0){let K=[];for(let C of Y)if(j(C,fD))K.push(O.identifier(C.name));else if(j(C,y)){for(let E=0;E<C.queryChunks.length;E++){let A=C.queryChunks[E];if(j(A,fD))C.queryChunks[E]=O.identifier(this.casing.getColumnCasing(A))}K.push(O`${C}`)}else K.push(O`${C}`);W=O` order by ${O.join(K,O`, `)}`}let U=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,V=O.raw(`${$} ${F?"all ":""}`),Q=G?O` offset ${G}`:void 0;return O`${B}${V}${H}${W}${U}${Q}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:Y}){let G=[],B=D[g.Symbol.Columns],H=Object.entries(B).filter(([C,E])=>!E.shouldDisableInsert()),W=H.map(([,C])=>O.identifier(this.casing.getColumnCasing(C)));if(Y){let C=$;if(j(C,y))G.push(C);else G.push(C.getSQL())}else{let C=$;G.push(O.raw("values "));for(let[E,A]of C.entries()){let Z=[];for(let[L,N]of H){let S=A[L];if(S===void 0||j(S,L0)&&S.value===void 0){let z;if(N.default!==null&&N.default!==void 0)z=j(N.default,y)?N.default:O.param(N.default,N);else if(N.defaultFn!==void 0){let P=N.defaultFn();z=j(P,y)?P:O.param(P,N)}else if(!N.default&&N.onUpdateFn!==void 0){let P=N.onUpdateFn();z=j(P,y)?P:O.param(P,N)}else z=O`null`;Z.push(z)}else Z.push(S)}if(G.push(Z),E<C.length-1)G.push(O`, `)}}let U=this.buildWithCTE(J),V=O.join(G),Q=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,K=F?.length?O.join(F):void 0;return O`${U}insert into ${D} ${W} ${V}${K}${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,V,Q=[],K,C=[];if(Y===!0)W=Object.entries(J.columns).map(([Z,L])=>({dbKey:L.name,tsKey:Z,field:I2(L,G),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let A=Object.fromEntries(Object.entries(J.columns).map(([P,b])=>[P,I2(b,G)]));if(Y.where){let P=typeof Y.where==="function"?Y.where(A,fW()):Y.where;K=P&&A3(P,G)}let Z=[],L=[];if(Y.columns){let P=!1;for(let[b,I]of Object.entries(Y.columns)){if(I===void 0)continue;if(b in J.columns){if(!P&&I===!0)P=!0;L.push(b)}}if(L.length>0)L=P?L.filter((b)=>Y.columns?.[b]===!0):Object.keys(J.columns).filter((b)=>!L.includes(b))}else L=Object.keys(J.columns);for(let P of L){let b=J.columns[P];Z.push({tsKey:P,value:b})}let N=[];if(Y.with)N=Object.entries(Y.with).filter((P)=>!!P[1]).map(([P,b])=>({tsKey:P,queryConfig:b,relation:J.relations[P]}));let S;if(Y.extras){S=typeof Y.extras==="function"?Y.extras(A,{sql:O}):Y.extras;for(let[P,b]of Object.entries(S))Z.push({tsKey:P,value:WF(b,G)})}for(let{tsKey:P,value:b}of Z)W.push({dbKey:j(b,y.Aliased)?b.fieldAlias:J.columns[P].name,tsKey:P,field:j(b,QD)?I2(b,G):b,relationTableTsKey:void 0,isJson:!1,selection:[]});let z=typeof Y.orderBy==="function"?Y.orderBy(A,kW()):Y.orderBy??[];if(!Array.isArray(z))z=[z];Q=z.map((P)=>{if(j(P,QD))return I2(P,G);return A3(P,G)}),U=Y.limit,V=Y.offset;for(let{tsKey:P,queryConfig:b,relation:I}of N){let o=gW($,F,I),_D=n8(I.referencedTable),BD=F[_D],a=`${G}_${P}`,dD=k0(...o.fields.map((mM,pM)=>u(I2(o.references[pM],a),I2(mM,G)))),Z2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[BD],tableConfig:$[BD],queryConfig:j(I,V8)?b===!0?{limit:1}:{...b,limit:1}:b,tableAlias:a,joinOn:dD,nestedQueryRelation:I}),uM=O`(${Z2.sql})`.as(P);W.push({dbKey:P,tsKey:P,field:uM,relationTableTsKey:BD,isJson:!0,selection:Z2.selection})}}if(W.length===0)throw new r1({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(K=k0(H,K),B){let A=O`json_array(${O.join(W.map(({field:N})=>j(N,fD)?O.identifier(this.casing.getColumnCasing(N)):j(N,y.Aliased)?N.sql:N),O`, `)})`;if(j(B,U3))A=O`coalesce(json_group_array(${A}), json_array())`;let Z=[{dbKey:"data",tsKey:"data",field:A.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(U!==void 0||V!==void 0||Q.length>0)E=this.buildSelectQuery({table:L7(X,G),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:K,limit:U,offset:V,orderBy:Q,setOperators:[]}),K=void 0,U=void 0,V=void 0,Q=void 0;else E=L7(X,G);E=this.buildSelectQuery({table:j(E,rD)?E:new hD(E,{},G),fields:{},fieldsFlat:Z.map(({field:N})=>({path:[],field:j(N,QD)?I2(N,G):N})),joins:C,where:K,limit:U,offset:V,orderBy:Q,setOperators:[]})}else E=this.buildSelectQuery({table:L7(X,G),fields:{},fieldsFlat:W.map(({field:A})=>({path:[],field:j(A,QD)?I2(A,G):A})),joins:C,where:K,limit:U,offset:V,orderBy:Q,setOperators:[]});return{tableTsKey:J.tsName,sql:E,selection:W}}};E3=class E3 extends K3{static[q]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=O`
103
+ `:W}};R=qN()});var YD,S$,v,P2=(D)=>{switch(typeof D){case"undefined":return v.undefined;case"string":return v.string;case"number":return Number.isNaN(D)?v.nan:v.number;case"boolean":return v.boolean;case"function":return v.function;case"bigint":return v.bigint;case"symbol":return v.symbol;case"object":if(Array.isArray(D))return v.array;if(D===null)return v.null;if(D.then&&typeof D.then==="function"&&D.catch&&typeof D.catch==="function")return v.promise;if(typeof Map<"u"&&D instanceof Map)return v.map;if(typeof Set<"u"&&D instanceof Set)return v.set;if(typeof Date<"u"&&D instanceof Date)return v.date;return v.object;default:return v.unknown}};var n6=M(()=>{(function(D){D.assertEqual=(J)=>{};function $(J){}D.assertIs=$;function F(J){throw Error()}D.assertNever=F,D.arrayToEnum=(J)=>{let Y={};for(let G of J)Y[G]=G;return Y},D.getValidEnumValues=(J)=>{let Y=D.objectKeys(J).filter((B)=>typeof J[J[B]]!=="number"),G={};for(let B of Y)G[B]=J[B];return D.objectValues(G)},D.objectValues=(J)=>{return D.objectKeys(J).map(function(Y){return J[Y]})},D.objectKeys=typeof Object.keys==="function"?(J)=>Object.keys(J):(J)=>{let Y=[];for(let G in J)if(Object.prototype.hasOwnProperty.call(J,G))Y.push(G);return Y},D.find=(J,Y)=>{for(let G of J)if(Y(G))return G;return},D.isInteger=typeof Number.isInteger==="function"?(J)=>Number.isInteger(J):(J)=>typeof J==="number"&&Number.isFinite(J)&&Math.floor(J)===J;function X(J,Y=" | "){return J.map((G)=>typeof G==="string"?`'${G}'`:G).join(Y)}D.joinValues=X,D.jsonStringifyReplacer=(J,Y)=>{if(typeof Y==="bigint")return Y.toString();return Y}})(YD||(YD={}));(function(D){D.mergeShapes=($,F)=>{return{...$,...F}}})(S$||(S$={}));v=YD.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"])});var w,LN=(D)=>{return JSON.stringify(D,null,2).replace(/"([^"]+)":/g,"$1:")},A0;var r9=M(()=>{n6();w=YD.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"]);A0=class A0 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 A0))throw Error(`Not a ZodError: ${D}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,YD.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()}};A0.create=(D)=>{return new A0(D)}});var jN=(D,$)=>{let F;switch(D.code){case w.invalid_type:if(D.received===v.undefined)F="Required";else F=`Expected ${D.expected}, received ${D.received}`;break;case w.invalid_literal:F=`Invalid literal value, expected ${JSON.stringify(D.expected,YD.jsonStringifyReplacer)}`;break;case w.unrecognized_keys:F=`Unrecognized key(s) in object: ${YD.joinValues(D.keys,", ")}`;break;case w.invalid_union:F="Invalid input";break;case w.invalid_union_discriminator:F=`Invalid discriminator value. Expected ${YD.joinValues(D.options)}`;break;case w.invalid_enum_value:F=`Invalid enum value. Expected ${YD.joinValues(D.options)}, received '${D.received}'`;break;case w.invalid_arguments:F="Invalid function arguments";break;case w.invalid_return_type:F="Invalid function return type";break;case w.invalid_date:F="Invalid date";break;case w.invalid_string:if(typeof D.validation==="object")if("includes"in D.validation){if(F=`Invalid input: must include "${D.validation.includes}"`,typeof D.validation.position==="number")F=`${F} at one or more positions greater than or equal to ${D.validation.position}`}else if("startsWith"in D.validation)F=`Invalid input: must start with "${D.validation.startsWith}"`;else if("endsWith"in D.validation)F=`Invalid input: must end with "${D.validation.endsWith}"`;else YD.assertNever(D.validation);else if(D.validation!=="regex")F=`Invalid ${D.validation}`;else F="Invalid";break;case w.too_small:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at least":"more than"} ${D.minimum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at least":"over"} ${D.minimum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="bigint")F=`Number must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${D.minimum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly equal to ":D.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(D.minimum))}`;else F="Invalid input";break;case w.too_big:if(D.type==="array")F=`Array must contain ${D.exact?"exactly":D.inclusive?"at most":"less than"} ${D.maximum} element(s)`;else if(D.type==="string")F=`String must contain ${D.exact?"exactly":D.inclusive?"at most":"under"} ${D.maximum} character(s)`;else if(D.type==="number")F=`Number must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="bigint")F=`BigInt must be ${D.exact?"exactly":D.inclusive?"less than or equal to":"less than"} ${D.maximum}`;else if(D.type==="date")F=`Date must be ${D.exact?"exactly":D.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(D.maximum))}`;else F="Invalid input";break;case w.custom:F="Invalid input";break;case w.invalid_intersection_types:F="Intersection results could not be merged";break;case w.not_multiple_of:F=`Number must be a multiple of ${D.multipleOf}`;break;case w.not_finite:F="Number must be finite";break;default:F=$.defaultError,YD.assertNever(D)}return{message:F}},x2;var b$=M(()=>{r9();n6();x2=jN});function zN(D){uB=D}function w1(){return uB}var uB;var o9=M(()=>{b$();uB=x2});function h(D,$){let F=w1(),X=s6({issueData:$,data:D.data,path:D.path,errorMaps:[D.common.contextualErrorMap,D.schemaErrorMap,F,F===x2?void 0:x2].filter((J)=>!!J)});D.common.issues.push(X)}class tD{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 c;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 tD.mergeObjectSync(D,F)}static mergeObjectSync(D,$){let F={};for(let X of $){let{key:J,value:Y}=X;if(J.status==="aborted")return c;if(Y.status==="aborted")return c;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 s6=(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}},IN,c,x8=(D)=>({status:"dirty",value:D}),F0=(D)=>({status:"valid",value:D}),a9=(D)=>D.status==="aborted",t9=(D)=>D.status==="dirty",J8=(D)=>D.status==="valid",T1=(D)=>typeof Promise<"u"&&D instanceof Promise;var f$=M(()=>{o9();b$();IN=[];c=Object.freeze({status:"aborted"})});var mB=()=>{};var m;var pB=M(()=>{(function(D){D.errToObj=($)=>typeof $==="string"?{message:$}:$||{},D.toString=($)=>typeof $==="string"?$:$?.message})(m||(m={}))});class X2{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 t(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 $D{get description(){return this._def.description}_getType(D){return P2(D.data)}_getOrReturnCtx(D,$){return $||{common:D.parent.common,data:D.data,parsedType:P2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}_processInputParams(D){return{status:new tD,ctx:{common:D.parent.common,data:D.data,parsedType:P2(D.data),schemaErrorMap:this._def.errorMap,path:D.path,parent:D.parent}}}_parseSync(D){let $=this._parse(D);if(T1($))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:P2(D)},X=this._parseSync({data:D,path:F.path,parent:F});return cB(F,X)}"~validate"(D){let $={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:D,parsedType:P2(D)};if(!this["~standard"].async)try{let F=this._parseSync({data:D,path:[],parent:$});return J8(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)=>J8(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:P2(D)},X=this._parse({data:D,path:F.path,parent:F}),J=await(T1(X)?X:Promise.resolve(X));return cB(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:w.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 J2({schema:this,typeName:d.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 F2.create(this,this._def)}nullable(){return u2.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return $2.create(this)}promise(){return p8.create(this,this._def)}or(D){return g1.create([this,D],this._def)}and(D){return h1.create(this,D,this._def)}transform(D){return new J2({...t(this._def),schema:this,typeName:d.ZodEffects,effect:{type:"transform",transform:D}})}default(D){let $=typeof D==="function"?D:()=>D;return new m1({...t(this._def),innerType:this,defaultValue:$,typeName:d.ZodDefault})}brand(){return new D7({typeName:d.ZodBranded,type:this,...t(this._def)})}catch(D){let $=typeof D==="function"?D:()=>D;return new p1({...t(this._def),innerType:this,catchValue:$,typeName:d.ZodCatch})}describe(D){return new this.constructor({...this._def,description:D})}pipe(D){return D3.create(this,D)}readonly(){return c1.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}function iB(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 lN(D){return new RegExp(`^${iB(D)}$`)}function nB(D){let $=`${lB}T${iB(D)}`,F=[];if(F.push(D.local?"Z?":"Z"),D.offset)F.push("([+-]\\d{2}:?\\d{2})");return $=`${$}(${F.join("|")})`,new RegExp(`^${$}$`)}function iN(D,$){if(($==="v4"||!$)&&xN.test(D))return!0;if(($==="v6"||!$)&&uN.test(D))return!0;return!1}function nN(D,$){if(!kN.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 sN(D,$){if(($==="v4"||!$)&&yN.test(D))return!0;if(($==="v6"||!$)&&mN.test(D))return!0;return!1}function rN(D,$){let F=(D.toString().split(".")[1]||"").length,X=($.toString().split(".")[1]||"").length,J=F>X?F:X,Y=Number.parseInt(D.toFixed(J).replace(".","")),G=Number.parseInt($.toFixed(J).replace(".",""));return Y%G/10**J}function S1(D){if(D instanceof zD){let $={};for(let F in D.shape){let X=D.shape[F];$[F]=F2.create(S1(X))}return new zD({...D._def,shape:()=>$})}else if(D instanceof $2)return new $2({...D._def,type:S1(D.element)});else if(D instanceof F2)return F2.create(S1(D.unwrap()));else if(D instanceof u2)return u2.create(S1(D.unwrap()));else if(D instanceof j2)return j2.create(D.items.map(($)=>S1($)));else return D}function v$(D,$){let F=P2(D),X=P2($);if(D===$)return{valid:!0,data:D};else if(F===v.object&&X===v.object){let J=YD.objectKeys($),Y=YD.objectKeys(D).filter((B)=>J.indexOf(B)!==-1),G={...D,...$};for(let B of Y){let H=v$(D[B],$[B]);if(!H.valid)return{valid:!1};G[B]=H.data}return{valid:!0,data:G}}else if(F===v.array&&X===v.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=v$(G,B);if(!H.valid)return{valid:!1};J.push(H.data)}return{valid:!0,data:J}}else if(F===v.date&&X===v.date&&+D===+$)return{valid:!0,data:D};else return{valid:!1}}function sB(D,$){return new H8({values:D,typeName:d.ZodEnum,...t($)})}function dB(D,$){let F=typeof D==="function"?D($):typeof D==="string"?{message:D}:D;return typeof F==="string"?{message:F}:F}function rB(D,$={},F){if(D)return u8.create().superRefine((X,J)=>{let Y=D(X);if(Y instanceof Promise)return Y.then((G)=>{if(!G){let B=dB($,X),H=B.fatal??F??!0;J.addIssue({code:"custom",...B,fatal:H})}});if(!Y){let G=dB($,X),B=G.fatal??F??!0;J.addIssue({code:"custom",...G,fatal:B})}return});return u8.create()}var cB=(D,$)=>{if(J8($))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 A0(D.common.issues);return this._error=F,this._error}}}},wN,TN,SN,bN,fN,kN,vN,gN,hN="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",k$,xN,yN,uN,mN,pN,cN,lB="((\\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])))",dN,D2,Y8,B8,f1,y8,r6,k1,v1,u8,G8,L2,o6,$2,zD,g1,y2=(D)=>{if(D instanceof x1)return y2(D.schema);else if(D instanceof J2)return y2(D.innerType());else if(D instanceof y1)return[D.value];else if(D instanceof H8)return D.options;else if(D instanceof u1)return YD.objectValues(D.enum);else if(D instanceof m1)return y2(D._def.innerType);else if(D instanceof k1)return[void 0];else if(D instanceof v1)return[null];else if(D instanceof F2)return[void 0,...y2(D.unwrap())];else if(D instanceof u2)return[null,...y2(D.unwrap())];else if(D instanceof D7)return y2(D.unwrap());else if(D instanceof c1)return y2(D.unwrap());else if(D instanceof p1)return y2(D._def.innerType);else return[]},e9,h1,j2,a6,t6,m8,b1,x1,y1,H8,u1,p8,J2,F2,u2,m1,p1,e6,oN,D7,D3,c1,aN,d,tN=(D,$={message:`Input not instance of ${D.name}`})=>rB((F)=>F instanceof D,$),oB,aB,eN,DP,tB,$P,FP,XP,JP,GP,YP,BP,HP,WP,_P,UP,VP,QP,AP,KP,EP,CP,RP,OP,MP,ZP,qP,NP,PP,LP,jP,zP,IP,wP,TP=()=>oB().optional(),SP=()=>aB().optional(),bP=()=>tB().optional(),fP,kP;var eB=M(()=>{r9();o9();pB();f$();n6();wN=/^c[^\s-]{8,}$/i,TN=/^[0-9a-z]+$/,SN=/^[0-9A-HJKMNP-TV-Z]{26}$/i,bN=/^[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,fN=/^[a-z0-9_-]{21}$/i,kN=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vN=/^[-+]?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)?)??$/,gN=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,xN=/^(?:(?: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])$/,yN=/^(?:(?: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])$/,uN=/^(([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]))$/,mN=/^(([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])$/,pN=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,cN=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,dN=new RegExp(`^${lB}$`);D2=class D2 extends $D{_parse(D){if(this._def.coerce)D.data=String(D.data);if(this._getType(D)!==v.string){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.string,received:J.parsedType}),c}let F=new tD,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),h(X,{code:w.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="max"){if(D.data.length>J.value)X=this._getOrReturnCtx(D,X),h(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!1,message:J.message}),F.dirty()}else if(J.kind==="length"){let Y=D.data.length>J.value,G=D.data.length<J.value;if(Y||G){if(X=this._getOrReturnCtx(D,X),Y)h(X,{code:w.too_big,maximum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});else if(G)h(X,{code:w.too_small,minimum:J.value,type:"string",inclusive:!0,exact:!0,message:J.message});F.dirty()}}else if(J.kind==="email"){if(!gN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"email",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="emoji"){if(!k$)k$=new RegExp(hN,"u");if(!k$.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"emoji",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="uuid"){if(!bN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"uuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="nanoid"){if(!fN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"nanoid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid"){if(!wN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"cuid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cuid2"){if(!TN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"cuid2",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ulid"){if(!SN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"ulid",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="url")try{new URL(D.data)}catch{X=this._getOrReturnCtx(D,X),h(X,{validation:"url",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="regex"){if(J.regex.lastIndex=0,!J.regex.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"regex",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="trim")D.data=D.data.trim();else if(J.kind==="includes"){if(!D.data.includes(J.value,J.position))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{includes:J.value,position:J.position},message:J.message}),F.dirty()}else if(J.kind==="toLowerCase")D.data=D.data.toLowerCase();else if(J.kind==="toUpperCase")D.data=D.data.toUpperCase();else if(J.kind==="startsWith"){if(!D.data.startsWith(J.value))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{startsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="endsWith"){if(!D.data.endsWith(J.value))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:{endsWith:J.value},message:J.message}),F.dirty()}else if(J.kind==="datetime"){if(!nB(J).test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"datetime",message:J.message}),F.dirty()}else if(J.kind==="date"){if(!dN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"date",message:J.message}),F.dirty()}else if(J.kind==="time"){if(!lN(J).test(D.data))X=this._getOrReturnCtx(D,X),h(X,{code:w.invalid_string,validation:"time",message:J.message}),F.dirty()}else if(J.kind==="duration"){if(!vN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"duration",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="ip"){if(!iN(D.data,J.version))X=this._getOrReturnCtx(D,X),h(X,{validation:"ip",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="jwt"){if(!nN(D.data,J.alg))X=this._getOrReturnCtx(D,X),h(X,{validation:"jwt",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="cidr"){if(!sN(D.data,J.version))X=this._getOrReturnCtx(D,X),h(X,{validation:"cidr",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64"){if(!pN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"base64",code:w.invalid_string,message:J.message}),F.dirty()}else if(J.kind==="base64url"){if(!cN.test(D.data))X=this._getOrReturnCtx(D,X),h(X,{validation:"base64url",code:w.invalid_string,message:J.message}),F.dirty()}else YD.assertNever(J);return{status:F.value,value:D.data}}_regex(D,$,F){return this.refinement((X)=>D.test(X),{validation:$,code:w.invalid_string,...m.errToObj(F)})}_addCheck(D){return new D2({...this._def,checks:[...this._def.checks,D]})}email(D){return this._addCheck({kind:"email",...m.errToObj(D)})}url(D){return this._addCheck({kind:"url",...m.errToObj(D)})}emoji(D){return this._addCheck({kind:"emoji",...m.errToObj(D)})}uuid(D){return this._addCheck({kind:"uuid",...m.errToObj(D)})}nanoid(D){return this._addCheck({kind:"nanoid",...m.errToObj(D)})}cuid(D){return this._addCheck({kind:"cuid",...m.errToObj(D)})}cuid2(D){return this._addCheck({kind:"cuid2",...m.errToObj(D)})}ulid(D){return this._addCheck({kind:"ulid",...m.errToObj(D)})}base64(D){return this._addCheck({kind:"base64",...m.errToObj(D)})}base64url(D){return this._addCheck({kind:"base64url",...m.errToObj(D)})}jwt(D){return this._addCheck({kind:"jwt",...m.errToObj(D)})}ip(D){return this._addCheck({kind:"ip",...m.errToObj(D)})}cidr(D){return this._addCheck({kind:"cidr",...m.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,...m.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,...m.errToObj(D?.message)})}duration(D){return this._addCheck({kind:"duration",...m.errToObj(D)})}regex(D,$){return this._addCheck({kind:"regex",regex:D,...m.errToObj($)})}includes(D,$){return this._addCheck({kind:"includes",value:D,position:$?.position,...m.errToObj($?.message)})}startsWith(D,$){return this._addCheck({kind:"startsWith",value:D,...m.errToObj($)})}endsWith(D,$){return this._addCheck({kind:"endsWith",value:D,...m.errToObj($)})}min(D,$){return this._addCheck({kind:"min",value:D,...m.errToObj($)})}max(D,$){return this._addCheck({kind:"max",value:D,...m.errToObj($)})}length(D,$){return this._addCheck({kind:"length",value:D,...m.errToObj($)})}nonempty(D){return this.min(1,m.errToObj(D))}trim(){return new D2({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new D2({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new D2({...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}};D2.create=(D)=>{return new D2({checks:[],typeName:d.ZodString,coerce:D?.coerce??!1,...t(D)})};Y8=class Y8 extends $D{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)!==v.number){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.number,received:J.parsedType}),c}let F=void 0,X=new tD;for(let J of this._def.checks)if(J.kind==="int"){if(!YD.isInteger(D.data))F=this._getOrReturnCtx(D,F),h(F,{code:w.invalid_type,expected:"integer",received:"float",message:J.message}),X.dirty()}else if(J.kind==="min"){if(J.inclusive?D.data<J.value:D.data<=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_small,minimum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_big,maximum:J.value,type:"number",inclusive:J.inclusive,exact:!1,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(rN(D.data,J.value)!==0)F=this._getOrReturnCtx(D,F),h(F,{code:w.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else if(J.kind==="finite"){if(!Number.isFinite(D.data))F=this._getOrReturnCtx(D,F),h(F,{code:w.not_finite,message:J.message}),X.dirty()}else YD.assertNever(J);return{status:X.value,value:D.data}}gte(D,$){return this.setLimit("min",D,!0,m.toString($))}gt(D,$){return this.setLimit("min",D,!1,m.toString($))}lte(D,$){return this.setLimit("max",D,!0,m.toString($))}lt(D,$){return this.setLimit("max",D,!1,m.toString($))}setLimit(D,$,F,X){return new Y8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:m.toString(X)}]})}_addCheck(D){return new Y8({...this._def,checks:[...this._def.checks,D]})}int(D){return this._addCheck({kind:"int",message:m.toString(D)})}positive(D){return this._addCheck({kind:"min",value:0,inclusive:!1,message:m.toString(D)})}negative(D){return this._addCheck({kind:"max",value:0,inclusive:!1,message:m.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:0,inclusive:!0,message:m.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:0,inclusive:!0,message:m.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:m.toString($)})}finite(D){return this._addCheck({kind:"finite",message:m.toString(D)})}safe(D){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:m.toString(D)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:m.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"&&YD.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)}};Y8.create=(D)=>{return new Y8({checks:[],typeName:d.ZodNumber,coerce:D?.coerce||!1,...t(D)})};B8=class B8 extends $D{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)!==v.bigint)return this._getInvalidInput(D);let F=void 0,X=new tD;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),h(F,{code:w.too_small,type:"bigint",minimum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="max"){if(J.inclusive?D.data>J.value:D.data>=J.value)F=this._getOrReturnCtx(D,F),h(F,{code:w.too_big,type:"bigint",maximum:J.value,inclusive:J.inclusive,message:J.message}),X.dirty()}else if(J.kind==="multipleOf"){if(D.data%J.value!==BigInt(0))F=this._getOrReturnCtx(D,F),h(F,{code:w.not_multiple_of,multipleOf:J.value,message:J.message}),X.dirty()}else YD.assertNever(J);return{status:X.value,value:D.data}}_getInvalidInput(D){let $=this._getOrReturnCtx(D);return h($,{code:w.invalid_type,expected:v.bigint,received:$.parsedType}),c}gte(D,$){return this.setLimit("min",D,!0,m.toString($))}gt(D,$){return this.setLimit("min",D,!1,m.toString($))}lte(D,$){return this.setLimit("max",D,!0,m.toString($))}lt(D,$){return this.setLimit("max",D,!1,m.toString($))}setLimit(D,$,F,X){return new B8({...this._def,checks:[...this._def.checks,{kind:D,value:$,inclusive:F,message:m.toString(X)}]})}_addCheck(D){return new B8({...this._def,checks:[...this._def.checks,D]})}positive(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:m.toString(D)})}negative(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:m.toString(D)})}nonpositive(D){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:m.toString(D)})}nonnegative(D){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:m.toString(D)})}multipleOf(D,$){return this._addCheck({kind:"multipleOf",value:D,message:m.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}};B8.create=(D)=>{return new B8({checks:[],typeName:d.ZodBigInt,coerce:D?.coerce??!1,...t(D)})};f1=class f1 extends $D{_parse(D){if(this._def.coerce)D.data=Boolean(D.data);if(this._getType(D)!==v.boolean){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.boolean,received:F.parsedType}),c}return F0(D.data)}};f1.create=(D)=>{return new f1({typeName:d.ZodBoolean,coerce:D?.coerce||!1,...t(D)})};y8=class y8 extends $D{_parse(D){if(this._def.coerce)D.data=new Date(D.data);if(this._getType(D)!==v.date){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_type,expected:v.date,received:J.parsedType}),c}if(Number.isNaN(D.data.getTime())){let J=this._getOrReturnCtx(D);return h(J,{code:w.invalid_date}),c}let F=new tD,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),h(X,{code:w.too_small,message:J.message,inclusive:!0,exact:!1,minimum:J.value,type:"date"}),F.dirty()}else if(J.kind==="max"){if(D.data.getTime()>J.value)X=this._getOrReturnCtx(D,X),h(X,{code:w.too_big,message:J.message,inclusive:!0,exact:!1,maximum:J.value,type:"date"}),F.dirty()}else YD.assertNever(J);return{status:F.value,value:new Date(D.data.getTime())}}_addCheck(D){return new y8({...this._def,checks:[...this._def.checks,D]})}min(D,$){return this._addCheck({kind:"min",value:D.getTime(),message:m.toString($)})}max(D,$){return this._addCheck({kind:"max",value:D.getTime(),message:m.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}};y8.create=(D)=>{return new y8({checks:[],coerce:D?.coerce||!1,typeName:d.ZodDate,...t(D)})};r6=class r6 extends $D{_parse(D){if(this._getType(D)!==v.symbol){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.symbol,received:F.parsedType}),c}return F0(D.data)}};r6.create=(D)=>{return new r6({typeName:d.ZodSymbol,...t(D)})};k1=class k1 extends $D{_parse(D){if(this._getType(D)!==v.undefined){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.undefined,received:F.parsedType}),c}return F0(D.data)}};k1.create=(D)=>{return new k1({typeName:d.ZodUndefined,...t(D)})};v1=class v1 extends $D{_parse(D){if(this._getType(D)!==v.null){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.null,received:F.parsedType}),c}return F0(D.data)}};v1.create=(D)=>{return new v1({typeName:d.ZodNull,...t(D)})};u8=class u8 extends $D{constructor(){super(...arguments);this._any=!0}_parse(D){return F0(D.data)}};u8.create=(D)=>{return new u8({typeName:d.ZodAny,...t(D)})};G8=class G8 extends $D{constructor(){super(...arguments);this._unknown=!0}_parse(D){return F0(D.data)}};G8.create=(D)=>{return new G8({typeName:d.ZodUnknown,...t(D)})};L2=class L2 extends $D{_parse(D){let $=this._getOrReturnCtx(D);return h($,{code:w.invalid_type,expected:v.never,received:$.parsedType}),c}};L2.create=(D)=>{return new L2({typeName:d.ZodNever,...t(D)})};o6=class o6 extends $D{_parse(D){if(this._getType(D)!==v.undefined){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.void,received:F.parsedType}),c}return F0(D.data)}};o6.create=(D)=>{return new o6({typeName:d.ZodVoid,...t(D)})};$2=class $2 extends $D{_parse(D){let{ctx:$,status:F}=this._processInputParams(D),X=this._def;if($.parsedType!==v.array)return h($,{code:w.invalid_type,expected:v.array,received:$.parsedType}),c;if(X.exactLength!==null){let Y=$.data.length>X.exactLength.value,G=$.data.length<X.exactLength.value;if(Y||G)h($,{code:Y?w.too_big:w.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)h($,{code:w.too_small,minimum:X.minLength.value,type:"array",inclusive:!0,exact:!1,message:X.minLength.message}),F.dirty()}if(X.maxLength!==null){if($.data.length>X.maxLength.value)h($,{code:w.too_big,maximum:X.maxLength.value,type:"array",inclusive:!0,exact:!1,message:X.maxLength.message}),F.dirty()}if($.common.async)return Promise.all([...$.data].map((Y,G)=>{return X.type._parseAsync(new X2($,Y,$.path,G))})).then((Y)=>{return tD.mergeArray(F,Y)});let J=[...$.data].map((Y,G)=>{return X.type._parseSync(new X2($,Y,$.path,G))});return tD.mergeArray(F,J)}get element(){return this._def.type}min(D,$){return new $2({...this._def,minLength:{value:D,message:m.toString($)}})}max(D,$){return new $2({...this._def,maxLength:{value:D,message:m.toString($)}})}length(D,$){return new $2({...this._def,exactLength:{value:D,message:m.toString($)}})}nonempty(D){return this.min(1,D)}};$2.create=(D,$)=>{return new $2({type:D,minLength:null,maxLength:null,exactLength:null,typeName:d.ZodArray,...t($)})};zD=class zD extends $D{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(),$=YD.objectKeys(D);return this._cached={shape:D,keys:$},this._cached}_parse(D){if(this._getType(D)!==v.object){let H=this._getOrReturnCtx(D);return h(H,{code:w.invalid_type,expected:v.object,received:H.parsedType}),c}let{status:F,ctx:X}=this._processInputParams(D),{shape:J,keys:Y}=this._getCached(),G=[];if(!(this._def.catchall instanceof L2&&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],U=X.data[H];B.push({key:{status:"valid",value:H},value:W._parse(new X2(X,U,X.path,H)),alwaysSet:H in X.data})}if(this._def.catchall instanceof L2){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)h(X,{code:w.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 U=X.data[W];B.push({key:{status:"valid",value:W},value:H._parse(new X2(X,U,X.path,W)),alwaysSet:W in X.data})}}if(X.common.async)return Promise.resolve().then(async()=>{let H=[];for(let W of B){let U=await W.key,V=await W.value;H.push({key:U,value:V,alwaysSet:W.alwaysSet})}return H}).then((H)=>{return tD.mergeObjectSync(F,H)});else return tD.mergeObjectSync(F,B)}get shape(){return this._def.shape()}strict(D){return m.errToObj,new zD({...this._def,unknownKeys:"strict",...D!==void 0?{errorMap:($,F)=>{let X=this._def.errorMap?.($,F).message??F.defaultError;if($.code==="unrecognized_keys")return{message:m.errToObj(D).message??X};return{message:X}}}:{}})}strip(){return new zD({...this._def,unknownKeys:"strip"})}passthrough(){return new zD({...this._def,unknownKeys:"passthrough"})}extend(D){return new zD({...this._def,shape:()=>({...this._def.shape(),...D})})}merge(D){return new zD({unknownKeys:D._def.unknownKeys,catchall:D._def.catchall,shape:()=>({...this._def.shape(),...D._def.shape()}),typeName:d.ZodObject})}setKey(D,$){return this.augment({[D]:$})}catchall(D){return new zD({...this._def,catchall:D})}pick(D){let $={};for(let F of YD.objectKeys(D))if(D[F]&&this.shape[F])$[F]=this.shape[F];return new zD({...this._def,shape:()=>$})}omit(D){let $={};for(let F of YD.objectKeys(this.shape))if(!D[F])$[F]=this.shape[F];return new zD({...this._def,shape:()=>$})}deepPartial(){return S1(this)}partial(D){let $={};for(let F of YD.objectKeys(this.shape)){let X=this.shape[F];if(D&&!D[F])$[F]=X;else $[F]=X.optional()}return new zD({...this._def,shape:()=>$})}required(D){let $={};for(let F of YD.objectKeys(this.shape))if(D&&!D[F])$[F]=this.shape[F];else{let J=this.shape[F];while(J instanceof F2)J=J._def.innerType;$[F]=J}return new zD({...this._def,shape:()=>$})}keyof(){return sB(YD.objectKeys(this.shape))}};zD.create=(D,$)=>{return new zD({shape:()=>D,unknownKeys:"strip",catchall:L2.create(),typeName:d.ZodObject,...t($)})};zD.strictCreate=(D,$)=>{return new zD({shape:()=>D,unknownKeys:"strict",catchall:L2.create(),typeName:d.ZodObject,...t($)})};zD.lazycreate=(D,$)=>{return new zD({shape:D,unknownKeys:"strip",catchall:L2.create(),typeName:d.ZodObject,...t($)})};g1=class g1 extends $D{_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 A0(G.ctx.common.issues));return h($,{code:w.invalid_union,unionErrors:Y}),c}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 A0(B));return h($,{code:w.invalid_union,unionErrors:G}),c}}get options(){return this._def.options}};g1.create=(D,$)=>{return new g1({options:D,typeName:d.ZodUnion,...t($)})};e9=class e9 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.object)return h($,{code:w.invalid_type,expected:v.object,received:$.parsedType}),c;let F=this.discriminator,X=$.data[F],J=this.optionsMap.get(X);if(!J)return h($,{code:w.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[F]}),c;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=y2(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 e9({typeName:d.ZodDiscriminatedUnion,discriminator:D,options:$,optionsMap:X,...t(F)})}};h1=class h1 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D),X=(J,Y)=>{if(a9(J)||a9(Y))return c;let G=v$(J.value,Y.value);if(!G.valid)return h(F,{code:w.invalid_intersection_types}),c;if(t9(J)||t9(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}))}};h1.create=(D,$,F)=>{return new h1({left:D,right:$,typeName:d.ZodIntersection,...t(F)})};j2=class j2 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.array)return h(F,{code:w.invalid_type,expected:v.array,received:F.parsedType}),c;if(F.data.length<this._def.items.length)return h(F,{code:w.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),c;if(!this._def.rest&&F.data.length>this._def.items.length)h(F,{code:w.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 X2(F,Y,F.path,G))}).filter((Y)=>!!Y);if(F.common.async)return Promise.all(J).then((Y)=>{return tD.mergeArray($,Y)});else return tD.mergeArray($,J)}get items(){return this._def.items}rest(D){return new j2({...this._def,rest:D})}};j2.create=(D,$)=>{if(!Array.isArray(D))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new j2({items:D,typeName:d.ZodTuple,rest:null,...t($)})};a6=class a6 extends $D{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.object)return h(F,{code:w.invalid_type,expected:v.object,received:F.parsedType}),c;let X=[],J=this._def.keyType,Y=this._def.valueType;for(let G in F.data)X.push({key:J._parse(new X2(F,G,F.path,G)),value:Y._parse(new X2(F,F.data[G],F.path,G)),alwaysSet:G in F.data});if(F.common.async)return tD.mergeObjectAsync($,X);else return tD.mergeObjectSync($,X)}get element(){return this._def.valueType}static create(D,$,F){if($ instanceof $D)return new a6({keyType:D,valueType:$,typeName:d.ZodRecord,...t(F)});return new a6({keyType:D2.create(),valueType:D,typeName:d.ZodRecord,...t($)})}};t6=class t6 extends $D{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.map)return h(F,{code:w.invalid_type,expected:v.map,received:F.parsedType}),c;let X=this._def.keyType,J=this._def.valueType,Y=[...F.data.entries()].map(([G,B],H)=>{return{key:X._parse(new X2(F,G,F.path,[H,"key"])),value:J._parse(new X2(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 c;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 c;if(H.status==="dirty"||W.status==="dirty")$.dirty();G.set(H.value,W.value)}return{status:$.value,value:G}}}};t6.create=(D,$,F)=>{return new t6({valueType:$,keyType:D,typeName:d.ZodMap,...t(F)})};m8=class m8 extends $D{_parse(D){let{status:$,ctx:F}=this._processInputParams(D);if(F.parsedType!==v.set)return h(F,{code:w.invalid_type,expected:v.set,received:F.parsedType}),c;let X=this._def;if(X.minSize!==null){if(F.data.size<X.minSize.value)h(F,{code:w.too_small,minimum:X.minSize.value,type:"set",inclusive:!0,exact:!1,message:X.minSize.message}),$.dirty()}if(X.maxSize!==null){if(F.data.size>X.maxSize.value)h(F,{code:w.too_big,maximum:X.maxSize.value,type:"set",inclusive:!0,exact:!1,message:X.maxSize.message}),$.dirty()}let J=this._def.valueType;function Y(B){let H=new Set;for(let W of B){if(W.status==="aborted")return c;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 X2(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 m8({...this._def,minSize:{value:D,message:m.toString($)}})}max(D,$){return new m8({...this._def,maxSize:{value:D,message:m.toString($)}})}size(D,$){return this.min(D,$).max(D,$)}nonempty(D){return this.min(1,D)}};m8.create=(D,$)=>{return new m8({valueType:D,minSize:null,maxSize:null,typeName:d.ZodSet,...t($)})};b1=class b1 extends $D{constructor(){super(...arguments);this.validate=this.implement}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.function)return h($,{code:w.invalid_type,expected:v.function,received:$.parsedType}),c;function F(G,B){return s6({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,w1(),x2].filter((H)=>!!H),issueData:{code:w.invalid_arguments,argumentsError:B}})}function X(G,B){return s6({data:G,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,w1(),x2].filter((H)=>!!H),issueData:{code:w.invalid_return_type,returnTypeError:B}})}let J={errorMap:$.common.contextualErrorMap},Y=$.data;if(this._def.returns instanceof p8){let G=this;return F0(async function(...B){let H=new A0([]),W=await G._def.args.parseAsync(B,J).catch((Q)=>{throw H.addIssue(F(B,Q)),H}),U=await Reflect.apply(Y,this,W);return await G._def.returns._def.type.parseAsync(U,J).catch((Q)=>{throw H.addIssue(X(U,Q)),H})})}else{let G=this;return F0(function(...B){let H=G._def.args.safeParse(B,J);if(!H.success)throw new A0([F(B,H.error)]);let W=Reflect.apply(Y,this,H.data),U=G._def.returns.safeParse(W,J);if(!U.success)throw new A0([X(W,U.error)]);return U.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...D){return new b1({...this._def,args:j2.create(D).rest(G8.create())})}returns(D){return new b1({...this._def,returns:D})}implement(D){return this.parse(D)}strictImplement(D){return this.parse(D)}static create(D,$,F){return new b1({args:D?D:j2.create([]).rest(G8.create()),returns:$||G8.create(),typeName:d.ZodFunction,...t(F)})}};x1=class x1 extends $D{get schema(){return this._def.getter()}_parse(D){let{ctx:$}=this._processInputParams(D);return this._def.getter()._parse({data:$.data,path:$.path,parent:$})}};x1.create=(D,$)=>{return new x1({getter:D,typeName:d.ZodLazy,...t($)})};y1=class y1 extends $D{_parse(D){if(D.data!==this._def.value){let $=this._getOrReturnCtx(D);return h($,{received:$.data,code:w.invalid_literal,expected:this._def.value}),c}return{status:"valid",value:D.data}}get value(){return this._def.value}};y1.create=(D,$)=>{return new y1({value:D,typeName:d.ZodLiteral,...t($)})};H8=class H8 extends $D{_parse(D){if(typeof D.data!=="string"){let $=this._getOrReturnCtx(D),F=this._def.values;return h($,{expected:YD.joinValues(F),received:$.parsedType,code:w.invalid_type}),c}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 h($,{received:$.data,code:w.invalid_enum_value,options:F}),c}return F0(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 H8.create(D,{...this._def,...$})}exclude(D,$=this._def){return H8.create(this.options.filter((F)=>!D.includes(F)),{...this._def,...$})}};H8.create=sB;u1=class u1 extends $D{_parse(D){let $=YD.getValidEnumValues(this._def.values),F=this._getOrReturnCtx(D);if(F.parsedType!==v.string&&F.parsedType!==v.number){let X=YD.objectValues($);return h(F,{expected:YD.joinValues(X),received:F.parsedType,code:w.invalid_type}),c}if(!this._cache)this._cache=new Set(YD.getValidEnumValues(this._def.values));if(!this._cache.has(D.data)){let X=YD.objectValues($);return h(F,{received:F.data,code:w.invalid_enum_value,options:X}),c}return F0(D.data)}get enum(){return this._def.values}};u1.create=(D,$)=>{return new u1({values:D,typeName:d.ZodNativeEnum,...t($)})};p8=class p8 extends $D{unwrap(){return this._def.type}_parse(D){let{ctx:$}=this._processInputParams(D);if($.parsedType!==v.promise&&$.common.async===!1)return h($,{code:w.invalid_type,expected:v.promise,received:$.parsedType}),c;let F=$.parsedType===v.promise?$.data:Promise.resolve($.data);return F0(F.then((X)=>{return this._def.type.parseAsync(X,{path:$.path,errorMap:$.common.contextualErrorMap})}))}};p8.create=(D,$)=>{return new p8({type:D,typeName:d.ZodPromise,...t($)})};J2=class J2 extends $D{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===d.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(h(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 c;let B=await this._def.schema._parseAsync({data:G,path:F.path,parent:F});if(B.status==="aborted")return c;if(B.status==="dirty")return x8(B.value);if($.value==="dirty")return x8(B.value);return B});else{if($.value==="aborted")return c;let G=this._def.schema._parseSync({data:Y,path:F.path,parent:F});if(G.status==="aborted")return c;if(G.status==="dirty")return x8(G.value);if($.value==="dirty")return x8(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 c;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 c;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(!J8(Y))return c;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(!J8(Y))return c;return Promise.resolve(X.transform(Y.value,J)).then((G)=>({status:$.value,value:G}))});YD.assertNever(X)}};J2.create=(D,$,F)=>{return new J2({schema:D,typeName:d.ZodEffects,effect:$,...t(F)})};J2.createWithPreprocess=(D,$,F)=>{return new J2({schema:$,effect:{type:"preprocess",transform:D},typeName:d.ZodEffects,...t(F)})};F2=class F2 extends $D{_parse(D){if(this._getType(D)===v.undefined)return F0(void 0);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};F2.create=(D,$)=>{return new F2({innerType:D,typeName:d.ZodOptional,...t($)})};u2=class u2 extends $D{_parse(D){if(this._getType(D)===v.null)return F0(null);return this._def.innerType._parse(D)}unwrap(){return this._def.innerType}};u2.create=(D,$)=>{return new u2({innerType:D,typeName:d.ZodNullable,...t($)})};m1=class m1 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;if($.parsedType===v.undefined)F=this._def.defaultValue();return this._def.innerType._parse({data:F,path:$.path,parent:$})}removeDefault(){return this._def.innerType}};m1.create=(D,$)=>{return new m1({innerType:D,typeName:d.ZodDefault,defaultValue:typeof $.default==="function"?$.default:()=>$.default,...t($)})};p1=class p1 extends $D{_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(T1(X))return X.then((J)=>{return{status:"valid",value:J.status==="valid"?J.value:this._def.catchValue({get error(){return new A0(F.common.issues)},input:F.data})}});else return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new A0(F.common.issues)},input:F.data})}}removeCatch(){return this._def.innerType}};p1.create=(D,$)=>{return new p1({innerType:D,typeName:d.ZodCatch,catchValue:typeof $.catch==="function"?$.catch:()=>$.catch,...t($)})};e6=class e6 extends $D{_parse(D){if(this._getType(D)!==v.nan){let F=this._getOrReturnCtx(D);return h(F,{code:w.invalid_type,expected:v.nan,received:F.parsedType}),c}return{status:"valid",value:D.data}}};e6.create=(D)=>{return new e6({typeName:d.ZodNaN,...t(D)})};oN=Symbol("zod_brand");D7=class D7 extends $D{_parse(D){let{ctx:$}=this._processInputParams(D),F=$.data;return this._def.type._parse({data:F,path:$.path,parent:$})}unwrap(){return this._def.type}};D3=class D3 extends $D{_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 c;if(J.status==="dirty")return $.dirty(),x8(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 c;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 D3({in:D,out:$,typeName:d.ZodPipeline})}};c1=class c1 extends $D{_parse(D){let $=this._def.innerType._parse(D),F=(X)=>{if(J8(X))X.value=Object.freeze(X.value);return X};return T1($)?$.then((X)=>F(X)):F($)}unwrap(){return this._def.innerType}};c1.create=(D,$)=>{return new c1({innerType:D,typeName:d.ZodReadonly,...t($)})};aN={object:zD.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"})(d||(d={}));oB=D2.create,aB=Y8.create,eN=e6.create,DP=B8.create,tB=f1.create,$P=y8.create,FP=r6.create,XP=k1.create,JP=v1.create,GP=u8.create,YP=G8.create,BP=L2.create,HP=o6.create,WP=$2.create,_P=zD.create,UP=zD.strictCreate,VP=g1.create,QP=e9.create,AP=h1.create,KP=j2.create,EP=a6.create,CP=t6.create,RP=m8.create,OP=b1.create,MP=x1.create,ZP=y1.create,qP=H8.create,NP=u1.create,PP=p8.create,LP=J2.create,jP=F2.create,zP=u2.create,IP=J2.createWithPreprocess,wP=D3.create,fP={string:(D)=>D2.create({...D,coerce:!0}),number:(D)=>Y8.create({...D,coerce:!0}),boolean:(D)=>f1.create({...D,coerce:!0}),bigint:(D)=>B8.create({...D,coerce:!0}),date:(D)=>y8.create({...D,coerce:!0})},kP=c});var _={};v8(_,{void:()=>HP,util:()=>YD,unknown:()=>YP,union:()=>VP,undefined:()=>XP,tuple:()=>KP,transformer:()=>LP,symbol:()=>FP,string:()=>oB,strictObject:()=>UP,setErrorMap:()=>zN,set:()=>RP,record:()=>EP,quotelessJson:()=>LN,promise:()=>PP,preprocess:()=>IP,pipeline:()=>wP,ostring:()=>TP,optional:()=>jP,onumber:()=>SP,oboolean:()=>bP,objectUtil:()=>S$,object:()=>_P,number:()=>aB,nullable:()=>zP,null:()=>JP,never:()=>BP,nativeEnum:()=>NP,nan:()=>eN,map:()=>CP,makeIssue:()=>s6,literal:()=>ZP,lazy:()=>MP,late:()=>aN,isValid:()=>J8,isDirty:()=>t9,isAsync:()=>T1,isAborted:()=>a9,intersection:()=>AP,instanceof:()=>tN,getParsedType:()=>P2,getErrorMap:()=>w1,function:()=>OP,enum:()=>qP,effect:()=>LP,discriminatedUnion:()=>QP,defaultErrorMap:()=>x2,datetimeRegex:()=>nB,date:()=>$P,custom:()=>rB,coerce:()=>fP,boolean:()=>tB,bigint:()=>DP,array:()=>WP,any:()=>GP,addIssueToContext:()=>h,ZodVoid:()=>o6,ZodUnknown:()=>G8,ZodUnion:()=>g1,ZodUndefined:()=>k1,ZodType:()=>$D,ZodTuple:()=>j2,ZodTransformer:()=>J2,ZodSymbol:()=>r6,ZodString:()=>D2,ZodSet:()=>m8,ZodSchema:()=>$D,ZodRecord:()=>a6,ZodReadonly:()=>c1,ZodPromise:()=>p8,ZodPipeline:()=>D3,ZodParsedType:()=>v,ZodOptional:()=>F2,ZodObject:()=>zD,ZodNumber:()=>Y8,ZodNullable:()=>u2,ZodNull:()=>v1,ZodNever:()=>L2,ZodNativeEnum:()=>u1,ZodNaN:()=>e6,ZodMap:()=>t6,ZodLiteral:()=>y1,ZodLazy:()=>x1,ZodIssueCode:()=>w,ZodIntersection:()=>h1,ZodFunction:()=>b1,ZodFirstPartyTypeKind:()=>d,ZodError:()=>A0,ZodEnum:()=>H8,ZodEffects:()=>J2,ZodDiscriminatedUnion:()=>e9,ZodDefault:()=>m1,ZodDate:()=>y8,ZodCatch:()=>p1,ZodBranded:()=>D7,ZodBoolean:()=>f1,ZodBigInt:()=>B8,ZodArray:()=>$2,ZodAny:()=>u8,Schema:()=>$D,ParseStatus:()=>tD,OK:()=>F0,NEVER:()=>kP,INVALID:()=>c,EMPTY_PATH:()=>IN,DIRTY:()=>x8,BRAND:()=>oN});var g$=M(()=>{o9();f$();mB();n6();eB();r9()});var vD=M(()=>{g$();g$()});function h$(D){return Object.prototype.hasOwnProperty.call(_H,D)}var s,S0,DH,$H,FH,XH,JH,GH,YH,BH,HH,$7,F7,WH,_H;var UH=M(()=>{vD();s={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"},S0=_.object({workerId:_.string().min(1)}),DH=S0.extend({displayName:_.string().optional(),deviceId:_.string().min(1),connectedAt:_.number().int()}),$H=S0.extend({deviceId:_.string().min(1),reason:_.enum(["disconnected","expired","kicked"]).optional(),disconnectedAt:_.number().int()}),FH=S0.extend({conversationId:_.string().min(1),role:_.enum(["user","assistant","system"]),content:_.string(),createdAt:_.number().int()}),XH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),chunk:_.string().optional()}),JH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),toolCallId:_.string().min(1),toolName:_.string().min(1),status:_.enum(["pending","running","success","error"]),args:_.unknown().optional(),result:_.unknown().optional()}),GH=S0.extend({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),finishReason:_.enum(["stop","length","tool_use","error","cancelled"]),usage:_.object({inputTokens:_.number().int().nonnegative().optional(),outputTokens:_.number().int().nonnegative().optional(),totalTokens:_.number().int().nonnegative().optional()}).optional()}),YH=S0.extend({version:_.number().int().nonnegative(),changedAt:_.number().int()}),BH=S0.extend({stream:_.enum(["stdout","stderr"]),line:_.string(),ts:_.number().int()}),HH=S0.extend({taskId:_.string().min(1),toolCallId:_.string().min(1),toolName:_.string().min(1),params:_.record(_.unknown()),expiresAt:_.number().int()}),$7=S0.extend({otp:_.string().min(1),expiresAt:_.number().int()}),F7=S0.extend({deviceToken:_.string().min(1)}),WH=S0.extend({otp:_.string().min(1),displayName:_.string().min(1).optional(),submittedAt:_.number().int(),expiresAt:_.number().int(),reason:_.enum(["submitted","approved","rejected","expired","abandoned"])}),_H={[s.WORKER_ONLINE]:DH,[s.WORKER_OFFLINE]:$H,[s.CHAT_MESSAGE]:FH,[s.AGENT_THINKING]:XH,[s.AGENT_TOOL_CALL]:JH,[s.AGENT_DONE]:GH,[s.CONFIG_CHANGED]:YH,[s.LOGS_LINE]:BH,[s.APPROVAL_REQUESTED]:HH,[s.ENROLLMENT_OTP]:$7,[s.ENROLLMENT_APPROVED]:F7,[s.ENROLLMENT_PENDING]:WH}});var PD;var VH=M(()=>{PD=class PD extends Error{code;status;constructor(D,$,F){super(F);this.code=D;this.status=$;this.name="AppError"}static badRequest(D,$="BAD_REQUEST"){return new PD($,400,D)}static notFound(D,$="NOT_FOUND"){return new PD($,404,D)}static internal(D,$="INTERNAL_ERROR"){return new PD($,500,D)}toJSON(){return{error:{code:this.code,message:this.message}}}}});var X7=20;var d1,J7="0123456789abcdefghjkmnpqrstvwxyz";var QH=M(()=>{d1=/^w_[0-9a-hjkmnp-tv-z]{12}$/});function W8(D){return typeof D==="string"&&m2.test(D)}var G7="wtk_",m2;var AH=M(()=>{m2=/^wtk_[\w-]{32,}$/});var x$=M(()=>{QH();AH()});import{randomBytes as gP}from"crypto";function hP(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+=J7[X>>>F-5&31],F-=5}return J.padEnd($,"0")}function y$(){let D=gP(10);return`w_${hP(D,12)}`}var KH=M(()=>{x$()});var u$,m$,Y7,p$,EH;var CH=M(()=>{vD();u$=_.discriminatedUnion("kind",[_.object({kind:_.literal("file_read"),path:_.string()}),_.object({kind:_.literal("file_edit"),path:_.string(),diff:_.string().optional()}),_.object({kind:_.literal("command_run"),command:_.string()}),_.object({kind:_.literal("search"),query:_.string()}),_.object({kind:_.literal("web_fetch"),url:_.string()}),_.object({kind:_.literal("task_plan"),summary:_.string()}),_.object({kind:_.literal("tool"),toolName:_.string(),arguments:_.record(_.unknown()).optional()}),_.object({kind:_.literal("other"),description:_.string().optional()})]),m$=_.enum(["pending","running","success","failed","pending_approval","denied"]),Y7=_.object({inputTokens:_.number().int().nonnegative(),outputTokens:_.number().int().nonnegative()}),p$=_.enum(["stop","tool","length","error","cancelled"]),EH=_.discriminatedUnion("type",[_.object({type:_.literal("assistant_message_delta"),delta:_.string()}),_.object({type:_.literal("thinking_delta"),delta:_.string()}),_.object({type:_.literal("tool_use"),id:_.string(),name:_.string(),arguments:_.record(_.unknown()),action:u$,status:m$.optional()}),_.object({type:_.literal("tool_result"),id:_.string(),name:_.string(),content:_.string(),isError:_.boolean().optional()}),_.object({type:_.literal("permission_request"),id:_.string(),reason:_.string(),toolUseId:_.string().optional()}),_.object({type:_.literal("token_usage"),usage:Y7}),_.object({type:_.literal("finish"),reason:p$,usage:Y7.optional()}),_.object({type:_.literal("error"),error:_.string()})])});var RH=M(()=>{CH()});var N0=M(()=>{VH();x$();KH();RH()});var c8,c$;var d$=M(()=>{vD();c8={OPERATOR:"operator",NODE:"node"},c$=_.union([_.literal(c8.OPERATOR),_.literal(c8.NODE)])});function d8(D){let $;try{$=JSON.parse(D)}catch(X){return{ok:!1,error:`invalid_json:${X instanceof Error?X.message:String(X)}`}}let F=PH.safeParse($);if(!F.success)return{ok:!1,error:`schema:${F.error.message}`};return{ok:!0,frame:F.data}}function ID(D){return JSON.stringify(D)}var OH,MH,ZH,xP,yP,qH,NH,PH;var LH=M(()=>{N0();vD();d$();OH=_.object({type:_.literal("connect"),role:c$,agentId:_.string().min(1),deviceId:_.string().min(1),auth:_.object({token:_.string()}),meta:_.record(_.string()).optional(),enroll:_.object({apiToken:_.string().regex(m2,"apiToken must match wtk_<base64url>"),displayName:_.string().min(1).max(80).optional(),mode:_.enum(["join-token","otp"]).optional(),joinToken:_.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"})}),MH=_.object({type:_.literal("request"),id:_.string().min(1),method:_.string().min(1),params:_.unknown().optional()}),ZH=_.object({code:_.string().min(1),message:_.string(),details:_.unknown().optional()}),xP=_.object({type:_.literal("response"),id:_.string().min(1),ok:_.literal(!0),result:_.unknown()}),yP=_.object({type:_.literal("response"),id:_.string().min(1),ok:_.literal(!1),error:ZH}),qH=_.discriminatedUnion("ok",[xP,yP]),NH=_.object({type:_.literal("event"),name:_.string().min(1),payload:_.unknown(),ts:_.number().int()}),PH=_.union([OH,MH,qH,NH])});function bD(D){return D}function _7(D){return Object.prototype.hasOwnProperty.call(iD,D)}function $3(D){if(!_7(D))return;return iD[D]}var l8,uP,mP,jH,l1,pP,cP,dP,lP,B7,iP,nP,sP,H7,rP,oP,aP,tP,eP,DL,zH,IH,$L,FL,XL,l$,W7,wH,TH,JL,GL,YL,BL,iD;var SH=M(()=>{vD();l8=_.object({workerId:_.string().min(1),displayName:_.string().optional(),online:_.boolean(),deviceId:_.string().min(1).optional(),baseUrl:_.string().optional(),lastSeenAt:_.number().int().nullable().optional()}),uP=bD({method:"workers.list",description:"\u5217\u51FA fleet \u5185\u6240\u6709\u5DF2\u6CE8\u518C worker\uFF08\u542B online \u72B6\u6001\uFF09\u3002",params:_.object({}).optional().default({}),result:_.object({workers:_.array(l8)}),routing:"operator-to-gateway"}),mP=bD({method:"workers.info",description:"\u8BFB\u53D6\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u5FEB\u7167\uFF08/worker/info \u7B49\u4EF7\u7269\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.unknown(),routing:"operator-to-node"}),jH=_.object({workerBaseUrl:_.string().min(1),bootstrapToken:_.string().min(1),displayName:_.string().optional()}),l1=_.object({workerId:_.string().min(1),deviceToken:_.string().min(1)}),pP=bD({method:"workers.pair",description:"\u628A\u4E00\u4E2A\u5DF2\u542F\u52A8\u7684 worker \u901A\u8FC7 bootstrap token \u6CE8\u518C\u5230 fleet\u3002",params:jH,result:l1,routing:"operator-to-gateway"}),cP=bD({method:"workers.launch",description:"\u7531 gateway/supervisor \u672C\u5730\u62C9\u8D77\u4E00\u4E2A worker \u5BB9\u5668\u5E76\u5B8C\u6210\u6CE8\u518C\u3002",params:_.object({displayName:_.string().optional(),image:_.string().optional(),env:_.record(_.string()).optional()}),result:l1,routing:"operator-to-gateway"}),dP=bD({method:"workers.stop",description:"\u5411\u76EE\u6807 worker \u4E0B\u53D1\u505C\u6B62\u6307\u4EE4\uFF08\u4E0D\u4ECE fleet \u91CC\u5220\u9664\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({stopped:_.boolean()}),routing:"operator-to-node"}),lP=bD({method:"workers.remove",description:"\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08\u5B58\u91CF deviceToken \u4F5C\u5E9F\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({removed:_.boolean()}),routing:"operator-to-gateway"}),B7=_.object({otp:_.string().min(1),workerId:_.string().min(1),displayName:_.string().min(1).optional(),submittedAt:_.number().int(),expiresAt:_.number().int()}),iP=bD({method:"enroll.list",description:"\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment \u8BF7\u6C42\u3002",params:_.object({}).optional().default({}),result:_.object({pending:_.array(B7)}),routing:"operator-to-gateway"}),nP=bD({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:_.object({otp:_.string().min(1)}),result:_.object({workerId:_.string().min(1),deviceToken:_.string().min(1)}),routing:"operator-to-gateway"}),sP=bD({method:"enroll.reject",description:"\u62D2\u7EDD\u67D0\u6761 pending OTP\uFF1Aclose 4403 \u7ED9 worker\uFF0Caudit gateway.enrollment.rejected\u3002",params:_.object({otp:_.string().min(1)}),result:_.object({rejected:_.boolean()}),routing:"operator-to-gateway"}),H7=_.object({id:_.number().int().positive(),at:_.string().min(1),actor:_.string().min(1),action:_.string().min(1),workerId:_.string().min(1).nullable(),detail:_.record(_.unknown()).nullable()}),rP=bD({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:_.object({limit:_.number().int().positive().max(200).optional(),before:_.number().int().positive().optional(),action:_.string().min(1).optional(),workerId:_.string().min(1).optional()}).optional().default({}),result:_.object({events:_.array(H7),hasMore:_.boolean()}),routing:"operator-to-gateway"}),oP=bD({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:_.object({workerId:_.string().min(1),conversationId:_.string().min(1).optional(),content:_.string().min(1),metadata:_.record(_.unknown()).optional()}),result:_.object({conversationId:_.string().min(1),taskId:_.string().min(1).optional(),accepted:_.boolean()}),routing:"operator-to-node"}),aP=bD({method:"config.get",description:"\u8BFB\u53D6 worker \u5F53\u524D\u914D\u7F6E\uFF08\u542B version\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({version:_.number().int().nonnegative(),config:_.unknown()}),routing:"operator-to-node"}),tP=bD({method:"config.put",description:"\u66F4\u65B0 worker \u914D\u7F6E\uFF0C\u4F7F\u7528 ifMatch \u8FDB\u884C\u4E50\u89C2\u9501\u3002",params:_.object({workerId:_.string().min(1),ifMatch:_.number().int().nonnegative(),config:_.unknown()}),result:_.object({version:_.number().int().nonnegative(),appliedAt:_.number().int()}),routing:"operator-to-node"}),eP=bD({method:"token.rotate",description:"\u4E3A\u76EE\u6807 worker \u8F6E\u6362 deviceToken\uFF0C\u65E7 token \u7ACB\u5373\u5931\u6548\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({deviceToken:_.string().min(1)}),routing:"operator-to-gateway"}),DL=bD({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:_.object({workerId:_.string().min(1),follow:_.boolean().optional(),lines:_.number().int().positive().max(1000).optional()}),result:_.object({subscribed:_.boolean()}),routing:"operator-to-node"}),zH=_.enum(["allow","deny"]),IH=_.object({workerId:_.string().min(1),taskId:_.string().min(1),toolCallId:_.string().min(1),toolName:_.string().min(1),params:_.record(_.unknown()),expiresAt:_.number().int()}),$L=bD({method:"approval.list",description:"\u5217\u51FA\u76EE\u6807 worker \u5F53\u524D\u6240\u6709\u6302\u8D77\u7684 per-tool \u5BA1\u6279\u8BF7\u6C42\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({approvals:_.array(IH)}),routing:"operator-to-node"}),FL=bD({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:_.object({workerId:_.string().min(1),taskId:_.string().min(1),toolCallId:_.string().min(1),decision:zH}),result:_.object({granted:_.boolean()}),routing:"operator-to-node"}),XL=bD({method:"system.presence",description:"operator \u5FC3\u8DF3 / \u8BE2\u95EE\u5F53\u524D online \u7684\u6240\u6709 node \u5217\u8868\u3002",params:_.object({}).optional().default({}),result:_.object({now:_.number().int(),online:_.array(l8)}),routing:"operator-to-gateway"}),l$=_.enum(["web","line","telegram","lark","whatsapp"]),W7=_.object({id:_.string().min(1),expression:_.string().min(1),prompt:_.string().min(1),channel:l$,chatId:_.string().min(1),accountId:_.string().min(1),enabled:_.boolean(),lastRunAt:_.string().nullable(),nextRunAt:_.string().nullable(),createdAt:_.string(),updatedAt:_.string()}),wH=_.object({expression:_.string().min(1),prompt:_.string().min(1),channel:l$,chatId:_.string().min(1),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}),TH=_.object({expression:_.string().min(1).optional(),prompt:_.string().min(1).optional(),channel:l$.optional(),chatId:_.string().min(1).optional(),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"}),JL=bD({method:"cron.list",description:"\u5217\u51FA\u76EE\u6807 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1\uFF08\u542B enabled / lastRunAt / nextRunAt\uFF09\u3002",params:_.object({workerId:_.string().min(1)}),result:_.object({jobs:_.array(W7)}),routing:"operator-to-node"}),GL=bD({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:_.object({workerId:_.string().min(1),job:wH}),result:_.object({job:W7}),routing:"operator-to-node"}),YL=bD({method:"cron.remove",description:"\u5220\u9664\u76EE\u6807 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1\u3002",params:_.object({workerId:_.string().min(1),jobId:_.string().min(1)}),result:_.object({removed:_.boolean()}),routing:"operator-to-node"}),BL=bD({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:_.object({workerId:_.string().min(1),jobId:_.string().min(1),patch:TH}),result:_.object({job:W7}),routing:"operator-to-node"}),iD={"workers.list":uP,"workers.info":mP,"workers.pair":pP,"workers.launch":cP,"workers.stop":dP,"workers.remove":lP,"enroll.list":iP,"enroll.approve":nP,"enroll.reject":sP,"audit.list":rP,"chat.send":oP,"config.get":aP,"config.put":tP,"token.rotate":eP,"logs.tail":DL,"system.presence":XL,"approval.list":$L,"approval.grant":FL,"cron.list":JL,"cron.add":GL,"cron.remove":YL,"cron.update":BL}});var eD=M(()=>{UH();LH();SH();d$()});var K7={};v8(K7,{saveAimState:()=>n$,resolveGatewayPidPath:()=>V7,resolveGatewayLogPath:()=>Q7,resolveAimStatePath:()=>i$,patchAimState:()=>F3,loadAimState:()=>A7});import{chmod as HL,mkdir as WL,readFile as _L,rename as UL,writeFile as VL}from"fs/promises";import U7 from"path";function i$(){return U7.join(h2(),"aim.json")}function V7(){return U7.join(h2(),"aim-gateway.pid")}function Q7(){return U7.join(h2(),"aim-gateway.log")}function AL(){return`op-${crypto.randomUUID()}`}function KL(){return{gatewayUrl:QL,deviceId:AL(),deviceToken:""}}function EL(D){if(D===null||typeof D!=="object")return!1;let $=D;return typeof $.gatewayUrl==="string"&&typeof $.deviceId==="string"&&typeof $.deviceToken==="string"&&($.defaultWorkerId===void 0||typeof $.defaultWorkerId==="string")}async function A7(){let D=i$(),$;try{$=await _L(D,"utf8")}catch(X){if(X.code==="ENOENT")return KL();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(!EL(F))throw Error(`aim.json \u7ED3\u6784\u4E0D\u7B26\u5408 AimState (${D})`);return F}async function n$(D){let $=i$();await WL(U7.dirname($),{recursive:!0});let F=`${$}.tmp`;await VL(F,`${JSON.stringify(D,null,2)}
104
+ `,{encoding:"utf8",mode:384}),await UL(F,$);try{await HL($,384)}catch{}}async function F3(D){let F={...await A7()};for(let[X,J]of Object.entries(D)){if(J===void 0)continue;F[X]=J}return await n$(F),F}var QL="ws://localhost:9218";var i8=M(()=>{q2()});function j(D,$){if(!D||typeof D!=="object")return!1;if(D instanceof $)return!0;if(!Object.prototype.hasOwnProperty.call($,q))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(q in F&&F[q]===$[q])return!0;F=Object.getPrototypeOf(F)}return!1}var q;var i=M(()=>{q=Symbol.for("drizzle:entityKind")});var pH,s$,r$;var E7=M(()=>{i();pH=class pH{static[q]="ConsoleLogWriter";write(D){console.log(D)}};s$=class s${static[q]="DefaultLogger";writer;constructor(D){this.writer=D?.writer??new pH}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}`)}};r$=class r${static[q]="NoopLogger";logQuery(){}}});var P0;var X3=M(()=>{P0=Symbol.for("drizzle:Name")});function _8(D){return D[P0]}function n8(D){return`${D[C7]??"public"}.${D[P0]}`}var C7,R7,cH,o$,a$,J3,dH,CL,g;var X0=M(()=>{i();X3();C7=Symbol.for("drizzle:Schema"),R7=Symbol.for("drizzle:Columns"),cH=Symbol.for("drizzle:ExtraConfigColumns"),o$=Symbol.for("drizzle:OriginalName"),a$=Symbol.for("drizzle:BaseName"),J3=Symbol.for("drizzle:IsAlias"),dH=Symbol.for("drizzle:ExtraConfigBuilder"),CL=Symbol.for("drizzle:IsDrizzleTable");g=class g{static[q]="Table";static Symbol={Name:P0,Schema:C7,OriginalName:o$,Columns:R7,ExtraConfigColumns:cH,BaseName:a$,IsAlias:J3,ExtraConfigBuilder:dH};[P0];[o$];[C7];[R7];[cH];[a$];[J3]=!1;[CL]=!0;[dH]=void 0;constructor(D,$,F){this[P0]=this[o$]=D,this[C7]=$,this[a$]=F}}});var QD;var Y2=M(()=>{i();QD=class QD{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[q]="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 t$;var e$=M(()=>{i();t$=class t${static[q]="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 lH(D,...$){return D(...$)}var iH=()=>{};function nH(D,$){return`${D[P0]}_${$.join("_")}_unique`}var sH=M(()=>{X3()});var G3,RL;var rH=M(()=>{Y2();i();sH();G3=class G3 extends QD{constructor(D,$){if(!$.uniqueName)$.uniqueName=nH(D,[$.name]);super(D,$);this.table=D}static[q]="PgColumn"};RL=class RL extends G3{static[q]="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 aH(D){return!!D&&typeof D==="function"&&oH in D&&D[oH]===!0}var OL,oH,ML;var tH=M(()=>{i();rH();OL=class OL extends G3{static[q]="PgEnumObjectColumn";enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}};oH=Symbol.for("drizzle:isPgEnum");ML=class ML extends G3{static[q]="PgEnumColumn";enum=this.config.enum;enumValues=this.config.enum.enumValues;constructor(D,$){super(D,$);this.enum=$.enum}getSQLType(){return this.enum.enumName}}});var hD,Y3;var B2=M(()=>{i();hD=class hD{static[q]="Subquery";constructor(D,$,F,X=!1,J=[]){this._={brand:"Subquery",sql:D,selectedFields:$,alias:F,isWith:X,usedTables:J}}};Y3=class Y3 extends hD{static[q]="WithSubquery"}});var eH="0.44.7";var DW=()=>{};var DF,$F,$W;var FW=M(()=>{iH();DW();$W={startActiveSpan(D,$){if(!DF)return $();if(!$F)$F=DF.trace.getTracer("drizzle-orm",eH);return lH((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()}}),DF,$F)}}});var wD;var p2=M(()=>{wD=Symbol.for("drizzle:ViewBaseConfig")});function FF(D){return D!==null&&D!==void 0&&typeof D.getSQL==="function"}function ZL(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 XW(D){return typeof D==="object"&&D!==null&&"mapToDriverValue"in D&&typeof D.mapToDriverValue==="function"}function O(D,...$){let F=[];if($.length>0||D.length>0&&D[0]!=="")F.push(new mD(D[0]));for(let[X,J]of $.entries())F.push(J,new mD(D[X+1]));return new y(F)}function B3(D,$){return D.map((F)=>{if(j(F,U8)){if(!(F.name in $))throw Error(`No value for placeholder "${F.name}" was provided`);return $[F.name]}if(j(F,L0)&&j(F.value,U8)){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 mD,y,O7,JW,GW,Bn,L0,U8,qL,b0;var nD=M(()=>{i();tH();B2();FW();p2();Y2();X0();mD=class mD{static[q]="StringChunk";value;constructor(D){this.value=Array.isArray(D)?D:[D]}getSQL(){return new y([this])}};y=class y{constructor(D){this.queryChunks=D;for(let $ of D)if(j($,g)){let F=$[g.Symbol.Schema];this.usedTables.push(F===void 0?$[g.Symbol.Name]:F+"."+$[g.Symbol.Name])}}static[q]="SQL";decoder=JW;shouldInlineParams=!1;usedTables=[];append(D){return this.queryChunks.push(...D.queryChunks),this}toQuery(D){return $W.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 ZL(D.map((W)=>{if(j(W,mD))return{sql:W.value.join(""),params:[]};if(j(W,O7))return{sql:J(W.value),params:[]};if(W===void 0)return{sql:"",params:[]};if(Array.isArray(W)){let U=[new mD("(")];for(let[V,Q]of W.entries())if(U.push(Q),V<W.length-1)U.push(new mD(", "));return U.push(new mD(")")),this.buildQueryFromSourceParams(U,F)}if(j(W,y))return this.buildQueryFromSourceParams(W.queryChunks,{...F,inlineParams:B||W.shouldInlineParams});if(j(W,g)){let U=W[g.Symbol.Schema],V=W[g.Symbol.Name];return{sql:U===void 0||W[J3]?J(V):J(U)+"."+J(V),params:[]}}if(j(W,QD)){let U=X.getColumnCasing(W);if($.invokeSource==="indexes")return{sql:J(U),params:[]};let V=W.table[g.Symbol.Schema];return{sql:W.table[J3]||V===void 0?J(W.table[g.Symbol.Name])+"."+J(U):J(V)+"."+J(W.table[g.Symbol.Name])+"."+J(U),params:[]}}if(j(W,b0)){let U=W[wD].schema,V=W[wD].name;return{sql:U===void 0||W[wD].isAlias?J(V):J(U)+"."+J(V),params:[]}}if(j(W,L0)){if(j(W.value,U8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};let U=W.value===null?null:W.encoder.mapToDriverValue(W.value);if(j(U,y))return this.buildQueryFromSourceParams([U],F);if(B)return{sql:this.mapInlineParam(U,F),params:[]};let V=["none"];if(G)V=[G(W.encoder)];return{sql:Y(H.value++,U),params:[U],typings:V}}if(j(W,U8))return{sql:Y(H.value++,W),params:[W],typings:["none"]};if(j(W,y.Aliased)&&W.fieldAlias!==void 0)return{sql:J(W.fieldAlias),params:[]};if(j(W,hD)){if(W._.isWith)return{sql:J(W._.alias),params:[]};return this.buildQueryFromSourceParams([new mD("("),W._.sql,new mD(") "),new O7(W._.alias)],F)}if(aH(W)){if(W.schema)return{sql:J(W.schema)+"."+J(W.enumName),params:[]};return{sql:J(W.enumName),params:[]}}if(FF(W)){if(W.shouldOmitSQLParens?.())return this.buildQueryFromSourceParams([W.getSQL()],F);return this.buildQueryFromSourceParams([new mD("("),W.getSQL(),new mD(")")],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 y.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}};O7=class O7{constructor(D){this.value=D}static[q]="Name";brand;getSQL(){return new y([this])}};JW={mapFromDriverValue:(D)=>D},GW={mapToDriverValue:(D)=>D},Bn={...JW,...GW};L0=class L0{constructor(D,$=GW){this.value=D,this.encoder=$}static[q]="Param";brand;getSQL(){return new y([this])}};((D)=>{function $(){return new y([])}D.empty=$;function F(H){return new y(H)}D.fromList=F;function X(H){return new y([new mD(H)])}D.raw=X;function J(H,W){let U=[];for(let[V,Q]of H.entries()){if(V>0&&W!==void 0)U.push(W);U.push(Q)}return new y(U)}D.join=J;function Y(H){return new O7(H)}D.identifier=Y;function G(H){return new U8(H)}D.placeholder=G;function B(H,W){return new L0(H,W)}D.param=B})(O||(O={}));((D)=>{class ${constructor(F,X){this.sql=F,this.fieldAlias=X}static[q]="SQL.Aliased";isSelectionField=!1;getSQL(){return this.sql}clone(){return new $(this.sql,this.fieldAlias)}}D.Aliased=$})(y||(y={}));U8=class U8{constructor(D){this.name=D}static[q]="Placeholder";getSQL(){return new y([this])}};qL=Symbol.for("drizzle:IsDrizzleView");b0=class b0{static[q]="View";[wD];[qL]=!0;constructor({name:D,schema:$,selectedFields:F,query:X}){this[wD]={name:D,originalName:D,schema:$,selectedFields:F,query:X,isExisting:!X,isAlias:!1}}getSQL(){return new y([this])}};QD.prototype.getSQL=function(){return new y([this])};g.prototype.getSQL=function(){return new y([this])};hD.prototype.getSQL=function(){return new y([this])}});function XF(D,$,F){let X={},J=D.reduce((Y,{path:G,field:B},H)=>{let W;if(j(B,QD))W=B;else if(j(B,y))W=B.decoder;else W=B.sql.decoder;let U=Y;for(let[V,Q]of G.entries())if(V<G.length-1){if(!(Q in U))U[Q]={};U=U[Q]}else{let K=$[H],C=U[Q]=K===null?null:W.mapFromDriverValue(K);if(F&&j(B,QD)&&G.length===2){let E=G[0];if(!(E in X))X[E]=C===null?_8(B.table):!1;else if(typeof X[E]==="string"&&X[E]!==_8(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 f0(D,$){return Object.entries(D).reduce((F,[X,J])=>{if(typeof X!=="string")return F;let Y=$?[...$,X]:[X];if(j(J,QD)||j(J,y)||j(J,y.Aliased))F.push({path:Y,field:J});else if(j(J,g))F.push(...f0(J[g.Symbol.Columns],Y));else F.push(...f0(J,Y));return F},[])}function H3(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 M7(D,$){let F=Object.entries($).filter(([,X])=>X!==void 0).map(([X,J])=>{if(j(J,y)||j(J,QD))return[X,J];else return[X,new L0(J,D[g.Symbol.Columns][X])]});if(F.length===0)throw Error("No values to set");return Object.fromEntries(F)}function YW(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 BW(D){return D[g.Symbol.Columns]}function W3(D){return j(D,hD)?D._.alias:j(D,b0)?D[wD].name:j(D,y)?void 0:D[g.Symbol.IsAlias]?D[g.Symbol.Name]:D[g.Symbol.BaseName]}function z2(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 JF;var K0=M(()=>{Y2();i();nD();B2();X0();p2();JF=typeof TextDecoder>"u"?null:new TextDecoder});var WW,_W,GF;var UW=M(()=>{i();X0();WW=Symbol.for("drizzle:PgInlineForeignKeys"),_W=Symbol.for("drizzle:EnableRLS");GF=class GF extends g{static[q]="PgTable";static Symbol=Object.assign({},g.Symbol,{InlineForeignKeys:WW,EnableRLS:_W});[WW]=[];[_W]=!1;[g.Symbol.ExtraConfigBuilder]=void 0;[g.Symbol.ExtraConfigColumns]={}}});var YF,VW;var QW=M(()=>{i();UW();YF=class YF{static[q]="PgPrimaryKeyBuilder";columns;name;constructor(D,$){this.columns=D,this.name=$}build(D){return new VW(D,this.columns,this.name)}};VW=class VW{constructor(D,$,F){this.table=D,this.columns=$,this.name=F}static[q]="PgPrimaryKey";columns;name;getName(){return this.name??`${this.table[GF.Symbol.Name]}_${this.columns.map((D)=>D.name).join("_")}_pk`}}});function E0(D,$){if(XW($)&&!FF(D)&&!j(D,L0)&&!j(D,U8)&&!j(D,QD)&&!j(D,g)&&!j(D,b0))return new L0(D,$);return D}function k0(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new y($);return new y([new mD("("),O.join($,new mD(" and ")),new mD(")")])}function KW(...D){let $=D.filter((F)=>F!==void 0);if($.length===0)return;if($.length===1)return new y($);return new y([new mD("("),O.join($,new mD(" or ")),new mD(")")])}function EW(D){return O`not ${D}`}function N7(D,$){if(Array.isArray($)){if($.length===0)return O`false`;return O`${D} in ${$.map((F)=>E0(F,D))}`}return O`${D} in ${E0($,D)}`}function OW(D,$){if(Array.isArray($)){if($.length===0)return O`true`;return O`${D} not in ${$.map((F)=>E0(F,D))}`}return O`${D} not in ${E0($,D)}`}function MW(D){return O`${D} is null`}function ZW(D){return O`${D} is not null`}function qW(D){return O`exists ${D}`}function NW(D){return O`not exists ${D}`}function PW(D,$,F){return O`${D} between ${E0($,D)} and ${E0(F,D)}`}function LW(D,$,F){return O`${D} not between ${E0($,D)} and ${E0(F,D)}`}function jW(D,$){return O`${D} like ${$}`}function zW(D,$){return O`${D} not like ${$}`}function IW(D,$){return O`${D} ilike ${$}`}function wW(D,$){return O`${D} not ilike ${$}`}var u=(D,$)=>{return O`${D} = ${E0($,D)}`},AW=(D,$)=>{return O`${D} <> ${E0($,D)}`},CW=(D,$)=>{return O`${D} > ${E0($,D)}`},RW=(D,$)=>{return O`${D} >= ${E0($,D)}`},Z7=(D,$)=>{return O`${D} < ${E0($,D)}`},q7=(D,$)=>{return O`${D} <= ${E0($,D)}`};var TW=M(()=>{Y2();i();X0();nD()});function _3(D){return O`${D} asc`}function J0(D){return O`${D} desc`}var SW=M(()=>{nD()});var BF=M(()=>{TW();SW()});function fW(){return{and:k0,between:PW,eq:u,exists:qW,gt:CW,gte:RW,ilike:IW,inArray:N7,isNull:MW,isNotNull:ZW,like:jW,lt:Z7,lte:q7,ne:AW,not:EW,notBetween:LW,notExists:NW,notLike:zW,notIlike:wW,notInArray:OW,or:KW,sql:O}}function kW(){return{sql:O,asc:_3,desc:J0}}function vW(D,$){if(Object.keys(D).length===1&&"default"in D&&!j(D.default,g))D=D.default;let F={},X={},J={};for(let[Y,G]of Object.entries(D))if(j(G,g)){let B=n8(G),H=X[B];F[B]=Y,J[Y]={tsName:Y,dbName:G[g.Symbol.Name],schema:G[g.Symbol.Schema],columns:G[g.Symbol.Columns],relations:H?.relations??{},primaryKey:H?.primaryKey??[]};for(let U of Object.values(G[g.Symbol.Columns]))if(U.primary)J[Y].primaryKey.push(U);let W=G[g.Symbol.ExtraConfigBuilder]?.(G[g.Symbol.ExtraConfigColumns]);if(W){for(let U of Object.values(W))if(j(U,YF))J[Y].primaryKey.push(...U.columns)}}else if(j(G,bW)){let B=n8(G.table),H=F[B],W=G.config($(G.table)),U;for(let[V,Q]of Object.entries(W))if(H){let K=J[H];if(K.relations[V]=Q,U)K.primaryKey.push(...U)}else{if(!(B in X))X[B]={relations:{},primaryKey:U};X[B].relations[V]=Q}}return{tables:J,tableNamesMap:F}}function NL(D){return function(F,X){return new V8(D,F,X,X?.fields.reduce((J,Y)=>J&&Y.notNull,!0)??!1)}}function PL(D){return function(F,X){return new U3(D,F,X)}}function gW(D,$,F){if(j(F,V8)&&F.config)return{fields:F.config.fields,references:F.config.references};let X=$[n8(F.referencedTable)];if(!X)throw Error(`Table "${F.referencedTable[g.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=$[n8(Y)];if(!G)throw Error(`Table "${Y[g.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[g.Symbol.Name]}". Please specify relation name`);if(B[0]&&j(B[0],V8)&&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 hW(D){return{one:NL(D),many:PL(D)}}function P7(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],U=typeof W==="string"?JSON.parse(W):W;Y[B.tsKey]=j(H,V8)?U&&P7(D,D[B.relationTableTsKey],U,B.selection,J):U.map((V)=>P7(D,D[B.relationTableTsKey],V,B.selection,J))}else{let H=J(F[G]),W=B.field,U;if(j(W,QD))U=W;else if(j(W,y))U=W.decoder;else U=W.sql.decoder;Y[B.tsKey]=H===null?null:U.mapFromDriverValue(H)}return Y}var HF,bW,V8,U3;var V3=M(()=>{X0();Y2();i();QW();BF();nD();HF=class HF{constructor(D,$,F){this.sourceTable=D,this.referencedTable=$,this.relationName=F,this.referencedTableName=$[g.Symbol.Name]}static[q]="Relation";referencedTableName;fieldName};bW=class bW{constructor(D,$){this.table=D,this.config=$}static[q]="Relations"};V8=class V8 extends HF{constructor(D,$,F,X){super(D,$,F?.relationName);this.config=F,this.isNullable=X}static[q]="One";withFieldName(D){let $=new V8(this.sourceTable,this.referencedTable,this.config,this.isNullable);return $.fieldName=D,$}};U3=class U3 extends HF{constructor(D,$,F){super(D,$,F?.relationName);this.config=F}static[q]="Many";withFieldName(D){let $=new U3(this.sourceTable,this.referencedTable,this.config);return $.fieldName=D,$}}});function L7(D,$){return new Proxy(D,new Q3($,!1))}function I2(D,$){return new Proxy(D,new i1(new Proxy(D.table,new Q3($,!1))))}function WF(D,$){return new y.Aliased(A3(D.sql,$),D.fieldAlias)}function A3(D,$){return O.join(D.queryChunks.map((F)=>{if(j(F,QD))return I2(F,$);if(j(F,y))return A3(F,$);if(j(F,y.Aliased))return WF(F,$);return F}))}var i1,Q3;var j7=M(()=>{Y2();i();nD();X0();p2();i1=class i1{constructor(D){this.table=D}static[q]="ColumnAliasProxyHandler";get(D,$){if($==="table")return this.table;return D[$]}};Q3=class Q3{constructor(D,$){this.alias=D,this.replaceOriginalName=$}static[q]="TableAliasProxyHandler";get(D,$){if($===g.Symbol.IsAlias)return!0;if($===g.Symbol.Name)return this.alias;if(this.replaceOriginalName&&$===g.Symbol.OriginalName)return this.alias;if($===wD)return{...D[wD],name:this.alias,isAlias:!0};if($===g.Symbol.Columns){let X=D[g.Symbol.Columns];if(!X)return X;let J={};return Object.keys(X).map((Y)=>{J[Y]=new Proxy(X[Y],new i1(new Proxy(D,this)))}),J}let F=D[$];if(j(F,QD))return new Proxy(F,new i1(new Proxy(D,this)));return F}}});var xD;var n1=M(()=>{j7();Y2();i();nD();B2();p2();xD=class xD{static[q]="SelectionProxyHandler";config;constructor(D){this.config={...D}}get(D,$){if($==="_")return{...D._,selectedFields:new Proxy(D._.selectedFields,this)};if($===wD)return{...D[wD],selectedFields:new Proxy(D[wD].selectedFields,this)};if(typeof $==="symbol")return D[$];let X=(j(D,hD)?D._.selectedFields:j(D,b0)?D[wD].selectedFields:D)[$];if(j(X,y.Aliased)){if(this.config.sqlAliasedBehavior==="sql"&&!X.isSelectionField)return X.sql;let J=X.clone();return J.isSelectionField=!0,J}if(j(X,y)){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,QD)){if(this.config.alias)return new Proxy(X,new i1(new Proxy(X.table,new Q3(this.config.alias,this.config.replaceOriginalName??!1))));return X}if(typeof X!=="object"||X===null)return X;return new Proxy(X,new xD(this.config))}}});var V0;var c2=M(()=>{i();V0=class V0{static[q]="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 _F,xW;var UF=M(()=>{i();X3();_F=class _F{static[q]="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 xW(D,this)}};xW=class xW{constructor(D,$){this.table=D,this.reference=$.reference,this.onUpdate=$._onUpdate,this.onDelete=$._onDelete}static[q]="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[P0],...X,F[0].table[P0],...J];return D??`${Y.join("_")}_fk`}}});function yW(D,$){return`${D[P0]}_${$.join("_")}_unique`}var VF=M(()=>{X3()});var sD,fD;var Q8=M(()=>{e$();Y2();i();UF();VF();sD=class sD extends t${static[q]="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 _F(()=>{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)})}};fD=class fD extends QD{constructor(D,$){if(!$.uniqueName)$.uniqueName=yW(D,[$.name]);super(D,$);this.table=D}static[q]="SQLiteColumn"}});function iW(D,$){let{name:F,config:X}=z2(D,$);if(X?.mode==="json")return new pW(F);if(X?.mode==="bigint")return new uW(F);return new dW(F)}var uW,mW,pW,cW,dW,lW;var QF=M(()=>{i();K0();Q8();uW=class uW extends sD{static[q]="SQLiteBigIntBuilder";constructor(D){super(D,"bigint","SQLiteBigInt")}build(D){return new mW(D,this.config)}};mW=class mW extends fD{static[q]="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(JF.decode(D))}mapToDriverValue(D){return Buffer.from(D.toString())}};pW=class pW extends sD{static[q]="SQLiteBlobJsonBuilder";constructor(D){super(D,"json","SQLiteBlobJson")}build(D){return new cW(D,this.config)}};cW=class cW extends fD{static[q]="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(JF.decode(D))}mapToDriverValue(D){return Buffer.from(JSON.stringify(D))}};dW=class dW extends sD{static[q]="SQLiteBlobBufferBuilder";constructor(D){super(D,"buffer","SQLiteBlobBuffer")}build(D){return new lW(D,this.config)}};lW=class lW extends fD{static[q]="SQLiteBlobBuffer";mapFromDriverValue(D){if(Buffer.isBuffer(D))return D;return Buffer.from(D)}getSQLType(){return"blob"}}});function rW(D){return($,F)=>{let{name:X,config:J}=z2($,F);return new nW(X,J,D)}}var nW,sW;var AF=M(()=>{i();K0();Q8();nW=class nW extends sD{static[q]="SQLiteCustomColumnBuilder";constructor(D,$,F){super(D,"custom","SQLiteCustomColumn");this.config.fieldConfig=$,this.config.customTypeParams=F}build(D){return new sW(D,this.config)}};sW=class sW extends fD{static[q]="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 pD(D,$){let{name:F,config:X}=z2(D,$);if(X?.mode==="timestamp"||X?.mode==="timestamp_ms")return new tW(F,X.mode);if(X?.mode==="boolean")return new D_(F,X.mode);return new oW(F)}var z7,I7,oW,aW,tW,eW,D_,$_;var KF=M(()=>{i();nD();K0();Q8();z7=class z7 extends sD{static[q]="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()}};I7=class I7 extends fD{static[q]="SQLiteBaseInteger";autoIncrement=this.config.autoIncrement;getSQLType(){return"integer"}};oW=class oW extends z7{static[q]="SQLiteIntegerBuilder";constructor(D){super(D,"number","SQLiteInteger")}build(D){return new aW(D,this.config)}};aW=class aW extends I7{static[q]="SQLiteInteger"};tW=class tW extends z7{static[q]="SQLiteTimestampBuilder";constructor(D,$){super(D,"date","SQLiteTimestamp");this.config.mode=$}defaultNow(){return this.default(O`(cast((julianday('now') - 2440587.5)*86400000 as integer))`)}build(D){return new eW(D,this.config)}};eW=class eW extends I7{static[q]="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 $}};D_=class D_ extends z7{static[q]="SQLiteBooleanBuilder";constructor(D,$){super(D,"boolean","SQLiteBoolean");this.config.mode=$}build(D){return new $_(D,this.config)}};$_=class $_ extends I7{static[q]="SQLiteBoolean";mode=this.config.mode;mapFromDriverValue(D){return Number(D)===1}mapToDriverValue(D){return D?1:0}}});function H_(D,$){let{name:F,config:X}=z2(D,$),J=X?.mode;return J==="number"?new J_(F):J==="bigint"?new Y_(F):new F_(F)}var F_,X_,J_,G_,Y_,B_;var EF=M(()=>{i();K0();Q8();F_=class F_ extends sD{static[q]="SQLiteNumericBuilder";constructor(D){super(D,"string","SQLiteNumeric")}build(D){return new X_(D,this.config)}};X_=class X_ extends fD{static[q]="SQLiteNumeric";mapFromDriverValue(D){if(typeof D==="string")return D;return String(D)}getSQLType(){return"numeric"}};J_=class J_ extends sD{static[q]="SQLiteNumericNumberBuilder";constructor(D){super(D,"number","SQLiteNumericNumber")}build(D){return new G_(D,this.config)}};G_=class G_ extends fD{static[q]="SQLiteNumericNumber";mapFromDriverValue(D){if(typeof D==="number")return D;return Number(D)}mapToDriverValue=String;getSQLType(){return"numeric"}};Y_=class Y_ extends sD{static[q]="SQLiteNumericBigIntBuilder";constructor(D){super(D,"bigint","SQLiteNumericBigInt")}build(D){return new B_(D,this.config)}};B_=class B_ extends fD{static[q]="SQLiteNumericBigInt";mapFromDriverValue=BigInt;mapToDriverValue=String;getSQLType(){return"numeric"}}});function U_(D){return new W_(D??"")}var W_,__;var CF=M(()=>{i();Q8();W_=class W_ extends sD{static[q]="SQLiteRealBuilder";constructor(D){super(D,"number","SQLiteReal")}build(D){return new __(D,this.config)}};__=class __ extends fD{static[q]="SQLiteReal";getSQLType(){return"real"}}});function T(D,$={}){let{name:F,config:X}=z2(D,$);if(X.mode==="json")return new A_(F);return new V_(F,X)}var V_,Q_,A_,K_;var RF=M(()=>{i();K0();Q8();V_=class V_ extends sD{static[q]="SQLiteTextBuilder";constructor(D,$){super(D,"string","SQLiteText");this.config.enumValues=$.enum,this.config.length=$.length}build(D){return new Q_(D,this.config)}};Q_=class Q_ extends fD{static[q]="SQLiteText";enumValues=this.config.enumValues;length=this.config.length;constructor(D,$){super(D,$)}getSQLType(){return`text${this.config.length?`(${this.config.length})`:""}`}};A_=class A_ extends sD{static[q]="SQLiteTextJsonBuilder";constructor(D){super(D,"json","SQLiteTextJson")}build(D){return new K_(D,this.config)}};K_=class K_ extends fD{static[q]="SQLiteTextJson";getSQLType(){return"text"}mapFromDriverValue(D){return JSON.parse(D)}mapToDriverValue(D){return JSON.stringify(D)}}});function E_(){return{blob:iW,customType:rW,integer:pD,numeric:H_,real:U_,text:T}}var C_=M(()=>{QF();AF();KF();EF();CF();RF()});function LL(D,$,F,X,J=D){let Y=new rD(D,X,J),G=typeof $==="function"?$(E_()):$,B=Object.fromEntries(Object.entries(G).map(([W,U])=>{let V=U;V.setName(W);let Q=V.build(Y);return Y[OF].push(...V.buildForeignKeys(Q,Y)),[W,Q]})),H=Object.assign(Y,B);if(H[g.Symbol.Columns]=B,H[g.Symbol.ExtraConfigColumns]=B,F)H[rD.Symbol.ExtraConfigBuilder]=F;return H}var OF,rD,Q0=(D,$,F)=>{return LL(D,$,F)};var s8=M(()=>{i();X0();C_();OF=Symbol.for("drizzle:SQLiteInlineForeignKeys");rD=class rD extends g{static[q]="SQLiteTable";static Symbol=Object.assign({},g.Symbol,{InlineForeignKeys:OF});[g.Symbol.Columns];[OF]=[];[g.Symbol.ExtraConfigBuilder]=void 0}});var R_=()=>{};function w2(D){return new MF(D,!1)}function Z_(D){return new MF(D,!0)}var MF,O_,M_;var q_=M(()=>{i();MF=class MF{constructor(D,$){this.name=D,this.unique=$}static[q]="SQLiteIndexBuilderOn";on(...D){return new O_(this.name,D,this.unique)}};O_=class O_{static[q]="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 M_(this.config,D)}};M_=class M_{static[q]="SQLiteIndex";config;constructor(D,$){this.config={...D,table:$}}}});var N_=()=>{};function H2(D){if(j(D,rD))return[`${D[g.Symbol.BaseName]}`];if(j(D,hD))return D._.usedTables??[];if(j(D,y))return D.usedTables??[];return[]}var s1=M(()=>{i();nD();B2();X0();s8()});var w7;var P_=M(()=>{i();c2();n1();s8();X0();K0();s1();w7=class w7 extends V0{constructor(D,$,F,X){super();this.table=D,this.session=$,this.dialect=F,this.config={table:D,withList:X}}static[q]="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[g.Symbol.Columns],new xD({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[rD.Symbol.Columns]){return this.config.returning=f0(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:H2(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 jL(D){return(D.replace(/['\u2019]/g,"").match(/[\da-z]+|[A-Z]+(?![a-z])|[A-Z][\da-z]+/g)??[]).map((F)=>F.toLowerCase()).join("_")}function zL(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 IL(D){return D}var ZF;var L_=M(()=>{i();X0();ZF=class ZF{static[q]="CasingCache";cache={};cachedTables={};convert;constructor(D){this.convert=D==="snake_case"?jL:D==="camelCase"?zL:IL}getColumnCasing(D){if(!D.keyAsName)return D.name;let $=D.table[g.Symbol.Schema]??"public",F=D.table[g.Symbol.OriginalName],X=`${$}.${F}.${D.name}`;if(!this.cache[X])this.cacheTable(D.table);return this.cache[X]}cacheTable(D){let $=D[g.Symbol.Schema]??"public",F=D[g.Symbol.OriginalName],X=`${$}.${F}`;if(!this.cachedTables[X]){for(let J of Object.values(D[g.Symbol.Columns])){let Y=`${X}.${J.name}`;this.cache[Y]=this.convert(J.name)}this.cachedTables[X]=!0}}clearCache(){this.cache={},this.cachedTables={}}}});var r1,d2,qF;var T7=M(()=>{i();r1=class r1 extends Error{static[q]="DrizzleError";constructor({message:D,cause:$}){super(D);this.name="DrizzleError",this.cause=$}};d2=class d2 extends Error{constructor(D,$,F){super(`Failed query: ${D}
105
+ params: ${$}`);if(this.query=D,this.params=$,this.cause=F,Error.captureStackTrace(this,d2),F)this.cause=F}};qF=class qF extends r1{static[q]="TransactionRollbackError";constructor(){super({message:"Rollback"})}}});function j_(D){return O`count(${D||O.raw("*")})`.mapWith(Number)}var z_=M(()=>{nD()});var I_=()=>{};var w_=M(()=>{z_();I_()});var NF=M(()=>{BF();w_();nD()});var PF=M(()=>{QF();Q8();AF();KF();EF();CF();RF()});var r8;var S7=M(()=>{i();nD();r8=class r8 extends b0{static[q]="SQLiteViewBase"}});var K3,E3;var b7=M(()=>{j7();L_();Y2();i();T7();V3();NF();nD();PF();s8();B2();X0();K0();p2();S7();K3=class K3{static[q]="SQLiteDialect";casing;constructor(D){this.casing=new ZF(D?.casing)}escapeName(D){return`"${D}"`}escapeParam(D){return"?"}escapeString(D){return`'${D.replace(/'/g,"''")}'`}buildWithCTE(D){if(!D?.length)return;let $=[O`with `];for(let[F,X]of D.entries())if($.push(O`${O.identifier(X._.alias)} as (${X._.sql})`),F<D.length-1)$.push(O`, `);return $.push(O` `),O.join($)}buildDeleteQuery({table:D,where:$,returning:F,withList:X,limit:J,orderBy:Y}){let G=this.buildWithCTE(X),B=F?O` returning ${this.buildSelection(F,{isSingleTable:!0})}`:void 0,H=$?O` where ${$}`:void 0,W=this.buildOrderBy(Y),U=this.buildLimit(J);return O`${G}delete from ${D}${H}${B}${W}${U}`}buildUpdateSet(D,$){let F=D[g.Symbol.Columns],X=Object.keys(F).filter((Y)=>$[Y]!==void 0||F[Y]?.onUpdateFn!==void 0),J=X.length;return O.join(X.flatMap((Y,G)=>{let B=F[Y],H=$[Y]??O.param(B.onUpdateFn(),B),W=O`${O.identifier(this.casing.getColumnCasing(B))} = ${H}`;if(G<J-1)return[W,O.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),U=this.buildUpdateSet(D,$),V=G&&O.join([O.raw(" from "),this.buildFromTable(G)]),Q=this.buildJoins(Y),K=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,C=F?O` where ${F}`:void 0,E=this.buildOrderBy(H),A=this.buildLimit(B);return O`${W}update ${D} set ${U}${V}${Q}${C}${K}${E}${A}`}buildSelection(D,{isSingleTable:$=!1}={}){let F=D.length,X=D.flatMap(({field:J},Y)=>{let G=[];if(j(J,y.Aliased)&&J.isSelectionField)G.push(O.identifier(J.fieldAlias));else if(j(J,y.Aliased)||j(J,y)){let B=j(J,y.Aliased)?J.sql:J;if($)G.push(new y(B.queryChunks.map((H)=>{if(j(H,QD))return O.identifier(this.casing.getColumnCasing(H));return H})));else G.push(B);if(j(J,y.Aliased))G.push(O` as ${O.identifier(J.fieldAlias)}`)}else if(j(J,QD)){let B=J.table[g.Symbol.Name];if(J.columnType==="SQLiteNumericBigInt")if($)G.push(O`cast(${O.identifier(this.casing.getColumnCasing(J))} as text)`);else G.push(O`cast(${O.identifier(B)}.${O.identifier(this.casing.getColumnCasing(J))} as text)`);else if($)G.push(O.identifier(this.casing.getColumnCasing(J)));else G.push(O`${O.identifier(B)}.${O.identifier(this.casing.getColumnCasing(J))}`)}if(Y<F-1)G.push(O`, `);return G});return O.join(X)}buildJoins(D){if(!D||D.length===0)return;let $=[];if(D)for(let[F,X]of D.entries()){if(F===0)$.push(O` `);let J=X.table,Y=X.on?O` on ${X.on}`:void 0;if(j(J,rD)){let G=J[rD.Symbol.Name],B=J[rD.Symbol.Schema],H=J[rD.Symbol.OriginalName],W=G===H?void 0:X.alias;$.push(O`${O.raw(X.joinType)} join ${B?O`${O.identifier(B)}.`:void 0}${O.identifier(H)}${W&&O` ${O.identifier(W)}`}${Y}`)}else $.push(O`${O.raw(X.joinType)} join ${J}${Y}`);if(F<D.length-1)$.push(O` `)}return O.join($)}buildLimit(D){return typeof D==="object"||typeof D==="number"&&D>=0?O` limit ${D}`:void 0}buildOrderBy(D){let $=[];if(D){for(let[F,X]of D.entries())if($.push(X),F<D.length-1)$.push(O`, `)}return $.length>0?O` order by ${O.join($)}`:void 0}buildFromTable(D){if(j(D,g)&&D[g.Symbol.IsAlias])return O`${O`${O.identifier(D[g.Symbol.Schema]??"")}.`.if(D[g.Symbol.Schema])}${O.identifier(D[g.Symbol.OriginalName])} ${O.identifier(D[g.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:U,distinct:V,setOperators:Q}){let K=F??f0($);for(let a of K)if(j(a.field,QD)&&_8(a.field.table)!==(j(Y,hD)?Y._.alias:j(Y,r8)?Y[wD].name:j(Y,y)?void 0:_8(Y))&&!((dD)=>G?.some(({alias:Z2})=>Z2===(dD[g.Symbol.IsAlias]?_8(dD):dD[g.Symbol.BaseName])))(a.field.table)){let dD=_8(a.field.table);throw Error(`Your "${a.path.join("->")}" field references a column "${dD}"."${a.field.name}", but the table "${dD}" is not part of the query! Did you forget to join it?`)}let C=!G||G.length===0,E=this.buildWithCTE(D),A=V?O` distinct`:void 0,Z=this.buildSelection(K,{isSingleTable:C}),P=this.buildFromTable(Y),N=this.buildJoins(G),S=X?O` where ${X}`:void 0,z=J?O` having ${J}`:void 0,L=[];if(H){for(let[a,dD]of H.entries())if(L.push(dD),a<H.length-1)L.push(O`, `)}let b=L.length>0?O` group by ${O.join(L)}`:void 0,I=this.buildOrderBy(B),o=this.buildLimit(W),_D=U?O` offset ${U}`:void 0,BD=O`${E}select${A} ${Z} from ${P}${N}${S}${b}${z}${I}${o}${_D}`;if(Q.length>0)return this.buildSetOperations(BD,Q);return BD}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=O`${D.getSQL()} `,H=O`${X.getSQL()}`,W;if(Y&&Y.length>0){let K=[];for(let C of Y)if(j(C,fD))K.push(O.identifier(C.name));else if(j(C,y)){for(let E=0;E<C.queryChunks.length;E++){let A=C.queryChunks[E];if(j(A,fD))C.queryChunks[E]=O.identifier(this.casing.getColumnCasing(A))}K.push(O`${C}`)}else K.push(O`${C}`);W=O` order by ${O.join(K,O`, `)}`}let U=typeof J==="object"||typeof J==="number"&&J>=0?O` limit ${J}`:void 0,V=O.raw(`${$} ${F?"all ":""}`),Q=G?O` offset ${G}`:void 0;return O`${B}${V}${H}${W}${U}${Q}`}buildInsertQuery({table:D,values:$,onConflict:F,returning:X,withList:J,select:Y}){let G=[],B=D[g.Symbol.Columns],H=Object.entries(B).filter(([C,E])=>!E.shouldDisableInsert()),W=H.map(([,C])=>O.identifier(this.casing.getColumnCasing(C)));if(Y){let C=$;if(j(C,y))G.push(C);else G.push(C.getSQL())}else{let C=$;G.push(O.raw("values "));for(let[E,A]of C.entries()){let Z=[];for(let[P,N]of H){let S=A[P];if(S===void 0||j(S,L0)&&S.value===void 0){let z;if(N.default!==null&&N.default!==void 0)z=j(N.default,y)?N.default:O.param(N.default,N);else if(N.defaultFn!==void 0){let L=N.defaultFn();z=j(L,y)?L:O.param(L,N)}else if(!N.default&&N.onUpdateFn!==void 0){let L=N.onUpdateFn();z=j(L,y)?L:O.param(L,N)}else z=O`null`;Z.push(z)}else Z.push(S)}if(G.push(Z),E<C.length-1)G.push(O`, `)}}let U=this.buildWithCTE(J),V=O.join(G),Q=X?O` returning ${this.buildSelection(X,{isSingleTable:!0})}`:void 0,K=F?.length?O.join(F):void 0;return O`${U}insert into ${D} ${W} ${V}${K}${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,V,Q=[],K,C=[];if(Y===!0)W=Object.entries(J.columns).map(([Z,P])=>({dbKey:P.name,tsKey:Z,field:I2(P,G),relationTableTsKey:void 0,isJson:!1,selection:[]}));else{let A=Object.fromEntries(Object.entries(J.columns).map(([L,b])=>[L,I2(b,G)]));if(Y.where){let L=typeof Y.where==="function"?Y.where(A,fW()):Y.where;K=L&&A3(L,G)}let Z=[],P=[];if(Y.columns){let L=!1;for(let[b,I]of Object.entries(Y.columns)){if(I===void 0)continue;if(b in J.columns){if(!L&&I===!0)L=!0;P.push(b)}}if(P.length>0)P=L?P.filter((b)=>Y.columns?.[b]===!0):Object.keys(J.columns).filter((b)=>!P.includes(b))}else P=Object.keys(J.columns);for(let L of P){let b=J.columns[L];Z.push({tsKey:L,value:b})}let N=[];if(Y.with)N=Object.entries(Y.with).filter((L)=>!!L[1]).map(([L,b])=>({tsKey:L,queryConfig:b,relation:J.relations[L]}));let S;if(Y.extras){S=typeof Y.extras==="function"?Y.extras(A,{sql:O}):Y.extras;for(let[L,b]of Object.entries(S))Z.push({tsKey:L,value:WF(b,G)})}for(let{tsKey:L,value:b}of Z)W.push({dbKey:j(b,y.Aliased)?b.fieldAlias:J.columns[L].name,tsKey:L,field:j(b,QD)?I2(b,G):b,relationTableTsKey:void 0,isJson:!1,selection:[]});let z=typeof Y.orderBy==="function"?Y.orderBy(A,kW()):Y.orderBy??[];if(!Array.isArray(z))z=[z];Q=z.map((L)=>{if(j(L,QD))return I2(L,G);return A3(L,G)}),U=Y.limit,V=Y.offset;for(let{tsKey:L,queryConfig:b,relation:I}of N){let o=gW($,F,I),_D=n8(I.referencedTable),BD=F[_D],a=`${G}_${L}`,dD=k0(...o.fields.map((dM,lM)=>u(I2(o.references[lM],a),I2(dM,G)))),Z2=this.buildRelationalQuery({fullSchema:D,schema:$,tableNamesMap:F,table:D[BD],tableConfig:$[BD],queryConfig:j(I,V8)?b===!0?{limit:1}:{...b,limit:1}:b,tableAlias:a,joinOn:dD,nestedQueryRelation:I}),cM=O`(${Z2.sql})`.as(L);W.push({dbKey:L,tsKey:L,field:cM,relationTableTsKey:BD,isJson:!0,selection:Z2.selection})}}if(W.length===0)throw new r1({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(K=k0(H,K),B){let A=O`json_array(${O.join(W.map(({field:N})=>j(N,fD)?O.identifier(this.casing.getColumnCasing(N)):j(N,y.Aliased)?N.sql:N),O`, `)})`;if(j(B,U3))A=O`coalesce(json_group_array(${A}), json_array())`;let Z=[{dbKey:"data",tsKey:"data",field:A.as("data"),isJson:!0,relationTableTsKey:J.tsName,selection:W}];if(U!==void 0||V!==void 0||Q.length>0)E=this.buildSelectQuery({table:L7(X,G),fields:{},fieldsFlat:[{path:[],field:O.raw("*")}],where:K,limit:U,offset:V,orderBy:Q,setOperators:[]}),K=void 0,U=void 0,V=void 0,Q=void 0;else E=L7(X,G);E=this.buildSelectQuery({table:j(E,rD)?E:new hD(E,{},G),fields:{},fieldsFlat:Z.map(({field:N})=>({path:[],field:j(N,QD)?I2(N,G):N})),joins:C,where:K,limit:U,offset:V,orderBy:Q,setOperators:[]})}else E=this.buildSelectQuery({table:L7(X,G),fields:{},fieldsFlat:W.map(({field:A})=>({path:[],field:j(A,QD)?I2(A,G):A})),joins:C,where:K,limit:U,offset:V,orderBy:Q,setOperators:[]});return{tableTsKey:J.tsName,sql:E,selection:W}}};E3=class E3 extends K3{static[q]="SQLiteSyncDialect";migrate(D,$,F){let X=F===void 0?"__drizzle_migrations":typeof F==="string"?"__drizzle_migrations":F.migrationsTable??"__drizzle_migrations",J=O`
106
106
  CREATE TABLE IF NOT EXISTS ${O.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(O`SELECT id, hash, created_at FROM ${O.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(O`BEGIN`);try{for(let B of D)if(!G||Number(G[2])<B.folderMillis){for(let H of B.sql)$.run(O.raw(H));$.run(O`INSERT INTO ${O.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(O`COMMIT`)}catch(B){throw $.run(O`ROLLBACK`),B}}}});var LF;var T_=M(()=>{i();LF=class LF{static[q]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function f7(D,$){return(F,X,...J)=>{let Y=[X,...J].map((G)=>({type:D,isAll:$,rightSelect:G}));for(let G of Y)if(!H3(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 W2,S_,jF,jL=()=>({union:zL,unionAll:IL,intersect:wL,except:TL}),zL,IL,wL,TL;var zF=M(()=>{i();T_();c2();n1();nD();B2();X0();K0();p2();s1();S7();W2=class W2{static[q]="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,hD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(j(D,r8))F=D[wD].selectedFields;else if(j(D,y))F={};else F=BW(D);return new jF({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};S_=class S_ extends LF{static[q]="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=W3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of H2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=W3($);for(let Y of H2($))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($,y)){let Y=j($,hD)?$._.selectedFields:j($,b0)?$[wD].selectedFields:$[g.Symbol.Columns];this.config.fields[J]=Y}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new xD({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(jL()):F;if(!H3(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 xD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new xD({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 xD({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 xD({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(...H2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...H2(F.table));return new Proxy(new hD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new xD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};jF=class jF extends S_{static[q]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=f0(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()}};YW(jF,[V0]);zL=f7("union",!1),IL=f7("union",!0),wL=f7("intersect",!1),TL=f7("except",!1)});var C3;var IF=M(()=>{i();n1();b7();B2();zF();C3=class C3{static[q]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=j(D,K3)?D:void 0,this.dialectConfig=j(D,K3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new Y3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new W2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new W2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new W2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new W2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new E3(this.dialectConfig);return this.dialect}}});var k7,wF;var b_=M(()=>{i();c2();nD();s8();X0();K0();s1();IF();k7=class k7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[q]="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[g.Symbol.Columns];for(let Y of Object.keys(F)){let G=F[Y];X[Y]=j(G,y)?G:new L0(G,J[Y])}return X});return new wF(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new C3):D;if(!j($,y)&&!H3(this.table[R7],$._.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 wF(this.table,$,this.session,this.dialect,this.withList,!0)}};wF=class wF extends V0{constructor(D,$,F,X,J,Y){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:Y}}static[q]="SQLiteInsert";config;returning(D=this.config.table[rD.Symbol.Columns]){return this.config.returning=f0(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(O` on conflict do nothing`);else{let $=Array.isArray(D.target)?O`${D.target}`:O`${[D.target]}`,F=D.where?O` where ${D.where}`:O``;this.config.onConflict.push(O` 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?O` where ${D.where}`:void 0,F=D.targetWhere?O` where ${D.targetWhere}`:void 0,X=D.setWhere?O` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?O`${D.target}`:O`${[D.target]}`,Y=this.dialect.buildUpdateSet(this.config.table,M7(this.config.table,D.set));return this.config.onConflict.push(O` 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:H2(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 v7,f_;var k_=M(()=>{i();c2();n1();s8();B2();X0();K0();p2();s1();S7();v7=class v7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[q]="SQLiteUpdateBuilder";set(D){return new f_(this.table,M7(this.table,D),this.session,this.dialect,this.withList)}};f_=class f_ extends V0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[q]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=W3($);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($,rD)?$[g.Symbol.Columns]:j($,hD)?$._.selectedFields:j($,r8)?$[wD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[g.Symbol.Columns],new xD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new xD({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[g.Symbol.Columns],new xD({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[rD.Symbol.Columns]){return this.config.returning=f0(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:H2(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 TF=M(()=>{P_();b_();IF();zF();k_()});var R3;var v_=M(()=>{i();nD();R3=class R3 extends y{constructor(D){super(R3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=R3.buildCount(D.source,D.filters)}sql;static[q]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return O`(select count(*) from ${D}${O.raw(" where ").if($)}${$})`}static buildCount(D,$){return O`select count(*) from ${D}${O.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 bF,g7,SF;var g_=M(()=>{i();c2();V3();bF=class bF{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[q]="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 g7(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 g7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};g7=class g7 extends V0{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[q]="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)=>P7(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 g7{static[q]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var o1;var h_=M(()=>{i();c2();o1=class o1 extends V0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[q]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(D,$){return $?this.mapBatchResult(D):D}_prepare(){return this}isResponseInArrayMode(){return!1}}});var O3;var h7=M(()=>{i();n1();nD();TF();B2();v_();g_();h_();O3=class O3{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[Y,G]of Object.entries(this._.schema))J[Y]=new bF(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],G,$,F);this.$cache={invalidate:async(Y)=>{}}}static[q]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new C3(F.dialect));return new Proxy(new Y3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new R3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new W2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new W2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new v7(B,$.session,$.dialect,D)}function Y(B){return new k7(B,$.session,$.dialect,D)}function G(B){return new w7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:Y,delete:G}}select(D){return new W2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new W2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new v7(D,this.session,this.dialect)}$cache;insert(D){return new k7(D,this.session,this.dialect)}delete(D){return new w7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(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 x_=()=>{};async function kF(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 y_,fF;var u_=M(()=>{i();y_=class y_{static[q]="Cache"};fF=class fF extends y_{strategy(){return"all"}static[q]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var m_,vF,gF,hF;var xF=M(()=>{u_();i();T7();c2();h7();m_=class m_ extends V0{constructor(D){super();this.resultCb=D}static[q]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};vF=class vF{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[q]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||j(this.cache,fF)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new d2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new d2(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 d2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new d2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await kF(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 d2(D,$,Y)}return await this.cache.put(this.cacheConfig.tag??await kF(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 d2(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 m_(()=>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,$)}}};gF=class gF{constructor(D){this.dialect=D}static[q]="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 r1({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")}};hF=class hF extends O3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[q]="SQLiteTransaction";rollback(){throw new qF}}});var p_=()=>{};var x7=M(()=>{x_();R_();PF();h7();b7();UF();q_();N_();TF();xF();s8();VF();s1();p_()});var yF,uF,c_;var mF=M(()=>{i();E7();nD();x7();xF();K0();yF=class yF extends gF{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new r$}static[q]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let Y=this.client.prepare(D.sql);return new c_(Y,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new uF("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};uF=class uF extends hF{static[q]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new uF("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(O.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(O.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(O.raw(`rollback to savepoint ${$}`)),X}}};c_=class c_ extends vF{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[q]="SQLiteBunPreparedQuery";run(D){let $=B3(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=B3(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)=>XF($,H,J))}get(D){let $=B3(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 XF(X,F,J)}values(D){let $=B3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as y7}from"bun:sqlite";function a1(D,$={}){let F=new E3({casing:$.casing}),X;if($.logger===!0)X=new s$;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=vW($.schema,hW);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let Y=new yF(D,F,J,{logger:X}),G=new d_("sync",F,Y,J);return G.$client=D,G}function t1(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new y7:new y7(D[0]);return a1($,D[1])}if(HW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return a1(F,X);if(typeof $==="object"){let{source:Y,...G}=$,B=Object.values(G).filter((W)=>W!==void 0).length?G:void 0,H=new y7(Y,B);return a1(H,X)}let J=new y7($);return a1(J,X)}return a1(D[0],D[1])}var d_;var l_=M(()=>{i();E7();V3();h7();b7();K0();mF();d_=class d_ extends O3{static[q]="BunSQLiteDatabase"};((D)=>{function $(F){return a1({},F)}D.mock=$})(t1||(t1={}))});var pF=M(()=>{l_();mF()});import SL from"crypto";import cF from"fs";function i_(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!cF.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=cF.readFileSync(`${$}/meta/_journal.json`).toString(),Y=JSON.parse(J);for(let G of Y.entries){let B=`${$}/${G.tag}.sql`;try{let H=cF.readFileSync(`${$}/${G.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((U)=>{return U});F.push({sql:W,bps:G.breakpoints,folderMillis:G.when,hash:SL.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var n_=()=>{};function u7(D,$){let F=i_($);D.dialect.migrate(F,D.session,$)}var dF=M(()=>{n_()});var C0=M(()=>{j7();e$();Y2();i();T7();E7();c2();V3();NF();B2();X0();K0();p2()});var t7={};v8(t7,{workerSecrets:()=>Y0,workerIdentity:()=>v0,workerConfig:()=>U2,skillDrafts:()=>R0,skillBindings:()=>q3,messages:()=>G0,executionLogs:()=>n2,evolutionObservations:()=>_2,cronJobs:()=>ZD,conversations:()=>ED,agentTasks:()=>E8});var E8,ED,G0,n2,q3,R0,_2,v0,U2,ZD,Y0;var GX=M(()=>{x7();E8=Q0("agent_tasks",{id:T("id").primaryKey(),prompt:T("prompt").notNull(),status:T("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:T("conversation_id"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:T("finished_at"),result:T("result",{mode:"json"}).$type(),error:T("error")},(D)=>({createdAtIdx:w2("agent_tasks_created_at_idx").on(D.createdAt)})),ED=Q0("conversations",{id:T("id").primaryKey(),taskId:T("task_id").references(()=>E8.id),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),threadId:T("thread_id"),status:T("status",{enum:["open","closed"]}).notNull().default("open"),summary:T("summary"),startedAt:T("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:T("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:T("closed_at")},(D)=>({lookupIdx:w2("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:w2("conversations_last_active_at_idx").on(D.lastActiveAt)})),G0=Q0("messages",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id").notNull().references(()=>ED.id,{onDelete:"cascade"}),role:T("role",{enum:["system","user","assistant","tool"]}).notNull(),content:T("content").notNull(),toolCalls:T("tool_calls",{mode:"json"}).$type(),toolCallId:T("tool_call_id"),tokensIn:pD("tokens_in"),tokensOut:pD("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:w2("messages_conversation_id_idx").on(D.conversationId)})),n2=Q0("execution_logs",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),toolName:T("tool_name").notNull(),params:T("params",{mode:"json"}).$type(),result:T("result",{mode:"json"}).$type(),duration:pD("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:w2("execution_logs_conversation_id_idx").on(D.conversationId)})),q3=Q0("skill_bindings",{id:pD("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:pD("enabled",{mode:"boolean"}).notNull().default(!0),priority:pD("priority").notNull().default(0),config:T("config",{mode:"json"}).$type(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:Z_("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),R0=Q0("skill_drafts",{id:pD("id").primaryKey({autoIncrement:!0}),proposedName:T("proposed_name").notNull(),source:T("source").$type().notNull(),bodyMarkdown:T("body_markdown").notNull(),rationale:T("rationale").notNull().default(""),status:T("status").$type().notNull().default("pending"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:T("decided_at"),decidedBy:T("decided_by")}),_2=Q0("evolution_observations",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),kind:T("kind").notNull(),payload:T("payload",{mode:"json"}).$type().notNull(),noticedAt:T("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:w2("evolution_observations_noticed_at_idx").on(D.noticedAt)})),v0=Q0("worker_identity",{pk:T("pk").primaryKey().default("default"),workerId:T("worker_id").notNull().unique(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),bootstrapShownAt:T("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:T("rotated_at")}),U2=Q0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:pD("version").notNull().default(1),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:T("updated_by",{enum:["bootstrap","api","cli"]})}),ZD=Q0("cron_jobs",{id:T("id").primaryKey(),expression:T("expression").notNull(),prompt:T("prompt").notNull(),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),accountId:T("account_id").notNull(),enabled:pD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:T("last_run_at"),nextRunAt:T("next_run_at"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:w2("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),Y0=Q0("worker_secrets",{id:pD("id").primaryKey({autoIncrement:!0}),key:T("key").notNull().unique(),valueEnc:T("value_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var BX={};v8(BX,{workerSecrets:()=>Y0,workerSchema:()=>t7,workerIdentity:()=>v0,workerConfig:()=>U2,skillDrafts:()=>R0,skillBindings:()=>q3,runWorkerMigrations:()=>L3,messages:()=>G0,initWorkerDb:()=>P3,getWorkerDb:()=>p,executionLogs:()=>n2,evolutionObservations:()=>_2,defaultWorkerMigrationsFolder:()=>$6,cronJobs:()=>ZD,conversations:()=>ED,closeWorkerDb:()=>Uz,agentTasks:()=>E8});import{existsSync as eU}from"fs";import YX from"path";import{fileURLToPath as Bz}from"url";import{Database as Hz}from"bun:sqlite";function Wz(D){let $=YX.resolve(DV,"../../drizzle",D);if(eU($))return $;let F=YX.resolve(DV,"drizzle",D);if(eU(F))return F;return $}function _z(D){let $=new Hz(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),t1($,{schema:t7})}function P3(D){return N3=_z(D),N3}function p(){if(!N3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return N3}function Uz(){N3=null}function L3(D=$6){u7(p(),{migrationsFolder:D})}var DV,$6,N3=null;var TD=M(()=>{pF();dF();GX();GX();DV=YX.dirname(Bz(import.meta.url));$6=Wz("worker")});import $V from"path";import FV from"process";function Qz(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 e8(){if(e7)return e7;let D=Vz.parse(FV.env);return e7=Object.freeze({...D,perEngineLimits:Object.freeze({...Qz(FV.env)})}),e7}var Vz,e7=null,l;var D4=M(()=>{q2();N0();TD();vD();Vz=_.object({PORT:_.coerce.number().default(9217),WORKER_DB_PATH:_.string().default(()=>$V.join(h2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:_.string().default(()=>$6),AIWORKER_MASTER_KEY:_.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:_.string().regex(d1).optional(),AIWORKER_FORCE_TOKEN:_.string().regex(m2).optional(),AIWORKER_ADVERTISED_BASE_URL:_.string().optional(),WORKER_DATA_ROOT:_.string().default(()=>$V.join(h2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:_.string().optional(),AIWORKER_GATEWAY_URL:_.string().url().optional(),AIWORKER_JOIN_TOKEN:_.string().min(1).optional(),AIWORKER_DISPLAY_NAME:_.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:_.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:_.string().optional(),MAX_CONCURRENT_TOTAL:_.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:_.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:_.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:_.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:_.coerce.number().int().min(0).default(30000)});l=new Proxy({},{get(D,$){return e8()[$]},has(D,$){return $ in e8()},ownKeys(D){return Reflect.ownKeys(e8())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(e8(),$)}})});function C8(D){let $=Az[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 XV(D){if(!D||typeof D!=="object")return{...z3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...z3};switch(F){case"http":return{engine:"http",variant:"default",overrides:j3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:j3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:j3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:j3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:j3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...z3}}}function j3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var Az,z3;var D1=M(()=>{Az={http:{variants:{default:{baseUrl:"",apiKey:"",model:"gpt-4o-mini",timeoutMs:30000},"gemini-openai-compat":{baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",apiKey:"",model:"gemini-2.5-flash",timeoutMs:30000},deepseek:{baseUrl:"https://api.deepseek.com",apiKey:"",model:"deepseek-chat",timeoutMs:30000},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",apiKey:"",model:"Qwen/Qwen2.5-7B-Instruct",timeoutMs:30000},openrouter:{baseUrl:"https://openrouter.ai/api/v1",apiKey:"",model:"anthropic/claude-sonnet-4.5",timeoutMs:30000}}},mcp:{variants:{default:{url:"",token:"",timeoutMs:30000}}},cli:{variants:{default:{command:"",args:[],timeoutMs:30000}}},"claude-code":{variants:{default:{model:"sonnet",timeoutMs:120000},"opus-plan":{model:"opus",permissionPolicy:"plan",timeoutMs:180000}}},acp:{variants:{gemini:{agent:"gemini",timeoutMs:120000},qwen:{agent:"qwen",timeoutMs:120000}}},codex:{variants:{default:{model:"gpt-5.2-codex",timeoutMs:120000}}},cursor:{variants:{default:{model:"auto",timeoutMs:120000}}}},z3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var F6;var HX=M(()=>{D1();F6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...z3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function $1(D){let $=await D.select().from(U2).where(u(U2.pk,"default")).get();if($)return{config:Kz($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(U2).values({pk:"default",configJson:F6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:F6,version:1}}function Kz(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:XV($)}}var JV=M(()=>{TD();C0();D1();HX()});import{randomBytes as Ez}from"crypto";function X6(){let D=Ez(32),$=`${G7}${Cz(D)}`;if(!W8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function Cz(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function F1(D,$,F={}){let X=await D.select().from(v0).where(u(v0.pk,"default")).get();if(X){let V=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!W8(V))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await H$(X.workerId),{workerId:X.workerId,token:V,justMinted:!1}}let J=F.forceId??$4();if(!d1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let Y=F.forceToken??X6();if(!W8(Y))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let G=Y,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(G),U=new Date().toISOString();return await D.insert(v0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:U,createdAt:U}).run(),await H$(J),{workerId:J,token:G,justMinted:!0}}var $4;var WX=M(()=>{q2();N0();TD();C0();$4=y$});import Rz from"process";function X1(D,$,F,X,J=Rz.stdout){if(!X)return;J.write(`[worker] id=${D}
111
+ `;$.run(J);let G=$.values(O`SELECT id, hash, created_at FROM ${O.identifier(X)} ORDER BY created_at DESC LIMIT 1`)[0]??void 0;$.run(O`BEGIN`);try{for(let B of D)if(!G||Number(G[2])<B.folderMillis){for(let H of B.sql)$.run(O.raw(H));$.run(O`INSERT INTO ${O.identifier(X)} ("hash", "created_at") VALUES(${B.hash}, ${B.folderMillis})`)}$.run(O`COMMIT`)}catch(B){throw $.run(O`ROLLBACK`),B}}}});var LF;var T_=M(()=>{i();LF=class LF{static[q]="TypedQueryBuilder";getSelectedFields(){return this._.selectedFields}}});function f7(D,$){return(F,X,...J)=>{let Y=[X,...J].map((G)=>({type:D,isAll:$,rightSelect:G}));for(let G of Y)if(!H3(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 W2,S_,jF,wL=()=>({union:TL,unionAll:SL,intersect:bL,except:fL}),TL,SL,bL,fL;var zF=M(()=>{i();T_();c2();n1();nD();B2();X0();K0();p2();s1();S7();W2=class W2{static[q]="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,hD))F=Object.fromEntries(Object.keys(D._.selectedFields).map((X)=>[X,D[X]]));else if(j(D,r8))F=D[wD].selectedFields;else if(j(D,y))F={};else F=BW(D);return new jF({table:D,fields:F,isPartialSelect:$,session:this.session,dialect:this.dialect,withList:this.withList,distinct:this.distinct})}};S_=class S_ extends LF{static[q]="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=W3(D),this.joinsNotNullableMap=typeof this.tableName==="string"?{[this.tableName]:!0}:{};for(let B of H2(D))this.usedTables.add(B)}getUsedTables(){return[...this.usedTables]}createJoin(D){return($,F)=>{let X=this.tableName,J=W3($);for(let Y of H2($))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($,y)){let Y=j($,hD)?$._.selectedFields:j($,b0)?$[wD].selectedFields:$[g.Symbol.Columns];this.config.fields[J]=Y}}if(typeof F==="function")F=F(new Proxy(this.config.fields,new xD({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(wL()):F;if(!H3(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 xD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})));return this.config.where=D,this}having(D){if(typeof D==="function")D=D(new Proxy(this.config.fields,new xD({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 xD({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 xD({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(...H2(this.config.table)),this.config.joins)for(let F of this.config.joins)$.push(...H2(F.table));return new Proxy(new hD(this.getSQL(),this.config.fields,D,!1,[...new Set($)]),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}getSelectedFields(){return new Proxy(this.config.fields,new xD({alias:this.tableName,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}$dynamic(){return this}};jF=class jF extends S_{static[q]="SQLiteSelect";_prepare(D=!0){if(!this.session)throw Error("Cannot execute a query on a query builder. Please use a database instance instead.");let $=f0(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()}};YW(jF,[V0]);TL=f7("union",!1),SL=f7("union",!0),bL=f7("intersect",!1),fL=f7("except",!1)});var C3;var IF=M(()=>{i();n1();b7();B2();zF();C3=class C3{static[q]="SQLiteQueryBuilder";dialect;dialectConfig;constructor(D){this.dialect=j(D,K3)?D:void 0,this.dialectConfig=j(D,K3)?void 0:D}$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(F);return new Proxy(new Y3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};with(...D){let $=this;function F(J){return new W2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D})}function X(J){return new W2({fields:J??void 0,session:void 0,dialect:$.getDialect(),withList:D,distinct:!0})}return{select:F,selectDistinct:X}}select(D){return new W2({fields:D??void 0,session:void 0,dialect:this.getDialect()})}selectDistinct(D){return new W2({fields:D??void 0,session:void 0,dialect:this.getDialect(),distinct:!0})}getDialect(){if(!this.dialect)this.dialect=new E3(this.dialectConfig);return this.dialect}}});var k7,wF;var b_=M(()=>{i();c2();nD();s8();X0();K0();s1();IF();k7=class k7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[q]="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[g.Symbol.Columns];for(let Y of Object.keys(F)){let G=F[Y];X[Y]=j(G,y)?G:new L0(G,J[Y])}return X});return new wF(this.table,$,this.session,this.dialect,this.withList)}select(D){let $=typeof D==="function"?D(new C3):D;if(!j($,y)&&!H3(this.table[R7],$._.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 wF(this.table,$,this.session,this.dialect,this.withList,!0)}};wF=class wF extends V0{constructor(D,$,F,X,J,Y){super();this.session=F,this.dialect=X,this.config={table:D,values:$,withList:J,select:Y}}static[q]="SQLiteInsert";config;returning(D=this.config.table[rD.Symbol.Columns]){return this.config.returning=f0(D),this}onConflictDoNothing(D={}){if(!this.config.onConflict)this.config.onConflict=[];if(D.target===void 0)this.config.onConflict.push(O` on conflict do nothing`);else{let $=Array.isArray(D.target)?O`${D.target}`:O`${[D.target]}`,F=D.where?O` where ${D.where}`:O``;this.config.onConflict.push(O` 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?O` where ${D.where}`:void 0,F=D.targetWhere?O` where ${D.targetWhere}`:void 0,X=D.setWhere?O` where ${D.setWhere}`:void 0,J=Array.isArray(D.target)?O`${D.target}`:O`${[D.target]}`,Y=this.dialect.buildUpdateSet(this.config.table,M7(this.config.table,D.set));return this.config.onConflict.push(O` 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:H2(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 v7,f_;var k_=M(()=>{i();c2();n1();s8();B2();X0();K0();p2();s1();S7();v7=class v7{constructor(D,$,F,X){this.table=D,this.session=$,this.dialect=F,this.withList=X}static[q]="SQLiteUpdateBuilder";set(D){return new f_(this.table,M7(this.table,D),this.session,this.dialect,this.withList)}};f_=class f_ extends V0{constructor(D,$,F,X,J){super();this.session=F,this.dialect=X,this.config={set:$,table:D,withList:J,joins:[]}}static[q]="SQLiteUpdate";config;from(D){return this.config.from=D,this}createJoin(D){return($,F)=>{let X=W3($);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($,rD)?$[g.Symbol.Columns]:j($,hD)?$._.selectedFields:j($,r8)?$[wD].selectedFields:void 0:void 0;F=F(new Proxy(this.config.table[g.Symbol.Columns],new xD({sqlAliasedBehavior:"sql",sqlBehavior:"sql"})),J&&new Proxy(J,new xD({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[g.Symbol.Columns],new xD({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[rD.Symbol.Columns]){return this.config.returning=f0(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:H2(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 TF=M(()=>{P_();b_();IF();zF();k_()});var R3;var v_=M(()=>{i();nD();R3=class R3 extends y{constructor(D){super(R3.buildEmbeddedCount(D.source,D.filters).queryChunks);this.params=D,this.session=D.session,this.sql=R3.buildCount(D.source,D.filters)}sql;static[q]="SQLiteCountBuilderAsync";[Symbol.toStringTag]="SQLiteCountBuilderAsync";session;static buildEmbeddedCount(D,$){return O`(select count(*) from ${D}${O.raw(" where ").if($)}${$})`}static buildCount(D,$){return O`select count(*) from ${D}${O.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 bF,g7,SF;var g_=M(()=>{i();c2();V3();bF=class bF{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[q]="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 g7(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 g7(this.fullSchema,this.schema,this.tableNamesMap,this.table,this.tableConfig,this.dialect,this.session,D?{...D,limit:1}:{limit:1},"first")}};g7=class g7 extends V0{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[q]="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)=>P7(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 g7{static[q]="SQLiteSyncRelationalQuery";sync(){return this.executeRaw()}}});var o1;var h_=M(()=>{i();c2();o1=class o1 extends V0{constructor(D,$,F,X,J){super();this.execute=D,this.getSQL=$,this.dialect=X,this.mapBatchResult=J,this.config={action:F}}static[q]="SQLiteRaw";config;getQuery(){return{...this.dialect.sqlToQuery(this.getSQL()),method:this.config.action}}mapResult(D,$){return $?this.mapBatchResult(D):D}_prepare(){return this}isResponseInArrayMode(){return!1}}});var O3;var h7=M(()=>{i();n1();nD();TF();B2();v_();g_();h_();O3=class O3{constructor(D,$,F,X){this.resultKind=D,this.dialect=$,this.session=F,this._=X?{schema:X.schema,fullSchema:X.fullSchema,tableNamesMap:X.tableNamesMap}:{schema:void 0,fullSchema:{},tableNamesMap:{}},this.query={};let J=this.query;if(this._.schema)for(let[Y,G]of Object.entries(this._.schema))J[Y]=new bF(D,X.fullSchema,this._.schema,this._.tableNamesMap,X.fullSchema[Y],G,$,F);this.$cache={invalidate:async(Y)=>{}}}static[q]="BaseSQLiteDatabase";query;$with=(D,$)=>{let F=this;return{as:(J)=>{if(typeof J==="function")J=J(new C3(F.dialect));return new Proxy(new Y3(J.getSQL(),$??("getSelectedFields"in J?J.getSelectedFields()??{}:{}),D,!0),new xD({alias:D,sqlAliasedBehavior:"alias",sqlBehavior:"error"}))}}};$count(D,$){return new R3({source:D,filters:$,session:this.session})}with(...D){let $=this;function F(B){return new W2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D})}function X(B){return new W2({fields:B??void 0,session:$.session,dialect:$.dialect,withList:D,distinct:!0})}function J(B){return new v7(B,$.session,$.dialect,D)}function Y(B){return new k7(B,$.session,$.dialect,D)}function G(B){return new w7(B,$.session,$.dialect,D)}return{select:F,selectDistinct:X,update:J,insert:Y,delete:G}}select(D){return new W2({fields:D??void 0,session:this.session,dialect:this.dialect})}selectDistinct(D){return new W2({fields:D??void 0,session:this.session,dialect:this.dialect,distinct:!0})}update(D){return new v7(D,this.session,this.dialect)}$cache;insert(D){return new k7(D,this.session,this.dialect)}delete(D){return new w7(D,this.session,this.dialect)}run(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.run($),()=>$,"run",this.dialect,this.session.extractRawRunValueFromBatchResult.bind(this.session));return this.session.run($)}all(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.all($),()=>$,"all",this.dialect,this.session.extractRawAllValueFromBatchResult.bind(this.session));return this.session.all($)}get(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(async()=>this.session.get($),()=>$,"get",this.dialect,this.session.extractRawGetValueFromBatchResult.bind(this.session));return this.session.get($)}values(D){let $=typeof D==="string"?O.raw(D):D.getSQL();if(this.resultKind==="async")return new o1(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 x_=()=>{};async function kF(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 y_,fF;var u_=M(()=>{i();y_=class y_{static[q]="Cache"};fF=class fF extends y_{strategy(){return"all"}static[q]="NoopCache";async get(D){return}async put(D,$,F,X){}async onMutate(D){}}});var m_,vF,gF,hF;var xF=M(()=>{u_();i();T7();c2();h7();m_=class m_ extends V0{constructor(D){super();this.resultCb=D}static[q]="ExecuteResultSync";async execute(){return this.resultCb()}sync(){return this.resultCb()}};vF=class vF{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[q]="PreparedQuery";joinsNotNullableMap;async queryWithCache(D,$,F){if(this.cache===void 0||j(this.cache,fF)||this.queryMetadata===void 0)try{return await F()}catch(X){throw new d2(D,$,X)}if(this.cacheConfig&&!this.cacheConfig.enable)try{return await F()}catch(X){throw new d2(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 d2(D,$,X)}if(!this.cacheConfig)try{return await F()}catch(X){throw new d2(D,$,X)}if(this.queryMetadata.type==="select"){let X=await this.cache.get(this.cacheConfig.tag??await kF(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 d2(D,$,Y)}return await this.cache.put(this.cacheConfig.tag??await kF(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 d2(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 m_(()=>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,$)}}};gF=class gF{constructor(D){this.dialect=D}static[q]="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 r1({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")}};hF=class hF extends O3{constructor(D,$,F,X,J=0){super(D,$,F,X);this.schema=X,this.nestedIndex=J}static[q]="SQLiteTransaction";rollback(){throw new qF}}});var p_=()=>{};var x7=M(()=>{x_();R_();PF();h7();b7();UF();q_();N_();TF();xF();s8();VF();s1();p_()});var yF,uF,c_;var mF=M(()=>{i();E7();nD();x7();xF();K0();yF=class yF extends gF{constructor(D,$,F,X={}){super($);this.client=D,this.schema=F,this.logger=X.logger??new r$}static[q]="SQLiteBunSession";logger;exec(D){this.client.exec(D)}prepareQuery(D,$,F,X,J){let Y=this.client.prepare(D.sql);return new c_(Y,D,this.logger,$,F,X,J)}transaction(D,$={}){let F=new uF("sync",this.dialect,this,this.schema),X;return this.client.transaction(()=>{X=D(F)})[$.behavior??"deferred"](),X}};uF=class uF extends hF{static[q]="SQLiteBunTransaction";transaction(D){let $=`sp${this.nestedIndex}`,F=new uF("sync",this.dialect,this.session,this.schema,this.nestedIndex+1);this.session.run(O.raw(`savepoint ${$}`));try{let X=D(F);return this.session.run(O.raw(`release savepoint ${$}`)),X}catch(X){throw this.session.run(O.raw(`rollback to savepoint ${$}`)),X}}};c_=class c_ extends vF{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[q]="SQLiteBunPreparedQuery";run(D){let $=B3(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=B3(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)=>XF($,H,J))}get(D){let $=B3(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 XF(X,F,J)}values(D){let $=B3(this.query.params,D??{});return this.logger.logQuery(this.query.sql,$),this.stmt.values(...$)}isResponseInArrayMode(){return this._isResponseInArrayMode}}});import{Database as y7}from"bun:sqlite";function a1(D,$={}){let F=new E3({casing:$.casing}),X;if($.logger===!0)X=new s$;else if($.logger!==!1)X=$.logger;let J;if($.schema){let B=vW($.schema,hW);J={fullSchema:$.schema,schema:B.tables,tableNamesMap:B.tableNamesMap}}let Y=new yF(D,F,J,{logger:X}),G=new d_("sync",F,Y,J);return G.$client=D,G}function t1(...D){if(D[0]===void 0||typeof D[0]==="string"){let $=D[0]===void 0?new y7:new y7(D[0]);return a1($,D[1])}if(HW(D[0])){let{connection:$,client:F,...X}=D[0];if(F)return a1(F,X);if(typeof $==="object"){let{source:Y,...G}=$,B=Object.values(G).filter((W)=>W!==void 0).length?G:void 0,H=new y7(Y,B);return a1(H,X)}let J=new y7($);return a1(J,X)}return a1(D[0],D[1])}var d_;var l_=M(()=>{i();E7();V3();h7();b7();K0();mF();d_=class d_ extends O3{static[q]="BunSQLiteDatabase"};((D)=>{function $(F){return a1({},F)}D.mock=$})(t1||(t1={}))});var pF=M(()=>{l_();mF()});import kL from"crypto";import cF from"fs";function i_(D){let $=D.migrationsFolder,F=[],X=`${$}/meta/_journal.json`;if(!cF.existsSync(X))throw Error("Can't find meta/_journal.json file");let J=cF.readFileSync(`${$}/meta/_journal.json`).toString(),Y=JSON.parse(J);for(let G of Y.entries){let B=`${$}/${G.tag}.sql`;try{let H=cF.readFileSync(`${$}/${G.tag}.sql`).toString(),W=H.split("--> statement-breakpoint").map((U)=>{return U});F.push({sql:W,bps:G.breakpoints,folderMillis:G.when,hash:kL.createHash("sha256").update(H).digest("hex")})}catch{throw Error(`No file ${B} found in ${$} folder`)}}return F}var n_=()=>{};function u7(D,$){let F=i_($);D.dialect.migrate(F,D.session,$)}var dF=M(()=>{n_()});var C0=M(()=>{j7();e$();Y2();i();T7();E7();c2();V3();NF();B2();X0();K0();p2()});var t7={};v8(t7,{workerSecrets:()=>Y0,workerIdentity:()=>v0,workerConfig:()=>U2,skillDrafts:()=>R0,skillBindings:()=>q3,messages:()=>G0,executionLogs:()=>n2,evolutionObservations:()=>_2,cronJobs:()=>ZD,conversations:()=>ED,agentTasks:()=>E8});var E8,ED,G0,n2,q3,R0,_2,v0,U2,ZD,Y0;var GX=M(()=>{x7();E8=Q0("agent_tasks",{id:T("id").primaryKey(),prompt:T("prompt").notNull(),status:T("status",{enum:["queued","running","succeeded","failed","cancelled"]}).notNull(),conversationId:T("conversation_id"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),finishedAt:T("finished_at"),result:T("result",{mode:"json"}).$type(),error:T("error")},(D)=>({createdAtIdx:w2("agent_tasks_created_at_idx").on(D.createdAt)})),ED=Q0("conversations",{id:T("id").primaryKey(),taskId:T("task_id").references(()=>E8.id),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),threadId:T("thread_id"),status:T("status",{enum:["open","closed"]}).notNull().default("open"),summary:T("summary"),startedAt:T("started_at").notNull().$defaultFn(()=>new Date().toISOString()),lastActiveAt:T("last_active_at").notNull().$defaultFn(()=>new Date().toISOString()),closedAt:T("closed_at")},(D)=>({lookupIdx:w2("conversations_lookup_idx").on(D.channel,D.chatId,D.threadId,D.status),lastActiveAtIdx:w2("conversations_last_active_at_idx").on(D.lastActiveAt)})),G0=Q0("messages",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id").notNull().references(()=>ED.id,{onDelete:"cascade"}),role:T("role",{enum:["system","user","assistant","tool"]}).notNull(),content:T("content").notNull(),toolCalls:T("tool_calls",{mode:"json"}).$type(),toolCallId:T("tool_call_id"),tokensIn:pD("tokens_in"),tokensOut:pD("tokens_out"),richMetadata:T("rich_metadata"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:w2("messages_conversation_id_idx").on(D.conversationId)})),n2=Q0("execution_logs",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),toolName:T("tool_name").notNull(),params:T("params",{mode:"json"}).$type(),result:T("result",{mode:"json"}).$type(),duration:pD("duration"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({conversationIdIdx:w2("execution_logs_conversation_id_idx").on(D.conversationId)})),q3=Q0("skill_bindings",{id:pD("id").primaryKey({autoIncrement:!0}),source:T("source").$type().notNull(),brainName:T("brain_name"),skillName:T("skill_name").notNull(),enabled:pD("enabled",{mode:"boolean"}).notNull().default(!0),priority:pD("priority").notNull().default(0),config:T("config",{mode:"json"}).$type(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({uniqueBinding:Z_("skill_bindings_source_brain_name_idx").on(D.source,D.brainName,D.skillName)})),R0=Q0("skill_drafts",{id:pD("id").primaryKey({autoIncrement:!0}),proposedName:T("proposed_name").notNull(),source:T("source").$type().notNull(),bodyMarkdown:T("body_markdown").notNull(),rationale:T("rationale").notNull().default(""),status:T("status").$type().notNull().default("pending"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),decidedAt:T("decided_at"),decidedBy:T("decided_by")}),_2=Q0("evolution_observations",{id:pD("id").primaryKey({autoIncrement:!0}),conversationId:T("conversation_id"),kind:T("kind").notNull(),payload:T("payload",{mode:"json"}).$type().notNull(),noticedAt:T("noticed_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({noticedAtIdx:w2("evolution_observations_noticed_at_idx").on(D.noticedAt)})),v0=Q0("worker_identity",{pk:T("pk").primaryKey().default("default"),workerId:T("worker_id").notNull().unique(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),bootstrapShownAt:T("bootstrap_shown_at").notNull().$defaultFn(()=>new Date().toISOString()),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),rotatedAt:T("rotated_at")}),U2=Q0("worker_config",{pk:T("pk").primaryKey().default("default"),configJson:T("config_json",{mode:"json"}).$type().notNull(),version:pD("version").notNull().default(1),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedBy:T("updated_by",{enum:["bootstrap","api","cli"]})}),ZD=Q0("cron_jobs",{id:T("id").primaryKey(),expression:T("expression").notNull(),prompt:T("prompt").notNull(),channel:T("channel").$type().notNull(),chatId:T("chat_id").notNull(),accountId:T("account_id").notNull(),enabled:pD("enabled",{mode:"boolean"}).notNull().default(!0),lastRunAt:T("last_run_at"),nextRunAt:T("next_run_at"),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())},(D)=>({dueIdx:w2("cron_jobs_due_idx").on(D.enabled,D.nextRunAt)})),Y0=Q0("worker_secrets",{id:pD("id").primaryKey({autoIncrement:!0}),key:T("key").notNull().unique(),valueEnc:T("value_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),createdAt:T("created_at").notNull().$defaultFn(()=>new Date().toISOString()),updatedAt:T("updated_at").notNull().$defaultFn(()=>new Date().toISOString())})});var BX={};v8(BX,{workerSecrets:()=>Y0,workerSchema:()=>t7,workerIdentity:()=>v0,workerConfig:()=>U2,skillDrafts:()=>R0,skillBindings:()=>q3,runWorkerMigrations:()=>L3,messages:()=>G0,initWorkerDb:()=>P3,getWorkerDb:()=>p,executionLogs:()=>n2,evolutionObservations:()=>_2,defaultWorkerMigrationsFolder:()=>$6,cronJobs:()=>ZD,conversations:()=>ED,closeWorkerDb:()=>Az,agentTasks:()=>E8});import{existsSync as eU}from"fs";import YX from"path";import{fileURLToPath as _z}from"url";import{Database as Uz}from"bun:sqlite";function Vz(D){let $=YX.resolve(DV,"../../drizzle",D);if(eU($))return $;let F=YX.resolve(DV,"drizzle",D);if(eU(F))return F;return $}function Qz(D){let $=new Uz(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),t1($,{schema:t7})}function P3(D){return N3=Qz(D),N3}function p(){if(!N3)throw Error("Worker database not initialized. Call initWorkerDb() first.");return N3}function Az(){N3=null}function L3(D=$6){u7(p(),{migrationsFolder:D})}var DV,$6,N3=null;var TD=M(()=>{pF();dF();GX();GX();DV=YX.dirname(_z(import.meta.url));$6=Vz("worker")});import $V from"path";import FV from"process";function Ez(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 e8(){if(e7)return e7;let D=Kz.parse(FV.env);return e7=Object.freeze({...D,perEngineLimits:Object.freeze({...Ez(FV.env)})}),e7}var Kz,e7=null,l;var D4=M(()=>{q2();N0();TD();vD();Kz=_.object({PORT:_.coerce.number().default(9217),WORKER_DB_PATH:_.string().default(()=>$V.join(h2(),"worker.db")),WORKER_MIGRATIONS_FOLDER:_.string().default(()=>$6),AIWORKER_MASTER_KEY:_.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)"),AIWORKER_FORCE_ID:_.string().regex(d1).optional(),AIWORKER_FORCE_TOKEN:_.string().regex(m2).optional(),AIWORKER_ADVERTISED_BASE_URL:_.string().optional(),WORKER_DATA_ROOT:_.string().default(()=>$V.join(h2(),"data-root")),WORKER_WORKSPACE_GIT_ORIGIN:_.string().optional(),AIWORKER_GATEWAY_URL:_.string().url().optional(),AIWORKER_JOIN_TOKEN:_.string().min(1).optional(),AIWORKER_DISPLAY_NAME:_.string().min(1).max(80).optional(),AIWORKER_ENROLL_MODE:_.enum(["auto","otp"]).optional().default("auto"),CLAUDE_CLI_VERSION:_.string().optional(),MAX_CONCURRENT_TOTAL:_.coerce.number().int().min(1).default(4),PROCESS_STALL_TIMEOUT_MS:_.coerce.number().int().min(1).default(120000),PROCESS_KILL_TIMEOUT_MS:_.coerce.number().int().min(0).default(1e4),PROCESS_AUTO_CLEANUP_DELAY_MS:_.coerce.number().int().min(0).default(60000),PROCESS_GC_INTERVAL_MS:_.coerce.number().int().min(0).default(30000)});l=new Proxy({},{get(D,$){return e8()[$]},has(D,$){return $ in e8()},ownKeys(D){return Reflect.ownKeys(e8())},getOwnPropertyDescriptor(D,$){return Reflect.getOwnPropertyDescriptor(e8(),$)}})});function C8(D){let $=Cz[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 XV(D){if(!D||typeof D!=="object")return{...z3};let $=D;if(typeof $.engine==="string")return $;let F=$.type;if(typeof F!=="string")return{...z3};switch(F){case"http":return{engine:"http",variant:"default",overrides:j3({baseUrl:$.baseUrl,apiKey:$.apiKey,model:$.model,timeoutMs:$.timeoutMs})};case"mcp":return{engine:"mcp",variant:"default",overrides:j3({url:$.url,token:$.token,defaultModel:$.defaultModel,tools:$.tools,timeoutMs:$.timeoutMs})};case"cli":return{engine:"cli",variant:"default",overrides:j3({command:$.command,args:$.args,cwd:$.cwd,env:$.env,timeoutMs:$.timeoutMs,sandbox:$.sandbox})};case"claude-code":return{engine:"claude-code",variant:"default",overrides:j3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,workspaceRoot:$.workspaceRoot,timeoutMs:$.timeoutMs})};case"acp":return{engine:"acp",variant:$.agent==="qwen"?"qwen":"gemini",overrides:j3({model:$.model,cliVersion:$.cliVersion,extraArgs:$.extraArgs,env:$.env,timeoutMs:$.timeoutMs})};default:return{...z3}}}function j3(D){let $={};for(let[F,X]of Object.entries(D))if(X!==void 0)$[F]=X;return $}var Cz,z3;var D1=M(()=>{Cz={http:{variants:{default:{baseUrl:"",apiKey:"",model:"gpt-4o-mini",timeoutMs:30000},"gemini-openai-compat":{baseUrl:"https://generativelanguage.googleapis.com/v1beta/openai",apiKey:"",model:"gemini-2.5-flash",timeoutMs:30000},deepseek:{baseUrl:"https://api.deepseek.com",apiKey:"",model:"deepseek-chat",timeoutMs:30000},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1",apiKey:"",model:"Qwen/Qwen2.5-7B-Instruct",timeoutMs:30000},openrouter:{baseUrl:"https://openrouter.ai/api/v1",apiKey:"",model:"anthropic/claude-sonnet-4.5",timeoutMs:30000}}},mcp:{variants:{default:{url:"",token:"",timeoutMs:30000}}},cli:{variants:{default:{command:"",args:[],timeoutMs:30000}}},"claude-code":{variants:{default:{model:"sonnet",timeoutMs:120000},"opus-plan":{model:"opus",permissionPolicy:"plan",timeoutMs:180000}}},acp:{variants:{gemini:{agent:"gemini",timeoutMs:120000},qwen:{agent:"qwen",timeoutMs:120000}}},codex:{variants:{default:{model:"gpt-5.5",timeoutMs:120000}}},cursor:{variants:{default:{model:"auto",timeoutMs:120000}}}},z3={engine:"http",variant:"default",overrides:{baseUrl:"http://localhost:9999",model:"stub"}}});var F6;var HX=M(()=>{D1();F6={brains:[],brainWriteTarget:"",brainRetrieval:"first-match",executor:{...z3},channels:[],evolution:{enabled:!1,observationRetentionDays:7}}});async function $1(D){let $=await D.select().from(U2).where(u(U2.pk,"default")).get();if($)return{config:Rz($.configJson),version:$.version};let F=new Date().toISOString();return await D.insert(U2).values({pk:"default",configJson:F6,version:1,updatedAt:F,updatedBy:"bootstrap"}).run(),{config:F6,version:1}}function Rz(D){let $=D.executor;if($&&typeof $==="object"&&"engine"in $)return D;return{...D,executor:XV($)}}var JV=M(()=>{TD();C0();D1();HX()});import{randomBytes as Oz}from"crypto";function X6(){let D=Oz(32),$=`${G7}${Mz(D)}`;if(!W8($))throw Error("mintApiToken: generated token failed isWorkerApiToken check");return $}function Mz(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function F1(D,$,F={}){let X=await D.select().from(v0).where(u(v0.pk,"default")).get();if(X){let V=$.decryptString(X.apiTokenEnc,X.nonce,X.authTag);if(!W8(V))throw Error("loadOrMintIdentity: decrypted API token failed isWorkerApiToken check");return await H$(X.workerId),{workerId:X.workerId,token:V,justMinted:!1}}let J=F.forceId??$4();if(!d1.test(J))throw Error(`loadOrMintIdentity: forceId ${J} does not match WORKER_ID_PATTERN`);let Y=F.forceToken??X6();if(!W8(Y))throw Error("loadOrMintIdentity: forceToken does not match WORKER_API_TOKEN_PATTERN");let G=Y,{ciphertext:B,nonce:H,authTag:W}=$.encryptString(G),U=new Date().toISOString();return await D.insert(v0).values({pk:"default",workerId:J,apiTokenEnc:B,nonce:H,authTag:W,bootstrapShownAt:U,createdAt:U}).run(),await H$(J),{workerId:J,token:G,justMinted:!0}}var $4;var WX=M(()=>{q2();N0();TD();C0();$4=y$});import Zz from"process";function X1(D,$,F,X,J=Zz.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(v0).set({bootstrapShownAt:new Date().toISOString()}).where(u(v0.pk,"default")).run()}var GV=M(()=>{TD();C0()});var YV=M(()=>{JV();HX();WX();GV()});import{Buffer as BV}from"buffer";import{timingSafeEqual as Oz}from"crypto";function T2(D,$){let F=BV.from(D,"utf8"),X=BV.from($,"utf8");if(F.length!==X.length)return!1;return Oz(F,X)}var F4=()=>{};import{Buffer as HV}from"buffer";import{createDecipheriv as Mz,createHash as Zz}from"crypto";function Nz(D,$){let F=Zz("sha256").update($,"utf8").digest(),X=HV.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=Mz("aes-256-cbc",F,J);return HV.concat([G.update(Y),G.final()]).toString("utf8")}function WV(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(Nz(F.encrypt,$))}return F}function Pz(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function Lz(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function jz(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 zz(D,$){let F=_X.get(D);if(!F)F={},_X.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>qz)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=jz(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function Iz(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function UV(){_X.clear()}var qz=60000,_X,_V;var UX=M(()=>{F4();_X=new Map;_V={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=WV(D,F.credentials.encryptKey),J=Lz(X);if(J===void 0||!T2(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=WV(D,J);if(Pz(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 C=JSON.parse(G.content);B=typeof C.text==="string"?C.text:""}catch{return[]}if(!B)return[];let H=Y.event?.sender,W=H?.sender_id?.open_id,U=H?.sender_id?.name,V=G.chat_type==="group"?`group:${G.chat_id}`:`p2p:${W??""}`,Q=Iz(G);return[{workerId:$,channel:"lark",accountId:X,chatId:V,...W===void 0?{}:{userId:W},...U===void 0?{}:{userDisplayName:U},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 zz(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 J6(){return new Date().toISOString()}import{Buffer as VV}from"buffer";import{createHash as wz,createHmac as Tz,timingSafeEqual as Sz}from"crypto";function bz(D,$){return Tz("sha256",D).update($,"utf8").digest("base64")}function fz(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function kz(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var QV;var AV=M(()=>{QV={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=bz(F.credentials.channelSecret,D),Y=VV.from(X,"base64"),G=VV.from(J,"base64");if(Y.length!==G.length||!Sz(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=wz("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=fz(G.source),H=G.source.type==="user"?G.source.userId:("userId"in G.source)?G.source.userId:void 0,W=kz(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()||J6(),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 KV}from"buffer";import{createHash as vz,timingSafeEqual as gz}from"crypto";function uz(D,$){let F=KV.from(D,"utf8"),X=KV.from($,"utf8");if(F.length!==X.length)return!1;return gz(F,X)}function mz(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 pz(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let Y=$-1;Y>0;Y--)if(yz.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 cz(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return vz("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function dz(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 hz=4096,xz="x-telegram-bot-api-secret-token",yz,EV;var CV=M(()=>{yz=/\s/;EV={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=$[xz];if(!J||!uz(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=mz(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():J6(),W=cz(F.credentials),U=dz(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:Y,...G===void 0?{}:{userId:G},...B===void 0?{}:{userDisplayName:B},text:J.text,...U===void 0?{}:{richMetadata:U},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),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=pz($.text,hz);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 U=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${U}`)}}}}});function iz(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 nz(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var lz="default",RV;var OV=M(()=>{F4();RV={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=nz($);if(!J||!T2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:lz,J=JSON.parse(D),Y=iz(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:J6(),raw:J}]},async send(){}}});import{Buffer as MV}from"buffer";import{createHmac as sz,timingSafeEqual as rz}from"crypto";function az(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 tz(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 oz="v21.0",ZV;var qV=M(()=>{ZV={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=sz("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=MV.from(Y,"hex"),H=MV.from(G,"hex");if(B.length!==H.length||!rz(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 U of H.messages){let V=az(U);if(V===void 0)continue;let Q=U.from,C=W.find((A)=>A.wa_id===Q)?.profile?.name,E=tz(U);Y.push({workerId:$,channel:"whatsapp",accountId:X,chatId:Q,userId:Q,...C?{userDisplayName:C}:{},text:V,...E===void 0?{}:{richMetadata:E},receivedAt:new Date(Number(U.timestamp)*1000).toISOString(),raw:U})}}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/${oz}/${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 J1(D){return ez[D]}class I3{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 J1(D)}}var ez;var w3=M(()=>{UX();AV();CV();OV();qV();ez={web:RV,line:QV,telegram:EV,lark:_V,whatsapp:ZV}});function s2(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 X4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),DI($),$.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 G6(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}),$I(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 DI(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 $I(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 PV=f((NV)=>{Object.defineProperty(NV,"__esModule",{value:!0})});var R8=f((LV)=>{Object.defineProperty(LV,"__esModule",{value:!0});LV.CronField=void 0;class VX{#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(VX.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))}}LV.CronField=VX});var TV=f((IV)=>{Object.defineProperty(IV,"__esModule",{value:!0});IV.CronDayOfMonth=void 0;var FI=R8(),XI=1,JI=31,GI=Object.freeze(["L"]);class zV extends FI.CronField{static get min(){return XI}static get max(){return JI}static get chars(){return GI}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}}IV.CronDayOfMonth=zV});var kV=f((bV)=>{Object.defineProperty(bV,"__esModule",{value:!0});bV.CronDayOfWeek=void 0;var YI=R8(),BI=0,HI=7,WI=Object.freeze(["L"]);class SV extends YI.CronField{static get min(){return BI}static get max(){return HI}static get chars(){return WI}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}}bV.CronDayOfWeek=SV});var xV=f((gV)=>{Object.defineProperty(gV,"__esModule",{value:!0});gV.CronHour=void 0;var _I=R8(),UI=0,VI=23,QI=Object.freeze([]);class vV extends _I.CronField{static get min(){return UI}static get max(){return VI}static get chars(){return QI}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}gV.CronHour=vV});var pV=f((uV)=>{Object.defineProperty(uV,"__esModule",{value:!0});uV.CronMinute=void 0;var AI=R8(),KI=0,EI=59,CI=Object.freeze([]);class yV extends AI.CronField{static get min(){return KI}static get max(){return EI}static get chars(){return CI}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}uV.CronMinute=yV});var LA=f((PA)=>{Object.defineProperty(PA,"__esModule",{value:!0});class q8 extends Error{}class OQ extends q8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class MQ extends q8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class ZQ extends q8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class B1 extends q8{}class fX extends q8{constructor(D){super(`Invalid unit ${D}`)}}class $0 extends q8{}class o2 extends q8{constructor(){super("Zone is an abstract class")}}var x="numeric",A2="short",z0="long",U4={year:x,month:x,day:x},qQ={year:x,month:A2,day:x},RI={year:x,month:A2,day:x,weekday:A2},NQ={year:x,month:z0,day:x},PQ={year:x,month:z0,day:x,weekday:z0},LQ={hour:x,minute:x},jQ={hour:x,minute:x,second:x},zQ={hour:x,minute:x,second:x,timeZoneName:A2},IQ={hour:x,minute:x,second:x,timeZoneName:z0},wQ={hour:x,minute:x,hourCycle:"h23"},TQ={hour:x,minute:x,second:x,hourCycle:"h23"},SQ={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:A2},bQ={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:z0},fQ={year:x,month:x,day:x,hour:x,minute:x},kQ={year:x,month:x,day:x,hour:x,minute:x,second:x},vQ={year:x,month:A2,day:x,hour:x,minute:x},gQ={year:x,month:A2,day:x,hour:x,minute:x,second:x},OI={year:x,month:A2,day:x,weekday:A2,hour:x,minute:x},hQ={year:x,month:z0,day:x,hour:x,minute:x,timeZoneName:A2},xQ={year:x,month:z0,day:x,hour:x,minute:x,second:x,timeZoneName:A2},yQ={year:x,month:z0,day:x,weekday:z0,hour:x,minute:x,timeZoneName:z0},uQ={year:x,month:z0,day:x,weekday:z0,hour:x,minute:x,second:x,timeZoneName:z0};class W1{get type(){throw new o2}get name(){throw new o2}get ianaName(){return this.name}get isUniversal(){throw new o2}offsetName(D,$){throw new o2}formatOffset(D,$){throw new o2}offset(D){throw new o2}equals(D){throw new o2}get isValid(){throw new o2}}var QX=null;class g3 extends W1{static get instance(){if(QX===null)QX=new g3;return QX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return DA(D,$,F)}formatOffset(D,$){return k3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var qX=new Map;function MI(D){let $=qX.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"}),qX.set(D,$);return $}var ZI={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function qI(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,U]=X;return[G,J,Y,B,H,W,U]}function NI(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:Y,value:G}=F[J],B=ZI[Y];if(Y==="era")X[B]=G;else if(!n(B))X[B]=parseInt(G,10)}return X}var AX=new Map;class S2 extends W1{static create(D){let $=AX.get(D);if($===void 0)AX.set(D,$=new S2(D));return $}static resetCache(){AX.clear(),qX.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=S2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return DA(D,$,F,this.name)}formatOffset(D,$){return k3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=MI(this.name),[X,J,Y,G,B,H,W]=F.formatToParts?NI(F,$):qI(F,$);if(G==="BC")X=-Math.abs(X)+1;let V=E4({year:X,month:J,day:Y,hour:B===24?0:B,minute:H,second:W,millisecond:0}),Q=+$,K=Q%1000;return Q-=K>=0?K:1000+K,(V-Q)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var cV={};function PI(D,$={}){let F=JSON.stringify([D,$]),X=cV[F];if(!X)X=new Intl.ListFormat(D,$),cV[F]=X;return X}var NX=new Map;function PX(D,$={}){let F=JSON.stringify([D,$]),X=NX.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),NX.set(F,X);return X}var LX=new Map;function LI(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 jX=new Map;function jI(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),Y=jX.get(J);if(Y===void 0)Y=new Intl.RelativeTimeFormat(D,$),jX.set(J,Y);return Y}var S3=null;function zI(){if(S3)return S3;else return S3=new Intl.DateTimeFormat().resolvedOptions().locale,S3}var zX=new Map;function mQ(D){let $=zX.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),zX.set(D,$);return $}var IX=new Map;function II(D){let $=IX.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...lQ,...$};IX.set(D,$)}return $}function wI(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=PX(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=PX(H).resolvedOptions(),J=H}let{numberingSystem:Y,calendar:G}=X;return[J,Y,G]}}function TI(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function SI(D){let $=[];for(let F=1;F<=12;F++){let X=r.utc(2009,F,1);$.push(D(X))}return $}function bI(D){let $=[];for(let F=1;F<=7;F++){let X=r.utc(2016,11,13+F);$.push(D(X))}return $}function J4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function fI(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||mQ(D.locale).numberingSystem==="latn"}class pQ{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=LI(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):yX(D,3);return yD($,this.padTo)}}}class cQ{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&&S2.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=PX($,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 dQ{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&tQ())this.rtf=jI(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Dw($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var lQ={firstDay:1,minimalDays:4,weekend:[6,7]};class AD{static fromOpts(D){return AD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let Y=D||jD.defaultLocale,G=Y||(J?"en-US":zI()),B=$||jD.defaultNumberingSystem,H=F||jD.defaultOutputCalendar,W=TX(X)||jD.defaultWeekSettings;return new AD(G,B,H,W,Y)}static resetCache(){S3=null,NX.clear(),LX.clear(),jX.clear(),zX.clear(),IX.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return AD.create(D,$,F,X)}constructor(D,$,F,X,J){let[Y,G,B]=wI(D);this.locale=Y,this.numberingSystem=$||G||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=TI(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=fI(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 AD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,TX(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 J4(this,D,XA,()=>{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]=SI(Y)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return J4(this,D,YA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=bI((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return J4(this,void 0,()=>BA,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[r.utc(2016,11,13,9),r.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return J4(this,D,HA,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[r.utc(-40,1,1),r.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 pQ(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new cQ(D,this.intl,$)}relFormatter(D={}){return new dQ(this.intl,this.isEnglish(),D)}listFormatter(D={}){return PI(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||mQ(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!eQ())return lQ;else return II(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 KX=null;class H0 extends W1{static get utcInstance(){if(KX===null)KX=new H0(0);return KX}static instance(D){return D===0?H0.utcInstance:new H0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new H0(C4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${k3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${k3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return k3(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 kX extends W1{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 M8(D,$){if(n(D)||D===null)return $;else if(D instanceof W1)return D;else if(yI(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return g3.instance;else if(F==="utc"||F==="gmt")return H0.utcInstance;else return H0.parseSpecifier(F)||S2.create(D)}else if(Z8(D))return H0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new kX(D)}var vX={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"},dV={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]},kI=vX.hanidec.replace(/[\[|\]]/g,"").split("");function vI(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(vX.hanidec)!==-1)$+=kI.indexOf(D[F]);else for(let J in dV){let[Y,G]=dV[J];if(X>=Y&&X<=G)$+=X-Y}}return parseInt($,10)}else return $}var wX=new Map;function gI(){wX.clear()}function V2({numberingSystem:D},$=""){let F=D||"latn",X=wX.get(F);if(X===void 0)X=new Map,wX.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${vX[F]}${$}`),X.set($,J);return J}var lV=()=>Date.now(),iV="system",nV=null,sV=null,rV=null,oV=60,aV,tV=null;class jD{static get now(){return lV}static set now(D){lV=D}static set defaultZone(D){iV=D}static get defaultZone(){return M8(iV,g3.instance)}static get defaultLocale(){return nV}static set defaultLocale(D){nV=D}static get defaultNumberingSystem(){return sV}static set defaultNumberingSystem(D){sV=D}static get defaultOutputCalendar(){return rV}static set defaultOutputCalendar(D){rV=D}static get defaultWeekSettings(){return tV}static set defaultWeekSettings(D){tV=TX(D)}static get twoDigitCutoffYear(){return oV}static set twoDigitCutoffYear(D){oV=D%100}static get throwOnInvalid(){return aV}static set throwOnInvalid(D){aV=D}static resetCaches(){AD.resetCache(),S2.resetCache(),r.resetCache(),gI()}}class h0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var iQ=[0,31,59,90,120,151,181,212,243,273,304,334],nQ=[0,31,60,91,121,152,182,213,244,274,305,335];function x0(D,$){return new h0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function gX(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 sQ(D,$,F){return F+(h3(D)?nQ:iQ)[$-1]}function rQ(D,$){let F=h3(D)?nQ:iQ,X=F.findIndex((Y)=>Y<$),J=$-F[X];return{month:X+1,day:J}}function hX(D,$){return(D-$+7)%7+1}function V4(D,$=4,F=1){let{year:X,month:J,day:Y}=D,G=sQ(X,J,Y),B=hX(gX(X,J,Y),F),H=Math.floor((G-B+14-$)/7),W;if(H<1)W=X-1,H=v3(W,$,F);else if(H>v3(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...R4(D)}}function eV(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:Y}=D,G=hX(gX(X,1,$),F),B=_6(X),H=J*7+Y-G-7+$,W;if(H<1)W=X-1,H+=_6(W);else if(H>B)W=X+1,H-=_6(X);else W=X;let{month:U,day:V}=rQ(W,H);return{year:W,month:U,day:V,...R4(D)}}function EX(D){let{year:$,month:F,day:X}=D,J=sQ($,F,X);return{year:$,ordinal:J,...R4(D)}}function DQ(D){let{year:$,ordinal:F}=D,{month:X,day:J}=rQ($,F);return{year:$,month:X,day:J,...R4(D)}}function $Q(D,$){if(!n(D.localWeekday)||!n(D.localWeekNumber)||!n(D.localWeekYear)){if(!n(D.weekday)||!n(D.weekNumber)||!n(D.weekYear))throw new B1("Cannot mix locale-based week fields with ISO-based week fields");if(!n(D.localWeekday))D.weekday=D.localWeekday;if(!n(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!n(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 hI(D,$=4,F=1){let X=K4(D.weekYear),J=y0(D.weekNumber,1,v3(D.weekYear,$,F)),Y=y0(D.weekday,1,7);if(!X)return x0("weekYear",D.weekYear);else if(!J)return x0("week",D.weekNumber);else if(!Y)return x0("weekday",D.weekday);else return!1}function xI(D){let $=K4(D.year),F=y0(D.ordinal,1,_6(D.year));if(!$)return x0("year",D.year);else if(!F)return x0("ordinal",D.ordinal);else return!1}function oQ(D){let $=K4(D.year),F=y0(D.month,1,12),X=y0(D.day,1,Q4(D.year,D.month));if(!$)return x0("year",D.year);else if(!F)return x0("month",D.month);else if(!X)return x0("day",D.day);else return!1}function aQ(D){let{hour:$,minute:F,second:X,millisecond:J}=D,Y=y0($,0,23)||$===24&&F===0&&X===0&&J===0,G=y0(F,0,59),B=y0(X,0,59),H=y0(J,0,999);if(!Y)return x0("hour",$);else if(!G)return x0("minute",F);else if(!B)return x0("second",X);else if(!H)return x0("millisecond",J);else return!1}function n(D){return typeof D>"u"}function Z8(D){return typeof D==="number"}function K4(D){return typeof D==="number"&&D%1===0}function yI(D){return typeof D==="string"}function uI(D){return Object.prototype.toString.call(D)==="[object Date]"}function tQ(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function eQ(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function mI(D){return Array.isArray(D)?D:[D]}function FQ(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 pI(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function V6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function TX(D){if(D==null)return null;else if(typeof D!=="object")throw new $0("Week settings must be an object");else{if(!y0(D.firstDay,1,7)||!y0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!y0($,1,7)))throw new $0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function y0(D,$,F){return K4(D)&&D>=$&&D<=F}function cI(D,$){return D-$*Math.floor(D/$)}function yD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function O8(D){if(n(D)||D===null||D==="")return;else return parseInt(D,10)}function G1(D){if(n(D)||D===null||D==="")return;else return parseFloat(D)}function xX(D){if(n(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function yX(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 h3(D){return D%4===0&&(D%100!==0||D%400===0)}function _6(D){return h3(D)?366:365}function Q4(D,$){let F=cI($-1,12)+1,X=D+($-F)/12;if(F===2)return h3(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function E4(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 XQ(D,$,F){return-hX(gX(D,1,$),F)+$-1}function v3(D,$=4,F=1){let X=XQ(D,$,F),J=XQ(D+1,$,F);return(_6(D)-X+J)/7}function SX(D){if(D>99)return D;else return D>jD.twoDigitCutoffYear?1900+D:2000+D}function DA(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 C4(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 $A(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new $0(`Invalid unit value ${D}`);return $}function A4(D,$){let F={};for(let X in D)if(V6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=$A(J)}return F}function k3(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${yD(F,2)}:${yD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${yD(F,2)}${yD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function R4(D){return pI(D,["hour","minute","second","millisecond"])}var dI=["January","February","March","April","May","June","July","August","September","October","November","December"],FA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],lI=["J","F","M","A","M","J","J","A","S","O","N","D"];function XA(D){switch(D){case"narrow":return[...lI];case"short":return[...FA];case"long":return[...dI];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 JA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],GA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],iI=["M","T","W","T","F","S","S"];function YA(D){switch(D){case"narrow":return[...iI];case"short":return[...GA];case"long":return[...JA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var BA=["AM","PM"],nI=["Before Christ","Anno Domini"],sI=["BC","AD"],rI=["B","A"];function HA(D){switch(D){case"narrow":return[...rI];case"short":return[...sI];case"long":return[...nI];default:return null}}function oI(D){return BA[D.hour<12?0:1]}function aI(D,$){return YA($)[D.weekday-1]}function tI(D,$){return XA($)[D.month-1]}function eI(D,$){return HA($)[D.year<0?0:1]}function Dw(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 V=D==="days";switch($){case 1:return V?"tomorrow":`next ${J[D][0]}`;case-1:return V?"yesterday":`last ${J[D][0]}`;case 0:return V?"today":`this ${J[D][0]}`}}let G=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],U=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return G?`${B} ${U} ago`:`in ${B} ${U}`}function JQ(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var $w={D:U4,DD:qQ,DDD:NQ,DDDD:PQ,t:LQ,tt:jQ,ttt:zQ,tttt:IQ,T:wQ,TT:TQ,TTT:SQ,TTTT:bQ,f:fQ,ff:vQ,fff:hQ,ffff:yQ,F:kQ,FF:gQ,FFF:xQ,FFFF:uQ};class B0{static create(D,$={}){return new B0(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 $w[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 yD(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,K)=>this.loc.extract(D,Q,K),Y=(Q)=>{if(D.isOffsetFixed&&D.offset===0&&Q.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,Q.format):""},G=()=>F?oI(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(Q,K)=>F?tI(D,Q):J(K?{month:Q}:{month:Q,day:"numeric"},"month"),H=(Q,K)=>F?aI(D,Q):J(K?{weekday:Q}:{weekday:Q,month:"long",day:"numeric"},"weekday"),W=(Q)=>{let K=B0.macroTokenToFormatOpts(Q);if(K)return this.formatWithSystemDefault(D,K);else return Q},U=(Q)=>F?eI(D,Q):J({era:Q},"era"),V=(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 U("short");case"GG":return U("long");case"GGGGG":return U("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return W(Q)}};return JQ(B0.parseFormat($),V)}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)=>(V)=>{let Q=X(V);if(Q){let K=U.isNegativeDuration&&Q!==U.largestUnit?F:1,C;if(this.opts.signMode==="negativeLargestOnly"&&Q!==U.largestUnit)C="never";else if(this.opts.signMode==="all")C="always";else C="auto";return this.num(W.get(Q)*K,V.length,C)}else return V},Y=B0.parseFormat($),G=Y.reduce((W,{literal:U,val:V})=>U?W:W.concat(V),[]),B=D.shiftTo(...G.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return JQ(Y,J(B,H))}}var WA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Q6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function A6(...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 K6(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 _A(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=O8($[F+J]);return[X,null,F+J]}}var UA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Fw=`(?:${UA.source}?(?:\\[(${WA.source})\\])?)?`,uX=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,VA=RegExp(`${uX.source}${Fw}`),mX=RegExp(`(?:[Tt]${VA.source})?`),Xw=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Jw=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Gw=/(\d{4})-?(\d{3})/,Yw=_A("weekYear","weekNumber","weekDay"),Bw=_A("year","ordinal"),Hw=/(\d{4})-(\d\d)-(\d\d)/,QA=RegExp(`${uX.source} ?(?:${UA.source}|(${WA.source}))?`),Ww=RegExp(`(?: ${QA.source})?`);function U6(D,$,F){let X=D[$];return n(X)?F:O8(X)}function _w(D,$){return[{year:U6(D,$),month:U6(D,$+1,1),day:U6(D,$+2,1)},null,$+3]}function E6(D,$){return[{hours:U6(D,$,0),minutes:U6(D,$+1,0),seconds:U6(D,$+2,0),milliseconds:xX(D[$+3])},null,$+4]}function x3(D,$){let F=!D[$]&&!D[$+1],X=C4(D[$+1],D[$+2]),J=F?null:H0.instance(X);return[{},J,$+3]}function y3(D,$){let F=D[$]?S2.create(D[$]):null;return[{},F,$+1]}var Uw=RegExp(`^T?${uX.source}$`),Vw=/^-?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 Qw(D){let[$,F,X,J,Y,G,B,H,W]=D,U=$[0]==="-",V=H&&H[0]==="-",Q=(K,C=!1)=>K!==void 0&&(C||K&&U)?-K:K;return[{years:Q(G1(F)),months:Q(G1(X)),weeks:Q(G1(J)),days:Q(G1(Y)),hours:Q(G1(G)),minutes:Q(G1(B)),seconds:Q(G1(H),H==="-0"),milliseconds:Q(xX(W),V)}]}var Aw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function pX(D,$,F,X,J,Y,G){let B={year:$.length===2?SX(O8($)):O8($),month:FA.indexOf(F)+1,day:O8(X),hour:O8(J),minute:O8(Y)};if(G)B.second=O8(G);if(D)B.weekday=D.length>3?JA.indexOf(D)+1:GA.indexOf(D)+1;return B}var Kw=/^(?:(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 Ew(D){let[,$,F,X,J,Y,G,B,H,W,U,V]=D,Q=pX($,J,X,F,Y,G,B),K;if(H)K=Aw[H];else if(W)K=0;else K=C4(U,V);return[Q,new H0(K)]}function Cw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Rw=/^(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$/,Ow=/^(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$/,Mw=/^(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 GQ(D){let[,$,F,X,J,Y,G,B]=D;return[pX($,J,X,F,Y,G,B),H0.utcInstance]}function Zw(D){let[,$,F,X,J,Y,G,B]=D;return[pX($,B,F,X,J,Y,G),H0.utcInstance]}var qw=Q6(Xw,mX),Nw=Q6(Jw,mX),Pw=Q6(Gw,mX),Lw=Q6(VA),AA=A6(_w,E6,x3,y3),jw=A6(Yw,E6,x3,y3),zw=A6(Bw,E6,x3,y3),Iw=A6(E6,x3,y3);function ww(D){return K6(D,[qw,AA],[Nw,jw],[Pw,zw],[Lw,Iw])}function Tw(D){return K6(Cw(D),[Kw,Ew])}function Sw(D){return K6(D,[Rw,GQ],[Ow,GQ],[Mw,Zw])}function bw(D){return K6(D,[Vw,Qw])}var fw=A6(E6);function kw(D){return K6(D,[Uw,fw])}var vw=Q6(Hw,Ww),gw=Q6(QA),hw=A6(E6,x3,y3);function xw(D){return K6(D,[vw,AA],[gw,hw])}var YQ="Invalid Duration",KA={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}},yw={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},...KA},g0=365.2425,Y6=30.436875,uw={years:{quarters:4,months:12,weeks:g0/7,days:g0,hours:g0*24,minutes:g0*24*60,seconds:g0*24*60*60,milliseconds:g0*24*60*60*1000},quarters:{months:3,weeks:g0/28,days:g0/4,hours:g0*24/4,minutes:g0*24*60/4,seconds:g0*24*60*60/4,milliseconds:g0*24*60*60*1000/4},months:{weeks:Y6/7,days:Y6,hours:Y6*24,minutes:Y6*24*60,seconds:Y6*24*60*60,milliseconds:Y6*24*60*60*1000},...KA},H1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],mw=H1.slice(0).reverse();function r2(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 HD(X)}function EA(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of mw.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function BQ(D,$){let F=EA(D,$)<0?-1:1;H1.reduceRight((X,J)=>{if(!n($[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),H1.reduce((X,J)=>{if(!n($[J])){if(X){let Y=$[X]%1;$[X]-=Y,$[J]+=Y*D[X][J]}return J}else return X},null)}function HQ(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class HD{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?uw:yw;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||AD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return HD.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new $0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new HD({values:A4(D,HD.normalizeUnit),loc:AD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(Z8(D))return HD.fromMillis(D);else if(HD.isDuration(D))return D;else if(typeof D==="object")return HD.fromObject(D);else throw new $0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=bw(D);if(F)return HD.fromObject(F,$);else return HD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=kw(D);if(F)return HD.fromObject(F,$);else return HD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new $0("need to specify a reason the Duration is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new ZQ(F);else return new HD({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 fX(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?B0.create(this.loc,F).formatDurationFromString(this,D):YQ}toHuman(D={}){if(!this.isValid)return YQ;let $=D.showZeros!==!1,F=H1.map((X)=>{let J=this.values[X];if(n(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+=yX(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},r.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 EA(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D),F={};for(let X of H1)if(V6($.values,X)||V6(this.values,X))F[X]=$.get(X)+this.get(X);return r2(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=$A(D(this.values[F],F));return r2(this,{values:$},!0)}get(D){return this[HD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...A4(D,HD.normalizeUnit)};return r2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let Y={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return r2(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),r2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=HQ(this.normalize().shiftToAll().toObject());return r2(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((Y)=>HD.normalizeUnit(Y));let $={},F={},X=this.toObject(),J;for(let Y of H1)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(Z8(X[Y]))G+=X[Y];let B=Math.trunc(G);$[Y]=B,F[Y]=(G*1000-B*1000)/1000}else if(Z8(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,$),r2(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 r2(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=HQ(this.values);return r2(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 H1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var B6="Invalid Interval";function pw(D,$){if(!D||!D.isValid)return SD.invalid("missing or invalid start");else if(!$||!$.isValid)return SD.invalid("missing or invalid end");else if($<D)return SD.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 SD{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 $0("need to specify a reason the Interval is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new MQ(F);else return new SD({invalid:F})}static fromDateTimes(D,$){let F=T3(D),X=T3($),J=pw(F,X);if(J==null)return new SD({start:F,end:X});else return J}static after(D,$){let F=HD.fromDurationLike($),X=T3(D);return SD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=HD.fromDurationLike($),X=T3(D);return SD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,Y;try{J=r.fromISO(F,$),Y=J.isValid}catch(H){Y=!1}let G,B;try{G=r.fromISO(X,$),B=G.isValid}catch(H){B=!1}if(Y&&B)return SD.fromDateTimes(J,G);if(Y){let H=HD.fromISO(X,$);if(H.isValid)return SD.after(J,H)}else if(B){let H=HD.fromISO(F,$);if(H.isValid)return SD.before(G,H)}}return SD.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 SD.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(T3).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(SD.fromDateTimes(X,G)),X=G,J+=1}return F}splitBy(D){let $=HD.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(SD.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 SD.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 SD.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(SD.fromDateTimes($,B.time));$=null}return SD.merge(X)}difference(...D){return SD.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return B6;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=U4,$={}){return this.isValid?B0.create(this.s.loc.clone($),D).formatInterval(this):B6}toISO(D){if(!this.isValid)return B6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return B6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return B6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return B6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return HD.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return SD.fromDateTimes(D(this.s),D(this.e))}}class W6{static hasDST(D=jD.defaultZone){let $=r.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return S2.isValidZone(D)}static normalizeZone(D){return M8(D,jD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||AD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||AD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||AD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||AD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return AD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return AD.create($,null,"gregory").eras(D)}static features(){return{relative:tQ(),localeWeek:eQ()}}}function WQ(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(HD.fromMillis(X).as("days"))}function cw(D,$,F){let X=[["years",(H,W)=>W.year-H.year],["quarters",(H,W)=>W.quarter-H.quarter+(W.year-H.year)*4],["months",(H,W)=>W.month-H.month+(W.year-H.year)*12],["weeks",(H,W)=>{let U=WQ(H,W);return(U-U%7)/7}],["days",WQ]],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 dw(D,$,F,X){let[J,Y,G,B]=cw(D,$,F),H=$-J,W=F.filter((V)=>["hours","minutes","seconds","milliseconds"].indexOf(V)>=0);if(W.length===0){if(G<$)G=J.plus({[B]:1});if(G!==J)Y[B]=(Y[B]||0)+H/(G-J)}let U=HD.fromObject(Y,X);if(W.length>0)return HD.fromMillis(H,X).shiftTo(...W).plus(U);else return U}var lw="missing Intl.DateTimeFormat.formatToParts support";function UD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(vI(F))}}var iw=String.fromCharCode(160),CA=`[ ${iw}]`,RA=new RegExp(CA,"g");function nw(D){return D.replace(/\./g,"\\.?").replace(RA,CA)}function _Q(D){return D.replace(/\./g,"").replace(RA," ").toLowerCase()}function Q2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(nw).join("|")),deser:([F])=>D.findIndex((X)=>_Q(F)===_Q(X))+$}}function UQ(D,$){return{regex:D,deser:([,F,X])=>C4(F,X),groups:$}}function G4(D){return{regex:D,deser:([$])=>$}}function sw(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function rw(D,$){let F=V2($),X=V2($,"{2}"),J=V2($,"{3}"),Y=V2($,"{4}"),G=V2($,"{6}"),B=V2($,"{1,2}"),H=V2($,"{1,3}"),W=V2($,"{1,6}"),U=V2($,"{1,9}"),V=V2($,"{2,4}"),Q=V2($,"{4,6}"),K=(A)=>({regex:RegExp(sw(A.val)),deser:([Z])=>Z,literal:!0}),E=((A)=>{if(D.literal)return K(A);switch(A.val){case"G":return Q2($.eras("short"),0);case"GG":return Q2($.eras("long"),0);case"y":return UD(W);case"yy":return UD(V,SX);case"yyyy":return UD(Y);case"yyyyy":return UD(Q);case"yyyyyy":return UD(G);case"M":return UD(B);case"MM":return UD(X);case"MMM":return Q2($.months("short",!0),1);case"MMMM":return Q2($.months("long",!0),1);case"L":return UD(B);case"LL":return UD(X);case"LLL":return Q2($.months("short",!1),1);case"LLLL":return Q2($.months("long",!1),1);case"d":return UD(B);case"dd":return UD(X);case"o":return UD(H);case"ooo":return UD(J);case"HH":return UD(X);case"H":return UD(B);case"hh":return UD(X);case"h":return UD(B);case"mm":return UD(X);case"m":return UD(B);case"q":return UD(B);case"qq":return UD(X);case"s":return UD(B);case"ss":return UD(X);case"S":return UD(H);case"SSS":return UD(J);case"u":return G4(U);case"uu":return G4(B);case"uuu":return UD(F);case"a":return Q2($.meridiems(),0);case"kkkk":return UD(Y);case"kk":return UD(V,SX);case"W":return UD(B);case"WW":return UD(X);case"E":case"c":return UD(F);case"EEE":return Q2($.weekdays("short",!1),1);case"EEEE":return Q2($.weekdays("long",!1),1);case"ccc":return Q2($.weekdays("short",!0),1);case"cccc":return Q2($.weekdays("long",!0),1);case"Z":case"ZZ":return UQ(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return UQ(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return G4(/[a-z_+-/]{1,256}?/i);case" ":return G4(/[^\S\n\r]/);default:return K(A)}})(D)||{invalidReason:lw};return E.token=D,E}var ow={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 aw(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=ow[G];if(typeof B==="object")B=B[Y];if(B)return{literal:!1,val:B};return}function tw(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function ew(D,$,F){let X=D.match($);if(X){let J={},Y=1;for(let G in F)if(V6(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 DT(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(!n(D.z))F=S2.create(D.z);if(!n(D.Z)){if(!F)F=new H0(D.Z);X=D.Z}if(!n(D.q))D.M=(D.q-1)*3+1;if(!n(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(!n(D.u))D.S=xX(D.u);return[Object.keys(D).reduce((Y,G)=>{let B=$(G);if(B)Y[B]=D[G];return Y},{}),F,X]}var CX=null;function $T(){if(!CX)CX=r.fromMillis(1555555555555);return CX}function FT(D,$){if(D.literal)return D;let F=B0.macroTokenToFormatOpts(D.val),X=ZA(F,$);if(X==null||X.includes(void 0))return D;return X}function OA(D,$){return Array.prototype.concat(...D.map((F)=>FT(F,$)))}class cX{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=OA(B0.parseFormat($),D),this.units=this.tokens.map((F)=>rw(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=tw(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]=ew(D,this.regex,this.handlers),[X,J,Y]=F?DT(F):[null,null,void 0];if(V6(F,"a")&&V6(F,"H"))throw new B1("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 MA(D,$,F){return new cX(D,F).explainFromTokens($)}function XT(D,$,F){let{result:X,zone:J,specificOffset:Y,invalidReason:G}=MA(D,$,F);return[X,J,Y,G]}function ZA(D,$){if(!D)return null;let X=B0.create($,D).dtFormatter($T()),J=X.formatToParts(),Y=X.resolvedOptions();return J.map((G)=>aw(G,D,Y))}var RX="Invalid DateTime",VQ=8640000000000000;function b3(D){return new h0("unsupported zone",`the zone "${D.name}" is not supported`)}function OX(D){if(D.weekData===null)D.weekData=V4(D.c);return D.weekData}function MX(D){if(D.localWeekData===null)D.localWeekData=V4(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function Y1(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new r({...F,...$,old:F})}function qA(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 Y4(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 H4(D,$,F){return qA(E4(D),$,F)}function QQ(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,Q4(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},G=HD.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=E4(Y),[H,W]=qA(B,F,D.zone);if(G!==0)H+=G,W=D.zone.offset(H);return{ts:H,o:W}}function H6(D,$,F,X,J,Y){let{setZone:G,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=r.fromObject(D,{...F,zone:H,specificOffset:Y});return G?W:W.setZone(B)}else return r.invalid(new h0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function B4(D,$,F=!0){return D.isValid?B0.create(AD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function ZX(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=yD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=yD(D.c.month),F==="month")return J;J+="-"}else if(J+=yD(D.c.month),F==="month")return J;return J+=yD(D.c.day),J}function AQ(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+=yD(D.c.hour),G==="hour")break;if($){if(H+=":",H+=yD(D.c.minute),G==="minute")break;if(B)H+=":",H+=yD(D.c.second)}else{if(H+=yD(D.c.minute),G==="minute")break;if(B)H+=yD(D.c.second)}if(G==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=yD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!Y)H+="Z";else if(D.o<0)H+="-",H+=yD(Math.trunc(-D.o/60)),H+=":",H+=yD(Math.trunc(-D.o%60));else H+="+",H+=yD(Math.trunc(D.o/60)),H+=":",H+=yD(Math.trunc(D.o%60));if(Y)H+="["+D.zone.ianaName+"]";return H}var NA={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},JT={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},GT={ordinal:1,hour:0,minute:0,second:0,millisecond:0},W4=["year","month","day","hour","minute","second","millisecond"],YT=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],BT=["year","ordinal","hour","minute","second","millisecond"];function _4(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 fX(D);return $}function KQ(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return _4(D)}}function HT(D){if(f3===void 0)f3=jD.now();if(D.type!=="iana")return D.offset(f3);let $=D.name,F=bX.get($);if(F===void 0)F=D.offset(f3),bX.set($,F);return F}function EQ(D,$){let F=M8($.zone,jD.defaultZone);if(!F.isValid)return r.invalid(b3(F));let X=AD.fromObject($),J,Y;if(!n(D.year)){for(let H of W4)if(n(D[H]))D[H]=NA[H];let G=oQ(D)||aQ(D);if(G)return r.invalid(G);let B=HT(F);[J,Y]=H4(D,B,F)}else J=jD.now();return new r({ts:J,zone:F,loc:X,o:Y})}function CQ(D,$,F){let X=n(F.round)?!0:F.round,J=n(F.rounding)?"trunc":F.rounding,Y=(B,H)=>{return B=yX(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 RQ(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 f3,bX=new Map;class r{constructor(D){let $=D.zone||jD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new h0("invalid input"):null)||(!$.isValid?b3($):null);this.ts=n(D.ts)?jD.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=Z8(D.o)&&!D.old?D.o:$.offset(this.ts);X=Y4(this.ts,G),F=Number.isNaN(X.year)?new h0("invalid input"):null,X=F?null:X,J=F?null:G}this._zone=$,this.loc=D.loc||AD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[D,$]=RQ(arguments),[F,X,J,Y,G,B,H]=$;return EQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static utc(){let[D,$]=RQ(arguments),[F,X,J,Y,G,B,H]=$;return D.zone=H0.utcInstance,EQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=uI(D)?D.valueOf():NaN;if(Number.isNaN(F))return r.invalid("invalid input");let X=M8($.zone,jD.defaultZone);if(!X.isValid)return r.invalid(b3(X));return new r({ts:F,zone:X,loc:AD.fromObject($)})}static fromMillis(D,$={}){if(!Z8(D))throw new $0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-VQ||D>VQ)return r.invalid("Timestamp out of range");else return new r({ts:D,zone:M8($.zone,jD.defaultZone),loc:AD.fromObject($)})}static fromSeconds(D,$={}){if(!Z8(D))throw new $0("fromSeconds requires a numerical input");else return new r({ts:D*1000,zone:M8($.zone,jD.defaultZone),loc:AD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=M8($.zone,jD.defaultZone);if(!F.isValid)return r.invalid(b3(F));let X=AD.fromObject($),J=A4(D,KQ),{minDaysInFirstWeek:Y,startOfWeek:G}=$Q(J,X),B=jD.now(),H=!n($.specificOffset)?$.specificOffset:F.offset(B),W=!n(J.ordinal),U=!n(J.year),V=!n(J.month)||!n(J.day),Q=U||V,K=J.weekYear||J.weekNumber;if((Q||W)&&K)throw new B1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(V&&W)throw new B1("Can't mix ordinal dates with month/day");let C=K||J.weekday&&!Q,E,A,Z=Y4(B,H);if(C)E=YT,A=JT,Z=V4(Z,Y,G);else if(W)E=BT,A=GT,Z=EX(Z);else E=W4,A=NA;let L=!1;for(let o of E){let _D=J[o];if(!n(_D))L=!0;else if(L)J[o]=A[o];else J[o]=Z[o]}let N=C?hI(J,Y,G):W?xI(J):oQ(J),S=N||aQ(J);if(S)return r.invalid(S);let z=C?eV(J,Y,G):W?DQ(J):J,[P,b]=H4(z,H,F),I=new r({ts:P,zone:F,o:b,loc:X});if(J.weekday&&Q&&D.weekday!==I.weekday)return r.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${I.toISO()}`);if(!I.isValid)return r.invalid(I.invalid);return I}static fromISO(D,$={}){let[F,X]=ww(D);return H6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=Tw(D);return H6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=Sw(D);return H6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(n(D)||n($))throw new $0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[G,B,H,W]=XT(Y,D,$);if(W)return r.invalid(W);else return H6(G,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return r.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=xw(D);return H6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new $0("need to specify a reason the DateTime is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new OQ(F);else return new r({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=ZA(D,AD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return OA(B0.parseFormat(D),AD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){f3=void 0,bX.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?OX(this).weekYear:NaN}get weekNumber(){return this.isValid?OX(this).weekNumber:NaN}get weekday(){return this.isValid?OX(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?EX(this.c).ordinal:NaN}get monthShort(){return this.isValid?W6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?W6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?W6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?W6.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=E4(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=Y4(B,Y),U=Y4(H,G);if(W.hour===U.hour&&W.minute===U.minute&&W.second===U.second&&W.millisecond===U.millisecond)return[Y1(this,{ts:B}),Y1(this,{ts:H})];return[this]}get isInLeapYear(){return h3(this.year)}get daysInMonth(){return Q4(this.year,this.month)}get daysInYear(){return this.isValid?_6(this.year):NaN}get weeksInWeekYear(){return this.isValid?v3(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?v3(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=B0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(H0.instance(D),$)}toLocal(){return this.setZone(jD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=M8(D,jD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return r.invalid(b3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),Y=this.toObject();[X]=H4(Y,J,D)}return Y1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return Y1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=A4(D,KQ),{minDaysInFirstWeek:F,startOfWeek:X}=$Q($,this.loc),J=!n($.weekYear)||!n($.weekNumber)||!n($.weekday),Y=!n($.ordinal),G=!n($.year),B=!n($.month)||!n($.day),H=G||B,W=$.weekYear||$.weekNumber;if((H||Y)&&W)throw new B1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&Y)throw new B1("Can't mix ordinal dates with month/day");let U;if(J)U=eV({...V4(this.c,F,X),...$},F,X);else if(!n($.ordinal))U=DQ({...EX(this.c),...$});else if(U={...this.toObject(),...$},n($.day))U.day=Math.min(Q4(U.year,U.month),U.day);let[V,Q]=H4(U,this.o,this.zone);return Y1(this,{ts:V,o:Q})}plus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D);return Y1(this,QQ(this,$))}minus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D).negate();return Y1(this,QQ(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=HD.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?B0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):RX}toLocaleString(D=U4,$={}){return this.isValid?B0.create(this.loc.clone($),D).formatDateTime(this):RX}toLocaleParts(D={}){return this.isValid?B0.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=_4(Y);let G=D==="extended",B=ZX(this,G,Y);if(W4.indexOf(Y)>=3)B+="T";return B+=AQ(this,G,$,F,X,J,Y),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return ZX(this,D==="extended",_4($))}toISOWeekDate(){return B4(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=_4(G),(X&&W4.indexOf(G)>=3?"T":"")+AQ(this,Y==="extended",$,D,F,J,G)}toRFC2822(){return B4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return B4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return ZX(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 B4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():RX}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(D={}){if(!this.isValid)return{};let $={...this.c};if(D.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(D,$="milliseconds",F={}){if(!this.isValid||!D.isValid)return HD.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=mI($).map(HD.normalizeUnit),Y=D.valueOf()>this.valueOf(),G=Y?this:D,B=Y?D:this,H=dw(G,B,J,X);return Y?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(r.now(),D,$)}until(D){return this.isValid?SD.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||r.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||r.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(r.isDateTime))throw new $0("min requires all arguments be DateTimes");return FQ(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(r.isDateTime))throw new $0("max requires all arguments be DateTimes");return FQ(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return MA(Y,D,$)}static fromStringExplain(D,$,F={}){return r.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=AD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new cX(J,D)}static fromFormatParser(D,$,F={}){if(n(D)||n($))throw new $0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!Y.equals($.locale))throw new $0(`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 r.invalid(W);else return H6(G,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return U4}static get DATE_MED(){return qQ}static get DATE_MED_WITH_WEEKDAY(){return RI}static get DATE_FULL(){return NQ}static get DATE_HUGE(){return PQ}static get TIME_SIMPLE(){return LQ}static get TIME_WITH_SECONDS(){return jQ}static get TIME_WITH_SHORT_OFFSET(){return zQ}static get TIME_WITH_LONG_OFFSET(){return IQ}static get TIME_24_SIMPLE(){return wQ}static get TIME_24_WITH_SECONDS(){return TQ}static get TIME_24_WITH_SHORT_OFFSET(){return SQ}static get TIME_24_WITH_LONG_OFFSET(){return bQ}static get DATETIME_SHORT(){return fQ}static get DATETIME_SHORT_WITH_SECONDS(){return kQ}static get DATETIME_MED(){return vQ}static get DATETIME_MED_WITH_SECONDS(){return gQ}static get DATETIME_MED_WITH_WEEKDAY(){return OI}static get DATETIME_FULL(){return hQ}static get DATETIME_FULL_WITH_SECONDS(){return xQ}static get DATETIME_HUGE(){return yQ}static get DATETIME_HUGE_WITH_SECONDS(){return uQ}}function T3(D){if(r.isDateTime(D))return D;else if(D&&D.valueOf&&Z8(D.valueOf()))return r.fromJSDate(D);else if(D&&typeof D==="object")return r.fromObject(D);else throw new $0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var WT="3.7.2";PA.DateTime=r;PA.Duration=HD;PA.FixedOffsetZone=H0;PA.IANAZone=S2;PA.Info=W6;PA.Interval=SD;PA.InvalidZone=kX;PA.Settings=jD;PA.SystemZone=g3;PA.VERSION=WT;PA.Zone=W1});var M4=f((jA)=>{Object.defineProperty(jA,"__esModule",{value:!0});jA.CronDate=jA.DAYS_IN_MONTH=jA.DateMathOp=jA.TimeUnit=void 0;var _1=LA(),W0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(W0||(jA.TimeUnit=W0={}));var O4;(function(D){D.Add="Add",D.Subtract="Subtract"})(O4||(jA.DateMathOp=O4={}));jA.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class C6{#D;#$=null;#X=null;#G={add:{[W0.Year]:this.addYear.bind(this),[W0.Month]:this.addMonth.bind(this),[W0.Day]:this.addDay.bind(this),[W0.Hour]:this.addHour.bind(this),[W0.Minute]:this.addMinute.bind(this),[W0.Second]:this.addSecond.bind(this)},subtract:{[W0.Year]:this.subtractYear.bind(this),[W0.Month]:this.subtractMonth.bind(this),[W0.Day]:this.subtractDay.bind(this),[W0.Hour]:this.subtractHour.bind(this),[W0.Minute]:this.subtractMinute.bind(this),[W0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=_1.DateTime.local();else if(D instanceof C6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=_1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=_1.DateTime.fromMillis(D,F);else this.#D=_1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=_1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=_1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=_1.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===O4.Add){this.addUnit($);return}if(D===O4.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=C6.#J(this.#D.year);return D===jA.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===jA.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=jA.DAYS_IN_MONTH[$-1]-(C6.#J(this.#D.year)?0:1);else F=jA.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===W0.Month||$===W0.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()}}jA.CronDate=C6;jA.default=C6});var SA=f((wA)=>{Object.defineProperty(wA,"__esModule",{value:!0});wA.CronMonth=void 0;var PT=M4(),LT=R8(),jT=1,zT=12,IT=Object.freeze([]);class IA extends LT.CronField{static get min(){return jT}static get max(){return zT}static get chars(){return IT}static get daysInMonth(){return PT.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}wA.CronMonth=IA});var vA=f((fA)=>{Object.defineProperty(fA,"__esModule",{value:!0});fA.CronSecond=void 0;var wT=R8(),TT=0,ST=59,bT=Object.freeze([]);class bA extends wT.CronField{static get min(){return TT}static get max(){return ST}static get chars(){return bT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}fA.CronSecond=bA});var Z4=f((O0)=>{var fT=O0&&O0.__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]}),N8=O0&&O0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))fT($,D,F)};Object.defineProperty(O0,"__esModule",{value:!0});N8(PV(),O0);N8(TV(),O0);N8(kV(),O0);N8(R8(),O0);N8(xV(),O0);N8(pV(),O0);N8(SA(),O0);N8(vA(),O0)});var dX=f((gA)=>{Object.defineProperty(gA,"__esModule",{value:!0});gA.CronFieldCollection=void 0;var u0=Z4();class R6{#D;#$;#X;#G;#J;#F;static from(D,$){return new R6({second:this.resolveField(u0.CronSecond,D.second,$.second),minute:this.resolveField(u0.CronMinute,D.minute,$.minute),hour:this.resolveField(u0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(u0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(u0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(u0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof u0.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)<=u0.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 u0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof u0.CronDayOfMonth)$=this.#J.values.length===1?u0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=R6.compactField(F);if(X.length===1){let J=R6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let Y=J.count===1?J.start.toString():R6.#H(J,$);if(D instanceof u0.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()}}}gA.CronFieldCollection=R6});var iX=f((yA)=>{Object.defineProperty(yA,"__esModule",{value:!0});yA.CronExpression=yA.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var kD=M4();yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";yA.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var xA=1e4;class m0{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.startDate?new kD.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new kD.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new kD.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 kD.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new m0(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#Y(D,$){return D[$?D.length-1:0]}#U(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new kD.CronDate(D);F.setStartOfDay();let X=new kD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#V(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($,kD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#_(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($,kD.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 kD.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 kD.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=m0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),G=m0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&m0.#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=m0.#B(Y,X),B=D.dstStart===Y,H=D.dstEnd===Y;if(B){if(m0.#B(Y-1,X))return!0;return D.invokeDateOperation($,kD.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(kD.DateMathOp.Add,kD.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($,kD.TimeUnit.Day,J.length),!1;if(this.#U(D)){let U=F?Y-W:W-Y;for(let V=0;V<U;V++)D.applyDateOperation($,kD.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(yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#Q(D=!1){let $=D?kD.DateMathOp.Subtract:kD.DateMathOp.Add,F=new kD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<xA){if(this.#C(F),!this.#A(F)){F.applyDateOperation($,kD.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($,kD.TimeUnit.Day,this.#F.hour.values.length);continue}if(!m0.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,kD.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#E(F,$,D))continue;if(!m0.#B(F.getMinutes(),this.#F.minute.values)){this.#_(F,$,D);continue}if(!m0.#B(F.getSeconds(),this.#F.second.values)){this.#V(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,kD.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>xA)throw Error(yA.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()}}}}}yA.CronExpression=m0;yA.default=m0});var cA=f((pA)=>{Object.defineProperty(pA,"__esModule",{value:!0});pA.seededRandom=hT;function vT(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function gT(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function hT(D){let $=D?vT(D)():Math.floor(Math.random()*10000000000);return gT($)}});var q4=f((dA)=>{Object.defineProperty(dA,"__esModule",{value:!0});dA.CronExpressionParser=dA.DayOfWeek=dA.Months=dA.CronUnit=dA.PredefinedExpressions=void 0;var yT=dX(),uT=iX(),mT=cA(),p0=Z4(),nX;(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"})(nX||(dA.PredefinedExpressions=nX={}));var c0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(c0||(dA.CronUnit=c0={}));var sX;(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"})(sX||(dA.Months=sX={}));var rX;(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"})(rX||(dA.DayOfWeek=rX={}));class M0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,mT.seededRandom)(X);D=nX[D]||D;let Y=M0.#D(D,F);if(!(Y.dayOfMonth==="*"||Y.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let G=M0.#$(c0.Second,Y.second,p0.CronSecond.constraints,J),B=M0.#$(c0.Minute,Y.minute,p0.CronMinute.constraints,J),H=M0.#$(c0.Hour,Y.hour,p0.CronHour.constraints,J),W=M0.#$(c0.Month,Y.month,p0.CronMonth.constraints,J),U=M0.#$(c0.DayOfMonth,Y.dayOfMonth,p0.CronDayOfMonth.constraints,J),{dayOfWeek:V,nthDayOfWeek:Q}=M0.#U(Y.dayOfWeek),K=M0.#$(c0.DayOfWeek,V,p0.CronDayOfWeek.constraints,J),C=new yT.CronFieldCollection({second:new p0.CronSecond(G,{rawValue:Y.second}),minute:new p0.CronMinute(B,{rawValue:Y.minute}),hour:new p0.CronHour(H,{rawValue:Y.hour}),dayOfMonth:new p0.CronDayOfMonth(U,{rawValue:Y.dayOfMonth}),month:new p0.CronMonth(W,{rawValue:Y.month}),dayOfWeek:new p0.CronDayOfWeek(K,{rawValue:Y.dayOfWeek,nthDayOfWeek:Q})});return new uT.CronExpression(C,{...$,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===c0.Month||D===c0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let Y=sX[J]||rX[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),U=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(U<=0)throw Error(`Invalid step: ${U}, must be positive`);let V=Math.max(H,$.min),Q=Math.floor(X*U),K=[];for(let C=Math.floor(V/U)*U+Q;C<=W;C+=U)if(C>=V)K.push(C);return K.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),U=[];for(let V=Math.floor($.min/H)*H+W;V<=$.max;V+=H)if(V>=$.min)U.push(V);return U.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(M0.#V(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===c0.DayOfWeek?H%7:G)}}return $.split(",").forEach((G)=>{if(!(G.length>0))throw Error("Invalid list value format");J(M0.#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 M0.#Y(D,X[0],parseInt(X[1],10),F)}return M0.#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===c0.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#U(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#V(D,$){return D.chars.some((F)=>$.toString().includes(F))}}dA.CronExpressionParser=M0});var iA=f((b2)=>{var iT=b2&&b2.__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]}),nT=b2&&b2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),sT=b2&&b2.__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")iT(F,$,X[J])}return nT(F,$),F}}();Object.defineProperty(b2,"__esModule",{value:!0});b2.CronFileParser=void 0;var rT=q4();class m3{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>sT(D8("fs/promises"))),F=await $(D,"utf8");return m3.#D(F)}static parseFileSync(D){let{readFileSync:$}=D8("fs"),F=$(D,"utf8");return m3.#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=m3.#$(J);F.expressions.push(G.interval)}catch(G){F.errors[J]=G}}return F}static#$(D){let $=D.split(" ");return{interval:rT.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}b2.CronFileParser=m3});var nA=f((oD)=>{var oT=oD&&oD.__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]}),aT=oD&&oD.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))oT($,D,F)};Object.defineProperty(oD,"__esModule",{value:!0});oD.CronFileParser=oD.CronExpressionParser=oD.CronExpression=oD.CronFieldCollection=oD.CronDate=void 0;var tT=q4(),eT=M4();Object.defineProperty(oD,"CronDate",{enumerable:!0,get:function(){return eT.CronDate}});var DS=dX();Object.defineProperty(oD,"CronFieldCollection",{enumerable:!0,get:function(){return DS.CronFieldCollection}});var $S=iX();Object.defineProperty(oD,"CronExpression",{enumerable:!0,get:function(){return $S.CronExpression}});var FS=q4();Object.defineProperty(oD,"CronExpressionParser",{enumerable:!0,get:function(){return FS.CronExpressionParser}});var XS=iA();Object.defineProperty(oD,"CronFileParser",{enumerable:!0,get:function(){return XS.CronFileParser}});aT(Z4(),oD);oD.default=tT.CronExpressionParser});class p3{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=JS){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>R.warn(`[cron ${this.deps.workerId}] tick failed: ${String($)}`))},D)}stop(){if(this.handle===null)return;clearInterval(this.handle),this.handle=null}async addJob(D){let $=N4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,Y=D.accountId??GS;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};p().insert(ZD).values(G).run();let B=p().select().from(ZD).where(u(ZD.id,F)).get();return P4(B)}async listJobs(){return p().select().from(ZD).all().map(P4)}async getJob(D){let $=p().select().from(ZD).where(u(ZD.id,D)).get();return $?P4($):null}async removeJob(D){let $=p();if(!$.select({id:ZD.id}).from(ZD).where(u(ZD.id,D)).get())return{removed:!1};return $.delete(ZD).where(u(ZD.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=p().select().from(ZD).where(u(ZD.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)N4($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let G=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=G?N4(B,new Date).toISOString():null}p().update(ZD).set(X).where(u(ZD.id,D)).run();let Y=p().select().from(ZD).where(u(ZD.id,D)).get();return P4(Y)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=p().select().from(ZD).where(k0(u(ZD.enabled,!0),q7(ZD.nextRunAt,$))).all();for(let X of F)await this.fireJob(X,D)}finally{this.ticking=!1}}async fireJob(D,$){let F={workerId:this.deps.workerId,channel:D.channel,accountId:D.accountId,chatId:D.chatId,text:D.prompt,receivedAt:$.toISOString(),raw:{source:"cron",jobId:D.id}},X=null;try{X=N4(D.expression,$).toISOString()}catch(Y){R.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(Y)}`)}let J=$.toISOString();p().update(ZD).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(u(ZD.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(Y){R.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(Y)}`)}}}function N4(D,$){return sA.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function P4(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 sA,JS=60000,GS="sys:cron";var oX=M(()=>{TD();FD();C0();sA=oM(nA(),1)});class c3{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){R.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var aX=M(()=>{FD()});import aA from"fs/promises";import YS from"os";import d0 from"path";import L4 from"process";function eA(D=tA){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),U=await D.resolveBinary(H.binaryName),V={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)V.agent=H.agent;if(!U)return{...V,authHint:"binary-not-on-path"};let Q=D.homedir();for(let K of H.authPaths(Q))if(await D.pathExists(K))return{...V,status:"ready",binaryPath:U,authHint:"auth-file-present"};return{...V,status:"login-required",binaryPath:U,authHint:"auth-file-missing"}}async function X(H,W){let U=$.get(H.key);if(!W&&U&&U.expiresAt>D.now())return U.value;let V=await F(H);return $.set(H.key,{value:V,expiresAt:D.now()+BS}),V}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,U=[];for(let V of rA)U.push(J(V));for(let V of oA)U.push(await X(V,W));return U}async function G(H,W={}){let U=W.refresh??!1;if(rA.includes(H))return J(H);let V=oA.filter((K)=>K.kind===H);if(V.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let Q=W.agent?V.find((K)=>K.agent===W.agent)??V[0]:V[0];return X(Q,U)}function B(){$.clear()}return{probe:G,probeAll:Y,clearCache:B}}function j4(){if(!d3)d3=eA();return d3}function DK(D){return d3=eA(D),d3}function tX(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 $K(D,$=tA){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=d0.join(F,X,"oauth_creds.json"),Y=d0.join(F,X,"settings.json");if(await $.pathExists(J))return tX("login","oauth_creds.json present");if(await $.pathExists(Y))return tX("install","settings.json present, login pending");return tX("none",`~/${X} not present`)}function FK(){return $K("gemini")}function XK(){return $K("qwen")}async function HS(D){let $=L4.env.PATH??"",F=L4.platform==="win32"?";":":",X=L4.platform==="win32"?(L4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=d0.join(J,`${D}${Y.toLowerCase()}`);try{if((await aA.stat(G)).isFile())return G}catch{}}}return null}async function WS(D){try{return await aA.stat(D),!0}catch{return!1}}var BS=600000,tA,rA,oA,d3=null;var z4=M(()=>{tA={resolveBinary:HS,pathExists:WS,homedir:()=>YS.homedir(),now:()=>Date.now()},rA=["http","mcp","cli"],oA=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[d0.join(D,".claude.json"),d0.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[d0.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[d0.join(D,".qwen","oauth_creds.json"),d0.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[d0.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[d0.join(D,".cursor","cli-config.json"),d0.join(D,".cursor-agent","auth.json"),d0.join(D,".cursor","auth.json")]}]});class eX{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!==_S){R.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(ID(D))}catch(F){R.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;R.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){R.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:c8.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(ID(Y))}catch(G){R.warn(`[gateway-client ${$}] connect frame send failed: ${String(G)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,R.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=d8(J);if(!Y.ok){R.warn(`[gateway-client ${$}] drop malformed frame: ${Y.error}`);return}let G=Y.frame;if(G.type==="event"&&G.name===s.ENROLLMENT_OTP){let B=$7.safeParse(G.payload);if(!B.success){R.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){R.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(G.type==="event"&&G.name===s.ENROLLMENT_APPROVED){let B=F7.safeParse(G.payload);if(!B.success){R.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){R.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(G)}catch(B){R.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{R.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){R.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);R.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 _S=1;var JK=M(()=>{eD();FD()});function GK(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 WD=f((RS)=>{var DJ=Symbol.for("yaml.alias"),YK=Symbol.for("yaml.document"),I4=Symbol.for("yaml.map"),BK=Symbol.for("yaml.pair"),$J=Symbol.for("yaml.scalar"),w4=Symbol.for("yaml.seq"),a2=Symbol.for("yaml.node.type"),US=(D)=>!!D&&typeof D==="object"&&D[a2]===DJ,VS=(D)=>!!D&&typeof D==="object"&&D[a2]===YK,QS=(D)=>!!D&&typeof D==="object"&&D[a2]===I4,AS=(D)=>!!D&&typeof D==="object"&&D[a2]===BK,HK=(D)=>!!D&&typeof D==="object"&&D[a2]===$J,KS=(D)=>!!D&&typeof D==="object"&&D[a2]===w4;function WK(D){if(D&&typeof D==="object")switch(D[a2]){case I4:case w4:return!0}return!1}function ES(D){if(D&&typeof D==="object")switch(D[a2]){case DJ:case I4:case $J:case w4:return!0}return!1}var CS=(D)=>(HK(D)||WK(D))&&!!D.anchor;RS.ALIAS=DJ;RS.DOC=YK;RS.MAP=I4;RS.NODE_TYPE=a2;RS.PAIR=BK;RS.SCALAR=$J;RS.SEQ=w4;RS.hasAnchor=CS;RS.isAlias=US;RS.isCollection=WK;RS.isDocument=VS;RS.isMap=QS;RS.isNode=ES;RS.isPair=AS;RS.isScalar=HK;RS.isSeq=KS});var l3=f((vS)=>{var cD=WD(),Z0=Symbol("break visit"),_K=Symbol("skip children"),f2=Symbol("remove node");function T4(D,$){let F=UK($);if(cD.isDocument(D)){if(O6(null,D.contents,F,Object.freeze([D]))===f2)D.contents=null}else O6(null,D,F,Object.freeze([]))}T4.BREAK=Z0;T4.SKIP=_K;T4.REMOVE=f2;function O6(D,$,F,X){let J=VK(D,$,F,X);if(cD.isNode(J)||cD.isPair(J))return QK(D,X,J),O6(D,J,F,X);if(typeof J!=="symbol"){if(cD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=O6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===Z0)return Z0;else if(G===f2)$.items.splice(Y,1),Y-=1}}else if(cD.isPair($)){X=Object.freeze(X.concat($));let Y=O6("key",$.key,F,X);if(Y===Z0)return Z0;else if(Y===f2)$.key=null;let G=O6("value",$.value,F,X);if(G===Z0)return Z0;else if(G===f2)$.value=null}}return J}async function S4(D,$){let F=UK($);if(cD.isDocument(D)){if(await M6(null,D.contents,F,Object.freeze([D]))===f2)D.contents=null}else await M6(null,D,F,Object.freeze([]))}S4.BREAK=Z0;S4.SKIP=_K;S4.REMOVE=f2;async function M6(D,$,F,X){let J=await VK(D,$,F,X);if(cD.isNode(J)||cD.isPair(J))return QK(D,X,J),M6(D,J,F,X);if(typeof J!=="symbol"){if(cD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=await M6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===Z0)return Z0;else if(G===f2)$.items.splice(Y,1),Y-=1}}else if(cD.isPair($)){X=Object.freeze(X.concat($));let Y=await M6("key",$.key,F,X);if(Y===Z0)return Z0;else if(Y===f2)$.key=null;let G=await M6("value",$.value,F,X);if(G===Z0)return Z0;else if(G===f2)$.value=null}}return J}function UK(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 VK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(cD.isMap($))return F.Map?.(D,$,X);if(cD.isSeq($))return F.Seq?.(D,$,X);if(cD.isPair($))return F.Pair?.(D,$,X);if(cD.isScalar($))return F.Scalar?.(D,$,X);if(cD.isAlias($))return F.Alias?.(D,$,X);return}function QK(D,$,F){let X=$[$.length-1];if(cD.isCollection(X))X.items[D]=F;else if(cD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(cD.isDocument(X))X.contents=F;else{let J=cD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}vS.visit=T4;vS.visitAsync=S4});var FJ=f((mS)=>{var AK=WD(),xS=l3(),yS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},uS=(D)=>D.replace(/[!,[\]{}]/g,($)=>yS[$]);class l0{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},l0.defaultYaml,D),this.tags=Object.assign({},l0.defaultTags,$)}clone(){let D=new l0(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new l0(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:l0.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},l0.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:l0.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},l0.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 $+uS(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&&AK.isNode(D.contents)){let J={};xS.visit(D.contents,(Y,G)=>{if(AK.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
- `)}}l0.defaultYaml={explicit:!1,version:"1.2"};l0.defaultTags={"!!":"tag:yaml.org,2002:"};mS.Directives=l0});var b4=f((iS)=>{var KK=WD(),cS=l3();function dS(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 EK(D){let $=new Set;return cS.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 lS(D,$){let F=[],X=new Map,J=null;return{onAnchor:(Y)=>{F.push(Y),J??(J=EK(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&&(KK.isScalar(G.node)||KK.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}}iS.anchorIsValid=dS;iS.anchorNames=EK;iS.createNodeAnchors=lS;iS.findNewAnchor=CK});var XJ=f((aS)=>{function i3(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=i3(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=i3(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=i3(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=i3(D,X,J,Y);if(G===void 0)delete X[J];else if(G!==Y)X[J]=G}return D.call($,F,X)}aS.applyReviver=i3});var P8=f((Db)=>{var eS=WD();function RK(D,$,F){if(Array.isArray(D))return D.map((X,J)=>RK(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!eS.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}Db.toJS=RK});var f4=f((Jb)=>{var Fb=XJ(),OK=WD(),Xb=P8();class MK{constructor(D){Object.defineProperty(this,OK.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(!OK.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=Xb.toJS(this,"",Y);if(typeof X==="function")for(let{count:B,res:H}of Y.anchors.values())X(H,B);return typeof J==="function"?Fb.applyReviver(J,{"":G},"",G):G}}Jb.NodeBase=MK});var n3=f((_b)=>{var Yb=b4(),Bb=l3(),Z6=WD(),Hb=f4(),Wb=P8();class ZK extends Hb.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=[],Bb.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)Wb.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=k4(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(Yb.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 k4(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=k4(D,J,F);if(Y>X)X=Y}return X}else if(Z6.isPair($)){let X=k4(D,$.key,F),J=k4(D,$.value,F);return Math.max(X,J)}return 1}_b.Alias=ZK});var uD=f((Eb)=>{var Vb=WD(),Qb=f4(),Ab=P8(),Kb=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class U1 extends Qb.NodeBase{constructor(D){super(Vb.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Ab.toJS(this.value,D,$)}toString(){return String(this.value)}}U1.BLOCK_FOLDED="BLOCK_FOLDED";U1.BLOCK_LITERAL="BLOCK_LITERAL";U1.PLAIN="PLAIN";U1.QUOTE_DOUBLE="QUOTE_DOUBLE";U1.QUOTE_SINGLE="QUOTE_SINGLE";Eb.Scalar=U1;Eb.isScalarValue=Kb});var s3=f((Nb)=>{var Ob=n3(),V1=WD(),qK=uD(),Mb="tag:yaml.org,2002:";function Zb(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 qb(D,$,F){if(V1.isDocument(D))D=D.contents;if(V1.isNode(D))return D;if(V1.isPair(D)){let V=F.schema[V1.MAP].createNode?.(F.schema,null,F);return V.items.push(D),V}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 Ob.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Mb+$.slice(2);let W=Zb(D,$,G.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let V=new qK.Scalar(D);if(H)H.node=V;return V}W=D instanceof Map?G[V1.MAP]:(Symbol.iterator in Object(D))?G[V1.SEQ]:G[V1.MAP]}if(Y)Y(W),delete F.onTagObj;let U=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new qK.Scalar(D);if($)U.tag=$;else if(!W.default)U.tag=W.tag;if(H)H.node=U;return U}Nb.createNode=qb});var v4=f((zb)=>{var Lb=s3(),k2=WD(),jb=f4();function JJ(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 Lb.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 NK=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class PK extends jb.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)=>k2.isNode(F)||k2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(NK(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(k2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,JJ(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(k2.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!$&&k2.isScalar(J)?J.value:J;else return k2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!k2.isPair($))return!1;let F=$.value;return F==null||D&&k2.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 k2.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(k2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,JJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}zb.Collection=PK;zb.collectionFromPath=JJ;zb.isEmptyPath=NK});var r3=f((fb)=>{var Sb=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function GJ(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var bb=(D,$,F)=>D.endsWith(`
114
+ `),F.update(v0).set({bootstrapShownAt:new Date().toISOString()}).where(u(v0.pk,"default")).run()}var GV=M(()=>{TD();C0()});var YV=M(()=>{JV();HX();WX();GV()});import{Buffer as BV}from"buffer";import{timingSafeEqual as qz}from"crypto";function T2(D,$){let F=BV.from(D,"utf8"),X=BV.from($,"utf8");if(F.length!==X.length)return!1;return qz(F,X)}var F4=()=>{};import{Buffer as HV}from"buffer";import{createDecipheriv as Nz,createHash as Pz}from"crypto";function jz(D,$){let F=Pz("sha256").update($,"utf8").digest(),X=HV.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=Nz("aes-256-cbc",F,J);return HV.concat([G.update(Y),G.final()]).toString("utf8")}function WV(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(jz(F.encrypt,$))}return F}function zz(D){return D.type==="url_verification"||D.header?.event_type==="url_verification"}function Iz(D){if(typeof D.header?.token==="string")return D.header.token;if(typeof D.token==="string")return D.token;return}async function wz(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 Tz(D,$){let F=_X.get(D);if(!F)F={},_X.set(D,F);if(F.current&&F.current.expiresAt-Date.now()>Lz)return F.current.token;if(F.inflight)return(await F.inflight).token;let X=F;return X.inflight=wz(D,$).then((J)=>{return X.current=J,J}).finally(()=>{X.inflight=void 0}),(await X.inflight).token}function Sz(D){let $=typeof D.parent_id==="string"&&D.parent_id.length>0?D.parent_id:void 0;if(!$)return;return{quote:$}}function UV(){_X.clear()}var Lz=60000,_X,_V;var UX=M(()=>{F4();_X=new Map;_V={channel:"lark",async verify(D,$,F){if(F.credentials.channel!=="lark")throw Error("lark adapter called with non-lark credentials");let X=WV(D,F.credentials.encryptKey),J=Iz(X);if(J===void 0||!T2(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=WV(D,J);if(zz(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 C=JSON.parse(G.content);B=typeof C.text==="string"?C.text:""}catch{return[]}if(!B)return[];let H=Y.event?.sender,W=H?.sender_id?.open_id,U=H?.sender_id?.name,V=G.chat_type==="group"?`group:${G.chat_id}`:`p2p:${W??""}`,Q=Sz(G);return[{workerId:$,channel:"lark",accountId:X,chatId:V,...W===void 0?{}:{userId:W},...U===void 0?{}:{userDisplayName:U},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 Tz(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 J6(){return new Date().toISOString()}import{Buffer as VV}from"buffer";import{createHash as bz,createHmac as fz,timingSafeEqual as kz}from"crypto";function vz(D,$){return fz("sha256",D).update($,"utf8").digest("base64")}function gz(D){switch(D.type){case"user":return`user:${D.userId}`;case"group":return`group:${D.groupId}`;case"room":return`room:${D.roomId}`}}function hz(D){let $=D.message?.quotedMessageId;if(typeof $!=="string"||$.length===0)return;return{quote:$}}var QV;var AV=M(()=>{QV={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=vz(F.credentials.channelSecret,D),Y=VV.from(X,"base64"),G=VV.from(J,"base64");if(Y.length!==G.length||!kz(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=bz("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=gz(G.source),H=G.source.type==="user"?G.source.userId:("userId"in G.source)?G.source.userId:void 0,W=hz(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()||J6(),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 KV}from"buffer";import{createHash as xz,timingSafeEqual as yz}from"crypto";function cz(D,$){let F=KV.from(D,"utf8"),X=KV.from($,"utf8");if(F.length!==X.length)return!1;return yz(F,X)}function dz(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 lz(D,$){if(D.length<=$)return[D];let F=[],X=D;while(X.length>$){let J=-1;for(let Y=$-1;Y>0;Y--)if(pz.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 iz(D){if(D.botUsername&&D.botUsername.length>0)return D.botUsername;return xz("sha256").update(D.botToken,"utf8").digest("hex").slice(0,16)}function nz(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 uz=4096,mz="x-telegram-bot-api-secret-token",pz,EV;var CV=M(()=>{pz=/\s/;EV={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=$[mz];if(!J||!cz(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=dz(J.from),H=Number.isFinite(J.date)?new Date(J.date*1000).toISOString():J6(),W=iz(F.credentials),U=nz(J);return[{workerId:$,channel:"telegram",accountId:W,chatId:Y,...G===void 0?{}:{userId:G},...B===void 0?{}:{userDisplayName:B},text:J.text,...U===void 0?{}:{richMetadata:U},receivedAt:H,raw:X}]},async send(D,$){if(D.credentials.channel!=="telegram")throw Error("telegram adapter called with non-telegram credentials");let F=D.credentials.botToken,X=$.chatId.indexOf(":");if(X<=0||X===$.chatId.length-1)throw Error(`telegram send: malformed chatId ${$.chatId}`);let J=$.chatId.slice(X+1),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=lz($.text,uz);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 U=await W.text();throw Error(`Telegram sendMessage failed: ${W.status} ${U}`)}}}}});function rz(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 oz(D){let $=D.authorization;if(!$)return null;let F=/^bearer\s+(\S+)\s*$/i.exec($);return F?F[1]:null}var sz="default",RV;var OV=M(()=>{F4();RV={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=oz($);if(!J||!T2(J,X))throw Error("invalid Authorization bearer token")},async toEnvelopes(D,$,F){let X=F?.id&&F.id.length>0?F.id:sz,J=JSON.parse(D),Y=rz(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:J6(),raw:J}]},async send(){}}});import{Buffer as MV}from"buffer";import{createHmac as az,timingSafeEqual as tz}from"crypto";function DI(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 $I(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 ez="v21.0",ZV;var qV=M(()=>{ZV={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=az("sha256",F.credentials.appSecret).update(D,"utf8").digest("hex"),B=MV.from(Y,"hex"),H=MV.from(G,"hex");if(B.length!==H.length||!tz(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 U of H.messages){let V=DI(U);if(V===void 0)continue;let Q=U.from,C=W.find((A)=>A.wa_id===Q)?.profile?.name,E=$I(U);Y.push({workerId:$,channel:"whatsapp",accountId:X,chatId:Q,userId:Q,...C?{userDisplayName:C}:{},text:V,...E===void 0?{}:{richMetadata:E},receivedAt:new Date(Number(U.timestamp)*1000).toISOString(),raw:U})}}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/${ez}/${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 J1(D){return FI[D]}class I3{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 J1(D)}}var FI;var w3=M(()=>{UX();AV();CV();OV();qV();FI={web:RV,line:QV,telegram:EV,lark:_V,whatsapp:ZV}});function s2(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 X4(D){let $=structuredClone(D);return $.brains=$.brains.map((F)=>{if(F.type==="cloud-gateway")return{...F,config:{...F.config,token:""}};return F}),XI($),$.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 G6(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}),JI(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 XI(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 JI(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 PV=f((NV)=>{Object.defineProperty(NV,"__esModule",{value:!0})});var R8=f((LV)=>{Object.defineProperty(LV,"__esModule",{value:!0});LV.CronField=void 0;class VX{#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(VX.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))}}LV.CronField=VX});var TV=f((IV)=>{Object.defineProperty(IV,"__esModule",{value:!0});IV.CronDayOfMonth=void 0;var GI=R8(),YI=1,BI=31,HI=Object.freeze(["L"]);class zV extends GI.CronField{static get min(){return YI}static get max(){return BI}static get chars(){return HI}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}}IV.CronDayOfMonth=zV});var kV=f((bV)=>{Object.defineProperty(bV,"__esModule",{value:!0});bV.CronDayOfWeek=void 0;var WI=R8(),_I=0,UI=7,VI=Object.freeze(["L"]);class SV extends WI.CronField{static get min(){return _I}static get max(){return UI}static get chars(){return VI}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}}bV.CronDayOfWeek=SV});var xV=f((gV)=>{Object.defineProperty(gV,"__esModule",{value:!0});gV.CronHour=void 0;var QI=R8(),AI=0,KI=23,EI=Object.freeze([]);class vV extends QI.CronField{static get min(){return AI}static get max(){return KI}static get chars(){return EI}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}gV.CronHour=vV});var pV=f((uV)=>{Object.defineProperty(uV,"__esModule",{value:!0});uV.CronMinute=void 0;var CI=R8(),RI=0,OI=59,MI=Object.freeze([]);class yV extends CI.CronField{static get min(){return RI}static get max(){return OI}static get chars(){return MI}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}uV.CronMinute=yV});var LA=f((PA)=>{Object.defineProperty(PA,"__esModule",{value:!0});class q8 extends Error{}class OQ extends q8{constructor(D){super(`Invalid DateTime: ${D.toMessage()}`)}}class MQ extends q8{constructor(D){super(`Invalid Interval: ${D.toMessage()}`)}}class ZQ extends q8{constructor(D){super(`Invalid Duration: ${D.toMessage()}`)}}class B1 extends q8{}class fX extends q8{constructor(D){super(`Invalid unit ${D}`)}}class $0 extends q8{}class o2 extends q8{constructor(){super("Zone is an abstract class")}}var x="numeric",A2="short",z0="long",U4={year:x,month:x,day:x},qQ={year:x,month:A2,day:x},ZI={year:x,month:A2,day:x,weekday:A2},NQ={year:x,month:z0,day:x},PQ={year:x,month:z0,day:x,weekday:z0},LQ={hour:x,minute:x},jQ={hour:x,minute:x,second:x},zQ={hour:x,minute:x,second:x,timeZoneName:A2},IQ={hour:x,minute:x,second:x,timeZoneName:z0},wQ={hour:x,minute:x,hourCycle:"h23"},TQ={hour:x,minute:x,second:x,hourCycle:"h23"},SQ={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:A2},bQ={hour:x,minute:x,second:x,hourCycle:"h23",timeZoneName:z0},fQ={year:x,month:x,day:x,hour:x,minute:x},kQ={year:x,month:x,day:x,hour:x,minute:x,second:x},vQ={year:x,month:A2,day:x,hour:x,minute:x},gQ={year:x,month:A2,day:x,hour:x,minute:x,second:x},qI={year:x,month:A2,day:x,weekday:A2,hour:x,minute:x},hQ={year:x,month:z0,day:x,hour:x,minute:x,timeZoneName:A2},xQ={year:x,month:z0,day:x,hour:x,minute:x,second:x,timeZoneName:A2},yQ={year:x,month:z0,day:x,weekday:z0,hour:x,minute:x,timeZoneName:z0},uQ={year:x,month:z0,day:x,weekday:z0,hour:x,minute:x,second:x,timeZoneName:z0};class W1{get type(){throw new o2}get name(){throw new o2}get ianaName(){return this.name}get isUniversal(){throw new o2}offsetName(D,$){throw new o2}formatOffset(D,$){throw new o2}offset(D){throw new o2}equals(D){throw new o2}get isValid(){throw new o2}}var QX=null;class g3 extends W1{static get instance(){if(QX===null)QX=new g3;return QX}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return DA(D,$,F)}formatOffset(D,$){return k3(this.offset(D),$)}offset(D){return-new Date(D).getTimezoneOffset()}equals(D){return D.type==="system"}get isValid(){return!0}}var qX=new Map;function NI(D){let $=qX.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"}),qX.set(D,$);return $}var PI={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function LI(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,U]=X;return[G,J,Y,B,H,W,U]}function jI(D,$){let F=D.formatToParts($),X=[];for(let J=0;J<F.length;J++){let{type:Y,value:G}=F[J],B=PI[Y];if(Y==="era")X[B]=G;else if(!n(B))X[B]=parseInt(G,10)}return X}var AX=new Map;class S2 extends W1{static create(D){let $=AX.get(D);if($===void 0)AX.set(D,$=new S2(D));return $}static resetCache(){AX.clear(),qX.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=S2.isValidZone(D)}get type(){return"iana"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(D,{format:$,locale:F}){return DA(D,$,F,this.name)}formatOffset(D,$){return k3(this.offset(D),$)}offset(D){if(!this.valid)return NaN;let $=new Date(D);if(isNaN($))return NaN;let F=NI(this.name),[X,J,Y,G,B,H,W]=F.formatToParts?jI(F,$):LI(F,$);if(G==="BC")X=-Math.abs(X)+1;let V=E4({year:X,month:J,day:Y,hour:B===24?0:B,minute:H,second:W,millisecond:0}),Q=+$,K=Q%1000;return Q-=K>=0?K:1000+K,(V-Q)/60000}equals(D){return D.type==="iana"&&D.name===this.name}get isValid(){return this.valid}}var cV={};function zI(D,$={}){let F=JSON.stringify([D,$]),X=cV[F];if(!X)X=new Intl.ListFormat(D,$),cV[F]=X;return X}var NX=new Map;function PX(D,$={}){let F=JSON.stringify([D,$]),X=NX.get(F);if(X===void 0)X=new Intl.DateTimeFormat(D,$),NX.set(F,X);return X}var LX=new Map;function II(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 jX=new Map;function wI(D,$={}){let{base:F,...X}=$,J=JSON.stringify([D,X]),Y=jX.get(J);if(Y===void 0)Y=new Intl.RelativeTimeFormat(D,$),jX.set(J,Y);return Y}var S3=null;function TI(){if(S3)return S3;else return S3=new Intl.DateTimeFormat().resolvedOptions().locale,S3}var zX=new Map;function mQ(D){let $=zX.get(D);if($===void 0)$=new Intl.DateTimeFormat(D).resolvedOptions(),zX.set(D,$);return $}var IX=new Map;function SI(D){let $=IX.get(D);if(!$){let F=new Intl.Locale(D);if($="getWeekInfo"in F?F.getWeekInfo():F.weekInfo,!("minimalDays"in $))$={...lQ,...$};IX.set(D,$)}return $}function bI(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=PX(D).resolvedOptions(),J=D}catch(B){let H=D.substring(0,F);X=PX(H).resolvedOptions(),J=H}let{numberingSystem:Y,calendar:G}=X;return[J,Y,G]}}function fI(D,$,F){if(F||$){if(!D.includes("-u-"))D+="-u";if(F)D+=`-ca-${F}`;if($)D+=`-nu-${$}`;return D}else return D}function kI(D){let $=[];for(let F=1;F<=12;F++){let X=r.utc(2009,F,1);$.push(D(X))}return $}function vI(D){let $=[];for(let F=1;F<=7;F++){let X=r.utc(2016,11,13+F);$.push(D(X))}return $}function J4(D,$,F,X){let J=D.listingMode();if(J==="error")return null;else if(J==="en")return F($);else return X($)}function gI(D){if(D.numberingSystem&&D.numberingSystem!=="latn")return!1;else return D.numberingSystem==="latn"||!D.locale||D.locale.startsWith("en")||mQ(D.locale).numberingSystem==="latn"}class pQ{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=II(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):yX(D,3);return yD($,this.padTo)}}}class cQ{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&&S2.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=PX($,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 dQ{constructor(D,$,F){if(this.opts={style:"long",...F},!$&&tQ())this.rtf=wI(D,F)}format(D,$){if(this.rtf)return this.rtf.format(D,$);else return Xw($,D,this.opts.numeric,this.opts.style!=="long")}formatToParts(D,$){if(this.rtf)return this.rtf.formatToParts(D,$);else return[]}}var lQ={firstDay:1,minimalDays:4,weekend:[6,7]};class AD{static fromOpts(D){return AD.create(D.locale,D.numberingSystem,D.outputCalendar,D.weekSettings,D.defaultToEN)}static create(D,$,F,X,J=!1){let Y=D||jD.defaultLocale,G=Y||(J?"en-US":TI()),B=$||jD.defaultNumberingSystem,H=F||jD.defaultOutputCalendar,W=TX(X)||jD.defaultWeekSettings;return new AD(G,B,H,W,Y)}static resetCache(){S3=null,NX.clear(),LX.clear(),jX.clear(),zX.clear(),IX.clear()}static fromObject({locale:D,numberingSystem:$,outputCalendar:F,weekSettings:X}={}){return AD.create(D,$,F,X)}constructor(D,$,F,X,J){let[Y,G,B]=bI(D);this.locale=Y,this.numberingSystem=$||G||null,this.outputCalendar=F||B||null,this.weekSettings=X,this.intl=fI(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=gI(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 AD.create(D.locale||this.specifiedLocale,D.numberingSystem||this.numberingSystem,D.outputCalendar||this.outputCalendar,TX(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 J4(this,D,XA,()=>{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]=kI(Y)}return this.monthsCache[J][D]})}weekdays(D,$=!1){return J4(this,D,YA,()=>{let F=$?{weekday:D,year:"numeric",month:"long",day:"numeric"}:{weekday:D},X=$?"format":"standalone";if(!this.weekdaysCache[X][D])this.weekdaysCache[X][D]=vI((J)=>this.extract(J,F,"weekday"));return this.weekdaysCache[X][D]})}meridiems(){return J4(this,void 0,()=>BA,()=>{if(!this.meridiemCache){let D={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[r.utc(2016,11,13,9),r.utc(2016,11,13,19)].map(($)=>this.extract($,D,"dayperiod"))}return this.meridiemCache})}eras(D){return J4(this,D,HA,()=>{let $={era:D};if(!this.eraCache[D])this.eraCache[D]=[r.utc(-40,1,1),r.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 pQ(this.intl,D.forceSimple||this.fastNumbers,D)}dtFormatter(D,$={}){return new cQ(D,this.intl,$)}relFormatter(D={}){return new dQ(this.intl,this.isEnglish(),D)}listFormatter(D={}){return zI(this.intl,D)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||mQ(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!eQ())return lQ;else return SI(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 KX=null;class H0 extends W1{static get utcInstance(){if(KX===null)KX=new H0(0);return KX}static instance(D){return D===0?H0.utcInstance:new H0(D)}static parseSpecifier(D){if(D){let $=D.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if($)return new H0(C4($[1],$[2]))}return null}constructor(D){super();this.fixed=D}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${k3(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${k3(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(D,$){return k3(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 kX extends W1{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 M8(D,$){if(n(D)||D===null)return $;else if(D instanceof W1)return D;else if(pI(D)){let F=D.toLowerCase();if(F==="default")return $;else if(F==="local"||F==="system")return g3.instance;else if(F==="utc"||F==="gmt")return H0.utcInstance;else return H0.parseSpecifier(F)||S2.create(D)}else if(Z8(D))return H0.instance(D);else if(typeof D==="object"&&"offset"in D&&typeof D.offset==="function")return D;else return new kX(D)}var vX={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"},dV={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]},hI=vX.hanidec.replace(/[\[|\]]/g,"").split("");function xI(D){let $=parseInt(D,10);if(isNaN($)){$="";for(let F=0;F<D.length;F++){let X=D.charCodeAt(F);if(D[F].search(vX.hanidec)!==-1)$+=hI.indexOf(D[F]);else for(let J in dV){let[Y,G]=dV[J];if(X>=Y&&X<=G)$+=X-Y}}return parseInt($,10)}else return $}var wX=new Map;function yI(){wX.clear()}function V2({numberingSystem:D},$=""){let F=D||"latn",X=wX.get(F);if(X===void 0)X=new Map,wX.set(F,X);let J=X.get($);if(J===void 0)J=new RegExp(`${vX[F]}${$}`),X.set($,J);return J}var lV=()=>Date.now(),iV="system",nV=null,sV=null,rV=null,oV=60,aV,tV=null;class jD{static get now(){return lV}static set now(D){lV=D}static set defaultZone(D){iV=D}static get defaultZone(){return M8(iV,g3.instance)}static get defaultLocale(){return nV}static set defaultLocale(D){nV=D}static get defaultNumberingSystem(){return sV}static set defaultNumberingSystem(D){sV=D}static get defaultOutputCalendar(){return rV}static set defaultOutputCalendar(D){rV=D}static get defaultWeekSettings(){return tV}static set defaultWeekSettings(D){tV=TX(D)}static get twoDigitCutoffYear(){return oV}static set twoDigitCutoffYear(D){oV=D%100}static get throwOnInvalid(){return aV}static set throwOnInvalid(D){aV=D}static resetCaches(){AD.resetCache(),S2.resetCache(),r.resetCache(),yI()}}class h0{constructor(D,$){this.reason=D,this.explanation=$}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var iQ=[0,31,59,90,120,151,181,212,243,273,304,334],nQ=[0,31,60,91,121,152,182,213,244,274,305,335];function x0(D,$){return new h0("unit out of range",`you specified ${$} (of type ${typeof $}) as a ${D}, which is invalid`)}function gX(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 sQ(D,$,F){return F+(h3(D)?nQ:iQ)[$-1]}function rQ(D,$){let F=h3(D)?nQ:iQ,X=F.findIndex((Y)=>Y<$),J=$-F[X];return{month:X+1,day:J}}function hX(D,$){return(D-$+7)%7+1}function V4(D,$=4,F=1){let{year:X,month:J,day:Y}=D,G=sQ(X,J,Y),B=hX(gX(X,J,Y),F),H=Math.floor((G-B+14-$)/7),W;if(H<1)W=X-1,H=v3(W,$,F);else if(H>v3(X,$,F))W=X+1,H=1;else W=X;return{weekYear:W,weekNumber:H,weekday:B,...R4(D)}}function eV(D,$=4,F=1){let{weekYear:X,weekNumber:J,weekday:Y}=D,G=hX(gX(X,1,$),F),B=_6(X),H=J*7+Y-G-7+$,W;if(H<1)W=X-1,H+=_6(W);else if(H>B)W=X+1,H-=_6(X);else W=X;let{month:U,day:V}=rQ(W,H);return{year:W,month:U,day:V,...R4(D)}}function EX(D){let{year:$,month:F,day:X}=D,J=sQ($,F,X);return{year:$,ordinal:J,...R4(D)}}function DQ(D){let{year:$,ordinal:F}=D,{month:X,day:J}=rQ($,F);return{year:$,month:X,day:J,...R4(D)}}function $Q(D,$){if(!n(D.localWeekday)||!n(D.localWeekNumber)||!n(D.localWeekYear)){if(!n(D.weekday)||!n(D.weekNumber)||!n(D.weekYear))throw new B1("Cannot mix locale-based week fields with ISO-based week fields");if(!n(D.localWeekday))D.weekday=D.localWeekday;if(!n(D.localWeekNumber))D.weekNumber=D.localWeekNumber;if(!n(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 uI(D,$=4,F=1){let X=K4(D.weekYear),J=y0(D.weekNumber,1,v3(D.weekYear,$,F)),Y=y0(D.weekday,1,7);if(!X)return x0("weekYear",D.weekYear);else if(!J)return x0("week",D.weekNumber);else if(!Y)return x0("weekday",D.weekday);else return!1}function mI(D){let $=K4(D.year),F=y0(D.ordinal,1,_6(D.year));if(!$)return x0("year",D.year);else if(!F)return x0("ordinal",D.ordinal);else return!1}function oQ(D){let $=K4(D.year),F=y0(D.month,1,12),X=y0(D.day,1,Q4(D.year,D.month));if(!$)return x0("year",D.year);else if(!F)return x0("month",D.month);else if(!X)return x0("day",D.day);else return!1}function aQ(D){let{hour:$,minute:F,second:X,millisecond:J}=D,Y=y0($,0,23)||$===24&&F===0&&X===0&&J===0,G=y0(F,0,59),B=y0(X,0,59),H=y0(J,0,999);if(!Y)return x0("hour",$);else if(!G)return x0("minute",F);else if(!B)return x0("second",X);else if(!H)return x0("millisecond",J);else return!1}function n(D){return typeof D>"u"}function Z8(D){return typeof D==="number"}function K4(D){return typeof D==="number"&&D%1===0}function pI(D){return typeof D==="string"}function cI(D){return Object.prototype.toString.call(D)==="[object Date]"}function tQ(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(D){return!1}}function eQ(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(D){return!1}}function dI(D){return Array.isArray(D)?D:[D]}function FQ(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 lI(D,$){return $.reduce((F,X)=>{return F[X]=D[X],F},{})}function V6(D,$){return Object.prototype.hasOwnProperty.call(D,$)}function TX(D){if(D==null)return null;else if(typeof D!=="object")throw new $0("Week settings must be an object");else{if(!y0(D.firstDay,1,7)||!y0(D.minimalDays,1,7)||!Array.isArray(D.weekend)||D.weekend.some(($)=>!y0($,1,7)))throw new $0("Invalid week settings");return{firstDay:D.firstDay,minimalDays:D.minimalDays,weekend:Array.from(D.weekend)}}}function y0(D,$,F){return K4(D)&&D>=$&&D<=F}function iI(D,$){return D-$*Math.floor(D/$)}function yD(D,$=2){let F=D<0,X;if(F)X="-"+(""+-D).padStart($,"0");else X=(""+D).padStart($,"0");return X}function O8(D){if(n(D)||D===null||D==="")return;else return parseInt(D,10)}function G1(D){if(n(D)||D===null||D==="")return;else return parseFloat(D)}function xX(D){if(n(D)||D===null||D==="")return;else{let $=parseFloat("0."+D)*1000;return Math.floor($)}}function yX(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 h3(D){return D%4===0&&(D%100!==0||D%400===0)}function _6(D){return h3(D)?366:365}function Q4(D,$){let F=iI($-1,12)+1,X=D+($-F)/12;if(F===2)return h3(X)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][F-1]}function E4(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 XQ(D,$,F){return-hX(gX(D,1,$),F)+$-1}function v3(D,$=4,F=1){let X=XQ(D,$,F),J=XQ(D+1,$,F);return(_6(D)-X+J)/7}function SX(D){if(D>99)return D;else return D>jD.twoDigitCutoffYear?1900+D:2000+D}function DA(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 C4(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 $A(D){let $=Number(D);if(typeof D==="boolean"||D===""||!Number.isFinite($))throw new $0(`Invalid unit value ${D}`);return $}function A4(D,$){let F={};for(let X in D)if(V6(D,X)){let J=D[X];if(J===void 0||J===null)continue;F[$(X)]=$A(J)}return F}function k3(D,$){let F=Math.trunc(Math.abs(D/60)),X=Math.trunc(Math.abs(D%60)),J=D>=0?"+":"-";switch($){case"short":return`${J}${yD(F,2)}:${yD(X,2)}`;case"narrow":return`${J}${F}${X>0?`:${X}`:""}`;case"techie":return`${J}${yD(F,2)}${yD(X,2)}`;default:throw RangeError(`Value format ${$} is out of range for property format`)}}function R4(D){return lI(D,["hour","minute","second","millisecond"])}var nI=["January","February","March","April","May","June","July","August","September","October","November","December"],FA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],sI=["J","F","M","A","M","J","J","A","S","O","N","D"];function XA(D){switch(D){case"narrow":return[...sI];case"short":return[...FA];case"long":return[...nI];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 JA=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],GA=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],rI=["M","T","W","T","F","S","S"];function YA(D){switch(D){case"narrow":return[...rI];case"short":return[...GA];case"long":return[...JA];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var BA=["AM","PM"],oI=["Before Christ","Anno Domini"],aI=["BC","AD"],tI=["B","A"];function HA(D){switch(D){case"narrow":return[...tI];case"short":return[...aI];case"long":return[...oI];default:return null}}function eI(D){return BA[D.hour<12?0:1]}function Dw(D,$){return YA($)[D.weekday-1]}function $w(D,$){return XA($)[D.month-1]}function Fw(D,$){return HA($)[D.year<0?0:1]}function Xw(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 V=D==="days";switch($){case 1:return V?"tomorrow":`next ${J[D][0]}`;case-1:return V?"yesterday":`last ${J[D][0]}`;case 0:return V?"today":`this ${J[D][0]}`}}let G=Object.is($,-0)||$<0,B=Math.abs($),H=B===1,W=J[D],U=X?H?W[1]:W[2]||W[1]:H?J[D][0]:D;return G?`${B} ${U} ago`:`in ${B} ${U}`}function JQ(D,$){let F="";for(let X of D)if(X.literal)F+=X.val;else F+=$(X.val);return F}var Jw={D:U4,DD:qQ,DDD:NQ,DDDD:PQ,t:LQ,tt:jQ,ttt:zQ,tttt:IQ,T:wQ,TT:TQ,TTT:SQ,TTTT:bQ,f:fQ,ff:vQ,fff:hQ,ffff:yQ,F:kQ,FF:gQ,FFF:xQ,FFFF:uQ};class B0{static create(D,$={}){return new B0(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 Jw[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 yD(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,K)=>this.loc.extract(D,Q,K),Y=(Q)=>{if(D.isOffsetFixed&&D.offset===0&&Q.allowZ)return"Z";return D.isValid?D.zone.formatOffset(D.ts,Q.format):""},G=()=>F?eI(D):J({hour:"numeric",hourCycle:"h12"},"dayperiod"),B=(Q,K)=>F?$w(D,Q):J(K?{month:Q}:{month:Q,day:"numeric"},"month"),H=(Q,K)=>F?Dw(D,Q):J(K?{weekday:Q}:{weekday:Q,month:"long",day:"numeric"},"weekday"),W=(Q)=>{let K=B0.macroTokenToFormatOpts(Q);if(K)return this.formatWithSystemDefault(D,K);else return Q},U=(Q)=>F?Fw(D,Q):J({era:Q},"era"),V=(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 U("short");case"GG":return U("long");case"GGGGG":return U("narrow");case"kk":return this.num(D.weekYear.toString().slice(-2),2);case"kkkk":return this.num(D.weekYear,4);case"W":return this.num(D.weekNumber);case"WW":return this.num(D.weekNumber,2);case"n":return this.num(D.localWeekNumber);case"nn":return this.num(D.localWeekNumber,2);case"ii":return this.num(D.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(D.localWeekYear,4);case"o":return this.num(D.ordinal);case"ooo":return this.num(D.ordinal,3);case"q":return this.num(D.quarter);case"qq":return this.num(D.quarter,2);case"X":return this.num(Math.floor(D.ts/1000));case"x":return this.num(D.ts);default:return W(Q)}};return JQ(B0.parseFormat($),V)}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)=>(V)=>{let Q=X(V);if(Q){let K=U.isNegativeDuration&&Q!==U.largestUnit?F:1,C;if(this.opts.signMode==="negativeLargestOnly"&&Q!==U.largestUnit)C="never";else if(this.opts.signMode==="all")C="always";else C="auto";return this.num(W.get(Q)*K,V.length,C)}else return V},Y=B0.parseFormat($),G=Y.reduce((W,{literal:U,val:V})=>U?W:W.concat(V),[]),B=D.shiftTo(...G.map(X).filter((W)=>W)),H={isNegativeDuration:B<0,largestUnit:Object.keys(B.values)[0]};return JQ(Y,J(B,H))}}var WA=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function Q6(...D){let $=D.reduce((F,X)=>F+X.source,"");return RegExp(`^${$}$`)}function A6(...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 K6(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 _A(...D){return($,F)=>{let X={},J;for(J=0;J<D.length;J++)X[D[J]]=O8($[F+J]);return[X,null,F+J]}}var UA=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,Gw=`(?:${UA.source}?(?:\\[(${WA.source})\\])?)?`,uX=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,VA=RegExp(`${uX.source}${Gw}`),mX=RegExp(`(?:[Tt]${VA.source})?`),Yw=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Bw=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Hw=/(\d{4})-?(\d{3})/,Ww=_A("weekYear","weekNumber","weekDay"),_w=_A("year","ordinal"),Uw=/(\d{4})-(\d\d)-(\d\d)/,QA=RegExp(`${uX.source} ?(?:${UA.source}|(${WA.source}))?`),Vw=RegExp(`(?: ${QA.source})?`);function U6(D,$,F){let X=D[$];return n(X)?F:O8(X)}function Qw(D,$){return[{year:U6(D,$),month:U6(D,$+1,1),day:U6(D,$+2,1)},null,$+3]}function E6(D,$){return[{hours:U6(D,$,0),minutes:U6(D,$+1,0),seconds:U6(D,$+2,0),milliseconds:xX(D[$+3])},null,$+4]}function x3(D,$){let F=!D[$]&&!D[$+1],X=C4(D[$+1],D[$+2]),J=F?null:H0.instance(X);return[{},J,$+3]}function y3(D,$){let F=D[$]?S2.create(D[$]):null;return[{},F,$+1]}var Aw=RegExp(`^T?${uX.source}$`),Kw=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/;function Ew(D){let[$,F,X,J,Y,G,B,H,W]=D,U=$[0]==="-",V=H&&H[0]==="-",Q=(K,C=!1)=>K!==void 0&&(C||K&&U)?-K:K;return[{years:Q(G1(F)),months:Q(G1(X)),weeks:Q(G1(J)),days:Q(G1(Y)),hours:Q(G1(G)),minutes:Q(G1(B)),seconds:Q(G1(H),H==="-0"),milliseconds:Q(xX(W),V)}]}var Cw={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function pX(D,$,F,X,J,Y,G){let B={year:$.length===2?SX(O8($)):O8($),month:FA.indexOf(F)+1,day:O8(X),hour:O8(J),minute:O8(Y)};if(G)B.second=O8(G);if(D)B.weekday=D.length>3?JA.indexOf(D)+1:GA.indexOf(D)+1;return B}var Rw=/^(?:(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 Ow(D){let[,$,F,X,J,Y,G,B,H,W,U,V]=D,Q=pX($,J,X,F,Y,G,B),K;if(H)K=Cw[H];else if(W)K=0;else K=C4(U,V);return[Q,new H0(K)]}function Mw(D){return D.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Zw=/^(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$/,qw=/^(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$/,Nw=/^(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 GQ(D){let[,$,F,X,J,Y,G,B]=D;return[pX($,J,X,F,Y,G,B),H0.utcInstance]}function Pw(D){let[,$,F,X,J,Y,G,B]=D;return[pX($,B,F,X,J,Y,G),H0.utcInstance]}var Lw=Q6(Yw,mX),jw=Q6(Bw,mX),zw=Q6(Hw,mX),Iw=Q6(VA),AA=A6(Qw,E6,x3,y3),ww=A6(Ww,E6,x3,y3),Tw=A6(_w,E6,x3,y3),Sw=A6(E6,x3,y3);function bw(D){return K6(D,[Lw,AA],[jw,ww],[zw,Tw],[Iw,Sw])}function fw(D){return K6(Mw(D),[Rw,Ow])}function kw(D){return K6(D,[Zw,GQ],[qw,GQ],[Nw,Pw])}function vw(D){return K6(D,[Kw,Ew])}var gw=A6(E6);function hw(D){return K6(D,[Aw,gw])}var xw=Q6(Uw,Vw),yw=Q6(QA),uw=A6(E6,x3,y3);function mw(D){return K6(D,[xw,AA],[yw,uw])}var YQ="Invalid Duration",KA={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}},pw={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},...KA},g0=365.2425,Y6=30.436875,cw={years:{quarters:4,months:12,weeks:g0/7,days:g0,hours:g0*24,minutes:g0*24*60,seconds:g0*24*60*60,milliseconds:g0*24*60*60*1000},quarters:{months:3,weeks:g0/28,days:g0/4,hours:g0*24/4,minutes:g0*24*60/4,seconds:g0*24*60*60/4,milliseconds:g0*24*60*60*1000/4},months:{weeks:Y6/7,days:Y6,hours:Y6*24,minutes:Y6*24*60,seconds:Y6*24*60*60,milliseconds:Y6*24*60*60*1000},...KA},H1=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],dw=H1.slice(0).reverse();function r2(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 HD(X)}function EA(D,$){var F;let X=(F=$.milliseconds)!=null?F:0;for(let J of dw.slice(1))if($[J])X+=$[J]*D[J].milliseconds;return X}function BQ(D,$){let F=EA(D,$)<0?-1:1;H1.reduceRight((X,J)=>{if(!n($[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),H1.reduce((X,J)=>{if(!n($[J])){if(X){let Y=$[X]%1;$[X]-=Y,$[J]+=Y*D[X][J]}return J}else return X},null)}function HQ(D){let $={};for(let[F,X]of Object.entries(D))if(X!==0)$[F]=X;return $}class HD{constructor(D){let $=D.conversionAccuracy==="longterm"||!1,F=$?cw:pw;if(D.matrix)F=D.matrix;this.values=D.values,this.loc=D.loc||AD.create(),this.conversionAccuracy=$?"longterm":"casual",this.invalid=D.invalid||null,this.matrix=F,this.isLuxonDuration=!0}static fromMillis(D,$){return HD.fromObject({milliseconds:D},$)}static fromObject(D,$={}){if(D==null||typeof D!=="object")throw new $0(`Duration.fromObject: argument expected to be an object, got ${D===null?"null":typeof D}`);return new HD({values:A4(D,HD.normalizeUnit),loc:AD.fromObject($),conversionAccuracy:$.conversionAccuracy,matrix:$.matrix})}static fromDurationLike(D){if(Z8(D))return HD.fromMillis(D);else if(HD.isDuration(D))return D;else if(typeof D==="object")return HD.fromObject(D);else throw new $0(`Unknown duration argument ${D} of type ${typeof D}`)}static fromISO(D,$){let[F]=vw(D);if(F)return HD.fromObject(F,$);else return HD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static fromISOTime(D,$){let[F]=hw(D);if(F)return HD.fromObject(F,$);else return HD.invalid("unparsable",`the input "${D}" can't be parsed as ISO 8601`)}static invalid(D,$=null){if(!D)throw new $0("need to specify a reason the Duration is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new ZQ(F);else return new HD({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 fX(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?B0.create(this.loc,F).formatDurationFromString(this,D):YQ}toHuman(D={}){if(!this.isValid)return YQ;let $=D.showZeros!==!1,F=H1.map((X)=>{let J=this.values[X];if(n(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+=yX(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},r.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 EA(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D),F={};for(let X of H1)if(V6($.values,X)||V6(this.values,X))F[X]=$.get(X)+this.get(X);return r2(this,{values:F},!0)}minus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D);return this.plus($.negate())}mapUnits(D){if(!this.isValid)return this;let $={};for(let F of Object.keys(this.values))$[F]=$A(D(this.values[F],F));return r2(this,{values:$},!0)}get(D){return this[HD.normalizeUnit(D)]}set(D){if(!this.isValid)return this;let $={...this.values,...A4(D,HD.normalizeUnit)};return r2(this,{values:$})}reconfigure({locale:D,numberingSystem:$,conversionAccuracy:F,matrix:X}={}){let Y={loc:this.loc.clone({locale:D,numberingSystem:$}),matrix:X,conversionAccuracy:F};return r2(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),r2(this,{values:D},!0)}rescale(){if(!this.isValid)return this;let D=HQ(this.normalize().shiftToAll().toObject());return r2(this,{values:D},!0)}shiftTo(...D){if(!this.isValid)return this;if(D.length===0)return this;D=D.map((Y)=>HD.normalizeUnit(Y));let $={},F={},X=this.toObject(),J;for(let Y of H1)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(Z8(X[Y]))G+=X[Y];let B=Math.trunc(G);$[Y]=B,F[Y]=(G*1000-B*1000)/1000}else if(Z8(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,$),r2(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 r2(this,{values:D},!0)}removeZeros(){if(!this.isValid)return this;let D=HQ(this.values);return r2(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 H1)if(!$(this.values[F],D.values[F]))return!1;return!0}}var B6="Invalid Interval";function lw(D,$){if(!D||!D.isValid)return SD.invalid("missing or invalid start");else if(!$||!$.isValid)return SD.invalid("missing or invalid end");else if($<D)return SD.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 SD{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 $0("need to specify a reason the Interval is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new MQ(F);else return new SD({invalid:F})}static fromDateTimes(D,$){let F=T3(D),X=T3($),J=lw(F,X);if(J==null)return new SD({start:F,end:X});else return J}static after(D,$){let F=HD.fromDurationLike($),X=T3(D);return SD.fromDateTimes(X,X.plus(F))}static before(D,$){let F=HD.fromDurationLike($),X=T3(D);return SD.fromDateTimes(X.minus(F),X)}static fromISO(D,$){let[F,X]=(D||"").split("/",2);if(F&&X){let J,Y;try{J=r.fromISO(F,$),Y=J.isValid}catch(H){Y=!1}let G,B;try{G=r.fromISO(X,$),B=G.isValid}catch(H){B=!1}if(Y&&B)return SD.fromDateTimes(J,G);if(Y){let H=HD.fromISO(X,$);if(H.isValid)return SD.after(J,H)}else if(B){let H=HD.fromISO(F,$);if(H.isValid)return SD.before(G,H)}}return SD.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 SD.fromDateTimes(D||this.s,$||this.e)}splitAt(...D){if(!this.isValid)return[];let $=D.map(T3).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(SD.fromDateTimes(X,G)),X=G,J+=1}return F}splitBy(D){let $=HD.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(SD.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 SD.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 SD.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(SD.fromDateTimes($,B.time));$=null}return SD.merge(X)}difference(...D){return SD.xor([this].concat(D)).map(($)=>this.intersection($)).filter(($)=>$&&!$.isEmpty())}toString(){if(!this.isValid)return B6;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=U4,$={}){return this.isValid?B0.create(this.s.loc.clone($),D).formatInterval(this):B6}toISO(D){if(!this.isValid)return B6;return`${this.s.toISO(D)}/${this.e.toISO(D)}`}toISODate(){if(!this.isValid)return B6;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(D){if(!this.isValid)return B6;return`${this.s.toISOTime(D)}/${this.e.toISOTime(D)}`}toFormat(D,{separator:$=" \u2013 "}={}){if(!this.isValid)return B6;return`${this.s.toFormat(D)}${$}${this.e.toFormat(D)}`}toDuration(D,$){if(!this.isValid)return HD.invalid(this.invalidReason);return this.e.diff(this.s,D,$)}mapEndpoints(D){return SD.fromDateTimes(D(this.s),D(this.e))}}class W6{static hasDST(D=jD.defaultZone){let $=r.now().setZone(D).set({month:12});return!D.isUniversal&&$.offset!==$.set({month:6}).offset}static isValidIANAZone(D){return S2.isValidZone(D)}static normalizeZone(D){return M8(D,jD.defaultZone)}static getStartOfWeek({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:D=null,locObj:$=null}={}){return($||AD.create(D)).getWeekendDays().slice()}static months(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||AD.create($,F,J)).months(D)}static monthsFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null,outputCalendar:J="gregory"}={}){return(X||AD.create($,F,J)).months(D,!0)}static weekdays(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||AD.create($,F,null)).weekdays(D)}static weekdaysFormat(D="long",{locale:$=null,numberingSystem:F=null,locObj:X=null}={}){return(X||AD.create($,F,null)).weekdays(D,!0)}static meridiems({locale:D=null}={}){return AD.create(D).meridiems()}static eras(D="short",{locale:$=null}={}){return AD.create($,null,"gregory").eras(D)}static features(){return{relative:tQ(),localeWeek:eQ()}}}function WQ(D,$){let F=(J)=>J.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),X=F($)-F(D);return Math.floor(HD.fromMillis(X).as("days"))}function iw(D,$,F){let X=[["years",(H,W)=>W.year-H.year],["quarters",(H,W)=>W.quarter-H.quarter+(W.year-H.year)*4],["months",(H,W)=>W.month-H.month+(W.year-H.year)*12],["weeks",(H,W)=>{let U=WQ(H,W);return(U-U%7)/7}],["days",WQ]],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 nw(D,$,F,X){let[J,Y,G,B]=iw(D,$,F),H=$-J,W=F.filter((V)=>["hours","minutes","seconds","milliseconds"].indexOf(V)>=0);if(W.length===0){if(G<$)G=J.plus({[B]:1});if(G!==J)Y[B]=(Y[B]||0)+H/(G-J)}let U=HD.fromObject(Y,X);if(W.length>0)return HD.fromMillis(H,X).shiftTo(...W).plus(U);else return U}var sw="missing Intl.DateTimeFormat.formatToParts support";function UD(D,$=(F)=>F){return{regex:D,deser:([F])=>$(xI(F))}}var rw=String.fromCharCode(160),CA=`[ ${rw}]`,RA=new RegExp(CA,"g");function ow(D){return D.replace(/\./g,"\\.?").replace(RA,CA)}function _Q(D){return D.replace(/\./g,"").replace(RA," ").toLowerCase()}function Q2(D,$){if(D===null)return null;else return{regex:RegExp(D.map(ow).join("|")),deser:([F])=>D.findIndex((X)=>_Q(F)===_Q(X))+$}}function UQ(D,$){return{regex:D,deser:([,F,X])=>C4(F,X),groups:$}}function G4(D){return{regex:D,deser:([$])=>$}}function aw(D){return D.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function tw(D,$){let F=V2($),X=V2($,"{2}"),J=V2($,"{3}"),Y=V2($,"{4}"),G=V2($,"{6}"),B=V2($,"{1,2}"),H=V2($,"{1,3}"),W=V2($,"{1,6}"),U=V2($,"{1,9}"),V=V2($,"{2,4}"),Q=V2($,"{4,6}"),K=(A)=>({regex:RegExp(aw(A.val)),deser:([Z])=>Z,literal:!0}),E=((A)=>{if(D.literal)return K(A);switch(A.val){case"G":return Q2($.eras("short"),0);case"GG":return Q2($.eras("long"),0);case"y":return UD(W);case"yy":return UD(V,SX);case"yyyy":return UD(Y);case"yyyyy":return UD(Q);case"yyyyyy":return UD(G);case"M":return UD(B);case"MM":return UD(X);case"MMM":return Q2($.months("short",!0),1);case"MMMM":return Q2($.months("long",!0),1);case"L":return UD(B);case"LL":return UD(X);case"LLL":return Q2($.months("short",!1),1);case"LLLL":return Q2($.months("long",!1),1);case"d":return UD(B);case"dd":return UD(X);case"o":return UD(H);case"ooo":return UD(J);case"HH":return UD(X);case"H":return UD(B);case"hh":return UD(X);case"h":return UD(B);case"mm":return UD(X);case"m":return UD(B);case"q":return UD(B);case"qq":return UD(X);case"s":return UD(B);case"ss":return UD(X);case"S":return UD(H);case"SSS":return UD(J);case"u":return G4(U);case"uu":return G4(B);case"uuu":return UD(F);case"a":return Q2($.meridiems(),0);case"kkkk":return UD(Y);case"kk":return UD(V,SX);case"W":return UD(B);case"WW":return UD(X);case"E":case"c":return UD(F);case"EEE":return Q2($.weekdays("short",!1),1);case"EEEE":return Q2($.weekdays("long",!1),1);case"ccc":return Q2($.weekdays("short",!0),1);case"cccc":return Q2($.weekdays("long",!0),1);case"Z":case"ZZ":return UQ(new RegExp(`([+-]${B.source})(?::(${X.source}))?`),2);case"ZZZ":return UQ(new RegExp(`([+-]${B.source})(${X.source})?`),2);case"z":return G4(/[a-z_+-/]{1,256}?/i);case" ":return G4(/[^\S\n\r]/);default:return K(A)}})(D)||{invalidReason:sw};return E.token=D,E}var ew={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 DT(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=ew[G];if(typeof B==="object")B=B[Y];if(B)return{literal:!1,val:B};return}function $T(D){return[`^${D.map((F)=>F.regex).reduce((F,X)=>`${F}(${X.source})`,"")}$`,D]}function FT(D,$,F){let X=D.match($);if(X){let J={},Y=1;for(let G in F)if(V6(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 XT(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(!n(D.z))F=S2.create(D.z);if(!n(D.Z)){if(!F)F=new H0(D.Z);X=D.Z}if(!n(D.q))D.M=(D.q-1)*3+1;if(!n(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(!n(D.u))D.S=xX(D.u);return[Object.keys(D).reduce((Y,G)=>{let B=$(G);if(B)Y[B]=D[G];return Y},{}),F,X]}var CX=null;function JT(){if(!CX)CX=r.fromMillis(1555555555555);return CX}function GT(D,$){if(D.literal)return D;let F=B0.macroTokenToFormatOpts(D.val),X=ZA(F,$);if(X==null||X.includes(void 0))return D;return X}function OA(D,$){return Array.prototype.concat(...D.map((F)=>GT(F,$)))}class cX{constructor(D,$){if(this.locale=D,this.format=$,this.tokens=OA(B0.parseFormat($),D),this.units=this.tokens.map((F)=>tw(F,D)),this.disqualifyingUnit=this.units.find((F)=>F.invalidReason),!this.disqualifyingUnit){let[F,X]=$T(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]=FT(D,this.regex,this.handlers),[X,J,Y]=F?XT(F):[null,null,void 0];if(V6(F,"a")&&V6(F,"H"))throw new B1("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 MA(D,$,F){return new cX(D,F).explainFromTokens($)}function YT(D,$,F){let{result:X,zone:J,specificOffset:Y,invalidReason:G}=MA(D,$,F);return[X,J,Y,G]}function ZA(D,$){if(!D)return null;let X=B0.create($,D).dtFormatter(JT()),J=X.formatToParts(),Y=X.resolvedOptions();return J.map((G)=>DT(G,D,Y))}var RX="Invalid DateTime",VQ=8640000000000000;function b3(D){return new h0("unsupported zone",`the zone "${D.name}" is not supported`)}function OX(D){if(D.weekData===null)D.weekData=V4(D.c);return D.weekData}function MX(D){if(D.localWeekData===null)D.localWeekData=V4(D.c,D.loc.getMinDaysInFirstWeek(),D.loc.getStartOfWeek());return D.localWeekData}function Y1(D,$){let F={ts:D.ts,zone:D.zone,c:D.c,o:D.o,loc:D.loc,invalid:D.invalid};return new r({...F,...$,old:F})}function qA(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 Y4(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 H4(D,$,F){return qA(E4(D),$,F)}function QQ(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,Q4(X,J))+Math.trunc($.days)+Math.trunc($.weeks)*7},G=HD.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=E4(Y),[H,W]=qA(B,F,D.zone);if(G!==0)H+=G,W=D.zone.offset(H);return{ts:H,o:W}}function H6(D,$,F,X,J,Y){let{setZone:G,zone:B}=F;if(D&&Object.keys(D).length!==0||$){let H=$||B,W=r.fromObject(D,{...F,zone:H,specificOffset:Y});return G?W:W.setZone(B)}else return r.invalid(new h0("unparsable",`the input "${J}" can't be parsed as ${X}`))}function B4(D,$,F=!0){return D.isValid?B0.create(AD.create("en-US"),{allowZ:F,forceSimple:!0}).formatDateTimeFromString(D,$):null}function ZX(D,$,F){let X=D.c.year>9999||D.c.year<0,J="";if(X&&D.c.year>=0)J+="+";if(J+=yD(D.c.year,X?6:4),F==="year")return J;if($){if(J+="-",J+=yD(D.c.month),F==="month")return J;J+="-"}else if(J+=yD(D.c.month),F==="month")return J;return J+=yD(D.c.day),J}function AQ(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+=yD(D.c.hour),G==="hour")break;if($){if(H+=":",H+=yD(D.c.minute),G==="minute")break;if(B)H+=":",H+=yD(D.c.second)}else{if(H+=yD(D.c.minute),G==="minute")break;if(B)H+=yD(D.c.second)}if(G==="second")break;if(B&&(!X||D.c.millisecond!==0))H+=".",H+=yD(D.c.millisecond,3)}if(J)if(D.isOffsetFixed&&D.offset===0&&!Y)H+="Z";else if(D.o<0)H+="-",H+=yD(Math.trunc(-D.o/60)),H+=":",H+=yD(Math.trunc(-D.o%60));else H+="+",H+=yD(Math.trunc(D.o/60)),H+=":",H+=yD(Math.trunc(D.o%60));if(Y)H+="["+D.zone.ianaName+"]";return H}var NA={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},BT={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},HT={ordinal:1,hour:0,minute:0,second:0,millisecond:0},W4=["year","month","day","hour","minute","second","millisecond"],WT=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],_T=["year","ordinal","hour","minute","second","millisecond"];function _4(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 fX(D);return $}function KQ(D){switch(D.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return _4(D)}}function UT(D){if(f3===void 0)f3=jD.now();if(D.type!=="iana")return D.offset(f3);let $=D.name,F=bX.get($);if(F===void 0)F=D.offset(f3),bX.set($,F);return F}function EQ(D,$){let F=M8($.zone,jD.defaultZone);if(!F.isValid)return r.invalid(b3(F));let X=AD.fromObject($),J,Y;if(!n(D.year)){for(let H of W4)if(n(D[H]))D[H]=NA[H];let G=oQ(D)||aQ(D);if(G)return r.invalid(G);let B=UT(F);[J,Y]=H4(D,B,F)}else J=jD.now();return new r({ts:J,zone:F,loc:X,o:Y})}function CQ(D,$,F){let X=n(F.round)?!0:F.round,J=n(F.rounding)?"trunc":F.rounding,Y=(B,H)=>{return B=yX(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 RQ(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 f3,bX=new Map;class r{constructor(D){let $=D.zone||jD.defaultZone,F=D.invalid||(Number.isNaN(D.ts)?new h0("invalid input"):null)||(!$.isValid?b3($):null);this.ts=n(D.ts)?jD.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=Z8(D.o)&&!D.old?D.o:$.offset(this.ts);X=Y4(this.ts,G),F=Number.isNaN(X.year)?new h0("invalid input"):null,X=F?null:X,J=F?null:G}this._zone=$,this.loc=D.loc||AD.create(),this.invalid=F,this.weekData=null,this.localWeekData=null,this.c=X,this.o=J,this.isLuxonDateTime=!0}static now(){return new r({})}static local(){let[D,$]=RQ(arguments),[F,X,J,Y,G,B,H]=$;return EQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static utc(){let[D,$]=RQ(arguments),[F,X,J,Y,G,B,H]=$;return D.zone=H0.utcInstance,EQ({year:F,month:X,day:J,hour:Y,minute:G,second:B,millisecond:H},D)}static fromJSDate(D,$={}){let F=cI(D)?D.valueOf():NaN;if(Number.isNaN(F))return r.invalid("invalid input");let X=M8($.zone,jD.defaultZone);if(!X.isValid)return r.invalid(b3(X));return new r({ts:F,zone:X,loc:AD.fromObject($)})}static fromMillis(D,$={}){if(!Z8(D))throw new $0(`fromMillis requires a numerical input, but received a ${typeof D} with value ${D}`);else if(D<-VQ||D>VQ)return r.invalid("Timestamp out of range");else return new r({ts:D,zone:M8($.zone,jD.defaultZone),loc:AD.fromObject($)})}static fromSeconds(D,$={}){if(!Z8(D))throw new $0("fromSeconds requires a numerical input");else return new r({ts:D*1000,zone:M8($.zone,jD.defaultZone),loc:AD.fromObject($)})}static fromObject(D,$={}){D=D||{};let F=M8($.zone,jD.defaultZone);if(!F.isValid)return r.invalid(b3(F));let X=AD.fromObject($),J=A4(D,KQ),{minDaysInFirstWeek:Y,startOfWeek:G}=$Q(J,X),B=jD.now(),H=!n($.specificOffset)?$.specificOffset:F.offset(B),W=!n(J.ordinal),U=!n(J.year),V=!n(J.month)||!n(J.day),Q=U||V,K=J.weekYear||J.weekNumber;if((Q||W)&&K)throw new B1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(V&&W)throw new B1("Can't mix ordinal dates with month/day");let C=K||J.weekday&&!Q,E,A,Z=Y4(B,H);if(C)E=WT,A=BT,Z=V4(Z,Y,G);else if(W)E=_T,A=HT,Z=EX(Z);else E=W4,A=NA;let P=!1;for(let o of E){let _D=J[o];if(!n(_D))P=!0;else if(P)J[o]=A[o];else J[o]=Z[o]}let N=C?uI(J,Y,G):W?mI(J):oQ(J),S=N||aQ(J);if(S)return r.invalid(S);let z=C?eV(J,Y,G):W?DQ(J):J,[L,b]=H4(z,H,F),I=new r({ts:L,zone:F,o:b,loc:X});if(J.weekday&&Q&&D.weekday!==I.weekday)return r.invalid("mismatched weekday",`you can't specify both a weekday of ${J.weekday} and a date of ${I.toISO()}`);if(!I.isValid)return r.invalid(I.invalid);return I}static fromISO(D,$={}){let[F,X]=bw(D);return H6(F,X,$,"ISO 8601",D)}static fromRFC2822(D,$={}){let[F,X]=fw(D);return H6(F,X,$,"RFC 2822",D)}static fromHTTP(D,$={}){let[F,X]=kw(D);return H6(F,X,$,"HTTP",$)}static fromFormat(D,$,F={}){if(n(D)||n($))throw new $0("fromFormat requires an input string and a format");let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0}),[G,B,H,W]=YT(Y,D,$);if(W)return r.invalid(W);else return H6(G,B,F,`format ${$}`,D,H)}static fromString(D,$,F={}){return r.fromFormat(D,$,F)}static fromSQL(D,$={}){let[F,X]=mw(D);return H6(F,X,$,"SQL",D)}static invalid(D,$=null){if(!D)throw new $0("need to specify a reason the DateTime is invalid");let F=D instanceof h0?D:new h0(D,$);if(jD.throwOnInvalid)throw new OQ(F);else return new r({invalid:F})}static isDateTime(D){return D&&D.isLuxonDateTime||!1}static parseFormatForOpts(D,$={}){let F=ZA(D,AD.fromObject($));return!F?null:F.map((X)=>X?X.val:null).join("")}static expandFormat(D,$={}){return OA(B0.parseFormat(D),AD.fromObject($)).map((X)=>X.val).join("")}static resetCache(){f3=void 0,bX.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?OX(this).weekYear:NaN}get weekNumber(){return this.isValid?OX(this).weekNumber:NaN}get weekday(){return this.isValid?OX(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?EX(this.c).ordinal:NaN}get monthShort(){return this.isValid?W6.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?W6.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?W6.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?W6.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=E4(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=Y4(B,Y),U=Y4(H,G);if(W.hour===U.hour&&W.minute===U.minute&&W.second===U.second&&W.millisecond===U.millisecond)return[Y1(this,{ts:B}),Y1(this,{ts:H})];return[this]}get isInLeapYear(){return h3(this.year)}get daysInMonth(){return Q4(this.year,this.month)}get daysInYear(){return this.isValid?_6(this.year):NaN}get weeksInWeekYear(){return this.isValid?v3(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?v3(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(D={}){let{locale:$,numberingSystem:F,calendar:X}=B0.create(this.loc.clone(D),D).resolvedOptions(this);return{locale:$,numberingSystem:F,outputCalendar:X}}toUTC(D=0,$={}){return this.setZone(H0.instance(D),$)}toLocal(){return this.setZone(jD.defaultZone)}setZone(D,{keepLocalTime:$=!1,keepCalendarTime:F=!1}={}){if(D=M8(D,jD.defaultZone),D.equals(this.zone))return this;else if(!D.isValid)return r.invalid(b3(D));else{let X=this.ts;if($||F){let J=D.offset(this.ts),Y=this.toObject();[X]=H4(Y,J,D)}return Y1(this,{ts:X,zone:D})}}reconfigure({locale:D,numberingSystem:$,outputCalendar:F}={}){let X=this.loc.clone({locale:D,numberingSystem:$,outputCalendar:F});return Y1(this,{loc:X})}setLocale(D){return this.reconfigure({locale:D})}set(D){if(!this.isValid)return this;let $=A4(D,KQ),{minDaysInFirstWeek:F,startOfWeek:X}=$Q($,this.loc),J=!n($.weekYear)||!n($.weekNumber)||!n($.weekday),Y=!n($.ordinal),G=!n($.year),B=!n($.month)||!n($.day),H=G||B,W=$.weekYear||$.weekNumber;if((H||Y)&&W)throw new B1("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(B&&Y)throw new B1("Can't mix ordinal dates with month/day");let U;if(J)U=eV({...V4(this.c,F,X),...$},F,X);else if(!n($.ordinal))U=DQ({...EX(this.c),...$});else if(U={...this.toObject(),...$},n($.day))U.day=Math.min(Q4(U.year,U.month),U.day);let[V,Q]=H4(U,this.o,this.zone);return Y1(this,{ts:V,o:Q})}plus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D);return Y1(this,QQ(this,$))}minus(D){if(!this.isValid)return this;let $=HD.fromDurationLike(D).negate();return Y1(this,QQ(this,$))}startOf(D,{useLocaleWeeks:$=!1}={}){if(!this.isValid)return this;let F={},X=HD.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?B0.create(this.loc.redefaultToEN($)).formatDateTimeFromString(this,D):RX}toLocaleString(D=U4,$={}){return this.isValid?B0.create(this.loc.clone($),D).formatDateTime(this):RX}toLocaleParts(D={}){return this.isValid?B0.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=_4(Y);let G=D==="extended",B=ZX(this,G,Y);if(W4.indexOf(Y)>=3)B+="T";return B+=AQ(this,G,$,F,X,J,Y),B}toISODate({format:D="extended",precision:$="day"}={}){if(!this.isValid)return null;return ZX(this,D==="extended",_4($))}toISOWeekDate(){return B4(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=_4(G),(X&&W4.indexOf(G)>=3?"T":"")+AQ(this,Y==="extended",$,D,F,J,G)}toRFC2822(){return B4(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return B4(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return ZX(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 B4(this,X,!0)}toSQL(D={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(D)}`}toString(){return this.isValid?this.toISO():RX}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(D={}){if(!this.isValid)return{};let $={...this.c};if(D.includeConfig)$.outputCalendar=this.outputCalendar,$.numberingSystem=this.loc.numberingSystem,$.locale=this.loc.locale;return $}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(D,$="milliseconds",F={}){if(!this.isValid||!D.isValid)return HD.invalid("created by diffing an invalid DateTime");let X={locale:this.locale,numberingSystem:this.numberingSystem,...F},J=dI($).map(HD.normalizeUnit),Y=D.valueOf()>this.valueOf(),G=Y?this:D,B=Y?D:this,H=nw(G,B,J,X);return Y?H.negate():H}diffNow(D="milliseconds",$={}){return this.diff(r.now(),D,$)}until(D){return this.isValid?SD.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||r.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||r.fromObject({},{zone:this.zone}),this,{...D,numeric:"auto",units:["years","months","days"],calendary:!0})}static min(...D){if(!D.every(r.isDateTime))throw new $0("min requires all arguments be DateTimes");return FQ(D,($)=>$.valueOf(),Math.min)}static max(...D){if(!D.every(r.isDateTime))throw new $0("max requires all arguments be DateTimes");return FQ(D,($)=>$.valueOf(),Math.max)}static fromFormatExplain(D,$,F={}){let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});return MA(Y,D,$)}static fromStringExplain(D,$,F={}){return r.fromFormatExplain(D,$,F)}static buildFormatParser(D,$={}){let{locale:F=null,numberingSystem:X=null}=$,J=AD.fromOpts({locale:F,numberingSystem:X,defaultToEN:!0});return new cX(J,D)}static fromFormatParser(D,$,F={}){if(n(D)||n($))throw new $0("fromFormatParser requires an input string and a format parser");let{locale:X=null,numberingSystem:J=null}=F,Y=AD.fromOpts({locale:X,numberingSystem:J,defaultToEN:!0});if(!Y.equals($.locale))throw new $0(`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 r.invalid(W);else return H6(G,B,F,`format ${$.format}`,D,H)}static get DATE_SHORT(){return U4}static get DATE_MED(){return qQ}static get DATE_MED_WITH_WEEKDAY(){return ZI}static get DATE_FULL(){return NQ}static get DATE_HUGE(){return PQ}static get TIME_SIMPLE(){return LQ}static get TIME_WITH_SECONDS(){return jQ}static get TIME_WITH_SHORT_OFFSET(){return zQ}static get TIME_WITH_LONG_OFFSET(){return IQ}static get TIME_24_SIMPLE(){return wQ}static get TIME_24_WITH_SECONDS(){return TQ}static get TIME_24_WITH_SHORT_OFFSET(){return SQ}static get TIME_24_WITH_LONG_OFFSET(){return bQ}static get DATETIME_SHORT(){return fQ}static get DATETIME_SHORT_WITH_SECONDS(){return kQ}static get DATETIME_MED(){return vQ}static get DATETIME_MED_WITH_SECONDS(){return gQ}static get DATETIME_MED_WITH_WEEKDAY(){return qI}static get DATETIME_FULL(){return hQ}static get DATETIME_FULL_WITH_SECONDS(){return xQ}static get DATETIME_HUGE(){return yQ}static get DATETIME_HUGE_WITH_SECONDS(){return uQ}}function T3(D){if(r.isDateTime(D))return D;else if(D&&D.valueOf&&Z8(D.valueOf()))return r.fromJSDate(D);else if(D&&typeof D==="object")return r.fromObject(D);else throw new $0(`Unknown datetime argument: ${D}, of type ${typeof D}`)}var VT="3.7.2";PA.DateTime=r;PA.Duration=HD;PA.FixedOffsetZone=H0;PA.IANAZone=S2;PA.Info=W6;PA.Interval=SD;PA.InvalidZone=kX;PA.Settings=jD;PA.SystemZone=g3;PA.VERSION=VT;PA.Zone=W1});var M4=f((jA)=>{Object.defineProperty(jA,"__esModule",{value:!0});jA.CronDate=jA.DAYS_IN_MONTH=jA.DateMathOp=jA.TimeUnit=void 0;var _1=LA(),W0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.Day="Day",D.Month="Month",D.Year="Year"})(W0||(jA.TimeUnit=W0={}));var O4;(function(D){D.Add="Add",D.Subtract="Subtract"})(O4||(jA.DateMathOp=O4={}));jA.DAYS_IN_MONTH=Object.freeze([31,29,31,30,31,30,31,31,30,31,30,31]);class C6{#D;#$=null;#X=null;#G={add:{[W0.Year]:this.addYear.bind(this),[W0.Month]:this.addMonth.bind(this),[W0.Day]:this.addDay.bind(this),[W0.Hour]:this.addHour.bind(this),[W0.Minute]:this.addMinute.bind(this),[W0.Second]:this.addSecond.bind(this)},subtract:{[W0.Year]:this.subtractYear.bind(this),[W0.Month]:this.subtractMonth.bind(this),[W0.Day]:this.subtractDay.bind(this),[W0.Hour]:this.subtractHour.bind(this),[W0.Minute]:this.subtractMinute.bind(this),[W0.Second]:this.subtractSecond.bind(this)}};constructor(D,$){let F={zone:$};if(!D)this.#D=_1.DateTime.local();else if(D instanceof C6)this.#D=D.#D,this.#$=D.#$,this.#X=D.#X;else if(D instanceof Date)this.#D=_1.DateTime.fromJSDate(D,F);else if(typeof D==="number")this.#D=_1.DateTime.fromMillis(D,F);else this.#D=_1.DateTime.fromISO(D,F),this.#D.isValid||(this.#D=_1.DateTime.fromRFC2822(D,F)),this.#D.isValid||(this.#D=_1.DateTime.fromSQL(D,F)),this.#D.isValid||(this.#D=_1.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===O4.Add){this.addUnit($);return}if(D===O4.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=C6.#J(this.#D.year);return D===jA.DAYS_IN_MONTH[$-1]-(F?0:1)}return D===jA.DAYS_IN_MONTH[$-1]}isLastWeekdayOfMonth(){let{day:D,month:$}=this.#D,F;if($===2)F=jA.DAYS_IN_MONTH[$-1]-(C6.#J(this.#D.year)?0:1);else F=jA.DAYS_IN_MONTH[$-1];return D>F-7}applyDateOperation(D,$,F){if($===W0.Month||$===W0.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()}}jA.CronDate=C6;jA.default=C6});var SA=f((wA)=>{Object.defineProperty(wA,"__esModule",{value:!0});wA.CronMonth=void 0;var zT=M4(),IT=R8(),wT=1,TT=12,ST=Object.freeze([]);class IA extends IT.CronField{static get min(){return wT}static get max(){return TT}static get chars(){return ST}static get daysInMonth(){return zT.DAYS_IN_MONTH}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}wA.CronMonth=IA});var vA=f((fA)=>{Object.defineProperty(fA,"__esModule",{value:!0});fA.CronSecond=void 0;var bT=R8(),fT=0,kT=59,vT=Object.freeze([]);class bA extends bT.CronField{static get min(){return fT}static get max(){return kT}static get chars(){return vT}constructor(D,$){super(D,$);this.validate()}get values(){return super.values}}fA.CronSecond=bA});var Z4=f((O0)=>{var gT=O0&&O0.__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]}),N8=O0&&O0.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))gT($,D,F)};Object.defineProperty(O0,"__esModule",{value:!0});N8(PV(),O0);N8(TV(),O0);N8(kV(),O0);N8(R8(),O0);N8(xV(),O0);N8(pV(),O0);N8(SA(),O0);N8(vA(),O0)});var dX=f((gA)=>{Object.defineProperty(gA,"__esModule",{value:!0});gA.CronFieldCollection=void 0;var u0=Z4();class R6{#D;#$;#X;#G;#J;#F;static from(D,$){return new R6({second:this.resolveField(u0.CronSecond,D.second,$.second),minute:this.resolveField(u0.CronMinute,D.minute,$.minute),hour:this.resolveField(u0.CronHour,D.hour,$.hour),dayOfMonth:this.resolveField(u0.CronDayOfMonth,D.dayOfMonth,$.dayOfMonth),month:this.resolveField(u0.CronMonth,D.month,$.month),dayOfWeek:this.resolveField(u0.CronDayOfWeek,D.dayOfWeek,$.dayOfWeek)})}static resolveField(D,$,F){if(!F)return $;if(F instanceof u0.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)<=u0.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 u0.CronDayOfWeek){$=6;let J=this.#F.values;F=J[J.length-1]===7?J.slice(0,-1):J}if(D instanceof u0.CronDayOfMonth)$=this.#J.values.length===1?u0.CronMonth.daysInMonth[this.#J.values[0]-1]:D.max;let X=R6.compactField(F);if(X.length===1){let J=R6.#W(D,X[0],$);if(J)return J}return X.map((J)=>{let Y=J.count===1?J.start.toString():R6.#H(J,$);if(D instanceof u0.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()}}}gA.CronFieldCollection=R6});var iX=f((yA)=>{Object.defineProperty(yA,"__esModule",{value:!0});yA.CronExpression=yA.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE=yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE=void 0;var kD=M4();yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE="Out of the time span range";yA.LOOPS_LIMIT_EXCEEDED_ERROR_MESSAGE="Invalid expression, loop limit exceeded";var xA=1e4;class m0{#D;#$;#X;#G;#J;#F;#W=null;#H=!1;constructor(D,$){this.#D=$,this.#$=$.tz,this.#G=$.startDate?new kD.CronDate($.startDate,this.#$):null,this.#J=$.endDate?new kD.CronDate($.endDate,this.#$):null;let F=$.currentDate??$.startDate;if(F){let X=new kD.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 kD.CronDate(F,this.#$),this.#F=D}get fields(){return this.#F}static fieldsToExpression(D,$){return new m0(D,$||{})}static#B(D,$){return $.some((F)=>F===D)}#Y(D,$){return D[$?D.length-1:0]}#U(D){let $=`${D.getFullYear()}-${D.getMonth()+1}-${D.getDate()}`;if(this.#W===$)return this.#H;let F=new kD.CronDate(D);F.setStartOfDay();let X=new kD.CronDate(D);return X.setEndOfDay(),this.#W=$,this.#H=F.getUTCOffset()!==X.getUTCOffset(),this.#H}#V(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($,kD.TimeUnit.Minute,this.#F.hour.values.length),D.setSeconds(this.#Y(X,F))}#_(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($,kD.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 kD.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 kD.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=m0.#B(D.getDate(),this.#F.dayOfMonth.values)||this.#F.dayOfMonth.hasLastChar&&D.isLastDayOfMonth(),G=m0.#B(D.getDay(),this.#F.dayOfWeek.values)||this.#F.dayOfWeek.hasLastChar&&m0.#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=m0.#B(Y,X),B=D.dstStart===Y,H=D.dstEnd===Y;if(B){if(m0.#B(Y-1,X))return!0;return D.invokeDateOperation($,kD.TimeUnit.Hour),!1}if(H&&!F)return D.dstEnd=null,D.applyDateOperation(kD.DateMathOp.Add,kD.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($,kD.TimeUnit.Day,J.length),!1;if(this.#U(D)){let U=F?Y-W:W-Y;for(let V=0;V<U;V++)D.applyDateOperation($,kD.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(yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE);if(this.#J&&$>this.#J.getTime())throw Error(yA.TIME_SPAN_OUT_OF_BOUNDS_ERROR_MESSAGE)}#Q(D=!1){let $=D?kD.DateMathOp.Subtract:kD.DateMathOp.Add,F=new kD.CronDate(this.#X),X=F.getTime(),J=0;while(++J<xA){if(this.#C(F),!this.#A(F)){F.applyDateOperation($,kD.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($,kD.TimeUnit.Day,this.#F.hour.values.length);continue}if(!m0.#B(F.getMonth()+1,this.#F.month.values)){F.applyDateOperation($,kD.TimeUnit.Month,this.#F.hour.values.length);continue}if(!this.#E(F,$,D))continue;if(!m0.#B(F.getMinutes(),this.#F.minute.values)){this.#_(F,$,D);continue}if(!m0.#B(F.getSeconds(),this.#F.second.values)){this.#V(F,$,D);continue}if(X===F.getTime()){if($==="Add"||F.getMilliseconds()===0)F.applyDateOperation($,kD.TimeUnit.Second,this.#F.hour.values.length);continue}break}if(J>xA)throw Error(yA.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()}}}}}yA.CronExpression=m0;yA.default=m0});var cA=f((pA)=>{Object.defineProperty(pA,"__esModule",{value:!0});pA.seededRandom=uT;function xT(D){let $=2166136261;for(let F=0;F<D.length;F++)$^=D.charCodeAt(F),$=Math.imul($,16777619);return()=>$>>>0}function yT(D){return()=>{let $=D+=1831565813;return $=Math.imul($^$>>>15,$|1),$^=$+Math.imul($^$>>>7,$|61),(($^$>>>14)>>>0)/4294967296}}function uT(D){let $=D?xT(D)():Math.floor(Math.random()*10000000000);return yT($)}});var q4=f((dA)=>{Object.defineProperty(dA,"__esModule",{value:!0});dA.CronExpressionParser=dA.DayOfWeek=dA.Months=dA.CronUnit=dA.PredefinedExpressions=void 0;var pT=dX(),cT=iX(),dT=cA(),p0=Z4(),nX;(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"})(nX||(dA.PredefinedExpressions=nX={}));var c0;(function(D){D.Second="Second",D.Minute="Minute",D.Hour="Hour",D.DayOfMonth="DayOfMonth",D.Month="Month",D.DayOfWeek="DayOfWeek"})(c0||(dA.CronUnit=c0={}));var sX;(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"})(sX||(dA.Months=sX={}));var rX;(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"})(rX||(dA.DayOfWeek=rX={}));class M0{static parse(D,$={}){let{strict:F=!1,hashSeed:X}=$,J=(0,dT.seededRandom)(X);D=nX[D]||D;let Y=M0.#D(D,F);if(!(Y.dayOfMonth==="*"||Y.dayOfWeek==="*"||!F))throw Error("Cannot use both dayOfMonth and dayOfWeek together in strict mode!");let G=M0.#$(c0.Second,Y.second,p0.CronSecond.constraints,J),B=M0.#$(c0.Minute,Y.minute,p0.CronMinute.constraints,J),H=M0.#$(c0.Hour,Y.hour,p0.CronHour.constraints,J),W=M0.#$(c0.Month,Y.month,p0.CronMonth.constraints,J),U=M0.#$(c0.DayOfMonth,Y.dayOfMonth,p0.CronDayOfMonth.constraints,J),{dayOfWeek:V,nthDayOfWeek:Q}=M0.#U(Y.dayOfWeek),K=M0.#$(c0.DayOfWeek,V,p0.CronDayOfWeek.constraints,J),C=new pT.CronFieldCollection({second:new p0.CronSecond(G,{rawValue:Y.second}),minute:new p0.CronMinute(B,{rawValue:Y.minute}),hour:new p0.CronHour(H,{rawValue:Y.hour}),dayOfMonth:new p0.CronDayOfMonth(U,{rawValue:Y.dayOfMonth}),month:new p0.CronMonth(W,{rawValue:Y.month}),dayOfWeek:new p0.CronDayOfWeek(K,{rawValue:Y.dayOfWeek,nthDayOfWeek:Q})});return new cT.CronExpression(C,{...$,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===c0.Month||D===c0.DayOfWeek)$=$.replace(/[a-z]{3}/gi,(J)=>{J=J.toLowerCase();let Y=sX[J]||rX[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),U=parseInt(B,10);if(H>W)throw Error(`Invalid range: ${H}-${W}, min > max`);if(U<=0)throw Error(`Invalid step: ${U}, must be positive`);let V=Math.max(H,$.min),Q=Math.floor(X*U),K=[];for(let C=Math.floor(V/U)*U+Q;C<=W;C+=U)if(C>=V)K.push(C);return K.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),U=[];for(let V=Math.floor($.min/H)*H+W;V<=$.max;V+=H)if(V>=$.min)U.push(V);return U.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(M0.#V(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===c0.DayOfWeek?H%7:G)}}return $.split(",").forEach((G)=>{if(!(G.length>0))throw Error("Invalid list value format");J(M0.#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 M0.#Y(D,X[0],parseInt(X[1],10),F)}return M0.#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===c0.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#U(D){let $=D.split("#");if($.length<=1)return{dayOfWeek:$[0]};let F=+$[$.length-1],X=D.match(/([,-/])/);if(X!==null)throw Error(`Constraint error, invalid dayOfWeek \`#\` and \`${X?.[0]}\` special characters are incompatible`);if(!($.length<=2&&!isNaN(F)&&F>=1&&F<=5))throw Error("Constraint error, invalid dayOfWeek occurrence number (#)");return{dayOfWeek:$[0],nthDayOfWeek:F}}static#V(D,$){return D.chars.some((F)=>$.toString().includes(F))}}dA.CronExpressionParser=M0});var iA=f((b2)=>{var rT=b2&&b2.__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]}),oT=b2&&b2.__setModuleDefault||(Object.create?function(D,$){Object.defineProperty(D,"default",{enumerable:!0,value:$})}:function(D,$){D.default=$}),aT=b2&&b2.__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")rT(F,$,X[J])}return oT(F,$),F}}();Object.defineProperty(b2,"__esModule",{value:!0});b2.CronFileParser=void 0;var tT=q4();class m3{static async parseFile(D){let{readFile:$}=await Promise.resolve().then(()=>aT(D8("fs/promises"))),F=await $(D,"utf8");return m3.#D(F)}static parseFileSync(D){let{readFileSync:$}=D8("fs"),F=$(D,"utf8");return m3.#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=m3.#$(J);F.expressions.push(G.interval)}catch(G){F.errors[J]=G}}return F}static#$(D){let $=D.split(" ");return{interval:tT.CronExpressionParser.parse($.slice(0,5).join(" ")),command:$.slice(5,$.length)}}}b2.CronFileParser=m3});var nA=f((oD)=>{var eT=oD&&oD.__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]}),DS=oD&&oD.__exportStar||function(D,$){for(var F in D)if(F!=="default"&&!Object.prototype.hasOwnProperty.call($,F))eT($,D,F)};Object.defineProperty(oD,"__esModule",{value:!0});oD.CronFileParser=oD.CronExpressionParser=oD.CronExpression=oD.CronFieldCollection=oD.CronDate=void 0;var $S=q4(),FS=M4();Object.defineProperty(oD,"CronDate",{enumerable:!0,get:function(){return FS.CronDate}});var XS=dX();Object.defineProperty(oD,"CronFieldCollection",{enumerable:!0,get:function(){return XS.CronFieldCollection}});var JS=iX();Object.defineProperty(oD,"CronExpression",{enumerable:!0,get:function(){return JS.CronExpression}});var GS=q4();Object.defineProperty(oD,"CronExpressionParser",{enumerable:!0,get:function(){return GS.CronExpressionParser}});var YS=iA();Object.defineProperty(oD,"CronFileParser",{enumerable:!0,get:function(){return YS.CronFileParser}});DS(Z4(),oD);oD.default=$S.CronExpressionParser});class p3{deps;handle=null;ticking=!1;constructor(D){this.deps=D}start(D=BS){if(this.handle!==null)return;this.handle=setInterval(()=>{this.tick().catch(($)=>R.warn(`[cron ${this.deps.workerId}] tick failed: ${String($)}`))},D)}stop(){if(this.handle===null)return;clearInterval(this.handle),this.handle=null}async addJob(D){let $=N4(D.expression,new Date),F=crypto.randomUUID(),X=new Date().toISOString(),J=D.enabled??!0,Y=D.accountId??HS;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};p().insert(ZD).values(G).run();let B=p().select().from(ZD).where(u(ZD.id,F)).get();return P4(B)}async listJobs(){return p().select().from(ZD).all().map(P4)}async getJob(D){let $=p().select().from(ZD).where(u(ZD.id,D)).get();return $?P4($):null}async removeJob(D){let $=p();if(!$.select({id:ZD.id}).from(ZD).where(u(ZD.id,D)).get())return{removed:!1};return $.delete(ZD).where(u(ZD.id,D)).run(),{removed:!0}}async updateJob(D,$){let F=p().select().from(ZD).where(u(ZD.id,D)).get();if(!F)return null;let X={updatedAt:new Date().toISOString()},J=!1;if($.expression!==void 0)N4($.expression,new Date),X.expression=$.expression,J=!0;if($.prompt!==void 0)X.prompt=$.prompt;if($.channel!==void 0)X.channel=$.channel;if($.chatId!==void 0)X.chatId=$.chatId;if($.accountId!==void 0){if($.accountId.length===0)throw Error("cron job accountId \u4E0D\u80FD\u4E3A\u7A7A\u5B57\u7B26\u4E32");X.accountId=$.accountId}if($.enabled!==void 0)X.enabled=$.enabled,J=!0;if(J){let G=$.enabled??F.enabled,B=$.expression??F.expression;X.nextRunAt=G?N4(B,new Date).toISOString():null}p().update(ZD).set(X).where(u(ZD.id,D)).run();let Y=p().select().from(ZD).where(u(ZD.id,D)).get();return P4(Y)}async tick(D=new Date){if(this.ticking)return;this.ticking=!0;try{let $=D.toISOString(),F=p().select().from(ZD).where(k0(u(ZD.enabled,!0),q7(ZD.nextRunAt,$))).all();for(let X of F)await this.fireJob(X,D)}finally{this.ticking=!1}}async fireJob(D,$){let F={workerId:this.deps.workerId,channel:D.channel,accountId:D.accountId,chatId:D.chatId,text:D.prompt,receivedAt:$.toISOString(),raw:{source:"cron",jobId:D.id}},X=null;try{X=N4(D.expression,$).toISOString()}catch(Y){R.warn(`[cron ${D.id}] expression "${D.expression}" \u5F02\u5E38\uFF0C\u505C\u6B62\u540E\u7EED\u89E6\u53D1: ${String(Y)}`)}let J=$.toISOString();p().update(ZD).set({lastRunAt:J,nextRunAt:X,updatedAt:J}).where(u(ZD.id,D.id)).run();try{await this.deps.getOrchestrator().ingest(F)}catch(Y){R.warn(`[cron ${D.id}] orchestrator.ingest \u5931\u8D25: ${String(Y)}`)}}}function N4(D,$){return sA.CronExpressionParser.parse(D,{currentDate:$}).next().toDate()}function P4(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 sA,BS=60000,HS="sys:cron";var oX=M(()=>{TD();FD();C0();sA=eM(nA(),1)});class c3{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){R.warn(`[bus] listener for ${F.type} threw:`,J)}}on(D){return this.listeners.add(D),()=>{this.listeners.delete(D)}}}var aX=M(()=>{FD()});import aA from"fs/promises";import WS from"os";import d0 from"path";import L4 from"process";function eA(D=tA){let $=new Map;async function F(H){let W=new Date(D.now()).toISOString(),U=await D.resolveBinary(H.binaryName),V={kind:H.kind,status:"not-found",checkedAt:W};if(H.agent)V.agent=H.agent;if(!U)return{...V,authHint:"binary-not-on-path"};let Q=D.homedir();for(let K of H.authPaths(Q))if(await D.pathExists(K))return{...V,status:"ready",binaryPath:U,authHint:"auth-file-present"};return{...V,status:"login-required",binaryPath:U,authHint:"auth-file-missing"}}async function X(H,W){let U=$.get(H.key);if(!W&&U&&U.expiresAt>D.now())return U.value;let V=await F(H);return $.set(H.key,{value:V,expiresAt:D.now()+_S}),V}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,U=[];for(let V of rA)U.push(J(V));for(let V of oA)U.push(await X(V,W));return U}async function G(H,W={}){let U=W.refresh??!1;if(rA.includes(H))return J(H);let V=oA.filter((K)=>K.kind===H);if(V.length===0)return{kind:H,status:"not-found",checkedAt:new Date(D.now()).toISOString(),authHint:"unknown-engine"};let Q=W.agent?V.find((K)=>K.agent===W.agent)??V[0]:V[0];return X(Q,U)}function B(){$.clear()}return{probe:G,probeAll:Y,clearCache:B}}function j4(){if(!d3)d3=eA();return d3}function DK(D){return d3=eA(D),d3}function tX(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 $K(D,$=tA){let F=$.homedir(),X=D==="gemini"?".gemini":".qwen",J=d0.join(F,X,"oauth_creds.json"),Y=d0.join(F,X,"settings.json");if(await $.pathExists(J))return tX("login","oauth_creds.json present");if(await $.pathExists(Y))return tX("install","settings.json present, login pending");return tX("none",`~/${X} not present`)}function FK(){return $K("gemini")}function XK(){return $K("qwen")}async function US(D){let $=L4.env.PATH??"",F=L4.platform==="win32"?";":":",X=L4.platform==="win32"?(L4.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=d0.join(J,`${D}${Y.toLowerCase()}`);try{if((await aA.stat(G)).isFile())return G}catch{}}}return null}async function VS(D){try{return await aA.stat(D),!0}catch{return!1}}var _S=600000,tA,rA,oA,d3=null;var z4=M(()=>{tA={resolveBinary:US,pathExists:VS,homedir:()=>WS.homedir(),now:()=>Date.now()},rA=["http","mcp","cli"],oA=[{key:"claude-code",kind:"claude-code",binaryName:"claude",authPaths:(D)=>[d0.join(D,".claude.json"),d0.join(D,".claude","config.json")]},{key:"acp:gemini",kind:"acp",agent:"gemini",binaryName:"gemini",authPaths:(D)=>[d0.join(D,".gemini","oauth_creds.json")]},{key:"acp:qwen",kind:"acp",agent:"qwen",binaryName:"qwen",authPaths:(D)=>[d0.join(D,".qwen","oauth_creds.json"),d0.join(D,".qwen","settings.json")]},{key:"codex",kind:"codex",binaryName:"codex",authPaths:(D)=>[d0.join(D,".codex","auth.json")]},{key:"cursor",kind:"cursor",binaryName:"cursor-agent",authPaths:(D)=>[d0.join(D,".cursor","cli-config.json"),d0.join(D,".cursor-agent","auth.json"),d0.join(D,".cursor","auth.json")]}]});class eX{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!==QS){R.warn(`[gateway-client ${this.deps.options.workerId}] send dropped: socket not open`);return}try{$.send(ID(D))}catch(F){R.warn(`[gateway-client ${this.deps.options.workerId}] send failed: ${String(F)}`)}}openSocket(){let{url:D,workerId:$}=this.deps.options;R.info(`[gateway-client ${$}] connecting to ${D}`);let F;try{F=new this.WebSocketCtor(D)}catch(X){R.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:c8.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(ID(Y))}catch(G){R.warn(`[gateway-client ${$}] connect frame send failed: ${String(G)}`);return}this.reconnectDelay=this.deps.options.initialReconnectDelayMs,R.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=d8(J);if(!Y.ok){R.warn(`[gateway-client ${$}] drop malformed frame: ${Y.error}`);return}let G=Y.frame;if(G.type==="event"&&G.name===s.ENROLLMENT_OTP){let B=$7.safeParse(G.payload);if(!B.success){R.warn(`[gateway-client ${$}] enrollment.otp payload invalid: ${B.error.message}`);return}try{this.deps.onEnrollmentOtp?.(B.data)}catch(H){R.error(`[gateway-client ${$}] onEnrollmentOtp threw: ${String(H)}`)}return}if(G.type==="event"&&G.name===s.ENROLLMENT_APPROVED){let B=F7.safeParse(G.payload);if(!B.success){R.warn(`[gateway-client ${$}] enrollment.approved payload invalid: ${B.error.message}`);return}this.enrolledViaOtp=!0;try{this.deps.onEnrollmentApproved?.(B.data)}catch(H){R.error(`[gateway-client ${$}] onEnrollmentApproved threw: ${String(H)}`)}return}try{this.deps.onFrame(G)}catch(B){R.error(`[gateway-client ${$}] onFrame threw: ${String(B)}`)}},F.onerror=(X)=>{R.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){R.info(`[gateway-client ${this.deps.options.workerId}] reconnect disabled, giving up`);return}let D=Math.min(this.reconnectDelay,this.deps.options.maxReconnectDelayMs);R.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 QS=1;var JK=M(()=>{eD();FD()});function GK(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 WD=f((ZS)=>{var DJ=Symbol.for("yaml.alias"),YK=Symbol.for("yaml.document"),I4=Symbol.for("yaml.map"),BK=Symbol.for("yaml.pair"),$J=Symbol.for("yaml.scalar"),w4=Symbol.for("yaml.seq"),a2=Symbol.for("yaml.node.type"),AS=(D)=>!!D&&typeof D==="object"&&D[a2]===DJ,KS=(D)=>!!D&&typeof D==="object"&&D[a2]===YK,ES=(D)=>!!D&&typeof D==="object"&&D[a2]===I4,CS=(D)=>!!D&&typeof D==="object"&&D[a2]===BK,HK=(D)=>!!D&&typeof D==="object"&&D[a2]===$J,RS=(D)=>!!D&&typeof D==="object"&&D[a2]===w4;function WK(D){if(D&&typeof D==="object")switch(D[a2]){case I4:case w4:return!0}return!1}function OS(D){if(D&&typeof D==="object")switch(D[a2]){case DJ:case I4:case $J:case w4:return!0}return!1}var MS=(D)=>(HK(D)||WK(D))&&!!D.anchor;ZS.ALIAS=DJ;ZS.DOC=YK;ZS.MAP=I4;ZS.NODE_TYPE=a2;ZS.PAIR=BK;ZS.SCALAR=$J;ZS.SEQ=w4;ZS.hasAnchor=MS;ZS.isAlias=AS;ZS.isCollection=WK;ZS.isDocument=KS;ZS.isMap=ES;ZS.isNode=OS;ZS.isPair=CS;ZS.isScalar=HK;ZS.isSeq=RS});var l3=f((xS)=>{var cD=WD(),Z0=Symbol("break visit"),_K=Symbol("skip children"),f2=Symbol("remove node");function T4(D,$){let F=UK($);if(cD.isDocument(D)){if(O6(null,D.contents,F,Object.freeze([D]))===f2)D.contents=null}else O6(null,D,F,Object.freeze([]))}T4.BREAK=Z0;T4.SKIP=_K;T4.REMOVE=f2;function O6(D,$,F,X){let J=VK(D,$,F,X);if(cD.isNode(J)||cD.isPair(J))return QK(D,X,J),O6(D,J,F,X);if(typeof J!=="symbol"){if(cD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=O6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===Z0)return Z0;else if(G===f2)$.items.splice(Y,1),Y-=1}}else if(cD.isPair($)){X=Object.freeze(X.concat($));let Y=O6("key",$.key,F,X);if(Y===Z0)return Z0;else if(Y===f2)$.key=null;let G=O6("value",$.value,F,X);if(G===Z0)return Z0;else if(G===f2)$.value=null}}return J}async function S4(D,$){let F=UK($);if(cD.isDocument(D)){if(await M6(null,D.contents,F,Object.freeze([D]))===f2)D.contents=null}else await M6(null,D,F,Object.freeze([]))}S4.BREAK=Z0;S4.SKIP=_K;S4.REMOVE=f2;async function M6(D,$,F,X){let J=await VK(D,$,F,X);if(cD.isNode(J)||cD.isPair(J))return QK(D,X,J),M6(D,J,F,X);if(typeof J!=="symbol"){if(cD.isCollection($)){X=Object.freeze(X.concat($));for(let Y=0;Y<$.items.length;++Y){let G=await M6(Y,$.items[Y],F,X);if(typeof G==="number")Y=G-1;else if(G===Z0)return Z0;else if(G===f2)$.items.splice(Y,1),Y-=1}}else if(cD.isPair($)){X=Object.freeze(X.concat($));let Y=await M6("key",$.key,F,X);if(Y===Z0)return Z0;else if(Y===f2)$.key=null;let G=await M6("value",$.value,F,X);if(G===Z0)return Z0;else if(G===f2)$.value=null}}return J}function UK(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 VK(D,$,F,X){if(typeof F==="function")return F(D,$,X);if(cD.isMap($))return F.Map?.(D,$,X);if(cD.isSeq($))return F.Seq?.(D,$,X);if(cD.isPair($))return F.Pair?.(D,$,X);if(cD.isScalar($))return F.Scalar?.(D,$,X);if(cD.isAlias($))return F.Alias?.(D,$,X);return}function QK(D,$,F){let X=$[$.length-1];if(cD.isCollection(X))X.items[D]=F;else if(cD.isPair(X))if(D==="key")X.key=F;else X.value=F;else if(cD.isDocument(X))X.contents=F;else{let J=cD.isAlias(X)?"alias":"scalar";throw Error(`Cannot replace node with ${J} parent`)}}xS.visit=T4;xS.visitAsync=S4});var FJ=f((dS)=>{var AK=WD(),mS=l3(),pS={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},cS=(D)=>D.replace(/[!,[\]{}]/g,($)=>pS[$]);class l0{constructor(D,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},l0.defaultYaml,D),this.tags=Object.assign({},l0.defaultTags,$)}clone(){let D=new l0(this.yaml,this.tags);return D.docStart=this.docStart,D}atDocument(){let D=new l0(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:l0.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},l0.defaultTags);break}return D}add(D,$){if(this.atNextDocument)this.yaml={explicit:l0.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},l0.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 $+cS(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&&AK.isNode(D.contents)){let J={};mS.visit(D.contents,(Y,G)=>{if(AK.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
+ `)}}l0.defaultYaml={explicit:!1,version:"1.2"};l0.defaultTags={"!!":"tag:yaml.org,2002:"};dS.Directives=l0});var b4=f((rS)=>{var KK=WD(),iS=l3();function nS(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 EK(D){let $=new Set;return iS.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 sS(D,$){let F=[],X=new Map,J=null;return{onAnchor:(Y)=>{F.push(Y),J??(J=EK(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&&(KK.isScalar(G.node)||KK.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}}rS.anchorIsValid=nS;rS.anchorNames=EK;rS.createNodeAnchors=sS;rS.findNewAnchor=CK});var XJ=f((Db)=>{function i3(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=i3(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=i3(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=i3(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=i3(D,X,J,Y);if(G===void 0)delete X[J];else if(G!==Y)X[J]=G}return D.call($,F,X)}Db.applyReviver=i3});var P8=f((Xb)=>{var Fb=WD();function RK(D,$,F){if(Array.isArray(D))return D.map((X,J)=>RK(X,String(J),F));if(D&&typeof D.toJSON==="function"){if(!F||!Fb.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}Xb.toJS=RK});var f4=f((Bb)=>{var Gb=XJ(),OK=WD(),Yb=P8();class MK{constructor(D){Object.defineProperty(this,OK.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(!OK.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=Yb.toJS(this,"",Y);if(typeof X==="function")for(let{count:B,res:H}of Y.anchors.values())X(H,B);return typeof J==="function"?Gb.applyReviver(J,{"":G},"",G):G}}Bb.NodeBase=MK});var n3=f((Qb)=>{var Wb=b4(),_b=l3(),Z6=WD(),Ub=f4(),Vb=P8();class ZK extends Ub.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=[],_b.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)Vb.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=k4(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(Wb.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 k4(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=k4(D,J,F);if(Y>X)X=Y}return X}else if(Z6.isPair($)){let X=k4(D,$.key,F),J=k4(D,$.value,F);return Math.max(X,J)}return 1}Qb.Alias=ZK});var uD=f((Ob)=>{var Kb=WD(),Eb=f4(),Cb=P8(),Rb=(D)=>!D||typeof D!=="function"&&typeof D!=="object";class U1 extends Eb.NodeBase{constructor(D){super(Kb.SCALAR);this.value=D}toJSON(D,$){return $?.keep?this.value:Cb.toJS(this.value,D,$)}toString(){return String(this.value)}}U1.BLOCK_FOLDED="BLOCK_FOLDED";U1.BLOCK_LITERAL="BLOCK_LITERAL";U1.PLAIN="PLAIN";U1.QUOTE_DOUBLE="QUOTE_DOUBLE";U1.QUOTE_SINGLE="QUOTE_SINGLE";Ob.Scalar=U1;Ob.isScalarValue=Rb});var s3=f((jb)=>{var qb=n3(),V1=WD(),qK=uD(),Nb="tag:yaml.org,2002:";function Pb(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 Lb(D,$,F){if(V1.isDocument(D))D=D.contents;if(V1.isNode(D))return D;if(V1.isPair(D)){let V=F.schema[V1.MAP].createNode?.(F.schema,null,F);return V.items.push(D),V}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 qb.Alias(H.anchor);else H={anchor:null,node:null},B.set(D,H);if($?.startsWith("!!"))$=Nb+$.slice(2);let W=Pb(D,$,G.tags);if(!W){if(D&&typeof D.toJSON==="function")D=D.toJSON();if(!D||typeof D!=="object"){let V=new qK.Scalar(D);if(H)H.node=V;return V}W=D instanceof Map?G[V1.MAP]:(Symbol.iterator in Object(D))?G[V1.SEQ]:G[V1.MAP]}if(Y)Y(W),delete F.onTagObj;let U=W?.createNode?W.createNode(F.schema,D,F):typeof W?.nodeClass?.from==="function"?W.nodeClass.from(F.schema,D,F):new qK.Scalar(D);if($)U.tag=$;else if(!W.default)U.tag=W.tag;if(H)H.node=U;return U}jb.createNode=Lb});var v4=f((Tb)=>{var Ib=s3(),k2=WD(),wb=f4();function JJ(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 Ib.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 NK=(D)=>D==null||typeof D==="object"&&!!D[Symbol.iterator]().next().done;class PK extends wb.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)=>k2.isNode(F)||k2.isPair(F)?F.clone(D):F),this.range)$.range=this.range.slice();return $}addIn(D,$){if(NK(D))this.add($);else{let[F,...X]=D,J=this.get(F,!0);if(k2.isCollection(J))J.addIn(X,$);else if(J===void 0&&this.schema)this.set(F,JJ(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(k2.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!$&&k2.isScalar(J)?J.value:J;else return k2.isCollection(J)?J.getIn(X,$):void 0}hasAllNullValues(D){return this.items.every(($)=>{if(!k2.isPair($))return!1;let F=$.value;return F==null||D&&k2.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 k2.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(k2.isCollection(J))J.setIn(X,$);else if(J===void 0&&this.schema)this.set(F,JJ(this.schema,X,$));else throw Error(`Expected YAML collection at ${F}. Remaining path: ${X}`)}}}Tb.Collection=PK;Tb.collectionFromPath=JJ;Tb.isEmptyPath=NK});var r3=f((gb)=>{var kb=(D)=>D.replace(/^(?!$)(?: $)?/gm,"#");function GJ(D,$){if(/^\n+$/.test(D))return D.substring(1);return $?D.replace(/^(?! *$)/gm,$):D}var vb=(D,$,F)=>D.endsWith(`
117
117
  `)?GJ(F,$):F.includes(`
118
118
  `)?`
119
- `+GJ(F,$):(D.endsWith(" ")?"":" ")+F;fb.indentComment=GJ;fb.lineComment=bb;fb.stringifyComment=Sb});var jK=f((xb)=>{function hb(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={},V=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,Y))W.push(0);else V=J-X;let Q=void 0,K=void 0,C=!1,E=-1,A=-1,Z=-1;if(F==="block"){if(E=LK(D,E,$.length),E!==-1)V=E+H}for(let N;N=D[E+=1];){if(F==="quoted"&&N==="\\"){switch(A=E,D[E+1]){case"x":E+=3;break;case"u":E+=5;break;case"U":E+=9;break;default:E+=1}Z=E}if(N===`
119
+ `+GJ(F,$):(D.endsWith(" ")?"":" ")+F;gb.indentComment=GJ;gb.lineComment=vb;gb.stringifyComment=kb});var jK=f((mb)=>{function ub(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={},V=J-$.length;if(typeof X==="number")if(X>J-Math.max(2,Y))W.push(0);else V=J-X;let Q=void 0,K=void 0,C=!1,E=-1,A=-1,Z=-1;if(F==="block"){if(E=LK(D,E,$.length),E!==-1)V=E+H}for(let N;N=D[E+=1];){if(F==="quoted"&&N==="\\"){switch(A=E,D[E+1]){case"x":E+=3;break;case"u":E+=5;break;case"U":E+=9;break;default:E+=1}Z=E}if(N===`
120
120
  `){if(F==="block")E=LK(D,E,$.length);V=E+$.length+H,Q=void 0}else{if(N===" "&&K&&K!==" "&&K!==`
121
121
  `&&K!=="\t"){let S=D[E+1];if(S&&S!==" "&&S!==`
122
- `&&S!=="\t")Q=E}if(E>=V)if(Q)W.push(Q),V=Q+H,Q=void 0;else if(F==="quoted"){while(K===" "||K==="\t")K=N,N=D[E+=1],C=!0;let S=E>Z+1?E-2:A-1;if(U[S])return D;W.push(S),U[S]=!0,V=S+H,Q=void 0}else C=!0}K=N}if(C&&B)B();if(W.length===0)return D;if(G)G();let L=D.slice(0,W[0]);for(let N=0;N<W.length;++N){let S=W[N],z=W[N+1]||D.length;if(S===0)L=`
123
- ${$}${D.slice(0,z)}`;else{if(F==="quoted"&&U[S])L+=`${D[S]}\\`;L+=`
124
- ${$}${D.slice(S+1,z)}`}}return L}function LK(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}xb.FOLD_BLOCK="block";xb.FOLD_FLOW="flow";xb.FOLD_QUOTED="quoted";xb.foldFlowLines=hb});var a3=f((ib)=>{var K2=uD(),L8=jK(),h4=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),x4=(D)=>/^(%|---|\.\.\.)/m.test(D);function cb(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]===`
122
+ `&&S!=="\t")Q=E}if(E>=V)if(Q)W.push(Q),V=Q+H,Q=void 0;else if(F==="quoted"){while(K===" "||K==="\t")K=N,N=D[E+=1],C=!0;let S=E>Z+1?E-2:A-1;if(U[S])return D;W.push(S),U[S]=!0,V=S+H,Q=void 0}else C=!0}K=N}if(C&&B)B();if(W.length===0)return D;if(G)G();let P=D.slice(0,W[0]);for(let N=0;N<W.length;++N){let S=W[N],z=W[N+1]||D.length;if(S===0)P=`
123
+ ${$}${D.slice(0,z)}`;else{if(F==="quoted"&&U[S])P+=`${D[S]}\\`;P+=`
124
+ ${$}${D.slice(S+1,z)}`}}return P}function LK(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}mb.FOLD_BLOCK="block";mb.FOLD_FLOW="flow";mb.FOLD_QUOTED="quoted";mb.foldFlowLines=ub});var a3=f((rb)=>{var K2=uD(),L8=jK(),h4=(D,$)=>({indentAtStart:$?D.indent.length:D.indentAtStart,lineWidth:D.options.lineWidth,minContentWidth:D.options.minContentWidth}),x4=(D)=>/^(%|---|\.\.\.)/m.test(D);function ib(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
126
  `){if(Y-G>X)return!0;if(G=Y+1,J-G<=X)return!1}return!0}function o3(D,$){let F=JSON.stringify(D);if($.options.doubleQuotedAsJSON)return F;let{implicitKey:X}=$,J=$.options.doubleQuotedMinMultiLineLength,Y=$.indent||(x4(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 U=F.substr(H+2,4);switch(U){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(U.substr(0,2)==="00")G+="\\x"+U.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+=`
@@ -131,58 +131,58 @@ ${$}${D.slice(S+1,z)}`}}return L}function LK(D,$,F){let X=$,J=$+1,Y=D[J];while(Y
131
131
  ${F}`)+"'";return $.implicitKey?X:L8.foldFlowLines(X,F,L8.FOLD_FLOW,h4($,!1))}function q6(D,$){let{singleQuote:F}=$.options,X;if(F===!1)X=o3;else{let J=D.includes('"'),Y=D.includes("'");if(J&&!Y)X=YJ;else if(Y&&!J)X=o3;else X=F?YJ:o3}return X(D,$)}var BJ;try{BJ=new RegExp(`(^|(?<!
132
132
  ))
133
133
  +(?!
134
- |$)`,"g")}catch{BJ=/\n+(?!\n|$)/g}function g4({comment:D,type:$,value:F},X,J,Y){let{blockQuote:G,commentString:B,lineWidth:H}=X.options;if(!G||/\n[\t ]+$/.test(F))return q6(F,X);let W=X.indent||(X.forceBlockIndent||x4(F)?" ":""),U=G==="literal"?!0:G==="folded"||$===K2.Scalar.BLOCK_FOLDED?!1:$===K2.Scalar.BLOCK_LITERAL?!0:!cb(F,H,W.length);if(!F)return U?`|
134
+ |$)`,"g")}catch{BJ=/\n+(?!\n|$)/g}function g4({comment:D,type:$,value:F},X,J,Y){let{blockQuote:G,commentString:B,lineWidth:H}=X.options;if(!G||/\n[\t ]+$/.test(F))return q6(F,X);let W=X.indent||(X.forceBlockIndent||x4(F)?" ":""),U=G==="literal"?!0:G==="folded"||$===K2.Scalar.BLOCK_FOLDED?!1:$===K2.Scalar.BLOCK_LITERAL?!0:!ib(F,H,W.length);if(!F)return U?`|
135
135
  `:`>
136
136
  `;let V,Q;for(Q=F.length;Q>0;--Q){let z=F[Q-1];if(z!==`
137
137
  `&&z!=="\t"&&z!==" ")break}let K=F.substring(Q),C=K.indexOf(`
138
138
  `);if(C===-1)V="-";else if(F===K||C!==K.length-1){if(V="+",Y)Y()}else V="";if(K){if(F=F.slice(0,-K.length),K[K.length-1]===`
139
139
  `)K=K.slice(0,-1);K=K.replace(BJ,`$&${W}`)}let E=!1,A,Z=-1;for(A=0;A<F.length;++A){let z=F[A];if(z===" ")E=!0;else if(z===`
140
- `)Z=A;else break}let L=F.substring(0,Z<A?Z+1:A);if(L)F=F.substring(L.length),L=L.replace(/\n+/g,`$&${W}`);let S=(E?W?"2":"1":"")+V;if(D){if(S+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!U){let z=F.replace(/\n+/g,`
141
- $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),P=!1,b=h4(X,!0);if(G!=="folded"&&$!==K2.Scalar.BLOCK_FOLDED)b.onOverflow=()=>{P=!0};let I=L8.foldFlowLines(`${L}${z}${K}`,W,L8.FOLD_BLOCK,b);if(!P)return`>${S}
140
+ `)Z=A;else break}let P=F.substring(0,Z<A?Z+1:A);if(P)F=F.substring(P.length),P=P.replace(/\n+/g,`$&${W}`);let S=(E?W?"2":"1":"")+V;if(D){if(S+=" "+B(D.replace(/ ?[\r\n]+/g," ")),J)J()}if(!U){let z=F.replace(/\n+/g,`
141
+ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${W}`),L=!1,b=h4(X,!0);if(G!=="folded"&&$!==K2.Scalar.BLOCK_FOLDED)b.onOverflow=()=>{L=!0};let I=L8.foldFlowLines(`${P}${z}${K}`,W,L8.FOLD_BLOCK,b);if(!L)return`>${S}
142
142
  ${W}${I}`}return F=F.replace(/\n+/g,`$&${W}`),`|${S}
143
- ${W}${L}${F}${K}`}function db(D,$,F,X){let{type:J,value:Y}=D,{actualString:G,implicitKey:B,indent:H,indentStep:W,inFlow:U}=$;if(B&&Y.includes(`
143
+ ${W}${P}${F}${K}`}function nb(D,$,F,X){let{type:J,value:Y}=D,{actualString:G,implicitKey:B,indent:H,indentStep:W,inFlow:U}=$;if(B&&Y.includes(`
144
144
  `)||U&&/[[\]{},]/.test(Y))return q6(Y,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(Y))return B||U||!Y.includes(`
145
145
  `)?q6(Y,$):g4(D,$,F,X);if(!B&&!U&&J!==K2.Scalar.PLAIN&&Y.includes(`
146
146
  `))return g4(D,$,F,X);if(x4(Y)){if(H==="")return $.forceBlockIndent=!0,g4(D,$,F,X);else if(B&&H===W)return q6(Y,$)}let V=Y.replace(/\n+/g,`$&
147
- ${H}`);if(G){let Q=(E)=>E.default&&E.tag!=="tag:yaml.org,2002:str"&&E.test?.test(V),{compat:K,tags:C}=$.doc.schema;if(C.some(Q)||K?.some(Q))return q6(Y,$)}return B?V:L8.foldFlowLines(V,H,L8.FOLD_FLOW,h4($,!1))}function lb(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!==K2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(G.value))B=K2.Scalar.QUOTE_DOUBLE}let H=(U)=>{switch(U){case K2.Scalar.BLOCK_FOLDED:case K2.Scalar.BLOCK_LITERAL:return J||Y?q6(G.value,$):g4(G,$,F,X);case K2.Scalar.QUOTE_DOUBLE:return o3(G.value,$);case K2.Scalar.QUOTE_SINGLE:return YJ(G.value,$);case K2.Scalar.PLAIN:return db(G,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:U,defaultStringType:V}=$.options,Q=J&&U||V;if(W=H(Q),W===null)throw Error(`Unsupported default string type ${Q}`)}return W}ib.stringifyString=lb});var t3=f(($f)=>{var sb=b4(),j8=WD(),rb=r3(),ob=a3();function ab(D,$){let F=Object.assign({blockQuote:!0,commentString:rb.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 tb(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(j8.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 eb(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],Y=(j8.isScalar(D)||j8.isCollection(D))&&D.anchor;if(Y&&sb.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 Df(D,$,F,X){if(j8.isPair(D))return D.toString($,F,X);if(j8.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=j8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=tb($.doc.schema.tags,Y));let G=eb(Y,J,$);if(G.length>0)$.indentAtStart=($.indentAtStart??0)+G.length+1;let B=typeof J.stringify==="function"?J.stringify(Y,$,F,X):j8.isScalar(Y)?ob.stringifyString(Y,$,F,X):Y.toString($,F,X);if(!G)return B;return j8.isScalar(Y)||B[0]==="{"||B[0]==="["?`${G} ${B}`:`${G}
148
- ${$.indent}${B}`}$f.createStringifyContext=ab;$f.stringify=Df});var wK=f((Gf)=>{var t2=WD(),zK=uD(),IK=t3(),e3=r3();function Jf({key:D,value:$},F,X,J){let{allNullValues:Y,doc:G,indent:B,indentStep:H,options:{commentString:W,indentSeq:U,simpleKeys:V}}=F,Q=t2.isNode(D)&&D.comment||null;if(V){if(Q)throw Error("With simple keys, key nodes cannot have comments");if(t2.isCollection(D)||!t2.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let K=!V&&(!D||Q&&$==null&&!F.inFlow||t2.isCollection(D)||(t2.isScalar(D)?D.type===zK.Scalar.BLOCK_FOLDED||D.type===zK.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!K&&(V||!Y),indent:B+H});let C=!1,E=!1,A=IK.stringify(D,F,()=>C=!0,()=>E=!0);if(!K&&!F.inFlow&&A.length>1024){if(V)throw Error("With simple keys, single line scalar must not span more than 1024 characters");K=!0}if(F.inFlow){if(Y||$==null){if(C&&X)X();return A===""?"?":K?`? ${A}`:A}}else if(Y&&!V||$==null&&K){if(A=`? ${A}`,Q&&!C)A+=e3.lineComment(A,F.indent,W(Q));else if(E&&J)J();return A}if(C)Q=null;if(K){if(Q)A+=e3.lineComment(A,F.indent,W(Q));A=`? ${A}
149
- ${B}:`}else if(A=`${A}:`,Q)A+=e3.lineComment(A,F.indent,W(Q));let Z,L,N;if(t2.isNode($))Z=!!$.spaceBefore,L=$.commentBefore,N=$.comment;else if(Z=!1,L=null,N=null,$&&typeof $==="object")$=G.createNode($);if(F.implicitKey=!1,!K&&!Q&&t2.isScalar($))F.indentAtStart=A.length+1;if(E=!1,!U&&H.length>=2&&!F.inFlow&&!K&&t2.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,z=IK.stringify($,F,()=>S=!0,()=>E=!0),P=" ";if(Q||Z||L){if(P=Z?`
150
- `:"",L){let b=W(L);P+=`
151
- ${e3.indentComment(b,F.indent)}`}if(z===""&&!F.inFlow){if(P===`
152
- `&&N)P=`
147
+ ${H}`);if(G){let Q=(E)=>E.default&&E.tag!=="tag:yaml.org,2002:str"&&E.test?.test(V),{compat:K,tags:C}=$.doc.schema;if(C.some(Q)||K?.some(Q))return q6(Y,$)}return B?V:L8.foldFlowLines(V,H,L8.FOLD_FLOW,h4($,!1))}function sb(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!==K2.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(G.value))B=K2.Scalar.QUOTE_DOUBLE}let H=(U)=>{switch(U){case K2.Scalar.BLOCK_FOLDED:case K2.Scalar.BLOCK_LITERAL:return J||Y?q6(G.value,$):g4(G,$,F,X);case K2.Scalar.QUOTE_DOUBLE:return o3(G.value,$);case K2.Scalar.QUOTE_SINGLE:return YJ(G.value,$);case K2.Scalar.PLAIN:return nb(G,$,F,X);default:return null}},W=H(B);if(W===null){let{defaultKeyType:U,defaultStringType:V}=$.options,Q=J&&U||V;if(W=H(Q),W===null)throw Error(`Unsupported default string type ${Q}`)}return W}rb.stringifyString=sb});var t3=f((Jf)=>{var ab=b4(),j8=WD(),tb=r3(),eb=a3();function Df(D,$){let F=Object.assign({blockQuote:!0,commentString:tb.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 $f(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(j8.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 Ff(D,$,{anchors:F,doc:X}){if(!X.directives)return"";let J=[],Y=(j8.isScalar(D)||j8.isCollection(D))&&D.anchor;if(Y&&ab.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 Xf(D,$,F,X){if(j8.isPair(D))return D.toString($,F,X);if(j8.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=j8.isNode(D)?D:$.doc.createNode(D,{onTagObj:(H)=>J=H});J??(J=$f($.doc.schema.tags,Y));let G=Ff(Y,J,$);if(G.length>0)$.indentAtStart=($.indentAtStart??0)+G.length+1;let B=typeof J.stringify==="function"?J.stringify(Y,$,F,X):j8.isScalar(Y)?eb.stringifyString(Y,$,F,X):Y.toString($,F,X);if(!G)return B;return j8.isScalar(Y)||B[0]==="{"||B[0]==="["?`${G} ${B}`:`${G}
148
+ ${$.indent}${B}`}Jf.createStringifyContext=Df;Jf.stringify=Xf});var wK=f((Hf)=>{var t2=WD(),zK=uD(),IK=t3(),e3=r3();function Bf({key:D,value:$},F,X,J){let{allNullValues:Y,doc:G,indent:B,indentStep:H,options:{commentString:W,indentSeq:U,simpleKeys:V}}=F,Q=t2.isNode(D)&&D.comment||null;if(V){if(Q)throw Error("With simple keys, key nodes cannot have comments");if(t2.isCollection(D)||!t2.isNode(D)&&typeof D==="object")throw Error("With simple keys, collection cannot be used as a key value")}let K=!V&&(!D||Q&&$==null&&!F.inFlow||t2.isCollection(D)||(t2.isScalar(D)?D.type===zK.Scalar.BLOCK_FOLDED||D.type===zK.Scalar.BLOCK_LITERAL:typeof D==="object"));F=Object.assign({},F,{allNullValues:!1,implicitKey:!K&&(V||!Y),indent:B+H});let C=!1,E=!1,A=IK.stringify(D,F,()=>C=!0,()=>E=!0);if(!K&&!F.inFlow&&A.length>1024){if(V)throw Error("With simple keys, single line scalar must not span more than 1024 characters");K=!0}if(F.inFlow){if(Y||$==null){if(C&&X)X();return A===""?"?":K?`? ${A}`:A}}else if(Y&&!V||$==null&&K){if(A=`? ${A}`,Q&&!C)A+=e3.lineComment(A,F.indent,W(Q));else if(E&&J)J();return A}if(C)Q=null;if(K){if(Q)A+=e3.lineComment(A,F.indent,W(Q));A=`? ${A}
149
+ ${B}:`}else if(A=`${A}:`,Q)A+=e3.lineComment(A,F.indent,W(Q));let Z,P,N;if(t2.isNode($))Z=!!$.spaceBefore,P=$.commentBefore,N=$.comment;else if(Z=!1,P=null,N=null,$&&typeof $==="object")$=G.createNode($);if(F.implicitKey=!1,!K&&!Q&&t2.isScalar($))F.indentAtStart=A.length+1;if(E=!1,!U&&H.length>=2&&!F.inFlow&&!K&&t2.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)F.indent=F.indent.substring(2);let S=!1,z=IK.stringify($,F,()=>S=!0,()=>E=!0),L=" ";if(Q||Z||P){if(L=Z?`
150
+ `:"",P){let b=W(P);L+=`
151
+ ${e3.indentComment(b,F.indent)}`}if(z===""&&!F.inFlow){if(L===`
152
+ `&&N)L=`
153
153
 
154
- `}else P+=`
154
+ `}else L+=`
155
155
  ${F.indent}`}else if(!K&&t2.isCollection($)){let b=z[0],I=z.indexOf(`
156
- `),o=I!==-1,_D=F.inFlow??$.flow??$.items.length===0;if(o||!_D){let BD=!1;if(o&&(b==="&"||b==="!")){let a=z.indexOf(" ");if(b==="&"&&a!==-1&&a<I&&z[a+1]==="!")a=z.indexOf(" ",a+1);if(a===-1||I<a)BD=!0}if(!BD)P=`
156
+ `),o=I!==-1,_D=F.inFlow??$.flow??$.items.length===0;if(o||!_D){let BD=!1;if(o&&(b==="&"||b==="!")){let a=z.indexOf(" ");if(b==="&"&&a!==-1&&a<I&&z[a+1]==="!")a=z.indexOf(" ",a+1);if(a===-1||I<a)BD=!0}if(!BD)L=`
157
157
  ${F.indent}`}}else if(z===""||z[0]===`
158
- `)P="";if(A+=P+z,F.inFlow){if(S&&X)X()}else if(N&&!S)A+=e3.lineComment(A,F.indent,W(N));else if(E&&J)J();return A}Gf.stringifyPair=Jf});var HJ=f((Wf)=>{var TK=D8("process");function Bf(D,...$){if(D==="debug")console.log(...$)}function Hf(D,$){if(D==="debug"||D==="warn")if(typeof TK.emitWarning==="function")TK.emitWarning($);else console.warn($)}Wf.debug=Bf;Wf.warn=Hf});var m4=f((Qf)=>{var D9=WD(),SK=uD(),y4="<<",u4={identify:(D)=>D===y4||typeof D==="symbol"&&D.description===y4,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new SK.Scalar(Symbol(y4)),{addToJSMap:bK}),stringify:()=>y4},Vf=(D,$)=>(u4.identify($)||D9.isScalar($)&&(!$.type||$.type===SK.Scalar.PLAIN)&&u4.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===u4.tag&&F.default);function bK(D,$,F){if(F=D&&D9.isAlias(F)?F.resolve(D.doc):F,D9.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&&D9.isAlias(F)?F.resolve(D.doc):F;if(!D9.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 $}Qf.addMergeToJSMap=bK;Qf.isMergeKey=Vf;Qf.merge=u4});var UJ=f((Zf)=>{var Cf=HJ(),fK=m4(),Rf=t3(),kK=WD(),_J=P8();function Of(D,$,{key:F,value:X}){if(kK.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(fK.isMergeKey(D,F))fK.addMergeToJSMap(D,$,X);else{let J=_J.toJS(F,"",D);if($ instanceof Map)$.set(J,_J.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let Y=Mf(F,J,D),G=_J.toJS(X,Y,D);if(Y in $)Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});else $[Y]=G}}return $}function Mf(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(kK.isNode(D)&&F?.doc){let X=Rf.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)+'..."';Cf.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($)}Zf.addPairToJSMap=Of});var z8=f((jf)=>{var vK=s3(),Nf=wK(),Pf=UJ(),p4=WD();function Lf(D,$,F){let X=vK.createNode(D,void 0,F),J=vK.createNode($,void 0,F);return new c4(X,J)}class c4{constructor(D,$=null){Object.defineProperty(this,p4.NODE_TYPE,{value:p4.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(p4.isNode($))$=$.clone(D);if(p4.isNode(F))F=F.clone(D);return new c4($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return Pf.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?Nf.stringifyPair(this,D,$,F):JSON.stringify(this)}}jf.Pair=c4;jf.createPair=Lf});var VJ=f((bf)=>{var Q1=WD(),gK=t3(),d4=r3();function wf(D,$,F){return($.inFlow??D.flow?Sf:Tf)(D,$,F)}function Tf({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:Y,onChompKeep:G,onComment:B}){let{indent:H,options:{commentString:W}}=F,U=Object.assign({},F,{indent:Y,type:null}),V=!1,Q=[];for(let C=0;C<$.length;++C){let E=$[C],A=null;if(Q1.isNode(E)){if(!V&&E.spaceBefore)Q.push("");if(l4(F,Q,E.commentBefore,V),E.comment)A=E.comment}else if(Q1.isPair(E)){let L=Q1.isNode(E.key)?E.key:null;if(L){if(!V&&L.spaceBefore)Q.push("");l4(F,Q,L.commentBefore,V)}}V=!1;let Z=gK.stringify(E,U,()=>A=null,()=>V=!0);if(A)Z+=d4.lineComment(Z,Y,W(A));if(V&&A)V=!1;Q.push(X+Z)}let K;if(Q.length===0)K=J.start+J.end;else{K=Q[0];for(let C=1;C<Q.length;++C){let E=Q[C];K+=E?`
158
+ `)L="";if(A+=L+z,F.inFlow){if(S&&X)X()}else if(N&&!S)A+=e3.lineComment(A,F.indent,W(N));else if(E&&J)J();return A}Hf.stringifyPair=Bf});var HJ=f((Vf)=>{var TK=D8("process");function _f(D,...$){if(D==="debug")console.log(...$)}function Uf(D,$){if(D==="debug"||D==="warn")if(typeof TK.emitWarning==="function")TK.emitWarning($);else console.warn($)}Vf.debug=_f;Vf.warn=Uf});var m4=f((Ef)=>{var D9=WD(),SK=uD(),y4="<<",u4={identify:(D)=>D===y4||typeof D==="symbol"&&D.description===y4,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new SK.Scalar(Symbol(y4)),{addToJSMap:bK}),stringify:()=>y4},Kf=(D,$)=>(u4.identify($)||D9.isScalar($)&&(!$.type||$.type===SK.Scalar.PLAIN)&&u4.identify($.value))&&D?.doc.schema.tags.some((F)=>F.tag===u4.tag&&F.default);function bK(D,$,F){if(F=D&&D9.isAlias(F)?F.resolve(D.doc):F,D9.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&&D9.isAlias(F)?F.resolve(D.doc):F;if(!D9.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 $}Ef.addMergeToJSMap=bK;Ef.isMergeKey=Kf;Ef.merge=u4});var UJ=f((Pf)=>{var Mf=HJ(),fK=m4(),Zf=t3(),kK=WD(),_J=P8();function qf(D,$,{key:F,value:X}){if(kK.isNode(F)&&F.addToJSMap)F.addToJSMap(D,$,X);else if(fK.isMergeKey(D,F))fK.addMergeToJSMap(D,$,X);else{let J=_J.toJS(F,"",D);if($ instanceof Map)$.set(J,_J.toJS(X,J,D));else if($ instanceof Set)$.add(J);else{let Y=Nf(F,J,D),G=_J.toJS(X,Y,D);if(Y in $)Object.defineProperty($,Y,{value:G,writable:!0,enumerable:!0,configurable:!0});else $[Y]=G}}return $}function Nf(D,$,F){if($===null)return"";if(typeof $!=="object")return String($);if(kK.isNode(D)&&F?.doc){let X=Zf.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)+'..."';Mf.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($)}Pf.addPairToJSMap=qf});var z8=f((wf)=>{var vK=s3(),jf=wK(),zf=UJ(),p4=WD();function If(D,$,F){let X=vK.createNode(D,void 0,F),J=vK.createNode($,void 0,F);return new c4(X,J)}class c4{constructor(D,$=null){Object.defineProperty(this,p4.NODE_TYPE,{value:p4.PAIR}),this.key=D,this.value=$}clone(D){let{key:$,value:F}=this;if(p4.isNode($))$=$.clone(D);if(p4.isNode(F))F=F.clone(D);return new c4($,F)}toJSON(D,$){let F=$?.mapAsMap?new Map:{};return zf.addPairToJSMap($,F,this)}toString(D,$,F){return D?.doc?jf.stringifyPair(this,D,$,F):JSON.stringify(this)}}wf.Pair=c4;wf.createPair=If});var VJ=f((vf)=>{var Q1=WD(),gK=t3(),d4=r3();function bf(D,$,F){return($.inFlow??D.flow?kf:ff)(D,$,F)}function ff({comment:D,items:$},F,{blockItemPrefix:X,flowChars:J,itemIndent:Y,onChompKeep:G,onComment:B}){let{indent:H,options:{commentString:W}}=F,U=Object.assign({},F,{indent:Y,type:null}),V=!1,Q=[];for(let C=0;C<$.length;++C){let E=$[C],A=null;if(Q1.isNode(E)){if(!V&&E.spaceBefore)Q.push("");if(l4(F,Q,E.commentBefore,V),E.comment)A=E.comment}else if(Q1.isPair(E)){let P=Q1.isNode(E.key)?E.key:null;if(P){if(!V&&P.spaceBefore)Q.push("");l4(F,Q,P.commentBefore,V)}}V=!1;let Z=gK.stringify(E,U,()=>A=null,()=>V=!0);if(A)Z+=d4.lineComment(Z,Y,W(A));if(V&&A)V=!1;Q.push(X+Z)}let K;if(Q.length===0)K=J.start+J.end;else{K=Q[0];for(let C=1;C<Q.length;++C){let E=Q[C];K+=E?`
159
159
  ${H}${E}`:`
160
160
  `}}if(D){if(K+=`
161
- `+d4.indentComment(W(D),H),B)B()}else if(V&&G)G();return K}function Sf({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,U=0,V=[];for(let C=0;C<D.length;++C){let E=D[C],A=null;if(Q1.isNode(E)){if(E.spaceBefore)V.push("");if(l4($,V,E.commentBefore,!1),E.comment)A=E.comment}else if(Q1.isPair(E)){let L=Q1.isNode(E.key)?E.key:null;if(L){if(L.spaceBefore)V.push("");if(l4($,V,L.commentBefore,!1),L.comment)W=!0}let N=Q1.isNode(E.value)?E.value:null;if(N){if(N.comment)A=N.comment;if(N.commentBefore)W=!0}else if(E.value==null&&L?.comment)A=L.comment}if(A)W=!0;let Z=gK.stringify(E,H,()=>A=null);if(W||(W=V.length>U||Z.includes(`
162
- `)),C<D.length-1)Z+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=V.reduce((L,N)=>L+N.length+2,2)+(Z.length+2)>$.options.lineWidth);if(W)Z+=","}if(A)Z+=d4.lineComment(Z,X,B(A));V.push(Z),U=V.length}let{start:Q,end:K}=F;if(V.length===0)return Q+K;else{if(!W){let C=V.reduce((E,A)=>E+A.length+2,2);W=$.options.lineWidth>0&&C>$.options.lineWidth}if(W){let C=Q;for(let E of V)C+=E?`
161
+ `+d4.indentComment(W(D),H),B)B()}else if(V&&G)G();return K}function kf({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,U=0,V=[];for(let C=0;C<D.length;++C){let E=D[C],A=null;if(Q1.isNode(E)){if(E.spaceBefore)V.push("");if(l4($,V,E.commentBefore,!1),E.comment)A=E.comment}else if(Q1.isPair(E)){let P=Q1.isNode(E.key)?E.key:null;if(P){if(P.spaceBefore)V.push("");if(l4($,V,P.commentBefore,!1),P.comment)W=!0}let N=Q1.isNode(E.value)?E.value:null;if(N){if(N.comment)A=N.comment;if(N.commentBefore)W=!0}else if(E.value==null&&P?.comment)A=P.comment}if(A)W=!0;let Z=gK.stringify(E,H,()=>A=null);if(W||(W=V.length>U||Z.includes(`
162
+ `)),C<D.length-1)Z+=",";else if($.options.trailingComma){if($.options.lineWidth>0)W||(W=V.reduce((P,N)=>P+N.length+2,2)+(Z.length+2)>$.options.lineWidth);if(W)Z+=","}if(A)Z+=d4.lineComment(Z,X,B(A));V.push(Z),U=V.length}let{start:Q,end:K}=F;if(V.length===0)return Q+K;else{if(!W){let C=V.reduce((E,A)=>E+A.length+2,2);W=$.options.lineWidth>0&&C>$.options.lineWidth}if(W){let C=Q;for(let E of V)C+=E?`
163
163
  ${Y}${J}${E}`:`
164
164
  `;return`${C}
165
- ${J}${K}`}else return`${Q}${G}${V.join(" ")}${G}${K}`}}function l4({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let Y=d4.indentComment($(X),D);F.push(Y.trimStart())}}bf.stringifyCollection=wf});var w8=f((xf)=>{var kf=VJ(),vf=UJ(),gf=v4(),I8=WD(),i4=z8(),hf=uD();function $9(D,$){let F=I8.isScalar($)?$.value:$;for(let X of D)if(I8.isPair(X)){if(X.key===$||X.key===F)return X;if(I8.isScalar(X.key)&&X.key.value===F)return X}return}class hK extends gf.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(I8.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(i4.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(I8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new i4.Pair(D,D?.value);else F=new i4.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(I8.isScalar(X.value)&&hf.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(!$&&I8.isScalar(X)?X.value:X)??void 0}has(D){return!!$9(this.items,D)}set(D,$){this.add(new i4.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)vf.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!I8.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 kf.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}xf.YAMLMap=hK;xf.findPair=$9});var N6=f((cf)=>{var mf=WD(),xK=w8(),pf={collection:"map",default:!0,nodeClass:xK.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!mf.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>xK.YAMLMap.from(D,$,F)};cf.map=pf});var T8=f((af)=>{var lf=s3(),nf=VJ(),sf=v4(),s4=WD(),rf=uD(),of=P8();class yK extends sf.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(s4.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=n4(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=n4(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&s4.isScalar(X)?X.value:X}has(D){let $=n4(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=n4(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(s4.isScalar(X)&&rf.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(of.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return nf.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(lf.createNode(G,void 0,F))}}return J}}function n4(D){let $=s4.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}af.YAMLSeq=yK});var P6=f(($k)=>{var ef=WD(),uK=T8(),Dk={collection:"seq",default:!0,nodeClass:uK.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!ef.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>uK.YAMLSeq.from(D,$,F)};$k.seq=Dk});var F9=f((Gk)=>{var Xk=a3(),Jk={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},$),Xk.stringifyString(D,$,F,X)}};Gk.string=Jk});var r4=f((Bk)=>{var mK=uD(),pK={identify:(D)=>D==null,createNode:()=>new mK.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new mK.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&pK.test.test(D)?D:$.options.nullStr};Bk.nullTag=pK});var QJ=f((_k)=>{var Wk=uD(),cK={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Wk.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&cK.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};_k.boolTag=cK});var L6=f((Qk)=>{function Vk({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}Qk.stringifyNumber=Vk});var KJ=f((Ok)=>{var Kk=uD(),AJ=L6(),Ek={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:AJ.stringifyNumber},Ck={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():AJ.stringifyNumber(D)}},Rk={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Kk.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:AJ.stringifyNumber};Ok.float=Rk;Ok.floatExp=Ck;Ok.floatNaN=Ek});var CJ=f((jk)=>{var dK=L6(),o4=(D)=>typeof D==="bigint"||Number.isInteger(D),EJ=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function lK(D,$,F){let{value:X}=D;if(o4(X)&&X>=0)return F+X.toString($);return dK.stringifyNumber(D)}var Nk={identify:(D)=>o4(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>EJ(D,2,8,F),stringify:(D)=>lK(D,8,"0o")},Pk={identify:o4,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>EJ(D,0,10,F),stringify:dK.stringifyNumber},Lk={identify:(D)=>o4(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>EJ(D,2,16,F),stringify:(D)=>lK(D,16,"0x")};jk.int=Pk;jk.intHex=Lk;jk.intOct=Nk});var iK=f((gk)=>{var Tk=N6(),Sk=r4(),bk=P6(),fk=F9(),kk=QJ(),RJ=KJ(),OJ=CJ(),vk=[Tk.map,bk.seq,fk.string,Sk.nullTag,kk.boolTag,OJ.intOct,OJ.int,OJ.intHex,RJ.floatNaN,RJ.floatExp,RJ.float];gk.schema=vk});var sK=f((dk)=>{var xk=uD(),yk=N6(),uk=P6();function nK(D){return typeof D==="bigint"||Number.isInteger(D)}var a4=({value:D})=>JSON.stringify(D),mk=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:a4},{identify:(D)=>D==null,createNode:()=>new xk.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:a4},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:a4},{identify:nK,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})=>nK(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:a4}],pk={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},ck=[yk.map,uk.seq].concat(mk,pk);dk.schema=ck});var ZJ=f((sk)=>{var X9=D8("buffer"),MJ=uD(),ik=a3(),nk={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof X9.Buffer==="function")return X9.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 X9.Buffer==="function")B=G instanceof X9.Buffer?G.toString("base64"):X9.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),U=Array(W);for(let V=0,Q=0;V<W;++V,Q+=H)U[V]=B.substr(Q,H);B=U.join($===MJ.Scalar.BLOCK_LITERAL?`
166
- `:" ")}return ik.stringifyString({comment:D,type:$,value:B},X,J,Y)}};sk.binary=nk});var e4=f((ek)=>{var t4=WD(),qJ=z8(),ok=uD(),ak=T8();function rK(D,$){if(t4.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(t4.isPair(X))continue;else if(t4.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new qJ.Pair(new ok.Scalar(null));if(X.commentBefore)J.key.commentBefore=J.key.commentBefore?`${X.commentBefore}
165
+ ${J}${K}`}else return`${Q}${G}${V.join(" ")}${G}${K}`}}function l4({indent:D,options:{commentString:$}},F,X,J){if(X&&J)X=X.replace(/^\n+/,"");if(X){let Y=d4.indentComment($(X),D);F.push(Y.trimStart())}}vf.stringifyCollection=bf});var w8=f((mf)=>{var hf=VJ(),xf=UJ(),yf=v4(),I8=WD(),i4=z8(),uf=uD();function $9(D,$){let F=I8.isScalar($)?$.value:$;for(let X of D)if(I8.isPair(X)){if(X.key===$||X.key===F)return X;if(I8.isScalar(X.key)&&X.key.value===F)return X}return}class hK extends yf.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(D){super(I8.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(i4.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(I8.isPair(D))F=D;else if(!D||typeof D!=="object"||!("key"in D))F=new i4.Pair(D,D?.value);else F=new i4.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(I8.isScalar(X.value)&&uf.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(!$&&I8.isScalar(X)?X.value:X)??void 0}has(D){return!!$9(this.items,D)}set(D,$){this.add(new i4.Pair(D,$),!0)}toJSON(D,$,F){let X=F?new F:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(X);for(let J of this.items)xf.addPairToJSMap($,X,J);return X}toString(D,$,F){if(!D)return JSON.stringify(this);for(let X of this.items)if(!I8.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 hf.stringifyCollection(this,D,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:D.indent||"",onChompKeep:F,onComment:$})}}mf.YAMLMap=hK;mf.findPair=$9});var N6=f((nf)=>{var df=WD(),xK=w8(),lf={collection:"map",default:!0,nodeClass:xK.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(D,$){if(!df.isMap(D))$("Expected a mapping for this tag");return D},createNode:(D,$,F)=>xK.YAMLMap.from(D,$,F)};nf.map=lf});var T8=f((Dk)=>{var rf=s3(),of=VJ(),af=v4(),s4=WD(),tf=uD(),ef=P8();class yK extends af.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(D){super(s4.SEQ,D);this.items=[]}add(D){this.items.push(D)}delete(D){let $=n4(D);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(D,$){let F=n4(D);if(typeof F!=="number")return;let X=this.items[F];return!$&&s4.isScalar(X)?X.value:X}has(D){let $=n4(D);return typeof $==="number"&&$<this.items.length}set(D,$){let F=n4(D);if(typeof F!=="number")throw Error(`Expected a valid index, not ${D}.`);let X=this.items[F];if(s4.isScalar(X)&&tf.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(ef.toJS(J,String(X++),$));return F}toString(D,$,F){if(!D)return JSON.stringify(this);return of.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(rf.createNode(G,void 0,F))}}return J}}function n4(D){let $=s4.isScalar(D)?D.value:D;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}Dk.YAMLSeq=yK});var P6=f((Jk)=>{var Fk=WD(),uK=T8(),Xk={collection:"seq",default:!0,nodeClass:uK.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(D,$){if(!Fk.isSeq(D))$("Expected a sequence for this tag");return D},createNode:(D,$,F)=>uK.YAMLSeq.from(D,$,F)};Jk.seq=Xk});var F9=f((Hk)=>{var Yk=a3(),Bk={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},$),Yk.stringifyString(D,$,F,X)}};Hk.string=Bk});var r4=f((_k)=>{var mK=uD(),pK={identify:(D)=>D==null,createNode:()=>new mK.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new mK.Scalar(null),stringify:({source:D},$)=>typeof D==="string"&&pK.test.test(D)?D:$.options.nullStr};_k.nullTag=pK});var QJ=f((Qk)=>{var Vk=uD(),cK={identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(D)=>new Vk.Scalar(D[0]==="t"||D[0]==="T"),stringify({source:D,value:$},F){if(D&&cK.test.test(D)){let X=D[0]==="t"||D[0]==="T";if($===X)return D}return $?F.options.trueStr:F.options.falseStr}};Qk.boolTag=cK});var L6=f((Ek)=>{function Kk({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}Ek.stringifyNumber=Kk});var KJ=f((qk)=>{var Rk=uD(),AJ=L6(),Ok={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:AJ.stringifyNumber},Mk={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():AJ.stringifyNumber(D)}},Zk={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(D){let $=new Rk.Scalar(parseFloat(D)),F=D.indexOf(".");if(F!==-1&&D[D.length-1]==="0")$.minFractionDigits=D.length-F-1;return $},stringify:AJ.stringifyNumber};qk.float=Zk;qk.floatExp=Mk;qk.floatNaN=Ok});var CJ=f((wk)=>{var dK=L6(),o4=(D)=>typeof D==="bigint"||Number.isInteger(D),EJ=(D,$,F,{intAsBigInt:X})=>X?BigInt(D):parseInt(D.substring($),F);function lK(D,$,F){let{value:X}=D;if(o4(X)&&X>=0)return F+X.toString($);return dK.stringifyNumber(D)}var jk={identify:(D)=>o4(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(D,$,F)=>EJ(D,2,8,F),stringify:(D)=>lK(D,8,"0o")},zk={identify:o4,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(D,$,F)=>EJ(D,0,10,F),stringify:dK.stringifyNumber},Ik={identify:(D)=>o4(D)&&D>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(D,$,F)=>EJ(D,2,16,F),stringify:(D)=>lK(D,16,"0x")};wk.int=zk;wk.intHex=Ik;wk.intOct=jk});var iK=f((yk)=>{var fk=N6(),kk=r4(),vk=P6(),gk=F9(),hk=QJ(),RJ=KJ(),OJ=CJ(),xk=[fk.map,vk.seq,gk.string,kk.nullTag,hk.boolTag,OJ.intOct,OJ.int,OJ.intHex,RJ.floatNaN,RJ.floatExp,RJ.float];yk.schema=xk});var sK=f((nk)=>{var mk=uD(),pk=N6(),ck=P6();function nK(D){return typeof D==="bigint"||Number.isInteger(D)}var a4=({value:D})=>JSON.stringify(D),dk=[{identify:(D)=>typeof D==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(D)=>D,stringify:a4},{identify:(D)=>D==null,createNode:()=>new mk.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:a4},{identify:(D)=>typeof D==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(D)=>D==="true",stringify:a4},{identify:nK,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})=>nK(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:a4}],lk={default:!0,tag:"",test:/^/,resolve(D,$){return $(`Unresolved plain scalar ${JSON.stringify(D)}`),D}},ik=[pk.map,ck.seq].concat(dk,lk);nk.schema=ik});var ZJ=f((ak)=>{var X9=D8("buffer"),MJ=uD(),rk=a3(),ok={identify:(D)=>D instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(D,$){if(typeof X9.Buffer==="function")return X9.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 X9.Buffer==="function")B=G instanceof X9.Buffer?G.toString("base64"):X9.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),U=Array(W);for(let V=0,Q=0;V<W;++V,Q+=H)U[V]=B.substr(Q,H);B=U.join($===MJ.Scalar.BLOCK_LITERAL?`
166
+ `:" ")}return rk.stringifyString({comment:D,type:$,value:B},X,J,Y)}};ak.binary=ok});var e4=f((Fv)=>{var t4=WD(),qJ=z8(),ek=uD(),Dv=T8();function rK(D,$){if(t4.isSeq(D))for(let F=0;F<D.items.length;++F){let X=D.items[F];if(t4.isPair(X))continue;else if(t4.isMap(X)){if(X.items.length>1)$("Each pair must have its own sequence indicator");let J=X.items[0]||new qJ.Pair(new ek.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]=t4.isPair(X)?X:new qJ.Pair(X)}else $("Expected a sequence for this tag");return D}function oK(D,$,F){let{replacer:X}=F,J=new ak.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(qJ.createPair(B,H,F))}return J}var tk={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:rK,createNode:oK};ek.createPairs=oK;ek.pairs=tk;ek.resolvePairs=rK});var PJ=f((Gv)=>{var aK=WD(),NJ=P8(),J9=w8(),Xv=T8(),tK=e4();class A1 extends Xv.YAMLSeq{constructor(){super();this.add=J9.YAMLMap.prototype.add.bind(this),this.delete=J9.YAMLMap.prototype.delete.bind(this),this.get=J9.YAMLMap.prototype.get.bind(this),this.has=J9.YAMLMap.prototype.has.bind(this),this.set=J9.YAMLMap.prototype.set.bind(this),this.tag=A1.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(aK.isPair(X))J=NJ.toJS(X.key,"",$),Y=NJ.toJS(X.value,J,$);else J=NJ.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=tK.createPairs(D,$,F),J=new this;return J.items=X.items,J}}A1.tag="tag:yaml.org,2002:omap";var Jv={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:A1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=tK.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(aK.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 A1,F)},createNode:(D,$,F)=>A1.from(D,$,F)};Gv.YAMLOMap=A1;Gv.omap=Jv});var XE=f((Hv)=>{var eK=uD();function DE({value:D,source:$},F){if($&&(D?$E:FE).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var $E={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 eK.Scalar(!0),stringify:DE},FE={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 eK.Scalar(!1),stringify:DE};Hv.falseTag=FE;Hv.trueTag=$E});var JE=f((Kv)=>{var Uv=uD(),LJ=L6(),Vv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(D)=>D.slice(-3).toLowerCase()==="nan"?NaN:D[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:LJ.stringifyNumber},Qv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:(D)=>parseFloat(D.replace(/_/g,"")),stringify(D){let $=Number(D.value);return isFinite($)?$.toExponential():LJ.stringifyNumber(D)}},Av={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Uv.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};Kv.float=Av;Kv.floatExp=Qv;Kv.floatNaN=Vv});var YE=f((Nv)=>{var GE=L6(),G9=(D)=>typeof D==="bigint"||Number.isInteger(D);function D5(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 jJ(D,$,F){let{value:X}=D;if(G9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return GE.stringifyNumber(D)}var Ov={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>D5(D,2,2,F),stringify:(D)=>jJ(D,2,"0b")},Mv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>D5(D,1,8,F),stringify:(D)=>jJ(D,8,"0")},Zv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>D5(D,0,10,F),stringify:GE.stringifyNumber},qv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>D5(D,2,16,F),stringify:(D)=>jJ(D,16,"0x")};Nv.int=Zv;Nv.intBin=Ov;Nv.intHex=qv;Nv.intOct=Mv});var zJ=f((wv)=>{var X5=WD(),$5=z8(),F5=w8();class K1 extends F5.YAMLMap{constructor(D){super(D);this.tag=K1.tag}add(D){let $;if(X5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new $5.Pair(D.key,null);else $=new $5.Pair(D,null);if(!F5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=F5.findPair(this.items,D);return!$&&X5.isPair(F)?X5.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=F5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new $5.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($5.createPair(Y,null,F))}return J}}K1.tag="tag:yaml.org,2002:set";var Iv={collection:"map",identify:(D)=>D instanceof Set,nodeClass:K1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>K1.from(D,$,F),resolve(D,$){if(X5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new K1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};wv.YAMLSet=K1;wv.set=Iv});var wJ=f((vv)=>{var bv=L6();function IJ(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 bv.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 fv={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})=>IJ(D,F),stringify:BE},kv={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)=>IJ(D,!1),stringify:BE},HE={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(HE.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),U=$[8];if(U&&U!=="Z"){let V=IJ(U,!1);if(Math.abs(V)<30)V*=60;W-=60000*V}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};vv.floatTime=kv;vv.intTime=fv;vv.timestamp=HE});var _E=f((rv)=>{var yv=N6(),uv=r4(),mv=P6(),pv=F9(),cv=ZJ(),WE=XE(),TJ=JE(),J5=YE(),dv=m4(),lv=PJ(),iv=e4(),nv=zJ(),SJ=wJ(),sv=[yv.map,mv.seq,pv.string,uv.nullTag,WE.trueTag,WE.falseTag,J5.intBin,J5.intOct,J5.int,J5.intHex,TJ.floatNaN,TJ.floatExp,TJ.float,cv.binary,dv.merge,lv.omap,iv.pairs,nv.set,SJ.intTime,SJ.floatTime,SJ.timestamp];rv.schema=sv});var ME=f((Jg)=>{var AE=N6(),av=r4(),KE=P6(),tv=F9(),ev=QJ(),bJ=KJ(),fJ=CJ(),Dg=iK(),$g=sK(),EE=ZJ(),Y9=m4(),CE=PJ(),RE=e4(),UE=_E(),OE=zJ(),G5=wJ(),VE=new Map([["core",Dg.schema],["failsafe",[AE.map,KE.seq,tv.string]],["json",$g.schema],["yaml11",UE.schema],["yaml-1.1",UE.schema]]),QE={binary:EE.binary,bool:ev.boolTag,float:bJ.float,floatExp:bJ.floatExp,floatNaN:bJ.floatNaN,floatTime:G5.floatTime,int:fJ.int,intHex:fJ.intHex,intOct:fJ.intOct,intTime:G5.intTime,map:AE.map,merge:Y9.merge,null:av.nullTag,omap:CE.omap,pairs:RE.pairs,seq:KE.seq,set:OE.set,timestamp:G5.timestamp},Fg={"tag:yaml.org,2002:binary":EE.binary,"tag:yaml.org,2002:merge":Y9.merge,"tag:yaml.org,2002:omap":CE.omap,"tag:yaml.org,2002:pairs":RE.pairs,"tag:yaml.org,2002:set":OE.set,"tag:yaml.org,2002:timestamp":G5.timestamp};function Xg(D,$,F){let X=VE.get($);if(X&&!D)return F&&!X.includes(Y9.merge)?X.concat(Y9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let Y=Array.from(VE.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(Y9.merge);return J.reduce((Y,G)=>{let B=typeof G==="string"?QE[G]:G;if(!B){let H=JSON.stringify(G),W=Object.keys(QE).map((U)=>JSON.stringify(U)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!Y.includes(B))Y.push(B);return Y},[])}Jg.coreKnownTags=Fg;Jg.getTags=Xg});var gJ=f((Ug)=>{var kJ=WD(),Bg=N6(),Hg=P6(),Wg=F9(),Y5=ME(),_g=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class vJ{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:Y,toStringDefaults:G}){this.compat=Array.isArray(D)?Y5.getTags(D,"compat"):D?Y5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?Y5.coreKnownTags:{},this.tags=Y5.getTags($,this.name,F),this.toStringOptions=G??null,Object.defineProperty(this,kJ.MAP,{value:Bg.map}),Object.defineProperty(this,kJ.SCALAR,{value:Wg.string}),Object.defineProperty(this,kJ.SEQ,{value:Hg.seq}),this.sortMapEntries=typeof Y==="function"?Y:Y===!0?_g:null}clone(){let D=Object.create(vJ.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Ug.Schema=vJ});var ZE=f((Kg)=>{var Qg=WD(),hJ=t3(),B9=r3();function Ag(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=hJ.createStringifyContext(D,$),{commentString:Y}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=Y(D.commentBefore);F.unshift(B9.indentComment(H,""))}let G=!1,B=null;if(D.contents){if(Qg.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let U=Y(D.contents.commentBefore);F.push(B9.indentComment(U,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>G=!0,W=hJ.stringify(D.contents,J,()=>B=null,H);if(B)W+=B9.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(hJ.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=Y(D.comment);if(H.includes(`
168
+ ${Y.comment}`:X.comment}X=J}D.items[F]=t4.isPair(X)?X:new qJ.Pair(X)}else $("Expected a sequence for this tag");return D}function oK(D,$,F){let{replacer:X}=F,J=new Dv.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(qJ.createPair(B,H,F))}return J}var $v={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:rK,createNode:oK};Fv.createPairs=oK;Fv.pairs=$v;Fv.resolvePairs=rK});var PJ=f((Hv)=>{var aK=WD(),NJ=P8(),J9=w8(),Yv=T8(),tK=e4();class A1 extends Yv.YAMLSeq{constructor(){super();this.add=J9.YAMLMap.prototype.add.bind(this),this.delete=J9.YAMLMap.prototype.delete.bind(this),this.get=J9.YAMLMap.prototype.get.bind(this),this.has=J9.YAMLMap.prototype.has.bind(this),this.set=J9.YAMLMap.prototype.set.bind(this),this.tag=A1.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(aK.isPair(X))J=NJ.toJS(X.key,"",$),Y=NJ.toJS(X.value,J,$);else J=NJ.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=tK.createPairs(D,$,F),J=new this;return J.items=X.items,J}}A1.tag="tag:yaml.org,2002:omap";var Bv={collection:"seq",identify:(D)=>D instanceof Map,nodeClass:A1,default:!1,tag:"tag:yaml.org,2002:omap",resolve(D,$){let F=tK.resolvePairs(D,$),X=[];for(let{key:J}of F.items)if(aK.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 A1,F)},createNode:(D,$,F)=>A1.from(D,$,F)};Hv.YAMLOMap=A1;Hv.omap=Bv});var XE=f((Uv)=>{var eK=uD();function DE({value:D,source:$},F){if($&&(D?$E:FE).test.test($))return $;return D?F.options.trueStr:F.options.falseStr}var $E={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 eK.Scalar(!0),stringify:DE},FE={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 eK.Scalar(!1),stringify:DE};Uv.falseTag=FE;Uv.trueTag=$E});var JE=f((Rv)=>{var Av=uD(),LJ=L6(),Kv={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},Ev={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)}},Cv={identify:(D)=>typeof D==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(D){let $=new Av.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};Rv.float=Cv;Rv.floatExp=Ev;Rv.floatNaN=Kv});var YE=f((jv)=>{var GE=L6(),G9=(D)=>typeof D==="bigint"||Number.isInteger(D);function D5(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 jJ(D,$,F){let{value:X}=D;if(G9(X)){let J=X.toString($);return X<0?"-"+F+J.substr(1):F+J}return GE.stringifyNumber(D)}var qv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(D,$,F)=>D5(D,2,2,F),stringify:(D)=>jJ(D,2,"0b")},Nv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(D,$,F)=>D5(D,1,8,F),stringify:(D)=>jJ(D,8,"0")},Pv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(D,$,F)=>D5(D,0,10,F),stringify:GE.stringifyNumber},Lv={identify:G9,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(D,$,F)=>D5(D,2,16,F),stringify:(D)=>jJ(D,16,"0x")};jv.int=Pv;jv.intBin=qv;jv.intHex=Lv;jv.intOct=Nv});var zJ=f((bv)=>{var X5=WD(),$5=z8(),F5=w8();class K1 extends F5.YAMLMap{constructor(D){super(D);this.tag=K1.tag}add(D){let $;if(X5.isPair(D))$=D;else if(D&&typeof D==="object"&&"key"in D&&"value"in D&&D.value===null)$=new $5.Pair(D.key,null);else $=new $5.Pair(D,null);if(!F5.findPair(this.items,$.key))this.items.push($)}get(D,$){let F=F5.findPair(this.items,D);return!$&&X5.isPair(F)?X5.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=F5.findPair(this.items,D);if(F&&!$)this.items.splice(this.items.indexOf(F),1);else if(!F&&$)this.items.push(new $5.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($5.createPair(Y,null,F))}return J}}K1.tag="tag:yaml.org,2002:set";var Sv={collection:"map",identify:(D)=>D instanceof Set,nodeClass:K1,default:!1,tag:"tag:yaml.org,2002:set",createNode:(D,$,F)=>K1.from(D,$,F),resolve(D,$){if(X5.isMap(D))if(D.hasAllNullValues(!0))return Object.assign(new K1,D);else $("Set items must all have null values");else $("Expected a mapping for this tag");return D}};bv.YAMLSet=K1;bv.set=Sv});var wJ=f((xv)=>{var vv=L6();function IJ(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 vv.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 gv={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})=>IJ(D,F),stringify:BE},hv={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)=>IJ(D,!1),stringify:BE},HE={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(HE.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),U=$[8];if(U&&U!=="Z"){let V=IJ(U,!1);if(Math.abs(V)<30)V*=60;W-=60000*V}return new Date(W)},stringify:({value:D})=>D?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};xv.floatTime=hv;xv.intTime=gv;xv.timestamp=HE});var _E=f((tv)=>{var pv=N6(),cv=r4(),dv=P6(),lv=F9(),iv=ZJ(),WE=XE(),TJ=JE(),J5=YE(),nv=m4(),sv=PJ(),rv=e4(),ov=zJ(),SJ=wJ(),av=[pv.map,dv.seq,lv.string,cv.nullTag,WE.trueTag,WE.falseTag,J5.intBin,J5.intOct,J5.int,J5.intHex,TJ.floatNaN,TJ.floatExp,TJ.float,iv.binary,nv.merge,sv.omap,rv.pairs,ov.set,SJ.intTime,SJ.floatTime,SJ.timestamp];tv.schema=av});var ME=f((Bg)=>{var AE=N6(),Dg=r4(),KE=P6(),$g=F9(),Fg=QJ(),bJ=KJ(),fJ=CJ(),Xg=iK(),Jg=sK(),EE=ZJ(),Y9=m4(),CE=PJ(),RE=e4(),UE=_E(),OE=zJ(),G5=wJ(),VE=new Map([["core",Xg.schema],["failsafe",[AE.map,KE.seq,$g.string]],["json",Jg.schema],["yaml11",UE.schema],["yaml-1.1",UE.schema]]),QE={binary:EE.binary,bool:Fg.boolTag,float:bJ.float,floatExp:bJ.floatExp,floatNaN:bJ.floatNaN,floatTime:G5.floatTime,int:fJ.int,intHex:fJ.intHex,intOct:fJ.intOct,intTime:G5.intTime,map:AE.map,merge:Y9.merge,null:Dg.nullTag,omap:CE.omap,pairs:RE.pairs,seq:KE.seq,set:OE.set,timestamp:G5.timestamp},Gg={"tag:yaml.org,2002:binary":EE.binary,"tag:yaml.org,2002:merge":Y9.merge,"tag:yaml.org,2002:omap":CE.omap,"tag:yaml.org,2002:pairs":RE.pairs,"tag:yaml.org,2002:set":OE.set,"tag:yaml.org,2002:timestamp":G5.timestamp};function Yg(D,$,F){let X=VE.get($);if(X&&!D)return F&&!X.includes(Y9.merge)?X.concat(Y9.merge):X.slice();let J=X;if(!J)if(Array.isArray(D))J=[];else{let Y=Array.from(VE.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(Y9.merge);return J.reduce((Y,G)=>{let B=typeof G==="string"?QE[G]:G;if(!B){let H=JSON.stringify(G),W=Object.keys(QE).map((U)=>JSON.stringify(U)).join(", ");throw Error(`Unknown custom tag ${H}; use one of ${W}`)}if(!Y.includes(B))Y.push(B);return Y},[])}Bg.coreKnownTags=Gg;Bg.getTags=Yg});var gJ=f((Ag)=>{var kJ=WD(),_g=N6(),Ug=P6(),Vg=F9(),Y5=ME(),Qg=(D,$)=>D.key<$.key?-1:D.key>$.key?1:0;class vJ{constructor({compat:D,customTags:$,merge:F,resolveKnownTags:X,schema:J,sortMapEntries:Y,toStringDefaults:G}){this.compat=Array.isArray(D)?Y5.getTags(D,"compat"):D?Y5.getTags(null,D):null,this.name=typeof J==="string"&&J||"core",this.knownTags=X?Y5.coreKnownTags:{},this.tags=Y5.getTags($,this.name,F),this.toStringOptions=G??null,Object.defineProperty(this,kJ.MAP,{value:_g.map}),Object.defineProperty(this,kJ.SCALAR,{value:Vg.string}),Object.defineProperty(this,kJ.SEQ,{value:Ug.seq}),this.sortMapEntries=typeof Y==="function"?Y:Y===!0?Qg:null}clone(){let D=Object.create(vJ.prototype,Object.getOwnPropertyDescriptors(this));return D.tags=this.tags.slice(),D}}Ag.Schema=vJ});var ZE=f((Rg)=>{var Eg=WD(),hJ=t3(),B9=r3();function Cg(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=hJ.createStringifyContext(D,$),{commentString:Y}=J.options;if(D.commentBefore){if(F.length!==1)F.unshift("");let H=Y(D.commentBefore);F.unshift(B9.indentComment(H,""))}let G=!1,B=null;if(D.contents){if(Eg.isNode(D.contents)){if(D.contents.spaceBefore&&X)F.push("");if(D.contents.commentBefore){let U=Y(D.contents.commentBefore);F.push(B9.indentComment(U,""))}J.forceBlockIndent=!!D.comment,B=D.contents.comment}let H=B?void 0:()=>G=!0,W=hJ.stringify(D.contents,J,()=>B=null,H);if(B)W+=B9.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(hJ.stringify(D.contents,J));if(D.directives?.docEnd)if(D.comment){let H=Y(D.comment);if(H.includes(`
169
169
  `))F.push("..."),F.push(B9.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(B9.indentComment(Y(H),""))}}return F.join(`
170
170
  `)+`
171
- `}Kg.stringifyDocument=Ag});var H9=f((Pg)=>{var Cg=n3(),j6=v4(),i0=WD(),Rg=z8(),Og=P8(),Mg=gJ(),Zg=ZE(),xJ=b4(),qg=XJ(),Ng=s3(),yJ=FJ();class uJ{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,i0.NODE_TYPE,{value:i0.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 yJ.Directives({version:Y});this.setSchema(Y,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(uJ.prototype,{[i0.NODE_TYPE]:{value:i0.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=i0.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(z6(this.contents))this.contents.add(D)}addIn(D,$){if(z6(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=xJ.anchorNames(this);D.anchor=!$||F.has($)?xJ.findNewAnchor($||"a",F):$}return new Cg.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let E=(Z)=>typeof Z==="number"||Z instanceof String||Z instanceof Number,A=$.filter(E).map(String);if(A.length>0)$=$.concat(A);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:Y,flow:G,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:U,setAnchors:V,sourceObjects:Q}=xJ.createNodeAnchors(this,Y||"a"),K={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:U,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:Q},C=Ng.createNode(D,W,K);if(G&&i0.isCollection(C))C.flow=!0;return V(),C}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Rg.Pair(X,J)}delete(D){return z6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(j6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return z6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return i0.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(j6.isEmptyPath(D))return!$&&i0.isScalar(this.contents)?this.contents.value:this.contents;return i0.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return i0.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(j6.isEmptyPath(D))return this.contents!==void 0;return i0.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=j6.collectionFromPath(this.schema,[D],$);else if(z6(this.contents))this.contents.set(D,$)}setIn(D,$){if(j6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=j6.collectionFromPath(this.schema,Array.from(D),$);else if(z6(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 yJ.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 yJ.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 Mg.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=Og.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"?qg.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 Zg.stringifyDocument(this,D)}}function z6(D){if(i0.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}Pg.Document=uJ});var W9=f((zg)=>{class B5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class qE extends B5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class NE extends B5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var jg=(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
171
+ `}Rg.stringifyDocument=Cg});var H9=f((zg)=>{var Mg=n3(),j6=v4(),i0=WD(),Zg=z8(),qg=P8(),Ng=gJ(),Pg=ZE(),xJ=b4(),Lg=XJ(),jg=s3(),yJ=FJ();class uJ{constructor(D,$,F){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,i0.NODE_TYPE,{value:i0.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 yJ.Directives({version:Y});this.setSchema(Y,F),this.contents=D===void 0?null:this.createNode(D,X,F)}clone(){let D=Object.create(uJ.prototype,{[i0.NODE_TYPE]:{value:i0.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=i0.isNode(this.contents)?this.contents.clone(D.schema):this.contents,this.range)D.range=this.range.slice();return D}add(D){if(z6(this.contents))this.contents.add(D)}addIn(D,$){if(z6(this.contents))this.contents.addIn(D,$)}createAlias(D,$){if(!D.anchor){let F=xJ.anchorNames(this);D.anchor=!$||F.has($)?xJ.findNewAnchor($||"a",F):$}return new Mg.Alias(D.anchor)}createNode(D,$,F){let X=void 0;if(typeof $==="function")D=$.call({"":D},"",D),X=$;else if(Array.isArray($)){let E=(Z)=>typeof Z==="number"||Z instanceof String||Z instanceof Number,A=$.filter(E).map(String);if(A.length>0)$=$.concat(A);X=$}else if(F===void 0&&$)F=$,$=void 0;let{aliasDuplicateObjects:J,anchorPrefix:Y,flow:G,keepUndefined:B,onTagObj:H,tag:W}=F??{},{onAnchor:U,setAnchors:V,sourceObjects:Q}=xJ.createNodeAnchors(this,Y||"a"),K={aliasDuplicateObjects:J??!0,keepUndefined:B??!1,onAnchor:U,onTagObj:H,replacer:X,schema:this.schema,sourceObjects:Q},C=jg.createNode(D,W,K);if(G&&i0.isCollection(C))C.flow=!0;return V(),C}createPair(D,$,F={}){let X=this.createNode(D,null,F),J=this.createNode($,null,F);return new Zg.Pair(X,J)}delete(D){return z6(this.contents)?this.contents.delete(D):!1}deleteIn(D){if(j6.isEmptyPath(D)){if(this.contents==null)return!1;return this.contents=null,!0}return z6(this.contents)?this.contents.deleteIn(D):!1}get(D,$){return i0.isCollection(this.contents)?this.contents.get(D,$):void 0}getIn(D,$){if(j6.isEmptyPath(D))return!$&&i0.isScalar(this.contents)?this.contents.value:this.contents;return i0.isCollection(this.contents)?this.contents.getIn(D,$):void 0}has(D){return i0.isCollection(this.contents)?this.contents.has(D):!1}hasIn(D){if(j6.isEmptyPath(D))return this.contents!==void 0;return i0.isCollection(this.contents)?this.contents.hasIn(D):!1}set(D,$){if(this.contents==null)this.contents=j6.collectionFromPath(this.schema,[D],$);else if(z6(this.contents))this.contents.set(D,$)}setIn(D,$){if(j6.isEmptyPath(D))this.contents=$;else if(this.contents==null)this.contents=j6.collectionFromPath(this.schema,Array.from(D),$);else if(z6(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 yJ.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 yJ.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 Ng.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=qg.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"?Lg.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 Pg.stringifyDocument(this,D)}}function z6(D){if(i0.isCollection(D))return!0;throw Error("Expected a YAML collection as document contents")}zg.Document=uJ});var W9=f((Tg)=>{class B5 extends Error{constructor(D,$,F,X){super();this.name=D,this.code=F,this.message=X,this.pos=$}}class qE extends B5{constructor(D,$,F){super("YAMLParseError",D,$,F)}}class NE extends B5{constructor(D,$,F){super("YAMLWarning",D,$,F)}}var wg=(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
- `}};zg.YAMLError=B5;zg.YAMLParseError=qE;zg.YAMLWarning=NE;zg.prettifyError=jg});var _9=f((fg)=>{function bg(D,{flow:$,indicator:F,next:X,offset:J,onError:Y,parentIndent:G,startOnNewline:B}){let H=!1,W=B,U=B,V="",Q="",K=!1,C=!1,E=null,A=null,Z=null,L=null,N=null,S=null,z=null;for(let I of D){if(C){if(I.type!=="space"&&I.type!=="newline"&&I.type!=="comma")Y(I.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");C=!1}if(E){if(W&&I.type!=="comment"&&I.type!=="newline")Y(E,"TAB_AS_INDENT","Tabs are not allowed as indentation");E=null}switch(I.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&I.source.includes("\t"))E=I;U=!0;break;case"comment":{if(!U)Y(I,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let o=I.source.substring(1)||" ";if(!V)V=o;else V+=Q+o;Q="",W=!1;break}case"newline":if(W){if(V)V+=I.source;else if(!S||F!=="seq-item-ind")H=!0}else Q+=I.source;if(W=!0,K=!0,A||Z)L=I;U=!0;break;case"anchor":if(A)Y(I,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(I.source.endsWith(":"))Y(I.offset+I.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);A=I,z??(z=I.offset),W=!1,U=!1,C=!0;break;case"tag":{if(Z)Y(I,"MULTIPLE_TAGS","A node can have at most one tag");Z=I,z??(z=I.offset),W=!1,U=!1,C=!0;break}case F:if(A||Z)Y(I,"BAD_PROP_ORDER",`Anchors and tags must be after the ${I.source} indicator`);if(S)Y(I,"UNEXPECTED_TOKEN",`Unexpected ${I.source} in ${$??"collection"}`);S=I,W=F==="seq-item-ind"||F==="explicit-key-ind",U=!1;break;case"comma":if($){if(N)Y(I,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=I,W=!1,U=!1;break}default:Y(I,"UNEXPECTED_TOKEN",`Unexpected ${I.type} token`),W=!1,U=!1}}let P=D[D.length-1],b=P?P.offset+P.source.length:J;if(C&&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:S,spaceBefore:H,comment:V,hasNewline:K,anchor:A,tag:Z,newlineAfterProp:L,end:b,start:z??b}}fg.resolveProps=bg});var H5=f((vg)=>{function mJ(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(mJ($.key)||mJ($.value))return!0}return!1;default:return!0}}vg.containsNewline=mJ});var pJ=f((yg)=>{var hg=H5();function xg(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&hg.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}yg.flowIndentCheck=xg});var cJ=f((pg)=>{var PE=WD();function mg(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(Y,G)=>Y===G||PE.isScalar(Y)&&PE.isScalar(G)&&Y.value===G.value;return $.some((Y)=>J(Y.key,F))}pg.mapIncludes=mg});var wE=f((sg)=>{var LE=z8(),dg=w8(),jE=_9(),lg=H5(),zE=pJ(),ig=cJ(),IE="All mapping items must start at the same column";function ng({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??dg.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let U of X.items){let{start:V,key:Q,sep:K,value:C}=U,E=jE.resolveProps(V,{indicator:"explicit-key-ind",next:Q??K?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),A=!E.found;if(A){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",IE)}if(!E.anchor&&!E.tag&&!K){if(W=E.end,E.comment)if(B.comment)B.comment+=`
178
- `+E.comment;else B.comment=E.comment;continue}if(E.newlineAfterProp||lg.containsNewline(Q))J(Q??V[V.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",IE);F.atKey=!0;let Z=E.end,L=Q?D(F,Q,E,J):$(F,Z,V,null,E,J);if(F.schema.compat)zE.flowIndentCheck(X.indent,Q,J);if(F.atKey=!1,ig.mapIncludes(F,B.items,L))J(Z,"DUPLICATE_KEY","Map keys must be unique");let N=jE.resolveProps(K??[],{indicator:"map-value-ind",next:C,offset:L.range[2],onError:J,parentIndent:X.indent,startOnNewline:!Q||Q.type==="block-scalar"});if(H=N.end,N.found){if(A){if(C?.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(L.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let S=C?D(F,C,N,J):$(F,H,K,null,N,J);if(F.schema.compat)zE.flowIndentCheck(X.indent,C,J);H=S.range[2];let z=new LE.Pair(L,S);if(F.options.keepSourceTokens)z.srcToken=U;B.items.push(z)}else{if(A)J(L.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(N.comment)if(L.comment)L.comment+=`
179
- `+N.comment;else L.comment=N.comment;let S=new LE.Pair(L);if(F.options.keepSourceTokens)S.srcToken=U;B.items.push(S)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}sg.resolveBlockMap=ng});var TE=f((Dh)=>{var og=T8(),ag=_9(),tg=pJ();function eg({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??og.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:U,value:V}of X.items){let Q=ag.resolveProps(U,{indicator:"seq-item-ind",next:V,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!Q.found)if(Q.anchor||Q.tag||V)if(V?.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 K=V?D(F,V,Q,J):$(F,Q.end,U,null,Q,J);if(F.schema.compat)tg.flowIndentCheck(X.indent,V,J);H=K.range[2],B.items.push(K)}return B.range=[X.offset,H,W??H],B}Dh.resolveBlockSeq=eg});var I6=f((Xh)=>{function Fh(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 U=H.substring(1)||" ";if(!J)J=U;else J+=G+U;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:$}}Xh.resolveEnd=Fh});var fE=f((Vh)=>{var Gh=WD(),Yh=z8(),SE=w8(),Bh=T8(),Hh=I6(),bE=_9(),Wh=H5(),_h=cJ(),dJ="Block collections are not allowed within flow collections",lJ=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Uh({composeNode:D,composeEmptyNode:$},F,X,J,Y){let G=X.start.source==="{",B=G?"flow map":"flow sequence",W=new(Y?.nodeClass??(G?SE.YAMLMap:Bh.YAMLSeq))(F.schema);W.flow=!0;let U=F.atRoot;if(U)F.atRoot=!1;if(F.atKey)F.atKey=!1;let V=X.offset+X.start.source.length;for(let A=0;A<X.items.length;++A){let Z=X.items[A],{start:L,key:N,sep:S,value:z}=Z,P=bE.resolveProps(L,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:V,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!P.found){if(!P.anchor&&!P.tag&&!S&&!z){if(A===0&&P.comma)J(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(A<X.items.length-1)J(P.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${B}`);if(P.comment)if(W.comment)W.comment+=`
180
- `+P.comment;else W.comment=P.comment;V=P.end;continue}if(!G&&F.options.strict&&Wh.containsNewline(N))J(N,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(A===0){if(P.comma)J(P.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`)}else{if(!P.comma)J(P.start,"MISSING_CHAR",`Missing , between ${B} items`);if(P.comment){let b="";D:for(let I of L)switch(I.type){case"comma":case"space":break;case"comment":b=I.source.substring(1);break D;default:break D}if(b){let I=W.items[W.items.length-1];if(Gh.isPair(I))I=I.value??I.key;if(I.comment)I.comment+=`
181
- `+b;else I.comment=b;P.comment=P.comment.substring(b.length+1)}}}if(!G&&!S&&!P.found){let b=z?D(F,z,P,J):$(F,P.end,S,null,P,J);if(W.items.push(b),V=b.range[2],lJ(z))J(b.range,"BLOCK_IN_FLOW",dJ)}else{F.atKey=!0;let b=P.end,I=N?D(F,N,P,J):$(F,b,L,null,P,J);if(lJ(N))J(I.range,"BLOCK_IN_FLOW",dJ);F.atKey=!1;let o=bE.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:z,offset:I.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(o.found){if(!G&&!P.found&&F.options.strict){if(S)for(let a of S){if(a===o.found)break;if(a.type==="newline"){J(a,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(P.start<o.found.offset-1024)J(o.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(z)if("source"in z&&z.source?.[0]===":")J(z,"MISSING_CHAR",`Missing space after : in ${B}`);else J(o.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let _D=z?D(F,z,o,J):o.found?$(F,o.end,S,null,o,J):null;if(_D){if(lJ(z))J(_D.range,"BLOCK_IN_FLOW",dJ)}else if(o.comment)if(I.comment)I.comment+=`
182
- `+o.comment;else I.comment=o.comment;let BD=new Yh.Pair(I,_D);if(F.options.keepSourceTokens)BD.srcToken=Z;if(G){let a=W;if(_h.mapIncludes(F,a.items,I))J(b,"DUPLICATE_KEY","Map keys must be unique");a.items.push(BD)}else{let a=new SE.YAMLMap(F.schema);a.flow=!0,a.items.push(BD);let dD=(_D??I).range;a.range=[I.range[0],dD[1],dD[2]],W.items.push(a)}V=_D?_D.range[2]:o.end}}let Q=G?"}":"]",[K,...C]=X.end,E=V;if(K?.source===Q)E=K.offset+K.source.length;else{let A=B[0].toUpperCase()+B.substring(1),Z=U?`${A} must end with a ${Q}`:`${A} in block collection must be sufficiently indented and end with a ${Q}`;if(J(V,U?"MISSING_CHAR":"BAD_INDENT",Z),K&&K.source.length!==1)C.unshift(K)}if(C.length>0){let A=Hh.resolveEnd(C,E,F.options.strict,J);if(A.comment)if(W.comment)W.comment+=`
183
- `+A.comment;else W.comment=A.comment;W.range=[X.offset,E,A.offset]}else W.range=[X.offset,E,E];return W}Vh.resolveFlowCollection=Uh});var kE=f((qh)=>{var Ah=WD(),Kh=uD(),Eh=w8(),Ch=T8(),Rh=wE(),Oh=TE(),Mh=fE();function iJ(D,$,F,X,J,Y){let G=F.type==="block-map"?Rh.resolveBlockMap(D,$,F,X,Y):F.type==="block-seq"?Oh.resolveBlockSeq(D,$,F,X,Y):Mh.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 Zh(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:K}=X,C=Q&&Y?Q.offset>Y.offset?Q:Y:Q??Y;if(C&&(!K||K.offset<C.offset))J(C,"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===Eh.YAMLMap.tagName&&B==="map"||G===Ch.YAMLSeq.tagName&&B==="seq")return iJ(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 iJ(D,$,F,J,G)}}let W=iJ(D,$,F,J,G,H),U=H.resolve?.(W,(Q)=>J(Y,"TAG_RESOLVE_FAILED",Q),$.options)??W,V=Ah.isNode(U)?U:new Kh.Scalar(U);if(V.range=W.range,V.tag=G,H?.format)V.format=H.format;return V}qh.composeCollection=Zh});var sJ=f((zh)=>{var nJ=uD();function Ph(D,$,F){let X=$.offset,J=Lh($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let Y=J.mode===">"?nJ.Scalar.BLOCK_FOLDED:nJ.Scalar.BLOCK_LITERAL,G=$.source?jh($.source):[],B=G.length;for(let E=G.length-1;E>=0;--E){let A=G[E][1];if(A===""||A==="\r")B=E;else break}if(B===0){let E=J.chomp==="+"&&G.length>0?`
176
+ `}};Tg.YAMLError=B5;Tg.YAMLParseError=qE;Tg.YAMLWarning=NE;Tg.prettifyError=wg});var _9=f((gg)=>{function vg(D,{flow:$,indicator:F,next:X,offset:J,onError:Y,parentIndent:G,startOnNewline:B}){let H=!1,W=B,U=B,V="",Q="",K=!1,C=!1,E=null,A=null,Z=null,P=null,N=null,S=null,z=null;for(let I of D){if(C){if(I.type!=="space"&&I.type!=="newline"&&I.type!=="comma")Y(I.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");C=!1}if(E){if(W&&I.type!=="comment"&&I.type!=="newline")Y(E,"TAB_AS_INDENT","Tabs are not allowed as indentation");E=null}switch(I.type){case"space":if(!$&&(F!=="doc-start"||X?.type!=="flow-collection")&&I.source.includes("\t"))E=I;U=!0;break;case"comment":{if(!U)Y(I,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let o=I.source.substring(1)||" ";if(!V)V=o;else V+=Q+o;Q="",W=!1;break}case"newline":if(W){if(V)V+=I.source;else if(!S||F!=="seq-item-ind")H=!0}else Q+=I.source;if(W=!0,K=!0,A||Z)P=I;U=!0;break;case"anchor":if(A)Y(I,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(I.source.endsWith(":"))Y(I.offset+I.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);A=I,z??(z=I.offset),W=!1,U=!1,C=!0;break;case"tag":{if(Z)Y(I,"MULTIPLE_TAGS","A node can have at most one tag");Z=I,z??(z=I.offset),W=!1,U=!1,C=!0;break}case F:if(A||Z)Y(I,"BAD_PROP_ORDER",`Anchors and tags must be after the ${I.source} indicator`);if(S)Y(I,"UNEXPECTED_TOKEN",`Unexpected ${I.source} in ${$??"collection"}`);S=I,W=F==="seq-item-ind"||F==="explicit-key-ind",U=!1;break;case"comma":if($){if(N)Y(I,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);N=I,W=!1,U=!1;break}default:Y(I,"UNEXPECTED_TOKEN",`Unexpected ${I.type} token`),W=!1,U=!1}}let L=D[D.length-1],b=L?L.offset+L.source.length:J;if(C&&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:S,spaceBefore:H,comment:V,hasNewline:K,anchor:A,tag:Z,newlineAfterProp:P,end:b,start:z??b}}gg.resolveProps=vg});var H5=f((xg)=>{function mJ(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(mJ($.key)||mJ($.value))return!0}return!1;default:return!0}}xg.containsNewline=mJ});var pJ=f((pg)=>{var ug=H5();function mg(D,$,F){if($?.type==="flow-collection"){let X=$.end[0];if(X.indent===D&&(X.source==="]"||X.source==="}")&&ug.containsNewline($))F(X,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}pg.flowIndentCheck=mg});var cJ=f((lg)=>{var PE=WD();function dg(D,$,F){let{uniqueKeys:X}=D.options;if(X===!1)return!1;let J=typeof X==="function"?X:(Y,G)=>Y===G||PE.isScalar(Y)&&PE.isScalar(G)&&Y.value===G.value;return $.some((Y)=>J(Y.key,F))}lg.mapIncludes=dg});var wE=f((ag)=>{var LE=z8(),ng=w8(),jE=_9(),sg=H5(),zE=pJ(),rg=cJ(),IE="All mapping items must start at the same column";function og({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??ng.YAMLMap)(F.schema);if(F.atRoot)F.atRoot=!1;let H=X.offset,W=null;for(let U of X.items){let{start:V,key:Q,sep:K,value:C}=U,E=jE.resolveProps(V,{indicator:"explicit-key-ind",next:Q??K?.[0],offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0}),A=!E.found;if(A){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",IE)}if(!E.anchor&&!E.tag&&!K){if(W=E.end,E.comment)if(B.comment)B.comment+=`
178
+ `+E.comment;else B.comment=E.comment;continue}if(E.newlineAfterProp||sg.containsNewline(Q))J(Q??V[V.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",IE);F.atKey=!0;let Z=E.end,P=Q?D(F,Q,E,J):$(F,Z,V,null,E,J);if(F.schema.compat)zE.flowIndentCheck(X.indent,Q,J);if(F.atKey=!1,rg.mapIncludes(F,B.items,P))J(Z,"DUPLICATE_KEY","Map keys must be unique");let N=jE.resolveProps(K??[],{indicator:"map-value-ind",next:C,offset:P.range[2],onError:J,parentIndent:X.indent,startOnNewline:!Q||Q.type==="block-scalar"});if(H=N.end,N.found){if(A){if(C?.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(P.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let S=C?D(F,C,N,J):$(F,H,K,null,N,J);if(F.schema.compat)zE.flowIndentCheck(X.indent,C,J);H=S.range[2];let z=new LE.Pair(P,S);if(F.options.keepSourceTokens)z.srcToken=U;B.items.push(z)}else{if(A)J(P.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(N.comment)if(P.comment)P.comment+=`
179
+ `+N.comment;else P.comment=N.comment;let S=new LE.Pair(P);if(F.options.keepSourceTokens)S.srcToken=U;B.items.push(S)}}if(W&&W<H)J(W,"IMPOSSIBLE","Map comment with trailing content");return B.range=[X.offset,H,W??H],B}ag.resolveBlockMap=og});var TE=f((Xh)=>{var eg=T8(),Dh=_9(),$h=pJ();function Fh({composeNode:D,composeEmptyNode:$},F,X,J,Y){let B=new(Y?.nodeClass??eg.YAMLSeq)(F.schema);if(F.atRoot)F.atRoot=!1;if(F.atKey)F.atKey=!1;let H=X.offset,W=null;for(let{start:U,value:V}of X.items){let Q=Dh.resolveProps(U,{indicator:"seq-item-ind",next:V,offset:H,onError:J,parentIndent:X.indent,startOnNewline:!0});if(!Q.found)if(Q.anchor||Q.tag||V)if(V?.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 K=V?D(F,V,Q,J):$(F,Q.end,U,null,Q,J);if(F.schema.compat)$h.flowIndentCheck(X.indent,V,J);H=K.range[2],B.items.push(K)}return B.range=[X.offset,H,W??H],B}Xh.resolveBlockSeq=Fh});var I6=f((Yh)=>{function Gh(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 U=H.substring(1)||" ";if(!J)J=U;else J+=G+U;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:$}}Yh.resolveEnd=Gh});var fE=f((Kh)=>{var Hh=WD(),Wh=z8(),SE=w8(),_h=T8(),Uh=I6(),bE=_9(),Vh=H5(),Qh=cJ(),dJ="Block collections are not allowed within flow collections",lJ=(D)=>D&&(D.type==="block-map"||D.type==="block-seq");function Ah({composeNode:D,composeEmptyNode:$},F,X,J,Y){let G=X.start.source==="{",B=G?"flow map":"flow sequence",W=new(Y?.nodeClass??(G?SE.YAMLMap:_h.YAMLSeq))(F.schema);W.flow=!0;let U=F.atRoot;if(U)F.atRoot=!1;if(F.atKey)F.atKey=!1;let V=X.offset+X.start.source.length;for(let A=0;A<X.items.length;++A){let Z=X.items[A],{start:P,key:N,sep:S,value:z}=Z,L=bE.resolveProps(P,{flow:B,indicator:"explicit-key-ind",next:N??S?.[0],offset:V,onError:J,parentIndent:X.indent,startOnNewline:!1});if(!L.found){if(!L.anchor&&!L.tag&&!S&&!z){if(A===0&&L.comma)J(L.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${B}`);else if(A<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;V=L.end;continue}if(!G&&F.options.strict&&Vh.containsNewline(N))J(N,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(A===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 b="";D:for(let I of P)switch(I.type){case"comma":case"space":break;case"comment":b=I.source.substring(1);break D;default:break D}if(b){let I=W.items[W.items.length-1];if(Hh.isPair(I))I=I.value??I.key;if(I.comment)I.comment+=`
181
+ `+b;else I.comment=b;L.comment=L.comment.substring(b.length+1)}}}if(!G&&!S&&!L.found){let b=z?D(F,z,L,J):$(F,L.end,S,null,L,J);if(W.items.push(b),V=b.range[2],lJ(z))J(b.range,"BLOCK_IN_FLOW",dJ)}else{F.atKey=!0;let b=L.end,I=N?D(F,N,L,J):$(F,b,P,null,L,J);if(lJ(N))J(I.range,"BLOCK_IN_FLOW",dJ);F.atKey=!1;let o=bE.resolveProps(S??[],{flow:B,indicator:"map-value-ind",next:z,offset:I.range[2],onError:J,parentIndent:X.indent,startOnNewline:!1});if(o.found){if(!G&&!L.found&&F.options.strict){if(S)for(let a of S){if(a===o.found)break;if(a.type==="newline"){J(a,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(L.start<o.found.offset-1024)J(o.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(z)if("source"in z&&z.source?.[0]===":")J(z,"MISSING_CHAR",`Missing space after : in ${B}`);else J(o.start,"MISSING_CHAR",`Missing , or : between ${B} items`);let _D=z?D(F,z,o,J):o.found?$(F,o.end,S,null,o,J):null;if(_D){if(lJ(z))J(_D.range,"BLOCK_IN_FLOW",dJ)}else if(o.comment)if(I.comment)I.comment+=`
182
+ `+o.comment;else I.comment=o.comment;let BD=new Wh.Pair(I,_D);if(F.options.keepSourceTokens)BD.srcToken=Z;if(G){let a=W;if(Qh.mapIncludes(F,a.items,I))J(b,"DUPLICATE_KEY","Map keys must be unique");a.items.push(BD)}else{let a=new SE.YAMLMap(F.schema);a.flow=!0,a.items.push(BD);let dD=(_D??I).range;a.range=[I.range[0],dD[1],dD[2]],W.items.push(a)}V=_D?_D.range[2]:o.end}}let Q=G?"}":"]",[K,...C]=X.end,E=V;if(K?.source===Q)E=K.offset+K.source.length;else{let A=B[0].toUpperCase()+B.substring(1),Z=U?`${A} must end with a ${Q}`:`${A} in block collection must be sufficiently indented and end with a ${Q}`;if(J(V,U?"MISSING_CHAR":"BAD_INDENT",Z),K&&K.source.length!==1)C.unshift(K)}if(C.length>0){let A=Uh.resolveEnd(C,E,F.options.strict,J);if(A.comment)if(W.comment)W.comment+=`
183
+ `+A.comment;else W.comment=A.comment;W.range=[X.offset,E,A.offset]}else W.range=[X.offset,E,E];return W}Kh.resolveFlowCollection=Ah});var kE=f((Lh)=>{var Ch=WD(),Rh=uD(),Oh=w8(),Mh=T8(),Zh=wE(),qh=TE(),Nh=fE();function iJ(D,$,F,X,J,Y){let G=F.type==="block-map"?Zh.resolveBlockMap(D,$,F,X,Y):F.type==="block-seq"?qh.resolveBlockSeq(D,$,F,X,Y):Nh.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 Ph(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:K}=X,C=Q&&Y?Q.offset>Y.offset?Q:Y:Q??Y;if(C&&(!K||K.offset<C.offset))J(C,"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===Oh.YAMLMap.tagName&&B==="map"||G===Mh.YAMLSeq.tagName&&B==="seq")return iJ(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 iJ(D,$,F,J,G)}}let W=iJ(D,$,F,J,G,H),U=H.resolve?.(W,(Q)=>J(Y,"TAG_RESOLVE_FAILED",Q),$.options)??W,V=Ch.isNode(U)?U:new Rh.Scalar(U);if(V.range=W.range,V.tag=G,H?.format)V.format=H.format;return V}Lh.composeCollection=Ph});var sJ=f((Th)=>{var nJ=uD();function zh(D,$,F){let X=$.offset,J=Ih($,D.options.strict,F);if(!J)return{value:"",type:null,comment:"",range:[X,X,X]};let Y=J.mode===">"?nJ.Scalar.BLOCK_FOLDED:nJ.Scalar.BLOCK_LITERAL,G=$.source?wh($.source):[],B=G.length;for(let E=G.length-1;E>=0;--E){let A=G[E][1];if(A===""||A==="\r")B=E;else break}if(B===0){let E=J.chomp==="+"&&G.length>0?`
184
184
  `.repeat(Math.max(1,G.length-1)):"",A=X+J.length;if($.source)A+=$.source.length;return{value:E,type:Y,comment:J.comment,range:[X,A,A]}}let H=$.indent+J.indent,W=$.offset+J.length,U=0;for(let E=0;E<B;++E){let[A,Z]=G[E];if(Z===""||Z==="\r"){if(J.indent===0&&A.length>H)H=A.length}else{if(A.length<H)F(W+A.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(J.indent===0)H=A.length;if(U=E,H===0&&!D.atRoot)F(W,"BAD_INDENT","Block scalar values in collections must be indented");break}W+=A.length+Z.length+1}for(let E=G.length-1;E>=B;--E)if(G[E][0].length>H)B=E+1;let V="",Q="",K=!1;for(let E=0;E<U;++E)V+=G[E][0].slice(H)+`
185
- `;for(let E=U;E<B;++E){let[A,Z]=G[E];W+=A.length+Z.length+1;let L=Z[Z.length-1]==="\r";if(L)Z=Z.slice(0,-1);if(Z&&A.length<H){let S=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-Z.length-(L?2:1),"BAD_INDENT",S),A=""}if(Y===nJ.Scalar.BLOCK_LITERAL)V+=Q+A.slice(H)+Z,Q=`
185
+ `;for(let E=U;E<B;++E){let[A,Z]=G[E];W+=A.length+Z.length+1;let P=Z[Z.length-1]==="\r";if(P)Z=Z.slice(0,-1);if(Z&&A.length<H){let S=`Block scalar lines must not be less indented than their ${J.indent?"explicit indentation indicator":"first line"}`;F(W-Z.length-(P?2:1),"BAD_INDENT",S),A=""}if(Y===nJ.Scalar.BLOCK_LITERAL)V+=Q+A.slice(H)+Z,Q=`
186
186
  `;else if(A.length>H||Z[0]==="\t"){if(Q===" ")Q=`
187
187
  `;else if(!K&&Q===`
188
188
  `)Q=`
@@ -195,41 +195,41 @@ ${W}
195
195
  `+G[E][0].slice(H);if(V[V.length-1]!==`
196
196
  `)V+=`
197
197
  `;break;default:V+=`
198
- `}let C=X+J.length+$.source.length;return{value:V,type:Y,comment:J.comment,range:[X,C,C]}}function Lh({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 K=J[Q];if(!B&&(K==="-"||K==="+"))B=K;else{let C=Number(K);if(!G&&C)G=C;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="",V=J.length;for(let Q=1;Q<$.length;++Q){let K=$[Q];switch(K.type){case"space":W=!0;case"newline":V+=K.source.length;break;case"comment":if(F&&!W)X(K,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");V+=K.source.length,U=K.source.substring(1);break;case"error":X(K,"UNEXPECTED_TOKEN",K.message),V+=K.source.length;break;default:{let C=`Unexpected token in block scalar header: ${K.type}`;X(K,"UNEXPECTED_TOKEN",C);let E=K.source;if(E&&typeof E==="string")V+=E.length}}}return{mode:Y,indent:G,chomp:B,comment:U,length:V}}function jh(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}zh.resolveBlockScalar=Ph});var oJ=f((hh)=>{var rJ=uD(),wh=I6();function Th(D,$,F){let{offset:X,type:J,source:Y,end:G}=D,B,H,W=(Q,K,C)=>F(X+Q,K,C);switch(J){case"scalar":B=rJ.Scalar.PLAIN,H=Sh(Y,W);break;case"single-quoted-scalar":B=rJ.Scalar.QUOTE_SINGLE,H=bh(Y,W);break;case"double-quoted-scalar":B=rJ.Scalar.QUOTE_DOUBLE,H=fh(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 U=X+Y.length,V=wh.resolveEnd(G,U,$,F);return{value:H,type:B,comment:V.comment,range:[X,U,V.offset]}}function Sh(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 vE(D)}function bh(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return vE(D.slice(1,-1)).replace(/''/g,"'")}function vE(D){let $,F;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
198
+ `}let C=X+J.length+$.source.length;return{value:V,type:Y,comment:J.comment,range:[X,C,C]}}function Ih({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 K=J[Q];if(!B&&(K==="-"||K==="+"))B=K;else{let C=Number(K);if(!G&&C)G=C;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="",V=J.length;for(let Q=1;Q<$.length;++Q){let K=$[Q];switch(K.type){case"space":W=!0;case"newline":V+=K.source.length;break;case"comment":if(F&&!W)X(K,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");V+=K.source.length,U=K.source.substring(1);break;case"error":X(K,"UNEXPECTED_TOKEN",K.message),V+=K.source.length;break;default:{let C=`Unexpected token in block scalar header: ${K.type}`;X(K,"UNEXPECTED_TOKEN",C);let E=K.source;if(E&&typeof E==="string")V+=E.length}}}return{mode:Y,indent:G,chomp:B,comment:U,length:V}}function wh(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}Th.resolveBlockScalar=zh});var oJ=f((uh)=>{var rJ=uD(),bh=I6();function fh(D,$,F){let{offset:X,type:J,source:Y,end:G}=D,B,H,W=(Q,K,C)=>F(X+Q,K,C);switch(J){case"scalar":B=rJ.Scalar.PLAIN,H=kh(Y,W);break;case"single-quoted-scalar":B=rJ.Scalar.QUOTE_SINGLE,H=vh(Y,W);break;case"double-quoted-scalar":B=rJ.Scalar.QUOTE_DOUBLE,H=gh(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 U=X+Y.length,V=bh.resolveEnd(G,U,$,F);return{value:H,type:B,comment:V.comment,range:[X,U,V.offset]}}function kh(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 vE(D)}function vh(D,$){if(D[D.length-1]!=="'"||D.length===1)$(D.length,"MISSING_CHAR","Missing closing 'quote");return vE(D.slice(1,-1)).replace(/''/g,"'")}function vE(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 fh(D,$){let F="";for(let X=1;X<D.length-1;++X){let J=D[X];if(J==="\r"&&D[X+1]===`
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 gh(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}=kh(D,X);F+=Y,X=G}else if(J==="\\"){let Y=D[++X],G=vh[Y];if(G)F+=G;else if(Y===`
204
+ `){let{fold:Y,offset:G}=hh(D,X);F+=Y,X=G}else if(J==="\\"){let Y=D[++X],G=xh[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+=gh(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!==`
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+=yh(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 kh(D,$){let F="",X=D[$+1];while(X===" "||X==="\t"||X===`
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 hh(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 vh={"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 gh(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)}hh.resolveFlowScalar=Th});var hE=f((dh)=>{var E1=WD(),gE=uD(),yh=sJ(),uh=oJ();function mh(D,$,F,X){let{value:J,type:Y,comment:G,range:B}=$.type==="block-scalar"?yh.resolveBlockScalar(D,$,X):uh.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(V)=>X(F,"TAG_RESOLVE_FAILED",V)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[E1.SCALAR];else if(H)W=ph(D.schema,J,H,F,X);else if($.type==="scalar")W=ch(D,J,$,X);else W=D.schema[E1.SCALAR];let U;try{let V=W.resolve(J,(Q)=>X(F??$,"TAG_RESOLVE_FAILED",Q),D.options);U=E1.isScalar(V)?V:new gE.Scalar(V)}catch(V){let Q=V instanceof Error?V.message:String(V);X(F??$,"TAG_RESOLVE_FAILED",Q),U=new gE.Scalar(J)}if(U.range=B,U.source=J,Y)U.type=Y;if(H)U.tag=H;if(W.format)U.format=W.format;if(G)U.comment=G;return U}function ph(D,$,F,X,J){if(F==="!")return D[E1.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[E1.SCALAR]}function ch({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[E1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[E1.SCALAR];if(G.tag!==B.tag){let H=$.tagString(G.tag),W=$.tagString(B.tag),U=`Value may be parsed as either ${H} or ${W}`;Y(J,"TAG_RESOLVE_FAILED",U,!0)}}return G}dh.composeScalar=mh});var xE=f((nh)=>{function ih(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}nh.emptyScalarPosition=ih});var mE=f((Fx)=>{var rh=n3(),oh=WD(),ah=kE(),yE=hE(),th=I6(),eh=xE(),Dx={composeNode:uE,composeEmptyNode:aJ};function uE(D,$,F,X){let J=D.atKey,{spaceBefore:Y,comment:G,anchor:B,tag:H}=F,W,U=!0;switch($.type){case"alias":if(W=$x(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=yE.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=ah.composeCollection(Dx,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(V){let Q=V instanceof Error?V.message:String(V);X($,"RESOURCE_EXHAUSTION",Q)}break;default:{let V=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",V),U=!1}}if(W??(W=aJ(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&&(!oh.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&&U)W.srcToken=$;return W}function aJ(D,$,F,X,{spaceBefore:J,comment:Y,anchor:G,tag:B,end:H},W){let U={type:"scalar",offset:eh.emptyScalarPosition($,F,X),indent:-1,source:""},V=yE.composeScalar(D,U,B,W);if(G){if(V.anchor=G.source.substring(1),V.anchor==="")W(G,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)V.spaceBefore=!0;if(Y)V.comment=Y,V.range[2]=H;return V}function $x({options:D},{offset:$,source:F,end:X},J){let Y=new rh.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=th.resolveEnd(X,G,D.strict,J);if(Y.range=[$,G,B.offset],B.comment)Y.comment=B.comment;return Y}Fx.composeEmptyNode=aJ;Fx.composeNode=uE});var cE=f((Wx)=>{var Gx=H9(),pE=mE(),Yx=I6(),Bx=_9();function Hx(D,$,{offset:F,start:X,value:J,end:Y},G){let B=Object.assign({_directives:$},D),H=new Gx.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},U=Bx.resolveProps(X,{indicator:"doc-start",next:J??Y?.[0],offset:F,onError:G,parentIndent:0,startOnNewline:!0});if(U.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!U.hasNewline)G(U.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?pE.composeNode(W,J,U,G):pE.composeEmptyNode(W,U.end,X,null,U,G);let V=H.contents.range[2],Q=Yx.resolveEnd(Y,V,!1,G);if(Q.comment)H.comment=Q.comment;return H.range=[F,V,Q.offset],H}Wx.composeDoc=Hx});var tJ=f((Ex)=>{var Ux=D8("process"),Vx=FJ(),Qx=H9(),U9=W9(),dE=WD(),Ax=cE(),Kx=I6();function V9(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 lE(D){let $="",F=!1,X=!1;for(let J=0;J<D.length;++J){let Y=D[J];switch(Y[0]){case"#":$+=($===""?"":X?`
212
+ `;$+=1,X=D[$+1]}if(!F)F=" ";return{fold:F,offset:$}}var xh={"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 yh(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)}uh.resolveFlowScalar=fh});var hE=f((nh)=>{var E1=WD(),gE=uD(),ph=sJ(),ch=oJ();function dh(D,$,F,X){let{value:J,type:Y,comment:G,range:B}=$.type==="block-scalar"?ph.resolveBlockScalar(D,$,X):ch.resolveFlowScalar($,D.options.strict,X),H=F?D.directives.tagName(F.source,(V)=>X(F,"TAG_RESOLVE_FAILED",V)):null,W;if(D.options.stringKeys&&D.atKey)W=D.schema[E1.SCALAR];else if(H)W=lh(D.schema,J,H,F,X);else if($.type==="scalar")W=ih(D,J,$,X);else W=D.schema[E1.SCALAR];let U;try{let V=W.resolve(J,(Q)=>X(F??$,"TAG_RESOLVE_FAILED",Q),D.options);U=E1.isScalar(V)?V:new gE.Scalar(V)}catch(V){let Q=V instanceof Error?V.message:String(V);X(F??$,"TAG_RESOLVE_FAILED",Q),U=new gE.Scalar(J)}if(U.range=B,U.source=J,Y)U.type=Y;if(H)U.tag=H;if(W.format)U.format=W.format;if(G)U.comment=G;return U}function lh(D,$,F,X,J){if(F==="!")return D[E1.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[E1.SCALAR]}function ih({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[E1.SCALAR];if(F.compat){let B=F.compat.find((H)=>H.default&&H.test?.test(X))??F[E1.SCALAR];if(G.tag!==B.tag){let H=$.tagString(G.tag),W=$.tagString(B.tag),U=`Value may be parsed as either ${H} or ${W}`;Y(J,"TAG_RESOLVE_FAILED",U,!0)}}return G}nh.composeScalar=dh});var xE=f((oh)=>{function rh(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}oh.emptyScalarPosition=rh});var mE=f((Gx)=>{var th=n3(),eh=WD(),Dx=kE(),yE=hE(),$x=I6(),Fx=xE(),Xx={composeNode:uE,composeEmptyNode:aJ};function uE(D,$,F,X){let J=D.atKey,{spaceBefore:Y,comment:G,anchor:B,tag:H}=F,W,U=!0;switch($.type){case"alias":if(W=Jx(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=yE.composeScalar(D,$,H,X),B)W.anchor=B.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":try{if(W=Dx.composeCollection(Xx,D,$,F,X),B)W.anchor=B.source.substring(1)}catch(V){let Q=V instanceof Error?V.message:String(V);X($,"RESOURCE_EXHAUSTION",Q)}break;default:{let V=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;X($,"UNEXPECTED_TOKEN",V),U=!1}}if(W??(W=aJ(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&&(!eh.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&&U)W.srcToken=$;return W}function aJ(D,$,F,X,{spaceBefore:J,comment:Y,anchor:G,tag:B,end:H},W){let U={type:"scalar",offset:Fx.emptyScalarPosition($,F,X),indent:-1,source:""},V=yE.composeScalar(D,U,B,W);if(G){if(V.anchor=G.source.substring(1),V.anchor==="")W(G,"BAD_ALIAS","Anchor cannot be an empty string")}if(J)V.spaceBefore=!0;if(Y)V.comment=Y,V.range[2]=H;return V}function Jx({options:D},{offset:$,source:F,end:X},J){let Y=new th.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=$x.resolveEnd(X,G,D.strict,J);if(Y.range=[$,G,B.offset],B.comment)Y.comment=B.comment;return Y}Gx.composeEmptyNode=aJ;Gx.composeNode=uE});var cE=f((Vx)=>{var Hx=H9(),pE=mE(),Wx=I6(),_x=_9();function Ux(D,$,{offset:F,start:X,value:J,end:Y},G){let B=Object.assign({_directives:$},D),H=new Hx.Document(void 0,B),W={atKey:!1,atRoot:!0,directives:H.directives,options:H.options,schema:H.schema},U=_x.resolveProps(X,{indicator:"doc-start",next:J??Y?.[0],offset:F,onError:G,parentIndent:0,startOnNewline:!0});if(U.found){if(H.directives.docStart=!0,J&&(J.type==="block-map"||J.type==="block-seq")&&!U.hasNewline)G(U.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}H.contents=J?pE.composeNode(W,J,U,G):pE.composeEmptyNode(W,U.end,X,null,U,G);let V=H.contents.range[2],Q=Wx.resolveEnd(Y,V,!1,G);if(Q.comment)H.comment=Q.comment;return H.range=[F,V,Q.offset],H}Vx.composeDoc=Ux});var tJ=f((Ox)=>{var Ax=D8("process"),Kx=FJ(),Ex=H9(),U9=W9(),dE=WD(),Cx=cE(),Rx=I6();function V9(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 lE(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 iE{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let Y=V9($);if(J)this.warnings.push(new U9.YAMLWarning(Y,F,X));else this.errors.push(new U9.YAMLParseError(Y,F,X))},this.directives=new Vx.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=lE(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
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 iE{constructor(D={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,F,X,J)=>{let Y=V9($);if(J)this.warnings.push(new U9.YAMLWarning(Y,F,X));else this.errors.push(new U9.YAMLParseError(Y,F,X))},this.directives=new Kx.Directives({version:D.version||"1.2"}),this.options=D}decorate(D,$){let{comment:F,afterEmptyLine:X}=lE(this.prelude);if(F){let J=D.contents;if($)D.comment=D.comment?`${D.comment}
217
217
  ${F}`:F;else if(X||D.directives.docStart||!J)D.commentBefore=F;else if(dE.isCollection(J)&&!J.flow&&J.items.length>0){let Y=J.items[0];if(dE.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:lE(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(Ux.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=V9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Ax.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 U9.YAMLParseError(V9(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 U9.YAMLParseError(V9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=Kx.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 U9.YAMLParseError(V9(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 Qx.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}}}Ex.Composer=iE});var rE=f((Lx)=>{var Rx=sJ(),Ox=oJ(),Mx=W9(),nE=a3();function Zx(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 Mx.YAMLParseError([B,B+1],Y,G)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Ox.resolveFlowScalar(D,$,X);case"block-scalar":return Rx.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function qx(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:Y=-1,type:G="PLAIN"}=$,B=nE.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:`
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:lE(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(Ax.env.LOG_STREAM)console.dir(D,{depth:null});switch(D.type){case"directive":this.directives.add(D.source,($,F,X)=>{let J=V9(D);J[0]+=$,this.onError(J,"BAD_DIRECTIVE",F,X)}),this.prelude.push(D.source),this.atDirectives=!0;break;case"document":{let $=Cx.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 U9.YAMLParseError(V9(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 U9.YAMLParseError(V9(D),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=Rx.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 U9.YAMLParseError(V9(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 Ex.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}}}Ox.Composer=iE});var rE=f((Ix)=>{var Zx=sJ(),qx=oJ(),Nx=W9(),nE=a3();function Px(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 Nx.YAMLParseError([B,B+1],Y,G)};switch(D.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return qx.resolveFlowScalar(D,$,X);case"block-scalar":return Zx.resolveBlockScalar({options:{strict:$}},D,X)}}return null}function Lx(D,$){let{implicitKey:F=!1,indent:X,inFlow:J=!1,offset:Y=-1,type:G="PLAIN"}=$,B=nE.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
  `),U=B.substring(0,W),V=B.substring(W+1)+`
223
223
  `,Q=[{type:"block-scalar-header",offset:Y,indent:X,source:U}];if(!sE(Q,H))Q.push({type:"newline",offset:-1,indent:X,source:`
224
- `});return{type:"block-scalar",offset:Y,indent:X,props:Q,source:V}}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 Nx(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=nE.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">":Px(D,H);break;case'"':eJ(D,H,"double-quoted-scalar");break;case"'":eJ(D,H,"single-quoted-scalar");break;default:eJ(D,H,"scalar")}}function Px(D,$){let F=$.indexOf(`
224
+ `});return{type:"block-scalar",offset:Y,indent:X,props:Q,source:V}}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 jx(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=nE.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">":zx(D,H);break;case'"':eJ(D,H,"double-quoted-scalar");break;case"'":eJ(D,H,"single-quoted-scalar");break;default:eJ(D,H,"scalar")}}function zx(D,$){let F=$.indexOf(`
225
225
  `),X=$.substring(0,F),J=$.substring(F+1)+`
226
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(!sE(B,"end"in D?D.end:void 0))B.push({type:"newline",offset:-1,indent:G,source:`
227
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 sE(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 eJ(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})}}}Lx.createScalarToken=qx;Lx.resolveAsScalar=Zx;Lx.setScalarValue=Nx});var oE=f((Tx)=>{var wx=(D)=>("type"in D)?_5(D):W5(D);function _5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=_5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=W5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=W5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=W5(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 W5({start:D,key:$,sep:F,value:X}){let J="";for(let Y of D)J+=Y.source;if($)J+=_5($);if(F)for(let Y of F)J+=Y.source;if(X)J+=_5(X);return J}Tx.stringify=wx});var eE=f((fx)=>{var DG=Symbol("break visit"),bx=Symbol("skip children"),aE=Symbol("remove item");function C1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};tE(Object.freeze([]),D,$)}C1.BREAK=DG;C1.SKIP=bx;C1.REMOVE=aE;C1.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};C1.parentCollection=(D,$)=>{let F=C1.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 tE(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=tE(Object.freeze(D.concat([[J,G]])),Y.items[G],F);if(typeof B==="number")G=B-1;else if(B===DG)return DG;else if(B===aE)Y.items.splice(G,1),G-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}fx.visit=C1});var U5=f((mx)=>{var $G=rE(),vx=oE(),gx=eE(),FG="\uFEFF",XG="\x02",JG="\x18",GG="\x1F",hx=(D)=>!!D&&("items"in D),xx=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function yx(D){switch(D){case FG:return"<BOM>";case XG:return"<DOC>";case JG:return"<FLOW_END>";case GG:return"<SCALAR>";default:return JSON.stringify(D)}}function ux(D){switch(D){case FG:return"byte-order-mark";case XG:return"doc-mode";case JG:return"flow-error-end";case GG:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
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})}}}Ix.createScalarToken=Lx;Ix.resolveAsScalar=Px;Ix.setScalarValue=jx});var oE=f((fx)=>{var bx=(D)=>("type"in D)?_5(D):W5(D);function _5(D){switch(D.type){case"block-scalar":{let $="";for(let F of D.props)$+=_5(F);return $+D.source}case"block-map":case"block-seq":{let $="";for(let F of D.items)$+=W5(F);return $}case"flow-collection":{let $=D.start.source;for(let F of D.items)$+=W5(F);for(let F of D.end)$+=F.source;return $}case"document":{let $=W5(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 W5({start:D,key:$,sep:F,value:X}){let J="";for(let Y of D)J+=Y.source;if($)J+=_5($);if(F)for(let Y of F)J+=Y.source;if(X)J+=_5(X);return J}fx.stringify=bx});var eE=f((gx)=>{var DG=Symbol("break visit"),vx=Symbol("skip children"),aE=Symbol("remove item");function C1(D,$){if("type"in D&&D.type==="document")D={start:D.start,value:D.value};tE(Object.freeze([]),D,$)}C1.BREAK=DG;C1.SKIP=vx;C1.REMOVE=aE;C1.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};C1.parentCollection=(D,$)=>{let F=C1.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 tE(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=tE(Object.freeze(D.concat([[J,G]])),Y.items[G],F);if(typeof B==="number")G=B-1;else if(B===DG)return DG;else if(B===aE)Y.items.splice(G,1),G-=1}if(typeof X==="function"&&J==="key")X=X($,D)}}return typeof X==="function"?X($,D):X}gx.visit=C1});var U5=f((dx)=>{var $G=rE(),xx=oE(),yx=eE(),FG="\uFEFF",XG="\x02",JG="\x18",GG="\x1F",ux=(D)=>!!D&&("items"in D),mx=(D)=>!!D&&(D.type==="scalar"||D.type==="single-quoted-scalar"||D.type==="double-quoted-scalar"||D.type==="block-scalar");function px(D){switch(D){case FG:return"<BOM>";case XG:return"<DOC>";case JG:return"<FLOW_END>";case GG:return"<SCALAR>";default:return JSON.stringify(D)}}function cx(D){switch(D){case FG:return"byte-order-mark";case XG:return"doc-mode";case JG:return"flow-error-end";case GG: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}mx.createScalarToken=$G.createScalarToken;mx.resolveAsScalar=$G.resolveAsScalar;mx.setScalarValue=$G.setScalarValue;mx.stringify=vx.stringify;mx.visit=gx.visit;mx.BOM=FG;mx.DOCUMENT=XG;mx.FLOW_END=JG;mx.SCALAR=GG;mx.isCollection=hx;mx.isScalar=xx;mx.prettyToken=yx;mx.tokenType=ux});var BG=f((Xy)=>{var Q9=U5();function E2(D){switch(D){case void 0:case" ":case`
231
- `:case"\r":case"\t":return!0;default:return!1}}var DC=new Set("0123456789ABCDEFabcdef"),$y=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),V5=new Set(",[]{}"),Fy=new Set(` ,[]{}
232
- \r `),YG=(D)=>!D||Fy.has(D);class $C{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(!$||$==="#"||$===`
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}dx.createScalarToken=$G.createScalarToken;dx.resolveAsScalar=$G.resolveAsScalar;dx.setScalarValue=$G.setScalarValue;dx.stringify=xx.stringify;dx.visit=yx.visit;dx.BOM=FG;dx.DOCUMENT=XG;dx.FLOW_END=JG;dx.SCALAR=GG;dx.isCollection=ux;dx.isScalar=mx;dx.prettyToken=px;dx.tokenType=cx});var BG=f((Yy)=>{var Q9=U5();function E2(D){switch(D){case void 0:case" ":case`
231
+ `:case"\r":case"\t":return!0;default:return!1}}var DC=new Set("0123456789ABCDEFabcdef"),Jy=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),V5=new Set(",[]{}"),Gy=new Set(` ,[]{}
232
+ \r `),YG=(D)=>!D||Gy.has(D);class $C{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 $===`
@@ -244,83 +244,87 @@ ${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.pus
244
244
  `&&J>=this.pos&&J+1+$>G)D=J;else break}while(!0);return yield Q9.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(E2(J)||D&&V5.has(J))break;$=F}else if(E2(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&&V5.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&&V5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield Q9.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(YG))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(E2($)||D&&V5.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(!E2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if($y.has($))$=this.buffer[++D];else if($==="%"&&DC.has(this.buffer[D+1])&&DC.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===`
247
+ `){let Y=this.continueScalar(F+1);if(Y===-1)break;F=Math.max(F,Y-2)}}else{if(D&&V5.has(X))break;$=F}if(!X&&!this.atEnd)return this.setNext("plain-scalar");return yield Q9.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(YG))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let D=this.flowLevel>0,$=this.charAt(1);if(E2($)||D&&V5.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(!E2($)&&$!==">")$=this.buffer[++D];return yield*this.pushToIndex($===">"?D+1:D,!1)}else{let D=this.pos+1,$=this.buffer[D];while($)if(Jy.has($))$=this.buffer[++D];else if($==="%"&&DC.has(this.buffer[D+1])&&DC.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)}}Xy.Lexer=$C});var HG=f((Gy)=>{class FC{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}}}}Gy.LineCounter=FC});var WG=f((Wy)=>{var By=D8("process"),XC=U5(),Hy=BG();function S8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function JC(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function YC(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 Q5(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 w6(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 GC(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!S8($.start,"explicit-key-ind")&&!S8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,YC($.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 BC{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 Hy.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,By.env.LOG_TOKENS)console.log("|",XC.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=XC.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")GC($);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&&JC(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(JC(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 $=Q5(this.peek(2)),F=w6($),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(`
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)}}Yy.Lexer=$C});var HG=f((Hy)=>{class FC{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}}}}Hy.LineCounter=FC});var WG=f((Vy)=>{var _y=D8("process"),XC=U5(),Uy=BG();function S8(D,$){for(let F=0;F<D.length;++F)if(D[F].type===$)return!0;return!1}function JC(D){for(let $=0;$<D.length;++$)switch(D[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function YC(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 Q5(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 w6(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 GC(D){if(D.start.type==="flow-seq-start"){for(let $ of D.items)if($.sep&&!$.value&&!S8($.start,"explicit-key-ind")&&!S8($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,YC($.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 BC{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 Uy.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,_y.env.LOG_TOKENS)console.log("|",XC.prettyToken(D));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=D.length;return}let $=XC.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")GC($);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&&JC(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(JC(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 $=Q5(this.peek(2)),F=w6($),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
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(S8($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let Y=w6($.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(S8($.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(YC($.key)&&!S8($.sep,"newline")){let Y=w6($.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(S8($.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&&!S8($.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||S8($.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=Q5(F),J=w6(X);GC(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 $=Q5(D),F=w6($);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 $=Q5(D),F=w6($);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()}}}Wy.Parser=BC});var VC=f((Ry)=>{var HC=tJ(),Uy=H9(),A9=W9(),Vy=HJ(),Qy=WD(),Ay=HG(),WC=WG();function _C(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Ay.LineCounter||null,prettyErrors:$}}function Ky(D,$={}){let{lineCounter:F,prettyErrors:X}=_C($),J=new WC.Parser(F?.addNewLine),Y=new HC.Composer($),G=Array.from(Y.compose(J.parse(D)));if(X&&F)for(let B of G)B.errors.forEach(A9.prettifyError(D,F)),B.warnings.forEach(A9.prettifyError(D,F));if(G.length>0)return G;return Object.assign([],{empty:!0},Y.streamInfo())}function UC(D,$={}){let{lineCounter:F,prettyErrors:X}=_C($),J=new WC.Parser(F?.addNewLine),Y=new HC.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 A9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)G.errors.forEach(A9.prettifyError(D,F)),G.warnings.forEach(A9.prettifyError(D,F));return G}function Ey(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=UC(D,F);if(!J)return null;if(J.warnings.forEach((Y)=>Vy.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 Cy(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(Qy.isDocument(D)&&!X)return D.toString(F);return new Uy.Document(D,X,F).toString(F)}Ry.parse=Ey;Ry.parseAllDocuments=Ky;Ry.parseDocument=UC;Ry.stringify=Cy});var Ny,Py,Ly,_G,jy,b8,zy,Iy,wy,Ty,Q1D,Sy,by,fy,A5,QC,ky,vy,gy,hy,xy,yy,uy,my,py,cy,dy,ly,iy,ny,sy,ry,oy,ay,ty,ey,Du,$u,K5,Fu,Xu,UG,Ju,Gu;var VG=M(()=>{Ny=tJ(),Py=H9(),Ly=gJ(),_G=W9(),jy=n3(),b8=WD(),zy=z8(),Iy=uD(),wy=w8(),Ty=T8(),Q1D=U5(),Sy=BG(),by=HG(),fy=WG(),A5=VC(),QC=l3();ky=Ny.Composer,vy=Py.Document,gy=Ly.Schema,hy=_G.YAMLError,xy=_G.YAMLParseError,yy=_G.YAMLWarning,uy=jy.Alias,my=b8.isAlias,py=b8.isCollection,cy=b8.isDocument,dy=b8.isMap,ly=b8.isNode,iy=b8.isPair,ny=b8.isScalar,sy=b8.isSeq,ry=zy.Pair,oy=Iy.Scalar,ay=wy.YAMLMap,ty=Ty.YAMLSeq,ey=Sy.Lexer,Du=by.LineCounter,$u=fy.Parser,K5=A5.parse,Fu=A5.parseAllDocuments,Xu=A5.parseDocument,UG=A5.stringify,Ju=QC.visit,Gu=QC.visitAsync});var Yu,Bu,Hu,Wu,_u,Uu,KC,Vu,Qu,AC,Au,Ku,EC;var CC=M(()=>{vD();Yu=_.object({id:_.string().min(1),type:_.literal("filesystem"),priority:_.number().int(),readOnly:_.boolean(),config:_.object({home:_.string().min(1).optional()})}),Bu=_.object({id:_.string().min(1),type:_.literal("cloud-gateway"),priority:_.number().int(),readOnly:_.boolean(),config:_.object({url:_.string().min(1),token:_.string(),defaultCategory:_.string().optional(),defaultTypeId:_.string().optional()})}),Hu=_.discriminatedUnion("type",[Yu,Bu]),Wu=_.object({binary:_.string().min(1).optional(),extraArgs:_.array(_.string()).optional(),env:_.record(_.string()).optional(),cliVersion:_.string().min(1).optional()}).strict(),_u=_.record(_.unknown()).and(_.object({cmd:Wu.optional()}).partial()),Uu=_.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),KC=_.lazy(()=>_.object({engine:_.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:_.string().min(1),overrides:_u.optional(),modelId:_.string().min(1).optional(),reasoningId:_.string().min(1).optional(),permissionPolicy:_.enum(["auto","supervised","plan"]).optional(),fallbacks:_.array(_.object({executor:KC,onErrorKinds:_.array(Uu).min(1),maxRetries:_.number().int().min(1).optional()})).optional()})),Vu=_.discriminatedUnion("channel",[_.object({channel:_.literal("web"),inboundToken:_.string().optional()}),_.object({channel:_.literal("line"),channelSecret:_.string(),channelAccessToken:_.string()}),_.object({channel:_.literal("telegram"),botToken:_.string(),webhookSecretToken:_.string().optional()}),_.object({channel:_.literal("lark"),appId:_.string(),appSecret:_.string(),encryptKey:_.string(),verificationToken:_.string()}),_.object({channel:_.literal("whatsapp"),phoneNumberId:_.string(),accessToken:_.string(),appSecret:_.string(),verifyToken:_.string()})]),Qu=_.object({channel:_.enum(["web","line","telegram","lark","whatsapp"]),enabled:_.boolean(),credentials:Vu,profile:_.object({displayName:_.string().optional(),avatarUrl:_.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),AC=_.enum(["auto","ask","deny"]),Au=_.object({default:AC,rules:_.array(_.object({pattern:_.string().min(1),action:AC}))}),Ku=_.object({maxHistoryMessages:_.number().int().min(1).max(200).optional()}),EC=_.object({brains:_.array(Hu),brainWriteTarget:_.string(),brainRetrieval:_.enum(["merge-by-priority","first-match"]),executor:KC,channels:_.array(Qu),evolution:_.object({enabled:_.boolean(),observationRetentionDays:_.number().int().nonnegative()}),toolPolicy:Au.optional(),orchestrator:Ku.optional()})});import{writeFile as Eu}from"fs/promises";async function I0(D){let $=await D.select().from(U2).where(u(U2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function K9(D,$,F,X={}){let J=EC.safeParse(F);if(!J.success)throw new v2(J.error.issues);let Y=await I0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==Y.version)throw new g2(X.ifMatchVersion,Y.version);let G=J.data,B=new Set(s2(Y.config).map((K)=>K.path)),H=s2(G),W=new Set(H.map((K)=>K.path));for(let{path:K,value:C}of H)if(C.length>0)await $.put(K,C);for(let K of B)if(!W.has(K))await $.remove(K);let U=X4(G),V=Y.version+1,Q=new Date().toISOString();return await D.update(U2).set({configJson:U,version:V,updatedAt:Q,updatedBy:"api"}).where(u(U2.pk,"default")).run(),{config:U,version:V}}async function E9(D,$,F){let X=gY(D),J=UG({version:F,config:$});try{await Eu(X,J,{encoding:"utf8"})}catch(Y){R.warn(`[mirror-config] failed to write ${X}: ${String(Y)}`)}}async function T6(D){let $=await K9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await E9(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",R.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var v2,g2;var QG=M(()=>{q2();TD();FD();C0();VG();CC();v2=class v2 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 E5(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 C5($.jobId);return{job:F}}}}var C5;var AG=M(()=>{C5=class C5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class KG{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=$3(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 iD["chat.send"].method:await this.handleChatSend($,G);break;case iD["config.get"].method:await this.handleConfigGet($);break;case iD["config.put"].method:await this.handleConfigPut($,G);break;case iD["token.rotate"].method:await this.handleTokenRotate($);break;case iD["logs.tail"].method:await this.handleLogsTail($,G);break;case iD["approval.list"].method:this.handleApprovalList($);break;case iD["approval.grant"].method:this.handleApprovalGrant($,G);break;case iD["cron.list"].method:await this.handleCronList($,G);break;case iD["cron.add"].method:await this.handleCronAdd($,G);break;case iD["cron.remove"].method:await this.handleCronRemove($,G);break;case iD["cron.update"].method:await this.handleCronUpdate($,G);break;case iD["workers.info"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;case iD["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){R.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=String($.content),J=typeof $.conversationId==="string"?$.conversationId:void 0,Y=J?`gw:conv:${J}`:`gw:${this.deps.workerId}:${crypto.randomUUID()}`,G={workerId:this.deps.workerId,channel:"web",accountId:"sys:gateway",chatId:Y,text:X,receivedAt:new Date().toISOString(),raw:{source:"gateway",...$.metadata!==void 0?{metadata:$.metadata}:{}}};this.deps.getRuntime().orchestrator.ingest(G).catch((B)=>{R.warn(`[gateway-dispatcher ${this.deps.workerId}] orchestrator.ingest failed: ${String(B)}`)}),this.replyOk(D,{conversationId:Y,accepted:!0})}async handleConfigGet(D){if(!this.deps.handlers?.configGet){this.replyError(D,"method_not_implemented","config.get handler not wired");return}let $=await this.deps.handlers.configGet();this.replyOk(D,$)}async handleConfigPut(D,$){if(!this.deps.handlers?.configPut){this.replyError(D,"method_not_implemented","config.put handler not wired");return}let F=Number($.ifMatch),X=$.config;try{let J=await this.deps.handlers.configPut({ifMatch:F,config:X});this.replyOk(D,J)}catch(J){if(J instanceof v2){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 C5){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}})}}var RC=M(()=>{eD();FD();QG();AG()});class EG{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=C2($.conversationId);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:s.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=C2($.conversationId),X=$.call??{},J=C2(X.id),Y=C2(X.name);if(!F||!J||!Y)return null;return{name:s.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:Y,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=C2($.conversationId);if(!F)return null;return{name:s.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=C2($.conversationId);if(!F)return null;return{name:s.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=C2($.conversationId),X=C2($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:s.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=C2($.taskId),X=C2($.toolCallId),J=C2($.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:s.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:G,expiresAt:Y}}}default:return null}}}function C2(D){return typeof D==="string"&&D.length>0?D:null}var OC=M(()=>{eD()});function R5(D){let $=GK(D),F=!1,X=null,J=new EG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(G)=>X?.send(G)}),Y=new KG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(G)=>X?.send(G)});return X=new eX({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(G)=>{F=!1,J.stop(),R.info(`[gateway-client ${$.workerId}] disconnected: ${G}`)},onFrame:(G)=>{if(G.type==="request"){Y.handleRequest(G);return}R.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 MC(D){await D.stop()}var ZC=M(()=>{FD();JK();RC();OC()});function Cu(D){if(D instanceof Error)return D.message;return String(D)}async function O5(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:Cu(X)}]}}}function Ou(D){return Ru.has(D)}function Mu(D){if(D instanceof Error)return D.message;return String(D)}async function M5(D,$,F={}){if(!Ou($))throw PD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw PD.notFound(`channel '${$}' is not bound or not enabled`);let J=J1($);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:Mu(G)}}}var Ru;var qC=M(()=>{N0();w3();Ru=new Set(["web","line","telegram","lark","whatsapp"])});function Zu(D){if(D instanceof Error)return D.message;return String(D)}async function qu(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:Zu(J)}}finally{clearTimeout(X)}}async function Z5(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 qu(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 Pu(D){if(!D)return"unknown";return D.status}async function NC(D){try{let $=await D();return Pu($??null)}catch{return"unknown"}}function Lu(D){let $=ju(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 ju(D){try{return C8(D)}catch{return null}}function zu(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function q5(D,$,F){let{runtime:X}=D,J=await NC(()=>X.executor.health()),Y=await NC(()=>X.brain.health()),G=$.brains.map((U)=>({id:U.id,type:U.type,status:Y})),B=Lu($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((U)=>{let V=zu(F.advertisedBaseUrl,U.channel);return{channel:U.channel,enabled:U.enabled,...V?{webhookUrl:V}:{}}});return{workerId:D.workerId,runtimeVersion:Nu,configVersion:D.configVersion,brains:G,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var Nu="0.2.0";var PC=M(()=>{D1()});async function f8(D,$,F){let X=X6(),{ciphertext:J,nonce:Y,authTag:G}=$.encryptString(X),B=new Date().toISOString();return await D.update(v0).set({apiTokenEnc:J,nonce:Y,authTag:G,rotatedAt:B}).where(u(v0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var LC=M(()=>{TD();C0();WX()});async function N5(D){return D.list()}async function P5(D,$,F){if(!$||!$.trim())throw PD.badRequest("secret key is required");if(F.length===0)throw PD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function L5(D,$){if(!$||!$.trim())throw PD.badRequest("secret key is required");if(await D.get($)===null)throw PD.notFound(`secret '${$}' not found`);await D.remove($)}var jC=M(()=>{N0()});class R1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new zC);let $=D.timeoutMs??CG,F=Date.now()+$,X=R1.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=R1.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 zC,CG=60000;var j5=M(()=>{zC=class zC extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class wC{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 z5(){return Date.now()}function O1(){return new Date().toISOString()}function RG(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class M1{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:O1(),lastActivityAt:O1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let Y={handle:J,req:D,enqueuedAt:z5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},G=this.groups.get(D.group);if(!G)G=new wC,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,U=Math.max(0,B-H),V=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[G]={limit:B,active:H,queued:W,available:Math.min(U,V)}}let Y=this.terminalLog.slice(-10).map((G)=>({id:G.handle.id,engine:G.handle.engine,group:G.handle.group,state:G.handle.state,terminatedAt:G.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:Y}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),RG(this.gcTimer)}gcTerminal(){let D=z5()-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=O1(),this.terminalLog.push({handle:D.handle,recordedAt:z5()}),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($){R.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),RG(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(($)=>R.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=Iu[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=O1(),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=O1(),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=O1(),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:z5()}),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),RG(D.stallTimer)}onActivity(D){if(IC.has(D.handle.state))return;D.handle.lastActivityAt=O1(),this.armStallTimer(D)}onStall(D){if(IC.has(D.handle.state))return;if(D.cancelRequested)return;R.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var IC,Iu;var TC=M(()=>{FD();IC=new Set(["completed","failed","cancelled"]),Iu={interactive:3,default:2,background:1}});class S6{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??wu}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 R.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var wu=30000;var SC=M(()=>{FD()});var OG=M(()=>{SC()});function bC(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:bC(D.tags)},createdAt:$,updatedAt:F};if(typeof Y==="number")B.score=Y;return B}function Tu(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 ZG{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new S6({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(Tu)}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??bC($.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 fC=M(()=>{OG()});import{join as I5}from"path";async function kC(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function vC(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:K5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function Su(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=K5(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}=vC(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 gC(D){let $=I5(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=I5($,Y);try{let H=await Bun.file(G).text(),W=Su(H,G);if(W){let U=await kC(H);J.push({...W,hash:U})}}catch{}}return J}catch{return[]}}async function qG(D){let $=I5(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=I5($,Y);try{let H=await Bun.file(G).text(),W=await kC(H),{metadata:U,content:V}=vC(H),Q=Y.replace(/\.md$/,"");J.push({id:String(U.id??Q),title:String(U.title??Q),content:V,metadata:U,filePath:G,hash:W,createdAt:U.createdAt?String(U.createdAt):void 0,updatedAt:U.updatedAt?String(U.updatedAt):void 0})}catch{}}return J}catch{return[]}}var hC=M(()=>{VG()});import{watch as bu}from"fs";import{join as NG}from"path";function fu(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class PG{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 bu(D,{recursive:!0},(F,X)=>{if(!X)return;let J=NG(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:fu(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=NG(this.home,"skills"),$=NG(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 xC=()=>{};import{existsSync as ku,mkdirSync as vu}from"fs";import{access as gu,stat as hu}from"fs/promises";import{join as LG}from"path";function xu(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function yC(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let G=await hu(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 yu(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 uu(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 mu(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function pu(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function cu(D,$,F,X){let J=LG(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}
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 $=Q5(D),F=w6($);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 $=Q5(D),F=w6($);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()}}}Vy.Parser=BC});var VC=f((Zy)=>{var HC=tJ(),Ay=H9(),A9=W9(),Ky=HJ(),Ey=WD(),Cy=HG(),WC=WG();function _C(D){let $=D.prettyErrors!==!1;return{lineCounter:D.lineCounter||$&&new Cy.LineCounter||null,prettyErrors:$}}function Ry(D,$={}){let{lineCounter:F,prettyErrors:X}=_C($),J=new WC.Parser(F?.addNewLine),Y=new HC.Composer($),G=Array.from(Y.compose(J.parse(D)));if(X&&F)for(let B of G)B.errors.forEach(A9.prettifyError(D,F)),B.warnings.forEach(A9.prettifyError(D,F));if(G.length>0)return G;return Object.assign([],{empty:!0},Y.streamInfo())}function UC(D,$={}){let{lineCounter:F,prettyErrors:X}=_C($),J=new WC.Parser(F?.addNewLine),Y=new HC.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 A9.YAMLParseError(B.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(X&&F)G.errors.forEach(A9.prettifyError(D,F)),G.warnings.forEach(A9.prettifyError(D,F));return G}function Oy(D,$,F){let X=void 0;if(typeof $==="function")X=$;else if(F===void 0&&$&&typeof $==="object")F=$;let J=UC(D,F);if(!J)return null;if(J.warnings.forEach((Y)=>Ky.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 My(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(Ey.isDocument(D)&&!X)return D.toString(F);return new Ay.Document(D,X,F).toString(F)}Zy.parse=Oy;Zy.parseAllDocuments=Ry;Zy.parseDocument=UC;Zy.stringify=My});var jy,zy,Iy,_G,wy,b8,Ty,Sy,by,fy,Z1D,ky,vy,gy,A5,QC,hy,xy,yy,uy,my,py,cy,dy,ly,iy,ny,sy,ry,oy,ay,ty,ey,Du,$u,Fu,Xu,Ju,K5,Gu,Yu,UG,Bu,Hu;var VG=M(()=>{jy=tJ(),zy=H9(),Iy=gJ(),_G=W9(),wy=n3(),b8=WD(),Ty=z8(),Sy=uD(),by=w8(),fy=T8(),Z1D=U5(),ky=BG(),vy=HG(),gy=WG(),A5=VC(),QC=l3();hy=jy.Composer,xy=zy.Document,yy=Iy.Schema,uy=_G.YAMLError,my=_G.YAMLParseError,py=_G.YAMLWarning,cy=wy.Alias,dy=b8.isAlias,ly=b8.isCollection,iy=b8.isDocument,ny=b8.isMap,sy=b8.isNode,ry=b8.isPair,oy=b8.isScalar,ay=b8.isSeq,ty=Ty.Pair,ey=Sy.Scalar,Du=by.YAMLMap,$u=fy.YAMLSeq,Fu=ky.Lexer,Xu=vy.LineCounter,Ju=gy.Parser,K5=A5.parse,Gu=A5.parseAllDocuments,Yu=A5.parseDocument,UG=A5.stringify,Bu=QC.visit,Hu=QC.visitAsync});var Wu,_u,Uu,Vu,Qu,Au,KC,Ku,Eu,AC,Cu,Ru,EC;var CC=M(()=>{vD();Wu=_.object({id:_.string().min(1),type:_.literal("filesystem"),priority:_.number().int(),readOnly:_.boolean(),config:_.object({home:_.string().min(1).optional()})}),_u=_.object({id:_.string().min(1),type:_.literal("cloud-gateway"),priority:_.number().int(),readOnly:_.boolean(),config:_.object({url:_.string().min(1),token:_.string(),defaultCategory:_.string().optional(),defaultTypeId:_.string().optional()})}),Uu=_.discriminatedUnion("type",[Wu,_u]),Vu=_.object({binary:_.string().min(1).optional(),extraArgs:_.array(_.string()).optional(),env:_.record(_.string()).optional(),cliVersion:_.string().min(1).optional()}).strict(),Qu=_.record(_.unknown()).and(_.object({cmd:Vu.optional()}).partial()),Au=_.enum(["rate-limit","timeout","auth","network","server-5xx","unknown"]),KC=_.lazy(()=>_.object({engine:_.enum(["http","mcp","cli","claude-code","acp","codex","cursor"]),variant:_.string().min(1),overrides:Qu.optional(),modelId:_.string().min(1).optional(),reasoningId:_.string().min(1).optional(),permissionPolicy:_.enum(["auto","supervised","plan"]).optional(),fallbacks:_.array(_.object({executor:KC,onErrorKinds:_.array(Au).min(1),maxRetries:_.number().int().min(1).optional()})).optional()})),Ku=_.discriminatedUnion("channel",[_.object({channel:_.literal("web"),inboundToken:_.string().optional()}),_.object({channel:_.literal("line"),channelSecret:_.string(),channelAccessToken:_.string()}),_.object({channel:_.literal("telegram"),botToken:_.string(),webhookSecretToken:_.string().optional()}),_.object({channel:_.literal("lark"),appId:_.string(),appSecret:_.string(),encryptKey:_.string(),verificationToken:_.string()}),_.object({channel:_.literal("whatsapp"),phoneNumberId:_.string(),accessToken:_.string(),appSecret:_.string(),verifyToken:_.string()})]),Eu=_.object({channel:_.enum(["web","line","telegram","lark","whatsapp"]),enabled:_.boolean(),credentials:Ku,profile:_.object({displayName:_.string().optional(),avatarUrl:_.string().optional()}).optional()}).refine((D)=>D.channel===D.credentials.channel,{message:"channel and credentials.channel must match",path:["credentials","channel"]}),AC=_.enum(["auto","ask","deny"]),Cu=_.object({default:AC,rules:_.array(_.object({pattern:_.string().min(1),action:AC}))}),Ru=_.object({maxHistoryMessages:_.number().int().min(1).max(200).optional()}),EC=_.object({brains:_.array(Uu),brainWriteTarget:_.string(),brainRetrieval:_.enum(["merge-by-priority","first-match"]),executor:KC,channels:_.array(Eu),evolution:_.object({enabled:_.boolean(),observationRetentionDays:_.number().int().nonnegative()}),toolPolicy:Cu.optional(),orchestrator:Ru.optional()})});import{writeFile as Ou}from"fs/promises";async function I0(D){let $=await D.select().from(U2).where(u(U2.pk,"default")).get();if(!$)throw Error("worker_config row missing \u2014 bootstrap did not run");return{config:$.configJson,version:$.version}}async function K9(D,$,F,X={}){let J=EC.safeParse(F);if(!J.success)throw new v2(J.error.issues);let Y=await I0(D);if(X.ifMatchVersion!==void 0&&X.ifMatchVersion!==Y.version)throw new g2(X.ifMatchVersion,Y.version);let G=J.data,B=new Set(s2(Y.config).map((K)=>K.path)),H=s2(G),W=new Set(H.map((K)=>K.path));for(let{path:K,value:C}of H)if(C.length>0)await $.put(K,C);for(let K of B)if(!W.has(K))await $.remove(K);let U=X4(G),V=Y.version+1,Q=new Date().toISOString();return await D.update(U2).set({configJson:U,version:V,updatedAt:Q,updatedBy:"api"}).where(u(U2.pk,"default")).run(),{config:U,version:V}}async function E9(D,$,F){let X=gY(D),J=UG({version:F,config:$});try{await Ou(X,J,{encoding:"utf8"})}catch(Y){R.warn(`[mirror-config] failed to write ${X}: ${String(Y)}`)}}async function T6(D){let $=await K9(D.db,D.vault,D.raw,D.ifMatchVersion===void 0?{}:{ifMatchVersion:D.ifMatchVersion});await E9(D.workerId,$.config,$.version);let F="ok";try{await D.reloadRuntime($.config,$.version)}catch(X){F="failed",R.error("[applyConfigUpdate] runtime reload failed",X)}return{...$,runtimeReload:F}}var v2,g2;var QG=M(()=>{q2();TD();FD();C0();VG();CC();v2=class v2 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 E5(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 C5($.jobId);return{job:F}}}}var C5;var AG=M(()=>{C5=class C5 extends Error{jobId;constructor(D){super(`cron job ${D} \u4E0D\u5B58\u5728`);this.jobId=D;this.name="CronJobNotFoundError"}}});class KG{deps;constructor(D){this.deps=D}async handleRequest(D){let{id:$,method:F,params:X}=D;try{let J=$3(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 iD["chat.send"].method:await this.handleChatSend($,G);break;case iD["config.get"].method:await this.handleConfigGet($);break;case iD["config.put"].method:await this.handleConfigPut($,G);break;case iD["token.rotate"].method:await this.handleTokenRotate($);break;case iD["logs.tail"].method:await this.handleLogsTail($,G);break;case iD["approval.list"].method:this.handleApprovalList($);break;case iD["approval.grant"].method:this.handleApprovalGrant($,G);break;case iD["cron.list"].method:await this.handleCronList($,G);break;case iD["cron.add"].method:await this.handleCronAdd($,G);break;case iD["cron.remove"].method:await this.handleCronRemove($,G);break;case iD["cron.update"].method:await this.handleCronUpdate($,G);break;case iD["workers.info"].method:this.replyError($,"method_not_implemented",`${F} is not yet implemented on node side`);break;case iD["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){R.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=Mu(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)=>{R.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 v2){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 C5){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 Mu(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 RC=M(()=>{eD();FD();QG();AG()});class EG{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=C2($.conversationId);if(!F)return null;let X=typeof $.delta==="string"?$.delta:"";return{name:s.AGENT_THINKING,payload:{conversationId:F,chunk:X}}}case"orchestrator.tool_call":{let F=C2($.conversationId),X=$.call??{},J=C2(X.id),Y=C2(X.name);if(!F||!J||!Y)return null;return{name:s.AGENT_TOOL_CALL,payload:{conversationId:F,toolCallId:J,toolName:Y,status:"pending",...X.arguments!==void 0?{args:X.arguments}:{}}}}case"orchestrator.finished":{let F=C2($.conversationId);if(!F)return null;return{name:s.AGENT_DONE,payload:{conversationId:F,finishReason:"stop"}}}case"orchestrator.error":{let F=C2($.conversationId);if(!F)return null;return{name:s.AGENT_DONE,payload:{conversationId:F,finishReason:"error"}}}case"conversation.message":{let F=C2($.conversationId),X=C2($.role);if(!F||!X)return null;if(X!=="user"&&X!=="assistant"&&X!=="system")return null;return{name:s.CHAT_MESSAGE,payload:{conversationId:F,role:X,content:typeof $.content==="string"?$.content:"",createdAt:Date.parse(D.at)||Date.now()}}}case"approval.requested":{let F=C2($.taskId),X=C2($.toolCallId),J=C2($.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:s.APPROVAL_REQUESTED,payload:{taskId:F,toolCallId:X,toolName:J,params:G,expiresAt:Y}}}default:return null}}}function C2(D){return typeof D==="string"&&D.length>0?D:null}var OC=M(()=>{eD()});function R5(D){let $=GK(D),F=!1,X=null,J=new EG({workerId:$.workerId,getBus:()=>D.getRuntime().bus,sendEvent:(G)=>X?.send(G)}),Y=new KG({workerId:$.workerId,getRuntime:D.getRuntime,...D.handlers?{handlers:D.handlers}:{},sendResponse:(G)=>X?.send(G)});return X=new eX({options:$,onConnected:()=>{F=!0,J.start()},onDisconnected:(G)=>{F=!1,J.stop(),R.info(`[gateway-client ${$.workerId}] disconnected: ${G}`)},onFrame:(G)=>{if(G.type==="request"){Y.handleRequest(G);return}R.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 MC(D){await D.stop()}var ZC=M(()=>{FD();JK();RC();OC()});function Zu(D){if(D instanceof Error)return D.message;return String(D)}async function O5(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:Zu(X)}]}}}function Nu(D){return qu.has(D)}function Pu(D){if(D instanceof Error)return D.message;return String(D)}async function M5(D,$,F={}){if(!Nu($))throw PD.notFound(`unknown channel '${$}'`);let X=D.runtime.channels.get($);if(!X)throw PD.notFound(`channel '${$}' is not bound or not enabled`);let J=J1($);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:Pu(G)}}}var qu;var qC=M(()=>{N0();w3();qu=new Set(["web","line","telegram","lark","whatsapp"])});function Lu(D){if(D instanceof Error)return D.message;return String(D)}async function ju(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:Lu(J)}}finally{clearTimeout(X)}}async function Z5(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 ju(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 Iu(D){if(!D)return"unknown";return D.status}async function NC(D){try{let $=await D();return Iu($??null)}catch{return"unknown"}}function wu(D){let $=Tu(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 Tu(D){try{return C8(D)}catch{return null}}function Su(D,$){if(!D)return;return`${D.replace(/\/+$/,"")}/${$}/webhook`}async function q5(D,$,F){let{runtime:X}=D,J=await NC(()=>X.executor.health()),Y=await NC(()=>X.brain.health()),G=$.brains.map((U)=>({id:U.id,type:U.type,status:Y})),B=wu($.executor),H={type:$.executor.engine,...B===void 0?{}:{model:B},status:J},W=$.channels.map((U)=>{let V=Su(F.advertisedBaseUrl,U.channel);return{channel:U.channel,enabled:U.enabled,...V?{webhookUrl:V}:{}}});return{workerId:D.workerId,runtimeVersion:zu,configVersion:D.configVersion,brains:G,executor:H,channels:W,evolutionEnabled:$.evolution.enabled,startedAt:D.startedAt,...F.advertisedBaseUrl?{advertisedBaseUrl:F.advertisedBaseUrl}:{}}}var zu="0.2.0";var PC=M(()=>{D1()});async function f8(D,$,F){let X=X6(),{ciphertext:J,nonce:Y,authTag:G}=$.encryptString(X),B=new Date().toISOString();return await D.update(v0).set({apiTokenEnc:J,nonce:Y,authTag:G,rotatedAt:B}).where(u(v0.pk,"default")).run(),F.tokenPlaintext=X,{newToken:X}}var LC=M(()=>{TD();C0();WX()});async function N5(D){return D.list()}async function P5(D,$,F){if(!$||!$.trim())throw PD.badRequest("secret key is required");if(F.length===0)throw PD.badRequest("secret value must be a non-empty string");await D.put($,F)}async function L5(D,$){if(!$||!$.trim())throw PD.badRequest("secret key is required");if(await D.get($)===null)throw PD.notFound(`secret '${$}' not found`);await D.remove($)}var jC=M(()=>{N0()});class R1{pending=new Map;disposed=!1;wait(D){if(this.disposed)return Promise.reject(new zC);let $=D.timeoutMs??CG,F=Date.now()+$,X=R1.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=R1.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 zC,CG=60000;var j5=M(()=>{zC=class zC extends Error{name="ApprovalDisposedError";constructor(){super("approval store disposed")}}});class wC{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 z5(){return Date.now()}function O1(){return new Date().toISOString()}function RG(D){if(D===null||typeof D!=="object"||!("unref"in D))return;try{D.unref()}catch{}}class M1{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:O1(),lastActivityAt:O1(),cancel:async()=>this.cancelHandle(X)};this.handles.set(X,J);let Y={handle:J,req:D,enqueuedAt:z5(),enqueueSeq:++this.enqueueSeq,resolve:$,reject:F,cancelledBeforeStart:!1},G=this.groups.get(D.group);if(!G)G=new wC,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,U=Math.max(0,B-H),V=Math.max(0,this.opts.maxConcurrentTotal-this.totalActive());J[G]={limit:B,active:H,queued:W,available:Math.min(U,V)}}let Y=this.terminalLog.slice(-10).map((G)=>({id:G.handle.id,engine:G.handle.engine,group:G.handle.group,state:G.handle.state,terminatedAt:G.handle.updatedAt})).reverse();return{maxConcurrentTotal:this.opts.maxConcurrentTotal,totalActive:this.totalActive(),totalQueued:F,availableSlots:Math.max(0,this.opts.maxConcurrentTotal-this.totalActive()),perEngine:J,byState:D,recentTerminal:Y}}dispose(){if(this.disposed=!0,this.gcTimer)clearInterval(this.gcTimer),this.gcTimer=null;for(let D of this.running.values()){if(D.stallTimer)clearTimeout(D.stallTimer);if(D.killTimer)clearTimeout(D.killTimer)}}totalActive(){return this.running.size}startGcLoop(){if(this.opts.gcIntervalMs<=0)return;this.gcTimer=setInterval(()=>this.gcTerminal(),this.opts.gcIntervalMs),RG(this.gcTimer)}gcTerminal(){let D=z5()-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=O1(),this.terminalLog.push({handle:D.handle,recordedAt:z5()}),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($){R.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),RG(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(($)=>R.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=bu[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=O1(),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=O1(),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=O1(),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:z5()}),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),RG(D.stallTimer)}onActivity(D){if(IC.has(D.handle.state))return;D.handle.lastActivityAt=O1(),this.armStallTimer(D)}onStall(D){if(IC.has(D.handle.state))return;if(D.cancelRequested)return;R.warn(`[process-manager] stall detected for ${D.handle.id} (engine=${D.handle.engine}, group=${D.handle.group})`),this.cancelRunning(D)}}var IC,bu;var TC=M(()=>{FD();IC=new Set(["completed","failed","cancelled"]),bu={interactive:3,default:2,background:1}});class S6{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??fu}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 R.warn(`[mcp] tool '${D}' text is not JSON, returning raw string`),X.text}}}var fu=30000;var SC=M(()=>{FD()});var OG=M(()=>{SC()});function bC(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:bC(D.tags)},createdAt:$,updatedAt:F};if(typeof Y==="number")B.score=Y;return B}function ku(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 ZG{name="cloud-gateway";client;defaultCategory;defaultTypeId;constructor(D){this.client=new S6({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(ku)}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??bC($.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 fC=M(()=>{OG()});import{join as I5}from"path";async function kC(D){let $=new Bun.CryptoHasher("sha256");return $.update(D),$.digest("hex")}function vC(D){let $=D.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);if(!$)return{metadata:{},content:D};try{return{metadata:K5($[1]??"")??{},content:$[2]??""}}catch{return{metadata:{},content:D}}}function vu(D,$){let F=$.split(".").pop()?.toLowerCase();if(F==="yaml"||F==="yml")try{let X=K5(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}=vC(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 gC(D){let $=I5(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=I5($,Y);try{let H=await Bun.file(G).text(),W=vu(H,G);if(W){let U=await kC(H);J.push({...W,hash:U})}}catch{}}return J}catch{return[]}}async function qG(D){let $=I5(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=I5($,Y);try{let H=await Bun.file(G).text(),W=await kC(H),{metadata:U,content:V}=vC(H),Q=Y.replace(/\.md$/,"");J.push({id:String(U.id??Q),title:String(U.title??Q),content:V,metadata:U,filePath:G,hash:W,createdAt:U.createdAt?String(U.createdAt):void 0,updatedAt:U.updatedAt?String(U.updatedAt):void 0})}catch{}}return J}catch{return[]}}var hC=M(()=>{VG()});import{watch as gu}from"fs";import{join as NG}from"path";function hu(D){return D.includes("/skills/")||D.includes("\\skills\\")?"skill":"memory"}class PG{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 gu(D,{recursive:!0},(F,X)=>{if(!X)return;let J=NG(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:hu(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=NG(this.home,"skills"),$=NG(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 xC=()=>{};import{existsSync as xu,mkdirSync as yu}from"fs";import{access as uu,stat as mu}from"fs/promises";import{join as LG}from"path";function pu(D){return{id:D.filePath,name:D.name,description:D.description,version:D.version,tags:D.capabilities}}async function yC(D,$){let{createdAt:F,updatedAt:X}=D;if(!F||!X)try{let G=await mu(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 cu(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 du(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 lu(D){if(D==="feedback"||D==="project"||D==="reference"||D==="user")return D;return"user"}function iu(D){return D.toLowerCase().replace(/[^a-z0-9_\- ]/g,"").replace(/\s+/g,"_").replace(/_+/g,"_").replace(/^_|_$/g,"").slice(0,64)}async function nu(D,$,F,X){let J=LG(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 jG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new PG({home:D.home})}async health(){let D=new Date().toISOString();try{return await gu(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await gC(this.home)).map(xu)}async listMemories(D){let $=await qG(this.home),F=await Promise.all($.map((X)=>yC(X)));return uu(F,D)}async searchMemories(D){let $=await qG(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)=>yC(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=mu($.type),Y=LG(this.home,"memories");if(!ku(Y))vu(Y,{recursive:!0});let G=pu(F),B=`${G}.md`,H=LG(Y,B),W=`---
260
+ `)}class jG{name="filesystem";home;watcher;watcherStarted=!1;constructor(D){this.home=D.home,this.watcher=new PG({home:D.home})}async health(){let D=new Date().toISOString();try{return await uu(this.home),{name:this.name,status:"healthy",lastChecked:D}}catch{return{name:this.name,status:"down",lastChecked:D}}}async listSkills(){return(await gC(this.home)).map(pu)}async listMemories(D){let $=await qG(this.home),F=await Promise.all($.map((X)=>yC(X)));return du(F,D)}async searchMemories(D){let $=await qG(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)=>yC(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=lu($.type),Y=LG(this.home,"memories");if(!xu(Y))yu(Y,{recursive:!0});let G=iu(F),B=`${G}.md`,H=LG(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 cu(Y,F,B,X);let U=new Date().toISOString();return{id:G,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:U,updatedAt:U}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=yu($);if(F)D(F)})}}var uC=M(()=>{hC();xC()});class zG{name="multi";sources;writeTargetId;retrieval;constructor(D){this.sources=[...D.sources].sort(($,F)=>F.priority-$.priority),this.writeTargetId=D.writeTargetId,this.retrieval=D.retrieval}async health(){let $=(await Promise.all(this.sources.map((F)=>F.health().catch(()=>({name:F.id,status:"down",lastChecked:new Date().toISOString()}))))).some((F)=>F.status==="down");return{name:this.name,status:$?"degraded":"healthy",lastChecked:new Date().toISOString()}}async listSkills(){return(await Promise.all(this.sources.map(($)=>$.listSkills().catch(()=>[])))).flat()}async listMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.listMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.listMemories(D).catch(()=>[])))).flat()}async searchMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.searchMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.searchMemories(D).catch(()=>[])))).flat()}async writeMemory(D){let $=this.sources.find((F)=>F.id===this.writeTargetId&&!F.readOnly)??this.sources.find((F)=>!F.readOnly);if(!$)throw Error("MultiBrainProvider: no writable brain source configured");return $.writeMemory(D)}watch(D){let $=this.sources.map((F)=>F.watch?F.watch(D):()=>{return});return()=>$.forEach((F)=>F())}}function du(D,$){let F;if($.type==="filesystem"){let X=$.config.home??z1(D);F=new jG({home:X})}else F=new ZG({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 mC(D,$){let F=$.brains.map((X)=>du(D,X));return new zG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var pC=M(()=>{q2();fC();uC()});function cC(D){return D.on((F)=>{try{lu(F)}catch(X){R.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function lu(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;p().insert(_2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var dC=M(()=>{TD();FD()});function iC(D,$=IG){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let W=F;W<=X;W++){if(H.length<W)break;for(let U=0;U+W<=H.length;U++){let V=H.slice(U,U+W),Q=su(V),K=J.get(Q);if(K)K.occurrences+=1,K.conversations.add(B);else J.set(Q,{toolSequence:V,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=ru(B.occurrences/Y);G.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:nu(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}),iu(G)}function iu(D){let $=[];for(let F of D){if($.find((Y)=>lC(F.toolSequence,Y.toolSequence)))continue;let J=$.findIndex((Y)=>lC(Y.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function lC(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function nu(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 su(D){return D.join("|")}function ru(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var IG;var nC=M(()=>{IG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as ou}from"crypto";import au from"process";function Dm(D){return{windowSize:D?.windowSize??w5("EVOLUTION_PROPOSER_WINDOW",tu),maxDraftsPerRun:D?.maxDraftsPerRun??w5("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",eu),intervalMs:D?.intervalMs??w5("EVOLUTION_PROPOSER_INTERVAL_MS",rC)}}async function $m(D){let $=Dm(D),F=p(),X=F.select({conversationId:_2.conversationId}).from(_2).orderBy(J0(_2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((U)=>U.conversationId).filter((U)=>typeof U==="string"&&U.length>0)));if(J.length===0)return R.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let Y=F.select({conversationId:n2.conversationId,toolName:n2.toolName}).from(n2).where(N7(n2.conversationId,J)).orderBy(_3(n2.conversationId),_3(n2.id)).all(),G=new Map;for(let U of Y){if(!U.conversationId)continue;let V=G.get(U.conversationId);if(V)V.push(U.toolName);else G.set(U.conversationId,[U.toolName])}let B=iC(G,{...IG,windowSize:$.windowSize}),H=Xm(F),W=0;for(let U of B){if(W>=$.maxDraftsPerRun)break;let V=U.toolSequence.join("|");if(H.has(V))continue;let Q=Jm(U);F.insert(R0).values(Q).run(),H.add(V),W+=1,R.info(`[evolution/proposer] wrote draft ${Q.proposedName} (occurrences=${U.occurrences}, convs=${U.uniqueConversations})`)}return R.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function oC(D){let $=D??w5("EVOLUTION_PROPOSER_INTERVAL_MS",rC),F=setInterval(()=>{$m().catch((X)=>R.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Fm(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 Xm(D){let $=new Set,F=D.select({bodyMarkdown:R0.bodyMarkdown}).from(R0).all();for(let J of F){let Y=Fm(J.bodyMarkdown);if(Y)$.add(Y.allowedTools.join("|"))}let X=D.select({config:q3.config}).from(q3).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 Jm(D){let $=D.toolSequence.join("|"),F=ou("sha256").update($).digest("hex").slice(0,6),X=sC(D.toolSequence[0]??"tool"),J=sC(D.toolSequence[D.toolSequence.length-1]??"tool"),Y=`auto-${X}-${J}-${F}`,G=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((V)=>`\`${V}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${G}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,U=[`<!-- 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:U,rationale:D.rationale,status:"pending"}}function sC(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function w5(D,$){let F=au.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var rC=21600000,tu=500,eu=5;var aC=M(()=>{TD();FD();C0();nC()});var wG;var TG=M(()=>{z4();wG={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:()=>FK()}});var SG;var bG=M(()=>{z4();SG={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:()=>XK()}});function fG(D){let $=Gm[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var Gm;var tC=M(()=>{TG();bG();Gm={gemini:wG,qwen:SG}});import Ym from"process";function Um(D){if(Bm.has(D))return!0;return Hm.some(($)=>D.startsWith($))}function Vm(D){if(Wm.some(($)=>D.startsWith($)))return!0;if(_m.some(($)=>D.endsWith($)))return!0;return!1}function R2(D,$=Ym.env){let F={};for(let[X,J]of Object.entries($)){if(J===void 0)continue;if(Vm(X))continue;if(!Um(X))continue;F[X]=J}if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}var Bm,Hm,Wm,_m;var b6=M(()=>{Bm=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Hm=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Wm=["AIWORKER_","INTERNAL_","WORKER_"],_m=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function vG(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=kG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=kG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return Qm(F);case"tool_call_update":return Am(F);case"plan":return Km(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function eC(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:C9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=C9(X,["file_path","path","absolute_path","filePath"]),Y=Cm(X);return{kind:"file_edit",path:J,...Y?{diff:Y}:{}}}case"execute":return{kind:"command_run",command:C9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:C9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:C9(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 gG(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 Qm(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=eC(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:Em(D.status)}:{}}),$R(D.status)){let G=DR(D.content);$.push({type:"tool_result",id:F,name:Y,content:G,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Am(D){let $=D.toolCallId;if(!$||!$R(D.status))return[];let F=DR(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 Km(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-${Rm($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function kG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function DR(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=kG(X);if(J)$.push(J)}else if(F.type==="diff"){let X=F,J=X.oldText??"",Y=X.newText??"";$.push(`--- ${X.path??""}
266
+ `),await nu(Y,F,B,X);let U=new Date().toISOString();return{id:G,content:D.content,metadata:{...$,name:F,description:X,type:J,filePath:H,...D.tags?{tags:D.tags}:{}},createdAt:U,updatedAt:U}}watch(D){if(!this.watcherStarted)this.watcherStarted=!0,this.watcher.start();return this.watcher.on(($)=>{let F=cu($);if(F)D(F)})}}var uC=M(()=>{hC();xC()});class zG{name="multi";sources;writeTargetId;retrieval;constructor(D){this.sources=[...D.sources].sort(($,F)=>F.priority-$.priority),this.writeTargetId=D.writeTargetId,this.retrieval=D.retrieval}async health(){let $=(await Promise.all(this.sources.map((F)=>F.health().catch(()=>({name:F.id,status:"down",lastChecked:new Date().toISOString()}))))).some((F)=>F.status==="down");return{name:this.name,status:$?"degraded":"healthy",lastChecked:new Date().toISOString()}}async listSkills(){return(await Promise.all(this.sources.map(($)=>$.listSkills().catch(()=>[])))).flat()}async listMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.listMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.listMemories(D).catch(()=>[])))).flat()}async searchMemories(D){if(this.retrieval==="first-match"){for(let F of this.sources){let X=await F.searchMemories(D).catch(()=>[]);if(X.length>0)return X}return[]}return(await Promise.all(this.sources.map((F)=>F.searchMemories(D).catch(()=>[])))).flat()}async writeMemory(D){let $=this.sources.find((F)=>F.id===this.writeTargetId&&!F.readOnly)??this.sources.find((F)=>!F.readOnly);if(!$)throw Error("MultiBrainProvider: no writable brain source configured");return $.writeMemory(D)}watch(D){let $=this.sources.map((F)=>F.watch?F.watch(D):()=>{return});return()=>$.forEach((F)=>F())}}function su(D,$){let F;if($.type==="filesystem"){let X=$.config.home??z1(D);F=new jG({home:X})}else F=new ZG({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 mC(D,$){let F=$.brains.map((X)=>su(D,X));return new zG({sources:F,writeTargetId:$.brainWriteTarget,retrieval:$.brainRetrieval})}var pC=M(()=>{q2();fC();uC()});function cC(D){return D.on((F)=>{try{ru(F)}catch(X){R.warn(`[evolution] observer failed to persist: ${String(X)}`)}})}function ru(D){if(!(D.type==="orchestrator.tool_call"||D.type==="orchestrator.finished"))return;p().insert(_2).values({conversationId:typeof D.payload.conversationId==="string"?D.payload.conversationId:null,kind:D.type,payload:D.payload}).run()}var dC=M(()=>{TD();FD()});function iC(D,$=IG){let F=Math.max(1,$.nGramMin),X=Math.max(F,$.nGramMax),J=new Map;for(let[B,H]of D){if(!B||H.length===0)continue;for(let W=F;W<=X;W++){if(H.length<W)break;for(let U=0;U+W<=H.length;U++){let V=H.slice(U,U+W),Q=tu(V),K=J.get(Q);if(K)K.occurrences+=1,K.conversations.add(B);else J.set(Q,{toolSequence:V,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=eu(B.occurrences/Y);G.push({toolSequence:B.toolSequence,occurrences:B.occurrences,uniqueConversations:B.conversations.size,confidence:H,rationale:au(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}),ou(G)}function ou(D){let $=[];for(let F of D){if($.find((Y)=>lC(F.toolSequence,Y.toolSequence)))continue;let J=$.findIndex((Y)=>lC(Y.toolSequence,F.toolSequence));if(J>=0)$.splice(J,1);$.push(F)}return $}function lC(D,$){if(D.length>=$.length)return!1;for(let F=0;F<D.length;F++)if(D[F]!==$[F])return!1;return!0}function au(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 tu(D){return D.join("|")}function eu(D){if(!Number.isFinite(D))return 0;if(D<0)return 0;if(D>1)return 1;return D}var IG;var nC=M(()=>{IG={nGramMin:2,nGramMax:4,minOccurrences:3,minConversations:2,windowSize:500}});import{createHash as Dm}from"crypto";import $m from"process";function Jm(D){return{windowSize:D?.windowSize??w5("EVOLUTION_PROPOSER_WINDOW",Fm),maxDraftsPerRun:D?.maxDraftsPerRun??w5("EVOLUTION_PROPOSER_MAX_DRAFTS_PER_RUN",Xm),intervalMs:D?.intervalMs??w5("EVOLUTION_PROPOSER_INTERVAL_MS",rC)}}async function Gm(D){let $=Jm(D),F=p(),X=F.select({conversationId:_2.conversationId}).from(_2).orderBy(J0(_2.noticedAt)).limit($.windowSize).all(),J=Array.from(new Set(X.map((U)=>U.conversationId).filter((U)=>typeof U==="string"&&U.length>0)));if(J.length===0)return R.info("[evolution/proposer] no conversations in window; skipping"),{drafts:0};let Y=F.select({conversationId:n2.conversationId,toolName:n2.toolName}).from(n2).where(N7(n2.conversationId,J)).orderBy(_3(n2.conversationId),_3(n2.id)).all(),G=new Map;for(let U of Y){if(!U.conversationId)continue;let V=G.get(U.conversationId);if(V)V.push(U.toolName);else G.set(U.conversationId,[U.toolName])}let B=iC(G,{...IG,windowSize:$.windowSize}),H=Bm(F),W=0;for(let U of B){if(W>=$.maxDraftsPerRun)break;let V=U.toolSequence.join("|");if(H.has(V))continue;let Q=Hm(U);F.insert(R0).values(Q).run(),H.add(V),W+=1,R.info(`[evolution/proposer] wrote draft ${Q.proposedName} (occurrences=${U.occurrences}, convs=${U.uniqueConversations})`)}return R.info(`[evolution/proposer] ${W}/${B.length} candidate(s) written; window=${$.windowSize}, conversations=${J.length}`),{drafts:W}}function oC(D){let $=D??w5("EVOLUTION_PROPOSER_INTERVAL_MS",rC),F=setInterval(()=>{Gm().catch((X)=>R.warn(`[evolution/proposer] loop run failed: ${String(X)}`))},$);return()=>clearInterval(F)}function Ym(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 Bm(D){let $=new Set,F=D.select({bodyMarkdown:R0.bodyMarkdown}).from(R0).all();for(let J of F){let Y=Ym(J.bodyMarkdown);if(Y)$.add(Y.allowedTools.join("|"))}let X=D.select({config:q3.config}).from(q3).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 Hm(D){let $=D.toolSequence.join("|"),F=Dm("sha256").update($).digest("hex").slice(0,6),X=sC(D.toolSequence[0]??"tool"),J=sC(D.toolSequence[D.toolSequence.length-1]??"tool"),Y=`auto-${X}-${J}-${F}`,G=D.toolSequence.join(" \u2192 "),B=D.toolSequence.map((V)=>`\`${V}\``).join(", "),H={allowedTools:D.toolSequence,confidence:D.confidence,sequenceKey:$},W=`When the agent runs \`${G}\` (seen ${D.occurrences}\xD7 across ${D.uniqueConversations} conversation(s))`,U=[`<!-- 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:U,rationale:D.rationale,status:"pending"}}function sC(D){return D.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tool"}function w5(D,$){let F=$m.env[D];if(F===void 0||F==="")return $;let X=Number(F);return Number.isFinite(X)&&X>0?X:$}var rC=21600000,Fm=500,Xm=5;var aC=M(()=>{TD();FD();C0();nC()});var wG;var TG=M(()=>{z4();wG={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:()=>FK()}});var SG;var bG=M(()=>{z4();SG={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:()=>XK()}});function fG(D){let $=Wm[D];if(!$)throw Error(`unknown ACP agent: ${D}`);return $}var Wm;var tC=M(()=>{TG();bG();Wm={gemini:wG,qwen:SG}});import _m from"process";function Km(D){if(Um.has(D))return!0;return Vm.some(($)=>D.startsWith($))}function Em(D){if(Qm.some(($)=>D.startsWith($)))return!0;if(Am.some(($)=>D.endsWith($)))return!0;return!1}function R2(D,$=_m.env){let F={};for(let[X,J]of Object.entries($)){if(J===void 0)continue;if(Em(X))continue;if(!Km(X))continue;F[X]=J}if(D)for(let[X,J]of Object.entries(D))F[X]=J;return F}var Um,Vm,Qm,Am;var b6=M(()=>{Um=new Set(["PATH","HOME","USER","LOGNAME","SHELL","PWD","LANG","TZ","TERM","TMPDIR","TMP","TEMP"]),Vm=["LC_","NODE_","NPM_CONFIG_","XDG_","CLAUDE_","CODEX_","CURSOR_","GEMINI_","QWEN_"],Qm=["AIWORKER_","INTERNAL_","WORKER_"],Am=["_TOKEN","_SECRET","_API_KEY","_PRIVATE_KEY","_PASSWORD"]});function vG(D){let $=D.sessionUpdate,F=D;switch($){case"agent_message_chunk":{let X=kG(F.content);if(!X)return[];return[{type:"assistant_message_delta",delta:X}]}case"agent_thinking_chunk":{let X=kG(F.content);if(!X)return[];return[{type:"thinking_delta",delta:X}]}case"user_message_chunk":return[];case"tool_call":return Cm(F);case"tool_call_update":return Rm(F);case"plan":return Om(F.entries);case"available_commands_update":case"current_mode_update":return[];default:return[]}}function eC(D,$,F){let X=F??{};switch(D){case"read":return{kind:"file_read",path:C9(X,["file_path","path","absolute_path","filePath"])};case"edit":case"delete":case"move":{let J=C9(X,["file_path","path","absolute_path","filePath"]),Y=Zm(X);return{kind:"file_edit",path:J,...Y?{diff:Y}:{}}}case"execute":return{kind:"command_run",command:C9(X,["command","cmd","shell_command","script"])};case"search":return{kind:"search",query:C9(X,["query","pattern","q","search"])};case"fetch":return{kind:"web_fetch",url:C9(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 gG(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 Cm(D){let $=[],F=D.toolCallId;if(!F)return $;let X=D.rawInput??{},J=eC(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:Mm(D.status)}:{}}),$R(D.status)){let G=DR(D.content);$.push({type:"tool_result",id:F,name:Y,content:G,...D.status==="failed"||D.status==="cancelled"?{isError:!0}:{}})}return $}function Rm(D){let $=D.toolCallId;if(!$||!$R(D.status))return[];let F=DR(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 Om(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-${qm($)}`,name:"plan",arguments:{entries:D},action:{kind:"task_plan",summary:$}}]}function kG(D){if(!D)return"";if(D.type==="text"&&typeof D.text==="string")return D.text;return""}function DR(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=kG(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 Em(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 $R(D){return D==="completed"||D==="failed"||D==="cancelled"}function C9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Cm(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 Rm(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class k8{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:(U)=>Y(U),reject:G,timer:H,abortHandler:W,signal:F??null}),W&&F)F.addEventListener("abort",W,{once:!0});try{this.options.writeLine(`${JSON.stringify(J)}
271
+ `)}function Mm(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 $R(D){return D==="completed"||D==="failed"||D==="cancelled"}function C9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Zm(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 qm(D){let $=5381;for(let F=0;F<D.length;F++)$=($<<5)+$+D.charCodeAt(F)>>>0;return $.toString(36)}class k8{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:(U)=>Y(U),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(U){this.rejectPending(X,U instanceof Error?U:Error(String(U)))}})}notify(D,$){if(this.disposed)return;let F=$===void 0?{jsonrpc:"2.0",method:D}:{jsonrpc:"2.0",method:D,params:$};try{this.options.writeLine(`${JSON.stringify(F)}
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 Z1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}import{spawn as Om}from"child_process";import{once as Mm}from"events";import Zm from"fs/promises";import qm from"path";import f6 from"process";function JR(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=f6.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class T5{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()+Pm,info:F},F}async*runIterable(D){let $=zm(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??f6.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Om)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)}),G=new GR,B=new k8({writeLine:(A)=>{try{Y.stdin.write(A)}catch{}},onNotification:(A)=>this.handleNotification(A,G),onRequest:(A)=>this.handleInboundRequest(A),onError:(A)=>{G.push({type:"error",error:A.message})},requestTimeoutMs:this.options.timeoutMs??FR}),H="",W=(A)=>{let{lines:Z,remainder:L}=Z1(H,A.toString("utf8"));H=L;for(let N of Z)B.handleLine(N)};Y.stdout.on("data",W);let U=null;Y.on("error",(A)=>{U=A.message});let V=Mm(Y,"exit").then((A)=>A[0]??null).catch((A)=>{return U=A instanceof Error?A.message:String(A),null});V.then((A)=>{if(A===0)return;let Z=U??(A===null?"acp child exited unexpectedly":`acp child exited with code ${A}`);G.close({kind:"error",message:Z}),B.dispose(Z)});let Q=setTimeout(()=>XR(Y,"SIGKILL"),this.options.timeoutMs??FR),K="",C=!1,E=()=>{if(C=!0,K)B.notify("session/cancel",{sessionId:K});setTimeout(()=>XR(Y,"SIGTERM"),200)};D.signal?.addEventListener("abort",E,{once:!0});try{if(await B.request("initialize",{protocolVersion:Nm,clientCapabilities:{},clientInfo:{name:"aiworker",version:"0.2.0"}}),K=(await B.request("session/new",{cwd:F,mcpServers:[]})).sessionId,!K){yield{type:"error",error:"ACP session/new returned no sessionId"},yield{type:"finish",reason:"error"};return}B.request("session/prompt",{sessionId:K,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 L=G.terminal;if(L?.kind==="finish")yield{type:"finish",reason:gG(L.stopReason)};else if(L?.kind==="error")yield{type:"error",error:L.message},yield{type:"finish",reason:C?"cancelled":"error"};else yield{type:"finish",reason:C?"cancelled":"stop"}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:C?"cancelled":"error"}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",E),B.dispose("run ended"),Y.stdout.off("data",W),jm(Y),await V.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of vG(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??Lm)($.commandName);if(Y)return{cmd:Y,args:X};let G=JR($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${G}`,...X]}}}class GR{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 Lm(D){let $=f6.env.PATH??"",F=f6.platform==="win32"?";":":",X=f6.platform==="win32"?(f6.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=qm.join(J,`${D}${Y.toLowerCase()}`);try{if((await Zm.stat(G)).isFile())return G}catch{}}}return null}function XR(D,$){try{D.kill($)}catch{}}function jm(D){try{D.stdin.end()}catch{}}function zm(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 FR=120000,Nm=1,Pm=600000;var YR=M(()=>{b6()});var BR=M(()=>{TG();tC();bG();YR()});function hG(D){switch(D.type){case"assistant":return Im(D);case"user":return wm(D);case"result":return Tm(D);case"stream_event":return Sm(D);default:return[]}}function Im(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=bm(X);if(J)$.push(J)}return km($,F),$}function wm(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(HR(X));return $}function Tm(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=gm(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 Sm(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 bm(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:WR(F,X)}}case"tool_result":return HR(D);default:return null}}function HR(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=fm(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function fm(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 km(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 WR(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=vm($);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 vm(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 gm(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function q1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}function xG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $)return $;return null}catch{return null}}class b5{policy;writeLine;constructor(D){this.policy=D.policy??S5,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=hm($,F);if(this.writeLine(`${JSON.stringify(X)}
278
- `),F.decision==="ask"){let J=xm($);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 hm(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 xm(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var S5;var yG=M(()=>{S5={decide:async(D)=>({decision:"allow"})}});import{spawn as ym}from"child_process";import{once as um}from"events";import mm from"fs/promises";import pm from"path";import f5 from"process";class v5{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 $=im(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??ym,J,Y;try{({cmd:J,args:Y}=await this.resolveCommand(D.model))}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let G=X(J,Y,{cwd:F,env:R2(this.options.env)}),B=new b5({policy:this.options.policy??S5,writeLine:(A)=>{try{G.stdin.write(A)}catch{}}});B.sendUserMessage($);let H=this.options.timeoutMs??cm,W=setTimeout(()=>_R(G,"SIGKILL"),H),U="",V=null,Q=!1,K=um(G,"exit").then((A)=>A[0]??null).catch((A)=>{return V=A instanceof Error?A.message:String(A),null});G.on("error",(A)=>{V=A.message});let C=()=>_R(G,"SIGTERM");D.signal?.addEventListener("abort",C,{once:!0});try{for await(let A of G.stdout){let{lines:Z,remainder:L}=q1(U,A.toString("utf8"));U=L;for(let N of Z){let S=xG(N);if(!S)continue;if(S.type==="control_request"){let z=await B.handleLine(S);for(let P of z)yield P;continue}for(let z of hG(S))if(yield z,z.type==="finish")Q=!0;if(Q)break}if(Q)break}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)}}finally{clearTimeout(W),D.signal?.removeEventListener("abort",C),lm(G)}let E=await K;if(!Q){if(V)yield{type:"error",error:V};else if(E!==0&&E!==null)yield{type:"error",error:`Claude Code exited with code ${E}`};yield{type:"finish",reason:E===0?"stop":"error"}}}async resolveCommand(D){let $=UR(D??this.options.model,this.options.extraArgs),X=await(this.options.resolveClaudeBinary??dm)();if(X)return{cmd:X,args:$};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||k5}`,...$]}}}function UR(D,$){let F=["-p","--verbose","--output-format=stream-json","--input-format=stream-json","--include-partial-messages","--replay-user-messages","--dangerously-skip-permissions"];if(D&&D.length>0)F.push("--model",D);if($&&$.length>0)F.push(...$);return F}async function dm(){let D=f5.env.PATH??"",$=f5.platform==="win32"?";":":",F=f5.platform==="win32"?(f5.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=pm.join(X,`claude${J.toLowerCase()}`);try{if((await mm.stat(Y)).isFile())return Y}catch{}}}return null}function _R(D,$){try{D.kill($)}catch{}}function lm(D){try{D.stdin.end()}catch{}}function im(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 k5="2.1.112",cm=120000;var VR=M(()=>{b6();yG()});var QR=M(()=>{VR();yG()});function uG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return nm($);case"codex/event/thinking":return sm($);case"codex/event/token_usage":return rm($);case"codex/event/tool_call":return om($);case"codex/event/tool_result":return am($);case"codex/event/stop":return tm($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];default:return[]}}function nm(D){let $=ER(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function sm(D){let $=ER(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function rm(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function om(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:AR(D.name,$),...D.status?{status:em(D.status)}:{}}]}function am(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 tm(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:KR(D.reason)}),$}function AR(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:R9($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=R9($,["path","file_path","filePath"]),J=Dp($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:R9($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:R9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:R9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function KR(D){switch(D){case"max_tokens":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":default:return"stop"}}function em(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 ER(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function R9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Dp(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
275
+ `)}catch(J){this.options.onError?.(J instanceof Error?J:Error(String(J)))}}}function Z1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}import{spawn as Nm}from"child_process";import{once as Pm}from"events";import Lm from"fs/promises";import jm from"path";import f6 from"process";function JR(D,$){let F=$?.trim();if(F&&F.length>0)return F;let X=f6.env[D.versionEnvVar]?.trim();if(X&&X.length>0)return X;return D.defaultVersion}class T5{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()+Im,info:F},F}async*runIterable(D){let $=Sm(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??f6.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Nm)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)}),G=new GR,B=new k8({writeLine:(A)=>{try{Y.stdin.write(A)}catch{}},onNotification:(A)=>this.handleNotification(A,G),onRequest:(A)=>this.handleInboundRequest(A),onError:(A)=>{G.push({type:"error",error:A.message})},requestTimeoutMs:this.options.timeoutMs??FR}),H="",W=(A)=>{let{lines:Z,remainder:P}=Z1(H,A.toString("utf8"));H=P;for(let N of Z)B.handleLine(N)};Y.stdout.on("data",W);let U=null;Y.on("error",(A)=>{U=A.message});let V=Pm(Y,"exit").then((A)=>A[0]??null).catch((A)=>{return U=A instanceof Error?A.message:String(A),null});V.then((A)=>{if(A===0)return;let Z=U??(A===null?"acp child exited unexpectedly":`acp child exited with code ${A}`);G.close({kind:"error",message:Z}),B.dispose(Z)});let Q=setTimeout(()=>XR(Y,"SIGKILL"),this.options.timeoutMs??FR),K="",C=!1,E=()=>{if(C=!0,K)B.notify("session/cancel",{sessionId:K});setTimeout(()=>XR(Y,"SIGTERM"),200)};D.signal?.addEventListener("abort",E,{once:!0});try{if(await B.request("initialize",{protocolVersion:zm,clientCapabilities:{},clientInfo:{name:"aiworker",version:"0.2.0"}}),K=(await B.request("session/new",{cwd:F,mcpServers:[]})).sessionId,!K){yield{type:"error",error:"ACP session/new returned no sessionId"},yield{type:"finish",reason:"error"};return}B.request("session/prompt",{sessionId:K,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 P=G.terminal;if(P?.kind==="finish")yield{type:"finish",reason:gG(P.stopReason)};else if(P?.kind==="error")yield{type:"error",error:P.message},yield{type:"finish",reason:C?"cancelled":"error"};else yield{type:"finish",reason:C?"cancelled":"stop"}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:C?"cancelled":"error"}}finally{clearTimeout(Q),D.signal?.removeEventListener("abort",E),B.dispose("run ended"),Y.stdout.off("data",W),Tm(Y),await V.catch(()=>null)}}handleNotification(D,$){if(D.method!=="session/update")return;let F=D.params;if(!F||!F.update)return;for(let X of vG(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??wm)($.commandName);if(Y)return{cmd:Y,args:X};let G=JR($,this.options.cliVersion);return{cmd:"npx",args:["-y",`${$.npxPackage}@${G}`,...X]}}}class GR{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 wm(D){let $=f6.env.PATH??"",F=f6.platform==="win32"?";":":",X=f6.platform==="win32"?(f6.env.PATHEXT??".EXE").split(";"):[""];for(let J of $.split(F)){if(!J)continue;for(let Y of X){let G=jm.join(J,`${D}${Y.toLowerCase()}`);try{if((await Lm.stat(G)).isFile())return G}catch{}}}return null}function XR(D,$){try{D.kill($)}catch{}}function Tm(D){try{D.stdin.end()}catch{}}function Sm(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 FR=120000,zm=1,Im=600000;var YR=M(()=>{b6()});var BR=M(()=>{TG();tC();bG();YR()});function hG(D){switch(D.type){case"assistant":return bm(D);case"user":return fm(D);case"result":return km(D);case"stream_event":return vm(D);default:return[]}}function bm(D){let $=[],F=D.message??{};for(let X of F.content??[]){let J=gm(X);if(J)$.push(J)}return xm($,F),$}function fm(D){let $=[],F=D.message??{};for(let X of F.content??[])if(X.type==="tool_result")$.push(HR(X));return $}function km(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=um(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 vm(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 gm(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:WR(F,X)}}case"tool_result":return HR(D);default:return null}}function HR(D){let $=typeof D.tool_use_id==="string"?D.tool_use_id:"",F=D.is_error===!0,X=hm(D.content);return{type:"tool_result",id:$,name:"",content:X,...F?{isError:!0}:{}}}function hm(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 xm(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 WR(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=ym($);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 ym(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 um(D){switch(D){case"success":case"completion":return"stop";case"error":return"error";default:return"stop"}}function q1(D,$){let X=(D+$).split(/\r?\n/),J=X.pop()??"";return{lines:X.filter((Y)=>Y.trim().length>0),remainder:J}}function xG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $)return $;return null}catch{return null}}class b5{policy;writeLine;constructor(D){this.policy=D.policy??S5,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=mm($,F);if(this.writeLine(`${JSON.stringify(X)}
278
+ `),F.decision==="ask"){let J=pm($);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 mm(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 pm(D){let $=D.request;if(typeof $.tool_use_id==="string")return $.tool_use_id;if(typeof $.toolUseId==="string")return $.toolUseId;return}var S5;var yG=M(()=>{S5={decide:async(D)=>({decision:"allow"})}});import{spawn as cm}from"child_process";import{once as dm}from"events";import lm from"fs/promises";import im from"path";import f5 from"process";class v5{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 $=om(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??cm,J,Y;try{({cmd:J,args:Y}=await this.resolveCommand(D.model))}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let G=X(J,Y,{cwd:F,env:R2(this.options.env)}),B=new b5({policy:this.options.policy??S5,writeLine:(A)=>{try{G.stdin.write(A)}catch{}}});B.sendUserMessage($);let H=this.options.timeoutMs??nm,W=setTimeout(()=>_R(G,"SIGKILL"),H),U="",V=null,Q=!1,K=dm(G,"exit").then((A)=>A[0]??null).catch((A)=>{return V=A instanceof Error?A.message:String(A),null});G.on("error",(A)=>{V=A.message});let C=()=>_R(G,"SIGTERM");D.signal?.addEventListener("abort",C,{once:!0});try{for await(let A of G.stdout){let{lines:Z,remainder:P}=q1(U,A.toString("utf8"));U=P;for(let N of Z){let S=xG(N);if(!S)continue;if(S.type==="control_request"){let z=await B.handleLine(S);for(let L of z)yield L;continue}for(let z of hG(S))if(yield z,z.type==="finish")Q=!0;if(Q)break}if(Q)break}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)}}finally{clearTimeout(W),D.signal?.removeEventListener("abort",C),rm(G)}let E=await K;if(!Q){if(V)yield{type:"error",error:V};else if(E!==0&&E!==null)yield{type:"error",error:`Claude Code exited with code ${E}`};yield{type:"finish",reason:E===0?"stop":"error"}}}async resolveCommand(D){let $=UR(D??this.options.model,this.options.extraArgs),X=await(this.options.resolveClaudeBinary??sm)();if(X)return{cmd:X,args:$};return{cmd:"npx",args:["-y",`@anthropic-ai/claude-code@${this.options.cliVersion?.trim()||k5}`,...$]}}}function UR(D,$){let F=["-p","--verbose","--output-format=stream-json","--input-format=stream-json","--include-partial-messages","--replay-user-messages","--dangerously-skip-permissions"];if(D&&D.length>0)F.push("--model",D);if($&&$.length>0)F.push(...$);return F}async function sm(){let D=f5.env.PATH??"",$=f5.platform==="win32"?";":":",F=f5.platform==="win32"?(f5.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=im.join(X,`claude${J.toLowerCase()}`);try{if((await lm.stat(Y)).isFile())return Y}catch{}}}return null}function _R(D,$){try{D.kill($)}catch{}}function rm(D){try{D.stdin.end()}catch{}}function om(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 k5="2.1.112",nm=120000;var VR=M(()=>{b6();yG()});var QR=M(()=>{VR();yG()});function uG(D){let $=D.params??{};switch(D.method){case"codex/event/assistant_message":return AR($);case"codex/event/thinking":return KR($);case"codex/event/token_usage":return am($);case"codex/event/tool_call":return tm($);case"codex/event/tool_result":return em($);case"codex/event/stop":return Dp($);case"codex/event/error":return[{type:"error",error:typeof $.message==="string"?$.message:"codex error"}];case"item/agentMessage/delta":return AR($);case"item/reasoning/textDelta":case"item/reasoning/summaryTextDelta":return KR($);case"thread/tokenUsage/updated":return $p($);case"turn/completed":return Fp($);case"error":return Xp($);default:return[]}}function AR(D){let $=RR(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function KR(D){let $=RR(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function am(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function tm(D){if(!D.id||!D.name)return[];let $=D.arguments??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:ER(D.name,$),...D.status?{status:Jp(D.status)}:{}}]}function em(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 Dp(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 $p(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 Fp(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:OR(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 Xp(D){return[{type:"error",error:OR(D.error)??"codex error"}]}function ER(D,$){let F=D.toLowerCase();if(F==="read"||F==="view"||F==="open_file")return{kind:"file_read",path:R9($,["path","file_path","filePath"])};if(F==="edit"||F==="write"||F==="apply_patch"||F==="patch"){let X=R9($,["path","file_path","filePath"]),J=Gp($);return{kind:"file_edit",path:X,...J?{diff:J}:{}}}if(F==="bash"||F==="run_shell"||F==="shell"||F==="exec")return{kind:"command_run",command:R9($,["command","cmd","script"])};if(F==="grep"||F==="search"||F==="find")return{kind:"search",query:R9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="http_get")return{kind:"web_fetch",url:R9($,["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 Jp(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 RR(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function R9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function OR(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 Gp(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 mG=()=>{};import{spawn as $p}from"child_process";import{once as Fp}from"events";import Xp from"fs/promises";import Jp from"path";import k6 from"process";class h5{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 $=Hp(D.messages);if(!$){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let F=D.workspacePath??this.options.fallbackWorkspacePath??k6.cwd(),X;try{X=await this.resolveCommand()}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??$p)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)}),G=new OR,B=new k8({writeLine:(A)=>{try{Y.stdin.write(A)}catch{}},onNotification:(A)=>this.handleNotification(A,G),onRequest:(A)=>this.handleInboundRequest(A),onError:(A)=>G.push({type:"error",error:A.message}),requestTimeoutMs:this.options.timeoutMs??CR}),H="",W=(A)=>{let{lines:Z,remainder:L}=Z1(H,A.toString("utf8"));H=L;for(let N of Z)B.handleLine(N)};Y.stdout.on("data",W);let U=null;Y.on("error",(A)=>{U=A.message});let V=Fp(Y,"exit").then((A)=>A[0]??null).catch((A)=>{return U=A instanceof Error?A.message:String(A),null});V.then((A)=>{if(A===0)return;let Z=U??(A===null?"codex child exited unexpectedly":`codex child exited with code ${A}`);G.close({kind:"error",message:Z}),B.dispose(Z)});let Q=this.options.timeoutMs??CR,K=setTimeout(()=>RR(Y,"SIGKILL"),Q),C=!1,E=()=>{C=!0,RR(Y,"SIGTERM")};D.signal?.addEventListener("abort",E,{once:!0});try{await B.request("initialize",{protocolVersion:Gp,clientInfo:{name:"aiworker",version:"0.2.0"}});let A={approval_policy:"never"},Z=D.model??this.options.model;if(Z&&Z.length>0)A.model=Z;let L=await B.request("thread_start",A);if(!L?.threadId){yield{type:"error",error:"Codex thread_start returned no threadId"},yield{type:"finish",reason:"error"};return}B.request("newTurn",{threadId:L.threadId,prompt:$}).then(()=>G.close({kind:"finish"}),(P)=>G.close({kind:"error",message:P instanceof Error?P.message:String(P)}));let S=!1;for await(let P of G.iter())if(yield P,P.type==="finish")S=!0;let z=G.terminal;if(z?.kind==="error")yield{type:"error",error:z.message},yield{type:"finish",reason:C?"cancelled":"error"};else if(!S)yield{type:"finish",reason:C?"cancelled":"stop"}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:C?"cancelled":"error"}}finally{clearTimeout(K),D.signal?.removeEventListener("abort",E),B.dispose("run ended"),Y.stdout.off("data",W),Bp(Y),await V.catch(()=>null)}}handleNotification(D,$){for(let F of uG(D))$.push(F)}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 resolveCommand(){let D=["app-server",...this.options.extraArgs??[]],F=await(this.options.resolveBinary??Yp)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||k6.env.CODEX_CLI_VERSION?.trim()||g5}`,...D]}}}class OR{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 Yp(){let D=k6.env.PATH??"",$=k6.platform==="win32"?";":":",F=k6.platform==="win32"?(k6.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=Jp.join(X,`codex${J.toLowerCase()}`);try{if((await Xp.stat(Y)).isFile())return Y}catch{}}}return null}function RR(D,$){try{D.kill($)}catch{}}function Bp(D){try{D.stdin.end()}catch{}}function Hp(D){for(let $=D.length-1;$>=0;$--){let F=D[$];if(F&&F.role==="user"&&typeof F.content==="string"&&F.content.length>0)return F.content}return null}var g5="0.121.0",CR=120000,Gp=1;var MR=M(()=>{b6();mG()});var ZR=M(()=>{MR();mG()});function pG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function cG(D){switch(D.type){case"system":return[];case"assistant_message":return Wp(D);case"thinking":return _p(D);case"tool_use":return Up(D);case"tool_result":return Vp(D);case"token_usage":return Qp(D);case"stop":case"end":return Ap(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function dG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Wp(D){let $=PR(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function _p(D){let $=PR(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Up(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:NR(D.name,$),...D.status?{status:Kp(D.status)}:{}}]}function Vp(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 Qp(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Ap(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:qR(D.reason)}),$}function qR(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function Kp(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 NR(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:O9($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=O9($,["path","file_path","filePath"]),J=Ep($);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:O9($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:O9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:O9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function PR(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function O9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Ep(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
281
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var mG=()=>{};import{spawn as Yp}from"child_process";import{once as Bp}from"events";import Hp from"fs/promises";import Wp from"path";import k6 from"process";class h5{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){if(!Ap(D.messages)){yield{type:"error",error:"Codex executor requires a user message"},yield{type:"finish",reason:"error"};return}let $=Kp(D.messages),F=D.workspacePath??this.options.fallbackWorkspacePath??k6.cwd(),X;try{X=await this.resolveCommand()}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Yp)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)}),G=new qR,B=new k8({writeLine:(A)=>{try{Y.stdin.write(A)}catch{}},onNotification:(A)=>this.handleNotification(A,G),onRequest:(A)=>this.handleInboundRequest(A),onError:(A)=>G.push({type:"error",error:A.message}),requestTimeoutMs:this.options.timeoutMs??MR}),H="",W=(A)=>{let{lines:Z,remainder:P}=Z1(H,A.toString("utf8"));H=P;for(let N of Z)B.handleLine(N)};Y.stdout.on("data",W);let U=null;Y.on("error",(A)=>{U=A.message});let V=Bp(Y,"exit").then((A)=>A[0]??null).catch((A)=>{return U=A instanceof Error?A.message:String(A),null});V.then((A)=>{if(A===0)return;let Z=U??(A===null?"codex child exited unexpectedly":`codex child exited with code ${A}`);G.close({kind:"error",message:Z}),B.dispose(Z)});let Q=this.options.timeoutMs??MR,K=setTimeout(()=>ZR(Y,"SIGKILL"),Q),C=!1,E=()=>{C=!0,ZR(Y,"SIGTERM")};D.signal?.addEventListener("abort",E,{once:!0});try{await B.request("initialize",{protocolVersion:_p,clientInfo:{name:"aiworker",version:"0.2.0"}});let A=D.model??this.options.model,Z=await this.startThread(B,A);if(!Z.threadId){yield{type:"error",error:"Codex thread start returned no threadId"},yield{type:"finish",reason:"error"};return}if(Z.protocol==="legacy")B.request("newTurn",{threadId:Z.threadId,prompt:$}).then(()=>G.close({kind:"finish"}),(z)=>G.close({kind:"error",message:z instanceof Error?z.message:String(z)}));else await B.request("turn/start",{threadId:Z.threadId,input:[{type:"text",text:$}]});let P=!1;for await(let S of G.iter())if(yield S,S.type==="finish")P=!0;let N=G.terminal;if(N?.kind==="error")yield{type:"error",error:N.message},yield{type:"finish",reason:C?"cancelled":"error"};else if(!P)yield{type:"finish",reason:C?"cancelled":"stop"}}catch(A){yield{type:"error",error:A instanceof Error?A.message:String(A)},yield{type:"finish",reason:C?"cancelled":"error"}}finally{clearTimeout(K),D.signal?.removeEventListener("abort",E),B.dispose("run ended"),Y.stdout.off("data",W),Qp(Y),await V.catch(()=>null)}}handleNotification(D,$){for(let F of uG(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,$){let F={approval_policy:"never"};if($&&$.length>0)F.model=$;try{return{protocol:"legacy",threadId:(await D.request("thread_start",F)).threadId}}catch(J){if(!Up(J))throw J}return{protocol:"current",threadId:(await D.request("thread/start",F)).thread.id}}async resolveCommand(){let D=["app-server",...this.options.extraArgs??[]],F=await(this.options.resolveBinary??Vp)();if(F)return{cmd:F,args:D};return{cmd:"npx",args:["-y",`@openai/codex@${this.options.cliVersion?.trim()||k6.env.CODEX_CLI_VERSION?.trim()||g5}`,...D]}}}function Up(D){if(!(D instanceof Error))return!1;return D.message.includes("thread_start")||D.message.includes("unknown variant")||D.message.includes("Invalid request")}class qR{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 Vp(){let D=k6.env.PATH??"",$=k6.platform==="win32"?";":":",F=k6.platform==="win32"?(k6.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=Wp.join(X,`codex${J.toLowerCase()}`);try{if((await Hp.stat(Y)).isFile())return Y}catch{}}}return null}function ZR(D,$){try{D.kill($)}catch{}}function Qp(D){try{D.stdin.end()}catch{}}function Ap(D){return D.some(($)=>$.role==="user"&&$.content.trim().length>0)}function Kp(D){return D.filter(($)=>$.content.trim().length>0).map(($)=>{let F=$.role==="system"?"System":$.role==="assistant"?"Assistant":$.role==="tool"?"Tool":"User";return`<${F}>
282
+ ${$.content}
283
+ </${F}>`}).join(`
284
+
285
+ `)}var g5="0.121.0",MR=120000,_p=1;var NR=M(()=>{b6();mG()});var PR=M(()=>{NR();mG()});function pG(D){try{let $=JSON.parse(D);if($&&typeof $==="object"&&"type"in $&&typeof $.type==="string")return $;return null}catch{return null}}function cG(D){switch(D.type){case"system":return[];case"assistant_message":return Ep(D);case"thinking":return Cp(D);case"tool_use":return Rp(D);case"tool_result":return Op(D);case"token_usage":return Mp(D);case"stop":case"end":return Zp(D);case"error":return[{type:"error",error:typeof D.message==="string"?D.message:"cursor error"}];default:return[]}}function dG(D){let $=D.session_id;if(typeof $==="string"&&$.length>0)return $;return""}function Ep(D){let $=zR(D.delta,D.text);if(!$)return[];return[{type:"assistant_message_delta",delta:$}]}function Cp(D){let $=zR(D.delta,D.text);if(!$)return[];return[{type:"thinking_delta",delta:$}]}function Rp(D){if(!D.id||!D.name)return[];let $=D.input??{};return[{type:"tool_use",id:D.id,name:D.name,arguments:$,action:jR(D.name,$),...D.status?{status:qp(D.status)}:{}}]}function Op(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 Mp(D){let $=D.usage??{};return[{type:"token_usage",usage:{inputTokens:$.input_tokens??0,outputTokens:$.output_tokens??0}}]}function Zp(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:LR(D.reason)}),$}function LR(D){switch(D){case"length":return"length";case"cancelled":return"cancelled";case"error":return"error";case"stop":case"end_turn":default:return"stop"}}function qp(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 jR(D,$){let F=D.toLowerCase();if(F==="read_file"||F==="read"||F==="view"||F==="open")return{kind:"file_read",path:O9($,["path","file_path","filePath"])};if(F==="edit_file"||F==="edit"||F==="write"||F==="write_file"||F==="apply_patch"){let X=O9($,["path","file_path","filePath"]),J=Np($);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:O9($,["command","cmd","script"])};if(F==="grep"||F==="grep_search"||F==="codebase_search"||F==="search"||F==="find")return{kind:"search",query:O9($,["query","pattern"])};if(F==="web_fetch"||F==="fetch"||F==="web_search")return{kind:"web_fetch",url:O9($,["url","uri"])};return{kind:"tool",toolName:D,...Object.keys($).length>0?{arguments:$}:{}}}function zR(...D){for(let $ of D)if(typeof $==="string"&&$.length>0)return $;return""}function O9(D,$){for(let F of $){let X=D[F];if(typeof X==="string"&&X.length>0)return X}return""}function Np(D){if(typeof D.old_string==="string"&&typeof D.new_string==="string")return`- ${D.old_string}
282
286
  + ${D.new_string}`;if(typeof D.oldText==="string"&&typeof D.newText==="string")return`- ${D.oldText}
283
- + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var lG=()=>{};import{spawn as Cp}from"child_process";import{once as Rp}from"events";import Op from"fs/promises";import Mp from"path";import M9 from"process";class x5{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 $=Pp(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??M9.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Cp)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let G=this.options.timeoutMs??Zp,B=setTimeout(()=>LR(Y,"SIGKILL"),G),H="",W=null,U=!1,V=Rp(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return W=E instanceof Error?E.message:String(E),null});Y.on("error",(E)=>{W=E.message});let Q=!1,K=()=>{Q=!0,LR(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{for await(let E of Y.stdout){let{lines:A,remainder:Z}=q1(H,E.toString("utf8"));H=Z;for(let L of A){let N=pG(L);if(!N)continue;let S=dG(N);if(S)this.lastSessionId=S;for(let z of cG(N))if(yield z,z.type==="finish")U=!0;if(U)break}if(U)break}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)}}finally{clearTimeout(B),D.signal?.removeEventListener("abort",K),Np(Y)}let C=await V;if(!U){if(W)yield{type:"error",error:W};else if(C!==0&&C!==null)yield{type:"error",error:`cursor-agent exited with code ${C}`};yield{type:"finish",reason:Q?"cancelled":C===0?"stop":"error"}}}async resolveCommand(D){let F=await(this.options.resolveBinary??qp)();if(!F)throw Error("cursor-agent binary not found on PATH (install https://cursor.com/cli)");let X=D??this.options.model,J=jR({model:X,...this.options.resumeSessionId===void 0?{}:{resumeSessionId:this.options.resumeSessionId},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:F,args:J}}}function jR(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 qp(){let D=M9.env.PATH??"",$=M9.platform==="win32"?";":":",F=M9.platform==="win32"?(M9.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=Mp.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await Op.stat(Y)).isFile())return Y}catch{}}}return null}function LR(D,$){try{D.kill($)}catch{}}function Np(D){try{D.stdin.end()}catch{}}function Pp(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 Zp=120000;var zR=M(()=>{b6();lG()});var IR=M(()=>{zR();lG()});class nG{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*wR(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=Lp($.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*wR(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*wR(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 Lp(D){if(D===null||D===void 0)return"unknown";let $=TR(D,"status")??TR(D,"statusCode"),F=iG(D,"code"),X=iG(D,"name"),Y=(iG(D,"message")??jp(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 TR(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function iG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function jp(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as SR}from"buffer";import{spawn as bR}from"child_process";import{once as fR}from"events";class sG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=bR(this.opts.command,["--version"],{cwd:this.opts.cwd,env:R2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([fR($,"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=bR(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:R2(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)}
284
- `),F.stdin.end();let Y=setTimeout(()=>F.kill("SIGKILL"),$),[G]=await fR(F,"exit");if(clearTimeout(Y),G!==0){let B=SR.concat(J).toString("utf8");throw Error(`CLI executor exited with ${G??"null"}: ${B||"(no stderr)"}`)}return SR.concat(X).toString("utf8")}}var kR=M(()=>{b6()});var zp,Ip,wp,y5;var rG=M(()=>{vD();zp=_.object({index:_.number().optional(),id:_.string().optional(),type:_.literal("function").optional(),function:_.object({name:_.string().optional(),arguments:_.string().optional()}).optional()}),Ip=_.object({role:_.enum(["system","user","assistant","tool"]).optional(),content:_.string().nullable().optional(),tool_calls:_.array(zp).optional()}),wp=_.object({prompt_tokens:_.number(),completion_tokens:_.number(),total_tokens:_.number()}),y5=_.object({id:_.string(),object:_.literal("chat.completion.chunk"),created:_.number(),model:_.string(),choices:_.array(_.object({index:_.number(),delta:Ip,finish_reason:_.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:wp.nullish()})});async function oG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??Tp,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 Z9(G.status,G.statusText,B)}if(!G.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),Error("OpenAI response has no body");return Sp(G.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",Y)})}async function*Sp(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=bp(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=vR(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let U;try{U=JSON.parse(W)}catch{continue}let V=y5.safeParse(U);if(!V.success)continue;yield{type:"chunk",chunk:V.data}}}if(J.trim().length>0){let Y=vR(J);if(Y&&Y!=="[DONE]")try{let G=JSON.parse(Y),B=y5.safeParse(G);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function bp(D){let $=D.indexOf(`
287
+ + ${D.newText}`;if(typeof D.diff==="string")return D.diff;if(typeof D.content==="string")return D.content;return}var lG=()=>{};import{spawn as Pp}from"child_process";import{once as Lp}from"events";import jp from"fs/promises";import zp from"path";import M9 from"process";class x5{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 $=Sp(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??M9.cwd(),X;try{X=await this.resolveCommand(D.model)}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)},yield{type:"finish",reason:"error"};return}let Y=(this.options.spawn??Pp)(X.cmd,X.args,{cwd:F,env:R2(this.options.env)});try{Y.stdin.write($),Y.stdin.end()}catch{}let G=this.options.timeoutMs??Ip,B=setTimeout(()=>IR(Y,"SIGKILL"),G),H="",W=null,U=!1,V=Lp(Y,"exit").then((E)=>E[0]??null).catch((E)=>{return W=E instanceof Error?E.message:String(E),null});Y.on("error",(E)=>{W=E.message});let Q=!1,K=()=>{Q=!0,IR(Y,"SIGTERM")};D.signal?.addEventListener("abort",K,{once:!0});try{for await(let E of Y.stdout){let{lines:A,remainder:Z}=q1(H,E.toString("utf8"));H=Z;for(let P of A){let N=pG(P);if(!N)continue;let S=dG(N);if(S)this.lastSessionId=S;for(let z of cG(N))if(yield z,z.type==="finish")U=!0;if(U)break}if(U)break}}catch(E){yield{type:"error",error:E instanceof Error?E.message:String(E)}}finally{clearTimeout(B),D.signal?.removeEventListener("abort",K),Tp(Y)}let C=await V;if(!U){if(W)yield{type:"error",error:W};else if(C!==0&&C!==null)yield{type:"error",error:`cursor-agent exited with code ${C}`};yield{type:"finish",reason:Q?"cancelled":C===0?"stop":"error"}}}async resolveCommand(D){let F=await(this.options.resolveBinary??wp)();if(!F)throw Error("cursor-agent binary not found on PATH (install https://cursor.com/cli)");let X=D??this.options.model,J=wR({model:X,...this.options.resumeSessionId===void 0?{}:{resumeSessionId:this.options.resumeSessionId},...this.options.extraArgs===void 0?{}:{extraArgs:this.options.extraArgs}});return{cmd:F,args:J}}}function wR(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 wp(){let D=M9.env.PATH??"",$=M9.platform==="win32"?";":":",F=M9.platform==="win32"?(M9.env.PATHEXT??".EXE").split(";"):[""];for(let X of D.split($)){if(!X)continue;for(let J of F){let Y=zp.join(X,`cursor-agent${J.toLowerCase()}`);try{if((await jp.stat(Y)).isFile())return Y}catch{}}}return null}function IR(D,$){try{D.kill($)}catch{}}function Tp(D){try{D.stdin.end()}catch{}}function Sp(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 Ip=120000;var TR=M(()=>{b6();lG()});var SR=M(()=>{TR();lG()});class nG{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*bR(this.primary,D);if($.kind==="ok")return;if($.yielded)throw $.error;let F=bp($.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*bR(J.executor,D);if(B.kind==="ok")return;if(B.yielded)throw B.error;X=B.error}}throw X}}async function*bR(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 bp(D){if(D===null||D===void 0)return"unknown";let $=fR(D,"status")??fR(D,"statusCode"),F=iG(D,"code"),X=iG(D,"name"),Y=(iG(D,"message")??fp(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 fR(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="number"?F:void 0}function iG(D,$){if(typeof D!=="object"||D===null)return;let F=D[$];return typeof F==="string"?F:void 0}function fp(D){if(typeof D==="string")return D;if(D instanceof Error)return D.message;try{return String(D)}catch{return""}}import{Buffer as kR}from"buffer";import{spawn as vR}from"child_process";import{once as gR}from"events";class sG{opts;name="cli";constructor(D){this.opts=D}async health(){let D=new Date().toISOString();try{let $=vR(this.opts.command,["--version"],{cwd:this.opts.cwd,env:R2(this.opts.env),stdio:["ignore","pipe","pipe"]}),F=await Promise.race([gR($,"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=vR(this.opts.command,this.opts.args,{cwd:this.opts.cwd,env:R2(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 gR(F,"exit");if(clearTimeout(Y),G!==0){let B=kR.concat(J).toString("utf8");throw Error(`CLI executor exited with ${G??"null"}: ${B||"(no stderr)"}`)}return kR.concat(X).toString("utf8")}}var hR=M(()=>{b6()});var kp,vp,gp,y5;var rG=M(()=>{vD();kp=_.object({index:_.number().optional(),id:_.string().optional(),type:_.literal("function").optional(),function:_.object({name:_.string().optional(),arguments:_.string().optional()}).optional()}),vp=_.object({role:_.enum(["system","user","assistant","tool"]).optional(),content:_.string().nullable().optional(),tool_calls:_.array(kp).optional()}),gp=_.object({prompt_tokens:_.number(),completion_tokens:_.number(),total_tokens:_.number()}),y5=_.object({id:_.string(),object:_.literal("chat.completion.chunk"),created:_.number(),model:_.string(),choices:_.array(_.object({index:_.number(),delta:vp,finish_reason:_.enum(["stop","length","tool_calls","content_filter","function_call"]).nullable()})),usage:gp.nullish()})});async function oG(D){let $=D.baseUrl.replace(/\/+$/,""),F=D.timeoutMs??hp,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 Z9(G.status,G.statusText,B)}if(!G.body)throw clearTimeout(J),D.signal?.removeEventListener("abort",Y),Error("OpenAI response has no body");return xp(G.body,()=>{clearTimeout(J),D.signal?.removeEventListener("abort",Y)})}async function*xp(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=yp(J);if(B===-1)break;let H=J.slice(0,B);J=J.slice(B).replace(/^\r?\n\r?\n/,"");let W=xR(H);if(!W)continue;if(W==="[DONE]"){yield{type:"done"};return}let U;try{U=JSON.parse(W)}catch{continue}let V=y5.safeParse(U);if(!V.success)continue;yield{type:"chunk",chunk:V.data}}}if(J.trim().length>0){let Y=xR(J);if(Y&&Y!=="[DONE]")try{let G=JSON.parse(Y),B=y5.safeParse(G);if(B.success)yield{type:"chunk",chunk:B.data}}catch{}}}finally{$();try{F.releaseLock()}catch{}}}function yp(D){let $=D.indexOf(`
285
289
 
286
290
  `),F=D.indexOf(`\r
287
291
  \r
288
- `);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function vR(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(`
289
- `);if(X==="[DONE]")return"[DONE]";return X}var Tp=60000,Z9;var gR=M(()=>{rG();Z9=class Z9 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 hR=M(()=>{gR();rG()});class aG{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(kp),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(fp),$.tool_choice="auto";let F;try{F=await oG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(G){yield{type:"error",error:xR(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)vp(X,W);if(B.finish_reason)J=hp(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:xR(G)};return}for(let[,G]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=gp(G);if(B)yield B}if(Y)yield{type:"token_usage",usage:Y};yield{type:"finish",reason:J??"stop",...Y?{usage:Y}:{}}}}function fp(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function kp(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 vp(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 gp(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 hp(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 xR(D){if(D instanceof Z9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var yR=M(()=>{hR()});class tG{name="mcp";client;constructor(D){this.client=new S6({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 uR=M(()=>{OG()});import mR from"process";function DY(D){let $=xp(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:DY(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new nG($,F)}function xp(D){let $=C8(D);switch($.engine){case"http":{let F=$.body;return new aG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new tG({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,Y=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,G=eG(F.env,X?.env);return new sG({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??mR.env.CLAUDE_CLI_VERSION??k5,Y=$.modelId??F.model,G=pR(F.extraArgs,X?.extraArgs),B=eG(F.env,X?.env);return new v5({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=pR(F.extraArgs,X?.extraArgs),B=eG(F.env,X?.env),H=fG(F.agent);return new T5({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??mR.env.CODEX_CLI_VERSION??g5,Y=$.modelId??F.model,G=X?.extraArgs,B=X?.env;return new h5({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 x5({...J===void 0?{}:{model:J},...Y===void 0?{}:{extraArgs:Y},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function pR(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function eG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var cR=M(()=>{D1();BR();QR();ZR();IR();kR();yR();uR()});import{Buffer as dR}from"buffer";import{spawn as yp}from"child_process";import{once as up}from"events";import v6 from"fs/promises";import e2 from"path";import mp from"process";function lR(D,$,F){if(!sR.test(F))throw new m5(`invalid conversation id: ${F}`);let X=e2.resolve(D),J=e2.resolve(X,$);if(!iR(X,J))throw new m5(`workspace subdir "${$}" escapes root`);let Y=e2.resolve(J,F);if(!iR(J,Y))throw new m5(`workspace "${F}" escapes parent`);return Y}function iR(D,$){let F=e2.relative(D,$);return F===""||!F.startsWith("..")&&!e2.isAbsolute(F)}class $Y{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=e2.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 $=lR(this.root,this.subdir,D);if(await u5($)){let F=await u5(e2.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await v6.mkdir(e2.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await v6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=lR(this.root,this.subdir,D);if(!await u5($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await v6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=e2.resolve(this.root,this.subdir);if(!await u5(D))return;let $=await v6.readdir(D);await Promise.all($.map(async(F)=>{if(!sR.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await nR(["worktree","add","--detach",$],D);if(F.code!==0)throw await v6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await nR(["worktree","remove","--force",$],D)).code===0}}async function u5(D){try{return await v6.stat(D),!0}catch{return!1}}async function nR(D,$){let F=yp("git",D,{cwd:$,env:mp.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 up(F,"exit");return{code:Y,stdout:dR.concat(X).toString("utf8"),stderr:dR.concat(J).toString("utf8")}}var sR,m5;var rR=M(()=>{sR=/^[\w-]{1,128}$/;m5=class m5 extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});async function oR(D){let $=p(),F=D.threadId?k0(u(ED.channel,D.channel),u(ED.chatId,D.chatId),u(ED.threadId,D.threadId),u(ED.status,"open")):k0(u(ED.channel,D.channel),u(ED.chatId,D.chatId),u(ED.status,"open"));return $.select().from(ED).where(F).orderBy(J0(ED.lastActiveAt)).get()??null}function cp(){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(`
290
- `)}function dp(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:cp()},{role:"user",content:X.join(`
291
- `)}]}async function aR(D,$,F,X,J,Y){let G={messages:dp(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 R.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 FY(D,$=pp){return p().select({role:G0.role,content:G0.content}).from(G0).where(u(G0.conversationId,D)).orderBy(J0(G0.id)).limit($).all().reverse()}var pp=4;var tR=M(()=>{TD();FD();C0()});function eR(D,$){if(!$)return"auto";for(let F of $.rules)if(lp(F.pattern,D))return F.action;return $.default}function lp(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 XY{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),F=await this.provisionWorkspace($.id),X=this.persistUserMessage($.id,D);this.deps.bus.emit("conversation.message",{conversationId:$.id,messageId:X.id,role:"user"});let J=new AbortController,Y=null;await this.deps.processes.run({group:$.id,engine:this.deps.config.executor.engine,class:"interactive",meta:{conversationId:$.id,channel:D.channel},onSpawn:async()=>({cancel:async()=>J.abort(),onActivity:(G)=>{return Y=G,()=>{if(Y===G)Y=null}}}),job:()=>this.run($,D,F,J.signal,()=>Y?.())})}async run(D,$,F,X,J){let Y=p(),G=await this.loadHistoryWindow(D.id),H=[{role:"system",content:await this.buildSystemPrompt(D.summary??null)},...G],W=DO(this.deps.config.executor),U=$O($),V={messages:H,...W?{model:W}:{},...F?{workspacePath:F.path}:{},signal:X},Q="";try{for await(let C of this.deps.executor.run(V))if(J(),C.type==="assistant_message_delta")Q+=C.delta,this.deps.bus.emit("orchestrator.text",{conversationId:D.id,...U===void 0?{}:{taskId:U},delta:C.delta});else if(C.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:D.id,...U===void 0?{}:{taskId:U},call:{id:C.id,name:C.name,arguments:C.arguments}});else if(C.type==="error"){R.warn(`[orchestrator] executor error: ${C.error}`),this.deps.bus.emit("orchestrator.error",{conversationId:D.id,...U===void 0?{}:{taskId:U},error:C.error});return}}catch(C){R.error(`[orchestrator] run failed: ${String(C)}`),this.deps.bus.emit("orchestrator.error",{conversationId:D.id,...U===void 0?{}:{taskId:U},error:String(C)});return}let K=new Date().toISOString();Y.insert(G0).values({conversationId:D.id,role:"assistant",content:Q,createdAt:K}).run(),Y.update(ED).set({lastActiveAt:K}).where(u(ED.id,D.id)).run(),this.deps.bus.emit("orchestrator.finished",{conversationId:D.id,...U===void 0?{}:{taskId:U}}),await this.deliver($.channel,D,Q)}async deliver(D,$,F){let X=this.deps.config.channels.find((Y)=>Y.channel===D&&Y.enabled);if(!X)return;let J=J1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(Y){R.warn(`[orchestrator] deliver to ${D} failed: ${String(Y)}`)}}async resolveConversation(D){let $=p(),F=await oR(D);if(!F)return this.createConversation(D);let X=await this.provisionWorkspace(F.id),J=await FY(F.id),Y=DO(this.deps.config.executor),G=await aR(this.deps.executor,Y,F.summary??null,J,D.text,X?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:F.id,decision:G}),G.continue)return FO(F);let B=new Date().toISOString();$.update(ED).set({status:"closed",closedAt:B}).where(u(ED.id,F.id)).run();let H=F.id;return this.deps.processes.run({group:H,engine:this.deps.config.executor.engine,class:"background",meta:{conversationId:H,kind:"workspace.dispose"},onSpawn:async()=>({cancel:async()=>{},onActivity:()=>()=>{}}),job:()=>this.disposeWorkspace(H)}).catch((W)=>R.warn(`[orchestrator] dispose workspace job failed: ${String(W)}`)),this.createConversation(D)}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return R.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){R.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=p(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(ED).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(ED).where(u(ED.id,F)).get(),Y=$O(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...Y===void 0?{}:{taskId:Y}}),FO(J)}persistUserMessage(D,$){let F=p(),X=new Date().toISOString(),J=$.richMetadata?JSON.stringify($.richMetadata):null,Y=F.insert(G0).values({conversationId:D,role:"user",content:$.text,...J===null?{}:{richMetadata:J},createdAt:X}).returning({id:G0.id}).all();return F.update(ED).set({lastActiveAt:X}).where(u(ED.id,D)).run(),{id:Y[0]?.id??-1}}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??X7;return(await FY(D,$)).map((X)=>({role:X.role,content:X.content}))}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(`
292
- `)}async runTool(D){let $=eR(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??CG,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=p(),X=new Date().toISOString();F.insert(G0).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(ED).set({lastActiveAt:X}).where(u(ED.id,D)).run()}async submitTask(D){let $=p(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(E8).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)=>R.error(`[orchestrator] submitTask ingest failed: ${String(Y)}`)),{id:F}}}function DO(D){let $=null;try{$=C8(D)}catch{return}if(!$)return;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}function $O(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 FO(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 XO=M(()=>{N0();TD();FD();C0();w3();tR();D1();j5()});function N1(D,$,F){let X=mC(D,$),J=DY($.executor),Y=new I3($.channels),G=new c3,B=ip($),H=new R1,W=new XY({config:$,brain:X,executor:J,bus:G,workerId:D,workspaces:B,processes:F.processes,approvals:H}),U=cC(G),V=$.evolution.enabled?oC():()=>{return},Q=new p3({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(),V(),H.dispose(),Q.stop(),UV()}}}function ip(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=C8(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new $Y({root:l.WORKER_DATA_ROOT,...$?{subdir:$}:{},...l.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:l.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var JO=M(()=>{D4();pC();UX();w3();oX();aX();dC();aC();D1();cR();rR();j5();XO()});var GO=M(()=>{D4()});import{Buffer as g6}from"buffer";import{createCipheriv as np,createDecipheriv as sp,randomBytes as rp}from"crypto";class h6{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=g6.from(D,"hex"),this.key.length!==ap)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:Y0.id}).from(Y0).where(u(Y0.key,D)).get(),G=new Date().toISOString();if(Y)await this.db.update(Y0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:G}).where(u(Y0.id,Y.id)).run();else await this.db.insert(Y0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:G,updatedAt:G}).run()}async get(D){let $=await this.db.select().from(Y0).where(u(Y0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:Y0.key}).from(Y0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(Y0).where(u(Y0.key,D)).run()}async removeAll(){await this.db.delete(Y0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=rp(op),F=np(YO,this.key,$),X=g6.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=sp(YO,this.key,g6.from($,"base64"));return X.setAuthTag(g6.from(F,"base64")),g6.concat([X.update(g6.from(D,"base64")),X.final()]).toString("utf8")}}var YO="aes-256-gcm",op=12,ap=32;var JY=M(()=>{TD();C0()});function gD(){if(!p5)p5=new h6(l.AIWORKER_MASTER_KEY,p());return p5}function BO(){p5=null}var p5=null;var HO=M(()=>{TD();GO();JY();JY()});var WO={};v8(WO,{workerEnv:()=>l,timingSafeEqualStrings:()=>T2,stopGatewayNode:()=>MC,startGatewayNode:()=>R5,resetSecretsVaultForTests:()=>BO,resetAvailabilityProbeForTests:()=>DK,redactSecrets:()=>X4,readConfig:()=>I0,putSecret:()=>P5,putConfig:()=>K9,printBootstrapIfJustMinted:()=>X1,mirrorConfigToYaml:()=>E9,mintWorkerId:()=>$4,mintApiToken:()=>X6,loadOrSeedConfig:()=>$1,loadOrMintIdentity:()=>F1,listSecrets:()=>N5,hydrateSecrets:()=>G6,handleTokenRotate:()=>f8,handleExecutorTest:()=>Z5,handleChannelTest:()=>M5,handleBrainTest:()=>O5,getWorkerEnv:()=>e8,getSecretsVault:()=>gD,getChannelAdapter:()=>J1,getAvailabilityProbe:()=>j4,enumerateSecretPaths:()=>s2,deleteSecret:()=>L5,buildWorkerRuntime:()=>N1,buildInfo:()=>q5,buildCronHandlers:()=>E5,applyConfigUpdate:()=>T6,WorkerEventBus:()=>c3,SecretsVault:()=>h6,ProcessManager:()=>M1,InvalidConfigError:()=>v2,DEFAULT_EMPTY_CONFIG:()=>F6,CronService:()=>p3,ConfigVersionConflictError:()=>g2,ChannelRegistry:()=>I3,ApprovalStore:()=>R1});var O2=M(()=>{D4();YV();w3();oX();aX();z4();ZC();AG();qC();QG();PC();LC();jC();j5();TC();JO();HO();F4()});import e from"process";q2();import KZ from"process";import{randomBytes as yY}from"crypto";import{chmodSync as YZ,existsSync as uY,mkdirSync as BZ,readFileSync as HZ,writeFileSync as WZ}from"fs";import{homedir as _Z}from"os";import mY from"path";import o0 from"process";var UZ=mY.join(_Z(),".aiworker");function g8(D={}){let $=D.home??o0.env.AIWORKER_HOME??UZ,F=mY.join($,".env");if(uY(F)){let B=VZ(HZ(F,"utf8"));for(let[H,W]of Object.entries(B))if(o0.env[H]===void 0)o0.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!uY($))BZ($,{recursive:!0,mode:448});let X=o0.env.AIWORKER_MASTER_KEY??yY(32).toString("hex"),J=o0.env.INTERNAL_SHARED_SECRET??yY(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(WZ(F,Y.join(`
293
- `),{mode:384}),YZ(F,384),o0.env.AIWORKER_MASTER_KEY===void 0)o0.env.AIWORKER_MASTER_KEY=X;if(o0.env.INTERNAL_SHARED_SECRET===void 0)o0.env.INTERNAL_SHARED_SECRET=J;let G=o0.env.AIWORKER_MASTER_KEY===X?X:null;if(G&&D.printOnMint!==!1)QZ(G,F);return{minted:!0,envFile:F,freshMasterKey:G}}function VZ(D){let $={};for(let F of D.split(`
294
- `)){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 QZ(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 ${AZ($,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",""];o0.stderr.write(`${F.join(`
292
+ `);if($===-1)return F;if(F===-1)return $;return Math.min($,F)}function xR(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 hp=60000,Z9;var yR=M(()=>{rG();Z9=class Z9 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 uR=M(()=>{yR();rG()});class aG{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(mp),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(up),$.tool_choice="auto";let F;try{F=await oG({baseUrl:this.baseUrl,apiKey:this.apiKey,timeoutMs:this.timeoutMs,body:$,signal:D.signal})}catch(G){yield{type:"error",error:mR(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)pp(X,W);if(B.finish_reason)J=dp(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:mR(G)};return}for(let[,G]of Array.from(X.entries()).sort(([B],[H])=>B-H)){let B=cp(G);if(B)yield B}if(Y)yield{type:"token_usage",usage:Y};yield{type:"finish",reason:J??"stop",...Y?{usage:Y}:{}}}}function up(D){return{type:"function",function:{name:D.name,description:D.description,parameters:D.inputSchema}}}function mp(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 pp(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 cp(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 dp(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 mR(D){if(D instanceof Z9)return D.message;if(D instanceof Error)return D.message;return"Unknown executor error"}var pR=M(()=>{uR()});class tG{name="mcp";client;constructor(D){this.client=new S6({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 cR=M(()=>{OG()});import dR from"process";function DY(D){let $=lp(D);if(!D.fallbacks||D.fallbacks.length===0)return $;let F=D.fallbacks.map((X)=>({executor:DY(X.executor),onErrorKinds:X.onErrorKinds,maxRetries:X.maxRetries??1}));return new nG($,F)}function lp(D){let $=C8(D);switch($.engine){case"http":{let F=$.body;return new aG({baseUrl:F.baseUrl,apiKey:F.apiKey,model:$.modelId??F.model,timeoutMs:F.timeoutMs})}case"mcp":{let F=$.body;return new tG({url:F.url,token:F.token,...$.modelId!==void 0?{defaultModel:$.modelId}:F.defaultModel===void 0?{}:{defaultModel:F.defaultModel},...F.tools===void 0?{}:{tools:F.tools},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}case"cli":{let{body:F,cmd:X}=$,J=X?.binary??F.command,Y=X?.extraArgs?[...F.args,...X.extraArgs]:F.args,G=eG(F.env,X?.env);return new sG({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??dR.env.CLAUDE_CLI_VERSION??k5,Y=$.modelId??F.model,G=lR(F.extraArgs,X?.extraArgs),B=eG(F.env,X?.env);return new v5({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=lR(F.extraArgs,X?.extraArgs),B=eG(F.env,X?.env),H=fG(F.agent);return new T5({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??dR.env.CODEX_CLI_VERSION??g5,Y=$.modelId??F.model,G=X?.extraArgs,B=X?.env;return new h5({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 x5({...J===void 0?{}:{model:J},...Y===void 0?{}:{extraArgs:Y},...G===void 0?{}:{env:G},...F.timeoutMs===void 0?{}:{timeoutMs:F.timeoutMs}})}}}function lR(D,$){if(!D&&!$)return;return[...D??[],...$??[]]}function eG(D,$){if(!D&&!$)return;return{...D??{},...$??{}}}var iR=M(()=>{D1();BR();QR();PR();SR();hR();pR();cR()});import{Buffer as nR}from"buffer";import{spawn as ip}from"child_process";import{once as np}from"events";import v6 from"fs/promises";import e2 from"path";import sp from"process";function sR(D,$,F){if(!aR.test(F))throw new m5(`invalid conversation id: ${F}`);let X=e2.resolve(D),J=e2.resolve(X,$);if(!rR(X,J))throw new m5(`workspace subdir "${$}" escapes root`);let Y=e2.resolve(J,F);if(!rR(J,Y))throw new m5(`workspace "${F}" escapes parent`);return Y}function rR(D,$){let F=e2.relative(D,$);return F===""||!F.startsWith("..")&&!e2.isAbsolute(F)}class $Y{root;subdir;gitOrigin;inflight=new Map;constructor(D){this.root=e2.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 $=sR(this.root,this.subdir,D);if(await u5($)){let F=await u5(e2.join($,".git"));return{conversationId:D,path:$,isGitWorktree:F}}if(await v6.mkdir(e2.dirname($),{recursive:!0}),this.gitOrigin)return await this.addGitWorktree(this.gitOrigin,$),{conversationId:D,path:$,isGitWorktree:!0};return await v6.mkdir($,{recursive:!0}),{conversationId:D,path:$,isGitWorktree:!1}}async disposeWorkspace(D){let $=sR(this.root,this.subdir,D);if(!await u5($))return;if(this.gitOrigin){if(await this.removeGitWorktree(this.gitOrigin,$))return}await v6.rm($,{recursive:!0,force:!0})}async purgeAll(){let D=e2.resolve(this.root,this.subdir);if(!await u5(D))return;let $=await v6.readdir(D);await Promise.all($.map(async(F)=>{if(!aR.test(F))return;await this.disposeWorkspace(F).catch(()=>{return})}))}async addGitWorktree(D,$){let F=await oR(["worktree","add","--detach",$],D);if(F.code!==0)throw await v6.mkdir($,{recursive:!0}),Error(`git worktree add failed (code=${F.code}): ${F.stderr.trim()}`)}async removeGitWorktree(D,$){return(await oR(["worktree","remove","--force",$],D)).code===0}}async function u5(D){try{return await v6.stat(D),!0}catch{return!1}}async function oR(D,$){let F=ip("git",D,{cwd:$,env:sp.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 np(F,"exit");return{code:Y,stdout:nR.concat(X).toString("utf8"),stderr:nR.concat(J).toString("utf8")}}var aR,m5;var tR=M(()=>{aR=/^[\w-]{1,128}$/;m5=class m5 extends Error{constructor(D){super(D);this.name="WorkspaceEscapeError"}}});async function eR(D){let $=p(),F=D.threadId?k0(u(ED.channel,D.channel),u(ED.chatId,D.chatId),u(ED.threadId,D.threadId),u(ED.status,"open")):k0(u(ED.channel,D.channel),u(ED.chatId,D.chatId),u(ED.status,"open"));return $.select().from(ED).where(F).orderBy(J0(ED.lastActiveAt)).get()??null}function op(){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 ap(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:op()},{role:"user",content:X.join(`
295
+ `)}]}async function DO(D,$,F,X,J,Y){let G={messages:ap(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 R.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 FY(D,$=rp){return p().select({role:G0.role,content:G0.content}).from(G0).where(u(G0.conversationId,D)).orderBy(J0(G0.id)).limit($).all().reverse()}var rp=4;var $O=M(()=>{TD();FD();C0()});function FO(D,$){if(!$)return"auto";for(let F of $.rules)if(tp(F.pattern,D))return F.action;return $.default}function tp(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 XY{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),F=await this.provisionWorkspace($.id),X=this.persistUserMessage($.id,D);this.deps.bus.emit("conversation.message",{conversationId:$.id,messageId:X.id,role:"user"});let J=new AbortController,Y=null;await this.deps.processes.run({group:$.id,engine:this.deps.config.executor.engine,class:"interactive",meta:{conversationId:$.id,channel:D.channel},onSpawn:async()=>({cancel:async()=>J.abort(),onActivity:(G)=>{return Y=G,()=>{if(Y===G)Y=null}}}),job:()=>this.run($,D,F,J.signal,()=>Y?.())})}async run(D,$,F,X,J){let Y=p(),G=await this.loadHistoryWindow(D.id),H=[{role:"system",content:await this.buildSystemPrompt(D.summary??null)},...G],W=XO(this.deps.config.executor),U=JO($),V={messages:H,...W?{model:W}:{},...F?{workspacePath:F.path}:{},signal:X},Q="";try{for await(let C of this.deps.executor.run(V))if(J(),C.type==="assistant_message_delta")Q+=C.delta,this.deps.bus.emit("orchestrator.text",{conversationId:D.id,...U===void 0?{}:{taskId:U},delta:C.delta});else if(C.type==="tool_use")this.deps.bus.emit("orchestrator.tool_call",{conversationId:D.id,...U===void 0?{}:{taskId:U},call:{id:C.id,name:C.name,arguments:C.arguments}});else if(C.type==="error"){R.warn(`[orchestrator] executor error: ${C.error}`),this.deps.bus.emit("orchestrator.error",{conversationId:D.id,...U===void 0?{}:{taskId:U},error:C.error});return}}catch(C){R.error(`[orchestrator] run failed: ${String(C)}`),this.deps.bus.emit("orchestrator.error",{conversationId:D.id,...U===void 0?{}:{taskId:U},error:String(C)});return}let K=new Date().toISOString();Y.insert(G0).values({conversationId:D.id,role:"assistant",content:Q,createdAt:K}).run(),Y.update(ED).set({lastActiveAt:K}).where(u(ED.id,D.id)).run(),this.deps.bus.emit("orchestrator.finished",{conversationId:D.id,...U===void 0?{}:{taskId:U}}),await this.deliver($.channel,D,Q)}async deliver(D,$,F){let X=this.deps.config.channels.find((Y)=>Y.channel===D&&Y.enabled);if(!X)return;let J=J1(D);try{await J.send(X,{channel:D,chatId:$.chatId,...$.threadId===void 0?{}:{threadId:$.threadId},text:F})}catch(Y){R.warn(`[orchestrator] deliver to ${D} failed: ${String(Y)}`)}}async resolveConversation(D){let $=await eR(D);if(!$)return this.createConversation(D);if(ep(D))return this.closeConversation($),this.createConversation(D);let F=await this.provisionWorkspace($.id),X=await FY($.id),J=XO(this.deps.config.executor),Y=await DO(this.deps.executor,J,$.summary??null,X,D.text,F?.path);if(this.deps.bus.emit("conversation.classifier",{conversationId:$.id,decision:Y}),Y.continue)return GO($);return this.closeConversation($),this.createConversation(D)}closeConversation(D){let $=p(),F=new Date().toISOString();$.update(ED).set({status:"closed",closedAt:F}).where(u(ED.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)=>R.warn(`[orchestrator] dispose workspace job failed: ${String(J)}`))}async provisionWorkspace(D){try{return await this.deps.workspaces.createWorkspace(D)}catch($){return R.warn(`[orchestrator] workspace create failed for ${D}: ${String($)}`),null}}async disposeWorkspace(D){try{await this.deps.workspaces.disposeWorkspace(D)}catch($){R.warn(`[orchestrator] workspace dispose failed for ${D}: ${String($)}`)}}createConversation(D){let $=p(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(ED).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(ED).where(u(ED.id,F)).get(),Y=JO(D);return this.deps.bus.emit("conversation.created",{conversationId:F,channel:D.channel,chatId:D.chatId,...Y===void 0?{}:{taskId:Y}}),GO(J)}persistUserMessage(D,$){let F=p(),X=new Date().toISOString(),J=$.richMetadata?JSON.stringify($.richMetadata):null,Y=F.insert(G0).values({conversationId:D,role:"user",content:$.text,...J===null?{}:{richMetadata:J},createdAt:X}).returning({id:G0.id}).all();return F.update(ED).set({lastActiveAt:X}).where(u(ED.id,D)).run(),{id:Y[0]?.id??-1}}async loadHistoryWindow(D){let $=this.deps.config.orchestrator?.maxHistoryMessages??X7;return(await FY(D,$)).map((X)=>({role:X.role,content:X.content}))}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 $=FO(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??CG,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=p(),X=new Date().toISOString();F.insert(G0).values({conversationId:D,role:"assistant",content:$,createdAt:X}).run(),F.update(ED).set({lastActiveAt:X}).where(u(ED.id,D)).run()}async submitTask(D){let $=p(),F=crypto.randomUUID(),X=new Date().toISOString();$.insert(E8).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)=>R.error(`[orchestrator] submitTask ingest failed: ${String(Y)}`)),{id:F}}}function XO(D){let $=null;try{$=C8(D)}catch{return}if(!$)return;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}function JO(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 ep(D){if(!D.raw||typeof D.raw!=="object"||Array.isArray(D.raw))return!1;let $=D.raw;return $.source==="gateway"&&$.sessionReset===!0}function GO(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 YO=M(()=>{N0();TD();FD();C0();w3();$O();D1();j5()});function N1(D,$,F){let X=mC(D,$),J=DY($.executor),Y=new I3($.channels),G=new c3,B=Dc($),H=new R1,W=new XY({config:$,brain:X,executor:J,bus:G,workerId:D,workspaces:B,processes:F.processes,approvals:H}),U=cC(G),V=$.evolution.enabled?oC():()=>{return},Q=new p3({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(),V(),H.dispose(),Q.stop(),UV()}}}function Dc(D){let $=(()=>{if(D.executor.engine!=="claude-code")return;try{let X=C8(D.executor).body.workspaceRoot;return typeof X==="string"&&X.length>0?X:void 0}catch{return}})();return new $Y({root:l.WORKER_DATA_ROOT,...$?{subdir:$}:{},...l.WORKER_WORKSPACE_GIT_ORIGIN?{gitOrigin:l.WORKER_WORKSPACE_GIT_ORIGIN}:{}})}var BO=M(()=>{D4();pC();UX();w3();oX();aX();dC();aC();D1();iR();tR();j5();YO()});var HO=M(()=>{D4()});import{Buffer as g6}from"buffer";import{createCipheriv as $c,createDecipheriv as Fc,randomBytes as Xc}from"crypto";class h6{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=g6.from(D,"hex"),this.key.length!==Gc)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:Y0.id}).from(Y0).where(u(Y0.key,D)).get(),G=new Date().toISOString();if(Y)await this.db.update(Y0).set({valueEnc:F,nonce:X,authTag:J,updatedAt:G}).where(u(Y0.id,Y.id)).run();else await this.db.insert(Y0).values({key:D,valueEnc:F,nonce:X,authTag:J,createdAt:G,updatedAt:G}).run()}async get(D){let $=await this.db.select().from(Y0).where(u(Y0.key,D)).get();if(!$)return null;return this.decrypt($.valueEnc,$.nonce,$.authTag)}async list(){return(await this.db.select({key:Y0.key}).from(Y0).all()).map(($)=>$.key)}async remove(D){await this.db.delete(Y0).where(u(Y0.key,D)).run()}async removeAll(){await this.db.delete(Y0).run()}encryptString(D){return this.encrypt(D)}decryptString(D,$,F){return this.decrypt(D,$,F)}encrypt(D){let $=Xc(Jc),F=$c(WO,this.key,$),X=g6.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=Fc(WO,this.key,g6.from($,"base64"));return X.setAuthTag(g6.from(F,"base64")),g6.concat([X.update(g6.from(D,"base64")),X.final()]).toString("utf8")}}var WO="aes-256-gcm",Jc=12,Gc=32;var JY=M(()=>{TD();C0()});function gD(){if(!p5)p5=new h6(l.AIWORKER_MASTER_KEY,p());return p5}function _O(){p5=null}var p5=null;var UO=M(()=>{TD();HO();JY();JY()});var VO={};v8(VO,{workerEnv:()=>l,timingSafeEqualStrings:()=>T2,stopGatewayNode:()=>MC,startGatewayNode:()=>R5,resetSecretsVaultForTests:()=>_O,resetAvailabilityProbeForTests:()=>DK,redactSecrets:()=>X4,readConfig:()=>I0,putSecret:()=>P5,putConfig:()=>K9,printBootstrapIfJustMinted:()=>X1,mirrorConfigToYaml:()=>E9,mintWorkerId:()=>$4,mintApiToken:()=>X6,loadOrSeedConfig:()=>$1,loadOrMintIdentity:()=>F1,listSecrets:()=>N5,hydrateSecrets:()=>G6,handleTokenRotate:()=>f8,handleExecutorTest:()=>Z5,handleChannelTest:()=>M5,handleBrainTest:()=>O5,getWorkerEnv:()=>e8,getSecretsVault:()=>gD,getChannelAdapter:()=>J1,getAvailabilityProbe:()=>j4,enumerateSecretPaths:()=>s2,deleteSecret:()=>L5,buildWorkerRuntime:()=>N1,buildInfo:()=>q5,buildCronHandlers:()=>E5,applyConfigUpdate:()=>T6,WorkerEventBus:()=>c3,SecretsVault:()=>h6,ProcessManager:()=>M1,InvalidConfigError:()=>v2,DEFAULT_EMPTY_CONFIG:()=>F6,CronService:()=>p3,ConfigVersionConflictError:()=>g2,ChannelRegistry:()=>I3,ApprovalStore:()=>R1});var O2=M(()=>{D4();YV();w3();oX();aX();z4();ZC();AG();qC();QG();PC();LC();jC();j5();TC();BO();UO();F4()});import e from"process";q2();import RZ from"process";import{randomBytes as yY}from"crypto";import{chmodSync as WZ,existsSync as uY,mkdirSync as _Z,readFileSync as UZ,writeFileSync as VZ}from"fs";import{homedir as QZ}from"os";import mY from"path";import o0 from"process";var AZ=mY.join(QZ(),".aiworker");function g8(D={}){let $=D.home??o0.env.AIWORKER_HOME??AZ,F=mY.join($,".env");if(uY(F)){let B=KZ(UZ(F,"utf8"));for(let[H,W]of Object.entries(B))if(o0.env[H]===void 0)o0.env[H]=W;return{minted:!1,envFile:F,freshMasterKey:null}}if(!uY($))_Z($,{recursive:!0,mode:448});let X=o0.env.AIWORKER_MASTER_KEY??yY(32).toString("hex"),J=o0.env.INTERNAL_SHARED_SECRET??yY(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(VZ(F,Y.join(`
297
+ `),{mode:384}),WZ(F,384),o0.env.AIWORKER_MASTER_KEY===void 0)o0.env.AIWORKER_MASTER_KEY=X;if(o0.env.INTERNAL_SHARED_SECRET===void 0)o0.env.INTERNAL_SHARED_SECRET=J;let G=o0.env.AIWORKER_MASTER_KEY===X?X:null;if(G&&D.printOnMint!==!1)EZ(G,F);return{minted:!0,envFile:F,freshMasterKey:G}}function KZ(D){let $={};for(let F of D.split(`
298
+ `)){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 EZ(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 ${CZ($,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",""];o0.stderr.write(`${F.join(`
295
299
  `)}
296
- `)}function AZ(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}function EZ(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(EZ(KZ.argv)){let D=s0();g8({home:D.home})}import{EventEmitter as CZ}from"events";function _$(D){return D==null?[]:Array.isArray(D)?D:[D]}function RZ(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 OZ(D,$){D=D||[],$=$||{};var F,X,J,Y,G,B={_:[]},H=0,W=0,U=0,V=D.length;let Q=$.alias!==void 0,K=$.unknown!==void 0,C=$.default!==void 0;if($.alias=$.alias||{},$.string=_$($.string),$.boolean=_$($.boolean),Q)for(F in $.alias){X=$.alias[F]=_$($.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(C){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=K?Object.keys($.alias):[];for(H=0;H<V;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),K&&!~E.indexOf(Y))return $.unknown(J);B[Y]=!1}else{for(U=W+1;U<J.length;U++)if(J.charCodeAt(U)===61)break;Y=J.substring(W,U),G=J.substring(++U)||(H+1===V||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[Y]:Y;for(U=0;U<X.length;U++){if(Y=X[U],K&&!~E.indexOf(Y))return $.unknown("-".repeat(W)+Y);RZ(B,Y,U+1<X.length||G,$)}}}if(C){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 dY=(D)=>D.replace(/[<[].+/,"").trim(),MZ=(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},ZZ=(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 $},pY=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},cY=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},qZ=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},NZ=(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)?{}:[]},PZ=(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)}}},LZ=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},lY=(D)=>{return D.split(".").map(($,F)=>{return F===0?qZ($):$}).join(".")};class y9 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 iY{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=dY(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return lY(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 jZ=process.argv,zZ=`${process.platform}-${process.arch} node-${process.version}`;class U${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=dY(D),this.args=MZ(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 iY(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 V$}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=pY($.map((W)=>W.rawName));Y.push({title:"Commands",body:$.map((W)=>{return` ${cY(W.rawName,H.length)} ${W.description}`}).join(`
300
+ `)}function CZ(D,$){if(D.length<=$)return D.padEnd($);return`\u2026${D.slice(-($-1))}`.padEnd($)}function OZ(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(OZ(RZ.argv)){let D=s0();g8({home:D.home})}import{EventEmitter as MZ}from"events";function _$(D){return D==null?[]:Array.isArray(D)?D:[D]}function ZZ(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 qZ(D,$){D=D||[],$=$||{};var F,X,J,Y,G,B={_:[]},H=0,W=0,U=0,V=D.length;let Q=$.alias!==void 0,K=$.unknown!==void 0,C=$.default!==void 0;if($.alias=$.alias||{},$.string=_$($.string),$.boolean=_$($.boolean),Q)for(F in $.alias){X=$.alias[F]=_$($.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(C){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=K?Object.keys($.alias):[];for(H=0;H<V;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),K&&!~E.indexOf(Y))return $.unknown(J);B[Y]=!1}else{for(U=W+1;U<J.length;U++)if(J.charCodeAt(U)===61)break;Y=J.substring(W,U),G=J.substring(++U)||(H+1===V||(""+D[H+1]).charCodeAt(0)===45||D[++H]),X=W===2?[Y]:Y;for(U=0;U<X.length;U++){if(Y=X[U],K&&!~E.indexOf(Y))return $.unknown("-".repeat(W)+Y);ZZ(B,Y,U+1<X.length||G,$)}}}if(C){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 dY=(D)=>D.replace(/[<[].+/,"").trim(),NZ=(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},PZ=(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 $},pY=(D)=>{return D.sort(($,F)=>{return $.length>F.length?-1:1})[0]},cY=(D,$)=>{return D.length>=$?D:`${D}${" ".repeat($-D.length)}`},LZ=(D)=>{return D.replace(/([a-z])-([a-z])/g,($,F,X)=>{return F+X.toUpperCase()})},jZ=(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)?{}:[]},zZ=(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)}}},IZ=(D)=>{let $=/([^\\\/]+)$/.exec(D);return $?$[1]:""},lY=(D)=>{return D.split(".").map(($,F)=>{return F===0?LZ($):$}).join(".")};class y9 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 iY{constructor(D,$,F){if(this.rawName=D,this.description=$,this.config=Object.assign({},F),D=D.replace(/\.\*/g,""),this.negated=!1,this.names=dY(D).split(",").map((X)=>{let J=X.trim().replace(/^-{1,2}/,"");if(J.startsWith("no-"))this.negated=!0,J=J.replace(/^no-/,"");return lY(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 wZ=process.argv,TZ=`${process.platform}-${process.arch} node-${process.version}`;class U${constructor(D,$,F={},X){this.rawName=D,this.description=$,this.config=F,this.cli=X,this.options=[],this.aliasNames=[],this.name=dY(D),this.args=NZ(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 iY(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 V$}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=pY($.map((W)=>W.rawName));Y.push({title:"Commands",body:$.map((W)=>{return` ${cY(W.rawName,H.length)} ${W.description}`}).join(`
297
301
  `)}),Y.push({title:"For more info, run any command with the `--help` flag",body:$.map((W)=>` $ ${D}${W.name===""?"":` ${W.name}`} --help`).join(`
298
302
  `)})}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=pY(B.map((W)=>W.rawName));Y.push({title:"Options",body:B.map((W)=>{return` ${cY(W.rawName,H.length)} ${W.description} ${W.config.default===void 0?"":`(default: ${W.config.default})`}`}).join(`
299
303
  `)})}if(this.examples.length>0)Y.push({title:"Examples",body:this.examples.map((H)=>{if(typeof H==="function")return H(D);return H}).join(`
300
304
  `)});if(J)Y=J(Y)||Y;console.log(Y.map((H)=>{return H.title?`${H.title}:
301
305
  ${H.body}`:H.body}).join(`
302
306
 
303
- `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${zZ}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new y9(`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 y9(`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 y9(`option \`${X.rawName}\` value is missing`)}}}}class V$ extends U${constructor(D){super("@@global@@","",{},D)}}var x9=Object.assign;class nY extends CZ{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new V$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new U$(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=jZ,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?LZ(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=x9(x9({},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=ZZ(F),J=[],Y=D.indexOf("--");if(Y>-1)J=D.slice(Y+1),D=D.slice(0,Y);let G=OZ(D,X);G=Object.keys(G).reduce((V,Q)=>{return x9(x9({},V),{[lY(Q)]:G[Q]})},{_:[]});let B=G._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,U=Object.create(null);for(let V of F){if(!W&&V.config.default!==void 0)for(let Q of V.names)H[Q]=V.config.default;if(Array.isArray(V.config.type)){if(U[V.name]===void 0)U[V.name]=Object.create(null),U[V.name].shouldTransform=!0,U[V.name].transformFunction=V.config.type[0]}}for(let V of Object.keys(G))if(V!=="_"){let Q=V.split(".");NZ(H,Q,G[V]),PZ(H,U)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,Y)=>{if(J.variadic)X.push(D.slice(Y));else X.push(D[Y])}),X.push($),F.commandAction.apply(this,X)}}var IZ=(D="")=>new nY(D),sY=IZ;FD();var yB={name:"@zonease/aiworker-cli",type:"module",version:"0.4.0",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"}};FD();import fH from"process";eD();class D0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function bH(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function Y(A){for(let[,Z]of X){if(Z.timer)clearTimeout(Z.timer);Z.signalCleanup?.(),Z.reject(A)}X.clear()}function G(A){let Z=X.get(A.id);if(!Z)return;if(X.delete(A.id),Z.timer)clearTimeout(Z.timer);if(Z.signalCleanup?.(),A.ok)Z.resolve(A.result);else{let L=A.error;Z.reject(new D0(`${L.code}: ${L.message}`,L.code))}}function B(A){let Z=J.get(A.name);if(!Z||Z.size===0)return;for(let L of Z)try{L(A.payload)}catch{}}function H(A){let Z=d8(A);if(!Z.ok)return;let L=Z.frame;if(L.type==="response")G(L);else if(L.type==="event")B(L)}async function W(A){if($)throw new D0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let Z=A.timeoutMs??1e4;await new Promise((L,N)=>{let S=!1,z;try{z=new WebSocket(A.url)}catch(b){N(new D0(`WebSocket \u6784\u9020\u5931\u8D25 (${A.url}): ${b instanceof Error?b.message:String(b)}`,"ws_construct_failed"));return}D=z;let P=setTimeout(()=>{if(S)return;S=!0;try{z.close()}catch{}N(new D0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${Z}ms): ${A.url}`,"connect_timeout"))},Z);z.onopen=()=>{let b={type:"connect",role:c8.OPERATOR,agentId:A.deviceId,deviceId:A.deviceId,auth:{token:A.token},...A.meta?{meta:A.meta}:{}};try{z.send(ID(b))}catch(I){if(S)return;S=!0,clearTimeout(P),N(new D0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${I instanceof Error?I.message:String(I)}`,"connect_send_failed"));return}if(!S)S=!0,clearTimeout(P),$=!0,L()},z.onmessage=(b)=>{let I=typeof b.data==="string"?b.data:b.data instanceof ArrayBuffer?new TextDecoder().decode(b.data):String(b.data);H(I)},z.onerror=(b)=>{if(S)return;S=!0,clearTimeout(P);let I=b.message??"unknown";N(new D0(`WS \u8FDE\u63A5\u9519\u8BEF: ${I}`,"ws_error"))},z.onclose=(b)=>{if(F=!0,$=!1,Y(new D0(`WS \u5DF2\u5173\u95ED (code=${b.code}, reason=${b.reason||"n/a"})`,"ws_closed")),!S)S=!0,clearTimeout(P),N(new D0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${b.code})`,"ws_closed_early"))}})}function U(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new D0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function V(A,Z,L){U();let N=crypto.randomUUID(),S={type:"request",id:N,method:A,...Z===void 0?{}:{params:Z}};return await new Promise((z,P)=>{let b=L?.timeoutMs??30000,I=null,o=null,_D={resolve:z,reject:P,timer:null,signalCleanup:null};if(I=setTimeout(()=>{X.delete(N),o?.(),P(new D0(`request ${A} \u8D85\u65F6 (>${b}ms)`,"request_timeout"))},b),_D.timer=I,L?.signal){let BD=L.signal;if(BD.aborted){X.delete(N),clearTimeout(I),P(BD.reason??new D0(`request ${A} \u88AB abort`,"aborted"));return}let a=()=>{if(X.delete(N),I)clearTimeout(I);P(BD.reason??new D0(`request ${A} \u88AB abort`,"aborted"))};BD.addEventListener("abort",a,{once:!0}),o=()=>BD.removeEventListener("abort",a),_D.signalCleanup=o}X.set(N,_D);try{D?.send(ID(S))}catch(BD){if(X.delete(N),I)clearTimeout(I);o?.(),P(new D0(`request ${A} \u53D1\u9001\u5931\u8D25: ${BD instanceof Error?BD.message:String(BD)}`,"send_failed"))}})}async function Q(A,Z,L){if(!_7(A))throw new D0(`method ${A} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await V(A,Z,L)}function K(A,Z){if(!h$(A));let L=J.get(A);if(!L)L=new Set,J.set(A,L);return L.add(Z),()=>{let N=J.get(A);if(!N)return;if(N.delete(Z),N.size===0)J.delete(A)}}async function C(A,Z){if(!D||F)return;await new Promise((L)=>{let N=D;if(!N){L();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,L();return}let S=N.onclose;N.onclose=(z)=>{if(typeof S==="function")S.call(N,z);L()};try{N.close(A,Z)}catch{}})}function E(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:Q,requestRaw:V,onEvent:K,close:C,isOpen:E}}i8();async function KD(D,$={}){let F=await A7(),X=bH();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 LD(D){let $=JSON.stringify(D,null,2);fH.stdout.write(`${$}
307
+ `))}outputVersion(){let{name:D}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${D}/${$} ${TZ}`)}checkRequiredArgs(){let D=this.args.filter(($)=>$.required).length;if(this.cli.args.length<D)throw new y9(`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 y9(`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 y9(`option \`${X.rawName}\` value is missing`)}}}}class V$ extends U${constructor(D){super("@@global@@","",{},D)}}var x9=Object.assign;class nY extends MZ{constructor(D=""){super();this.name=D,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new V$(this),this.globalCommand.usage("<command> [options]")}usage(D){return this.globalCommand.usage(D),this}command(D,$,F){let X=new U$(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=wZ,{run:$=!0}={}){if(this.rawArgs=D,!this.name)this.name=D[1]?IZ(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=x9(x9({},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=PZ(F),J=[],Y=D.indexOf("--");if(Y>-1)J=D.slice(Y+1),D=D.slice(0,Y);let G=qZ(D,X);G=Object.keys(G).reduce((V,Q)=>{return x9(x9({},V),{[lY(Q)]:G[Q]})},{_:[]});let B=G._,H={"--":J},W=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,U=Object.create(null);for(let V of F){if(!W&&V.config.default!==void 0)for(let Q of V.names)H[Q]=V.config.default;if(Array.isArray(V.config.type)){if(U[V.name]===void 0)U[V.name]=Object.create(null),U[V.name].shouldTransform=!0,U[V.name].transformFunction=V.config.type[0]}}for(let V of Object.keys(G))if(V!=="_"){let Q=V.split(".");jZ(H,Q,G[V]),zZ(H,U)}return{args:B,options:H}}runMatchedCommand(){let{args:D,options:$,matchedCommand:F}=this;if(!F||!F.commandAction)return;F.checkUnknownOptions(),F.checkOptionValue(),F.checkRequiredArgs();let X=[];return F.args.forEach((J,Y)=>{if(J.variadic)X.push(D.slice(Y));else X.push(D[Y])}),X.push($),F.commandAction.apply(this,X)}}var SZ=(D="")=>new nY(D),sY=SZ;FD();var yB={name:"@zonease/aiworker-cli",type:"module",version:"0.4.2",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"}};FD();import fH from"process";eD();class D0 extends Error{code;constructor(D,$="aim_ws_error"){super(D);this.code=$;this.name="AimWsError"}}function bH(){let D=null,$=!1,F=!1,X=new Map,J=new Map;function Y(A){for(let[,Z]of X){if(Z.timer)clearTimeout(Z.timer);Z.signalCleanup?.(),Z.reject(A)}X.clear()}function G(A){let Z=X.get(A.id);if(!Z)return;if(X.delete(A.id),Z.timer)clearTimeout(Z.timer);if(Z.signalCleanup?.(),A.ok)Z.resolve(A.result);else{let P=A.error;Z.reject(new D0(`${P.code}: ${P.message}`,P.code))}}function B(A){let Z=J.get(A.name);if(!Z||Z.size===0)return;for(let P of Z)try{P(A.payload)}catch{}}function H(A){let Z=d8(A);if(!Z.ok)return;let P=Z.frame;if(P.type==="response")G(P);else if(P.type==="event")B(P)}async function W(A){if($)throw new D0("aim client \u5DF2\u7ECF\u8FDE\u63A5","already_connected");let Z=A.timeoutMs??1e4;await new Promise((P,N)=>{let S=!1,z;try{z=new WebSocket(A.url)}catch(b){N(new D0(`WebSocket \u6784\u9020\u5931\u8D25 (${A.url}): ${b instanceof Error?b.message:String(b)}`,"ws_construct_failed"));return}D=z;let L=setTimeout(()=>{if(S)return;S=!0;try{z.close()}catch{}N(new D0(`\u8FDE\u63A5 gateway \u8D85\u65F6 (>${Z}ms): ${A.url}`,"connect_timeout"))},Z);z.onopen=()=>{let b={type:"connect",role:c8.OPERATOR,agentId:A.deviceId,deviceId:A.deviceId,auth:{token:A.token},...A.meta?{meta:A.meta}:{}};try{z.send(ID(b))}catch(I){if(S)return;S=!0,clearTimeout(L),N(new D0(`\u53D1\u9001 connect \u5E27\u5931\u8D25: ${I instanceof Error?I.message:String(I)}`,"connect_send_failed"));return}if(!S)S=!0,clearTimeout(L),$=!0,P()},z.onmessage=(b)=>{let I=typeof b.data==="string"?b.data:b.data instanceof ArrayBuffer?new TextDecoder().decode(b.data):String(b.data);H(I)},z.onerror=(b)=>{if(S)return;S=!0,clearTimeout(L);let I=b.message??"unknown";N(new D0(`WS \u8FDE\u63A5\u9519\u8BEF: ${I}`,"ws_error"))},z.onclose=(b)=>{if(F=!0,$=!1,Y(new D0(`WS \u5DF2\u5173\u95ED (code=${b.code}, reason=${b.reason||"n/a"})`,"ws_closed")),!S)S=!0,clearTimeout(L),N(new D0(`WS \u5728\u63E1\u624B\u9636\u6BB5\u88AB\u5173\u95ED (code=${b.code})`,"ws_closed_early"))}})}function U(){if(!$||F||D===null||D.readyState!==WebSocket.OPEN)throw new D0("aim client \u672A\u8FDE\u63A5\u6216\u5DF2\u5173\u95ED","not_connected")}async function V(A,Z,P){U();let N=crypto.randomUUID(),S={type:"request",id:N,method:A,...Z===void 0?{}:{params:Z}};return await new Promise((z,L)=>{let b=P?.timeoutMs??30000,I=null,o=null,_D={resolve:z,reject:L,timer:null,signalCleanup:null};if(I=setTimeout(()=>{X.delete(N),o?.(),L(new D0(`request ${A} \u8D85\u65F6 (>${b}ms)`,"request_timeout"))},b),_D.timer=I,P?.signal){let BD=P.signal;if(BD.aborted){X.delete(N),clearTimeout(I),L(BD.reason??new D0(`request ${A} \u88AB abort`,"aborted"));return}let a=()=>{if(X.delete(N),I)clearTimeout(I);L(BD.reason??new D0(`request ${A} \u88AB abort`,"aborted"))};BD.addEventListener("abort",a,{once:!0}),o=()=>BD.removeEventListener("abort",a),_D.signalCleanup=o}X.set(N,_D);try{D?.send(ID(S))}catch(BD){if(X.delete(N),I)clearTimeout(I);o?.(),L(new D0(`request ${A} \u53D1\u9001\u5931\u8D25: ${BD instanceof Error?BD.message:String(BD)}`,"send_failed"))}})}async function Q(A,Z,P){if(!_7(A))throw new D0(`method ${A} \u672A\u5728 @zonease/aiworker-gateway-proto \u6CE8\u518C`,"unknown_method");return await V(A,Z,P)}function K(A,Z){if(!h$(A));let P=J.get(A);if(!P)P=new Set,J.set(A,P);return P.add(Z),()=>{let N=J.get(A);if(!N)return;if(N.delete(Z),N.size===0)J.delete(A)}}async function C(A,Z){if(!D||F)return;await new Promise((P)=>{let N=D;if(!N){P();return}if(N.readyState===WebSocket.CLOSED){F=!0,$=!1,P();return}let S=N.onclose;N.onclose=(z)=>{if(typeof S==="function")S.call(N,z);P()};try{N.close(A,Z)}catch{}})}function E(){return $&&!F&&D!==null&&D.readyState===WebSocket.OPEN}return{connect:W,request:Q,requestRaw:V,onEvent:K,close:C,isOpen:E}}i8();async function KD(D,$={}){let F=await A7(),X=bH();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 LD(D){let $=JSON.stringify(D,null,2);fH.stdout.write(`${$}
304
308
  `)}function G2(D){fH.stdout.write(`${JSON.stringify(D)}
305
- `)}function VD(D){if(!(D instanceof D0))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 kH(D={}){try{let $=await KD(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){R.warn(`approval.list ${G} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:Y}});return LD($),0}catch($){return R.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function vH(D){try{let $=await KD(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 LD($),0}catch($){return R.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}eD();FD();async function gH(D){let $=D.timeoutMs??120000;try{return await KD(async({client:F})=>{return await new Promise((X)=>{let J=!1,Y=(U)=>{if(J)return;J=!0,X(U)},G=setTimeout(()=>{G2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),Y(3)},$),B=D.workerId,H=(U)=>{if(U===null||typeof U!=="object")return!1;let V=U.workerId;return typeof V==="string"&&V===B},W=[];W.push(F.onEvent(s.CHAT_MESSAGE,(U)=>{if(!H(U))return;G2({kind:s.CHAT_MESSAGE,payload:U})})),W.push(F.onEvent(s.AGENT_THINKING,(U)=>{if(!H(U))return;G2({kind:s.AGENT_THINKING,payload:U})})),W.push(F.onEvent(s.AGENT_TOOL_CALL,(U)=>{if(!H(U))return;G2({kind:s.AGENT_TOOL_CALL,payload:U})})),W.push(F.onEvent(s.AGENT_DONE,(U)=>{if(!H(U))return;G2({kind:"done",payload:U}),clearTimeout(G);for(let V of W)V();Y(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((U)=>{G2({kind:"accepted",payload:U})}).catch((U)=>{G2({kind:"error",payload:{code:"request_failed",message:U instanceof Error?U.message:String(U)}}),clearTimeout(G);for(let V of W)V();Y(VD(U))})})})}catch(F){return R.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function hH(D){try{let $=await KD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return LD($),0}catch($){return R.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function xH(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return R.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await KD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return LD(F),0}catch(F){return R.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function yH(){try{let D=await KD(async({client:$})=>{return await $.request("enroll.list",{})});return LD(D),0}catch(D){return R.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),VD(D)}}async function uH(D){try{let $=await KD(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return R.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),LD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return R.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function mH(D){try{let $=await KD(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)R.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else R.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return LD($),0}catch($){return R.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}import a7 from"process";import{createHash as fj}from"crypto";eD();pF();dF();import{existsSync as s_}from"fs";import iF from"path";import{fileURLToPath as bL}from"url";import{Database as fL}from"bun:sqlite";x7();var lF={};v8(lF,{registeredWorkers:()=>CD,auditEvents:()=>l2});var CD=Q0("registered_workers",{id:T("id").primaryKey(),baseUrl:T("base_url").notNull(),displayName:T("display_name").notNull(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),addedAt:T("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:T("added_by").$type().notNull(),lastSeenAt:T("last_seen_at"),lastSeenState:T("last_seen_state").$type(),lastConfigVersion:pD("last_config_version")}),l2=Q0("audit_events",{id:pD("id").primaryKey({autoIncrement:!0}),at:T("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:T("actor").notNull(),action:T("action").notNull(),workerId:T("worker_id"),detail:T("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:w2("audit_events_worker_id_idx").on(D.workerId)}));var r_=iF.dirname(bL(import.meta.url));function kL(D){let $=iF.resolve(r_,"../../drizzle",D);if(s_($))return $;let F=iF.resolve(r_,"drizzle",D);if(s_(F))return F;return $}var nF=kL("fleet"),M3=null;function vL(D){let $=new fL(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),t1($,{schema:lF})}function o_(D){return M3=vL(D),M3}function sF(){if(!M3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return M3}function rF(){M3=null}function a_(D=nF){u7(sF(),{migrationsFolder:D})}FD();vD();import gL from"process";var hL=_.object({AIWORKER_GATEWAY_PORT:_.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:_.string().min(1).default("127.0.0.1"),INTERNAL_SHARED_SECRET:_.string().min(16).optional(),NODE_ENV:_.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:_.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:_.string().default("./data/fleet.db"),AIWORKER_GATEWAY_CAN_LAUNCH:_.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:_.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:_.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:_.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:_.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:_.string().optional(),AIWORKER_NETWORK:_.string().default("aiworker_default"),WORKER_DATA_ROOT:_.string().optional(),WORKER_MEMORY_LIMIT:_.string().optional(),WORKER_CPU_LIMIT:_.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:_.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:_.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:_.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function t_(){let D=hL.parse(gL.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}}}eD();function j0(D,$){let F=ID($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class m7{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 p7{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 c7{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 d7{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 xL}from"crypto";var oF="ABCDEFGHJKMNPQRSTVWXYZ23456789",e_=4,yL=5;class l7{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??uL}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<yL;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function uL(){return`${DU(e_)}-${DU(e_)}`}function DU(D){let $=xL(D),F="";for(let X=0;X<D;X++)F+=oF[$[X]%oF.length];return F}C0();import{Buffer as $U}from"buffer";import{createCipheriv as mL,createDecipheriv as ht,randomBytes as pL,timingSafeEqual as xt}from"crypto";var cL="aes-256-gcm",dL=12,lL=32,iL=/^[0-9a-f]{64}$/;function nL(D){if(!iL.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=$U.from(D,"hex");if($.length!==lL)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function i7(D,$){let F=nL($),X=pL(dL),J=mL(cL,F,X),Y=$U.concat([J.update(D,"utf8"),J.final()]),G=J.getAuthTag();return{ciphertext:Y.toString("base64"),nonce:X.toString("base64"),authTag:G.toString("base64")}}function sL(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class n7{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(CD).orderBy(J0(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(u(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(u(CD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=i7(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(l2).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(u(CD.id,D.workerId)).get();if(!J){let W=i7(D.apiToken,$),U={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:W.ciphertext,nonce:W.nonce,authTag:W.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(CD).values(U).run();let{apiTokenEnc:V,nonce:Q,authTag:K,...C}=U;return{kind:"created",row:{...C,lastSeenAt:C.lastSeenAt??void 0,lastSeenState:C.lastSeenState??void 0,lastConfigVersion:C.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(CD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(u(CD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:U,authTag:V,...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(u(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(u(CD.id,D.workerId)).get())return!1;let X=i7(D.newToken,$);return this.db.update(CD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(u(CD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:CD.id}).from(CD).where(u(CD.id,D)).get())return!1;return this.db.delete(CD).where(u(CD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:j_()}).from(CD).get()?.value??0}recordAudit(D){this.db.insert(l2).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(Z7(l2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${sL(D.actionPrefix)}%`;F.push(O`${l2.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(u(l2.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:k0(...F),J=this.db.select().from(l2).where(X).orderBy(J0(l2.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}}}eD();import{Buffer as Ej}from"buffer";import{createHash as Cj}from"crypto";import{resolve as aF,sep as rL}from"path";async function FU(D){let{webStaticDir:$}=D,F=aF($),X;try{X=oL(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,Y=aF(F,J);if(Y!==F&&!Y.startsWith(F+rL))return new Response("forbidden",{status:403});let G=Bun.file(Y);if(await G.exists())return new Response(G);if(!aL(J)){let B=Bun.file(aF(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function oL(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function aL(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}function tF(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 XU(D){if(tF(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
309
+ `)}function VD(D){if(!(D instanceof D0))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 kH(D={}){try{let $=await KD(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){R.warn(`approval.list ${G} \u5931\u8D25: ${B instanceof Error?B.message:String(B)}`)}return{approvals:Y}});return LD($),0}catch($){return R.error(`approvals list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function vH(D){try{let $=await KD(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 LD($),0}catch($){return R.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}eD();FD();async function gH(D){let $=D.timeoutMs??120000;try{return await KD(async({client:F})=>{return await new Promise((X)=>{let J=!1,Y=(U)=>{if(J)return;J=!0,X(U)},G=setTimeout(()=>{G2({kind:"error",payload:{code:"timeout",message:`chat \u7B49\u5F85 agent.done \u8D85\u65F6 (>${$}ms)`}}),Y(3)},$),B=D.workerId,H=(U)=>{if(U===null||typeof U!=="object")return!1;let V=U.workerId;return typeof V==="string"&&V===B},W=[];W.push(F.onEvent(s.CHAT_MESSAGE,(U)=>{if(!H(U))return;G2({kind:s.CHAT_MESSAGE,payload:U})})),W.push(F.onEvent(s.AGENT_THINKING,(U)=>{if(!H(U))return;G2({kind:s.AGENT_THINKING,payload:U})})),W.push(F.onEvent(s.AGENT_TOOL_CALL,(U)=>{if(!H(U))return;G2({kind:s.AGENT_TOOL_CALL,payload:U})})),W.push(F.onEvent(s.AGENT_DONE,(U)=>{if(!H(U))return;G2({kind:"done",payload:U}),clearTimeout(G);for(let V of W)V();Y(0)})),F.request("chat.send",{workerId:D.workerId,content:D.content,...D.conversationId===void 0?{}:{conversationId:D.conversationId}},{timeoutMs:Math.min($,30000)}).then((U)=>{G2({kind:"accepted",payload:U})}).catch((U)=>{G2({kind:"error",payload:{code:"request_failed",message:U instanceof Error?U.message:String(U)}}),clearTimeout(G);for(let V of W)V();Y(VD(U))})})})}catch(F){return R.error(`chat \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function hH(D){try{let $=await KD(async({client:F})=>{return await F.request("config.get",{workerId:D})});return LD($),0}catch($){return R.error(`config get \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function xH(D){let $;try{$=JSON.parse(D.configJson)}catch(F){return R.error(`config-set \u53C2\u6570\u4E0D\u662F\u5408\u6CD5 JSON: ${F instanceof Error?F.message:String(F)}`),2}try{let F=await KD(async({client:X})=>{return await X.request("config.put",{workerId:D.workerId,ifMatch:D.ifMatch,config:$})});return LD(F),0}catch(F){return R.error(`config set \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function yH(){try{let D=await KD(async({client:$})=>{return await $.request("enroll.list",{})});return LD(D),0}catch(D){return R.error(`enroll list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),VD(D)}}async function uH(D){try{let $=await KD(async({client:F})=>{return await F.request("enroll.approve",{otp:D})});return R.success(`\u5DF2\u6279\u51C6 OTP ${D}\uFF0CworkerId=${$.workerId}`),LD({workerId:$.workerId,deviceToken:$.deviceToken}),0}catch($){return R.error(`enroll approve \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function mH(D){try{let $=await KD(async({client:F})=>{return await F.request("enroll.reject",{otp:D})});if($.rejected)R.info(`\u5DF2\u62D2\u7EDD OTP ${D}`);else R.warn(`OTP ${D} \u4E0D\u5B58\u5728\u6216\u5DF2\u8FC7\u671F`);return LD($),0}catch($){return R.error(`enroll reject \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}import a7 from"process";import{createHash as gj}from"crypto";eD();pF();dF();import{existsSync as s_}from"fs";import iF from"path";import{fileURLToPath as vL}from"url";import{Database as gL}from"bun:sqlite";x7();var lF={};v8(lF,{registeredWorkers:()=>CD,auditEvents:()=>l2});var CD=Q0("registered_workers",{id:T("id").primaryKey(),baseUrl:T("base_url").notNull(),displayName:T("display_name").notNull(),apiTokenEnc:T("api_token_enc").notNull(),nonce:T("nonce").notNull(),authTag:T("auth_tag").notNull(),addedAt:T("added_at").notNull().$defaultFn(()=>new Date().toISOString()),addedBy:T("added_by").$type().notNull(),lastSeenAt:T("last_seen_at"),lastSeenState:T("last_seen_state").$type(),lastConfigVersion:pD("last_config_version")}),l2=Q0("audit_events",{id:pD("id").primaryKey({autoIncrement:!0}),at:T("at").notNull().$defaultFn(()=>new Date().toISOString()),actor:T("actor").notNull(),action:T("action").notNull(),workerId:T("worker_id"),detail:T("detail",{mode:"json"}).$type()},(D)=>({workerIdIdx:w2("audit_events_worker_id_idx").on(D.workerId)}));var r_=iF.dirname(vL(import.meta.url));function hL(D){let $=iF.resolve(r_,"../../drizzle",D);if(s_($))return $;let F=iF.resolve(r_,"drizzle",D);if(s_(F))return F;return $}var nF=hL("fleet"),M3=null;function xL(D){let $=new gL(D,{create:!0});return $.exec("PRAGMA journal_mode = WAL"),$.exec("PRAGMA foreign_keys = ON"),t1($,{schema:lF})}function o_(D){return M3=xL(D),M3}function sF(){if(!M3)throw Error("Fleet database not initialized. Call initFleetDb() first.");return M3}function rF(){M3=null}function a_(D=nF){u7(sF(),{migrationsFolder:D})}FD();vD();import yL from"process";var uL=_.object({AIWORKER_GATEWAY_PORT:_.coerce.number().int().positive().max(65535).default(9218),AIWORKER_GATEWAY_HOST:_.string().min(1).default("127.0.0.1"),INTERNAL_SHARED_SECRET:_.string().min(16).optional(),NODE_ENV:_.enum(["development","production","test"]).default("development"),AIWORKER_MASTER_KEY:_.string().regex(/^[0-9a-f]{64}$/,"AIWORKER_MASTER_KEY must be 32-byte hex (64 hex chars)").optional(),AIWORKER_FLEET_DB_PATH:_.string().default("./data/fleet.db"),AIWORKER_GATEWAY_CAN_LAUNCH:_.enum(["true","false"]).default("false").transform((D)=>D==="true"),AIWORKER_MAX_WORKERS:_.coerce.number().int().positive().optional(),AIWORKER_JOIN_TOKEN:_.string().min(16).optional(),AIWORKER_ENROLL_OTP_TTL_SEC:_.coerce.number().int().min(30).max(3600).default(300),DOCKER_HOST:_.string().default("/var/run/docker.sock"),AIWORKER_IMAGE:_.string().optional(),AIWORKER_NETWORK:_.string().default("aiworker_default"),WORKER_DATA_ROOT:_.string().optional(),WORKER_MEMORY_LIMIT:_.string().optional(),WORKER_CPU_LIMIT:_.coerce.number().optional(),AIWORKER_LAUNCH_BASE_URL_TEMPLATE:_.string().default("http://{containerName}:9217")}).superRefine((D,$)=>{if(!D.AIWORKER_GATEWAY_CAN_LAUNCH)return;if(!D.INTERNAL_SHARED_SECRET)$.addIssue({code:_.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:_.ZodIssueCode.custom,path:[X],message:`${X} is required when AIWORKER_GATEWAY_CAN_LAUNCH=true`})});function t_(){let D=uL.parse(yL.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}}}eD();function j0(D,$){let F=ID($);D.forEach((X)=>{try{X.ws.send(F)}catch{}})}class m7{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 p7{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 c7{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 d7{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 mL}from"crypto";var oF="ABCDEFGHJKMNPQRSTVWXYZ23456789",e_=4,pL=5;class l7{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??cL}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<pL;D++){let $=this.generator();if(!this.entries.has($))return $}throw Error("PendingEnrollmentRegistry: failed to allocate unique OTP after retries")}}function cL(){return`${DU(e_)}-${DU(e_)}`}function DU(D){let $=mL(D),F="";for(let X=0;X<D;X++)F+=oF[$[X]%oF.length];return F}C0();import{Buffer as $U}from"buffer";import{createCipheriv as dL,createDecipheriv as lt,randomBytes as lL,timingSafeEqual as it}from"crypto";var iL="aes-256-gcm",nL=12,sL=32,rL=/^[0-9a-f]{64}$/;function oL(D){if(!rL.test(D))throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");let $=$U.from(D,"hex");if($.length!==sL)throw Error("Gateway AIWORKER_MASTER_KEY must be 32-byte hex");return $}function i7(D,$){let F=oL($),X=lL(nL),J=dL(iL,F,X),Y=$U.concat([J.update(D,"utf8"),J.final()]),G=J.getAuthTag();return{ciphertext:Y.toString("base64"),nonce:X.toString("base64"),authTag:G.toString("base64")}}function aL(D){return D.replace(/[\\%_]/g,($)=>`\\${$}`)}class n7{db;constructor(D){this.db=D}listRegisteredWorkers(){return this.db.select().from(CD).orderBy(J0(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(u(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(u(CD.id,D)).get();if(!$)return;return{...$,lastSeenAt:$.lastSeenAt??void 0,lastSeenState:$.lastSeenState??void 0,lastConfigVersion:$.lastConfigVersion??void 0}}createRegisteredWorker(D,$){let F=i7(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(l2).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(u(CD.id,D.workerId)).get();if(!J){let W=i7(D.apiToken,$),U={id:D.workerId,baseUrl:F,displayName:D.displayName,apiTokenEnc:W.ciphertext,nonce:W.nonce,authTag:W.authTag,addedAt:X,addedBy:D.addedBy??"self-enroll",lastSeenAt:X,lastSeenState:"online",lastConfigVersion:D.configVersion};this.db.insert(CD).values(U).run();let{apiTokenEnc:V,nonce:Q,authTag:K,...C}=U;return{kind:"created",row:{...C,lastSeenAt:C.lastSeenAt??void 0,lastSeenState:C.lastSeenState??void 0,lastConfigVersion:C.lastConfigVersion??void 0}}}if(J.displayName!==D.displayName){this.db.update(CD).set({displayName:D.displayName,lastSeenAt:X,lastSeenState:"online"}).where(u(CD.id,D.workerId)).run();let{apiTokenEnc:W,nonce:U,authTag:V,...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(u(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(u(CD.id,D.workerId)).get())return!1;let X=i7(D.newToken,$);return this.db.update(CD).set({apiTokenEnc:X.ciphertext,nonce:X.nonce,authTag:X.authTag}).where(u(CD.id,D.workerId)).run(),!0}removeRegisteredWorker(D){if(!this.db.select({id:CD.id}).from(CD).where(u(CD.id,D)).get())return!1;return this.db.delete(CD).where(u(CD.id,D)).run(),!0}countRegisteredWorkers(){return this.db.select({value:j_()}).from(CD).get()?.value??0}recordAudit(D){this.db.insert(l2).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(Z7(l2.id,D.before));if(D.actionPrefix&&D.actionPrefix.length>0){let B=`${aL(D.actionPrefix)}%`;F.push(O`${l2.action} LIKE ${B} ESCAPE '\\'`)}if(D.workerId&&D.workerId.length>0)F.push(u(l2.workerId,D.workerId));let X=F.length===0?void 0:F.length===1?F[0]:k0(...F),J=this.db.select().from(l2).where(X).orderBy(J0(l2.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}}}eD();import{Buffer as Oj}from"buffer";import{createHash as Mj}from"crypto";import{resolve as aF,sep as tL}from"path";async function FU(D){let{webStaticDir:$}=D,F=aF($),X;try{X=eL(decodeURIComponent(D.pathnameAfterPrefix))}catch{return new Response("forbidden",{status:403})}let J=X===""?"index.html":X,Y=aF(F,J);if(Y!==F&&!Y.startsWith(F+tL))return new Response("forbidden",{status:403});let G=Bun.file(Y);if(await G.exists())return new Response(G);if(!Dj(J)){let B=Bun.file(aF(F,"index.html"));if(await B.exists())return new Response(B)}return new Response("not found",{status:404})}function eL(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Dj(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}function tF(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 XU(D){if(tF(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
306
310
  `+`
307
311
  `+`\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
308
312
  `+`\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
309
313
  `+`
310
314
  `+`\u4FEE\u590D\u65B9\u5F0F\u4E8C\u9009\u4E00\uFF1A
311
315
  `+` 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
312
- `+" 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 JU}from"buffer";import{timingSafeEqual as tL}from"crypto";function GU(D,$){let F=JU.from(D,"utf8"),X=JU.from($,"utf8");if(F.length!==X.length)return!1;return tL(F,X)}function YU(D){let $=D.path??"/ws",F=D.isOtpEnrollSubmit===!0;if($==="/enroll-ws"){if(!F)return{ok:!1,reason:"wrong_path:expected_enroll_otp"};return{ok:!0,via:"enroll-otp"}}if(F)return{ok:!1,reason:"wrong_path:otp_must_use_enroll_ws"};if(D.enrollToken!==void 0){if(!D.gatewayJoinToken)return{ok:!1,reason:"join_token_disabled"};if(!GU(D.enrollToken,D.gatewayJoinToken))return{ok:!1,reason:"join_token_mismatch"};return{ok:!0,via:"self-enroll"}}if(D.loopback)return{ok:!0,via:"loopback"};if(!D.sharedSecret)return{ok:!1,reason:"remote_requires_secret_but_unset"};if(D.presentedToken.length===0)return{ok:!1,reason:"missing_token"};if(!GU(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}eD();eD();vD();function BU(D){let $=_.object({workerId:_.string().min(1)}).safeParse(D.params);if(!$.success)return eF(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 eF(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(ID({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(Y){return D.ctx.forwards.consume(J.gatewayRequestId),eF(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 eF(D,$,F){let X=ID({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}eD();vD();var eL=_.object({limit:_.number().int().positive().max(200).optional(),before:_.number().int().positive().optional(),action:_.string().min(1).optional(),workerId:_.string().min(1).optional()}).default({}),Dj=_.object({events:_.array(H7),hasMore:_.boolean()}),HU=(D,$)=>{let F=eL.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=Dj.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}};eD();vD();import{createHash as $j}from"crypto";var WU=_.object({otp:_.string().min(1)}),_U=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=_.object({pending:_.array(B7)}).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}},UU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=WU.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=Fj(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(ID({type:"event",name:s.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(j0(D.operators,{type:"event",name:s.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 j0(D.operators,{type:"event",name:s.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}}},VU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=WU.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:Xj(X.otp)}}),j0(D.operators,{type:"event",name:s.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 Fj(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Xj(D){return $j("sha256").update(D).digest("hex").slice(0,16)}eD();vD();var Jj=_.object({now:_.number().int(),online:_.array(l8)}),QU=(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=Jj.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}};eD();vD();import{Buffer as AU}from"buffer";var Gj=_.object({workerId:_.string().min(1)}),KU=async(D,$)=>{let F=Gj.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 EU(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(ID({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 EU{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?AU.from(new Uint8Array(D)).toString("utf8"):AU.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(){}}eD();N0();vD();N0();class Z3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class o8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class A8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var Yj=1e4;class DX{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??Yj}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 o8(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new o8(`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 Z3;if(!D.ok)throw new o8(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new A8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!Bj($))throw new A8(`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 Z3;if(!D.ok)throw new o8(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new A8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new A8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!W8(F))throw new A8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function Bj(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class e1 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class i2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function Hj(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var CU=(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:Hj(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:Y,deviceId:G?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=_.object({workers:_.array(l8)}).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}},RU=(D,$)=>{let F=_.object({workerId:_.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}}},Wj=_.object({workerBaseUrl:_.string().min(1),bootstrapToken:_.string().regex(m2,"bootstrapToken must match wtk_<base64url>"),displayName:_.string().min(1).max(80).optional()});function _j(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=Wj.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let Y=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new DX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),G;try{G=await Y.info()}catch(U){if(U instanceof Z3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(U instanceof o8)return{ok:!1,code:"worker_unreachable",message:U.message};if(U instanceof A8)return{ok:!1,code:"invalid_worker_info",message:U.message};throw U}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=l1.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 OU=_j(),Uj=_.object({displayName:_.string().min(1).max(80).optional(),image:_.string().optional(),env:_.record(_.string()).optional(),forceId:_.string().optional()});function Vj(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=Uj.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 U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let G;try{G=await $.supervisor.launchLocal({displayName:Y,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(U){if(U instanceof e1)return{ok:!1,code:"launch_timeout",message:U.message};if(U instanceof i2)return{ok:!1,code:"launch_failed",message:U.message};throw U}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=l1.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 MU=Vj();var Qj={"system.presence":QU,"workers.list":CU,"workers.remove":RU,"workers.pair":OU,"workers.launch":MU,"token.rotate":KU,"enroll.list":_U,"enroll.approve":UU,"enroll.reject":VU,"audit.list":HU},Aj=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function ZU(D,$,F,X){let J=$3(F.method);if(!J){D6($,{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){D6($,{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(!Aj.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Kj(G),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Qj[F.method];if(!B){D6($,{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)D6($,{type:"response",id:F.id,ok:!0,result:H.result});else D6($,{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),D6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}BU({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:G})}function qU(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(ID(J))}catch{}}function NU(D,$,F){j0(D.operators,F)}function Kj(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function D6(D,$){try{D.send(ID($))}catch{}}function PU(D){let{config:$,context:F}=D;XU({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 FU({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=G.requestIP(Y)?.address,U=tF(W);if(!U&&F.connectRateLimiter){let K=F.connectRateLimiter.isBlocked(W);if(K.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(K.retryAfterMs/1000))}})}let V=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(G.upgrade(Y,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:U,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:V}}))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){Rj(Y,G,F,$)},close(Y,G,B){Oj(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 Rj(D,$,F,X){let J=typeof $==="string"?$:Ej.from($).toString("utf8"),Y=d8(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",U=YU({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(!U.ok){let V=U.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.role==="node"?G.agentId:null,detail:{reason:U.reason,role:G.role,agentId:G.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!V&&!D.data.loopback&&F.connectRateLimiter){let C=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(C.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:C.fails,blockUntil:C.blockUntil,path:D.data.path,triggerReason:U.reason}})}let Q=V?4400:4401,K=V?U.reason:`auth:${U.reason}`;D.close(Q,K);return}if(U.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let V=G.enroll,Q=F.pendingEnrollments.submit({workerId:G.agentId,apiToken:V.apiToken,displayName:V.displayName,ws:D});try{D.send(ID({type:"event",name:s.ENROLLMENT_OTP,payload:{workerId:G.agentId,otp:Q.otp,expiresAt:Q.expiresAt},ts:Date.now()}))}catch(K){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${K.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:V.displayName,deviceId:G.deviceId,otpHash:Zj(Q.otp),expiresAt:Q.expiresAt,path:D.data.path}}),j0(F.operators,{type:"event",name:s.ENROLLMENT_PENDING,payload:{workerId:G.agentId,...V.displayName===void 0?{}:{displayName:V.displayName},otp:Q.otp,submittedAt:Date.now(),expiresAt:Q.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let K=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(G.agentId)===void 0&&K>=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:K}}),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 V=G.enroll,Q=F.persistence.upsertEnrolledWorker({workerId:G.agentId,baseUrl:"",apiToken:V.apiToken,displayName:V.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:V}=F.nodes.register({workerId:G.agentId,deviceId:G.deviceId,ws:D,pairedAt:Date.now(),meta:G.meta??{}});if(V){F.forwards.cancelByWorker(G.agentId);try{V.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let Q=F.persistence.getRegisteredWorker(G.agentId)?.displayName;j0(F.operators,{type:"event",name:s.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:U.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${G.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(G.type==="request"){let B=D.data.agentId??"unknown";ZU(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"){qU(F,D,G);return}if(G.type==="event"){NU(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 Oj(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}}),j0(X.operators,{type:"event",name:s.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),j0(X.operators,{type:"event",name:s.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:Mj($),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 Mj(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Zj(D){return Cj("sha256").update(D).digest("hex").slice(0,8)}FD();import{randomBytes as LU}from"crypto";import{mkdirSync as Nj}from"fs";import{createServer as Pj}from"net";import{join as jU}from"path";import Lj from"process";FD();class $X{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 qj(Y)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{R.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function qj(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 jj=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,zj=30000,Ij=500;class FX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new $X(D.config.dockerHost),this.allocatePort=D.allocatePort??bj,this.pollIntervalMs=D.pollIntervalMs??Ij,this.pollTimeoutMs=D.pollTimeoutMs??zj,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Lj.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($)){R.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){R.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"){R.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new i2(`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=${jU("/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 i2(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=LU(32).toString("hex"),J=`aiworker-${LU(4).toString("hex")}`,Y=jU(this.config.workerDataRoot,J);try{Nj(Y,{recursive:!0})}catch(W){throw new i2(`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:Sj(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),R.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let U=await this.awaitBootstrapToken(W.Id),V=Tj(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return R.success(`[gateway/supervisor] ${J} bootstrapped as ${U.workerId}`),{workerId:U.workerId,apiToken:U.token,baseUrl:V,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(U){R.warn(`[gateway/supervisor] failed to cleanup ${H}: ${U.message}`)}if(W instanceof e1||W instanceof i2)throw W;throw new i2(`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){R.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=wj(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new e1(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function wj(D){let $=jj.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 Tj(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function Sj(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 bj(){return new Promise((D,$)=>{let F=Pj();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 kj(D,$={}){o_(D.fleetDbPath),a_(nF);let F=sF(),X=new n7(F),J=new c7,Y=new d7,G=new p7({onExpire:(U,V)=>{if(R.warn(`[gateway] forward \u53D6\u6D88 (method=${U.method} workerId=${U.workerId} reason=${V})`),V==="operator_gone")return;let Q=V==="timeout"?"forward_timeout":"node_gone",K=V==="timeout"?`\u7B49\u5F85 worker ${U.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${U.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{U.operatorWs.send(ID({type:"response",id:U.operatorRequestId,ok:!1,error:{code:Q,message:K,details:{workerId:U.workerId,method:U.method}}}))}catch{}}}),B=new l7({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(U)=>{try{U.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:U.workerId,detail:{displayName:U.displayName,otpHash:fj("sha256").update(U.otp).digest("hex").slice(0,16)}})}catch(V){R.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",V)}try{j0(Y,{type:"event",name:s.ENROLLMENT_PENDING,payload:{workerId:U.workerId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:U.otp,submittedAt:U.submittedAt,expiresAt:U.expiresAt,reason:"expired"},ts:Date.now()})}catch(V){R.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",V)}}}),H=null;if(D.canLaunch)H=new FX({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}}),R.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new m7;return{persistence:X,nodes:J,operators:Y,forwards:G,logger:R.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function zU(D,$={}){let X={...t_(),...D},J=kj(X,{webStaticDir:$.webStaticDir}),Y=PU({config:X,context:J});return R.success(`[gateway] listening ws://${X.host}:${Y.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...Y,config:X}}FD();import{existsSync as XX,realpathSync as vj}from"fs";import{dirname as gj,resolve as a8}from"path";import IU from"process";import{fileURLToPath as hj}from"url";function s7(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=IU.env[$];if(F){let W=yj(F);if(W&&XX(a8(W,"index.html")))return W}let X=xj();if(!X)return;let J=a8(X,"web",D);if(XX(a8(J,"index.html")))return J;let G=X.endsWith(`apps${JX()}cli${JX()}src${JX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=a8(X,...Array.from({length:G},()=>"..")),H=a8(B,"apps","web","dist",D);if(XX(a8(H,"index.html")))return H;return}function xj(){if(typeof import.meta.url!=="string")return;try{return gj(hj(import.meta.url))}catch{return}}function yj(D){try{return vj(a8(D))}catch{return}}function JX(){return IU.platform==="win32"?"\\":"/"}q2();i8();import{spawn as uj}from"child_process";import{closeSync as wU,existsSync as mj,openSync as TU,readFileSync as pj,unlinkSync as r7,writeFileSync as cj}from"fs";import{mkdir as dj}from"fs/promises";import K8 from"process";var lj="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function SU(D){if(!Number.isFinite(D)||D<=0)return!1;try{return K8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function ij(D){if(!mj(D))return null;try{let $=pj(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 nj(){await dj(h2(),{recursive:!0})}function o7(){let D=V7(),$=Q7(),F=ij(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!SU(F)){try{r7(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function bU(D={}){let $=o7();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await nj();let F=D.port??Number.parseInt(K8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=V7(),J=Q7(),Y=TU(J,"a"),G=TU(J,"a"),B={...K8.env,...D.env,PORT:String(F),[lj]:"1"},H=K8.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=uj(K8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:K8.cwd(),detached:!0,stdio:["ignore",Y,G]});try{wU(Y)}catch{}if(G!==Y)try{wU(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(),cj(X,`${String(W.pid)}
313
- `,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function fU(D={}){let $=o7();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{K8.kill(F,"SIGTERM")}catch(G){if(G.code==="ESRCH"){try{r7($.pidFile)}catch{}return null}throw G}let Y=Date.now()+X;while(Date.now()<Y){if(!SU(F)){try{r7($.pidFile)}catch{}return F}await new Promise((G)=>setTimeout(G,J))}try{K8.kill(F,"SIGKILL")}catch{}try{r7($.pidFile)}catch{}return F}i8();async function kU(D={}){if(D.detach===!0)return sj(D);return rj(D)}async function sj(D){try{let $=await bU({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await F3({gatewayUrl:`ws://localhost:${$.port}`});return R.success(`gateway daemon \u5DF2\u542F\u52A8 pid=${$.pid} port=${$.port}`),R.info(`pidFile: ${$.pidFile}`),R.info(`logFile: ${$.logFile}`),0}catch($){return R.error(`gateway start --detach \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}async function rj(D){try{let $=a7.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?s7("fleet"):void 0;if(F&&!X)R.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 zU(D.port===void 0?{}:{port:D.port},{...X?{webStaticDir:X}:{}});if(X)R.info(`[gateway] /admin/* serving fleet bundle from ${X}`);if(D.persistUrl!==!1)try{await F3({gatewayUrl:`ws://localhost:${J.port}`})}catch(B){R.warn(`\u65E0\u6CD5\u6301\u4E45\u5316 gatewayUrl \u5230 aim.json: ${B instanceof Error?B.message:String(B)}`)}R.success(`gateway \u5DF2\u542F\u52A8 (foreground) port=${J.port}`);let Y=!1,G=async(B)=>{if(Y)return;Y=!0,R.info(`[gateway] received ${B}, shutting down`);try{await J.stop(),rF()}catch(H){R.error("[gateway] shutdown failed",H)}a7.exit(0)};return a7.once("SIGTERM",()=>void G("SIGTERM")),a7.once("SIGINT",()=>void G("SIGINT")),await new Promise(()=>{}),0}catch($){return R.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function vU(){let D=o7();if(D.running)return R.success(`gateway daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),R.info(`pidFile: ${D.pidFile}`),R.info(`logFile: ${D.logFile}`),0;return R.info("gateway daemon \u672A\u8FD0\u884C\uFF08\u6216\u5728 foreground \u6A21\u5F0F\u4E0B\u7531 systemd \u76F4\u63A5\u7BA1\uFF09"),1}async function gU(D={}){try{let $=await fU(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return R.info("gateway daemon \u5F53\u524D\u672A\u8FD0\u884C"),0;return R.success(`gateway daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return R.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}FD();import{spawnSync as hU}from"child_process";import{existsSync as oj,mkdirSync as aj,readFileSync as tj,writeFileSync as ej}from"fs";import{homedir as xU}from"os";import yU from"path";import Dz from"process";var t8="aiworker-gateway.service",$z="/var/lib/aiworker";function Fz(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(`
314
- `);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=${$z}`,"","[Install]","WantedBy=multi-user.target",""].join(`
315
- `)}function Xz(D,$=xU()){if(D==="user")return yU.join($,".config","systemd","user",t8);return`/etc/systemd/system/${t8}`}function Jz(D={}){let $=D.scope??"user",F=Fz({scope:$,...$==="system"?{operatorHome:xU()}:{}});if(D.dryRun)return{scope:$,content:F,enabled:!1};let X=D.out??Xz($);aj(yU.dirname(X),{recursive:!0});let J=!1;if(oj(X)){if(tj(X,"utf8")===F)J=!0}if(!J)ej(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 Gz($),{scope:$,content:F,written:{path:X,unchanged:J},enabled:!0}}function Gz(D){let $=D==="user"?["--user"]:[],F=hU("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=hU("systemctl",[...$,"enable","--now",t8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",t8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function uU(D={}){try{let $=Jz(D);if(D.dryRun)return Dz.stdout.write($.content),0;let F=$.written?.path??"<unknown>";if($.written?.unchanged)R.info(`systemd unit \u672A\u53D8\u66F4 (${F})`);else R.success(`systemd unit \u5199\u5165 ${F}`);if($.enabled)R.success(`\u5DF2 enable --now ${t8}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`);else if(D.out!==void 0)R.info("--out \u6307\u5B9A\u4E86\u975E\u9ED8\u8BA4\u8DEF\u5F84\uFF0C\u5DF2\u8DF3\u8FC7 systemctl\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),R.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),R.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${t8}`);else if(D.noEnable)R.info("--no-enable \u5DF2\u751F\u6548\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),R.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),R.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${t8}`);return 0}catch($){return R.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}eD();FD();async function mU(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await KD(async({client:X})=>{return await new Promise((J)=>{let Y=!1,G=(W)=>{if(Y)return;Y=!0,J(W)},B=X.onEvent(s.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let U=W.workerId;if(typeof U!=="string"||U!==D.workerId)return;G2(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),G2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),G(VD(W))})})})}catch(X){return R.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),VD(X)}}FD();async function pU(D){try{let $=await KD(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(() => (i8(),K7));return await F({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),R.success(`\u5DF2\u914D\u5BF9 worker ${$.workerId}`),LD({workerId:$.workerId}),0}catch($){return R.error(`pair \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}FD();var cU=["web","line","telegram","lark","whatsapp"];function Yz(D){if(!cU.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${cU.join(", ")}`);return D}async function dU(D){try{let $=await KD(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return LD($),0}catch($){return R.error(`schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function lU(D){try{let $=Yz(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 KD(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return LD(X),0}catch($){return R.error(`schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function iU(D,$){try{let F=await KD(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return LD(F),0}catch(F){return R.error(`schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function nU(D){try{let $=await KD(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return LD($),0}catch($){return R.error(`token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}FD();async function sU(){try{let D=await KD(async({client:$})=>{return await $.request("workers.list",{})});return LD(D),0}catch(D){return R.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),VD(D)}}async function rU(D){try{let $=await KD(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return LD($),0}catch($){return R.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function oU(D={}){try{let $=await KD(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(() => (i8(),K7));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),R.success(`\u5DF2 launch worker ${$.workerId}`),LD({workerId:$.workerId}),0}catch($){return R.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function aU(D){try{let $=await KD(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return LD($),0}catch($){return R.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function tU(D){try{let $=await KD(async({client:Y})=>{return await Y.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (i8(),K7)),J=await F();if(J.defaultWorkerId===D){let Y={...J};delete Y.defaultWorkerId,await X(Y)}return LD($),0}catch($){return R.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}O2();FD();import GY from"process";O2();TD();import tp from"process";async function ep(D){let $=gD(),F=s2(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 G6(D,X)}async function _0(D={}){P3(l.WORKER_DB_PATH);let $=tp.env.WORKER_MIGRATIONS_FOLDER??$6;L3($);let F=gD(),X=p(),J=await F1(X,F,{...l.AIWORKER_FORCE_ID===void 0?{}:{forceId:l.AIWORKER_FORCE_ID},...l.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:l.AIWORKER_FORCE_TOKEN}});if(!D.silent)X1(J.workerId,J.token,X,J.justMinted);let Y=await $1(X),G=await ep(Y.config),B=new M1({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits},stallTimeoutMs:l.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:l.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:l.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:l.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,configVersion:Y.version,hydrated:G,db:X,processes:B}}function _O(D){return N1(D.workerId,D.hydrated,{processes:D.processes})}function Dc(){return`http://${GY.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${l.PORT}`}async function UO(D,$={}){let F=await _0({silent:!0}),X=`${Dc()}${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 VO(){try{let{status:D,body:$}=await UO("/api/worker/approvals");if(D!==200)return R.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return GY.stdout.write(`${JSON.stringify($,null,2)}
316
- `),0}catch(D){return R.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function QO(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await UO(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return R.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return GY.stdout.write(`${JSON.stringify(X,null,2)}
317
- `),0}catch($){return R.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}O2();FD();async function AO(){await _0({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (TD(),BX)),$=await I0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function KO(D){let $=await _0({silent:!0}),F;try{F=JSON.parse(D.json)}catch(G){return R.error(`[aiw config set] invalid JSON: ${String(G)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (TD(),BX)),J=X(),Y=gD();try{let G=await K9(J,Y,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await E9($.workerId,G.config,G.version),R.success(`[aiw config set] stored config v${G.version}`),0}catch(G){if(G instanceof v2)return R.error(`[aiw config set] invalid config: ${JSON.stringify(G.issues,null,2)}`),2;if(G instanceof g2)return R.error(`[aiw config set] version conflict: expected ${G.expected}, stored is ${G.actual}`),3;throw G}}q2();FD();import{existsSync as $c}from"fs";import{homedir as Fc}from"os";import x6 from"path";import YY from"process";async function EO(D={}){if(D.global===!0){let G=x6.join(Fc(),".aiworker");YY.env.AIWORKER_HOME=G,g8({home:G});let B=await _0();R.success(`[aiworker init] user-scope worker ${B.workerId} ready (config v${B.configVersion})`);return}let $=s0();if($.scope==="explicit"){g8({home:$.home});let G=await _0();R.success(`[aiworker init] explicit-scope worker ${G.workerId} ready (${$.home})`);return}let F=YY.cwd(),X=X$(F);if(X){await W$(X),g8({home:x6.join(X,".aiworker","local")});let G=await _0();R.success(`[aiworker init] project-scope worker ${G.workerId} ready (${X})`);return}if(D.force!==!0&&!Xc(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
316
+ `+" 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 JU}from"buffer";import{timingSafeEqual as $j}from"crypto";function GU(D,$){let F=JU.from(D,"utf8"),X=JU.from($,"utf8");if(F.length!==X.length)return!1;return $j(F,X)}function YU(D){let $=D.path??"/ws",F=D.isOtpEnrollSubmit===!0;if($==="/enroll-ws"){if(!F)return{ok:!1,reason:"wrong_path:expected_enroll_otp"};return{ok:!0,via:"enroll-otp"}}if(F)return{ok:!1,reason:"wrong_path:otp_must_use_enroll_ws"};if(D.enrollToken!==void 0){if(!D.gatewayJoinToken)return{ok:!1,reason:"join_token_disabled"};if(!GU(D.enrollToken,D.gatewayJoinToken))return{ok:!1,reason:"join_token_mismatch"};return{ok:!0,via:"self-enroll"}}if(D.loopback)return{ok:!0,via:"loopback"};if(!D.sharedSecret)return{ok:!1,reason:"remote_requires_secret_but_unset"};if(D.presentedToken.length===0)return{ok:!1,reason:"missing_token"};if(!GU(D.presentedToken,D.sharedSecret))return{ok:!1,reason:"invalid_token"};return{ok:!0,via:"shared-secret"}}eD();eD();vD();function BU(D){let $=_.object({workerId:_.string().min(1)}).safeParse(D.params);if(!$.success)return eF(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 eF(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(ID({type:"request",id:J.gatewayRequestId,method:D.method,params:D.params})),!0}catch(Y){return D.ctx.forwards.consume(J.gatewayRequestId),eF(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 eF(D,$,F){let X=ID({type:"response",id:$,ok:!1,error:F});try{D.send(X)}catch{}}eD();vD();var Fj=_.object({limit:_.number().int().positive().max(200).optional(),before:_.number().int().positive().optional(),action:_.string().min(1).optional(),workerId:_.string().min(1).optional()}).default({}),Xj=_.object({events:_.array(H7),hasMore:_.boolean()}),HU=(D,$)=>{let F=Fj.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=Xj.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}};eD();vD();import{createHash as Jj}from"crypto";var WU=_.object({otp:_.string().min(1)}),_U=(D)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let $=D.pendingEnrollments.list(),F=_.object({pending:_.array(B7)}).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}},UU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=WU.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=Gj(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(ID({type:"event",name:s.ENROLLMENT_APPROVED,payload:{workerId:X.workerId,deviceToken:X.apiToken},ts:Date.now()}))}catch{}if(j0(D.operators,{type:"event",name:s.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 j0(D.operators,{type:"event",name:s.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}}},VU=(D,$)=>{if(!D.pendingEnrollments)return{ok:!1,code:"feature_disabled",message:"gateway \u672A\u521D\u59CB\u5316 pending enrollment registry"};let F=WU.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:Yj(X.otp)}}),j0(D.operators,{type:"event",name:s.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 Gj(D,$){let F=D.pendingEnrollments?.list().find((X)=>X.otp===$);return F?{workerId:F.workerId}:void 0}function Yj(D){return Jj("sha256").update(D).digest("hex").slice(0,16)}eD();vD();var Bj=_.object({now:_.number().int(),online:_.array(l8)}),QU=(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=Bj.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}};eD();vD();import{Buffer as AU}from"buffer";var Hj=_.object({workerId:_.string().min(1)}),KU=async(D,$)=>{let F=Hj.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 EU(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(ID({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 EU{resolve;ctx;workerId;constructor(D,$,F){this.resolve=D;this.ctx=$;this.workerId=F}send(D){let $=typeof D==="string"?D:D instanceof ArrayBuffer?AU.from(new Uint8Array(D)).toString("utf8"):AU.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(){}}eD();N0();vD();N0();class Z3 extends Error{constructor(D="worker rejected bearer token"){super(D);this.name="WorkerClientAuthError"}}class o8 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="WorkerClientNetworkError"}}class A8 extends Error{constructor(D){super(D);this.name="WorkerClientInvalidResponseError"}}var Wj=1e4;class DX{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??Wj}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 o8(`worker ${this.baseUrl} request timed out after ${this.timeoutMs}ms`,B);throw new o8(`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 Z3;if(!D.ok)throw new o8(`worker ${this.baseUrl} returned HTTP ${D.status}`);let $;try{$=await D.json()}catch(F){throw new A8(`worker ${this.baseUrl} /info returned non-JSON body: ${F.message}`)}if(!_j($))throw new A8(`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 Z3;if(!D.ok)throw new o8(`worker ${this.baseUrl} returned HTTP ${D.status} from /token/rotate`);let $;try{$=await D.json()}catch(X){throw new A8(`worker ${this.baseUrl} /token/rotate returned non-JSON body: ${X.message}`)}if(!$||typeof $!=="object"||!("newToken"in $))throw new A8(`worker ${this.baseUrl} /token/rotate response missing newToken`);let F=$.newToken;if(!W8(F))throw new A8(`worker ${this.baseUrl} /token/rotate returned a token that does not match wtk_<base64url>`);return{newToken:F}}}function _j(D){if(!D||typeof D!=="object")return!1;let $=D;return typeof $.workerId==="string"&&$.workerId.length>0&&typeof $.configVersion==="number"&&Number.isFinite($.configVersion)}class e1 extends Error{constructor(D){super(D);this.name="LaunchTimeoutError"}}class i2 extends Error{cause;constructor(D,$){super(D);this.cause=$;this.name="LaunchFailedError"}}function Uj(D){if(!D)return null;let $=Date.parse(D);if(!Number.isFinite($))return null;return $}var CU=(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:Uj(J.lastSeenAt);return{workerId:J.id,displayName:J.displayName,online:Y,deviceId:G?.deviceId,baseUrl:J.baseUrl,lastSeenAt:B}}),X=_.object({workers:_.array(l8)}).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}},RU=(D,$)=>{let F=_.object({workerId:_.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}}},Vj=_.object({workerBaseUrl:_.string().min(1),bootstrapToken:_.string().regex(m2,"bootstrapToken must match wtk_<base64url>"),displayName:_.string().min(1).max(80).optional()});function Qj(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=Vj.safeParse(F);if(!X.success)return{ok:!1,code:"invalid_params",message:"workers.pair \u53C2\u6570\u6821\u9A8C\u5931\u8D25",details:X.error.flatten()};let J=X.data;if($.maxWorkers!==void 0){let U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let Y=D.buildClient?D.buildClient(J.workerBaseUrl,J.bootstrapToken):new DX({baseUrl:J.workerBaseUrl,apiToken:J.bootstrapToken}),G;try{G=await Y.info()}catch(U){if(U instanceof Z3)return{ok:!1,code:"auth_failed",message:"worker \u62D2\u7EDD bootstrap token"};if(U instanceof o8)return{ok:!1,code:"worker_unreachable",message:U.message};if(U instanceof A8)return{ok:!1,code:"invalid_worker_info",message:U.message};throw U}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=l1.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 OU=Qj(),Aj=_.object({displayName:_.string().min(1).max(80).optional(),image:_.string().optional(),env:_.record(_.string()).optional(),forceId:_.string().optional()});function Kj(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=Aj.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 U=$.persistence.countRegisteredWorkers();if(U>=$.maxWorkers)return{ok:!1,code:"quota_exceeded",message:`fleet \u5DF2\u8FBE ${$.maxWorkers} worker \u4E0A\u9650`,details:{limit:$.maxWorkers,current:U}}}let G;try{G=await $.supervisor.launchLocal({displayName:Y,...J.forceId===void 0?{}:{forceId:J.forceId}})}catch(U){if(U instanceof e1)return{ok:!1,code:"launch_timeout",message:U.message};if(U instanceof i2)return{ok:!1,code:"launch_failed",message:U.message};throw U}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=l1.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 MU=Kj();var Ej={"system.presence":QU,"workers.list":CU,"workers.remove":RU,"workers.pair":OU,"workers.launch":MU,"token.rotate":KU,"enroll.list":_U,"enroll.approve":UU,"enroll.reject":VU,"audit.list":HU},Cj=new Set(["system.presence","workers.list","audit.list","enroll.list"]);async function ZU(D,$,F,X){let J=$3(F.method);if(!J){D6($,{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){D6($,{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(!Cj.has(F.method))D.persistence.recordAudit({actor:"gateway",action:"gateway.method.invoked",workerId:Rj(G),detail:{method:F.method,agentId:X}});if(J.routing==="operator-to-gateway"){let B=Ej[F.method];if(!B){D6($,{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)D6($,{type:"response",id:F.id,ok:!0,result:H.result});else D6($,{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),D6($,{type:"response",id:F.id,ok:!1,error:{code:"internal_error",message:H instanceof Error?H.message:String(H)}})}return}BU({ctx:D,operatorWs:$,operatorRequestId:F.id,method:F.method,params:G})}function qU(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(ID(J))}catch{}}function NU(D,$,F){j0(D.operators,F)}function Rj(D){if(D&&typeof D==="object"&&"workerId"in D){let $=D.workerId;return typeof $==="string"&&$.length>0?$:null}return null}function D6(D,$){try{D.send(ID($))}catch{}}function PU(D){let{config:$,context:F}=D;XU({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 FU({webStaticDir:F.webStaticDir,pathnameAfterPrefix:B.pathname.slice(7)})}if(B.pathname==="/ws"||B.pathname==="/enroll-ws"){let W=G.requestIP(Y)?.address,U=tF(W);if(!U&&F.connectRateLimiter){let K=F.connectRateLimiter.isBlocked(W);if(K.blocked)return new Response("rate_limited",{status:429,headers:{"Retry-After":String(Math.ceil(K.retryAfterMs/1000))}})}let V=B.pathname==="/enroll-ws"?"/enroll-ws":"/ws";if(G.upgrade(Y,{data:{role:void 0,agentId:void 0,deviceId:void 0,loopback:U,remoteAddress:W,connectedAt:Date.now(),subscribedAll:!0,path:V}}))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){Zj(Y,G,F,$)},close(Y,G,B){qj(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 Zj(D,$,F,X){let J=typeof $==="string"?$:Oj.from($).toString("utf8"),Y=d8(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",U=YU({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(!U.ok){let V=U.reason.startsWith("wrong_path:");if(F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.rejected",workerId:G.role==="node"?G.agentId:null,detail:{reason:U.reason,role:G.role,agentId:G.agentId,remoteAddress:D.data.remoteAddress,path:D.data.path}}),!V&&!D.data.loopback&&F.connectRateLimiter){let C=F.connectRateLimiter.recordFailure(D.data.remoteAddress);if(C.blockedNow)F.persistence.recordAudit({actor:"gateway",action:"gateway.connect.brute_force_blocked",workerId:null,detail:{remoteAddress:D.data.remoteAddress,fails:C.fails,blockUntil:C.blockUntil,path:D.data.path,triggerReason:U.reason}})}let Q=V?4400:4401,K=V?U.reason:`auth:${U.reason}`;D.close(Q,K);return}if(U.via==="enroll-otp"){if(!F.pendingEnrollments){F.logger.error("[gateway] /enroll-ws \u6536\u5230 OTP submit \u4F46 ctx.pendingEnrollments \u672A\u6CE8\u5165"),D.close(4500,"enroll_unavailable");return}let V=G.enroll,Q=F.pendingEnrollments.submit({workerId:G.agentId,apiToken:V.apiToken,displayName:V.displayName,ws:D});try{D.send(ID({type:"event",name:s.ENROLLMENT_OTP,payload:{workerId:G.agentId,otp:Q.otp,expiresAt:Q.expiresAt},ts:Date.now()}))}catch(K){F.pendingEnrollments.removeByWs(D),F.logger.warn(`[gateway] \u63A8\u9001 enrollment.otp \u5931\u8D25: ${K.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:V.displayName,deviceId:G.deviceId,otpHash:Pj(Q.otp),expiresAt:Q.expiresAt,path:D.data.path}}),j0(F.operators,{type:"event",name:s.ENROLLMENT_PENDING,payload:{workerId:G.agentId,...V.displayName===void 0?{}:{displayName:V.displayName},otp:Q.otp,submittedAt:Date.now(),expiresAt:Q.expiresAt,reason:"submitted"},ts:Date.now()});return}if(W){if(F.maxWorkers!==void 0){let K=F.persistence.countRegisteredWorkers();if(F.persistence.getRegisteredWorker(G.agentId)===void 0&&K>=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:K}}),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 V=G.enroll,Q=F.persistence.upsertEnrolledWorker({workerId:G.agentId,baseUrl:"",apiToken:V.apiToken,displayName:V.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:V}=F.nodes.register({workerId:G.agentId,deviceId:G.deviceId,ws:D,pairedAt:Date.now(),meta:G.meta??{}});if(V){F.forwards.cancelByWorker(G.agentId);try{V.ws.close(1012,"replaced_by_new_node_connection")}catch{}}let Q=F.persistence.getRegisteredWorker(G.agentId)?.displayName;j0(F.operators,{type:"event",name:s.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:U.via}}),!D.data.loopback&&F.connectRateLimiter)F.connectRateLimiter.recordSuccess(D.data.remoteAddress);return}if(D.data.role==="node-pending"){F.logger.warn(`[gateway] node-pending \u7AEF\u5728 approve \u524D\u53D1\u9001\u4E86 ${G.type} \u5E27\uFF0C\u5FFD\u7565`);return}if(D.data.role==="operator"){if(G.type==="request"){let B=D.data.agentId??"unknown";ZU(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"){qU(F,D,G);return}if(G.type==="event"){NU(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 qj(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}}),j0(X.operators,{type:"event",name:s.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),j0(X.operators,{type:"event",name:s.WORKER_OFFLINE,payload:{workerId:J.workerId,deviceId:J.deviceId,reason:Nj($),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 Nj(D){if(D===1000||D===1012||D===1001||D===1005||D===1006)return"disconnected";if(D>=4000&&D<5000)return"kicked";return"expired"}function Pj(D){return Mj("sha256").update(D).digest("hex").slice(0,8)}FD();import{randomBytes as LU}from"crypto";import{mkdirSync as jj}from"fs";import{createServer as zj}from"net";import{join as jU}from"path";import Ij from"process";FD();class $X{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 Lj(Y)}async ensureNetwork(D){try{await this.request("GET",`/networks/${encodeURIComponent(D)}`)}catch{R.info(`[gateway/supervisor] creating docker network ${D}`),await this.request("POST","/networks/create",{Name:D,Driver:"bridge"})}}}function Lj(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 wj=/\[worker\] AIWORKER_BOOTSTRAP_TOKEN=(wtk_[\w-]{32,})/,Tj=30000,Sj=500;class FX{config;docker;allocatePort;pollIntervalMs;pollTimeoutMs;now;sleep;selfHostname;constructor(D){this.config=D.config,this.docker=D.docker??new $X(D.config.dockerHost),this.allocatePort=D.allocatePort??vj,this.pollIntervalMs=D.pollIntervalMs??Sj,this.pollTimeoutMs=D.pollTimeoutMs??Tj,this.now=D.now??Date.now,this.sleep=D.sleep??(($)=>new Promise((F)=>setTimeout(F,$))),this.selfHostname=D.selfHostname===void 0?Ij.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($)){R.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){R.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"){R.warn(`[gateway/supervisor] inspect of ${$} returned no NetworkSettings.Networks; skipping self-in-network check`);return}if(!(D in X))throw new i2(`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=${jU("/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 i2(`docker infrastructure unavailable: ${W.message}`,W)}let $=await this.allocatePort(),F=LU(32).toString("hex"),J=`aiworker-${LU(4).toString("hex")}`,Y=jU(this.config.workerDataRoot,J);try{jj(Y,{recursive:!0})}catch(W){throw new i2(`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:kj(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),R.info(`[gateway/supervisor] spawned ${J} (container ${W.Id.slice(0,12)}); polling for bootstrap token`);let U=await this.awaitBootstrapToken(W.Id),V=fj(this.config.launchBaseUrlTemplate,{containerName:J,port:String($)});return R.success(`[gateway/supervisor] ${J} bootstrapped as ${U.workerId}`),{workerId:U.workerId,apiToken:U.token,baseUrl:V,containerId:W.Id,containerName:J}}catch(W){if(H)try{await this.docker.removeContainer(H,{force:!0,removeVolumes:!1})}catch(U){R.warn(`[gateway/supervisor] failed to cleanup ${H}: ${U.message}`)}if(W instanceof e1||W instanceof i2)throw W;throw new i2(`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){R.debug(`[gateway/supervisor] logs read failed, retrying: ${J.message}`),await this.sleep(this.pollIntervalMs);continue}let X=bj(F);if(X)return X;await this.sleep(this.pollIntervalMs)}throw new e1(`bootstrap token not observed in container ${D.slice(0,12)} after ${this.pollTimeoutMs}ms`)}async shutdown(){}}function bj(D){let $=wj.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 fj(D,$){return D.replace(/\{(\w+)\}/g,(F,X)=>$[X]??`{${X}}`)}function kj(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 vj(){return new Promise((D,$)=>{let F=zj();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 hj(D,$={}){o_(D.fleetDbPath),a_(nF);let F=sF(),X=new n7(F),J=new c7,Y=new d7,G=new p7({onExpire:(U,V)=>{if(R.warn(`[gateway] forward \u53D6\u6D88 (method=${U.method} workerId=${U.workerId} reason=${V})`),V==="operator_gone")return;let Q=V==="timeout"?"forward_timeout":"node_gone",K=V==="timeout"?`\u7B49\u5F85 worker ${U.workerId} \u54CD\u5E94\u8D85\u65F6`:`worker ${U.workerId} \u5728\u7B49\u5F85\u54CD\u5E94\u671F\u95F4\u4E0B\u7EBF`;try{U.operatorWs.send(ID({type:"response",id:U.operatorRequestId,ok:!1,error:{code:Q,message:K,details:{workerId:U.workerId,method:U.method}}}))}catch{}}}),B=new l7({ttlMs:D.enrollOtpTtlSec*1000,onExpire:(U)=>{try{U.ws.close(4408,"enroll:expired")}catch{}try{X.recordAudit({actor:"gateway",action:"gateway.enrollment.expired",workerId:U.workerId,detail:{displayName:U.displayName,otpHash:gj("sha256").update(U.otp).digest("hex").slice(0,16)}})}catch(V){R.warn("[gateway] \u5199 enrollment.expired audit \u5931\u8D25",V)}try{j0(Y,{type:"event",name:s.ENROLLMENT_PENDING,payload:{workerId:U.workerId,...U.displayName===void 0?{}:{displayName:U.displayName},otp:U.otp,submittedAt:U.submittedAt,expiresAt:U.expiresAt,reason:"expired"},ts:Date.now()})}catch(V){R.warn("[gateway] \u5E7F\u64AD enrollment.pending(expired) \u5931\u8D25",V)}}}),H=null;if(D.canLaunch)H=new FX({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}}),R.info("[gateway] AIWORKER_GATEWAY_CAN_LAUNCH=true \u2014 workers.launch \u5DF2\u5F00\u542F");let W=new m7;return{persistence:X,nodes:J,operators:Y,forwards:G,logger:R.withTag("gateway"),masterKeyHex:D.masterKeyHex,supervisor:H,maxWorkers:D.maxWorkers,pendingEnrollments:B,connectRateLimiter:W,webStaticDir:$.webStaticDir}}async function zU(D,$={}){let X={...t_(),...D},J=hj(X,{webStaticDir:$.webStaticDir}),Y=PU({config:X,context:J});return R.success(`[gateway] listening ws://${X.host}:${Y.port}/ws (auth=${X.internalSharedSecret?"shared-secret+loopback":"loopback-only"})`),{...Y,config:X}}FD();import{existsSync as XX,realpathSync as xj}from"fs";import{dirname as yj,resolve as a8}from"path";import IU from"process";import{fileURLToPath as uj}from"url";function s7(D){let $=D==="fleet"?"AIWORKER_WEB_STATIC_DIR_FLEET":"AIWORKER_WEB_STATIC_DIR_WORKER",F=IU.env[$];if(F){let W=pj(F);if(W&&XX(a8(W,"index.html")))return W}let X=mj();if(!X)return;let J=a8(X,"web",D);if(XX(a8(J,"index.html")))return J;let G=X.endsWith(`apps${JX()}cli${JX()}src${JX()}lib`)||X.endsWith("apps/cli/src/lib")?4:3,B=a8(X,...Array.from({length:G},()=>"..")),H=a8(B,"apps","web","dist",D);if(XX(a8(H,"index.html")))return H;return}function mj(){if(typeof import.meta.url!=="string")return;try{return yj(uj(import.meta.url))}catch{return}}function pj(D){try{return xj(a8(D))}catch{return}}function JX(){return IU.platform==="win32"?"\\":"/"}q2();i8();import{spawn as cj}from"child_process";import{closeSync as wU,existsSync as dj,openSync as TU,readFileSync as lj,unlinkSync as r7,writeFileSync as ij}from"fs";import{mkdir as nj}from"fs/promises";import K8 from"process";var sj="AIWORKER_GATEWAY_INTERNAL_FOREGROUND";function SU(D){if(!Number.isFinite(D)||D<=0)return!1;try{return K8.kill(D,0),!0}catch($){if($.code==="EPERM")return!0;return!1}}function rj(D){if(!dj(D))return null;try{let $=lj(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 oj(){await nj(h2(),{recursive:!0})}function o7(){let D=V7(),$=Q7(),F=rj(D);if(F===null)return{running:!1,pidFile:D,logFile:$};if(!SU(F)){try{r7(D)}catch{}return{running:!1,pidFile:D,logFile:$}}return{running:!0,pid:F,pidFile:D,logFile:$}}async function bU(D={}){let $=o7();if($.running)throw Error(`gateway daemon \u5DF2\u5728\u8FD0\u884C (pid=${$.pid})\uFF0C\u5148\u6267\u884C 'aiworker gateway stop' \u518D\u91CD\u8BD5\u3002`);await oj();let F=D.port??Number.parseInt(K8.env.PORT??"9218",10);if(!Number.isFinite(F)||F<=0||F>65535)throw Error(`\u975E\u6CD5\u7AEF\u53E3: ${F}`);let X=V7(),J=Q7(),Y=TU(J,"a"),G=TU(J,"a"),B={...K8.env,...D.env,PORT:String(F),[sj]:"1"},H=K8.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=cj(K8.execPath,[H,"gateway","start","--port",String(F)],{env:B,cwd:K8.cwd(),detached:!0,stdio:["ignore",Y,G]});try{wU(Y)}catch{}if(G!==Y)try{wU(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(),ij(X,`${String(W.pid)}
317
+ `,"utf8"),{pid:W.pid,port:F,logFile:J,pidFile:X}}async function fU(D={}){let $=o7();if(!$.running||$.pid===void 0)return null;let F=$.pid,X=D.timeoutMs??5000,J=100;try{K8.kill(F,"SIGTERM")}catch(G){if(G.code==="ESRCH"){try{r7($.pidFile)}catch{}return null}throw G}let Y=Date.now()+X;while(Date.now()<Y){if(!SU(F)){try{r7($.pidFile)}catch{}return F}await new Promise((G)=>setTimeout(G,J))}try{K8.kill(F,"SIGKILL")}catch{}try{r7($.pidFile)}catch{}return F}i8();async function kU(D={}){if(D.detach===!0)return aj(D);return tj(D)}async function aj(D){try{let $=await bU({...D.port===void 0?{}:{port:D.port},...D.serveWeb===!1?{env:{AIWORKER_GATEWAY_NO_SERVE_WEB:"1"}}:{}});if(D.persistUrl!==!1)await F3({gatewayUrl:`ws://localhost:${$.port}`});return R.success(`gateway daemon \u5DF2\u542F\u52A8 pid=${$.pid} port=${$.port}`),R.info(`pidFile: ${$.pidFile}`),R.info(`logFile: ${$.logFile}`),0}catch($){return R.error(`gateway start --detach \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}async function tj(D){try{let $=a7.env.AIWORKER_GATEWAY_NO_SERVE_WEB==="1",F=D.serveWeb!==!1&&!$,X=F?s7("fleet"):void 0;if(F&&!X)R.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 zU(D.port===void 0?{}:{port:D.port},{...X?{webStaticDir:X}:{}});if(X)R.info(`[gateway] /admin/* serving fleet bundle from ${X}`);if(D.persistUrl!==!1)try{await F3({gatewayUrl:`ws://localhost:${J.port}`})}catch(B){R.warn(`\u65E0\u6CD5\u6301\u4E45\u5316 gatewayUrl \u5230 aim.json: ${B instanceof Error?B.message:String(B)}`)}R.success(`gateway \u5DF2\u542F\u52A8 (foreground) port=${J.port}`);let Y=!1,G=async(B)=>{if(Y)return;Y=!0,R.info(`[gateway] received ${B}, shutting down`);try{await J.stop(),rF()}catch(H){R.error("[gateway] shutdown failed",H)}a7.exit(0)};return a7.once("SIGTERM",()=>void G("SIGTERM")),a7.once("SIGINT",()=>void G("SIGINT")),await new Promise(()=>{}),0}catch($){return R.error(`gateway start \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}function vU(){let D=o7();if(D.running)return R.success(`gateway daemon \u8FD0\u884C\u4E2D pid=${D.pid}`),R.info(`pidFile: ${D.pidFile}`),R.info(`logFile: ${D.logFile}`),0;return R.info("gateway daemon \u672A\u8FD0\u884C\uFF08\u6216\u5728 foreground \u6A21\u5F0F\u4E0B\u7531 systemd \u76F4\u63A5\u7BA1\uFF09"),1}async function gU(D={}){try{let $=await fU(D.timeoutMs===void 0?{}:{timeoutMs:D.timeoutMs});if($===null)return R.info("gateway daemon \u5F53\u524D\u672A\u8FD0\u884C"),0;return R.success(`gateway daemon \u5DF2\u505C\u6B62 pid=${$}`),0}catch($){return R.error(`gateway stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}FD();import{spawnSync as hU}from"child_process";import{existsSync as ej,mkdirSync as Dz,readFileSync as $z,writeFileSync as Fz}from"fs";import{homedir as xU}from"os";import yU from"path";import Xz from"process";var t8="aiworker-gateway.service",Jz="/var/lib/aiworker";function Gz(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(`
318
+ `);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=${Jz}`,"","[Install]","WantedBy=multi-user.target",""].join(`
319
+ `)}function Yz(D,$=xU()){if(D==="user")return yU.join($,".config","systemd","user",t8);return`/etc/systemd/system/${t8}`}function Bz(D={}){let $=D.scope??"user",F=Gz({scope:$,...$==="system"?{operatorHome:xU()}:{}});if(D.dryRun)return{scope:$,content:F,enabled:!1};let X=D.out??Yz($);Dz(yU.dirname(X),{recursive:!0});let J=!1;if(ej(X)){if($z(X,"utf8")===F)J=!0}if(!J)Fz(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 Hz($),{scope:$,content:F,written:{path:X,unchanged:J},enabled:!0}}function Hz(D){let $=D==="user"?["--user"]:[],F=hU("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=hU("systemctl",[...$,"enable","--now",t8],{stdio:"inherit"});if(X.error)throw Error(`\u65E0\u6CD5\u6267\u884C systemctl: ${X.error.message}`);if(X.status!==0)throw Error(`systemctl ${[...$,"enable","--now",t8].join(" ")} \u5931\u8D25 (exit=${X.status??"signal"})`)}async function uU(D={}){try{let $=Bz(D);if(D.dryRun)return Xz.stdout.write($.content),0;let F=$.written?.path??"<unknown>";if($.written?.unchanged)R.info(`systemd unit \u672A\u53D8\u66F4 (${F})`);else R.success(`systemd unit \u5199\u5165 ${F}`);if($.enabled)R.success(`\u5DF2 enable --now ${t8}\uFF08${$.scope==="user"?"systemctl --user":"systemctl"}\uFF09`);else if(D.out!==void 0)R.info("--out \u6307\u5B9A\u4E86\u975E\u9ED8\u8BA4\u8DEF\u5F84\uFF0C\u5DF2\u8DF3\u8FC7 systemctl\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),R.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),R.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${t8}`);else if(D.noEnable)R.info("--no-enable \u5DF2\u751F\u6548\uFF1B\u5982\u9700\u542F\u7528\u8BF7\u624B\u52A8:"),R.info(` systemctl ${$.scope==="user"?"--user ":""}daemon-reload`),R.info(` systemctl ${$.scope==="user"?"--user ":""}enable --now ${t8}`);return 0}catch($){return R.error(`install systemd \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}eD();FD();async function mU(D){let $=D.follow===!0,F=D.timeoutMs??($?3600000:5000);try{return await KD(async({client:X})=>{return await new Promise((J)=>{let Y=!1,G=(W)=>{if(Y)return;Y=!0,J(W)},B=X.onEvent(s.LOGS_LINE,(W)=>{if(W===null||typeof W!=="object")return;let U=W.workerId;if(typeof U!=="string"||U!==D.workerId)return;G2(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),G2({kind:"error",payload:{code:"request_failed",message:W instanceof Error?W.message:String(W)}}),G(VD(W))})})})}catch(X){return R.error(`logs \u5931\u8D25: ${X instanceof Error?X.message:String(X)}`),VD(X)}}FD();async function pU(D){try{let $=await KD(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(() => (i8(),K7));return await F({...D.url===void 0?{}:{gatewayUrl:D.url},deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),R.success(`\u5DF2\u914D\u5BF9 worker ${$.workerId}`),LD({workerId:$.workerId}),0}catch($){return R.error(`pair \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}FD();var cU=["web","line","telegram","lark","whatsapp"];function Wz(D){if(!cU.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${cU.join(", ")}`);return D}async function dU(D){try{let $=await KD(async({client:F})=>{return await F.request("cron.list",{workerId:D})});return LD($),0}catch($){return R.error(`schedule list \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function lU(D){try{let $=Wz(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 KD(async({client:J})=>{return await J.request("cron.add",{workerId:D.workerId,job:F})});return LD(X),0}catch($){return R.error(`schedule add \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function iU(D,$){try{let F=await KD(async({client:X})=>{return await X.request("cron.remove",{workerId:D,jobId:$})});return LD(F),0}catch(F){return R.error(`schedule remove \u5931\u8D25: ${F instanceof Error?F.message:String(F)}`),VD(F)}}FD();async function nU(D){try{let $=await KD(async({client:F})=>{return await F.request("token.rotate",{workerId:D})});return LD($),0}catch($){return R.error(`token rotate \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}FD();async function sU(){try{let D=await KD(async({client:$})=>{return await $.request("workers.list",{})});return LD(D),0}catch(D){return R.error(`workers list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),VD(D)}}async function rU(D){try{let $=await KD(async({client:F})=>{return await F.request("workers.info",{workerId:D})});return LD($),0}catch($){return R.error(`workers info \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function oU(D={}){try{let $=await KD(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(() => (i8(),K7));return await F({deviceToken:$.deviceToken,defaultWorkerId:$.workerId}),R.success(`\u5DF2 launch worker ${$.workerId}`),LD({workerId:$.workerId}),0}catch($){return R.error(`workers launch \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function aU(D){try{let $=await KD(async({client:F})=>{return await F.request("workers.stop",{workerId:D})});return LD($),0}catch($){return R.error(`workers stop \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}async function tU(D){try{let $=await KD(async({client:Y})=>{return await Y.request("workers.remove",{workerId:D})}),{loadAimState:F,saveAimState:X}=await Promise.resolve().then(() => (i8(),K7)),J=await F();if(J.defaultWorkerId===D){let Y={...J};delete Y.defaultWorkerId,await X(Y)}return LD($),0}catch($){return R.error(`workers remove \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),VD($)}}O2();FD();import GY from"process";O2();TD();import Yc from"process";async function Bc(D){let $=gD(),F=s2(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 G6(D,X)}async function _0(D={}){P3(l.WORKER_DB_PATH);let $=Yc.env.WORKER_MIGRATIONS_FOLDER??$6;L3($);let F=gD(),X=p(),J=await F1(X,F,{...l.AIWORKER_FORCE_ID===void 0?{}:{forceId:l.AIWORKER_FORCE_ID},...l.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:l.AIWORKER_FORCE_TOKEN}});if(!D.silent)X1(J.workerId,J.token,X,J.justMinted);let Y=await $1(X),G=await Bc(Y.config),B=new M1({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits},stallTimeoutMs:l.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:l.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:l.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:l.PROCESS_GC_INTERVAL_MS});return{workerId:J.workerId,token:J.token,configVersion:Y.version,hydrated:G,db:X,processes:B}}function QO(D){return N1(D.workerId,D.hydrated,{processes:D.processes})}function Hc(){return`http://${GY.env.AIW_LOCAL_WORKER_HOST??"localhost"}:${l.PORT}`}async function AO(D,$={}){let F=await _0({silent:!0}),X=`${Hc()}${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 KO(){try{let{status:D,body:$}=await AO("/api/worker/approvals");if(D!==200)return R.error(`approvals list HTTP ${D}: ${JSON.stringify($)}`),1;return GY.stdout.write(`${JSON.stringify($,null,2)}
320
+ `),0}catch(D){return R.error(`approvals list \u5931\u8D25: ${D instanceof Error?D.message:String(D)}`),1}}async function EO(D){try{let $=D.deny===!0?"deny":"allow",{status:F,body:X}=await AO(`/api/worker/approvals/${encodeURIComponent(D.taskId)}/${encodeURIComponent(D.toolCallId)}/grant`,{method:"POST",body:JSON.stringify({decision:$})});if(F!==200)return R.error(`approvals grant HTTP ${F}: ${JSON.stringify(X)}`),1;return GY.stdout.write(`${JSON.stringify(X,null,2)}
321
+ `),0}catch($){return R.error(`approvals grant \u5931\u8D25: ${$ instanceof Error?$.message:String($)}`),1}}O2();FD();async function CO(){await _0({silent:!0});let{getWorkerDb:D}=await Promise.resolve().then(() => (TD(),BX)),$=await I0(D());return console.log(JSON.stringify({version:$.version,config:$.config},null,2)),0}async function RO(D){let $=await _0({silent:!0}),F;try{F=JSON.parse(D.json)}catch(G){return R.error(`[aiw config set] invalid JSON: ${String(G)}`),2}let{getWorkerDb:X}=await Promise.resolve().then(() => (TD(),BX)),J=X(),Y=gD();try{let G=await K9(J,Y,F,D.ifMatch===void 0?{}:{ifMatchVersion:D.ifMatch});return await E9($.workerId,G.config,G.version),R.success(`[aiw config set] stored config v${G.version}`),0}catch(G){if(G instanceof v2)return R.error(`[aiw config set] invalid config: ${JSON.stringify(G.issues,null,2)}`),2;if(G instanceof g2)return R.error(`[aiw config set] version conflict: expected ${G.expected}, stored is ${G.actual}`),3;throw G}}q2();FD();import{existsSync as Wc}from"fs";import{homedir as _c}from"os";import x6 from"path";import YY from"process";async function OO(D={}){if(D.global===!0){let G=x6.join(_c(),".aiworker");YY.env.AIWORKER_HOME=G,g8({home:G});let B=await _0();R.success(`[aiworker init] user-scope worker ${B.workerId} ready (config v${B.configVersion})`);return}let $=s0();if($.scope==="explicit"){g8({home:$.home});let G=await _0();R.success(`[aiworker init] explicit-scope worker ${G.workerId} ready (${$.home})`);return}let F=YY.cwd(),X=X$(F);if(X){await W$(X),g8({home:x6.join(X,".aiworker","local")});let G=await _0();R.success(`[aiworker init] project-scope worker ${G.workerId} ready (${X})`);return}if(D.force!==!0&&!Uc(F))throw Error(`[aiworker init] cwd is not inside a git repo (cwd=${F}).
318
322
  `+` \u2022 Run inside an existing git repo to enable project-scope worker, OR
319
323
  `+` \u2022 aiworker init --global \u2192 use ~/.aiworker (single host-wide worker), OR
320
- `+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await W$(F);let J=x6.join(F,".aiworker","local");delete YY.env.AIWORKER_HOME,g8({home:J});let Y=await _0();R.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${F})`)}function Xc(D){let $=x6.resolve(D);while(!0){if($c(x6.join($,".git")))return!0;let F=x6.dirname($);if(F===$)return!1;$=F}}FD();var Jc=120000;async function CO(D={}){let $=D.message??"";if(!$)return R.error("[aiw run] --message is required (non-empty)"),2;let F=await _0(),X=_O(F),J=D.timeoutMs??Jc;if(R.info(`[aiw run] worker ${F.workerId} (config v${F.configVersion}) \u2014 engine=${F.hydrated.executor.engine}/${F.hydrated.executor.variant}`),D.dryRun)return R.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 U=null,V=setTimeout(()=>{R.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),U?.(),W(124)},J);U=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(V),U?.(),W(Q.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(G)}catch(W){return R.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}FD();var RO=["web","line","telegram","lark","whatsapp"];function Gc(D){if(!RO.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${RO.join(", ")}`);return D}async function BY(D){await _0({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (O2(),WO)),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 OO(){try{let D=await BY(async($)=>$.listJobs());return console.log(JSON.stringify({jobs:D},null,2)),0}catch(D){return R.error(`[aiw schedule list] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function MO(D){try{let $=Gc(D.channel),F=await BY(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 R.error(`[aiw schedule add] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function ZO(D){try{let $=await BY(async(F)=>F.removeJob(D));return console.log(JSON.stringify($,null,2)),$.removed?0:1}catch($){return R.error(`[aiw schedule remove] failed: ${$ instanceof Error?$.message:String($)}`),1}}q2();import{existsSync as Yc}from"fs";import qO from"path";import NO from"process";async function PO(){let D=s0();NO.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
324
+ `+" \u2022 aiworker init --force \u2192 create .aiworker/ here anyway (no git tracking).");await W$(F);let J=x6.join(F,".aiworker","local");delete YY.env.AIWORKER_HOME,g8({home:J});let Y=await _0();R.success(`[aiworker init] project-scope worker ${Y.workerId} ready (${F})`)}function Uc(D){let $=x6.resolve(D);while(!0){if(Wc(x6.join($,".git")))return!0;let F=x6.dirname($);if(F===$)return!1;$=F}}FD();var Vc=120000;async function MO(D={}){let $=D.message??"";if(!$)return R.error("[aiw run] --message is required (non-empty)"),2;let F=await _0(),X=QO(F),J=D.timeoutMs??Vc;if(R.info(`[aiw run] worker ${F.workerId} (config v${F.configVersion}) \u2014 engine=${F.hydrated.executor.engine}/${F.hydrated.executor.variant}`),D.dryRun)return R.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 U=null,V=setTimeout(()=>{R.error(`[aiw run] timed out after ${J}ms without reaching a terminal state`),U?.(),W(124)},J);U=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(V),U?.(),W(Q.type==="orchestrator.finished"?0:1)})});try{await X.orchestrator.ingest(G)}catch(W){return R.error(`[aiw run] ingest failed: ${String(W)}`),X.dispose(),1}let H=await B;return X.dispose(),H}FD();var ZO=["web","line","telegram","lark","whatsapp"];function Qc(D){if(!ZO.includes(D))throw Error(`\u65E0\u6548 channel "${D}"\uFF0C\u53EF\u9009\u503C\uFF1A${ZO.join(", ")}`);return D}async function BY(D){await _0({silent:!0});let{CronService:$}=await Promise.resolve().then(() => (O2(),VO)),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 qO(){try{let D=await BY(async($)=>$.listJobs());return console.log(JSON.stringify({jobs:D},null,2)),0}catch(D){return R.error(`[aiw schedule list] failed: ${D instanceof Error?D.message:String(D)}`),1}}async function NO(D){try{let $=Qc(D.channel),F=await BY(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 R.error(`[aiw schedule add] failed: ${$ instanceof Error?$.message:String($)}`),1}}async function PO(D){try{let $=await BY(async(F)=>F.removeJob(D));return console.log(JSON.stringify($,null,2)),$.removed?0:1}catch($){return R.error(`[aiw schedule remove] failed: ${$ instanceof Error?$.message:String($)}`),1}}q2();import{existsSync as Ac}from"fs";import LO from"path";import jO from"process";async function zO(){let D=s0();jO.stdout.write(`${[`Scope : ${D.scope}`,`Home : ${D.home}`,`Source : ${D.source}`,D.projectRoot?`Project root : ${D.projectRoot}`:null].filter(Boolean).join(`
321
325
  `)}
322
- `);let $="<workerId>",F=r0($),X=h9($),J=qO.join(D.home,".env"),Y=qO.join(D.home,"worker.db"),G=[["AGENT.md",G$($)],["SOUL.md",Y$($)],["USER.md",B$($)],["MEMORY.md",J$($)],["ROLLUP.md",hY($)],["mcp.json",xY($)],["worker.db",Y],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of G){let U=Yc(H)?"\u2713":"\xB7";NO.stdout.write(` ${U} ${B.padEnd(14)} ${H}
323
- `)}return 0}import g9 from"process";function P9(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 XD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function Bc(D){return"_def"in D}function q9(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 jO(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,Y){var G,B,H,W,U,V;let Q=typeof J==="string"?Y:J,K=Q!==null&&Q!==void 0?Q:{},{param:C}=K,E=P9(K,["param"]),A=Object.assign(Object.assign({},(G=this._def.openapi)===null||G===void 0?void 0:G._internal),typeof J==="string"?{refId:J}:void 0),Z=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)||C?{param:Object.assign(Object.assign({},(V=(U=this._def.openapi)===null||U===void 0?void 0:U.metadata)===null||V===void 0?void 0:V.param),C)}:void 0),L=new this.constructor(Object.assign(Object.assign({},this._def),{openapi:Object.assign(Object.assign({},Object.keys(A).length>0?{_internal:A}:void 0),Object.keys(Z).length>0?{metadata:Z}:void 0)}));if(XD(this,"ZodObject")){let N=this.extend;L.extend=function(...S){var z,P,b,I,o,_D,BD;let a=N.apply(this,S);return a._def.openapi={_internal:{extendedFrom:((P=(z=this._def.openapi)===null||z===void 0?void 0:z._internal)===null||P===void 0?void 0:P.refId)?{refId:(I=(b=this._def.openapi)===null||b===void 0?void 0:b._internal)===null||I===void 0?void 0:I.refId,schema:this}:(_D=(o=this._def.openapi)===null||o===void 0?void 0:o._internal)===null||_D===void 0?void 0:_D.extendedFrom},metadata:(BD=a._def.openapi)===null||BD===void 0?void 0:BD.metadata},a}}return L},q9(D,"optional"),q9(D,"nullable"),q9(D,"default"),q9(D,"transform"),q9(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,U;H._def.openapi=(U=(W=J[B])===null||W===void 0?void 0:W._def)===null||U===void 0?void 0:U.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 c5(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)=>c5(D[X],$[X]))}class zO{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)=>c5(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>c5(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 L9(D){return D===void 0}function j9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function Hc(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((Y)=>Y===X))F[X]=J}),F}function u6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function LO(D){return D.filter(($)=>!L9($))}var HY=c5;function Wc(D){let $=new zO;return D.forEach((F)=>$.put(F)),[...$.values()]}function IO(D){return typeof D==="string"}class WY{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 I9{constructor(D){this.message=D}}class y6 extends I9{constructor(D,$){super(D);this.data=$}}class z9 extends I9{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 N9(D,$){try{return D()}catch(F){if(F instanceof z9)throw new z9(Object.assign(Object.assign({},F.data),$));throw F}}class wO extends I9{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class qD{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 u6(Hc(D,["param"]),L9)}static buildParameterMetadata(D){return u6(D,L9)}static applySchemaMetadata(D,$){return u6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),L9)}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($&&XD(D,$))return D;if(XD(D,"ZodOptional")||XD(D,"ZodNullable")||XD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(XD(D,"ZodDefault")||XD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(XD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(XD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class TO{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 SO{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class bO{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)=>qD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var Y;let G=qD.getRefId(J),B=(Y=J.shape)===null||Y===void 0?void 0:Y[$];if(XD(B,"ZodEnum")||XD(B,"ZodNativeEnum")){Object.values(B.enum).filter(IO).forEach((U)=>{X[U]=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 fO{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class kO{transform(D,$,F,X){let Y={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([Y],$)};return Y}flattenIntersectionTypes(D){if(!XD(D,"ZodIntersection"))return[D];let $=this.flattenIntersectionTypes(D._def.left),F=this.flattenIntersectionTypes(D._def.right);return[...$,...F]}}class vO{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function _c(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 gO{transform(D,$){let{type:F,values:X}=_c(D._def.values);if(F==="mixed")throw new I9("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 hO{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class xO{transform(D,$,F,X){var J;let Y=(J=qD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,G=this.requiredKeysOf(D),B=j9(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),U=j9(H===null||H===void 0?void 0:H._def.shape(),X),V=Object.fromEntries(Object.entries(B).filter(([C,E])=>{return!HY(U[C],E)})),Q=G.filter((C)=>!W.includes(C)),K=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:V}),Q.length>0?{required:Q}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${Y.refId}`},K]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(XD(X,"ZodNever")){if(F==="strict")return{additionalProperties:!1};return{}}return{additionalProperties:$(X)}}requiredKeysOf(D){return Object.entries(D._def.shape()).filter(([$,F])=>!qD.isOptionalSchema(F)).map(([$,F])=>$)}}class yO{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,Y=F(X);if(XD(J,"ZodEnum")||XD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(IO).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 uO{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 mO{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 pO{transform(D,$,F){let J=this.flattenUnionTypes(D).map((Y)=>{let G=this.unwrapNullable(Y);return F(G)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!XD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(XD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class cO{constructor(D){this.versionSpecifics=D,this.objectTransformer=new xO,this.stringTransformer=new uO,this.numberTransformer=new hO,this.bigIntTransformer=new SO,this.literalTransformer=new vO,this.enumTransformer=new fO,this.nativeEnumTransformer=new gO,this.arrayTransformer=new TO,this.unionTransformer=new pO,this.discriminatedUnionTransformer=new bO,this.intersectionTransformer=new kO,this.recordTransformer=new yO,this.tupleTransformer=new mO(D)}transform(D,$,F,X,J){if(XD(D,"ZodNull"))return this.versionSpecifics.nullType;if(XD(D,"ZodUnknown")||XD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(XD(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(XD(D,"ZodUnknown")||XD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(XD(D,"ZodString"))return this.stringTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodNumber"))return this.numberTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),(Y)=>this.versionSpecifics.getNumberChecks(Y));if(XD(D,"ZodBigInt"))return this.bigIntTransformer.transform((Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(XD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodEnum"))return this.enumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodArray"))return this.arrayTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodUnion"))return this.unionTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(XD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F,X);if(XD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(XD(D,"ZodRecord"))return this.recordTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=qD.getRefId(D);throw new wO({currentSchema:D._def,schemaName:J})}}class _Y{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new cO($),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 $=qD.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 y6(`Conflicting location for parameter ${H.name}`,{key:"in",values:LO([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 y6("Conflicting names for parameter",{key:"name",values:LO([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=qD.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(XD(D,"ZodObject")){let G=D._def.shape();return Object.entries(G).map(([H,W])=>{var U,V;let Q=qD.getMetadata(W),K=this.getParameterRef(Q,{in:$,name:H});if(K)return K;let C=(U=Q===null||Q===void 0?void 0:Q.metadata)===null||U===void 0?void 0:U.param;if((C===null||C===void 0?void 0:C.name)&&C.name!==H)throw new y6("Conflicting names for parameter",{key:"name",values:[H,C.name]});if((C===null||C===void 0?void 0:C.in)&&C.in!==$)throw new y6(`Conflicting location for parameter ${(V=C.name)!==null&&V!==void 0?V:H}`,{key:"in",values:[$,C.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new y6(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=qD.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!qD.isOptionalSchema(D)&&!D.isNullable(),Y=this.generateSchemaWithRef(D);return Object.assign({schema:Y,required:J},X?qD.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=qD.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 z9({missingField:"name"});if(!Y)throw new z9({missingField:"in",paramName:J});let G=this.generateSimpleParameter(D);return Object.assign(Object.assign({},G),{in:Y,name:J})}generateSchemaWithMetadata(D){var $;let F=qD.unwrapChained(D),X=qD.getMetadata(D),J=qD.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)?qD.applySchemaMetadata(Y,X.metadata):u6(Y,L9)}constructReferencedOpenAPISchema(D){var $;let F=qD.getMetadata(D),X=qD.unwrapChained(D),J=qD.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=qD.getMetadata(D),X=qD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],Y={$ref:this.generateSchemaRef(X)},G=u6(qD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,U)=>W===void 0||HY(W,J[U]));if(G.type)return{allOf:[Y,G]};let B=u6(this.constructReferencedOpenAPISchema(D),(W,U)=>W===void 0||HY(W,J[U])),H=qD.applySchemaMetadata(B,G);if(Object.keys(H).length>0)return{allOf:[Y,H]};return Y}generateSchemaWithRef(D){let $=qD.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=P9(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=N9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),G=N9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=N9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=N9(()=>{if(Array.isArray($))return $.flatMap((U)=>this.generateInlineParameters(U,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...G,...Y,...H,...B]}cleanParameter(D){if(!D)return;return XD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,Y=P9(D,["method","path","request","responses"]),G=j9(J,(U)=>{return this.getResponse(U)}),B=N9(()=>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=P9(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let Y=XD(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 j9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return j9(D,($)=>{if(!$||!Bc($.schema))return $;let{schema:F}=$,X=P9($,["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 dO{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 $=Wc(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 UY{constructor(D){let $=new dO;this.generator=new _Y(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class lO{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 Uc(D){return"type"in D&&D.type==="webhook"}class VY{constructor(D){this.definitions=D,this.webhookRefs={};let $=new lO;this.generator=new _Y(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(Uc).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 AY=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},iO=(D)=>{let{groups:$,path:F}=Vc(D),X=AY(F);return Qc(X,$)},Vc=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},Qc=(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},d5={},nO=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!d5[X])if(F[2])d5[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else d5[X]=[D,F[1],!0];return d5[X]}return null},m6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},Ac=(D)=>m6(D,decodeURI),KY=(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 Ac(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var sO=(D)=>{let $=KY(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},M2=(D,$,...F)=>{if(F.length)$=M2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},l5=(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)},QY=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?m6(D,w9):D},rO=(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 QY(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=QY(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=QY(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},oO=rO,aO=(D,$)=>{return rO(D,$,!0)},w9=decodeURIComponent;var Kc=/^[\w!#$%&'*.^`|~+-]+$/,Ec=/^[ !#-:<-[\]-~]*$/,tO=(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)},EY=(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=tO(J.substring(0,Y));if($&&$!==G||!Kc.test(G))continue;let B=tO(J.substring(Y+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(Ec.test(B)){if(X[G]=B.indexOf("%")!==-1?m6(B,w9):B,$)break}}return X};var eO=(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 EY(X,Y)[Y]}if(!X)return{};return EY(X)};var i5=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 DM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var Cc=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,Rc=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,Oc=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,CY=(D,$)=>{return async(F,X)=>{let J={},Y=F.req.header("Content-Type");switch(D){case"json":if(!Y||!Cc.test(Y))break;try{J=await F.req.json()}catch{throw new i5(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!Y||!(Rc.test(Y)||Oc.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 DM(W,Y),F.req.bodyCache.formData=B}catch(W){let U="Malformed FormData request.";throw U+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new i5(400,{message:U})}let H=Object.create(null);B.forEach((W,U)=>{if(U.endsWith("[]"))(H[U]??=[]).push(W);else if(Array.isArray(H[U]))H[U].push(W);else if(Object.hasOwn(H,U))H[U]=[H[U],W];else H[U]=W}),J=H;break}case"query":J=Object.fromEntries(Object.entries(F.req.queries()).map(([B,H])=>{return H.length===1?[B,H[0]]:[B,H]}));break;case"param":J=F.req.param();break;case"header":J=F.req.header();break;case"cookie":J=eO(F);break}let G=await $(J,F);if(G instanceof Response)return G;return F.req.addValidatedData(D,G),await X()}};function Mc(D,$,F,X){return CY(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((U)=>[U.toLowerCase(),U]));G=Object.fromEntries(Object.entries(J).map(([U,V])=>[W[U]||U,V]))}let B=X&&X.validationFunction?await X.validationFunction($,G):await $.safeParseAsync(G);if(F){let H=await F({data:G,...B,target:D},Y);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return Y.json(B,400);return B.data})}var P1=Mc;var RY=(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,U;if(D[B])U=D[B][0][0],X.req.routeIndex=B;else U=B===D.length&&J||void 0;if(U)try{H=await U(X,()=>G(B+1))}catch(V){if(V instanceof Error&&$)X.error=V,H=await $(V,X),W=!0;else throw V}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var $M=Symbol();var FM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,Y=(D instanceof n5?D.raw.headers:D.headers).get("Content-Type");if(Y?.startsWith("multipart/form-data")||Y?.startsWith("application/x-www-form-urlencoded"))return Zc(D,{all:F,dot:X});return{}};async function Zc(D,$){let F=await D.formData();if(F)return qc(F,$);return{}}function qc(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Nc(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))Pc(F,X,J),delete F[X]});return F}var Nc=(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]},Pc=(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 XM=(D)=>m6(D,w9),n5=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)?XM(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)?XM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return oO(this.url,D)}queries(D){return aO(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 FM(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[$M](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var s5={Stringify:1,BeforeStream:2,Stream:3},Lc=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var T9=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)=>T9(H,$,!1,X,J))).then(()=>J[0]));if(F)return Lc(await G,Y);else return G};var JM="text/plain; charset=UTF-8",OY=(D,$)=>{return{"Content-Type":D,...$}},S9=(D,$)=>new Response(D,$),GM=class{#D;#$;env={};#X;finalized=!1;error;#G;#J;#F;#W;#H;#B;#Y;#U;#V;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#V=$.path,this.#U=$.matchResult}get req(){return this.#$??=new n5(this.#D,this.#V,this.#U),this.#$}get event(){if(this.#J&&"respondWith"in this.#J)return this.#J;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#J)return this.#J;else throw Error("This context has no ExecutionContext")}get res(){return this.#F||=S9(null,{headers:this.#Y??=new Headers})}set res(D){if(this.#F&&D){D=S9(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=S9(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)}#_(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 S9(D,{status:J,headers:X})}newResponse=(...D)=>this.#_(...D);body=(D,$,F)=>this.#_(D,$,F);text=(D,$,F)=>{return!this.#Y&&!this.#G&&!$&&!F&&!this.finalized?new Response(D):this.#_(D,$,OY(JM,F))};json=(D,$,F)=>{return this.#_(JSON.stringify(D),$,OY("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#_(J,$,OY("text/html; charset=UTF-8",F));return typeof D==="object"?T9(D,s5.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??=()=>S9(),this.#B(this)}};var RD="ALL",YM="all",BM=["get","post","put","delete","options","patch"],r5="Can not add a route since the matcher is already built.",o5=class extends Error{};var HM="__COMPOSED_HANDLER";var jc=(D)=>{return D.text("404 Not Found",404)},WM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},_M=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[...BM,YM].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((U)=>{this.#G(W.toUpperCase(),this.#D,U)})}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(RD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??KY:sO}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=jc;errorHandler=WM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let Y;if(F.errorHandler===WM)Y=J.handler;else Y=async(G,B)=>(await RY([],F.errorHandler)(G,()=>J.handler(G,B))).res,Y[HM]=J.handler;X.#G(J.method,J.path,Y)}),this}basePath($){let F=this.#$();return F._basePath=M2(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=M2(this._basePath,$),W=H==="/"?0:H.length;return(U)=>{let V=new URL(U.url);return V.pathname=V.pathname.slice(W)||"/",new Request(V,U)}})();let B=async(H,W)=>{let U=await F(J(H.req.raw),...G(H));if(U)return U;await W()};return this.#G(RD,M2($,"*"),B),this}#G($,F,X){$=$.toUpperCase(),F=M2(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 GM($,{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(U){return this.#J(U,B)}return W instanceof Promise?W.then((U)=>U||(B.finalized?B.res:this.#X(B))).catch((U)=>this.#J(U,B)):W??this.#X(B)}let H=RY(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${M2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var b9=[];function a5(D,$){let F=this.buildAllMatchers(),X=(J,Y)=>{let G=F[J]||F[RD],B=G[2][Y];if(B)return B;let H=Y.match(G[0]);if(!H)return[[],b9];let W=H.indexOf("",1);return[G[1][W],H]};return this.match=X,X(D,$)}var t5="[^/]+",f9=".*",k9="(?:|/.*)",L1=Symbol(),zc=new Set(".\\+*[^]$()");function Ic(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===f9||D===k9)return 1;else if($===f9||$===k9)return-1;if(D===t5)return 1;else if($===t5)return-1;return D.length===$.length?D<$?-1:1:$.length-D.length}var UM=class D{#D;#$;#X=Object.create(null);insert($,F,X,J,Y){if($.length===0){if(this.#D!==void 0)throw L1;if(Y)return;this.#D=F;return}let[G,...B]=$,H=G==="*"?B.length===0?["","",f9]:["","",t5]:G==="/*"?["","",k9]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let U=H[1],V=H[2]||t5;if(U&&H[2]){if(V===".*")throw L1;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw L1}if(W=this.#X[V],!W){if(Object.keys(this.#X).some((Q)=>Q!==f9&&Q!==k9))throw L1;if(Y)return;if(W=this.#X[V]=new D,U!=="")W.#$=J.varIndex++}if(!Y&&U!=="")X.push([U,W.#$])}else if(W=this.#X[G],!W){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==f9&&U!==k9))throw L1;if(Y)return;W=this.#X[G]=new D}W.insert(B,F,X,J,Y)}buildRegExpStr(){let F=Object.keys(this.#X).sort(Ic).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:zc.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 VM=class{#D={varIndex:0};#$=new UM;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 wc=[/^$/,[],Object.create(null)],QM=Object.create(null);function AM(D){return QM[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function Tc(){QM=Object.create(null)}function Sc(D){let $=new VM,F=[];if(D.length===0)return wc;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,U],[V,Q])=>W?1:V?-1:U.length-Q.length),J=Object.create(null);for(let W=0,U=-1,V=X.length;W<V;W++){let[Q,K,C]=X[W];if(Q)J[K]=[C.map(([A])=>[A,Object.create(null)]),b9];else U++;let E;try{E=$.insert(K,U,Q)}catch(A){throw A===L1?new o5(K):A}if(Q)continue;F[U]=C.map(([A,Z])=>{let L=Object.create(null);Z-=1;for(;Z>=0;Z--){let[N,S]=E[Z];L[N]=S}return[A,L]})}let[Y,G,B]=$.buildRegExp();for(let W=0,U=F.length;W<U;W++)for(let V=0,Q=F[W].length;V<Q;V++){let K=F[W][V]?.[1];if(!K)continue;let C=Object.keys(K);for(let E=0,A=C.length;E<A;E++)K[C[E]]=B[K[C[E]]]}let H=[];for(let W in G)H[W]=F[G[W]];return[Y,H,J]}function p6(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(AM(F).test($))return[...D[F]];return}var e5=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[RD]:Object.create(null)},this.#$={[RD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(r5);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[RD]).forEach((H)=>{B[D][H]=[...B[RD][H]]})});if($==="/*")$="*";let Y=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=AM($);if(D===RD)Object.keys(X).forEach((H)=>{X[H][$]||=p6(X[H],$)||p6(X[RD],$)||[]});else X[D][$]||=p6(X[D],$)||p6(X[RD],$)||[];Object.keys(X).forEach((H)=>{if(D===RD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,Y])})}),Object.keys(J).forEach((H)=>{if(D===RD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,Y]))});return}let G=l5($)||[$];for(let B=0,H=G.length;B<H;B++){let W=G[B];Object.keys(J).forEach((U)=>{if(D===RD||D===U)J[U][W]||=[...p6(X[U],W)||p6(X[RD],W)||[]],J[U][W].push([F,Y-H+B+1])})}}match=a5;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,Tc(),D}#X(D){let $=[],F=D===RD;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!==RD)$.push(...Object.keys(X[RD]).map((Y)=>[Y,X[RD][Y]]))}),!F)return null;else return Sc($)}};var bc=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[RD],Y={};for(let G in J[2])Y[G]=[J[2][G][0].slice(),b9];this.#D[D]=[J[0],J[1].map((G)=>Array.isArray(G)?G.slice():0),Y]}if($==="/*"||$==="*"){let J=[F,{}];if(D===RD)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===RD)for(let G in this.#D)this.#G(G,$,F,J,Y);else this.#G(D,$,F,J,Y)}buildAllMatchers(){return this.#D}match=a5};var MY=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(r5);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 o5)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 v9=Object.create(null),fc=(D)=>{for(let $ in D)return!0;return!1},KM=class D{#D;#$;#X;#G=0;#J=v9;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=iO(F),G=[];for(let B=0,H=Y.length;B<H;B++){let W=Y[B],U=Y[B+1],V=nO(W,U),Q=Array.isArray(V)?V[0]:W;if(Q in J.#$){if(J=J.#$[Q],V)G.push(V[1]);continue}if(J.#$[Q]=new D,V)J.#X.push(V),G.push(V[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[RD],U={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==v9||Y&&Y!==v9)for(let V=0,Q=W.possibleKeys.length;V<Q;V++){let K=W.possibleKeys[V],C=U[W.score];W.params[K]=Y?.[K]&&!C?Y[K]:J[K]??Y?.[K],U[W.score]=!0}}}}search($,F){let X=[];this.#J=v9;let Y=[this],G=AY(F),B=[],H=G.length,W=null;for(let U=0;U<H;U++){let V=G[U],Q=U===H-1,K=[];for(let E=0,A=Y.length;E<A;E++){let Z=Y[E],L=Z.#$[V];if(L)if(L.#J=Z.#J,Q){if(L.#$["*"])this.#F(X,L.#$["*"],$,Z.#J);this.#F(X,L,$,Z.#J)}else K.push(L);for(let N=0,S=Z.#X.length;N<S;N++){let z=Z.#X[N],P=Z.#J===v9?{}:{...Z.#J};if(z==="*"){let BD=Z.#$["*"];if(BD)this.#F(X,BD,$,Z.#J),BD.#J=P,K.push(BD);continue}let[b,I,o]=z;if(!V&&!(o instanceof RegExp))continue;let _D=Z.#$[b];if(o instanceof RegExp){if(W===null){W=Array(H);let dD=F[0]==="/"?1:0;for(let Z2=0;Z2<H;Z2++)W[Z2]=dD,dD+=G[Z2].length+1}let BD=F.substring(W[U]),a=o.exec(BD);if(a){if(P[I]=a[0],this.#F(X,_D,$,Z.#J,P),fc(_D.#$)){_D.#J=P;let dD=a[0].match(/\//)?.length??0;(B[dD]||=[]).push(_D)}continue}}if(o===!0||o.test(V))if(P[I]=V,Q){if(this.#F(X,_D,$,P,Z.#J),_D.#$["*"])this.#F(X,_D.#$["*"],$,P,Z.#J)}else _D.#J=P,K.push(_D)}}let C=B.shift();Y=C?K.concat(C):K}if(X.length>1)X.sort((U,V)=>{return U.score-V.score});return[X.map(({handler:U,params:V})=>[U,V])]}};var ZY=class{name="TrieRouter";#D;constructor(){this.#D=new KM}add(D,$,F){let X=l5($);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 qY=class extends _M{constructor(D={}){super(D);this.router=D.router??new MY({routers:[new e5,new ZY]})}};vD();var n0=class D extends qY{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new WY,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=P1("query",X.request.query,Y);G.push(W)}if(X.request?.params){let W=P1("param",X.request.params,Y);G.push(W)}if(X.request?.headers){let W=P1("header",X.request.headers,Y);G.push(W)}if(X.request?.cookies){let W=P1("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 U=B[W].schema;if(!(U instanceof $D))continue;if(CM(W)){let V=P1("json",U,Y);if(X.request?.body?.required)G.push(V);else{let Q=async(K,C)=>{if(K.req.header("content-type")){if(CM(K.req.header("content-type")))return await V(K,C)}K.req.addValidatedData("json",{}),await C()};G.push(Q)}}if(RM(W)){let V=P1("form",U,Y);if(X.request?.body?.required)G.push(V);else{let Q=async(K,C)=>{if(K.req.header("content-type")){if(RM(K.req.header("content-type")))return await V(K,C)}K.req.addValidatedData("form",{}),await C()};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 UY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?EM(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new VY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?EM(X,this._basePath):X};doc=($,F)=>{return this.get($,(X)=>{let J=typeof F==="function"?F(X):F;try{let 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:M2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:M2(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})}};jO(_);function EM(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[M2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function CM(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function RM(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}vD();var OM=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],kc=OM.map(([D])=>D);function NY(D){if(!kc.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"),OM.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var vc=_.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),gc=_.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"]),hc=_.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),LY=_.object({url:_.string().optional(),content:_.union([_.string(),_.record(_.any()),_.function().returns(_.record(_.any())),_.null()]).optional(),title:_.string().optional(),slug:_.string().optional()}),xc=_.object({basePath:_.string()}),ZM=_.object({authentication:_.any().optional(),baseServerURL:_.string().optional(),hideClientButton:_.boolean().optional().default(!1).catch(!1),proxyUrl:_.string().optional(),searchHotKey:gc.optional(),servers:_.array(_.any()).optional(),showSidebar:_.boolean().optional().default(!0).catch(!0),spec:LY.optional(),theme:vc.optional().default("default").catch("default"),_integration:hc.optional()}),MM="https://api.scalar.com/request-proxy",PY="https://proxy.scalar.com",qM=ZM.merge(_.object({layout:_.enum(["modern","classic"]).optional().default("modern").catch("modern"),proxy:_.string().optional(),isEditable:_.boolean().optional().default(!1).catch(!1),hideModels:_.boolean().optional().default(!1).catch(!1),hideDownloadButton:_.boolean().optional().default(!1).catch(!1),hideTestRequestButton:_.boolean().optional().default(!1).catch(!1),hideSearch:_.boolean().optional().default(!1).catch(!1),darkMode:_.boolean().optional(),forceDarkModeState:_.enum(["dark","light"]).optional(),hideDarkModeToggle:_.boolean().optional().default(!1).catch(!1),metaData:_.any().optional(),favicon:_.string().optional(),hiddenClients:_.union([_.record(_.union([_.boolean(),_.array(_.string())])),_.array(_.string()),_.literal(!0)]).optional(),defaultHttpClient:_.object({targetKey:_.custom(),clientKey:_.string()}).optional(),customCss:_.string().optional(),onSpecUpdate:_.function().args(_.string()).returns(_.void()).optional(),onServerChange:_.function().args(_.string()).returns(_.void()).optional(),pathRouting:xc.optional(),generateHeadingSlug:_.function().args(_.object({slug:_.string().default("headingSlug")})).returns(_.string()).optional(),generateModelSlug:_.function().args(_.object({name:_.string().default("modelName")})).returns(_.string()).optional(),generateTagSlug:_.function().args(_.object({name:_.string().default("tagName")})).returns(_.string()).optional(),generateOperationSlug:_.function().args(_.object({path:_.string(),operationId:_.string().optional(),method:_.string(),summary:_.string().optional()})).returns(_.string()).optional(),generateWebhookSlug:_.function().args(_.object({name:_.string(),method:_.string().optional()})).returns(_.string()).optional(),onLoaded:_.function().returns(_.void()).optional(),redirect:_.function().args(_.string()).returns(_.string().nullable().optional()).optional(),withDefaultFonts:_.boolean().optional().default(!0).catch(!0),defaultOpenAllTags:_.boolean().optional(),tagsSorter:_.union([_.literal("alpha"),_.function().args(_.any(),_.any()).returns(_.number())]).optional(),operationsSorter:_.union([_.literal("alpha"),_.literal("method"),_.function().args(_.any(),_.any()).returns(_.number())]).optional()})),yc=qM.merge(_.object({spec:_.object({sources:_.array(LY)})})),NM=(D)=>{let $={...D};if($.customCss)$.customCss=NY($.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===MM)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${MM}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${PY}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${PY}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=PY;return $},jY=qM.transform(NM),uc=yc.transform(NM);vD();var zY=_.object({cdn:_.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:_.string().optional().default("Scalar API Reference")});var PM=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,Y=zY.parse({cdn:F,pageTitle:X,customTheme:$}),G=jY.parse(J);return`
326
+ `);let $="<workerId>",F=r0($),X=h9($),J=LO.join(D.home,".env"),Y=LO.join(D.home,"worker.db"),G=[["AGENT.md",G$($)],["SOUL.md",Y$($)],["USER.md",B$($)],["MEMORY.md",J$($)],["ROLLUP.md",hY($)],["mcp.json",xY($)],["worker.db",Y],["local/.env",J],["workspaces/",X],["worker home",F]];for(let[B,H]of G){let U=Ac(H)?"\u2713":"\xB7";jO.stdout.write(` ${U} ${B.padEnd(14)} ${H}
327
+ `)}return 0}import g9 from"process";function P9(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 XD(D,$){var F;return((F=D===null||D===void 0?void 0:D._def)===null||F===void 0?void 0:F.typeName)===$}function Kc(D){return"_def"in D}function q9(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 wO(D){if(typeof D.ZodType.prototype.openapi<"u")return;D.ZodType.prototype.openapi=function(J,Y){var G,B,H,W,U,V;let Q=typeof J==="string"?Y:J,K=Q!==null&&Q!==void 0?Q:{},{param:C}=K,E=P9(K,["param"]),A=Object.assign(Object.assign({},(G=this._def.openapi)===null||G===void 0?void 0:G._internal),typeof J==="string"?{refId:J}:void 0),Z=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)||C?{param:Object.assign(Object.assign({},(V=(U=this._def.openapi)===null||U===void 0?void 0:U.metadata)===null||V===void 0?void 0:V.param),C)}:void 0),P=new this.constructor(Object.assign(Object.assign({},this._def),{openapi:Object.assign(Object.assign({},Object.keys(A).length>0?{_internal:A}:void 0),Object.keys(Z).length>0?{metadata:Z}:void 0)}));if(XD(this,"ZodObject")){let N=this.extend;P.extend=function(...S){var z,L,b,I,o,_D,BD;let a=N.apply(this,S);return a._def.openapi={_internal:{extendedFrom:((L=(z=this._def.openapi)===null||z===void 0?void 0:z._internal)===null||L===void 0?void 0:L.refId)?{refId:(I=(b=this._def.openapi)===null||b===void 0?void 0:b._internal)===null||I===void 0?void 0:I.refId,schema:this}:(_D=(o=this._def.openapi)===null||o===void 0?void 0:o._internal)===null||_D===void 0?void 0:_D.extendedFrom},metadata:(BD=a._def.openapi)===null||BD===void 0?void 0:BD.metadata},a}}return P},q9(D,"optional"),q9(D,"nullable"),q9(D,"default"),q9(D,"transform"),q9(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,U;H._def.openapi=(U=(W=J[B])===null||W===void 0?void 0:W._def)===null||U===void 0?void 0:U.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 c5(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)=>c5(D[X],$[X]))}class TO{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)=>c5(J,D)))F.push(D)}contains(D){let $=this.hashCodeOf(D),F=this.buckets.get($);if(!F)return!1;return F.some((X)=>c5(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 L9(D){return D===void 0}function j9(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{F[X]=$(J)}),F}function Ec(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$.some((Y)=>Y===X))F[X]=J}),F}function u6(D,$){let F={};return Object.entries(D).forEach(([X,J])=>{if(!$(J,X))F[X]=J}),F}function IO(D){return D.filter(($)=>!L9($))}var HY=c5;function Cc(D){let $=new TO;return D.forEach((F)=>$.put(F)),[...$.values()]}function SO(D){return typeof D==="string"}class WY{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 I9{constructor(D){this.message=D}}class y6 extends I9{constructor(D,$){super(D);this.data=$}}class z9 extends I9{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 N9(D,$){try{return D()}catch(F){if(F instanceof z9)throw new z9(Object.assign(Object.assign({},F.data),$));throw F}}class bO extends I9{constructor(D){super("Unknown zod object type, please specify `type` and other OpenAPI props using `ZodSchema.openapi`.");this.data=D}}class qD{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 u6(Ec(D,["param"]),L9)}static buildParameterMetadata(D){return u6(D,L9)}static applySchemaMetadata(D,$){return u6(Object.assign(Object.assign({},D),this.buildSchemaMetadata($)),L9)}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($&&XD(D,$))return D;if(XD(D,"ZodOptional")||XD(D,"ZodNullable")||XD(D,"ZodBranded"))return this.unwrapUntil(D.unwrap(),$);if(XD(D,"ZodDefault")||XD(D,"ZodReadonly"))return this.unwrapUntil(D._def.innerType,$);if(XD(D,"ZodEffects"))return this.unwrapUntil(D._def.schema,$);if(XD(D,"ZodPipeline"))return this.unwrapUntil(D._def.in,$);return $?void 0:D}static isOptionalSchema(D){return D.isOptional()}}class fO{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 kO{transform(D){return Object.assign(Object.assign({},D("string")),{pattern:"^d+$"})}}class vO{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)=>qD.getRefId(J)===void 0))return;let X={};return D.forEach((J)=>{var Y;let G=qD.getRefId(J),B=(Y=J.shape)===null||Y===void 0?void 0:Y[$];if(XD(B,"ZodEnum")||XD(B,"ZodNativeEnum")){Object.values(B.enum).filter(SO).forEach((U)=>{X[U]=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 gO{transform(D,$){return Object.assign(Object.assign({},$("string")),{enum:D._def.values})}}class hO{transform(D,$,F,X){let Y={allOf:this.flattenIntersectionTypes(D).map(X)};if($)return{anyOf:F([Y],$)};return Y}flattenIntersectionTypes(D){if(!XD(D,"ZodIntersection"))return[D];let $=this.flattenIntersectionTypes(D._def.left),F=this.flattenIntersectionTypes(D._def.right);return[...$,...F]}}class xO{transform(D,$){return Object.assign(Object.assign({},$(typeof D._def.value)),{enum:[D._def.value]})}}function Rc(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 yO{transform(D,$){let{type:F,values:X}=Rc(D._def.values);if(F==="mixed")throw new I9("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 uO{transform(D,$,F){return Object.assign(Object.assign({},$(D.isInt?"integer":"number")),F(D._def.checks))}}class mO{transform(D,$,F,X){var J;let Y=(J=qD.getInternalMetadata(D))===null||J===void 0?void 0:J.extendedFrom,G=this.requiredKeysOf(D),B=j9(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),U=j9(H===null||H===void 0?void 0:H._def.shape(),X),V=Object.fromEntries(Object.entries(B).filter(([C,E])=>{return!HY(U[C],E)})),Q=G.filter((C)=>!W.includes(C)),K=Object.assign(Object.assign(Object.assign(Object.assign({},F("object")),{default:$,properties:V}),Q.length>0?{required:Q}:{}),this.generateAdditionalProperties(D,X));return{allOf:[{$ref:`#/components/schemas/${Y.refId}`},K]}}generateAdditionalProperties(D,$){let F=D._def.unknownKeys,X=D._def.catchall;if(XD(X,"ZodNever")){if(F==="strict")return{additionalProperties:!1};return{}}return{additionalProperties:$(X)}}requiredKeysOf(D){return Object.entries(D._def.shape()).filter(([$,F])=>!qD.isOptionalSchema(F)).map(([$,F])=>$)}}class pO{transform(D,$,F){let X=D._def.valueType,J=D._def.keyType,Y=F(X);if(XD(J,"ZodEnum")||XD(J,"ZodNativeEnum")){let B=Object.values(J.enum).filter(SO).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 cO{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 dO{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 lO{transform(D,$,F){let J=this.flattenUnionTypes(D).map((Y)=>{let G=this.unwrapNullable(Y);return F(G)});return{anyOf:$(J)}}flattenUnionTypes(D){if(!XD(D,"ZodUnion"))return[D];return D._def.options.flatMap((F)=>this.flattenUnionTypes(F))}unwrapNullable(D){if(XD(D,"ZodNullable"))return this.unwrapNullable(D.unwrap());return D}}class iO{constructor(D){this.versionSpecifics=D,this.objectTransformer=new mO,this.stringTransformer=new cO,this.numberTransformer=new uO,this.bigIntTransformer=new kO,this.literalTransformer=new xO,this.enumTransformer=new gO,this.nativeEnumTransformer=new yO,this.arrayTransformer=new fO,this.unionTransformer=new lO,this.discriminatedUnionTransformer=new vO,this.intersectionTransformer=new hO,this.recordTransformer=new pO,this.tupleTransformer=new dO(D)}transform(D,$,F,X,J){if(XD(D,"ZodNull"))return this.versionSpecifics.nullType;if(XD(D,"ZodUnknown")||XD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(XD(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(XD(D,"ZodUnknown")||XD(D,"ZodAny"))return this.versionSpecifics.mapNullableType(void 0,$);if(XD(D,"ZodString"))return this.stringTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodNumber"))return this.numberTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),(Y)=>this.versionSpecifics.getNumberChecks(Y));if(XD(D,"ZodBigInt"))return this.bigIntTransformer.transform((Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodBoolean"))return this.versionSpecifics.mapNullableType("boolean",$);if(XD(D,"ZodLiteral"))return this.literalTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodEnum"))return this.enumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodNativeEnum"))return this.nativeEnumTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$));if(XD(D,"ZodArray"))return this.arrayTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodTuple"))return this.tupleTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodUnion"))return this.unionTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(XD(D,"ZodDiscriminatedUnion"))return this.discriminatedUnionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F,X);if(XD(D,"ZodIntersection"))return this.intersectionTransformer.transform(D,$,(Y)=>this.versionSpecifics.mapNullableOfArray(Y,$),F);if(XD(D,"ZodRecord"))return this.recordTransformer.transform(D,(Y)=>this.versionSpecifics.mapNullableType(Y,$),F);if(XD(D,"ZodDate"))return this.versionSpecifics.mapNullableType("string",$);let J=qD.getRefId(D);throw new bO({currentSchema:D._def,schemaName:J})}}class _Y{constructor(D,$){this.definitions=D,this.versionSpecifics=$,this.schemaRefs={},this.paramRefs={},this.pathRefs={},this.rawComponents=[],this.openApiTransformer=new iO($),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 $=qD.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 y6(`Conflicting location for parameter ${H.name}`,{key:"in",values:IO([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 y6("Conflicting names for parameter",{key:"name",values:IO([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=qD.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(XD(D,"ZodObject")){let G=D._def.shape();return Object.entries(G).map(([H,W])=>{var U,V;let Q=qD.getMetadata(W),K=this.getParameterRef(Q,{in:$,name:H});if(K)return K;let C=(U=Q===null||Q===void 0?void 0:Q.metadata)===null||U===void 0?void 0:U.param;if((C===null||C===void 0?void 0:C.name)&&C.name!==H)throw new y6("Conflicting names for parameter",{key:"name",values:[H,C.name]});if((C===null||C===void 0?void 0:C.in)&&C.in!==$)throw new y6(`Conflicting location for parameter ${(V=C.name)!==null&&V!==void 0?V:H}`,{key:"in",values:[$,C.in]});return this.generateParameter(W.openapi({param:{name:H,in:$}}))})}if((J===null||J===void 0?void 0:J.in)&&J.in!==$)throw new y6(`Conflicting location for parameter ${J.name}`,{key:"in",values:[$,J.in]});return[this.generateParameter(D.openapi({param:{in:$}}))]}generateSimpleParameter(D){var $;let F=qD.getParamMetadata(D),X=($=F===null||F===void 0?void 0:F.metadata)===null||$===void 0?void 0:$.param,J=!qD.isOptionalSchema(D)&&!D.isNullable(),Y=this.generateSchemaWithRef(D);return Object.assign({schema:Y,required:J},X?qD.buildParameterMetadata(X):{})}generateParameter(D){var $;let F=qD.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 z9({missingField:"name"});if(!Y)throw new z9({missingField:"in",paramName:J});let G=this.generateSimpleParameter(D);return Object.assign(Object.assign({},G),{in:Y,name:J})}generateSchemaWithMetadata(D){var $;let F=qD.unwrapChained(D),X=qD.getMetadata(D),J=qD.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)?qD.applySchemaMetadata(Y,X.metadata):u6(Y,L9)}constructReferencedOpenAPISchema(D){var $;let F=qD.getMetadata(D),X=qD.unwrapChained(D),J=qD.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=qD.getMetadata(D),X=qD.getRefId(D);if(!X||!this.schemaRefs[X])return this.generateSchemaWithMetadata(D);let J=this.schemaRefs[X],Y={$ref:this.generateSchemaRef(X)},G=u6(qD.buildSchemaMetadata(($=F===null||F===void 0?void 0:F.metadata)!==null&&$!==void 0?$:{}),(W,U)=>W===void 0||HY(W,J[U]));if(G.type)return{allOf:[Y,G]};let B=u6(this.constructReferencedOpenAPISchema(D),(W,U)=>W===void 0||HY(W,J[U])),H=qD.applySchemaMetadata(B,G);if(Object.keys(H).length>0)return{allOf:[Y,H]};return Y}generateSchemaWithRef(D){let $=qD.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=P9(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=N9(()=>F?this.generateInlineParameters(F,"query"):[],{location:"query"}),G=N9(()=>X?this.generateInlineParameters(X,"path"):[],{location:"path"}),B=N9(()=>J?this.generateInlineParameters(J,"cookie"):[],{location:"cookie"}),H=N9(()=>{if(Array.isArray($))return $.flatMap((U)=>this.generateInlineParameters(U,"header"));let W=this.cleanParameter($);return W?this.generateInlineParameters(W,"header"):[]},{location:"header"});return[...G,...Y,...H,...B]}cleanParameter(D){if(!D)return;return XD(D,"ZodEffects")?this.cleanParameter(D._def.schema):D}generatePath(D){let{method:$,path:F,request:X,responses:J}=D,Y=P9(D,["method","path","request","responses"]),G=j9(J,(U)=>{return this.getResponse(U)}),B=N9(()=>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=P9(D,["content","headers"]),J=$?{content:this.getBodyContent($)}:{};if(!F)return Object.assign(Object.assign({},X),J);let Y=XD(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 j9($,(X)=>this.generateSimpleParameter(X))}getBodyContent(D){return j9(D,($)=>{if(!$||!Kc($.schema))return $;let{schema:F}=$,X=P9($,["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 nO{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 $=Cc(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 UY{constructor(D){let $=new nO;this.generator=new _Y(D,$)}generateDocument(D){let $=this.generator.generateDocumentData();return Object.assign(Object.assign({},D),$)}generateComponents(){return this.generator.generateComponents()}}class sO{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 Oc(D){return"type"in D&&D.type==="webhook"}class VY{constructor(D){this.definitions=D,this.webhookRefs={};let $=new sO;this.generator=new _Y(this.definitions,$)}generateDocument(D){let $=this.generator.generateDocumentData();return this.definitions.filter(Oc).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 AY=(D)=>{let $=D.split("/");if($[0]==="")$.shift();return $},rO=(D)=>{let{groups:$,path:F}=Mc(D),X=AY(F);return Zc(X,$)},Mc=(D)=>{let $=[];return D=D.replace(/\{[^}]+\}/g,(F,X)=>{let J=`@${X}`;return $.push([J,F]),J}),{groups:$,path:D}},Zc=(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},d5={},oO=(D,$)=>{if(D==="*")return"*";let F=D.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/);if(F){let X=`${D}#${$}`;if(!d5[X])if(F[2])d5[X]=$&&$[0]!==":"&&$[0]!=="*"?[X,F[1],new RegExp(`^${F[2]}(?=/${$})`)]:[D,F[1],new RegExp(`^${F[2]}$`)];else d5[X]=[D,F[1],!0];return d5[X]}return null},m6=(D,$)=>{try{return $(D)}catch{return D.replace(/(?:%[0-9A-Fa-f]{2})+/g,(F)=>{try{return $(F)}catch{return F}})}},qc=(D)=>m6(D,decodeURI),KY=(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 qc(H.includes("%25")?H.replace(/%25/g,"%2525"):H)}else if(J===63||J===35)break}return $.slice(F,X)};var aO=(D)=>{let $=KY(D);return $.length>1&&$.at(-1)==="/"?$.slice(0,-1):$},M2=(D,$,...F)=>{if(F.length)$=M2($,...F);return`${D?.[0]==="/"?"":"/"}${D}${$==="/"?"":`${D?.at(-1)==="/"?"":"/"}${$?.[0]==="/"?$.slice(1):$}`}`},l5=(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)},QY=(D)=>{if(!/[%+]/.test(D))return D;if(D.indexOf("+")!==-1)D=D.replace(/\+/g," ");return D.indexOf("%")!==-1?m6(D,w9):D},tO=(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 QY(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=QY(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=QY(W);if(F){if(!(J[H]&&Array.isArray(J[H])))J[H]=[];J[H].push(W)}else J[H]??=W}return $?J[$]:J},eO=tO,DM=(D,$)=>{return tO(D,$,!0)},w9=decodeURIComponent;var Nc=/^[\w!#$%&'*.^`|~+-]+$/,Pc=/^[ !#-:<-[\]-~]*$/,$M=(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)},EY=(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=$M(J.substring(0,Y));if($&&$!==G||!Nc.test(G))continue;let B=$M(J.substring(Y+1));if(B.startsWith('"')&&B.endsWith('"'))B=B.slice(1,-1);if(Pc.test(B)){if(X[G]=B.indexOf("%")!==-1?m6(B,w9):B,$)break}}return X};var FM=(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 EY(X,Y)[Y]}if(!X)return{};return EY(X)};var i5=class extends Error{res;status;constructor(D=500,$){super($?.message,{cause:$?.cause});this.res=$?.res,this.status=D}getResponse(){if(this.res)return new Response(this.res.body,{status:this.status,headers:this.res.headers});return new Response(this.message,{status:this.status})}};var XM=(D,$)=>{return new Response(D,{headers:{"Content-Type":$}}).formData()};var Lc=/^application\/([a-z-\.]+\+)?json(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,jc=/^multipart\/form-data(;\s?boundary=[a-zA-Z0-9'"()+_,\-./:=?]+)?$/,zc=/^application\/x-www-form-urlencoded(;\s*[a-zA-Z0-9\-]+\=([^;]+))*$/,CY=(D,$)=>{return async(F,X)=>{let J={},Y=F.req.header("Content-Type");switch(D){case"json":if(!Y||!Lc.test(Y))break;try{J=await F.req.json()}catch{throw new i5(400,{message:"Malformed JSON in request body"})}break;case"form":{if(!Y||!(jc.test(Y)||zc.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 XM(W,Y),F.req.bodyCache.formData=B}catch(W){let U="Malformed FormData request.";throw U+=W instanceof Error?` ${W.message}`:` ${String(W)}`,new i5(400,{message:U})}let H=Object.create(null);B.forEach((W,U)=>{if(U.endsWith("[]"))(H[U]??=[]).push(W);else if(Array.isArray(H[U]))H[U].push(W);else if(Object.hasOwn(H,U))H[U]=[H[U],W];else H[U]=W}),J=H;break}case"query":J=Object.fromEntries(Object.entries(F.req.queries()).map(([B,H])=>{return H.length===1?[B,H[0]]:[B,H]}));break;case"param":J=F.req.param();break;case"header":J=F.req.header();break;case"cookie":J=FM(F);break}let G=await $(J,F);if(G instanceof Response)return G;return F.req.addValidatedData(D,G),await X()}};function Ic(D,$,F,X){return CY(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((U)=>[U.toLowerCase(),U]));G=Object.fromEntries(Object.entries(J).map(([U,V])=>[W[U]||U,V]))}let B=X&&X.validationFunction?await X.validationFunction($,G):await $.safeParseAsync(G);if(F){let H=await F({data:G,...B,target:D},Y);if(H){if(H instanceof Response)return H;if("response"in H)return H.response}}if(!B.success)return Y.json(B,400);return B.data})}var P1=Ic;var RY=(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,U;if(D[B])U=D[B][0][0],X.req.routeIndex=B;else U=B===D.length&&J||void 0;if(U)try{H=await U(X,()=>G(B+1))}catch(V){if(V instanceof Error&&$)X.error=V,H=await $(V,X),W=!0;else throw V}else if(X.finalized===!1&&F)H=await F(X);if(H&&(X.finalized===!1||W))X.res=H;return X}}};var JM=Symbol();var GM=async(D,$=Object.create(null))=>{let{all:F=!1,dot:X=!1}=$,Y=(D instanceof n5?D.raw.headers:D.headers).get("Content-Type");if(Y?.startsWith("multipart/form-data")||Y?.startsWith("application/x-www-form-urlencoded"))return wc(D,{all:F,dot:X});return{}};async function wc(D,$){let F=await D.formData();if(F)return Tc(F,$);return{}}function Tc(D,$){let F=Object.create(null);if(D.forEach((X,J)=>{if(!($.all||J.endsWith("[]")))F[J]=X;else Sc(F,J,X)}),$.dot)Object.entries(F).forEach(([X,J])=>{if(X.includes("."))bc(F,X,J),delete F[X]});return F}var Sc=(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]},bc=(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 YM=(D)=>m6(D,w9),n5=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)?YM(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)?YM(X):X}return D}#J(D){return this.#$[1]?this.#$[1][D]:D}query(D){return eO(this.url,D)}queries(D){return DM(this.url,D)}header(D){if(D)return this.raw.headers.get(D)??void 0;let $={};return this.raw.headers.forEach((F,X)=>{$[X]=F}),$}async parseBody(D){return GM(this,D)}#F=(D)=>{let{bodyCache:$,raw:F}=this,X=$[D];if(X)return X;let J=Object.keys($)[0];if(J)return $[J].then((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[JM](){return this.#$}get matchedRoutes(){return this.#$[0].map(([[,D]])=>D)}get routePath(){return this.#$[0].map(([[,D]])=>D)[this.routeIndex].path}};var s5={Stringify:1,BeforeStream:2,Stream:3},fc=(D,$)=>{let F=new String(D);return F.isEscaped=!0,F.callbacks=$,F};var T9=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)=>T9(H,$,!1,X,J))).then(()=>J[0]));if(F)return fc(await G,Y);else return G};var BM="text/plain; charset=UTF-8",OY=(D,$)=>{return{"Content-Type":D,...$}},S9=(D,$)=>new Response(D,$),HM=class{#D;#$;env={};#X;finalized=!1;error;#G;#J;#F;#W;#H;#B;#Y;#U;#V;constructor(D,$){if(this.#D=D,$)this.#J=$.executionCtx,this.env=$.env,this.#B=$.notFoundHandler,this.#V=$.path,this.#U=$.matchResult}get req(){return this.#$??=new n5(this.#D,this.#V,this.#U),this.#$}get event(){if(this.#J&&"respondWith"in this.#J)return this.#J;else throw Error("This context has no FetchEvent")}get executionCtx(){if(this.#J)return this.#J;else throw Error("This context has no ExecutionContext")}get res(){return this.#F||=S9(null,{headers:this.#Y??=new Headers})}set res(D){if(this.#F&&D){D=S9(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=S9(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)}#_(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 S9(D,{status:J,headers:X})}newResponse=(...D)=>this.#_(...D);body=(D,$,F)=>this.#_(D,$,F);text=(D,$,F)=>{return!this.#Y&&!this.#G&&!$&&!F&&!this.finalized?new Response(D):this.#_(D,$,OY(BM,F))};json=(D,$,F)=>{return this.#_(JSON.stringify(D),$,OY("application/json",F))};html=(D,$,F)=>{let X=(J)=>this.#_(J,$,OY("text/html; charset=UTF-8",F));return typeof D==="object"?T9(D,s5.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??=()=>S9(),this.#B(this)}};var RD="ALL",WM="all",_M=["get","post","put","delete","options","patch"],r5="Can not add a route since the matcher is already built.",o5=class extends Error{};var UM="__COMPOSED_HANDLER";var kc=(D)=>{return D.text("404 Not Found",404)},VM=(D,$)=>{if("getResponse"in D){let F=D.getResponse();return $.newResponse(F.body,F)}return console.error(D),$.text("Internal Server Error",500)},QM=class D{get;post;put;delete;options;patch;all;on;use;router;getPath;_basePath="/";#D="/";routes=[];constructor($={}){[..._M,WM].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((U)=>{this.#G(W.toUpperCase(),this.#D,U)})}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(RD,this.#D,B)}),this};let{strict:X,...J}=$;Object.assign(this,J),this.getPath=X??!0?$.getPath??KY:aO}#$(){let $=new D({router:this.router,getPath:this.getPath});return $.errorHandler=this.errorHandler,$.#X=this.#X,$.routes=this.routes,$}#X=kc;errorHandler=VM;route($,F){let X=this.basePath($);return F.routes.map((J)=>{let Y;if(F.errorHandler===VM)Y=J.handler;else Y=async(G,B)=>(await RY([],F.errorHandler)(G,()=>J.handler(G,B))).res,Y[UM]=J.handler;X.#G(J.method,J.path,Y)}),this}basePath($){let F=this.#$();return F._basePath=M2(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=M2(this._basePath,$),W=H==="/"?0:H.length;return(U)=>{let V=new URL(U.url);return V.pathname=V.pathname.slice(W)||"/",new Request(V,U)}})();let B=async(H,W)=>{let U=await F(J(H.req.raw),...G(H));if(U)return U;await W()};return this.#G(RD,M2($,"*"),B),this}#G($,F,X){$=$.toUpperCase(),F=M2(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 HM($,{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(U){return this.#J(U,B)}return W instanceof Promise?W.then((U)=>U||(B.finalized?B.res:this.#X(B))).catch((U)=>this.#J(U,B)):W??this.#X(B)}let H=RY(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${M2("/",$)}`,F),X,J)};fire=()=>{addEventListener("fetch",($)=>{$.respondWith(this.#F($.request,$,void 0,$.request.method))})}};var b9=[];function a5(D,$){let F=this.buildAllMatchers(),X=(J,Y)=>{let G=F[J]||F[RD],B=G[2][Y];if(B)return B;let H=Y.match(G[0]);if(!H)return[[],b9];let W=H.indexOf("",1);return[G[1][W],H]};return this.match=X,X(D,$)}var t5="[^/]+",f9=".*",k9="(?:|/.*)",L1=Symbol(),vc=new Set(".\\+*[^]$()");function gc(D,$){if(D.length===1)return $.length===1?D<$?-1:1:-1;if($.length===1)return 1;if(D===f9||D===k9)return 1;else if($===f9||$===k9)return-1;if(D===t5)return 1;else if($===t5)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 L1;if(Y)return;this.#D=F;return}let[G,...B]=$,H=G==="*"?B.length===0?["","",f9]:["","",t5]:G==="/*"?["","",k9]:G.match(/^\:([^\{\}]+)(?:\{(.+)\})?$/),W;if(H){let U=H[1],V=H[2]||t5;if(U&&H[2]){if(V===".*")throw L1;if(V=V.replace(/^\((?!\?:)(?=[^)]+\)$)/,"(?:"),/\((?!\?:)/.test(V))throw L1}if(W=this.#X[V],!W){if(Object.keys(this.#X).some((Q)=>Q!==f9&&Q!==k9))throw L1;if(Y)return;if(W=this.#X[V]=new D,U!=="")W.#$=J.varIndex++}if(!Y&&U!=="")X.push([U,W.#$])}else if(W=this.#X[G],!W){if(Object.keys(this.#X).some((U)=>U.length>1&&U!==f9&&U!==k9))throw L1;if(Y)return;W=this.#X[G]=new D}W.insert(B,F,X,J,Y)}buildRegExpStr(){let F=Object.keys(this.#X).sort(gc).map((X)=>{let J=this.#X[X];return(typeof J.#$==="number"?`(${X})@${J.#$}`:vc.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 KM=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 hc=[/^$/,[],Object.create(null)],EM=Object.create(null);function CM(D){return EM[D]??=new RegExp(D==="*"?"":`^${D.replace(/\/\*$|([.\\+*[^\]$()])/g,($,F)=>F?`\\${F}`:"(?:|/.*)")}$`)}function xc(){EM=Object.create(null)}function yc(D){let $=new KM,F=[];if(D.length===0)return hc;let X=D.map((W)=>[!/\*|\/:/.test(W[0]),...W]).sort(([W,U],[V,Q])=>W?1:V?-1:U.length-Q.length),J=Object.create(null);for(let W=0,U=-1,V=X.length;W<V;W++){let[Q,K,C]=X[W];if(Q)J[K]=[C.map(([A])=>[A,Object.create(null)]),b9];else U++;let E;try{E=$.insert(K,U,Q)}catch(A){throw A===L1?new o5(K):A}if(Q)continue;F[U]=C.map(([A,Z])=>{let P=Object.create(null);Z-=1;for(;Z>=0;Z--){let[N,S]=E[Z];P[N]=S}return[A,P]})}let[Y,G,B]=$.buildRegExp();for(let W=0,U=F.length;W<U;W++)for(let V=0,Q=F[W].length;V<Q;V++){let K=F[W][V]?.[1];if(!K)continue;let C=Object.keys(K);for(let E=0,A=C.length;E<A;E++)K[C[E]]=B[K[C[E]]]}let H=[];for(let W in G)H[W]=F[G[W]];return[Y,H,J]}function p6(D,$){if(!D)return;for(let F of Object.keys(D).sort((X,J)=>J.length-X.length))if(CM(F).test($))return[...D[F]];return}var e5=class{name="RegExpRouter";#D;#$;constructor(){this.#D={[RD]:Object.create(null)},this.#$={[RD]:Object.create(null)}}add(D,$,F){let X=this.#D,J=this.#$;if(!X||!J)throw Error(r5);if(!X[D])[X,J].forEach((B)=>{B[D]=Object.create(null),Object.keys(B[RD]).forEach((H)=>{B[D][H]=[...B[RD][H]]})});if($==="/*")$="*";let Y=($.match(/\/:/g)||[]).length;if(/\*$/.test($)){let B=CM($);if(D===RD)Object.keys(X).forEach((H)=>{X[H][$]||=p6(X[H],$)||p6(X[RD],$)||[]});else X[D][$]||=p6(X[D],$)||p6(X[RD],$)||[];Object.keys(X).forEach((H)=>{if(D===RD||D===H)Object.keys(X[H]).forEach((W)=>{B.test(W)&&X[H][W].push([F,Y])})}),Object.keys(J).forEach((H)=>{if(D===RD||D===H)Object.keys(J[H]).forEach((W)=>B.test(W)&&J[H][W].push([F,Y]))});return}let G=l5($)||[$];for(let B=0,H=G.length;B<H;B++){let W=G[B];Object.keys(J).forEach((U)=>{if(D===RD||D===U)J[U][W]||=[...p6(X[U],W)||p6(X[RD],W)||[]],J[U][W].push([F,Y-H+B+1])})}}match=a5;buildAllMatchers(){let D=Object.create(null);return Object.keys(this.#$).concat(Object.keys(this.#D)).forEach(($)=>{D[$]||=this.#X($)}),this.#D=this.#$=void 0,xc(),D}#X(D){let $=[],F=D===RD;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!==RD)$.push(...Object.keys(X[RD]).map((Y)=>[Y,X[RD][Y]]))}),!F)return null;else return yc($)}};var uc=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[RD],Y={};for(let G in J[2])Y[G]=[J[2][G][0].slice(),b9];this.#D[D]=[J[0],J[1].map((G)=>Array.isArray(G)?G.slice():0),Y]}if($==="/*"||$==="*"){let J=[F,{}];if(D===RD)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===RD)for(let G in this.#D)this.#G(G,$,F,J,Y);else this.#G(D,$,F,J,Y)}buildAllMatchers(){return this.#D}match=a5};var MY=class{name="SmartRouter";#D=[];#$=[];constructor(D){this.#D=D.routers}add(D,$,F){if(!this.#$)throw Error(r5);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 o5)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 v9=Object.create(null),mc=(D)=>{for(let $ in D)return!0;return!1},RM=class D{#D;#$;#X;#G=0;#J=v9;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=rO(F),G=[];for(let B=0,H=Y.length;B<H;B++){let W=Y[B],U=Y[B+1],V=oO(W,U),Q=Array.isArray(V)?V[0]:W;if(Q in J.#$){if(J=J.#$[Q],V)G.push(V[1]);continue}if(J.#$[Q]=new D,V)J.#X.push(V),G.push(V[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[RD],U={};if(W!==void 0){if(W.params=Object.create(null),$.push(W),J!==v9||Y&&Y!==v9)for(let V=0,Q=W.possibleKeys.length;V<Q;V++){let K=W.possibleKeys[V],C=U[W.score];W.params[K]=Y?.[K]&&!C?Y[K]:J[K]??Y?.[K],U[W.score]=!0}}}}search($,F){let X=[];this.#J=v9;let Y=[this],G=AY(F),B=[],H=G.length,W=null;for(let U=0;U<H;U++){let V=G[U],Q=U===H-1,K=[];for(let E=0,A=Y.length;E<A;E++){let Z=Y[E],P=Z.#$[V];if(P)if(P.#J=Z.#J,Q){if(P.#$["*"])this.#F(X,P.#$["*"],$,Z.#J);this.#F(X,P,$,Z.#J)}else K.push(P);for(let N=0,S=Z.#X.length;N<S;N++){let z=Z.#X[N],L=Z.#J===v9?{}:{...Z.#J};if(z==="*"){let BD=Z.#$["*"];if(BD)this.#F(X,BD,$,Z.#J),BD.#J=L,K.push(BD);continue}let[b,I,o]=z;if(!V&&!(o instanceof RegExp))continue;let _D=Z.#$[b];if(o instanceof RegExp){if(W===null){W=Array(H);let dD=F[0]==="/"?1:0;for(let Z2=0;Z2<H;Z2++)W[Z2]=dD,dD+=G[Z2].length+1}let BD=F.substring(W[U]),a=o.exec(BD);if(a){if(L[I]=a[0],this.#F(X,_D,$,Z.#J,L),mc(_D.#$)){_D.#J=L;let dD=a[0].match(/\//)?.length??0;(B[dD]||=[]).push(_D)}continue}}if(o===!0||o.test(V))if(L[I]=V,Q){if(this.#F(X,_D,$,L,Z.#J),_D.#$["*"])this.#F(X,_D.#$["*"],$,L,Z.#J)}else _D.#J=L,K.push(_D)}}let C=B.shift();Y=C?K.concat(C):K}if(X.length>1)X.sort((U,V)=>{return U.score-V.score});return[X.map(({handler:U,params:V})=>[U,V])]}};var ZY=class{name="TrieRouter";#D;constructor(){this.#D=new RM}add(D,$,F){let X=l5($);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 qY=class extends QM{constructor(D={}){super(D);this.router=D.router??new MY({routers:[new e5,new ZY]})}};vD();var n0=class D extends qY{openAPIRegistry;defaultHook;constructor($){super($);this.openAPIRegistry=new WY,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=P1("query",X.request.query,Y);G.push(W)}if(X.request?.params){let W=P1("param",X.request.params,Y);G.push(W)}if(X.request?.headers){let W=P1("header",X.request.headers,Y);G.push(W)}if(X.request?.cookies){let W=P1("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 U=B[W].schema;if(!(U instanceof $D))continue;if(MM(W)){let V=P1("json",U,Y);if(X.request?.body?.required)G.push(V);else{let Q=async(K,C)=>{if(K.req.header("content-type")){if(MM(K.req.header("content-type")))return await V(K,C)}K.req.addValidatedData("json",{}),await C()};G.push(Q)}}if(ZM(W)){let V=P1("form",U,Y);if(X.request?.body?.required)G.push(V);else{let Q=async(K,C)=>{if(K.req.header("content-type")){if(ZM(K.req.header("content-type")))return await V(K,C)}K.req.addValidatedData("form",{}),await C()};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 UY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?OM(X,this._basePath):X};getOpenAPI31Document=($)=>{let X=new VY(this.openAPIRegistry.definitions).generateDocument($);return this._basePath?OM(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:M2(X,F._basePath.replaceAll(/:([^\/]+)/g,"{$1}"),J.route.path)});return}case"webhook":{this.openAPIRegistry.registerWebhook({...J.webhook,path:M2(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})}};wO(_);function OM(D,$){let F={};return Object.keys(D.paths).forEach((X)=>{F[M2($.replaceAll(/:([^\/]+)/g,"{$1}"),X)]=D.paths[X]}),{...D,paths:F}}function MM(D){return/^application\/([a-z-\.]+\+)?json/.test(D)}function ZM(D){return D.startsWith("multipart/form-data")||D.startsWith("application/x-www-form-urlencoded")}vD();var qM=[["--theme-","--scalar-"],["--sidebar-","--scalar-sidebar-"]],pc=qM.map(([D])=>D);function NY(D){if(!pc.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"),qM.reduce((F,[X,J])=>F.replaceAll(X,J),D)}var cc=_.enum(["alternate","default","moon","purple","solarized","bluePlanet","deepSpace","saturn","kepler","elysiajs","fastify","mars","none"]),dc=_.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"]),lc=_.enum(["adonisjs","docusaurus","dotnet","elysiajs","express","fastapi","fastify","go","hono","html","laravel","litestar","nestjs","nextjs","nitro","nuxt","platformatic","react","rust","vue"]).nullable(),LY=_.object({url:_.string().optional(),content:_.union([_.string(),_.record(_.any()),_.function().returns(_.record(_.any())),_.null()]).optional(),title:_.string().optional(),slug:_.string().optional()}),ic=_.object({basePath:_.string()}),PM=_.object({authentication:_.any().optional(),baseServerURL:_.string().optional(),hideClientButton:_.boolean().optional().default(!1).catch(!1),proxyUrl:_.string().optional(),searchHotKey:dc.optional(),servers:_.array(_.any()).optional(),showSidebar:_.boolean().optional().default(!0).catch(!0),spec:LY.optional(),theme:cc.optional().default("default").catch("default"),_integration:lc.optional()}),NM="https://api.scalar.com/request-proxy",PY="https://proxy.scalar.com",LM=PM.merge(_.object({layout:_.enum(["modern","classic"]).optional().default("modern").catch("modern"),proxy:_.string().optional(),isEditable:_.boolean().optional().default(!1).catch(!1),hideModels:_.boolean().optional().default(!1).catch(!1),hideDownloadButton:_.boolean().optional().default(!1).catch(!1),hideTestRequestButton:_.boolean().optional().default(!1).catch(!1),hideSearch:_.boolean().optional().default(!1).catch(!1),darkMode:_.boolean().optional(),forceDarkModeState:_.enum(["dark","light"]).optional(),hideDarkModeToggle:_.boolean().optional().default(!1).catch(!1),metaData:_.any().optional(),favicon:_.string().optional(),hiddenClients:_.union([_.record(_.union([_.boolean(),_.array(_.string())])),_.array(_.string()),_.literal(!0)]).optional(),defaultHttpClient:_.object({targetKey:_.custom(),clientKey:_.string()}).optional(),customCss:_.string().optional(),onSpecUpdate:_.function().args(_.string()).returns(_.void()).optional(),onServerChange:_.function().args(_.string()).returns(_.void()).optional(),pathRouting:ic.optional(),generateHeadingSlug:_.function().args(_.object({slug:_.string().default("headingSlug")})).returns(_.string()).optional(),generateModelSlug:_.function().args(_.object({name:_.string().default("modelName")})).returns(_.string()).optional(),generateTagSlug:_.function().args(_.object({name:_.string().default("tagName")})).returns(_.string()).optional(),generateOperationSlug:_.function().args(_.object({path:_.string(),operationId:_.string().optional(),method:_.string(),summary:_.string().optional()})).returns(_.string()).optional(),generateWebhookSlug:_.function().args(_.object({name:_.string(),method:_.string().optional()})).returns(_.string()).optional(),onLoaded:_.function().returns(_.void()).optional(),redirect:_.function().args(_.string()).returns(_.string().nullable().optional()).optional(),withDefaultFonts:_.boolean().optional().default(!0).catch(!0),defaultOpenAllTags:_.boolean().optional(),tagsSorter:_.union([_.literal("alpha"),_.function().args(_.any(),_.any()).returns(_.number())]).optional(),operationsSorter:_.union([_.literal("alpha"),_.literal("method"),_.function().args(_.any(),_.any()).returns(_.number())]).optional()})),nc=LM.merge(_.object({spec:_.object({sources:_.array(LY)})})),jM=(D)=>{let $={...D};if($.customCss)$.customCss=NY($.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===NM)console.warn(`[DEPRECATED] Warning: configuration.proxyUrl points to our old proxy (${NM}).`),console.warn(`[DEPRECATED] We are overwriting the value and use the new proxy URL (${PY}) instead.`),console.warn(`[DEPRECATED] Action Required: You should manually update your configuration to use the new URL (${PY}). Read more: https://github.com/scalar/scalar`),$.proxyUrl=PY;return $},jY=LM.transform(jM),sc=nc.transform(jM);vD();var zY=_.object({cdn:_.string().optional().default("https://cdn.jsdelivr.net/npm/@scalar/api-reference"),pageTitle:_.string().optional().default("Scalar API Reference")});var zM=(D,$="")=>{let{cdn:F,pageTitle:X,...J}=D,Y=zY.parse({cdn:F,pageTitle:X,customTheme:$}),G=jY.parse(J);return`
324
328
  <!DOCTYPE html>
325
329
  <html>
326
330
  <head>
@@ -334,16 +338,16 @@ ${H.body}`:H.body}).join(`
334
338
  </style>
335
339
  </head>
336
340
  <body>
337
- ${mc(G,Y.cdn)}
341
+ ${rc(G,Y.cdn)}
338
342
  </body>
339
343
  </html>
340
- `};function mc(D,$){return`
344
+ `};function rc(D,$){return`
341
345
  <script
342
346
  id="api-reference"
343
347
  type="application/json"
344
- data-configuration="${pc(D)}">${cc(D)}</script>
348
+ data-configuration="${oc(D)}">${ac(D)}</script>
345
349
  <script src="${$}"></script>
346
- `}var pc=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join("&quot;")},cc=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var dc={_integration:"hono"},lc=`
350
+ `}var oc=(D)=>{let $={...D};if(!$.spec?.url)delete $.spec;else if($.spec?.content)delete $.spec?.content;return JSON.stringify($).split('"').join("&quot;")},ac=(D)=>D.spec?.content?typeof D.spec?.content==="function"?JSON.stringify(D.spec?.content()):JSON.stringify(D.spec?.content):"";var tc={_integration:"hono"},ec=`
347
351
  .light-mode {
348
352
  color-scheme: light;
349
353
  --scalar-color-1: #2a2f45;
@@ -443,11 +447,11 @@ ${H.body}`:H.body}).join(`
443
447
  --scalar-sidebar-search-border-color: transparent;
444
448
  --scalar-sidebar-search-color: var(--scalar-color-3);
445
449
  }
446
- `,IY=(D)=>{let $={...dc,...D};return async(F)=>F.html(`${PM($,lc)}`)};O2();TD();FD();N0();FD();function LM(D,$){if(D instanceof PD)return $.json(D.toJSON(),D.status);return R.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}FD();var jM=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);R.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as wY,sep as ic}from"path";function zM(D){let $=wY(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=nc(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let Y=J===""?"index.html":J,G=wY($,Y);if(G!==$&&!G.startsWith($+ic))return F.text("forbidden",403);let B=Bun.file(G);if(await B.exists())return new Response(B);if(!sc(Y)){let H=Bun.file(wY($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function nc(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function sc(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}O2();N0();FD();function IM(D,$){let F=new n0;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&&T2(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 PD.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((V,Q)=>{W[Q.toLowerCase()]=V});try{await B.verify(H,W,G)}catch(V){return R.warn(`[channel:${Y}] signature verification failed: ${String(V)}`),X.json({ok:!1,error:"signature verification failed"},401)}let U=await B.toEnvelopes(H,$,G);for(let V of U)await J.orchestrator.ingest(V);return X.json({ok:!0,accepted:U.length})}),F}var TY=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+`
447
- `),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 D$=()=>{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 D$=()=>$,$};var wM=class extends TY{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await T9(D.data,s5.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
450
+ `,IY=(D)=>{let $={...tc,...D};return async(F)=>F.html(`${zM($,ec)}`)};O2();TD();FD();N0();FD();function IM(D,$){if(D instanceof PD)return $.json(D.toJSON(),D.status);return R.error("Unhandled error:",D),$.json({error:{code:"INTERNAL_ERROR",message:"An unexpected error occurred"}},500)}FD();var wM=async(D,$)=>{let F=performance.now();await $();let X=Math.round(performance.now()-F);R.info(`${D.req.method} ${D.req.path} ${D.res.status} ${X}ms`)};import{resolve as wY,sep as Dd}from"path";function TM(D){let $=wY(D);return async(F)=>{let X=new URL(F.req.url),J;try{J=$d(decodeURIComponent(X.pathname.slice(7)))}catch{return F.text("forbidden",403)}let Y=J===""?"index.html":J,G=wY($,Y);if(G!==$&&!G.startsWith($+Dd))return F.text("forbidden",403);let B=Bun.file(G);if(await B.exists())return new Response(B);if(!Fd(Y)){let H=Bun.file(wY($,"index.html"));if(await H.exists())return new Response(H)}return F.text("not found",404)}}function $d(D){let $=0;while($<D.length&&D[$]==="/")$+=1;return D.slice($)}function Fd(D){let $=D.lastIndexOf("/");return($===-1?D:D.slice($+1)).includes(".")}O2();N0();FD();function SM(D,$){let F=new n0;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&&T2(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 PD.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((V,Q)=>{W[Q.toLowerCase()]=V});try{await B.verify(H,W,G)}catch(V){return R.warn(`[channel:${Y}] signature verification failed: ${String(V)}`),X.json({ok:!1,error:"signature verification failed"},401)}let U=await B.toEnvelopes(H,$,G);for(let V of U)await J.orchestrator.ingest(V);return X.json({ok:!0,accepted:U.length})}),F}var TY=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+`
451
+ `),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 D$=()=>{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 D$=()=>$,$};var bM=class extends TY{constructor(D,$){super(D,$)}async writeSSE(D){let F=(await T9(D.data,s5.Stringify,!1,{})).split(/\r\n|\r|\n/).map((J)=>{return`data: ${J}`}).join(`
448
452
  `);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(`
449
453
  `)+`
450
454
 
451
- `;await this.write(X)}},rc=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()}},oc=new WeakMap,SY=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,Y=new wM(J,X);if(D$())D.req.raw.signal.addEventListener("abort",()=>{if(!Y.closed)Y.abort()});return oc.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"),rc(Y,$,F),D.newResponse(Y.responseReadable)};function TM(D){let $=new n0;return $.get("/stream",(F)=>{let X=D().bus;return SY(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()})})})}),$}N0();TD();C0();var c6=new n0;c6.get("/observations",(D)=>{let $=p().select().from(_2).orderBy(J0(_2.noticedAt)).limit(200).all();return D.json({observations:$})});c6.get("/drafts",(D)=>{let $=D.req.query("status"),F=p().select().from(R0).orderBy(J0(R0.createdAt)).limit(100),X=$?F.where(u(R0.status,$)).all():F.all();return D.json({drafts:X})});c6.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw PD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return p().update(R0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(u(R0.id,$)).run(),D.json({ok:!0})});c6.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw PD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return p().update(R0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(u(R0.id,$)).run(),D.json({ok:!0})});O2();function SM({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||!T2(Y,G))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}O2();N0();TD();FD();vD();var tc=_.object({value:_.string().min(1)}),bM=_.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),ec=_.object({probe:_.boolean().optional()}).optional(),Dd=_.object({chatId:_.string().optional(),text:_.string().optional()}).optional(),fM=_.enum(["web","line","telegram","lark","whatsapp"]),$d=_.object({expression:_.string().min(1),prompt:_.string().min(1),channel:fM,chatId:_.string().min(1),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}),Fd=_.object({expression:_.string().min(1).optional(),prompt:_.string().min(1).optional(),channel:fM.optional(),chatId:_.string().min(1).optional(),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function kM(D){let $=new n0;return $.get("/info",async(F)=>{let X=D.getState(),J=await I0(p()),Y=await q5(X,J.config,{...l.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:l.AIWORKER_ADVERTISED_BASE_URL}});return F.json(Y)}),$.get("/config",async(F)=>{let X=await I0(p());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 T6({db:p(),vault:gD(),raw:X,...Y===void 0?{}:{ifMatchVersion:Y},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(G)}catch(G){if(G instanceof v2)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 N5(gD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=bM.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=tc.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 P5(gD(),X.data,Y.data.value),F.json({ok:!0},200)}catch(G){if(G instanceof PD)return F.json(G.toJSON(),G.status);throw G}}),$.delete("/secrets/:key",async(F)=>{let X=bM.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 L5(gD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof PD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await I0(p()),Y=await O5(X,J.config);return F.json(Y)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=ec.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let Y=D.getState(),G=await I0(p()),B=await Z5(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=Dd.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 M5(G,X,Y.data??{});return F.json(B)}catch(G){if(G instanceof PD)return F.json(G.toJSON(),G.status);throw G}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await f8(p(),gD(),X);return F.json(J)}),$.post("/reload",async(F)=>{let X=await I0(p());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return R.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 j4().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=_.object({decision:_.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=$d.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=Fd.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();C0();vD();var Xd=_.object({prompt:_.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function vM(D){let $=new n0;return $.get("/tasks",(F)=>{let X=p().select().from(E8).orderBy(J0(E8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Xd.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=p().select().from(ED).orderBy(J0(ED.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=p().select().from(G0).where(u(G0.conversationId,X)).all();return F.json({messages:J})}),$}async function gM(D){let $=gD(),F=new Set(s2(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 G6(D,X)}async function hM(D={}){P3(l.WORKER_DB_PATH),L3(l.WORKER_MIGRATIONS_FOLDER);let $=gD(),F=p(),X=await F1(F,$,{...l.AIWORKER_FORCE_ID===void 0?{}:{forceId:l.AIWORKER_FORCE_ID},...l.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:l.AIWORKER_FORCE_TOKEN}});X1(X.workerId,X.token,F,X.justMinted),R.info(`[worker ${X.workerId}] worker.db ready at ${l.WORKER_DB_PATH}`);let J=await $1(F),Y=await gM(J.config),G=new M1({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits},stallTimeoutMs:l.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:l.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:l.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:l.PROCESS_GC_INTERVAL_MS}),B=N1(X.workerId,Y,{processes:G});R.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(V,Q){let K=await gM(V);G.setLimits({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits}});let C=N1(H.workerId,K,{processes:G}),E=H.runtime;if(H.runtime=C,H.configVersion=Q,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(A){R.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(A)}`)}try{E.dispose()}catch(A){R.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(A)}`)}R.info(`[worker ${H.workerId}] runtime reloaded to config version ${Q}`)}let U=new n0;if(U.use(jM),U.onError(LM),D.webStaticDir){let V=D.webStaticDir;U.get("/admin",(Q)=>Q.redirect("/admin/",308)),U.use("/admin/*",zM(V))}return U.get("/health",async(V)=>{let[Q,K]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return V.json({mode:"worker",workerId:H.workerId,status:"ok",brain:Q,executor:K,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),U.route("/",IM(()=>H.runtime,H.workerId)),U.use("/api/worker/*",SM({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),U.route("/api/worker/orchestrator",vM(()=>H.runtime)),U.route("/api/worker/evolution",c6),U.route("/api/worker/events",TM(()=>H.runtime)),U.route("/api/worker",kM({getState:()=>H,reloadRuntime:W})),U.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:"0.2.0",description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${H.workerId}`}}),U.get("/docs",IY({spec:{url:"/openapi.json"}})),{app:U,port:l.PORT,state:H,reloadRuntime:W}}O2();TD();FD();async function xM(D={}){let $=null,F=g9.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?s7("worker"):void 0;if(X&&!J)R.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 hM({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),W=D.port??G,U=Bun.serve({port:W,fetch:Y.fetch});if(R.success(`[aiw serve] worker ${B.workerId} listening on :${W} (config v${B.configVersion})`),J)R.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let V=l.AIWORKER_GATEWAY_URL,Q=l.AIWORKER_JOIN_TOKEN,K=l.AIWORKER_DISPLAY_NAME,C=l.AIWORKER_ENROLL_MODE,E=D.gateway&&D.gateway.length>0?D.gateway:void 0,A,Z=D.gatewayToken??"",L,N="legacy";if(E)A=E;else if(V&&V.length>0){let z=C==="otp",P=!!Q&&Q.length>0;if(!z&&P)A=V,N="self-enroll",L={mode:"join-token",joinToken:Q,apiToken:B.tokenPlaintext,...K?{displayName:K}:{}};else{let b=new URL(V);if(b.pathname="/enroll-ws",A=b.toString(),N="otp",Z=B.tokenPlaintext,L={mode:"otp",apiToken:B.tokenPlaintext,...K?{displayName:K}:{}},z&&P)R.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(Q&&Q.length>0)R.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(A){if(N==="self-enroll")R.info(`[aiw serve] self-enrolling to ${A} as ${K??B.workerId}`);else if(N==="otp")R.info(`[aiw serve] OTP enrolling to ${A}; awaiting operator approval`);$=R5({url:A,token:Z,workerId:B.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...L?{enroll:L}:{},...N==="otp"?{onEnrollmentOtp:({otp:z,expiresAt:P})=>{let b=Math.max(0,Math.round((P-Date.now())/1000)),I=Jd(z,b);g9.stdout.write(`${I}
452
- `),R.info(`[aiw serve] OTP ${z} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${z}\` \u51C6\u5165\uFF1Bexpires in ${b}s`)},onEnrollmentApproved:({workerId:z,deviceToken:P})=>{R.success(`[aiw serve] approved as ${z}; deviceToken=${P.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>B.runtime,handlers:{configGet:async()=>{let z=await I0(p());return{version:z.version,config:z.config}},configPut:async({ifMatch:z,config:P})=>{let b=await T6({db:p(),vault:gD(),raw:P,ifMatchVersion:z,workerId:B.workerId,reloadRuntime:H});return{version:b.version,appliedAt:Date.now(),runtimeReload:b.runtimeReload}},tokenRotate:async()=>{let{newToken:z}=await f8(p(),gD(),B);return{deviceToken:z}},...E5(()=>B.runtime.cron)}}),R.success(`[aiw serve] gateway-client dialing ${A}`)}let S=async(z)=>{R.info(`[aiw serve] received ${z}, shutting down`);try{if($)await $.stop(),$=null}catch(P){R.warn(`[aiw serve] gateway shutdown failed: ${String(P)}`)}try{U.stop()}catch(P){R.warn(`[aiw serve] http shutdown failed: ${String(P)}`)}g9.exit(0)};g9.once("SIGTERM",()=>void S("SIGTERM")),g9.once("SIGINT",()=>void S("SIGINT"))}function Jd(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(`
453
- `)}O2();TD();FD();async function yM(){let D=await _0({silent:!0}),$=gD(),F=p(),X={tokenPlaintext:D.token},{newToken:J}=await f8(F,$,X);return R.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}var JD=sY("aiworker");JD.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 EO({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});JD.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{e.exitCode=await PO()});JD.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 CO({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});e.exit($)});JD.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 xM($)});JD.command("config-show","Print the stored worker config as JSON").action(async()=>{e.exit(await AO())});JD.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 KO({json:D,ifMatch:$.ifMatch?.[0]}))});JD.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{e.exit(await yM())});JD.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{e.exit(await VO())});JD.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 QO({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});JD.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{e.exit(await OO())});JD.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)R.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),e.exit(2);let $=await MO({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($)});JD.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{e.exit(await ZO(D))});JD.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{e.exit(await sU())});JD.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{e.exit(await rU(D))});JD.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 oU({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});JD.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 aU(D))});JD.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{e.exit(await tU(D))});JD.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 kU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});JD.command("gateway status","\u663E\u793A gateway daemon \u662F\u5426\u8FD0\u884C").action(()=>{e.exit(vU())});JD.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 gU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});JD.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)R.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),e.exit(2);e.exit(await pU({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});JD.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 gH({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});JD.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{e.exit(await hH(D))});JD.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)R.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),e.exit(2);e.exit(await xH({workerId:D,configJson:$,ifMatch:X}))});JD.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 nU(D))});JD.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 kH({...D.worker===void 0?{}:{workerId:D.worker}}))});JD.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 vH({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});JD.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{e.exit(await dU(D))});JD.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)R.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),e.exit(2);e.exit(await lU({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});JD.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{e.exit(await iU(D,$))});JD.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{e.exit(await yH())});JD.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{e.exit(await uH(D))});JD.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{e.exit(await mH(D))});JD.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 mU({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});JD.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)R.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}:{}}))});JD.help();JD.version(yB.version);function Gd(D,$=JD){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{JD.parse(Gd(e.argv),{run:!1}),await JD.runMatchedCommand()}catch(D){R.error(D),e.exit(1)}export{Gd as preprocessArgv,JD as cli};
455
+ `;await this.write(X)}},Xd=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()}},Jd=new WeakMap,SY=(D,$,F)=>{let{readable:X,writable:J}=new TransformStream,Y=new bM(J,X);if(D$())D.req.raw.signal.addEventListener("abort",()=>{if(!Y.closed)Y.abort()});return Jd.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"),Xd(Y,$,F),D.newResponse(Y.responseReadable)};function fM(D){let $=new n0;return $.get("/stream",(F)=>{let X=D().bus;return SY(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()})})})}),$}N0();TD();C0();var c6=new n0;c6.get("/observations",(D)=>{let $=p().select().from(_2).orderBy(J0(_2.noticedAt)).limit(200).all();return D.json({observations:$})});c6.get("/drafts",(D)=>{let $=D.req.query("status"),F=p().select().from(R0).orderBy(J0(R0.createdAt)).limit(100),X=$?F.where(u(R0.status,$)).all():F.all();return D.json({drafts:X})});c6.post("/drafts/:id/approve",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw PD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return p().update(R0).set({status:"approved",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(u(R0.id,$)).run(),D.json({ok:!0})});c6.post("/drafts/:id/reject",async(D)=>{let $=Number(D.req.param("id"));if(!Number.isFinite($))throw PD.badRequest("invalid draft id");let F=await D.req.json().catch(()=>({})),X=new Date().toISOString();return p().update(R0).set({status:"rejected",decidedAt:X,decidedBy:F.decidedBy??"operator"}).where(u(R0.id,$)).run(),D.json({ok:!0})});O2();function kM({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||!T2(Y,G))return $.json({code:"auth-failed",message:"invalid bearer token"},401);await F()}}O2();N0();TD();FD();vD();var Yd=_.object({value:_.string().min(1)}),vM=_.string().regex(/^[\w.-]{1,128}$/,{message:"secret key \u4EC5\u5141\u8BB8 [A-Za-z0-9._-]\uFF0C\u957F\u5EA6 1-128"}),Bd=_.object({probe:_.boolean().optional()}).optional(),Hd=_.object({chatId:_.string().optional(),text:_.string().optional()}).optional(),gM=_.enum(["web","line","telegram","lark","whatsapp"]),Wd=_.object({expression:_.string().min(1),prompt:_.string().min(1),channel:gM,chatId:_.string().min(1),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}),_d=_.object({expression:_.string().min(1).optional(),prompt:_.string().min(1).optional(),channel:gM.optional(),chatId:_.string().min(1).optional(),accountId:_.string().min(1).optional(),enabled:_.boolean().optional()}).refine((D)=>Object.keys(D).length>0,{message:"\u81F3\u5C11\u63D0\u4F9B\u4E00\u4E2A\u5F85\u66F4\u65B0\u5B57\u6BB5"});function hM(D){let $=new n0;return $.get("/info",async(F)=>{let X=D.getState(),J=await I0(p()),Y=await q5(X,J.config,{...l.AIWORKER_ADVERTISED_BASE_URL===void 0?{}:{advertisedBaseUrl:l.AIWORKER_ADVERTISED_BASE_URL}});return F.json(Y)}),$.get("/config",async(F)=>{let X=await I0(p());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 T6({db:p(),vault:gD(),raw:X,...Y===void 0?{}:{ifMatchVersion:Y},workerId:D.getState().workerId,reloadRuntime:D.reloadRuntime});return F.json(G)}catch(G){if(G instanceof v2)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 N5(gD());return F.json({keys:X})}),$.put("/secrets/:key",async(F)=>{let X=vM.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=Yd.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 P5(gD(),X.data,Y.data.value),F.json({ok:!0},200)}catch(G){if(G instanceof PD)return F.json(G.toJSON(),G.status);throw G}}),$.delete("/secrets/:key",async(F)=>{let X=vM.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 L5(gD(),X.data),F.json({ok:!0},200)}catch(J){if(J instanceof PD)return F.json(J.toJSON(),J.status);throw J}}),$.post("/brain/test",async(F)=>{let X=D.getState(),J=await I0(p()),Y=await O5(X,J.config);return F.json(Y)}),$.post("/executor/test",async(F)=>{let X=await F.req.json().catch(()=>null),J=Bd.safeParse(X??{});if(!J.success)return F.json({error:{code:"invalid-body",message:"invalid executor test body"}},400);let Y=D.getState(),G=await I0(p()),B=await Z5(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=Hd.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 M5(G,X,Y.data??{});return F.json(B)}catch(G){if(G instanceof PD)return F.json(G.toJSON(),G.status);throw G}}),$.post("/token/rotate",async(F)=>{let X=D.getState(),J=await f8(p(),gD(),X);return F.json(J)}),$.post("/reload",async(F)=>{let X=await I0(p());try{return await D.reloadRuntime(X.config,X.version),F.json({ok:!0,version:X.version})}catch(J){return R.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 j4().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=_.object({decision:_.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=Wd.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=_d.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();C0();vD();var Ud=_.object({prompt:_.string().trim().min(1,"prompt is required").max(8000,"prompt exceeds 8000 characters")});function xM(D){let $=new n0;return $.get("/tasks",(F)=>{let X=p().select().from(E8).orderBy(J0(E8.createdAt)).limit(200).all();return F.json({tasks:X})}),$.post("/tasks",async(F)=>{let X=await F.req.json().catch(()=>null),J=Ud.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=p().select().from(ED).orderBy(J0(ED.lastActiveAt)).limit(200).all();return F.json({conversations:X})}),$.get("/conversations/:id/messages",(F)=>{let X=F.req.param("id"),J=p().select().from(G0).where(u(G0.conversationId,X)).all();return F.json({messages:J})}),$}async function yM(D){let $=gD(),F=new Set(s2(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 G6(D,X)}async function uM(D={}){P3(l.WORKER_DB_PATH),L3(l.WORKER_MIGRATIONS_FOLDER);let $=gD(),F=p(),X=await F1(F,$,{...l.AIWORKER_FORCE_ID===void 0?{}:{forceId:l.AIWORKER_FORCE_ID},...l.AIWORKER_FORCE_TOKEN===void 0?{}:{forceToken:l.AIWORKER_FORCE_TOKEN}});X1(X.workerId,X.token,F,X.justMinted),R.info(`[worker ${X.workerId}] worker.db ready at ${l.WORKER_DB_PATH}`);let J=await $1(F),Y=await yM(J.config),G=new M1({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits},stallTimeoutMs:l.PROCESS_STALL_TIMEOUT_MS,killTimeoutMs:l.PROCESS_KILL_TIMEOUT_MS,autoCleanupDelayMs:l.PROCESS_AUTO_CLEANUP_DELAY_MS,gcIntervalMs:l.PROCESS_GC_INTERVAL_MS}),B=N1(X.workerId,Y,{processes:G});R.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(V,Q){let K=await yM(V);G.setLimits({maxConcurrentTotal:l.MAX_CONCURRENT_TOTAL,perEngineLimits:{...l.perEngineLimits}});let C=N1(H.workerId,K,{processes:G}),E=H.runtime;if(H.runtime=C,H.configVersion=Q,D.onRuntimeReloaded)try{D.onRuntimeReloaded()}catch(A){R.warn(`[worker ${H.workerId}] onRuntimeReloaded hook failed: ${String(A)}`)}try{E.dispose()}catch(A){R.warn(`[worker ${H.workerId}] previous runtime dispose failed: ${String(A)}`)}R.info(`[worker ${H.workerId}] runtime reloaded to config version ${Q}`)}let U=new n0;if(U.use(wM),U.onError(IM),D.webStaticDir){let V=D.webStaticDir;U.get("/admin",(Q)=>Q.redirect("/admin/",308)),U.use("/admin/*",TM(V))}return U.get("/health",async(V)=>{let[Q,K]=await Promise.all([H.runtime.brain.health().catch(()=>null),H.runtime.executor.health().catch(()=>null)]);return V.json({mode:"worker",workerId:H.workerId,status:"ok",brain:Q,executor:K,configVersion:H.configVersion,startedAt:H.startedAt,checkedAt:new Date().toISOString()})}),U.route("/",SM(()=>H.runtime,H.workerId)),U.use("/api/worker/*",kM({getIdentity:()=>({tokenPlaintext:H.tokenPlaintext})})),U.route("/api/worker/orchestrator",xM(()=>H.runtime)),U.route("/api/worker/evolution",c6),U.route("/api/worker/events",fM(()=>H.runtime)),U.route("/api/worker",hM({getState:()=>H,reloadRuntime:W})),U.doc("/openapi.json",{openapi:"3.1.0",info:{title:"AIWorker Worker API",version:"0.2.0",description:`Per-worker surface: channels, orchestrator, memory, skills, execution, evolution. Worker id: ${H.workerId}`}}),U.get("/docs",IY({spec:{url:"/openapi.json"}})),{app:U,port:l.PORT,state:H,reloadRuntime:W}}O2();TD();FD();async function mM(D={}){let $=null,F=g9.env.AIWORKER_WORKER_NO_SERVE_WEB==="1",X=D.serveWeb!==!1&&!F,J=X?s7("worker"):void 0;if(X&&!J)R.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 uM({onRuntimeReloaded:()=>$?.notifyRuntimeReloaded(),...J?{webStaticDir:J}:{}}),W=D.port??G,U=Bun.serve({port:W,fetch:Y.fetch});if(R.success(`[aiw serve] worker ${B.workerId} listening on :${W} (config v${B.configVersion})`),J)R.info(`[aiw serve] /admin/* serving worker bundle from ${J}`);let V=l.AIWORKER_GATEWAY_URL,Q=l.AIWORKER_JOIN_TOKEN,K=l.AIWORKER_DISPLAY_NAME,C=l.AIWORKER_ENROLL_MODE,E=D.gateway&&D.gateway.length>0?D.gateway:void 0,A,Z=D.gatewayToken??"",P,N="legacy";if(E)A=E;else if(V&&V.length>0){let z=C==="otp",L=!!Q&&Q.length>0;if(!z&&L)A=V,N="self-enroll",P={mode:"join-token",joinToken:Q,apiToken:B.tokenPlaintext,...K?{displayName:K}:{}};else{let b=new URL(V);if(b.pathname="/enroll-ws",A=b.toString(),N="otp",Z=B.tokenPlaintext,P={mode:"otp",apiToken:B.tokenPlaintext,...K?{displayName:K}:{}},z&&L)R.info("[aiw serve] AIWORKER_ENROLL_MODE=otp \u5DF2\u751F\u6548\uFF0C\u5FFD\u7565 AIWORKER_JOIN_TOKEN")}}else if(Q&&Q.length>0)R.warn("[aiw serve] AIWORKER_JOIN_TOKEN set but AIWORKER_GATEWAY_URL missing; skipping self-enroll");if(A){if(N==="self-enroll")R.info(`[aiw serve] self-enrolling to ${A} as ${K??B.workerId}`);else if(N==="otp")R.info(`[aiw serve] OTP enrolling to ${A}; awaiting operator approval`);$=R5({url:A,token:Z,workerId:B.workerId,...D.gatewayReconnect===!1?{reconnect:!1}:{},...P?{enroll:P}:{},...N==="otp"?{onEnrollmentOtp:({otp:z,expiresAt:L})=>{let b=Math.max(0,Math.round((L-Date.now())/1000)),I=Vd(z,b);g9.stdout.write(`${I}
456
+ `),R.info(`[aiw serve] OTP ${z} \u5DF2\u7B7E\u53D1\uFF0C\u8BF7\u7528 \`aim enroll approve ${z}\` \u51C6\u5165\uFF1Bexpires in ${b}s`)},onEnrollmentApproved:({workerId:z,deviceToken:L})=>{R.success(`[aiw serve] approved as ${z}; deviceToken=${L.slice(0,8)}\u2026\uFF0C\u5DF2\u52A0\u5165 fleet`)}}:{},getRuntime:()=>B.runtime,handlers:{configGet:async()=>{let z=await I0(p());return{version:z.version,config:z.config}},configPut:async({ifMatch:z,config:L})=>{let b=await T6({db:p(),vault:gD(),raw:L,ifMatchVersion:z,workerId:B.workerId,reloadRuntime:H});return{version:b.version,appliedAt:Date.now(),runtimeReload:b.runtimeReload}},tokenRotate:async()=>{let{newToken:z}=await f8(p(),gD(),B);return{deviceToken:z}},...E5(()=>B.runtime.cron)}}),R.success(`[aiw serve] gateway-client dialing ${A}`)}let S=async(z)=>{R.info(`[aiw serve] received ${z}, shutting down`);try{if($)await $.stop(),$=null}catch(L){R.warn(`[aiw serve] gateway shutdown failed: ${String(L)}`)}try{U.stop()}catch(L){R.warn(`[aiw serve] http shutdown failed: ${String(L)}`)}g9.exit(0)};g9.once("SIGTERM",()=>void S("SIGTERM")),g9.once("SIGINT",()=>void S("SIGINT"))}function Vd(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(`
457
+ `)}O2();TD();FD();async function pM(){let D=await _0({silent:!0}),$=gD(),F=p(),X={tokenPlaintext:D.token},{newToken:J}=await f8(F,$,X);return R.success(`[aiw token rotate] worker ${D.workerId} token rotated`),console.log(J),0}var JD=sY("aiworker");JD.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 OO({...D.global===!0?{global:!0}:{},...D.force===!0?{force:!0}:{}})});JD.command("scope","Print the resolved aiworker scope (user/project/explicit) + presence of layout files").action(async()=>{e.exitCode=await zO()});JD.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 MO({message:D.message,chatId:D.chatId,dryRun:D.dryRun,timeoutMs:D.timeoutMs?.[0]});e.exit($)});JD.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 mM($)});JD.command("config-show","Print the stored worker config as JSON").action(async()=>{e.exit(await CO())});JD.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 RO({json:D,ifMatch:$.ifMatch?.[0]}))});JD.command("token-rotate","Mint a fresh bearer token; prints the new plaintext once").action(async()=>{e.exit(await pM())});JD.command("approvals-list","\u5217\u51FA\u5F53\u524D worker \u8FDB\u7A0B\u5185\u6302\u8D77\u7684 per-tool \u5BA1\u6279").action(async()=>{e.exit(await KO())});JD.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 EO({taskId:D,toolCallId:$,...F.deny===void 0?{}:{deny:F.deny}}))});JD.command("schedule-list","List all cron jobs persisted in the local worker.db").action(async()=>{e.exit(await qO())});JD.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)R.error("[aiworker schedule-add] requires --expression, --prompt, --channel, --chat-id"),e.exit(2);let $=await NO({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($)});JD.command("schedule-remove <jobId>","Remove a cron job from the local worker.db").action(async(D)=>{e.exit(await PO(D))});JD.command("fleet list","\u5217\u51FA fleet \u5185\u6240\u6709 worker").action(async()=>{e.exit(await sU())});JD.command("fleet info <workerId>","\u67E5\u770B\u67D0\u4E2A worker \u7684\u8FD0\u884C\u65F6\u4FE1\u606F").action(async(D)=>{e.exit(await rU(D))});JD.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 oU({...D.displayName===void 0?{}:{displayName:D.displayName},...D.image===void 0?{}:{image:D.image},...D.forceId===void 0?{}:{forceId:D.forceId}}))});JD.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 aU(D))});JD.command("fleet remove <workerId>","\u628A worker \u4ECE fleet \u4E2D\u6458\u9664\uFF08deviceToken \u4F5C\u5E9F\uFF09").action(async(D)=>{e.exit(await tU(D))});JD.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 kU({...D.port?.[0]===void 0?{}:{port:D.port[0]},detach:F,...D.serveWeb===!1?{serveWeb:!1}:{}}))});JD.command("gateway status","\u663E\u793A gateway daemon \u662F\u5426\u8FD0\u884C").action(()=>{e.exit(vU())});JD.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 gU(D.timeoutMs?.[0]===void 0?{}:{timeoutMs:D.timeoutMs[0]}))});JD.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)R.error("pair \u5FC5\u987B\u540C\u65F6\u63D0\u4F9B --worker-url \u548C --bootstrap-token"),e.exit(2);e.exit(await pU({...D.url===void 0?{}:{url:D.url},workerUrl:D.workerUrl,bootstrapToken:D.bootstrapToken,...D.displayName===void 0?{}:{displayName:D.displayName}}))});JD.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 gH({workerId:D,content:$,...F.conversationId===void 0?{}:{conversationId:F.conversationId},...F.timeoutMs?.[0]===void 0?{}:{timeoutMs:F.timeoutMs[0]}}))});JD.command("config get <workerId>","\u8BFB\u53D6\u76EE\u6807 worker \u7684\u5F53\u524D\u914D\u7F6E").action(async(D)=>{e.exit(await hH(D))});JD.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)R.error("config set \u5FC5\u987B\u663E\u5F0F\u63D0\u4F9B --if-match <version> \u4EE5\u9632\u6B62\u8BEF\u8986\u76D6"),e.exit(2);e.exit(await xH({workerId:D,configJson:$,ifMatch:X}))});JD.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 nU(D))});JD.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 kH({...D.worker===void 0?{}:{workerId:D.worker}}))});JD.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 vH({workerId:D,taskId:$,toolCallId:F,...X.deny===void 0?{}:{deny:X.deny}}))});JD.command("schedule list <workerId>","\u5217\u51FA\u67D0 worker \u4E0A\u6240\u6709 cron \u4EFB\u52A1").action(async(D)=>{e.exit(await dU(D))});JD.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)R.error("schedule add \u5FC5\u987B\u63D0\u4F9B --expression / --prompt / --channel / --chat-id"),e.exit(2);e.exit(await lU({workerId:D,expression:$.expression,prompt:$.prompt,channel:$.channel,chatId:$.chatId,...$.accountId===void 0?{}:{accountId:$.accountId},...$.disabled===!0?{enabled:!1}:{}}))});JD.command("schedule remove <workerId> <jobId>","\u5220\u9664\u67D0 worker \u4E0A\u7684\u67D0\u6761 cron \u4EFB\u52A1").action(async(D,$)=>{e.exit(await iU(D,$))});JD.command("enroll list","\u5217\u51FA gateway \u5F53\u524D\u6240\u6709 pending OTP enrollment").action(async()=>{e.exit(await yH())});JD.command("enroll approve <otp>","\u6279\u51C6\u67D0\u6761 pending OTP enrollment\uFF08worker \u7ACB\u5373\u52A0\u5165 fleet\uFF09").action(async(D)=>{e.exit(await uH(D))});JD.command("enroll reject <otp>","\u62D2\u7EDD\u67D0\u6761 pending OTP enrollment\uFF08worker \u6536\u5230 close 4403\uFF09").action(async(D)=>{e.exit(await mH(D))});JD.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 mU({workerId:D,...$.follow===void 0?{}:{follow:$.follow},...$.tail?.[0]===void 0?{}:{tail:$.tail[0]},...$.timeoutMs?.[0]===void 0?{}:{timeoutMs:$.timeoutMs[0]}}))});JD.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)R.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}:{}}))});JD.help();JD.version(yB.version);function Qd(D,$=JD){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{JD.parse(Qd(e.argv),{run:!1}),await JD.runMatchedCommand()}catch(D){R.error(D),e.exit(1)}export{Qd as preprocessArgv,JD as cli};