bridge-agent 0.1.0-beta.2 → 0.1.0-beta.3

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.
Files changed (2) hide show
  1. package/dist/index.js +33 -32
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,45 +1,45 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var hs=Object.create;var nt=Object.defineProperty;var fs=Object.getOwnPropertyDescriptor;var ps=Object.getOwnPropertyNames;var gs=Object.getPrototypeOf,ms=Object.prototype.hasOwnProperty;var _s=(r,e)=>()=>(r&&(e=r(r=0)),e);var E=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ys=(r,e)=>{for(var t in e)nt(r,t,{get:e[t],enumerable:!0})},bs=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ps(e))!ms.call(r,s)&&s!==t&&nt(r,s,{get:()=>e[s],enumerable:!(n=fs(e,s))||n.enumerable});return r};var _=(r,e,t)=>(t=r!=null?hs(gs(r)):{},bs(e||!r||!r.__esModule?nt(t,"default",{value:r,enumerable:!0}):t,r));var fe=E(it=>{var Ae=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},st=class extends Ae{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};it.CommanderError=Ae;it.InvalidArgumentError=st});var Te=E(at=>{var{InvalidArgumentError:Ss}=fe(),ot=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,n)=>{if(!this.argChoices.includes(t))throw new Ss(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,n):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function ws(r){let e=r.name()+(r.variadic===!0?"...":"");return r.required?"<"+e+">":"["+e+"]"}at.Argument=ot;at.humanReadableArgName=ws});var ct=E(er=>{var{humanReadableArgName:Es}=Te(),lt=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(s=>!s._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((s,i)=>s.name().localeCompare(i.name())),t}compareOptions(e,t){let n=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),n=e._getHelpOption();if(n&&!n.hidden){let s=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!s&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!s&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let s=n.options.filter(i=>!i.hidden);t.push(...s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e.registeredArguments.find(t=>t.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(n=>Es(n)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((n,s)=>Math.max(n,t.subcommandTerm(s).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((n,s)=>Math.max(n,t.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((n,s)=>Math.max(n,t.optionTerm(s).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((n,s)=>Math.max(n,t.argumentTerm(s).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let n="";for(let s=e.parent;s;s=s.parent)n=s.name()+" "+n;return n+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(", ")})`;return e.description?`${e.description} ${n}`:n}return e.description}formatHelp(e,t){let n=t.padWidth(e,t),s=t.helpWidth||80,i=2,o=2;function c(f,p){if(p){let m=`${f.padEnd(n+o)}${p}`;return t.wrap(m,s-i,n+o)}return f}function a(f){return f.join(`
2
+ "use strict";var fs=Object.create;var rt=Object.defineProperty;var ps=Object.getOwnPropertyDescriptor;var gs=Object.getOwnPropertyNames;var ms=Object.getPrototypeOf,_s=Object.prototype.hasOwnProperty;var ys=(r,e)=>()=>(r&&(e=r(r=0)),e);var E=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),bs=(r,e)=>{for(var t in e)rt(r,t,{get:e[t],enumerable:!0})},Ss=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of gs(e))!_s.call(r,s)&&s!==t&&rt(r,s,{get:()=>e[s],enumerable:!(n=ps(e,s))||n.enumerable});return r};var _=(r,e,t)=>(t=r!=null?fs(ms(r)):{},Ss(e||!r||!r.__esModule?rt(t,"default",{value:r,enumerable:!0}):t,r));var de=E(st=>{var Ce=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},nt=class extends Ce{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};st.CommanderError=Ce;st.InvalidArgumentError=nt});var Ae=E(ot=>{var{InvalidArgumentError:ws}=de(),it=class{constructor(e,t){switch(this.description=t||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case"<":this.required=!0,this._name=e.slice(1,-1);break;case"[":this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e;break}this._name.length>3&&this._name.slice(-3)==="..."&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,n)=>{if(!this.argChoices.includes(t))throw new ws(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,n):t},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function Es(r){let e=r.name()+(r.variadic===!0?"...":"");return r.required?"<"+e+">":"["+e+"]"}ot.Argument=it;ot.humanReadableArgName=Es});var lt=E(tr=>{var{humanReadableArgName:xs}=Ae(),at=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let t=e.commands.filter(s=>!s._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((s,i)=>s.name().localeCompare(i.name())),t}compareOptions(e,t){let n=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(s=>!s.hidden),n=e._getHelpOption();if(n&&!n.hidden){let s=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!s&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!s&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let s=n.options.filter(i=>!i.hidden);t.push(...s)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||""}),e.registeredArguments.find(t=>t.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(n=>xs(n)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(t?" "+t:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((n,s)=>Math.max(n,t.subcommandTerm(s).length),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((n,s)=>Math.max(n,t.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((n,s)=>Math.max(n,t.optionTerm(s).length),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((n,s)=>Math.max(n,t.argumentTerm(s).length),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+"|"+e._aliases[0]);let n="";for(let s=e.parent;s;s=s.parent)n=s.name()+" "+n;return n+t+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];return e.argChoices&&t.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0?`${e.description} (${t.join(", ")})`:e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(n=>JSON.stringify(n)).join(", ")}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(", ")})`;return e.description?`${e.description} ${n}`:n}return e.description}formatHelp(e,t){let n=t.padWidth(e,t),s=t.helpWidth||80,i=2,o=2;function c(f,p){if(p){let m=`${f.padEnd(n+o)}${p}`;return t.wrap(m,s-i,n+o)}return f}function a(f){return f.join(`
3
3
  `).replace(/^/gm," ".repeat(i))}let l=[`Usage: ${t.commandUsage(e)}`,""],d=t.commandDescription(e);d.length>0&&(l=l.concat([t.wrap(d,s,0),""]));let u=t.visibleArguments(e).map(f=>c(t.argumentTerm(f),t.argumentDescription(f)));u.length>0&&(l=l.concat(["Arguments:",a(u),""]));let h=t.visibleOptions(e).map(f=>c(t.optionTerm(f),t.optionDescription(f)));if(h.length>0&&(l=l.concat(["Options:",a(h),""])),this.showGlobalOptions){let f=t.visibleGlobalOptions(e).map(p=>c(t.optionTerm(p),t.optionDescription(p)));f.length>0&&(l=l.concat(["Global Options:",a(f),""]))}let g=t.visibleCommands(e).map(f=>c(t.subcommandTerm(f),t.subcommandDescription(f)));return g.length>0&&(l=l.concat(["Commands:",a(g),""])),l.join(`
4
4
  `)}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}wrap(e,t,n,s=40){let i=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",o=new RegExp(`[\\n][${i}]+`);if(e.match(o))return e;let c=t-n;if(c<s)return e;let a=e.slice(0,n),l=e.slice(n).replace(`\r
5
5
  `,`
6
6
  `),d=" ".repeat(n),h="\\s\u200B",g=new RegExp(`
7
7
  |.{1,${c-1}}([${h}]|$)|[^${h}]+?([${h}]|$)`,"g"),f=l.match(g)||[];return a+f.map((p,m)=>p===`
8
8
  `?"":(m>0?d:"")+p.trimEnd()).join(`
9
- `)}};er.Help=lt});var ft=E(ht=>{var{InvalidArgumentError:xs}=fe(),dt=class{constructor(e,t){this.flags=e,this.description=t||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=ks(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e=="string"&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,n)=>{if(!this.argChoices.includes(t))throw new xs(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,n):t},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return vs(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},ut=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(t=>{t.negate?this.negativeOptions.set(t.attributeName(),t):this.positiveOptions.set(t.attributeName(),t)}),this.negativeOptions.forEach((t,n)=>{this.positiveOptions.has(n)&&this.dualOptions.add(n)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let s=this.negativeOptions.get(n).presetArg,i=s!==void 0?s:!1;return t.negate===(i===e)}};function vs(r){return r.split("-").reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function ks(r){let e,t,n=r.split(/[ |,]+/);return n.length>1&&!/^[[<]/.test(n[1])&&(e=n.shift()),t=n.shift(),!e&&/^-[^-]$/.test(t)&&(e=t,t=void 0),{shortFlag:e,longFlag:t}}ht.Option=dt;ht.DualOptions=ut});var rr=E(tr=>{function Os(r,e){if(Math.abs(r.length-e.length)>3)return Math.max(r.length,e.length);let t=[];for(let n=0;n<=r.length;n++)t[n]=[n];for(let n=0;n<=e.length;n++)t[0][n]=n;for(let n=1;n<=e.length;n++)for(let s=1;s<=r.length;s++){let i=1;r[s-1]===e[n-1]?i=0:i=1,t[s][n]=Math.min(t[s-1][n]+1,t[s][n-1]+1,t[s-1][n-1]+i),s>1&&n>1&&r[s-1]===e[n-2]&&r[s-2]===e[n-1]&&(t[s][n]=Math.min(t[s][n],t[s-2][n-2]+1))}return t[r.length][e.length]}function Is(r,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let t=r.startsWith("--");t&&(r=r.slice(2),e=e.map(o=>o.slice(2)));let n=[],s=3,i=.4;return e.forEach(o=>{if(o.length<=1)return;let c=Os(r,o),a=Math.max(r.length,o.length);(a-c)/a>i&&(c<s?(s=c,n=[o]):c===s&&n.push(o))}),n.sort((o,c)=>o.localeCompare(c)),t&&(n=n.map(o=>`--${o}`)),n.length>1?`
9
+ `)}};tr.Help=at});var ht=E(ut=>{var{InvalidArgumentError:vs}=de(),ct=class{constructor(e,t){this.flags=e,this.description=t||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=Os(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith("--no-")),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e=="string"&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_concatValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:t.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(t,n)=>{if(!this.argChoices.includes(t))throw new vs(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(t,n):t},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return ks(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},dt=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(t=>{t.negate?this.negativeOptions.set(t.attributeName(),t):this.positiveOptions.set(t.attributeName(),t)}),this.negativeOptions.forEach((t,n)=>{this.positiveOptions.has(n)&&this.dualOptions.add(n)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let s=this.negativeOptions.get(n).presetArg,i=s!==void 0?s:!1;return t.negate===(i===e)}};function ks(r){return r.split("-").reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function Os(r){let e,t,n=r.split(/[ |,]+/);return n.length>1&&!/^[[<]/.test(n[1])&&(e=n.shift()),t=n.shift(),!e&&/^-[^-]$/.test(t)&&(e=t,t=void 0),{shortFlag:e,longFlag:t}}ut.Option=ct;ut.DualOptions=dt});var nr=E(rr=>{function Is(r,e){if(Math.abs(r.length-e.length)>3)return Math.max(r.length,e.length);let t=[];for(let n=0;n<=r.length;n++)t[n]=[n];for(let n=0;n<=e.length;n++)t[0][n]=n;for(let n=1;n<=e.length;n++)for(let s=1;s<=r.length;s++){let i=1;r[s-1]===e[n-1]?i=0:i=1,t[s][n]=Math.min(t[s-1][n]+1,t[s][n-1]+1,t[s-1][n-1]+i),s>1&&n>1&&r[s-1]===e[n-2]&&r[s-2]===e[n-1]&&(t[s][n]=Math.min(t[s][n],t[s-2][n-2]+1))}return t[r.length][e.length]}function Cs(r,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let t=r.startsWith("--");t&&(r=r.slice(2),e=e.map(o=>o.slice(2)));let n=[],s=3,i=.4;return e.forEach(o=>{if(o.length<=1)return;let c=Is(r,o),a=Math.max(r.length,o.length);(a-c)/a>i&&(c<s?(s=c,n=[o]):c===s&&n.push(o))}),n.sort((o,c)=>o.localeCompare(c)),t&&(n=n.map(o=>`--${o}`)),n.length>1?`
10
10
  (Did you mean one of ${n.join(", ")}?)`:n.length===1?`
11
- (Did you mean ${n[0]}?)`:""}tr.suggestSimilar=Is});var ar=E(or=>{var Cs=require("node:events").EventEmitter,pt=require("node:child_process"),j=require("node:path"),gt=require("node:fs"),x=require("node:process"),{Argument:As,humanReadableArgName:Ts}=Te(),{CommanderError:mt}=fe(),{Help:Ps}=ct(),{Option:nr,DualOptions:Ns}=ft(),{suggestSimilar:sr}=rr(),_t=class r extends Cs{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:t=>x.stdout.write(t),writeErr:t=>x.stderr.write(t),getOutHelpWidth:()=>x.stdout.isTTY?x.stdout.columns:void 0,getErrHelpWidth:()=>x.stderr.isTTY?x.stderr.columns:void 0,outputError:(t,n)=>n(t)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let t=this;t;t=t.parent)e.push(t);return e}command(e,t,n){let s=t,i=n;typeof s=="object"&&s!==null&&(i=s,s=null),i=i||{};let[,o,c]=e.match(/([^ ]+) *(.*)/),a=this.createCommand(o);return s&&(a.description(s),a._executableHandler=!0),i.isDefault&&(this._defaultCommandName=a._name),a._hidden=!!(i.noHelp||i.hidden),a._executableFile=i.executableFile||null,c&&a.arguments(c),this._registerCommand(a),a.parent=this,a.copyInheritedSettings(this),s?this:a}createCommand(e){return new r(e)}createHelp(){return Object.assign(new Ps,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
12
- - specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,t){return new As(e,t)}argument(e,t,n,s){let i=this.createArgument(e,t);return typeof n=="function"?i.default(s).argParser(n):i.default(n),this.addArgument(i),this}arguments(e){return e.trim().split(/ +/).forEach(t=>{this.argument(t)}),this}addArgument(e){let t=this.registeredArguments.slice(-1)[0];if(t&&t.variadic)throw new Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,t){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,n,s]=e.match(/([^ ]+) *(.*)/),i=t??"display help for command",o=this.createCommand(n);return o.helpOption(!1),s&&o.arguments(s),i&&o.description(i),this._addImplicitHelpCommand=!0,this._helpCommand=o,this}addHelpCommand(e,t){return typeof e!="object"?(this.helpCommand(e,t),this):(this._addImplicitHelpCommand=!0,this._helpCommand=e,this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(e,t){let n=["preSubcommand","preAction","postAction"];if(!n.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
13
- Expecting one of '${n.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,n){this._exitCallback&&this._exitCallback(new mt(e,t,n)),x.exit(e)}action(e){let t=n=>{let s=this.registeredArguments.length,i=n.slice(0,s);return this._storeOptionsAsProperties?i[s]=this:i[s]=this.opts(),i.push(this),e.apply(this,i)};return this._actionHandler=t,this}createOption(e,t){return new nr(e,t)}_callParseArg(e,t,n,s){try{return e.parseArg(t,n)}catch(i){if(i.code==="commander.invalidArgument"){let o=`${s} ${i.message}`;this.error(o,{exitCode:i.exitCode,code:i.code})}throw i}}_registerOption(e){let t=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(t){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw new Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}'
14
- - already used by option '${t.flags}'`)}this.options.push(e)}_registerCommand(e){let t=s=>[s.name()].concat(s.aliases()),n=t(e).find(s=>this._findCommand(s));if(n){let s=t(this._findCommand(n)).join("|"),i=t(e).join("|");throw new Error(`cannot add command '${i}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let t=e.name(),n=e.attributeName();if(e.negate){let i=e.long.replace(/^--no-/,"--");this._findOption(i)||this.setOptionValueWithSource(n,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(n,e.defaultValue,"default");let s=(i,o,c)=>{i==null&&e.presetArg!==void 0&&(i=e.presetArg);let a=this.getOptionValue(n);i!==null&&e.parseArg?i=this._callParseArg(e,i,a,o):i!==null&&e.variadic&&(i=e._concatValue(i,a)),i==null&&(e.negate?i=!1:e.isBoolean()||e.optional?i=!0:i=""),this.setOptionValueWithSource(n,i,c)};return this.on("option:"+t,i=>{let o=`error: option '${e.flags}' argument '${i}' is invalid.`;s(i,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,i=>{let o=`error: option '${e.flags}' value '${i}' from env '${e.envVar}' is invalid.`;s(i,o,"env")}),this}_optionEx(e,t,n,s,i){if(typeof t=="object"&&t instanceof nr)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(t,n);if(o.makeOptionMandatory(!!e.mandatory),typeof s=="function")o.default(i).argParser(s);else if(s instanceof RegExp){let c=s;s=(a,l)=>{let d=c.exec(a);return d?d[0]:l},o.default(i).argParser(s)}else o.default(s);return this.addOption(o)}option(e,t,n,s){return this._optionEx({},e,t,n,s)}requiredOption(e,t,n,s){return this._optionEx({mandatory:!0},e,t,n,s)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(e=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,n){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return this._getCommandAndAncestors().forEach(n=>{n.getOptionValueSource(e)!==void 0&&(t=n.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(t=t||{},e===void 0&&t.from===void 0){x.versions?.electron&&(t.from="electron");let s=x.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(t.from="eval")}e===void 0&&(e=x.argv),this.rawArgs=e.slice();let n;switch(t.from){case void 0:case"node":this._scriptPath=e[1],n=e.slice(2);break;case"electron":x.defaultApp?(this._scriptPath=e[1],n=e.slice(2)):n=e.slice(1);break;case"user":n=e.slice(0);break;case"eval":n=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",n}parse(e,t){let n=this._prepareUserArgs(e,t);return this._parseCommand([],n),this}async parseAsync(e,t){let n=this._prepareUserArgs(e,t);return await this._parseCommand([],n),this}_executeSubCommand(e,t){t=t.slice();let n=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function i(d,u){let h=j.resolve(d,u);if(gt.existsSync(h))return h;if(s.includes(j.extname(u)))return;let g=s.find(f=>gt.existsSync(`${h}${f}`));if(g)return`${h}${g}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=e._executableFile||`${this._name}-${e._name}`,c=this._executableDir||"";if(this._scriptPath){let d;try{d=gt.realpathSync(this._scriptPath)}catch{d=this._scriptPath}c=j.resolve(j.dirname(d),c)}if(c){let d=i(c,o);if(!d&&!e._executableFile&&this._scriptPath){let u=j.basename(this._scriptPath,j.extname(this._scriptPath));u!==this._name&&(d=i(c,`${u}-${e._name}`))}o=d||o}n=s.includes(j.extname(o));let a;x.platform!=="win32"?n?(t.unshift(o),t=ir(x.execArgv).concat(t),a=pt.spawn(x.argv[0],t,{stdio:"inherit"})):a=pt.spawn(o,t,{stdio:"inherit"}):(t.unshift(o),t=ir(x.execArgv).concat(t),a=pt.spawn(x.execPath,t,{stdio:"inherit"})),a.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(u=>{x.on(u,()=>{a.killed===!1&&a.exitCode===null&&a.kill(u)})});let l=this._exitCallback;a.on("close",d=>{d=d??1,l?l(new mt(d,"commander.executeSubCommandAsync","(close)")):x.exit(d)}),a.on("error",d=>{if(d.code==="ENOENT"){let u=c?`searched for local subcommand relative to directory '${c}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",h=`'${o}' does not exist
11
+ (Did you mean ${n[0]}?)`:""}rr.suggestSimilar=Cs});var lr=E(ar=>{var As=require("node:events").EventEmitter,ft=require("node:child_process"),j=require("node:path"),pt=require("node:fs"),x=require("node:process"),{Argument:Ts,humanReadableArgName:Ps}=Ae(),{CommanderError:gt}=de(),{Help:Ns}=lt(),{Option:sr,DualOptions:Rs}=ht(),{suggestSimilar:ir}=nr(),mt=class r extends As{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!0,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||"",this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description="",this._summary="",this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._outputConfiguration={writeOut:t=>x.stdout.write(t),writeErr:t=>x.stderr.write(t),getOutHelpWidth:()=>x.stdout.isTTY?x.stdout.columns:void 0,getErrHelpWidth:()=>x.stderr.isTTY?x.stderr.columns:void 0,outputError:(t,n)=>n(t)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={}}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let t=this;t;t=t.parent)e.push(t);return e}command(e,t,n){let s=t,i=n;typeof s=="object"&&s!==null&&(i=s,s=null),i=i||{};let[,o,c]=e.match(/([^ ]+) *(.*)/),a=this.createCommand(o);return s&&(a.description(s),a._executableHandler=!0),i.isDefault&&(this._defaultCommandName=a._name),a._hidden=!!(i.noHelp||i.hidden),a._executableFile=i.executableFile||null,c&&a.arguments(c),this._registerCommand(a),a.parent=this,a.copyInheritedSettings(this),s?this:a}createCommand(e){return new r(e)}createHelp(){return Object.assign(new Ns,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(Object.assign(this._outputConfiguration,e),this)}showHelpAfterError(e=!0){return typeof e!="string"&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
12
+ - specify the name in Command constructor or using .name()`);return t=t||{},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,t){return new Ts(e,t)}argument(e,t,n,s){let i=this.createArgument(e,t);return typeof n=="function"?i.default(s).argParser(n):i.default(n),this.addArgument(i),this}arguments(e){return e.trim().split(/ +/).forEach(t=>{this.argument(t)}),this}addArgument(e){let t=this.registeredArguments.slice(-1)[0];if(t&&t.variadic)throw new Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw new Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,t){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,n,s]=e.match(/([^ ]+) *(.*)/),i=t??"display help for command",o=this.createCommand(n);return o.helpOption(!1),s&&o.arguments(s),i&&o.description(i),this._addImplicitHelpCommand=!0,this._helpCommand=o,this}addHelpCommand(e,t){return typeof e!="object"?(this.helpCommand(e,t),this):(this._addImplicitHelpCommand=!0,this._helpCommand=e,this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(e,t){let n=["preSubcommand","preAction","postAction"];if(!n.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
13
+ Expecting one of '${n.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=t=>{if(t.code!=="commander.executeSubCommandAsync")throw t},this}_exit(e,t,n){this._exitCallback&&this._exitCallback(new gt(e,t,n)),x.exit(e)}action(e){let t=n=>{let s=this.registeredArguments.length,i=n.slice(0,s);return this._storeOptionsAsProperties?i[s]=this:i[s]=this.opts(),i.push(this),e.apply(this,i)};return this._actionHandler=t,this}createOption(e,t){return new sr(e,t)}_callParseArg(e,t,n,s){try{return e.parseArg(t,n)}catch(i){if(i.code==="commander.invalidArgument"){let o=`${s} ${i.message}`;this.error(o,{exitCode:i.exitCode,code:i.code})}throw i}}_registerOption(e){let t=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(t){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw new Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}'
14
+ - already used by option '${t.flags}'`)}this.options.push(e)}_registerCommand(e){let t=s=>[s.name()].concat(s.aliases()),n=t(e).find(s=>this._findCommand(s));if(n){let s=t(this._findCommand(n)).join("|"),i=t(e).join("|");throw new Error(`cannot add command '${i}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let t=e.name(),n=e.attributeName();if(e.negate){let i=e.long.replace(/^--no-/,"--");this._findOption(i)||this.setOptionValueWithSource(n,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(n,e.defaultValue,"default");let s=(i,o,c)=>{i==null&&e.presetArg!==void 0&&(i=e.presetArg);let a=this.getOptionValue(n);i!==null&&e.parseArg?i=this._callParseArg(e,i,a,o):i!==null&&e.variadic&&(i=e._concatValue(i,a)),i==null&&(e.negate?i=!1:e.isBoolean()||e.optional?i=!0:i=""),this.setOptionValueWithSource(n,i,c)};return this.on("option:"+t,i=>{let o=`error: option '${e.flags}' argument '${i}' is invalid.`;s(i,o,"cli")}),e.envVar&&this.on("optionEnv:"+t,i=>{let o=`error: option '${e.flags}' value '${i}' from env '${e.envVar}' is invalid.`;s(i,o,"env")}),this}_optionEx(e,t,n,s,i){if(typeof t=="object"&&t instanceof sr)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let o=this.createOption(t,n);if(o.makeOptionMandatory(!!e.mandatory),typeof s=="function")o.default(i).argParser(s);else if(s instanceof RegExp){let c=s;s=(a,l)=>{let d=c.exec(a);return d?d[0]:l},o.default(i).argParser(s)}else o.default(s);return this.addOption(o)}option(e,t,n,s){return this._optionEx({},e,t,n,s)}requiredOption(e,t,n,s){return this._optionEx({mandatory:!0},e,t,n,s)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw new Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(e=!0){if(this.options.length)throw new Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw new Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,n){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return this._getCommandAndAncestors().forEach(n=>{n.getOptionValueSource(e)!==void 0&&(t=n.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(t=t||{},e===void 0&&t.from===void 0){x.versions?.electron&&(t.from="electron");let s=x.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(t.from="eval")}e===void 0&&(e=x.argv),this.rawArgs=e.slice();let n;switch(t.from){case void 0:case"node":this._scriptPath=e[1],n=e.slice(2);break;case"electron":x.defaultApp?(this._scriptPath=e[1],n=e.slice(2)):n=e.slice(1);break;case"user":n=e.slice(0);break;case"eval":n=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",n}parse(e,t){let n=this._prepareUserArgs(e,t);return this._parseCommand([],n),this}async parseAsync(e,t){let n=this._prepareUserArgs(e,t);return await this._parseCommand([],n),this}_executeSubCommand(e,t){t=t.slice();let n=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function i(d,u){let h=j.resolve(d,u);if(pt.existsSync(h))return h;if(s.includes(j.extname(u)))return;let g=s.find(f=>pt.existsSync(`${h}${f}`));if(g)return`${h}${g}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let o=e._executableFile||`${this._name}-${e._name}`,c=this._executableDir||"";if(this._scriptPath){let d;try{d=pt.realpathSync(this._scriptPath)}catch{d=this._scriptPath}c=j.resolve(j.dirname(d),c)}if(c){let d=i(c,o);if(!d&&!e._executableFile&&this._scriptPath){let u=j.basename(this._scriptPath,j.extname(this._scriptPath));u!==this._name&&(d=i(c,`${u}-${e._name}`))}o=d||o}n=s.includes(j.extname(o));let a;x.platform!=="win32"?n?(t.unshift(o),t=or(x.execArgv).concat(t),a=ft.spawn(x.argv[0],t,{stdio:"inherit"})):a=ft.spawn(o,t,{stdio:"inherit"}):(t.unshift(o),t=or(x.execArgv).concat(t),a=ft.spawn(x.execPath,t,{stdio:"inherit"})),a.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(u=>{x.on(u,()=>{a.killed===!1&&a.exitCode===null&&a.kill(u)})});let l=this._exitCallback;a.on("close",d=>{d=d??1,l?l(new gt(d,"commander.executeSubCommandAsync","(close)")):x.exit(d)}),a.on("error",d=>{if(d.code==="ENOENT"){let u=c?`searched for local subcommand relative to directory '${c}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",h=`'${o}' does not exist
15
15
  - if '${e._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
16
16
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
17
- - ${u}`;throw new Error(h)}else if(d.code==="EACCES")throw new Error(`'${o}' not executable`);if(!l)x.exit(1);else{let u=new mt(1,"commander.executeSubCommandAsync","(error)");u.nestedError=d,l(u)}}),this.runningCommand=a}_dispatchSubcommand(e,t,n){let s=this._findCommand(e);s||this.help({error:!0});let i;return i=this._chainOrCallSubCommandHook(i,s,"preSubcommand"),i=this._chainOrCall(i,()=>{if(s._executableHandler)this._executeSubCommand(s,t.concat(n));else return s._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(n,s,i)=>{let o=s;if(s!==null&&n.parseArg){let c=`error: command-argument value '${s}' is invalid for argument '${n.name()}'.`;o=this._callParseArg(n,s,i,c)}return o};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,s)=>{let i=n.defaultValue;n.variadic?s<this.args.length?(i=this.args.slice(s),n.parseArg&&(i=i.reduce((o,c)=>e(n,c,o),n.defaultValue))):i===void 0&&(i=[]):s<this.args.length&&(i=this.args[s],n.parseArg&&(i=e(n,i,n.defaultValue))),t[s]=i}),this.processedArgs=t}_chainOrCall(e,t){return e&&e.then&&typeof e.then=="function"?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,s=[];return this._getCommandAndAncestors().reverse().filter(i=>i._lifeCycleHooks[t]!==void 0).forEach(i=>{i._lifeCycleHooks[t].forEach(o=>{s.push({hookedCommand:i,callback:o})})}),t==="postAction"&&s.reverse(),s.forEach(i=>{n=this._chainOrCall(n,()=>i.callback(i.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let s=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(i=>{s=this._chainOrCall(s,()=>i(this,t))}),s}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let s=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){s(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(i,e,t)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent&&this.parent.listenerCount(i))s(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,t);this.listenerCount("command:*")?this.emit("command:*",e,t):this.commands.length?this.unknownCommand():(s(),this._processArguments())}else this.commands.length?(s(),this.help({error:!0})):(s(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(n=>{let s=n.attributeName();return this.getOptionValue(s)===void 0?!1:this.getOptionValueSource(s)!=="default"});e.filter(n=>n.conflictsWith.length>0).forEach(n=>{let s=e.find(i=>n.conflictsWith.includes(i.attributeName()));s&&this._conflictingOption(n,s)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],s=t,i=e.slice();function o(a){return a.length>1&&a[0]==="-"}let c=null;for(;i.length;){let a=i.shift();if(a==="--"){s===n&&s.push(a),s.push(...i);break}if(c&&!o(a)){this.emit(`option:${c.name()}`,a);continue}if(c=null,o(a)){let l=this._findOption(a);if(l){if(l.required){let d=i.shift();d===void 0&&this.optionMissingArgument(l),this.emit(`option:${l.name()}`,d)}else if(l.optional){let d=null;i.length>0&&!o(i[0])&&(d=i.shift()),this.emit(`option:${l.name()}`,d)}else this.emit(`option:${l.name()}`);c=l.variadic?l:null;continue}}if(a.length>2&&a[0]==="-"&&a[1]!=="-"){let l=this._findOption(`-${a[1]}`);if(l){l.required||l.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${l.name()}`,a.slice(2)):(this.emit(`option:${l.name()}`),i.unshift(`-${a.slice(2)}`));continue}}if(/^--[^=]+=/.test(a)){let l=a.indexOf("="),d=this._findOption(a.slice(0,l));if(d&&(d.required||d.optional)){this.emit(`option:${d.name()}`,a.slice(l+1));continue}}if(o(a)&&(s=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(a)){t.push(a),i.length>0&&n.push(...i);break}else if(this._getHelpCommand()&&a===this._getHelpCommand().name()){t.push(a),i.length>0&&t.push(...i);break}else if(this._defaultCommandName){n.push(a),i.length>0&&n.push(...i);break}}if(this._passThroughOptions){s.push(a),i.length>0&&s.push(...i);break}s.push(a)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let s=this.options[n].attributeName();e[s]=s===this._versionOptionName?this._version:this[s]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}
17
+ - ${u}`;throw new Error(h)}else if(d.code==="EACCES")throw new Error(`'${o}' not executable`);if(!l)x.exit(1);else{let u=new gt(1,"commander.executeSubCommandAsync","(error)");u.nestedError=d,l(u)}}),this.runningCommand=a}_dispatchSubcommand(e,t,n){let s=this._findCommand(e);s||this.help({error:!0});let i;return i=this._chainOrCallSubCommandHook(i,s,"preSubcommand"),i=this._chainOrCall(i,()=>{if(s._executableHandler)this._executeSubCommand(s,t.concat(n));else return s._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(n,s,i)=>{let o=s;if(s!==null&&n.parseArg){let c=`error: command-argument value '${s}' is invalid for argument '${n.name()}'.`;o=this._callParseArg(n,s,i,c)}return o};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,s)=>{let i=n.defaultValue;n.variadic?s<this.args.length?(i=this.args.slice(s),n.parseArg&&(i=i.reduce((o,c)=>e(n,c,o),n.defaultValue))):i===void 0&&(i=[]):s<this.args.length&&(i=this.args[s],n.parseArg&&(i=e(n,i,n.defaultValue))),t[s]=i}),this.processedArgs=t}_chainOrCall(e,t){return e&&e.then&&typeof e.then=="function"?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,s=[];return this._getCommandAndAncestors().reverse().filter(i=>i._lifeCycleHooks[t]!==void 0).forEach(i=>{i._lifeCycleHooks[t].forEach(o=>{s.push({hookedCommand:i,callback:o})})}),t==="postAction"&&s.reverse(),s.forEach(i=>{n=this._chainOrCall(n,()=>i.callback(i.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let s=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(i=>{s=this._chainOrCall(s,()=>i(this,t))}),s}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let s=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){s(),this._processArguments();let o;return o=this._chainOrCallHooks(o,"preAction"),o=this._chainOrCall(o,()=>this._actionHandler(this.processedArgs)),this.parent&&(o=this._chainOrCall(o,()=>{this.parent.emit(i,e,t)})),o=this._chainOrCallHooks(o,"postAction"),o}if(this.parent&&this.parent.listenerCount(i))s(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,t);this.listenerCount("command:*")?this.emit("command:*",e,t):this.commands.length?this.unknownCommand():(s(),this._processArguments())}else this.commands.length?(s(),this.help({error:!0})):(s(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(n=>{let s=n.attributeName();return this.getOptionValue(s)===void 0?!1:this.getOptionValueSource(s)!=="default"});e.filter(n=>n.conflictsWith.length>0).forEach(n=>{let s=e.find(i=>n.conflictsWith.includes(i.attributeName()));s&&this._conflictingOption(n,s)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],s=t,i=e.slice();function o(a){return a.length>1&&a[0]==="-"}let c=null;for(;i.length;){let a=i.shift();if(a==="--"){s===n&&s.push(a),s.push(...i);break}if(c&&!o(a)){this.emit(`option:${c.name()}`,a);continue}if(c=null,o(a)){let l=this._findOption(a);if(l){if(l.required){let d=i.shift();d===void 0&&this.optionMissingArgument(l),this.emit(`option:${l.name()}`,d)}else if(l.optional){let d=null;i.length>0&&!o(i[0])&&(d=i.shift()),this.emit(`option:${l.name()}`,d)}else this.emit(`option:${l.name()}`);c=l.variadic?l:null;continue}}if(a.length>2&&a[0]==="-"&&a[1]!=="-"){let l=this._findOption(`-${a[1]}`);if(l){l.required||l.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${l.name()}`,a.slice(2)):(this.emit(`option:${l.name()}`),i.unshift(`-${a.slice(2)}`));continue}}if(/^--[^=]+=/.test(a)){let l=a.indexOf("="),d=this._findOption(a.slice(0,l));if(d&&(d.required||d.optional)){this.emit(`option:${d.name()}`,a.slice(l+1));continue}}if(o(a)&&(s=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(a)){t.push(a),i.length>0&&n.push(...i);break}else if(this._getHelpCommand()&&a===this._getHelpCommand().name()){t.push(a),i.length>0&&t.push(...i);break}else if(this._defaultCommandName){n.push(a),i.length>0&&n.push(...i);break}}if(this._passThroughOptions){s.push(a),i.length>0&&s.push(...i);break}s.push(a)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let s=this.options[n].attributeName();e[s]=s===this._versionOptionName?this._version:this[s]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}
18
18
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
19
19
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
20
- `),this.outputHelp({error:!0}));let n=t||{},s=n.exitCode||1,i=n.code||"commander.error";this._exit(s,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in x.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,x.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new Ns(this.options),t=n=>this.getOptionValue(n)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(n));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(n=>{Object.keys(n.implied).filter(s=>!t(s)).forEach(s=>{this.setOptionValueWithSource(s,n.implied[s],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let n=o=>{let c=o.attributeName(),a=this.getOptionValue(c),l=this.options.find(u=>u.negate&&c===u.attributeName()),d=this.options.find(u=>!u.negate&&c===u.attributeName());return l&&(l.presetArg===void 0&&a===!1||l.presetArg!==void 0&&a===l.presetArg)?l:d||o},s=o=>{let c=n(o),a=c.attributeName();return this.getOptionValueSource(a)==="env"?`environment variable '${c.envVar}'`:`option '${c.flags}'`},i=`error: ${s(e)} cannot be used with ${s(t)}`;this.error(i,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let s=[],i=this;do{let o=i.createHelp().visibleOptions(i).filter(c=>c.long).map(c=>c.long);s=s.concat(o),i=i.parent}while(i&&!i._enablePositionalOptions);t=sr(e,s)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?"":"s",i=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${n} but got ${e.length}.`;this.error(i,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let s=[];this.createHelp().visibleCommands(this).forEach(i=>{s.push(i.name()),i.alias()&&s.push(i.alias())}),t=sr(e,s)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:"commander.unknownCommand"})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",n=n||"output the version number";let s=this.createOption(t,n);return this._versionOptionName=s.attributeName(),this._registerOption(s),this.on("option:"+s.name(),()=>{this._outputConfiguration.writeOut(`${e}
21
- `),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");let n=this.parent?._findCommand(e);if(n){let s=[n.name()].concat(n.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${s}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(n=>Ts(n));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=j.basename(e,j.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},n;return t.error?n=s=>this._outputConfiguration.writeErr(s):n=s=>this._outputConfiguration.writeOut(s),t.write=e.write||n,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let n=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(i=>i.emit("beforeAllHelp",n)),this.emit("beforeHelp",n);let s=this.helpInformation(n);if(t&&(s=t(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");n.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",n),this._getCommandAndAncestors().forEach(i=>i.emit("afterAllHelp",n))}helpOption(e,t){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",t=t??"display help for command",this._helpOption=this.createOption(e,t),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let t=x.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let n=["beforeAll","before","after","afterAll"];if(!n.includes(e))throw new Error(`Unexpected value for position to addHelpText.
20
+ `),this.outputHelp({error:!0}));let n=t||{},s=n.exitCode||1,i=n.code||"commander.error";this._exit(s,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in x.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||["default","config","env"].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,x.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new Rs(this.options),t=n=>this.getOptionValue(n)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(n));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(n=>{Object.keys(n.implied).filter(s=>!t(s)).forEach(s=>{this.setOptionValueWithSource(s,n.implied[s],"implied")})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:"commander.missingArgument"})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,t){let n=o=>{let c=o.attributeName(),a=this.getOptionValue(c),l=this.options.find(u=>u.negate&&c===u.attributeName()),d=this.options.find(u=>!u.negate&&c===u.attributeName());return l&&(l.presetArg===void 0&&a===!1||l.presetArg!==void 0&&a===l.presetArg)?l:d||o},s=o=>{let c=n(o),a=c.attributeName();return this.getOptionValueSource(a)==="env"?`environment variable '${c.envVar}'`:`option '${c.flags}'`},i=`error: ${s(e)} cannot be used with ${s(t)}`;this.error(i,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let t="";if(e.startsWith("--")&&this._showSuggestionAfterError){let s=[],i=this;do{let o=i.createHelp().visibleOptions(i).filter(c=>c.long).map(c=>c.long);s=s.concat(o),i=i.parent}while(i&&!i._enablePositionalOptions);t=ir(e,s)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?"":"s",i=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${t} argument${n} but got ${e.length}.`;this.error(i,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],t="";if(this._showSuggestionAfterError){let s=[];this.createHelp().visibleCommands(this).forEach(i=>{s.push(i.name()),i.alias()&&s.push(i.alias())}),t=ir(e,s)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:"commander.unknownCommand"})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t=t||"-V, --version",n=n||"output the version number";let s=this.createOption(t,n);return this._versionOptionName=s.attributeName(),this._registerOption(s),this.on("option:"+s.name(),()=>{this._outputConfiguration.writeOut(`${e}
21
+ `),this._exit(0,"commander.version",e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw new Error("Command alias can't be the same as its name");let n=this.parent?._findCommand(e);if(n){let s=[n.name()].concat(n.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${s}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(t=>this.alias(t)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let t=this.registeredArguments.map(n=>Ps(n));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?t:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=j.basename(e,j.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp();return t.helpWidth===void 0&&(t.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),t.formatHelp(this,t)}_getHelpContext(e){e=e||{};let t={error:!!e.error},n;return t.error?n=s=>this._outputConfiguration.writeErr(s):n=s=>this._outputConfiguration.writeOut(s),t.write=e.write||n,t.command=this,t}outputHelp(e){let t;typeof e=="function"&&(t=e,e=void 0);let n=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(i=>i.emit("beforeAllHelp",n)),this.emit("beforeHelp",n);let s=this.helpInformation(n);if(t&&(s=t(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");n.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",n),this._getCommandAndAncestors().forEach(i=>i.emit("afterAllHelp",n))}helpOption(e,t){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",t=t??"display help for command",this._helpOption=this.createOption(e,t),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this}help(e){this.outputHelp(e);let t=x.exitCode||0;t===0&&e&&typeof e!="function"&&e.error&&(t=1),this._exit(t,"commander.help","(outputHelp)")}addHelpText(e,t){let n=["beforeAll","before","after","afterAll"];if(!n.includes(e))throw new Error(`Unexpected value for position to addHelpText.
22
22
  Expecting one of '${n.join("', '")}'`);let s=`${e}Help`;return this.on(s,i=>{let o;typeof t=="function"?o=t({error:i.error,command:i.command}):o=t,o&&i.write(`${o}
23
- `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(s=>t.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function ir(r){return r.map(e=>{if(!e.startsWith("--inspect"))return e;let t,n="127.0.0.1",s="9229",i;return(i=e.match(/^(--inspect(-brk)?)$/))!==null?t=i[1]:(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=i[1],/^\d+$/.test(i[3])?s=i[3]:n=i[3]):(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],s=i[4]),t&&s!=="0"?`${t}=${n}:${parseInt(s)+1}`:e})}or.Command=_t});var ur=E(T=>{var{Argument:lr}=Te(),{Command:yt}=ar(),{CommanderError:Rs,InvalidArgumentError:cr}=fe(),{Help:Ds}=ct(),{Option:dr}=ft();T.program=new yt;T.createCommand=r=>new yt(r);T.createOption=(r,e)=>new dr(r,e);T.createArgument=(r,e)=>new lr(r,e);T.Command=yt;T.Option=dr;T.Argument=lr;T.Help=Ds;T.CommanderError=Rs;T.InvalidArgumentError=cr;T.InvalidOptionArgumentError=cr});var br=E(k=>{"use strict";var bt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ls=bt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sync=r.isexe=void 0;var e=require("node:fs"),t=require("node:fs/promises"),n=async(c,a={})=>{let{ignoreErrors:l=!1}=a;try{return i(await(0,t.stat)(c),a)}catch(d){let u=d;if(l||u.code==="EACCES")return!1;throw u}};r.isexe=n;var s=(c,a={})=>{let{ignoreErrors:l=!1}=a;try{return i((0,e.statSync)(c),a)}catch(d){let u=d;if(l||u.code==="EACCES")return!1;throw u}};r.sync=s;var i=(c,a)=>c.isFile()&&o(c,a),o=(c,a)=>{let l=a.uid??process.getuid?.(),d=a.groups??process.getgroups?.()??[],u=a.gid??process.getgid?.()??d[0];if(l===void 0||u===void 0)throw new Error("cannot get uid or gid");let h=new Set([u,...d]),g=c.mode,f=c.uid,p=c.gid,m=parseInt("100",8),v=parseInt("010",8),C=parseInt("001",8),b=m|v;return!!(g&C||g&v&&h.has(p)||g&m&&f===l||g&b&&l===0)}}),Ms=bt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sync=r.isexe=void 0;var e=require("node:fs"),t=require("node:fs/promises"),n=require("node:path"),s=async(a,l={})=>{let{ignoreErrors:d=!1}=l;try{return c(await(0,t.stat)(a),a,l)}catch(u){let h=u;if(d||h.code==="EACCES")return!1;throw h}};r.isexe=s;var i=(a,l={})=>{let{ignoreErrors:d=!1}=l;try{return c((0,e.statSync)(a),a,l)}catch(u){let h=u;if(d||h.code==="EACCES")return!1;throw h}};r.sync=i;var o=(a,l)=>{let{pathExt:d=process.env.PATHEXT||""}=l,u=d.split(n.delimiter);if(u.indexOf("")!==-1)return!0;for(let h of u){let g=h.toLowerCase(),f=a.substring(a.length-g.length).toLowerCase();if(g&&f===g)return!0}return!1},c=(a,l,d)=>a.isFile()&&o(l,d)}),js=bt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0})}),pr=k&&k.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,s)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),$s=k&&k.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),gr=k&&k.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var n=[];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(n[n.length]=s);return n},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=r(e),s=0;s<n.length;s++)n[s]!=="default"&&pr(t,e,n[s]);return $s(t,e),t}})(),Bs=k&&k.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&pr(e,r,t)};Object.defineProperty(k,"__esModule",{value:!0});k.sync=k.isexe=k.posix=k.win32=void 0;var mr=gr(Ls());k.posix=mr;var _r=gr(Ms());k.win32=_r;Bs(js(),k);var Us=process.env._ISEXE_TEST_PLATFORM_||process.platform,yr=Us==="win32"?_r:mr;k.isexe=yr.isexe;k.sync=yr.sync});var Ar=E((xa,Cr)=>{var{isexe:Ws,sync:Fs}=br(),{join:qs,delimiter:Vs,sep:Sr,posix:wr}=require("path"),Er=process.platform==="win32",xr=new RegExp(`[${wr.sep}${Sr===wr.sep?"":Sr}]`.replace(/(\\)/g,"\\$1")),Hs=new RegExp(`^\\.${xr.source}`),vr=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),kr=(r,{path:e=process.env.PATH,pathExt:t=process.env.PATHEXT,delimiter:n=Vs})=>{let s=r.match(xr)?[""]:[...Er?[process.cwd()]:[],...(e||"").split(n)];if(Er){let i=t||[".EXE",".CMD",".BAT",".COM"].join(n),o=i.split(n).flatMap(c=>[c,c.toLowerCase()]);return r.includes(".")&&o[0]!==""&&o.unshift(""),{pathEnv:s,pathExt:o,pathExtExe:i}}return{pathEnv:s,pathExt:[""]}},Or=(r,e)=>{let t=/^".*"$/.test(r)?r.slice(1,-1):r;return(!t&&Hs.test(e)?e.slice(0,2):"")+qs(t,e)},Ir=async(r,e={})=>{let{pathEnv:t,pathExt:n,pathExtExe:s}=kr(r,e),i=[];for(let o of t){let c=Or(o,r);for(let a of n){let l=c+a;if(await Ws(l,{pathExt:s,ignoreErrors:!0})){if(!e.all)return l;i.push(l)}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw vr(r)},Gs=(r,e={})=>{let{pathEnv:t,pathExt:n,pathExtExe:s}=kr(r,e),i=[];for(let o of t){let c=Or(o,r);for(let a of n){let l=c+a;if(Fs(l,{pathExt:s,ignoreErrors:!0})){if(!e.all)return l;i.push(l)}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw vr(r)};Cr.exports=Ir;Ir.sync=Gs});var $=E((Ia,jr)=>{"use strict";var Lr=["nodebuffer","arraybuffer","fragments"],Mr=typeof Blob<"u";Mr&&Lr.push("blob");jr.exports={BINARY_TYPES:Lr,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:Mr,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var pe=E((Ca,De)=>{"use strict";var{EMPTY_BUFFER:Ys}=$(),Et=Buffer[Symbol.species];function zs(r,e){if(r.length===0)return Ys;if(r.length===1)return r[0];let t=Buffer.allocUnsafe(e),n=0;for(let s=0;s<r.length;s++){let i=r[s];t.set(i,n),n+=i.length}return n<e?new Et(t.buffer,t.byteOffset,n):t}function $r(r,e,t,n,s){for(let i=0;i<s;i++)t[n+i]=r[i]^e[i&3]}function Br(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t&3]}function Js(r){return r.length===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.length)}function xt(r){if(xt.readOnly=!0,Buffer.isBuffer(r))return r;let e;return r instanceof ArrayBuffer?e=new Et(r):ArrayBuffer.isView(r)?e=new Et(r.buffer,r.byteOffset,r.byteLength):(e=Buffer.from(r),xt.readOnly=!1),e}De.exports={concat:zs,mask:$r,toArrayBuffer:Js,toBuffer:xt,unmask:Br};if(!process.env.WS_NO_BUFFER_UTIL)try{let r=require("bufferutil");De.exports.mask=function(e,t,n,s,i){i<48?$r(e,t,n,s,i):r.mask(e,t,n,s,i)},De.exports.unmask=function(e,t){e.length<32?Br(e,t):r.unmask(e,t)}}catch{}});var Fr=E((Aa,Wr)=>{"use strict";var Ur=Symbol("kDone"),vt=Symbol("kRun"),kt=class{constructor(e){this[Ur]=()=>{this.pending--,this[vt]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[vt]()}[vt](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[Ur])}}};Wr.exports=kt});var ie=E((Ta,Gr)=>{"use strict";var ge=require("zlib"),qr=pe(),Xs=Fr(),{kStatusCode:Vr}=$(),Qs=Buffer[Symbol.species],Zs=Buffer.from([0,0,255,255]),Me=Symbol("permessage-deflate"),B=Symbol("total-length"),ne=Symbol("callback"),q=Symbol("buffers"),se=Symbol("error"),Le,Ot=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!Le){let t=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;Le=new Xs(t)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[ne];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,n=e.find(s=>!(t.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits=="number"&&t.serverMaxWindowBits>s.server_max_window_bits)||typeof t.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!n)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof t.serverMaxWindowBits=="number"&&(n.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits=="number"?n.client_max_window_bits=t.clientMaxWindowBits:(n.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return t}normalizeParams(e){return e.forEach(t=>{Object.keys(t).forEach(n=>{let s=t[n];if(s.length>1)throw new Error(`Parameter "${n}" must have only a single value`);if(s=s[0],n==="client_max_window_bits"){if(s!==!0){let i=+s;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${n}": ${s}`);s=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${n}": ${s}`)}else if(n==="server_max_window_bits"){let i=+s;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${n}": ${s}`);s=i}else if(n==="client_no_context_takeover"||n==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${n}": ${s}`)}else throw new Error(`Unknown parameter "${n}"`);t[n]=s})}),e}decompress(e,t,n){Le.add(s=>{this._decompress(e,t,(i,o)=>{s(),n(i,o)})})}compress(e,t,n){Le.add(s=>{this._compress(e,t,(i,o)=>{s(),n(i,o)})})}_decompress(e,t,n){let s=this._isServer?"client":"server";if(!this._inflate){let i=`${s}_max_window_bits`,o=typeof this.params[i]!="number"?ge.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=ge.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[Me]=this,this._inflate[B]=0,this._inflate[q]=[],this._inflate.on("error",ti),this._inflate.on("data",Hr)}this._inflate[ne]=n,this._inflate.write(e),t&&this._inflate.write(Zs),this._inflate.flush(()=>{let i=this._inflate[se];if(i){this._inflate.close(),this._inflate=null,n(i);return}let o=qr.concat(this._inflate[q],this._inflate[B]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[B]=0,this._inflate[q]=[],t&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),n(null,o)})}_compress(e,t,n){let s=this._isServer?"server":"client";if(!this._deflate){let i=`${s}_max_window_bits`,o=typeof this.params[i]!="number"?ge.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=ge.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[B]=0,this._deflate[q]=[],this._deflate.on("data",ei)}this._deflate[ne]=n,this._deflate.write(e),this._deflate.flush(ge.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=qr.concat(this._deflate[q],this._deflate[B]);t&&(i=new Qs(i.buffer,i.byteOffset,i.length-4)),this._deflate[ne]=null,this._deflate[B]=0,this._deflate[q]=[],t&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),n(null,i)})}};Gr.exports=Ot;function ei(r){this[q].push(r),this[B]+=r.length}function Hr(r){if(this[B]+=r.length,this[Me]._maxPayload<1||this[B]<=this[Me]._maxPayload){this[q].push(r);return}this[se]=new RangeError("Max payload size exceeded"),this[se].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[se][Vr]=1009,this.removeListener("data",Hr),this.reset()}function ti(r){if(this[Me]._inflate=null,this[se]){this[ne](this[se]);return}r[Vr]=1007,this[ne](r)}});var oe=E((Pa,je)=>{"use strict";var{isUtf8:Kr}=require("buffer"),{hasBlob:ri}=$(),ni=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function si(r){return r>=1e3&&r<=1014&&r!==1004&&r!==1005&&r!==1006||r>=3e3&&r<=4999}function It(r){let e=r.length,t=0;for(;t<e;)if((r[t]&128)===0)t++;else if((r[t]&224)===192){if(t+1===e||(r[t+1]&192)!==128||(r[t]&254)===192)return!1;t+=2}else if((r[t]&240)===224){if(t+2>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||r[t]===224&&(r[t+1]&224)===128||r[t]===237&&(r[t+1]&224)===160)return!1;t+=3}else if((r[t]&248)===240){if(t+3>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||(r[t+3]&192)!==128||r[t]===240&&(r[t+1]&240)===128||r[t]===244&&r[t+1]>143||r[t]>244)return!1;t+=4}else return!1;return!0}function ii(r){return ri&&typeof r=="object"&&typeof r.arrayBuffer=="function"&&typeof r.type=="string"&&typeof r.stream=="function"&&(r[Symbol.toStringTag]==="Blob"||r[Symbol.toStringTag]==="File")}je.exports={isBlob:ii,isValidStatusCode:si,isValidUTF8:It,tokenChars:ni};if(Kr)je.exports.isValidUTF8=function(r){return r.length<24?It(r):Kr(r)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let r=require("utf-8-validate");je.exports.isValidUTF8=function(e){return e.length<32?It(e):r(e)}}catch{}});var Nt=E((Na,en)=>{"use strict";var{Writable:oi}=require("stream"),Yr=ie(),{BINARY_TYPES:ai,EMPTY_BUFFER:zr,kStatusCode:li,kWebSocket:ci}=$(),{concat:Ct,toArrayBuffer:di,unmask:ui}=pe(),{isValidStatusCode:hi,isValidUTF8:Jr}=oe(),$e=Buffer[Symbol.species],P=0,Xr=1,Qr=2,Zr=3,At=4,Tt=5,Be=6,Pt=class extends oi{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||ai[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[ci]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=P}_write(e,t,n){if(this._opcode===8&&this._state==P)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let n=this._buffers[0];return this._buffers[0]=new $e(n.buffer,n.byteOffset+e,n.length-e),new $e(n.buffer,n.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let n=this._buffers[0],s=t.length-e;e>=n.length?t.set(this._buffers.shift(),s):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),s),this._buffers[0]=new $e(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case P:this.getInfo(e);break;case Xr:this.getPayloadLength16(e);break;case Qr:this.getPayloadLength64(e);break;case Zr:this.getMask();break;case At:this.getData(e);break;case Tt:case Be:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((t[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let n=(t[0]&64)===64;if(n&&!this._extensions[Yr.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(t[0]&128)===128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(n){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(n){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=Xr:this._payloadLength===127?this._state=Qr:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),n=t.readUInt32BE(0);if(n>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=n*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}this._masked?this._state=Zr:this._state=At}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=At}getData(e){let t=zr;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&ui(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=Tt,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[Yr.extensionName].decompress(e,this._fin,(s,i)=>{if(s)return t(s);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(o);return}this._fragments.push(i)}this.dataMessage(t),this._state===P&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=P;return}let t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=Ct(n,t):this._binaryType==="arraybuffer"?s=di(Ct(n,t)):this._binaryType==="blob"?s=new Blob(n):s=n,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=P):(this._state=Be,setImmediate(()=>{this.emit("message",s,!0),this._state=P,this.startLoop(e)}))}else{let s=Ct(n,t);if(!this._skipUTF8Validation&&!Jr(s)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(i);return}this._state===Tt||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=P):(this._state=Be,setImmediate(()=>{this.emit("message",s,!1),this._state=P,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,zr),this.end();else{let n=e.readUInt16BE(0);if(!hi(n)){let i=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");t(i);return}let s=new $e(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Jr(s)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._loop=!1,this.emit("conclude",n,s),this.end()}this._state=P;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=P):(this._state=Be,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=P,this.startLoop(t)}))}createError(e,t,n,s,i){this._loop=!1,this._errored=!0;let o=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(o,this.createError),o.code=i,o[li]=s,o}};en.exports=Pt});var Lt=E((Da,nn)=>{"use strict";var{Duplex:Ra}=require("stream"),{randomFillSync:fi}=require("crypto"),tn=ie(),{EMPTY_BUFFER:pi,kWebSocket:gi,NOOP:mi}=$(),{isBlob:ae,isValidStatusCode:_i}=oe(),{mask:rn,toBuffer:K}=pe(),N=Symbol("kByteLength"),yi=Buffer.alloc(4),Ue=8*1024,Y,le=Ue,D=0,bi=1,Si=2,Rt=class r{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=D,this.onerror=mi,this[gi]=void 0}static frame(e,t){let n,s=!1,i=2,o=!1;t.mask&&(n=t.maskBuffer||yi,t.generateMask?t.generateMask(n):(le===Ue&&(Y===void 0&&(Y=Buffer.alloc(Ue)),fi(Y,0,Ue),le=0),n[0]=Y[le++],n[1]=Y[le++],n[2]=Y[le++],n[3]=Y[le++]),o=(n[0]|n[1]|n[2]|n[3])===0,i=6);let c;typeof e=="string"?(!t.mask||o)&&t[N]!==void 0?c=t[N]:(e=Buffer.from(e),c=e.length):(c=e.length,s=t.mask&&t.readOnly&&!o);let a=c;c>=65536?(i+=8,a=127):c>125&&(i+=2,a=126);let l=Buffer.allocUnsafe(s?c+i:i);return l[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(l[0]|=64),l[1]=a,a===126?l.writeUInt16BE(c,2):a===127&&(l[2]=l[3]=0,l.writeUIntBE(c,4,6)),t.mask?(l[1]|=128,l[i-4]=n[0],l[i-3]=n[1],l[i-2]=n[2],l[i-1]=n[3],o?[l,e]:s?(rn(e,n,l,i,c),[l]):(rn(e,n,e,0,c),[l,e])):[l,e]}close(e,t,n,s){let i;if(e===void 0)i=pi;else{if(typeof e!="number"||!_i(e))throw new TypeError("First argument must be a valid error code number");if(t===void 0||!t.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0);else{let c=Buffer.byteLength(t);if(c>123)throw new RangeError("The message must not be greater than 123 bytes");i=Buffer.allocUnsafe(2+c),i.writeUInt16BE(e,0),typeof t=="string"?i.write(t,2):i.set(t,2)}}let o={[N]:i.length,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==D?this.enqueue([this.dispatch,i,!1,o,s]):this.sendFrame(r.frame(i,o),s)}ping(e,t,n){let s,i;if(typeof e=="string"?(s=Buffer.byteLength(e),i=!1):ae(e)?(s=e.size,i=!1):(e=K(e),s=e.length,i=K.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[N]:s,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};ae(e)?this._state!==D?this.enqueue([this.getBlobData,e,!1,o,n]):this.getBlobData(e,!1,o,n):this._state!==D?this.enqueue([this.dispatch,e,!1,o,n]):this.sendFrame(r.frame(e,o),n)}pong(e,t,n){let s,i;if(typeof e=="string"?(s=Buffer.byteLength(e),i=!1):ae(e)?(s=e.size,i=!1):(e=K(e),s=e.length,i=K.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[N]:s,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};ae(e)?this._state!==D?this.enqueue([this.getBlobData,e,!1,o,n]):this.getBlobData(e,!1,o,n):this._state!==D?this.enqueue([this.dispatch,e,!1,o,n]):this.sendFrame(r.frame(e,o),n)}send(e,t,n){let s=this._extensions[tn.extensionName],i=t.binary?2:1,o=t.compress,c,a;typeof e=="string"?(c=Buffer.byteLength(e),a=!1):ae(e)?(c=e.size,a=!1):(e=K(e),c=e.length,a=K.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=c>=s._threshold),this._compress=o):(o=!1,i=0),t.fin&&(this._firstFragment=!0);let l={[N]:c,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:a,rsv1:o};ae(e)?this._state!==D?this.enqueue([this.getBlobData,e,this._compress,l,n]):this.getBlobData(e,this._compress,l,n):this._state!==D?this.enqueue([this.dispatch,e,this._compress,l,n]):this.dispatch(e,this._compress,l,n)}getBlobData(e,t,n,s){this._bufferedBytes+=n[N],this._state=Si,e.arrayBuffer().then(i=>{if(this._socket.destroyed){let c=new Error("The socket was closed while the blob was being read");process.nextTick(Dt,this,c,s);return}this._bufferedBytes-=n[N];let o=K(i);t?this.dispatch(o,t,n,s):(this._state=D,this.sendFrame(r.frame(o,n),s),this.dequeue())}).catch(i=>{process.nextTick(wi,this,i,s)})}dispatch(e,t,n,s){if(!t){this.sendFrame(r.frame(e,n),s);return}let i=this._extensions[tn.extensionName];this._bufferedBytes+=n[N],this._state=bi,i.compress(e,n.fin,(o,c)=>{if(this._socket.destroyed){let a=new Error("The socket was closed while data was being compressed");Dt(this,a,s);return}this._bufferedBytes-=n[N],this._state=D,n.readOnly=!1,this.sendFrame(r.frame(c,n),s),this.dequeue()})}dequeue(){for(;this._state===D&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][N],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][N],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};nn.exports=Rt;function Dt(r,e,t){typeof t=="function"&&t(e);for(let n=0;n<r._queue.length;n++){let s=r._queue[n],i=s[s.length-1];typeof i=="function"&&i(e)}}function wi(r,e,t){Dt(r,e,t),r.onerror(e)}});var fn=E((La,hn)=>{"use strict";var{kForOnEventAttribute:me,kListener:Mt}=$(),sn=Symbol("kCode"),on=Symbol("kData"),an=Symbol("kError"),ln=Symbol("kMessage"),cn=Symbol("kReason"),ce=Symbol("kTarget"),dn=Symbol("kType"),un=Symbol("kWasClean"),U=class{constructor(e){this[ce]=null,this[dn]=e}get target(){return this[ce]}get type(){return this[dn]}};Object.defineProperty(U.prototype,"target",{enumerable:!0});Object.defineProperty(U.prototype,"type",{enumerable:!0});var z=class extends U{constructor(e,t={}){super(e),this[sn]=t.code===void 0?0:t.code,this[cn]=t.reason===void 0?"":t.reason,this[un]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[sn]}get reason(){return this[cn]}get wasClean(){return this[un]}};Object.defineProperty(z.prototype,"code",{enumerable:!0});Object.defineProperty(z.prototype,"reason",{enumerable:!0});Object.defineProperty(z.prototype,"wasClean",{enumerable:!0});var de=class extends U{constructor(e,t={}){super(e),this[an]=t.error===void 0?null:t.error,this[ln]=t.message===void 0?"":t.message}get error(){return this[an]}get message(){return this[ln]}};Object.defineProperty(de.prototype,"error",{enumerable:!0});Object.defineProperty(de.prototype,"message",{enumerable:!0});var _e=class extends U{constructor(e,t={}){super(e),this[on]=t.data===void 0?null:t.data}get data(){return this[on]}};Object.defineProperty(_e.prototype,"data",{enumerable:!0});var Ei={addEventListener(r,e,t={}){for(let s of this.listeners(r))if(!t[me]&&s[Mt]===e&&!s[me])return;let n;if(r==="message")n=function(i,o){let c=new _e("message",{data:o?i:i.toString()});c[ce]=this,We(e,this,c)};else if(r==="close")n=function(i,o){let c=new z("close",{code:i,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});c[ce]=this,We(e,this,c)};else if(r==="error")n=function(i){let o=new de("error",{error:i,message:i.message});o[ce]=this,We(e,this,o)};else if(r==="open")n=function(){let i=new U("open");i[ce]=this,We(e,this,i)};else return;n[me]=!!t[me],n[Mt]=e,t.once?this.once(r,n):this.on(r,n)},removeEventListener(r,e){for(let t of this.listeners(r))if(t[Mt]===e&&!t[me]){this.removeListener(r,t);break}}};hn.exports={CloseEvent:z,ErrorEvent:de,Event:U,EventTarget:Ei,MessageEvent:_e};function We(r,e,t){typeof r=="object"&&r.handleEvent?r.handleEvent.call(r,t):r.call(e,t)}});var Fe=E((Ma,pn)=>{"use strict";var{tokenChars:ye}=oe();function M(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}function xi(r){let e=Object.create(null),t=Object.create(null),n=!1,s=!1,i=!1,o,c,a=-1,l=-1,d=-1,u=0;for(;u<r.length;u++)if(l=r.charCodeAt(u),o===void 0)if(d===-1&&ye[l]===1)a===-1&&(a=u);else if(u!==0&&(l===32||l===9))d===-1&&a!==-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u);let g=r.slice(a,d);l===44?(M(e,g,t),t=Object.create(null)):o=g,a=d=-1}else throw new SyntaxError(`Unexpected character at index ${u}`);else if(c===void 0)if(d===-1&&ye[l]===1)a===-1&&(a=u);else if(l===32||l===9)d===-1&&a!==-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u),M(t,r.slice(a,d),!0),l===44&&(M(e,o,t),t=Object.create(null),o=void 0),a=d=-1}else if(l===61&&a!==-1&&d===-1)c=r.slice(a,u),a=d=-1;else throw new SyntaxError(`Unexpected character at index ${u}`);else if(s){if(ye[l]!==1)throw new SyntaxError(`Unexpected character at index ${u}`);a===-1?a=u:n||(n=!0),s=!1}else if(i)if(ye[l]===1)a===-1&&(a=u);else if(l===34&&a!==-1)i=!1,d=u;else if(l===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${u}`);else if(l===34&&r.charCodeAt(u-1)===61)i=!0;else if(d===-1&&ye[l]===1)a===-1&&(a=u);else if(a!==-1&&(l===32||l===9))d===-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u);let g=r.slice(a,d);n&&(g=g.replace(/\\/g,""),n=!1),M(t,c,g),l===44&&(M(e,o,t),t=Object.create(null),o=void 0),c=void 0,a=d=-1}else throw new SyntaxError(`Unexpected character at index ${u}`);if(a===-1||i||l===32||l===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=u);let h=r.slice(a,d);return o===void 0?M(e,h,t):(c===void 0?M(t,h,!0):n?M(t,c,h.replace(/\\/g,"")):M(t,c,h),M(e,o,t)),e}function vi(r){return Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)||(t=[t]),t.map(n=>[e].concat(Object.keys(n).map(s=>{let i=n[s];return Array.isArray(i)||(i=[i]),i.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}pn.exports={format:vi,parse:xi}});var Ge=E((Ba,On)=>{"use strict";var ki=require("events"),Oi=require("https"),Ii=require("http"),_n=require("net"),Ci=require("tls"),{randomBytes:Ai,createHash:Ti}=require("crypto"),{Duplex:ja,Readable:$a}=require("stream"),{URL:jt}=require("url"),V=ie(),Pi=Nt(),Ni=Lt(),{isBlob:Ri}=oe(),{BINARY_TYPES:gn,CLOSE_TIMEOUT:Di,EMPTY_BUFFER:qe,GUID:Li,kForOnEventAttribute:$t,kListener:Mi,kStatusCode:ji,kWebSocket:I,NOOP:yn}=$(),{EventTarget:{addEventListener:$i,removeEventListener:Bi}}=fn(),{format:Ui,parse:Wi}=Fe(),{toBuffer:Fi}=pe(),bn=Symbol("kAborted"),Bt=[8,13],W=["CONNECTING","OPEN","CLOSING","CLOSED"],qi=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,S=class r extends ki{constructor(e,t,n){super(),this._binaryType=gn[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=qe,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=r.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,t===void 0?t=[]:Array.isArray(t)||(typeof t=="object"&&t!==null?(n=t,t=[]):t=[t]),Sn(this,e,t,n)):(this._autoPong=n.autoPong,this._closeTimeout=n.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){gn.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,n){let s=new Pi({allowSynchronousEvents:n.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation}),i=new Ni(e,this._extensions,n.generateMask);this._receiver=s,this._sender=i,this._socket=e,s[I]=this,i[I]=this,e[I]=this,s.on("conclude",Gi),s.on("drain",Ki),s.on("error",Yi),s.on("message",zi),s.on("ping",Ji),s.on("pong",Xi),i.onerror=Qi,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",xn),e.on("data",He),e.on("end",vn),e.on("error",kn),this._readyState=r.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[V.extensionName]&&this._extensions[V.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){A(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===r.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=r.CLOSING,this._sender.close(e,t,!this._isServer,n=>{n||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),En(this)}}pause(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=t=void 0):typeof t=="function"&&(n=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Ut(this,e,n);return}t===void 0&&(t=!this._isServer),this._sender.ping(e||qe,t,n)}pong(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=t=void 0):typeof t=="function"&&(n=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Ut(this,e,n);return}t===void 0&&(t=!this._isServer),this._sender.pong(e||qe,t,n)}resume(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"&&(n=t,t={}),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Ut(this,e,n);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[V.extensionName]||(s.compress=!1),this._sender.send(e||qe,s,n)}terminate(){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){A(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=r.CLOSING,this._socket.destroy())}}};Object.defineProperty(S,"CONNECTING",{enumerable:!0,value:W.indexOf("CONNECTING")});Object.defineProperty(S.prototype,"CONNECTING",{enumerable:!0,value:W.indexOf("CONNECTING")});Object.defineProperty(S,"OPEN",{enumerable:!0,value:W.indexOf("OPEN")});Object.defineProperty(S.prototype,"OPEN",{enumerable:!0,value:W.indexOf("OPEN")});Object.defineProperty(S,"CLOSING",{enumerable:!0,value:W.indexOf("CLOSING")});Object.defineProperty(S.prototype,"CLOSING",{enumerable:!0,value:W.indexOf("CLOSING")});Object.defineProperty(S,"CLOSED",{enumerable:!0,value:W.indexOf("CLOSED")});Object.defineProperty(S.prototype,"CLOSED",{enumerable:!0,value:W.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(r=>{Object.defineProperty(S.prototype,r,{enumerable:!0})});["open","error","close","message"].forEach(r=>{Object.defineProperty(S.prototype,`on${r}`,{enumerable:!0,get(){for(let e of this.listeners(r))if(e[$t])return e[Mi];return null},set(e){for(let t of this.listeners(r))if(t[$t]){this.removeListener(r,t);break}typeof e=="function"&&this.addEventListener(r,e,{[$t]:!0})}})});S.prototype.addEventListener=$i;S.prototype.removeEventListener=Bi;On.exports=S;function Sn(r,e,t,n){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Di,protocolVersion:Bt[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...n,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(r._autoPong=s.autoPong,r._closeTimeout=s.closeTimeout,!Bt.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${Bt.join(", ")})`);let i;if(e instanceof jt)i=e;else try{i=new jt(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),r._url=i.href;let o=i.protocol==="wss:",c=i.protocol==="ws+unix:",a;if(i.protocol!=="ws:"&&!o&&!c?a=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:c&&!i.pathname?a="The URL's pathname is empty":i.hash&&(a="The URL contains a fragment identifier"),a){let p=new SyntaxError(a);if(r._redirects===0)throw p;Ve(r,p);return}let l=o?443:80,d=Ai(16).toString("base64"),u=o?Oi.request:Ii.request,h=new Set,g;if(s.createConnection=s.createConnection||(o?Hi:Vi),s.defaultPort=s.defaultPort||l,s.port=i.port||l,s.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},s.path=i.pathname+i.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(g=new V({...s.perMessageDeflate,isServer:!1,maxPayload:s.maxPayload}),s.headers["Sec-WebSocket-Extensions"]=Ui({[V.extensionName]:g.offer()})),t.length){for(let p of t){if(typeof p!="string"||!qi.test(p)||h.has(p))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(p)}s.headers["Sec-WebSocket-Protocol"]=t.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(i.username||i.password)&&(s.auth=`${i.username}:${i.password}`),c){let p=s.path.split(":");s.socketPath=p[0],s.path=p[1]}let f;if(s.followRedirects){if(r._redirects===0){r._originalIpc=c,r._originalSecure=o,r._originalHostOrSocketPath=c?s.socketPath:i.host;let p=n&&n.headers;if(n={...n,headers:{}},p)for(let[m,v]of Object.entries(p))n.headers[m.toLowerCase()]=v}else if(r.listenerCount("redirect")===0){let p=c?r._originalIpc?s.socketPath===r._originalHostOrSocketPath:!1:r._originalIpc?!1:i.host===r._originalHostOrSocketPath;(!p||r._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,p||delete s.headers.host,s.auth=void 0)}s.auth&&!n.headers.authorization&&(n.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),f=r._req=u(s),r._redirects&&r.emit("redirect",r.url,f)}else f=r._req=u(s);s.timeout&&f.on("timeout",()=>{A(r,f,"Opening handshake has timed out")}),f.on("error",p=>{f===null||f[bn]||(f=r._req=null,Ve(r,p))}),f.on("response",p=>{let m=p.headers.location,v=p.statusCode;if(m&&s.followRedirects&&v>=300&&v<400){if(++r._redirects>s.maxRedirects){A(r,f,"Maximum redirects exceeded");return}f.abort();let C;try{C=new jt(m,e)}catch{let w=new SyntaxError(`Invalid URL: ${m}`);Ve(r,w);return}Sn(r,C,t,n)}else r.emit("unexpected-response",f,p)||A(r,f,`Unexpected server response: ${p.statusCode}`)}),f.on("upgrade",(p,m,v)=>{if(r.emit("upgrade",p),r.readyState!==S.CONNECTING)return;f=r._req=null;let C=p.headers.upgrade;if(C===void 0||C.toLowerCase()!=="websocket"){A(r,m,"Invalid Upgrade header");return}let b=Ti("sha1").update(d+Li).digest("base64");if(p.headers["sec-websocket-accept"]!==b){A(r,m,"Invalid Sec-WebSocket-Accept header");return}let w=p.headers["sec-websocket-protocol"],y;if(w!==void 0?h.size?h.has(w)||(y="Server sent an invalid subprotocol"):y="Server sent a subprotocol but none was requested":h.size&&(y="Server sent no subprotocol"),y){A(r,m,y);return}w&&(r._protocol=w);let R=p.headers["sec-websocket-extensions"];if(R!==void 0){if(!g){A(r,m,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let G;try{G=Wi(R)}catch{A(r,m,"Invalid Sec-WebSocket-Extensions header");return}let Ce=Object.keys(G);if(Ce.length!==1||Ce[0]!==V.extensionName){A(r,m,"Server indicated an extension that was not requested");return}try{g.accept(G[V.extensionName])}catch{A(r,m,"Invalid Sec-WebSocket-Extensions header");return}r._extensions[V.extensionName]=g}r.setSocket(m,v,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(f,r):f.end()}function Ve(r,e){r._readyState=S.CLOSING,r._errorEmitted=!0,r.emit("error",e),r.emitClose()}function Vi(r){return r.path=r.socketPath,_n.connect(r)}function Hi(r){return r.path=void 0,!r.servername&&r.servername!==""&&(r.servername=_n.isIP(r.host)?"":r.host),Ci.connect(r)}function A(r,e,t){r._readyState=S.CLOSING;let n=new Error(t);Error.captureStackTrace(n,A),e.setHeader?(e[bn]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(Ve,r,n)):(e.destroy(n),e.once("error",r.emit.bind(r,"error")),e.once("close",r.emitClose.bind(r)))}function Ut(r,e,t){if(e){let n=Ri(e)?e.size:Fi(e).length;r._socket?r._sender._bufferedBytes+=n:r._bufferedAmount+=n}if(t){let n=new Error(`WebSocket is not open: readyState ${r.readyState} (${W[r.readyState]})`);process.nextTick(t,n)}}function Gi(r,e){let t=this[I];t._closeFrameReceived=!0,t._closeMessage=e,t._closeCode=r,t._socket[I]!==void 0&&(t._socket.removeListener("data",He),process.nextTick(wn,t._socket),r===1005?t.close():t.close(r,e))}function Ki(){let r=this[I];r.isPaused||r._socket.resume()}function Yi(r){let e=this[I];e._socket[I]!==void 0&&(e._socket.removeListener("data",He),process.nextTick(wn,e._socket),e.close(r[ji])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r))}function mn(){this[I].emitClose()}function zi(r,e){this[I].emit("message",r,e)}function Ji(r){let e=this[I];e._autoPong&&e.pong(r,!this._isServer,yn),e.emit("ping",r)}function Xi(r){this[I].emit("pong",r)}function wn(r){r.resume()}function Qi(r){let e=this[I];e.readyState!==S.CLOSED&&(e.readyState===S.OPEN&&(e._readyState=S.CLOSING,En(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r)))}function En(r){r._closeTimer=setTimeout(r._socket.destroy.bind(r._socket),r._closeTimeout)}function xn(){let r=this[I];if(this.removeListener("close",xn),this.removeListener("data",He),this.removeListener("end",vn),r._readyState=S.CLOSING,!this._readableState.endEmitted&&!r._closeFrameReceived&&!r._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);r._receiver.write(e)}r._receiver.end(),this[I]=void 0,clearTimeout(r._closeTimer),r._receiver._writableState.finished||r._receiver._writableState.errorEmitted?r.emitClose():(r._receiver.on("error",mn),r._receiver.on("finish",mn))}function He(r){this[I]._receiver.write(r)||this.pause()}function vn(){let r=this[I];r._readyState=S.CLOSING,r._receiver.end(),this.end()}function kn(){let r=this[I];this.removeListener("error",kn),this.on("error",yn),r&&(r._readyState=S.CLOSING,this.destroy())}});var Tn=E((Wa,An)=>{"use strict";var Ua=Ge(),{Duplex:Zi}=require("stream");function In(r){r.emit("close")}function eo(){!this.destroyed&&this._writableState.finished&&this.destroy()}function Cn(r){this.removeListener("error",Cn),this.destroy(),this.listenerCount("error")===0&&this.emit("error",r)}function to(r,e){let t=!0,n=new Zi({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return r.on("message",function(i,o){let c=!o&&n._readableState.objectMode?i.toString():i;n.push(c)||r.pause()}),r.once("error",function(i){n.destroyed||(t=!1,n.destroy(i))}),r.once("close",function(){n.destroyed||n.push(null)}),n._destroy=function(s,i){if(r.readyState===r.CLOSED){i(s),process.nextTick(In,n);return}let o=!1;r.once("error",function(a){o=!0,i(a)}),r.once("close",function(){o||i(s),process.nextTick(In,n)}),t&&r.terminate()},n._final=function(s){if(r.readyState===r.CONNECTING){r.once("open",function(){n._final(s)});return}r._socket!==null&&(r._socket._writableState.finished?(s(),n._readableState.endEmitted&&n.destroy()):(r._socket.once("finish",function(){s()}),r.close()))},n._read=function(){r.isPaused&&r.resume()},n._write=function(s,i,o){if(r.readyState===r.CONNECTING){r.once("open",function(){n._write(s,i,o)});return}r.send(s,o)},n.on("end",eo),n.on("error",Cn),n}An.exports=to});var Wt=E((Fa,Pn)=>{"use strict";var{tokenChars:ro}=oe();function no(r){let e=new Set,t=-1,n=-1,s=0;for(s;s<r.length;s++){let o=r.charCodeAt(s);if(n===-1&&ro[o]===1)t===-1&&(t=s);else if(s!==0&&(o===32||o===9))n===-1&&t!==-1&&(n=s);else if(o===44){if(t===-1)throw new SyntaxError(`Unexpected character at index ${s}`);n===-1&&(n=s);let c=r.slice(t,n);if(e.has(c))throw new SyntaxError(`The "${c}" subprotocol is duplicated`);e.add(c),t=n=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(t===-1||n!==-1)throw new SyntaxError("Unexpected end of input");let i=r.slice(t,s);if(e.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return e.add(i),e}Pn.exports={parse:no}});var $n=E((Va,jn)=>{"use strict";var so=require("events"),Ke=require("http"),{Duplex:qa}=require("stream"),{createHash:io}=require("crypto"),Nn=Fe(),J=ie(),oo=Wt(),ao=Ge(),{CLOSE_TIMEOUT:lo,GUID:co,kWebSocket:uo}=$(),ho=/^[+/0-9A-Za-z]{22}==$/,Rn=0,Dn=1,Mn=2,Ft=class extends so{constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:lo,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:ao,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Ke.createServer((n,s)=>{let i=Ke.STATUS_CODES[426];s.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),s.end(i)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){let n=this.emit.bind(this,"connection");this._removeListeners=fo(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,i,o)=>{this.handleUpgrade(s,i,o,n)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Rn}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===Mn){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(be,this);return}if(e&&this.once("close",e),this._state!==Dn)if(this._state=Dn,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(be,this):process.nextTick(be,this);else{let t=this._server;this._removeListeners(),this._removeListeners=this._server=null,t.close(()=>{be(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((t!==-1?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,s){t.on("error",Ln);let i=e.headers["sec-websocket-key"],o=e.headers.upgrade,c=+e.headers["sec-websocket-version"];if(e.method!=="GET"){X(this,e,t,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){X(this,e,t,400,"Invalid Upgrade header");return}if(i===void 0||!ho.test(i)){X(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");return}if(c!==13&&c!==8){X(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){Se(t,400);return}let a=e.headers["sec-websocket-protocol"],l=new Set;if(a!==void 0)try{l=oo.parse(a)}catch{X(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],u={};if(this.options.perMessageDeflate&&d!==void 0){let h=new J({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let g=Nn.parse(d);g[J.extensionName]&&(h.accept(g[J.extensionName]),u[J.extensionName]=h)}catch{X(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let h={origin:e.headers[`${c===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(h,(g,f,p,m)=>{if(!g)return Se(t,f||401,p,m);this.completeUpgrade(u,i,l,e,t,n,s)});return}if(!this.options.verifyClient(h))return Se(t,401)}this.completeUpgrade(u,i,l,e,t,n,s)}completeUpgrade(e,t,n,s,i,o,c){if(!i.readable||!i.writable)return i.destroy();if(i[uo])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Rn)return Se(i,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${io("sha1").update(t+co).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(n.size){let u=this.options.handleProtocols?this.options.handleProtocols(n,s):n.values().next().value;u&&(l.push(`Sec-WebSocket-Protocol: ${u}`),d._protocol=u)}if(e[J.extensionName]){let u=e[J.extensionName].params,h=Nn.format({[J.extensionName]:[u]});l.push(`Sec-WebSocket-Extensions: ${h}`),d._extensions=e}this.emit("headers",l,s),i.write(l.concat(`\r
23
+ `)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(s=>t.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function or(r){return r.map(e=>{if(!e.startsWith("--inspect"))return e;let t,n="127.0.0.1",s="9229",i;return(i=e.match(/^(--inspect(-brk)?)$/))!==null?t=i[1]:(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(t=i[1],/^\d+$/.test(i[3])?s=i[3]:n=i[3]):(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],s=i[4]),t&&s!=="0"?`${t}=${n}:${parseInt(s)+1}`:e})}ar.Command=mt});var hr=E(T=>{var{Argument:cr}=Ae(),{Command:_t}=lr(),{CommanderError:Ds,InvalidArgumentError:dr}=de(),{Help:Ls}=lt(),{Option:ur}=ht();T.program=new _t;T.createCommand=r=>new _t(r);T.createOption=(r,e)=>new ur(r,e);T.createArgument=(r,e)=>new cr(r,e);T.Command=_t;T.Option=ur;T.Argument=cr;T.Help=Ls;T.CommanderError=Ds;T.InvalidArgumentError=dr;T.InvalidOptionArgumentError=dr});var Sr=E(k=>{"use strict";var yt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Ms=yt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sync=r.isexe=void 0;var e=require("node:fs"),t=require("node:fs/promises"),n=async(c,a={})=>{let{ignoreErrors:l=!1}=a;try{return i(await(0,t.stat)(c),a)}catch(d){let u=d;if(l||u.code==="EACCES")return!1;throw u}};r.isexe=n;var s=(c,a={})=>{let{ignoreErrors:l=!1}=a;try{return i((0,e.statSync)(c),a)}catch(d){let u=d;if(l||u.code==="EACCES")return!1;throw u}};r.sync=s;var i=(c,a)=>c.isFile()&&o(c,a),o=(c,a)=>{let l=a.uid??process.getuid?.(),d=a.groups??process.getgroups?.()??[],u=a.gid??process.getgid?.()??d[0];if(l===void 0||u===void 0)throw new Error("cannot get uid or gid");let h=new Set([u,...d]),g=c.mode,f=c.uid,p=c.gid,m=parseInt("100",8),v=parseInt("010",8),C=parseInt("001",8),b=m|v;return!!(g&C||g&v&&h.has(p)||g&m&&f===l||g&b&&l===0)}}),js=yt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.sync=r.isexe=void 0;var e=require("node:fs"),t=require("node:fs/promises"),n=require("node:path"),s=async(a,l={})=>{let{ignoreErrors:d=!1}=l;try{return c(await(0,t.stat)(a),a,l)}catch(u){let h=u;if(d||h.code==="EACCES")return!1;throw h}};r.isexe=s;var i=(a,l={})=>{let{ignoreErrors:d=!1}=l;try{return c((0,e.statSync)(a),a,l)}catch(u){let h=u;if(d||h.code==="EACCES")return!1;throw h}};r.sync=i;var o=(a,l)=>{let{pathExt:d=process.env.PATHEXT||""}=l,u=d.split(n.delimiter);if(u.indexOf("")!==-1)return!0;for(let h of u){let g=h.toLowerCase(),f=a.substring(a.length-g.length).toLowerCase();if(g&&f===g)return!0}return!1},c=(a,l,d)=>a.isFile()&&o(l,d)}),$s=yt(r=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0})}),gr=k&&k.__createBinding||(Object.create?(function(r,e,t,n){n===void 0&&(n=t);var s=Object.getOwnPropertyDescriptor(e,t);(!s||("get"in s?!e.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(r,n,s)}):(function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]})),Bs=k&&k.__setModuleDefault||(Object.create?(function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}):function(r,e){r.default=e}),mr=k&&k.__importStar||(function(){var r=function(e){return r=Object.getOwnPropertyNames||function(t){var n=[];for(var s in t)Object.prototype.hasOwnProperty.call(t,s)&&(n[n.length]=s);return n},r(e)};return function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=r(e),s=0;s<n.length;s++)n[s]!=="default"&&gr(t,e,n[s]);return Bs(t,e),t}})(),Us=k&&k.__exportStar||function(r,e){for(var t in r)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&gr(e,r,t)};Object.defineProperty(k,"__esModule",{value:!0});k.sync=k.isexe=k.posix=k.win32=void 0;var _r=mr(Ms());k.posix=_r;var yr=mr(js());k.win32=yr;Us($s(),k);var Ws=process.env._ISEXE_TEST_PLATFORM_||process.platform,br=Ws==="win32"?yr:_r;k.isexe=br.isexe;k.sync=br.sync});var Tr=E((va,Ar)=>{var{isexe:Fs,sync:qs}=Sr(),{join:Vs,delimiter:Hs,sep:wr,posix:Er}=require("path"),xr=process.platform==="win32",vr=new RegExp(`[${Er.sep}${wr===Er.sep?"":wr}]`.replace(/(\\)/g,"\\$1")),Gs=new RegExp(`^\\.${vr.source}`),kr=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),Or=(r,{path:e=process.env.PATH,pathExt:t=process.env.PATHEXT,delimiter:n=Hs})=>{let s=r.match(vr)?[""]:[...xr?[process.cwd()]:[],...(e||"").split(n)];if(xr){let i=t||[".EXE",".CMD",".BAT",".COM"].join(n),o=i.split(n).flatMap(c=>[c,c.toLowerCase()]);return r.includes(".")&&o[0]!==""&&o.unshift(""),{pathEnv:s,pathExt:o,pathExtExe:i}}return{pathEnv:s,pathExt:[""]}},Ir=(r,e)=>{let t=/^".*"$/.test(r)?r.slice(1,-1):r;return(!t&&Gs.test(e)?e.slice(0,2):"")+Vs(t,e)},Cr=async(r,e={})=>{let{pathEnv:t,pathExt:n,pathExtExe:s}=Or(r,e),i=[];for(let o of t){let c=Ir(o,r);for(let a of n){let l=c+a;if(await Fs(l,{pathExt:s,ignoreErrors:!0})){if(!e.all)return l;i.push(l)}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw kr(r)},Ks=(r,e={})=>{let{pathEnv:t,pathExt:n,pathExtExe:s}=Or(r,e),i=[];for(let o of t){let c=Ir(o,r);for(let a of n){let l=c+a;if(qs(l,{pathExt:s,ignoreErrors:!0})){if(!e.all)return l;i.push(l)}}}if(e.all&&i.length)return i;if(e.nothrow)return null;throw kr(r)};Ar.exports=Cr;Cr.sync=Ks});var $=E((Ca,$r)=>{"use strict";var Mr=["nodebuffer","arraybuffer","fragments"],jr=typeof Blob<"u";jr&&Mr.push("blob");$r.exports={BINARY_TYPES:Mr,CLOSE_TIMEOUT:3e4,EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",hasBlob:jr,kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}});var ue=E((Aa,Re)=>{"use strict";var{EMPTY_BUFFER:zs}=$(),wt=Buffer[Symbol.species];function Js(r,e){if(r.length===0)return zs;if(r.length===1)return r[0];let t=Buffer.allocUnsafe(e),n=0;for(let s=0;s<r.length;s++){let i=r[s];t.set(i,n),n+=i.length}return n<e?new wt(t.buffer,t.byteOffset,n):t}function Br(r,e,t,n,s){for(let i=0;i<s;i++)t[n+i]=r[i]^e[i&3]}function Ur(r,e){for(let t=0;t<r.length;t++)r[t]^=e[t&3]}function Xs(r){return r.length===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.length)}function Et(r){if(Et.readOnly=!0,Buffer.isBuffer(r))return r;let e;return r instanceof ArrayBuffer?e=new wt(r):ArrayBuffer.isView(r)?e=new wt(r.buffer,r.byteOffset,r.byteLength):(e=Buffer.from(r),Et.readOnly=!1),e}Re.exports={concat:Js,mask:Br,toArrayBuffer:Xs,toBuffer:Et,unmask:Ur};if(!process.env.WS_NO_BUFFER_UTIL)try{let r=require("bufferutil");Re.exports.mask=function(e,t,n,s,i){i<48?Br(e,t,n,s,i):r.mask(e,t,n,s,i)},Re.exports.unmask=function(e,t){e.length<32?Ur(e,t):r.unmask(e,t)}}catch{}});var qr=E((Ta,Fr)=>{"use strict";var Wr=Symbol("kDone"),xt=Symbol("kRun"),vt=class{constructor(e){this[Wr]=()=>{this.pending--,this[xt]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[xt]()}[xt](){if(this.pending!==this.concurrency&&this.jobs.length){let e=this.jobs.shift();this.pending++,e(this[Wr])}}};Fr.exports=vt});var se=E((Pa,Kr)=>{"use strict";var he=require("zlib"),Vr=ue(),Qs=qr(),{kStatusCode:Hr}=$(),Zs=Buffer[Symbol.species],ei=Buffer.from([0,0,255,255]),Le=Symbol("permessage-deflate"),B=Symbol("total-length"),re=Symbol("callback"),q=Symbol("buffers"),ne=Symbol("error"),De,kt=class{constructor(e){if(this._options=e||{},this._threshold=this._options.threshold!==void 0?this._options.threshold:1024,this._maxPayload=this._options.maxPayload|0,this._isServer=!!this._options.isServer,this._deflate=null,this._inflate=null,this.params=null,!De){let t=this._options.concurrencyLimit!==void 0?this._options.concurrencyLimit:10;De=new Qs(t)}}static get extensionName(){return"permessage-deflate"}offer(){let e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:this._options.clientMaxWindowBits==null&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){let e=this._deflate[re];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){let t=this._options,n=e.find(s=>!(t.serverNoContextTakeover===!1&&s.server_no_context_takeover||s.server_max_window_bits&&(t.serverMaxWindowBits===!1||typeof t.serverMaxWindowBits=="number"&&t.serverMaxWindowBits>s.server_max_window_bits)||typeof t.clientMaxWindowBits=="number"&&!s.client_max_window_bits));if(!n)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(n.server_no_context_takeover=!0),t.clientNoContextTakeover&&(n.client_no_context_takeover=!0),typeof t.serverMaxWindowBits=="number"&&(n.server_max_window_bits=t.serverMaxWindowBits),typeof t.clientMaxWindowBits=="number"?n.client_max_window_bits=t.clientMaxWindowBits:(n.client_max_window_bits===!0||t.clientMaxWindowBits===!1)&&delete n.client_max_window_bits,n}acceptAsClient(e){let t=e[0];if(this._options.clientNoContextTakeover===!1&&t.client_no_context_takeover)throw new Error('Unexpected parameter "client_no_context_takeover"');if(!t.client_max_window_bits)typeof this._options.clientMaxWindowBits=="number"&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(this._options.clientMaxWindowBits===!1||typeof this._options.clientMaxWindowBits=="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error('Unexpected or invalid parameter "client_max_window_bits"');return t}normalizeParams(e){return e.forEach(t=>{Object.keys(t).forEach(n=>{let s=t[n];if(s.length>1)throw new Error(`Parameter "${n}" must have only a single value`);if(s=s[0],n==="client_max_window_bits"){if(s!==!0){let i=+s;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${n}": ${s}`);s=i}else if(!this._isServer)throw new TypeError(`Invalid value for parameter "${n}": ${s}`)}else if(n==="server_max_window_bits"){let i=+s;if(!Number.isInteger(i)||i<8||i>15)throw new TypeError(`Invalid value for parameter "${n}": ${s}`);s=i}else if(n==="client_no_context_takeover"||n==="server_no_context_takeover"){if(s!==!0)throw new TypeError(`Invalid value for parameter "${n}": ${s}`)}else throw new Error(`Unknown parameter "${n}"`);t[n]=s})}),e}decompress(e,t,n){De.add(s=>{this._decompress(e,t,(i,o)=>{s(),n(i,o)})})}compress(e,t,n){De.add(s=>{this._compress(e,t,(i,o)=>{s(),n(i,o)})})}_decompress(e,t,n){let s=this._isServer?"client":"server";if(!this._inflate){let i=`${s}_max_window_bits`,o=typeof this.params[i]!="number"?he.Z_DEFAULT_WINDOWBITS:this.params[i];this._inflate=he.createInflateRaw({...this._options.zlibInflateOptions,windowBits:o}),this._inflate[Le]=this,this._inflate[B]=0,this._inflate[q]=[],this._inflate.on("error",ri),this._inflate.on("data",Gr)}this._inflate[re]=n,this._inflate.write(e),t&&this._inflate.write(ei),this._inflate.flush(()=>{let i=this._inflate[ne];if(i){this._inflate.close(),this._inflate=null,n(i);return}let o=Vr.concat(this._inflate[q],this._inflate[B]);this._inflate._readableState.endEmitted?(this._inflate.close(),this._inflate=null):(this._inflate[B]=0,this._inflate[q]=[],t&&this.params[`${s}_no_context_takeover`]&&this._inflate.reset()),n(null,o)})}_compress(e,t,n){let s=this._isServer?"server":"client";if(!this._deflate){let i=`${s}_max_window_bits`,o=typeof this.params[i]!="number"?he.Z_DEFAULT_WINDOWBITS:this.params[i];this._deflate=he.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:o}),this._deflate[B]=0,this._deflate[q]=[],this._deflate.on("data",ti)}this._deflate[re]=n,this._deflate.write(e),this._deflate.flush(he.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let i=Vr.concat(this._deflate[q],this._deflate[B]);t&&(i=new Zs(i.buffer,i.byteOffset,i.length-4)),this._deflate[re]=null,this._deflate[B]=0,this._deflate[q]=[],t&&this.params[`${s}_no_context_takeover`]&&this._deflate.reset(),n(null,i)})}};Kr.exports=kt;function ti(r){this[q].push(r),this[B]+=r.length}function Gr(r){if(this[B]+=r.length,this[Le]._maxPayload<1||this[B]<=this[Le]._maxPayload){this[q].push(r);return}this[ne]=new RangeError("Max payload size exceeded"),this[ne].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH",this[ne][Hr]=1009,this.removeListener("data",Gr),this.reset()}function ri(r){if(this[Le]._inflate=null,this[ne]){this[re](this[ne]);return}r[Hr]=1007,this[re](r)}});var ie=E((Na,Me)=>{"use strict";var{isUtf8:Yr}=require("buffer"),{hasBlob:ni}=$(),si=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function ii(r){return r>=1e3&&r<=1014&&r!==1004&&r!==1005&&r!==1006||r>=3e3&&r<=4999}function Ot(r){let e=r.length,t=0;for(;t<e;)if((r[t]&128)===0)t++;else if((r[t]&224)===192){if(t+1===e||(r[t+1]&192)!==128||(r[t]&254)===192)return!1;t+=2}else if((r[t]&240)===224){if(t+2>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||r[t]===224&&(r[t+1]&224)===128||r[t]===237&&(r[t+1]&224)===160)return!1;t+=3}else if((r[t]&248)===240){if(t+3>=e||(r[t+1]&192)!==128||(r[t+2]&192)!==128||(r[t+3]&192)!==128||r[t]===240&&(r[t+1]&240)===128||r[t]===244&&r[t+1]>143||r[t]>244)return!1;t+=4}else return!1;return!0}function oi(r){return ni&&typeof r=="object"&&typeof r.arrayBuffer=="function"&&typeof r.type=="string"&&typeof r.stream=="function"&&(r[Symbol.toStringTag]==="Blob"||r[Symbol.toStringTag]==="File")}Me.exports={isBlob:oi,isValidStatusCode:ii,isValidUTF8:Ot,tokenChars:si};if(Yr)Me.exports.isValidUTF8=function(r){return r.length<24?Ot(r):Yr(r)};else if(!process.env.WS_NO_UTF_8_VALIDATE)try{let r=require("utf-8-validate");Me.exports.isValidUTF8=function(e){return e.length<32?Ot(e):r(e)}}catch{}});var Pt=E((Ra,tn)=>{"use strict";var{Writable:ai}=require("stream"),zr=se(),{BINARY_TYPES:li,EMPTY_BUFFER:Jr,kStatusCode:ci,kWebSocket:di}=$(),{concat:It,toArrayBuffer:ui,unmask:hi}=ue(),{isValidStatusCode:fi,isValidUTF8:Xr}=ie(),je=Buffer[Symbol.species],P=0,Qr=1,Zr=2,en=3,Ct=4,At=5,$e=6,Tt=class extends ai{constructor(e={}){super(),this._allowSynchronousEvents=e.allowSynchronousEvents!==void 0?e.allowSynchronousEvents:!0,this._binaryType=e.binaryType||li[0],this._extensions=e.extensions||{},this._isServer=!!e.isServer,this._maxPayload=e.maxPayload|0,this._skipUTF8Validation=!!e.skipUTF8Validation,this[di]=void 0,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._errored=!1,this._loop=!1,this._state=P}_write(e,t,n){if(this._opcode===8&&this._state==P)return n();this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(n)}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e<this._buffers[0].length){let n=this._buffers[0];return this._buffers[0]=new je(n.buffer,n.byteOffset+e,n.length-e),new je(n.buffer,n.byteOffset,e)}let t=Buffer.allocUnsafe(e);do{let n=this._buffers[0],s=t.length-e;e>=n.length?t.set(this._buffers.shift(),s):(t.set(new Uint8Array(n.buffer,n.byteOffset,e),s),this._buffers[0]=new je(n.buffer,n.byteOffset+e,n.length-e)),e-=n.length}while(e>0);return t}startLoop(e){this._loop=!0;do switch(this._state){case P:this.getInfo(e);break;case Qr:this.getPayloadLength16(e);break;case Zr:this.getPayloadLength64(e);break;case en:this.getMask();break;case Ct:this.getData(e);break;case At:case $e:this._loop=!1;return}while(this._loop);this._errored||e()}getInfo(e){if(this._bufferedBytes<2){this._loop=!1;return}let t=this.consume(2);if((t[0]&48)!==0){let s=this.createError(RangeError,"RSV2 and RSV3 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_2_3");e(s);return}let n=(t[0]&64)===64;if(n&&!this._extensions[zr.extensionName]){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._fin=(t[0]&128)===128,this._opcode=t[0]&15,this._payloadLength=t[1]&127,this._opcode===0){if(n){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(!this._fragmented){let s=this.createError(RangeError,"invalid opcode 0",!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}this._compressed=n}else if(this._opcode>7&&this._opcode<11){if(!this._fin){let s=this.createError(RangeError,"FIN must be set",!0,1002,"WS_ERR_EXPECTED_FIN");e(s);return}if(n){let s=this.createError(RangeError,"RSV1 must be clear",!0,1002,"WS_ERR_UNEXPECTED_RSV_1");e(s);return}if(this._payloadLength>125||this._opcode===8&&this._payloadLength===1){let s=this.createError(RangeError,`invalid payload length ${this._payloadLength}`,!0,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH");e(s);return}}else{let s=this.createError(RangeError,`invalid opcode ${this._opcode}`,!0,1002,"WS_ERR_INVALID_OPCODE");e(s);return}if(!this._fin&&!this._fragmented&&(this._fragmented=this._opcode),this._masked=(t[1]&128)===128,this._isServer){if(!this._masked){let s=this.createError(RangeError,"MASK must be set",!0,1002,"WS_ERR_EXPECTED_MASK");e(s);return}}else if(this._masked){let s=this.createError(RangeError,"MASK must be clear",!0,1002,"WS_ERR_UNEXPECTED_MASK");e(s);return}this._payloadLength===126?this._state=Qr:this._payloadLength===127?this._state=Zr:this.haveLength(e)}getPayloadLength16(e){if(this._bufferedBytes<2){this._loop=!1;return}this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength(e)}getPayloadLength64(e){if(this._bufferedBytes<8){this._loop=!1;return}let t=this.consume(8),n=t.readUInt32BE(0);if(n>Math.pow(2,21)-1){let s=this.createError(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH");e(s);return}this._payloadLength=n*Math.pow(2,32)+t.readUInt32BE(4),this.haveLength(e)}haveLength(e){if(this._payloadLength&&this._opcode<8&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&this._maxPayload>0)){let t=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");e(t);return}this._masked?this._state=en:this._state=Ct}getMask(){if(this._bufferedBytes<4){this._loop=!1;return}this._mask=this.consume(4),this._state=Ct}getData(e){let t=Jr;if(this._payloadLength){if(this._bufferedBytes<this._payloadLength){this._loop=!1;return}t=this.consume(this._payloadLength),this._masked&&(this._mask[0]|this._mask[1]|this._mask[2]|this._mask[3])!==0&&hi(t,this._mask)}if(this._opcode>7){this.controlMessage(t,e);return}if(this._compressed){this._state=At,this.decompress(t,e);return}t.length&&(this._messageLength=this._totalPayloadLength,this._fragments.push(t)),this.dataMessage(e)}decompress(e,t){this._extensions[zr.extensionName].decompress(e,this._fin,(s,i)=>{if(s)return t(s);if(i.length){if(this._messageLength+=i.length,this._messageLength>this._maxPayload&&this._maxPayload>0){let o=this.createError(RangeError,"Max payload size exceeded",!1,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH");t(o);return}this._fragments.push(i)}this.dataMessage(t),this._state===P&&this.startLoop(t)})}dataMessage(e){if(!this._fin){this._state=P;return}let t=this._messageLength,n=this._fragments;if(this._totalPayloadLength=0,this._messageLength=0,this._fragmented=0,this._fragments=[],this._opcode===2){let s;this._binaryType==="nodebuffer"?s=It(n,t):this._binaryType==="arraybuffer"?s=ui(It(n,t)):this._binaryType==="blob"?s=new Blob(n):s=n,this._allowSynchronousEvents?(this.emit("message",s,!0),this._state=P):(this._state=$e,setImmediate(()=>{this.emit("message",s,!0),this._state=P,this.startLoop(e)}))}else{let s=It(n,t);if(!this._skipUTF8Validation&&!Xr(s)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");e(i);return}this._state===At||this._allowSynchronousEvents?(this.emit("message",s,!1),this._state=P):(this._state=$e,setImmediate(()=>{this.emit("message",s,!1),this._state=P,this.startLoop(e)}))}}controlMessage(e,t){if(this._opcode===8){if(e.length===0)this._loop=!1,this.emit("conclude",1005,Jr),this.end();else{let n=e.readUInt16BE(0);if(!fi(n)){let i=this.createError(RangeError,`invalid status code ${n}`,!0,1002,"WS_ERR_INVALID_CLOSE_CODE");t(i);return}let s=new je(e.buffer,e.byteOffset+2,e.length-2);if(!this._skipUTF8Validation&&!Xr(s)){let i=this.createError(Error,"invalid UTF-8 sequence",!0,1007,"WS_ERR_INVALID_UTF8");t(i);return}this._loop=!1,this.emit("conclude",n,s),this.end()}this._state=P;return}this._allowSynchronousEvents?(this.emit(this._opcode===9?"ping":"pong",e),this._state=P):(this._state=$e,setImmediate(()=>{this.emit(this._opcode===9?"ping":"pong",e),this._state=P,this.startLoop(t)}))}createError(e,t,n,s,i){this._loop=!1,this._errored=!0;let o=new e(n?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(o,this.createError),o.code=i,o[ci]=s,o}};tn.exports=Tt});var Dt=E((La,sn)=>{"use strict";var{Duplex:Da}=require("stream"),{randomFillSync:pi}=require("crypto"),rn=se(),{EMPTY_BUFFER:gi,kWebSocket:mi,NOOP:_i}=$(),{isBlob:oe,isValidStatusCode:yi}=ie(),{mask:nn,toBuffer:K}=ue(),N=Symbol("kByteLength"),bi=Buffer.alloc(4),Be=8*1024,Y,ae=Be,D=0,Si=1,wi=2,Nt=class r{constructor(e,t,n){this._extensions=t||{},n&&(this._generateMask=n,this._maskBuffer=Buffer.alloc(4)),this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._queue=[],this._state=D,this.onerror=_i,this[mi]=void 0}static frame(e,t){let n,s=!1,i=2,o=!1;t.mask&&(n=t.maskBuffer||bi,t.generateMask?t.generateMask(n):(ae===Be&&(Y===void 0&&(Y=Buffer.alloc(Be)),pi(Y,0,Be),ae=0),n[0]=Y[ae++],n[1]=Y[ae++],n[2]=Y[ae++],n[3]=Y[ae++]),o=(n[0]|n[1]|n[2]|n[3])===0,i=6);let c;typeof e=="string"?(!t.mask||o)&&t[N]!==void 0?c=t[N]:(e=Buffer.from(e),c=e.length):(c=e.length,s=t.mask&&t.readOnly&&!o);let a=c;c>=65536?(i+=8,a=127):c>125&&(i+=2,a=126);let l=Buffer.allocUnsafe(s?c+i:i);return l[0]=t.fin?t.opcode|128:t.opcode,t.rsv1&&(l[0]|=64),l[1]=a,a===126?l.writeUInt16BE(c,2):a===127&&(l[2]=l[3]=0,l.writeUIntBE(c,4,6)),t.mask?(l[1]|=128,l[i-4]=n[0],l[i-3]=n[1],l[i-2]=n[2],l[i-1]=n[3],o?[l,e]:s?(nn(e,n,l,i,c),[l]):(nn(e,n,e,0,c),[l,e])):[l,e]}close(e,t,n,s){let i;if(e===void 0)i=gi;else{if(typeof e!="number"||!yi(e))throw new TypeError("First argument must be a valid error code number");if(t===void 0||!t.length)i=Buffer.allocUnsafe(2),i.writeUInt16BE(e,0);else{let c=Buffer.byteLength(t);if(c>123)throw new RangeError("The message must not be greater than 123 bytes");i=Buffer.allocUnsafe(2+c),i.writeUInt16BE(e,0),typeof t=="string"?i.write(t,2):i.set(t,2)}}let o={[N]:i.length,fin:!0,generateMask:this._generateMask,mask:n,maskBuffer:this._maskBuffer,opcode:8,readOnly:!1,rsv1:!1};this._state!==D?this.enqueue([this.dispatch,i,!1,o,s]):this.sendFrame(r.frame(i,o),s)}ping(e,t,n){let s,i;if(typeof e=="string"?(s=Buffer.byteLength(e),i=!1):oe(e)?(s=e.size,i=!1):(e=K(e),s=e.length,i=K.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[N]:s,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:9,readOnly:i,rsv1:!1};oe(e)?this._state!==D?this.enqueue([this.getBlobData,e,!1,o,n]):this.getBlobData(e,!1,o,n):this._state!==D?this.enqueue([this.dispatch,e,!1,o,n]):this.sendFrame(r.frame(e,o),n)}pong(e,t,n){let s,i;if(typeof e=="string"?(s=Buffer.byteLength(e),i=!1):oe(e)?(s=e.size,i=!1):(e=K(e),s=e.length,i=K.readOnly),s>125)throw new RangeError("The data size must not be greater than 125 bytes");let o={[N]:s,fin:!0,generateMask:this._generateMask,mask:t,maskBuffer:this._maskBuffer,opcode:10,readOnly:i,rsv1:!1};oe(e)?this._state!==D?this.enqueue([this.getBlobData,e,!1,o,n]):this.getBlobData(e,!1,o,n):this._state!==D?this.enqueue([this.dispatch,e,!1,o,n]):this.sendFrame(r.frame(e,o),n)}send(e,t,n){let s=this._extensions[rn.extensionName],i=t.binary?2:1,o=t.compress,c,a;typeof e=="string"?(c=Buffer.byteLength(e),a=!1):oe(e)?(c=e.size,a=!1):(e=K(e),c=e.length,a=K.readOnly),this._firstFragment?(this._firstFragment=!1,o&&s&&s.params[s._isServer?"server_no_context_takeover":"client_no_context_takeover"]&&(o=c>=s._threshold),this._compress=o):(o=!1,i=0),t.fin&&(this._firstFragment=!0);let l={[N]:c,fin:t.fin,generateMask:this._generateMask,mask:t.mask,maskBuffer:this._maskBuffer,opcode:i,readOnly:a,rsv1:o};oe(e)?this._state!==D?this.enqueue([this.getBlobData,e,this._compress,l,n]):this.getBlobData(e,this._compress,l,n):this._state!==D?this.enqueue([this.dispatch,e,this._compress,l,n]):this.dispatch(e,this._compress,l,n)}getBlobData(e,t,n,s){this._bufferedBytes+=n[N],this._state=wi,e.arrayBuffer().then(i=>{if(this._socket.destroyed){let c=new Error("The socket was closed while the blob was being read");process.nextTick(Rt,this,c,s);return}this._bufferedBytes-=n[N];let o=K(i);t?this.dispatch(o,t,n,s):(this._state=D,this.sendFrame(r.frame(o,n),s),this.dequeue())}).catch(i=>{process.nextTick(Ei,this,i,s)})}dispatch(e,t,n,s){if(!t){this.sendFrame(r.frame(e,n),s);return}let i=this._extensions[rn.extensionName];this._bufferedBytes+=n[N],this._state=Si,i.compress(e,n.fin,(o,c)=>{if(this._socket.destroyed){let a=new Error("The socket was closed while data was being compressed");Rt(this,a,s);return}this._bufferedBytes-=n[N],this._state=D,n.readOnly=!1,this.sendFrame(r.frame(c,n),s),this.dequeue()})}dequeue(){for(;this._state===D&&this._queue.length;){let e=this._queue.shift();this._bufferedBytes-=e[3][N],Reflect.apply(e[0],this,e.slice(1))}}enqueue(e){this._bufferedBytes+=e[3][N],this._queue.push(e)}sendFrame(e,t){e.length===2?(this._socket.cork(),this._socket.write(e[0]),this._socket.write(e[1],t),this._socket.uncork()):this._socket.write(e[0],t)}};sn.exports=Nt;function Rt(r,e,t){typeof t=="function"&&t(e);for(let n=0;n<r._queue.length;n++){let s=r._queue[n],i=s[s.length-1];typeof i=="function"&&i(e)}}function Ei(r,e,t){Rt(r,e,t),r.onerror(e)}});var pn=E((Ma,fn)=>{"use strict";var{kForOnEventAttribute:fe,kListener:Lt}=$(),on=Symbol("kCode"),an=Symbol("kData"),ln=Symbol("kError"),cn=Symbol("kMessage"),dn=Symbol("kReason"),le=Symbol("kTarget"),un=Symbol("kType"),hn=Symbol("kWasClean"),U=class{constructor(e){this[le]=null,this[un]=e}get target(){return this[le]}get type(){return this[un]}};Object.defineProperty(U.prototype,"target",{enumerable:!0});Object.defineProperty(U.prototype,"type",{enumerable:!0});var z=class extends U{constructor(e,t={}){super(e),this[on]=t.code===void 0?0:t.code,this[dn]=t.reason===void 0?"":t.reason,this[hn]=t.wasClean===void 0?!1:t.wasClean}get code(){return this[on]}get reason(){return this[dn]}get wasClean(){return this[hn]}};Object.defineProperty(z.prototype,"code",{enumerable:!0});Object.defineProperty(z.prototype,"reason",{enumerable:!0});Object.defineProperty(z.prototype,"wasClean",{enumerable:!0});var ce=class extends U{constructor(e,t={}){super(e),this[ln]=t.error===void 0?null:t.error,this[cn]=t.message===void 0?"":t.message}get error(){return this[ln]}get message(){return this[cn]}};Object.defineProperty(ce.prototype,"error",{enumerable:!0});Object.defineProperty(ce.prototype,"message",{enumerable:!0});var pe=class extends U{constructor(e,t={}){super(e),this[an]=t.data===void 0?null:t.data}get data(){return this[an]}};Object.defineProperty(pe.prototype,"data",{enumerable:!0});var xi={addEventListener(r,e,t={}){for(let s of this.listeners(r))if(!t[fe]&&s[Lt]===e&&!s[fe])return;let n;if(r==="message")n=function(i,o){let c=new pe("message",{data:o?i:i.toString()});c[le]=this,Ue(e,this,c)};else if(r==="close")n=function(i,o){let c=new z("close",{code:i,reason:o.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});c[le]=this,Ue(e,this,c)};else if(r==="error")n=function(i){let o=new ce("error",{error:i,message:i.message});o[le]=this,Ue(e,this,o)};else if(r==="open")n=function(){let i=new U("open");i[le]=this,Ue(e,this,i)};else return;n[fe]=!!t[fe],n[Lt]=e,t.once?this.once(r,n):this.on(r,n)},removeEventListener(r,e){for(let t of this.listeners(r))if(t[Lt]===e&&!t[fe]){this.removeListener(r,t);break}}};fn.exports={CloseEvent:z,ErrorEvent:ce,Event:U,EventTarget:xi,MessageEvent:pe};function Ue(r,e,t){typeof r=="object"&&r.handleEvent?r.handleEvent.call(r,t):r.call(e,t)}});var We=E((ja,gn)=>{"use strict";var{tokenChars:ge}=ie();function M(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}function vi(r){let e=Object.create(null),t=Object.create(null),n=!1,s=!1,i=!1,o,c,a=-1,l=-1,d=-1,u=0;for(;u<r.length;u++)if(l=r.charCodeAt(u),o===void 0)if(d===-1&&ge[l]===1)a===-1&&(a=u);else if(u!==0&&(l===32||l===9))d===-1&&a!==-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u);let g=r.slice(a,d);l===44?(M(e,g,t),t=Object.create(null)):o=g,a=d=-1}else throw new SyntaxError(`Unexpected character at index ${u}`);else if(c===void 0)if(d===-1&&ge[l]===1)a===-1&&(a=u);else if(l===32||l===9)d===-1&&a!==-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u),M(t,r.slice(a,d),!0),l===44&&(M(e,o,t),t=Object.create(null),o=void 0),a=d=-1}else if(l===61&&a!==-1&&d===-1)c=r.slice(a,u),a=d=-1;else throw new SyntaxError(`Unexpected character at index ${u}`);else if(s){if(ge[l]!==1)throw new SyntaxError(`Unexpected character at index ${u}`);a===-1?a=u:n||(n=!0),s=!1}else if(i)if(ge[l]===1)a===-1&&(a=u);else if(l===34&&a!==-1)i=!1,d=u;else if(l===92)s=!0;else throw new SyntaxError(`Unexpected character at index ${u}`);else if(l===34&&r.charCodeAt(u-1)===61)i=!0;else if(d===-1&&ge[l]===1)a===-1&&(a=u);else if(a!==-1&&(l===32||l===9))d===-1&&(d=u);else if(l===59||l===44){if(a===-1)throw new SyntaxError(`Unexpected character at index ${u}`);d===-1&&(d=u);let g=r.slice(a,d);n&&(g=g.replace(/\\/g,""),n=!1),M(t,c,g),l===44&&(M(e,o,t),t=Object.create(null),o=void 0),c=void 0,a=d=-1}else throw new SyntaxError(`Unexpected character at index ${u}`);if(a===-1||i||l===32||l===9)throw new SyntaxError("Unexpected end of input");d===-1&&(d=u);let h=r.slice(a,d);return o===void 0?M(e,h,t):(c===void 0?M(t,h,!0):n?M(t,c,h.replace(/\\/g,"")):M(t,c,h),M(e,o,t)),e}function ki(r){return Object.keys(r).map(e=>{let t=r[e];return Array.isArray(t)||(t=[t]),t.map(n=>[e].concat(Object.keys(n).map(s=>{let i=n[s];return Array.isArray(i)||(i=[i]),i.map(o=>o===!0?s:`${s}=${o}`).join("; ")})).join("; ")).join(", ")}).join(", ")}gn.exports={format:ki,parse:vi}});var He=E((Ua,In)=>{"use strict";var Oi=require("events"),Ii=require("https"),Ci=require("http"),yn=require("net"),Ai=require("tls"),{randomBytes:Ti,createHash:Pi}=require("crypto"),{Duplex:$a,Readable:Ba}=require("stream"),{URL:Mt}=require("url"),V=se(),Ni=Pt(),Ri=Dt(),{isBlob:Di}=ie(),{BINARY_TYPES:mn,CLOSE_TIMEOUT:Li,EMPTY_BUFFER:Fe,GUID:Mi,kForOnEventAttribute:jt,kListener:ji,kStatusCode:$i,kWebSocket:I,NOOP:bn}=$(),{EventTarget:{addEventListener:Bi,removeEventListener:Ui}}=pn(),{format:Wi,parse:Fi}=We(),{toBuffer:qi}=ue(),Sn=Symbol("kAborted"),$t=[8,13],W=["CONNECTING","OPEN","CLOSING","CLOSED"],Vi=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/,S=class r extends Oi{constructor(e,t,n){super(),this._binaryType=mn[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage=Fe,this._closeTimer=null,this._errorEmitted=!1,this._extensions={},this._paused=!1,this._protocol="",this._readyState=r.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,e!==null?(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,t===void 0?t=[]:Array.isArray(t)||(typeof t=="object"&&t!==null?(n=t,t=[]):t=[t]),wn(this,e,t,n)):(this._autoPong=n.autoPong,this._closeTimeout=n.closeTimeout,this._isServer=!0)}get binaryType(){return this._binaryType}set binaryType(e){mn.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get isPaused(){return this._paused}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,n){let s=new Ni({allowSynchronousEvents:n.allowSynchronousEvents,binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:n.maxPayload,skipUTF8Validation:n.skipUTF8Validation}),i=new Ri(e,this._extensions,n.generateMask);this._receiver=s,this._sender=i,this._socket=e,s[I]=this,i[I]=this,e[I]=this,s.on("conclude",Ki),s.on("drain",Yi),s.on("error",zi),s.on("message",Ji),s.on("ping",Xi),s.on("pong",Qi),i.onerror=Zi,e.setTimeout&&e.setTimeout(0),e.setNoDelay&&e.setNoDelay(),t.length>0&&e.unshift(t),e.on("close",vn),e.on("data",Ve),e.on("end",kn),e.on("error",On),this._readyState=r.OPEN,this.emit("open")}emitClose(){if(!this._socket){this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage);return}this._extensions[V.extensionName]&&this._extensions[V.extensionName].cleanup(),this._receiver.removeAllListeners(),this._readyState=r.CLOSED,this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){A(this,this._req,"WebSocket was closed before the connection was established");return}if(this.readyState===r.CLOSING){this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end();return}this._readyState=r.CLOSING,this._sender.close(e,t,!this._isServer,n=>{n||(this._closeFrameSent=!0,(this._closeFrameReceived||this._receiver._writableState.errorEmitted)&&this._socket.end())}),xn(this)}}pause(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!0,this._socket.pause())}ping(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=t=void 0):typeof t=="function"&&(n=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Bt(this,e,n);return}t===void 0&&(t=!this._isServer),this._sender.ping(e||Fe,t,n)}pong(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof e=="function"?(n=e,e=t=void 0):typeof t=="function"&&(n=t,t=void 0),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Bt(this,e,n);return}t===void 0&&(t=!this._isServer),this._sender.pong(e||Fe,t,n)}resume(){this.readyState===r.CONNECTING||this.readyState===r.CLOSED||(this._paused=!1,this._receiver._writableState.needDrain||this._socket.resume())}send(e,t,n){if(this.readyState===r.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if(typeof t=="function"&&(n=t,t={}),typeof e=="number"&&(e=e.toString()),this.readyState!==r.OPEN){Bt(this,e,n);return}let s={binary:typeof e!="string",mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[V.extensionName]||(s.compress=!1),this._sender.send(e||Fe,s,n)}terminate(){if(this.readyState!==r.CLOSED){if(this.readyState===r.CONNECTING){A(this,this._req,"WebSocket was closed before the connection was established");return}this._socket&&(this._readyState=r.CLOSING,this._socket.destroy())}}};Object.defineProperty(S,"CONNECTING",{enumerable:!0,value:W.indexOf("CONNECTING")});Object.defineProperty(S.prototype,"CONNECTING",{enumerable:!0,value:W.indexOf("CONNECTING")});Object.defineProperty(S,"OPEN",{enumerable:!0,value:W.indexOf("OPEN")});Object.defineProperty(S.prototype,"OPEN",{enumerable:!0,value:W.indexOf("OPEN")});Object.defineProperty(S,"CLOSING",{enumerable:!0,value:W.indexOf("CLOSING")});Object.defineProperty(S.prototype,"CLOSING",{enumerable:!0,value:W.indexOf("CLOSING")});Object.defineProperty(S,"CLOSED",{enumerable:!0,value:W.indexOf("CLOSED")});Object.defineProperty(S.prototype,"CLOSED",{enumerable:!0,value:W.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","isPaused","protocol","readyState","url"].forEach(r=>{Object.defineProperty(S.prototype,r,{enumerable:!0})});["open","error","close","message"].forEach(r=>{Object.defineProperty(S.prototype,`on${r}`,{enumerable:!0,get(){for(let e of this.listeners(r))if(e[jt])return e[ji];return null},set(e){for(let t of this.listeners(r))if(t[jt]){this.removeListener(r,t);break}typeof e=="function"&&this.addEventListener(r,e,{[jt]:!0})}})});S.prototype.addEventListener=Bi;S.prototype.removeEventListener=Ui;In.exports=S;function wn(r,e,t,n){let s={allowSynchronousEvents:!0,autoPong:!0,closeTimeout:Li,protocolVersion:$t[1],maxPayload:104857600,skipUTF8Validation:!1,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...n,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:"GET",host:void 0,path:void 0,port:void 0};if(r._autoPong=s.autoPong,r._closeTimeout=s.closeTimeout,!$t.includes(s.protocolVersion))throw new RangeError(`Unsupported protocol version: ${s.protocolVersion} (supported versions: ${$t.join(", ")})`);let i;if(e instanceof Mt)i=e;else try{i=new Mt(e)}catch{throw new SyntaxError(`Invalid URL: ${e}`)}i.protocol==="http:"?i.protocol="ws:":i.protocol==="https:"&&(i.protocol="wss:"),r._url=i.href;let o=i.protocol==="wss:",c=i.protocol==="ws+unix:",a;if(i.protocol!=="ws:"&&!o&&!c?a=`The URL's protocol must be one of "ws:", "wss:", "http:", "https:", or "ws+unix:"`:c&&!i.pathname?a="The URL's pathname is empty":i.hash&&(a="The URL contains a fragment identifier"),a){let p=new SyntaxError(a);if(r._redirects===0)throw p;qe(r,p);return}let l=o?443:80,d=Ti(16).toString("base64"),u=o?Ii.request:Ci.request,h=new Set,g;if(s.createConnection=s.createConnection||(o?Gi:Hi),s.defaultPort=s.defaultPort||l,s.port=i.port||l,s.host=i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,s.headers={...s.headers,"Sec-WebSocket-Version":s.protocolVersion,"Sec-WebSocket-Key":d,Connection:"Upgrade",Upgrade:"websocket"},s.path=i.pathname+i.search,s.timeout=s.handshakeTimeout,s.perMessageDeflate&&(g=new V({...s.perMessageDeflate,isServer:!1,maxPayload:s.maxPayload}),s.headers["Sec-WebSocket-Extensions"]=Wi({[V.extensionName]:g.offer()})),t.length){for(let p of t){if(typeof p!="string"||!Vi.test(p)||h.has(p))throw new SyntaxError("An invalid or duplicated subprotocol was specified");h.add(p)}s.headers["Sec-WebSocket-Protocol"]=t.join(",")}if(s.origin&&(s.protocolVersion<13?s.headers["Sec-WebSocket-Origin"]=s.origin:s.headers.Origin=s.origin),(i.username||i.password)&&(s.auth=`${i.username}:${i.password}`),c){let p=s.path.split(":");s.socketPath=p[0],s.path=p[1]}let f;if(s.followRedirects){if(r._redirects===0){r._originalIpc=c,r._originalSecure=o,r._originalHostOrSocketPath=c?s.socketPath:i.host;let p=n&&n.headers;if(n={...n,headers:{}},p)for(let[m,v]of Object.entries(p))n.headers[m.toLowerCase()]=v}else if(r.listenerCount("redirect")===0){let p=c?r._originalIpc?s.socketPath===r._originalHostOrSocketPath:!1:r._originalIpc?!1:i.host===r._originalHostOrSocketPath;(!p||r._originalSecure&&!o)&&(delete s.headers.authorization,delete s.headers.cookie,p||delete s.headers.host,s.auth=void 0)}s.auth&&!n.headers.authorization&&(n.headers.authorization="Basic "+Buffer.from(s.auth).toString("base64")),f=r._req=u(s),r._redirects&&r.emit("redirect",r.url,f)}else f=r._req=u(s);s.timeout&&f.on("timeout",()=>{A(r,f,"Opening handshake has timed out")}),f.on("error",p=>{f===null||f[Sn]||(f=r._req=null,qe(r,p))}),f.on("response",p=>{let m=p.headers.location,v=p.statusCode;if(m&&s.followRedirects&&v>=300&&v<400){if(++r._redirects>s.maxRedirects){A(r,f,"Maximum redirects exceeded");return}f.abort();let C;try{C=new Mt(m,e)}catch{let w=new SyntaxError(`Invalid URL: ${m}`);qe(r,w);return}wn(r,C,t,n)}else r.emit("unexpected-response",f,p)||A(r,f,`Unexpected server response: ${p.statusCode}`)}),f.on("upgrade",(p,m,v)=>{if(r.emit("upgrade",p),r.readyState!==S.CONNECTING)return;f=r._req=null;let C=p.headers.upgrade;if(C===void 0||C.toLowerCase()!=="websocket"){A(r,m,"Invalid Upgrade header");return}let b=Pi("sha1").update(d+Mi).digest("base64");if(p.headers["sec-websocket-accept"]!==b){A(r,m,"Invalid Sec-WebSocket-Accept header");return}let w=p.headers["sec-websocket-protocol"],y;if(w!==void 0?h.size?h.has(w)||(y="Server sent an invalid subprotocol"):y="Server sent a subprotocol but none was requested":h.size&&(y="Server sent no subprotocol"),y){A(r,m,y);return}w&&(r._protocol=w);let R=p.headers["sec-websocket-extensions"];if(R!==void 0){if(!g){A(r,m,"Server sent a Sec-WebSocket-Extensions header but no extension was requested");return}let G;try{G=Fi(R)}catch{A(r,m,"Invalid Sec-WebSocket-Extensions header");return}let Ie=Object.keys(G);if(Ie.length!==1||Ie[0]!==V.extensionName){A(r,m,"Server indicated an extension that was not requested");return}try{g.accept(G[V.extensionName])}catch{A(r,m,"Invalid Sec-WebSocket-Extensions header");return}r._extensions[V.extensionName]=g}r.setSocket(m,v,{allowSynchronousEvents:s.allowSynchronousEvents,generateMask:s.generateMask,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation})}),s.finishRequest?s.finishRequest(f,r):f.end()}function qe(r,e){r._readyState=S.CLOSING,r._errorEmitted=!0,r.emit("error",e),r.emitClose()}function Hi(r){return r.path=r.socketPath,yn.connect(r)}function Gi(r){return r.path=void 0,!r.servername&&r.servername!==""&&(r.servername=yn.isIP(r.host)?"":r.host),Ai.connect(r)}function A(r,e,t){r._readyState=S.CLOSING;let n=new Error(t);Error.captureStackTrace(n,A),e.setHeader?(e[Sn]=!0,e.abort(),e.socket&&!e.socket.destroyed&&e.socket.destroy(),process.nextTick(qe,r,n)):(e.destroy(n),e.once("error",r.emit.bind(r,"error")),e.once("close",r.emitClose.bind(r)))}function Bt(r,e,t){if(e){let n=Di(e)?e.size:qi(e).length;r._socket?r._sender._bufferedBytes+=n:r._bufferedAmount+=n}if(t){let n=new Error(`WebSocket is not open: readyState ${r.readyState} (${W[r.readyState]})`);process.nextTick(t,n)}}function Ki(r,e){let t=this[I];t._closeFrameReceived=!0,t._closeMessage=e,t._closeCode=r,t._socket[I]!==void 0&&(t._socket.removeListener("data",Ve),process.nextTick(En,t._socket),r===1005?t.close():t.close(r,e))}function Yi(){let r=this[I];r.isPaused||r._socket.resume()}function zi(r){let e=this[I];e._socket[I]!==void 0&&(e._socket.removeListener("data",Ve),process.nextTick(En,e._socket),e.close(r[$i])),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r))}function _n(){this[I].emitClose()}function Ji(r,e){this[I].emit("message",r,e)}function Xi(r){let e=this[I];e._autoPong&&e.pong(r,!this._isServer,bn),e.emit("ping",r)}function Qi(r){this[I].emit("pong",r)}function En(r){r.resume()}function Zi(r){let e=this[I];e.readyState!==S.CLOSED&&(e.readyState===S.OPEN&&(e._readyState=S.CLOSING,xn(e)),this._socket.end(),e._errorEmitted||(e._errorEmitted=!0,e.emit("error",r)))}function xn(r){r._closeTimer=setTimeout(r._socket.destroy.bind(r._socket),r._closeTimeout)}function vn(){let r=this[I];if(this.removeListener("close",vn),this.removeListener("data",Ve),this.removeListener("end",kn),r._readyState=S.CLOSING,!this._readableState.endEmitted&&!r._closeFrameReceived&&!r._receiver._writableState.errorEmitted&&this._readableState.length!==0){let e=this.read(this._readableState.length);r._receiver.write(e)}r._receiver.end(),this[I]=void 0,clearTimeout(r._closeTimer),r._receiver._writableState.finished||r._receiver._writableState.errorEmitted?r.emitClose():(r._receiver.on("error",_n),r._receiver.on("finish",_n))}function Ve(r){this[I]._receiver.write(r)||this.pause()}function kn(){let r=this[I];r._readyState=S.CLOSING,r._receiver.end(),this.end()}function On(){let r=this[I];this.removeListener("error",On),this.on("error",bn),r&&(r._readyState=S.CLOSING,this.destroy())}});var Pn=E((Fa,Tn)=>{"use strict";var Wa=He(),{Duplex:eo}=require("stream");function Cn(r){r.emit("close")}function to(){!this.destroyed&&this._writableState.finished&&this.destroy()}function An(r){this.removeListener("error",An),this.destroy(),this.listenerCount("error")===0&&this.emit("error",r)}function ro(r,e){let t=!0,n=new eo({...e,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return r.on("message",function(i,o){let c=!o&&n._readableState.objectMode?i.toString():i;n.push(c)||r.pause()}),r.once("error",function(i){n.destroyed||(t=!1,n.destroy(i))}),r.once("close",function(){n.destroyed||n.push(null)}),n._destroy=function(s,i){if(r.readyState===r.CLOSED){i(s),process.nextTick(Cn,n);return}let o=!1;r.once("error",function(a){o=!0,i(a)}),r.once("close",function(){o||i(s),process.nextTick(Cn,n)}),t&&r.terminate()},n._final=function(s){if(r.readyState===r.CONNECTING){r.once("open",function(){n._final(s)});return}r._socket!==null&&(r._socket._writableState.finished?(s(),n._readableState.endEmitted&&n.destroy()):(r._socket.once("finish",function(){s()}),r.close()))},n._read=function(){r.isPaused&&r.resume()},n._write=function(s,i,o){if(r.readyState===r.CONNECTING){r.once("open",function(){n._write(s,i,o)});return}r.send(s,o)},n.on("end",to),n.on("error",An),n}Tn.exports=ro});var Ut=E((qa,Nn)=>{"use strict";var{tokenChars:no}=ie();function so(r){let e=new Set,t=-1,n=-1,s=0;for(s;s<r.length;s++){let o=r.charCodeAt(s);if(n===-1&&no[o]===1)t===-1&&(t=s);else if(s!==0&&(o===32||o===9))n===-1&&t!==-1&&(n=s);else if(o===44){if(t===-1)throw new SyntaxError(`Unexpected character at index ${s}`);n===-1&&(n=s);let c=r.slice(t,n);if(e.has(c))throw new SyntaxError(`The "${c}" subprotocol is duplicated`);e.add(c),t=n=-1}else throw new SyntaxError(`Unexpected character at index ${s}`)}if(t===-1||n!==-1)throw new SyntaxError("Unexpected end of input");let i=r.slice(t,s);if(e.has(i))throw new SyntaxError(`The "${i}" subprotocol is duplicated`);return e.add(i),e}Nn.exports={parse:so}});var Bn=E((Ha,$n)=>{"use strict";var io=require("events"),Ge=require("http"),{Duplex:Va}=require("stream"),{createHash:oo}=require("crypto"),Rn=We(),J=se(),ao=Ut(),lo=He(),{CLOSE_TIMEOUT:co,GUID:uo,kWebSocket:ho}=$(),fo=/^[+/0-9A-Za-z]{22}==$/,Dn=0,Ln=1,jn=2,Wt=class extends io{constructor(e,t){if(super(),e={allowSynchronousEvents:!0,autoPong:!0,maxPayload:100*1024*1024,skipUTF8Validation:!1,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,closeTimeout:co,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,WebSocket:lo,...e},e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer)throw new TypeError('One and only one of the "port", "server", or "noServer" options must be specified');if(e.port!=null?(this._server=Ge.createServer((n,s)=>{let i=Ge.STATUS_CODES[426];s.writeHead(426,{"Content-Length":i.length,"Content-Type":"text/plain"}),s.end(i)}),this._server.listen(e.port,e.host,e.backlog,t)):e.server&&(this._server=e.server),this._server){let n=this.emit.bind(this,"connection");this._removeListeners=po(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(s,i,o)=>{this.handleUpgrade(s,i,o,n)}})}e.perMessageDeflate===!0&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set,this._shouldEmitClose=!1),this.options=e,this._state=Dn}address(){if(this.options.noServer)throw new Error('The server is operating in "noServer" mode');return this._server?this._server.address():null}close(e){if(this._state===jn){e&&this.once("close",()=>{e(new Error("The server is not running"))}),process.nextTick(me,this);return}if(e&&this.once("close",e),this._state!==Ln)if(this._state=Ln,this.options.noServer||this.options.server)this._server&&(this._removeListeners(),this._removeListeners=this._server=null),this.clients?this.clients.size?this._shouldEmitClose=!0:process.nextTick(me,this):process.nextTick(me,this);else{let t=this._server;this._removeListeners(),this._removeListeners=this._server=null,t.close(()=>{me(this)})}}shouldHandle(e){if(this.options.path){let t=e.url.indexOf("?");if((t!==-1?e.url.slice(0,t):e.url)!==this.options.path)return!1}return!0}handleUpgrade(e,t,n,s){t.on("error",Mn);let i=e.headers["sec-websocket-key"],o=e.headers.upgrade,c=+e.headers["sec-websocket-version"];if(e.method!=="GET"){X(this,e,t,405,"Invalid HTTP method");return}if(o===void 0||o.toLowerCase()!=="websocket"){X(this,e,t,400,"Invalid Upgrade header");return}if(i===void 0||!fo.test(i)){X(this,e,t,400,"Missing or invalid Sec-WebSocket-Key header");return}if(c!==13&&c!==8){X(this,e,t,400,"Missing or invalid Sec-WebSocket-Version header",{"Sec-WebSocket-Version":"13, 8"});return}if(!this.shouldHandle(e)){_e(t,400);return}let a=e.headers["sec-websocket-protocol"],l=new Set;if(a!==void 0)try{l=ao.parse(a)}catch{X(this,e,t,400,"Invalid Sec-WebSocket-Protocol header");return}let d=e.headers["sec-websocket-extensions"],u={};if(this.options.perMessageDeflate&&d!==void 0){let h=new J({...this.options.perMessageDeflate,isServer:!0,maxPayload:this.options.maxPayload});try{let g=Rn.parse(d);g[J.extensionName]&&(h.accept(g[J.extensionName]),u[J.extensionName]=h)}catch{X(this,e,t,400,"Invalid or unacceptable Sec-WebSocket-Extensions header");return}}if(this.options.verifyClient){let h={origin:e.headers[`${c===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(h,(g,f,p,m)=>{if(!g)return _e(t,f||401,p,m);this.completeUpgrade(u,i,l,e,t,n,s)});return}if(!this.options.verifyClient(h))return _e(t,401)}this.completeUpgrade(u,i,l,e,t,n,s)}completeUpgrade(e,t,n,s,i,o,c){if(!i.readable||!i.writable)return i.destroy();if(i[ho])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");if(this._state>Dn)return _e(i,503);let l=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${oo("sha1").update(t+uo).digest("base64")}`],d=new this.options.WebSocket(null,void 0,this.options);if(n.size){let u=this.options.handleProtocols?this.options.handleProtocols(n,s):n.values().next().value;u&&(l.push(`Sec-WebSocket-Protocol: ${u}`),d._protocol=u)}if(e[J.extensionName]){let u=e[J.extensionName].params,h=Rn.format({[J.extensionName]:[u]});l.push(`Sec-WebSocket-Extensions: ${h}`),d._extensions=e}this.emit("headers",l,s),i.write(l.concat(`\r
24
24
  `).join(`\r
25
- `)),i.removeListener("error",Ln),d.setSocket(i,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(be,this)})),c(d,s)}};jn.exports=Ft;function fo(r,e){for(let t of Object.keys(e))r.on(t,e[t]);return function(){for(let n of Object.keys(e))r.removeListener(n,e[n])}}function be(r){r._state=Mn,r.emit("close")}function Ln(){this.destroy()}function Se(r,e,t,n){t=t||Ke.STATUS_CODES[e],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(t),...n},r.once("finish",r.destroy),r.end(`HTTP/1.1 ${e} ${Ke.STATUS_CODES[e]}\r
25
+ `)),i.removeListener("error",Mn),d.setSocket(i,o,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on("close",()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(me,this)})),c(d,s)}};$n.exports=Wt;function po(r,e){for(let t of Object.keys(e))r.on(t,e[t]);return function(){for(let n of Object.keys(e))r.removeListener(n,e[n])}}function me(r){r._state=jn,r.emit("close")}function Mn(){this.destroy()}function _e(r,e,t,n){t=t||Ge.STATUS_CODES[e],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(t),...n},r.once("finish",r.destroy),r.end(`HTTP/1.1 ${e} ${Ge.STATUS_CODES[e]}\r
26
26
  `+Object.keys(n).map(s=>`${s}: ${n[s]}`).join(`\r
27
27
  `)+`\r
28
28
  \r
29
- `+t)}function X(r,e,t,n,s,i){if(r.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,X),r.emit("wsClientError",o,t,e)}else Se(t,n,s,i)}});var Vn={};ys(Vn,{loadConfig:()=>Vt,loadProjectSettings:()=>Gt,saveConfig:()=>Ht});function Vt(){let r=F.default.existsSync(Ye)?Ye:qn;F.default.existsSync(r)||(console.error("[bridge] Config not found. Run: bridge-agent auth"),process.exit(1));let e=F.default.readFileSync(r,"utf-8"),t;try{t=JSON.parse(e)}catch{console.error("[bridge] Invalid config file at",qn),process.exit(1)}(!t||typeof t!="object")&&(console.error("[bridge] Config must be a JSON object. Run: bridge-agent auth"),process.exit(1));let n=t,s=typeof n.server=="string"?n.server:"",i=typeof n.token=="string"?n.token:"",o=typeof n.name=="string"?n.name:"bridge-agent";return(!s||!i)&&(console.error("[bridge] Config missing server or token. Run: bridge-agent auth"),process.exit(1)),{server:s,token:i,name:o}}function Ht(r){let e=we.default.dirname(Ye);F.default.existsSync(e)||F.default.mkdirSync(e,{recursive:!0}),F.default.writeFileSync(Ye,JSON.stringify(r,null,2),{mode:384})}function Gt(r){let e=we.default.join(r??process.cwd(),".jerico","settings.json");if(!F.default.existsSync(e))return{};try{let t=F.default.readFileSync(e,"utf-8"),n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))return{};let s=n,i={};return typeof s.preferredAgent=="string"&&(i.preferredAgent=s.preferredAgent),s.hooks&&typeof s.hooks=="object"&&!Array.isArray(s.hooks)&&(i.hooks=Object.fromEntries(Object.entries(s.hooks).filter(([,o])=>typeof o=="string"))),s.env&&typeof s.env=="object"&&!Array.isArray(s.env)&&(i.env=Object.fromEntries(Object.entries(s.env).filter(([,o])=>typeof o=="string"))),i}catch{return console.warn("[bridge] Failed to parse .jerico/settings.json, ignoring"),{}}}var F,we,qt,Ye,qn,ze=_s(()=>{"use strict";F=_(require("fs")),we=_(require("path")),qt=_(require("os")),Ye=we.default.join(qt.default.homedir(),".jerico","settings.json"),qn=we.default.join(qt.default.homedir(),".bridge","config.json")});var hr=_(ur(),1),{program:ua,createCommand:ha,createArgument:fa,createOption:pa,CommanderError:ga,InvalidArgumentError:ma,InvalidOptionArgumentError:_a,Command:fr,Argument:ya,Option:ba,Help:Sa}=hr.default;var ss=require("node:http"),ue=require("node:child_process"),tt=require("node:fs"),he=require("node:os"),ee=require("node:path");var Dr=_(require("node-pty"));var Tr=_(Ar()),Pr=_(require("fs")),Nr=_(require("path")),Rr=_(require("net")),Pe=r=>r+`
30
- `,Ne=r=>r.replace(/[\r\n]+$/,"")+"\r",re=[{key:"sh",displayName:"Shell",binary:"sh",checkAuth:async()=>!0,formatInput:Pe},{key:"claude",displayName:"Claude Code",binary:"claude",checkAuth:async()=>St(".claude")||te("ANTHROPIC_API_KEY"),assignSessionId:!0,spawnArgs:["--dangerously-skip-permissions"],resumeArgs:r=>["--dangerously-skip-permissions","--resume",r],supportsMcpConfig:!0,formatInput:Ne},{key:"codex",displayName:"Codex CLI",binary:"codex",checkAuth:async()=>te("OPENAI_API_KEY"),spawnArgs:["--full-auto"],supportsMcpConfig:!0,formatInput:Ne},{key:"qwen",displayName:"Qwen CLI",binary:"qwen",checkAuth:async()=>St(".qwen"),assignSessionId:!0,spawnArgs:["--yolo"],resumeArgs:r=>["--resume",r,"--yolo"],supportsMcpConfig:!0,formatInput:Ne},{key:"gemini",displayName:"Gemini",binary:"gemini",checkAuth:async()=>te("GEMINI_API_KEY"),supportsMcpConfig:!0,formatInput:Pe},{key:"ollama",displayName:"Ollama",binary:"ollama",checkAuth:async()=>Ks(11434),formatInput:Pe},{key:"aider",displayName:"Aider",binary:"aider",checkAuth:async()=>te("OPENAI_API_KEY")||te("ANTHROPIC_API_KEY"),supportsMcpConfig:!0,formatInput:Pe},{key:"kimi",displayName:"Kimi Code",binary:"kimi",checkAuth:async()=>St(".kimi")||te("KIMI_API_KEY"),assignSessionId:!0,spawnArgs:["--yolo"],resumeArgs:r=>["-r",r,"--yolo"],supportsMcpConfig:!0,formatInput:Ne}];async function wt(){let r=[];for(let e of re)try{let t=await(0,Tr.default)(e.binary),s=await e.checkAuth()?"ok":"missing";r.push({key:e.key,displayName:e.displayName,binaryPath:t,authStatus:s})}catch{}return console.log("[daemon] agent.detect.done",{found:r.map(e=>e.key),missing:re.map(e=>e.key).filter(e=>!r.find(t=>t.key===e))}),r}function St(r){return Pr.default.existsSync(Nr.default.join(process.env.HOME??"",r))}function te(r){return!!process.env[r]}async function Ks(r){return new Promise(e=>{let t=Rr.default.createConnection(r,"127.0.0.1");t.setTimeout(200),t.on("connect",()=>{t.destroy(),e(!0)}),t.on("error",()=>e(!1)),t.on("timeout",()=>{t.destroy(),e(!1)})})}var Re=class{handles=new Map;spawn(e,t,n,s,i,o,c,a,l){this.handles.has(e)&&this.kill(e,!0);let d=Math.max(1,Math.min(500,i)),u=Math.max(1,Math.min(500,o)),h={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor"};l&&(h.BRIDGE_SERVER_URL=l.serverUrl,h.BRIDGE_TOKEN=l.token,h.BRIDGE_WORKSPACE_ID=l.workspaceId,h.BRIDGE_PROJECT_ID=l.projectId,l.projectEnv&&Object.assign(h,l.projectEnv));let g=process.env.BRIDGE_MCP_URL;g&&(h.BRIDGE_MCP_URL=g);let f;try{f=Dr.spawn(n,s,{name:"xterm-256color",cols:d,rows:u,cwd:l?.cwd,env:h})}catch(m){let v=m instanceof Error?m.message:String(m);return console.error("[daemon] pty.spawn.failed",{agentId:e,agentKey:t,error:v}),!1}let p={agentId:e,agentKey:t,process:f,pid:f.pid,killed:!1};return f.onData(m=>{c(Buffer.from(m).toString("base64"))}),f.onExit(({exitCode:m,signal:v})=>{p.killed||(this.handles.delete(e),console.log("[daemon] pty.exit",{agentId:e,exitCode:m,signal:v}),a(m??null,v?String(v):null))}),this.handles.set(e,p),console.log("[daemon] pty.spawn.success",{agentId:e,agentKey:t,args:s,cwd:l?.cwd}),!0}write(e,t,n){let s=this.handles.get(e);if(!s)return;let i=Buffer.from(t,"base64").toString(),o=re.find(a=>a.key===s.agentKey),c=n==="orchestrator"&&o?.formatInput?o.formatInput(i):i;s.process.write(c)}kill(e,t=!1){let n=this.handles.get(e);if(!n)return;n.killed=!0,this.handles.delete(e);let s=n.pid;if(t){try{process.kill(-s,"SIGTERM")}catch{n.process.kill()}setTimeout(()=>{try{process.kill(-s,"SIGKILL")}catch{}},2e3)}else try{process.kill(-s,"SIGTERM")}catch{n.process.kill()}console.log("[daemon] pty.kill",{agentId:e,force:t})}resize(e,t,n){let s=this.handles.get(e);if(!s)return;let i=Math.max(1,Math.min(500,t)),o=Math.max(1,Math.min(500,n));s.process.resize(i,o)}killAll(){for(let e of this.handles.values())try{process.kill(-e.pid,"SIGTERM")}catch{e.process.kill()}this.handles.clear()}};var po=_(Tn(),1),go=_(Fe(),1),mo=_(ie(),1),_o=_(Nt(),1),yo=_(Lt(),1),bo=_(Wt(),1),Bn=_(Ge(),1),So=_($n(),1);var O=Bn.default;var Z=_(require("fs")),L=_(require("path")),Oe=_(require("os")),Xt=require("node:child_process"),es=require("node:crypto");var Un=r=>r;var Wn=r=>r,Fn=r=>r;ze();var Ee=_(require("fs")),Kt=_(require("path")),Hn=_(require("os")),wo=2e5;function Eo(r){let e=Kt.default.join(Hn.default.homedir(),".claude","projects");if(Ee.default.existsSync(e))try{let t=Ee.default.readdirSync(e,{withFileTypes:!0}).filter(n=>n.isDirectory());for(let n of t){let s=Kt.default.join(e,n.name,`${r}.jsonl`);if(Ee.default.existsSync(s))return s}}catch{}}function xo(r){try{let t=Ee.default.readFileSync(r,"utf-8").trim().split(`
31
- `);for(let n=t.length-1;n>=0;n--){let s=t[n]?.trim();if(s)try{let i=JSON.parse(s),o=i.message?.usage??i.usage;if(!o||typeof o!="object")continue;let c=o,a=(c.input_tokens??0)+(c.cache_creation_input_tokens??0)+(c.cache_read_input_tokens??0);if(a===0)continue;return{usedPct:Math.min(100,Math.round(a/wo*100)),usedTokens:a}}catch{continue}}}catch{}return null}function Yt(r,e,t){let n,s=-1,i=()=>{if(n||(n=Eo(e)),!n)return;let a=xo(n);a&&a.usedTokens!==s&&(s=a.usedTokens,t(r,a.usedPct,a.usedTokens))},o=setTimeout(i,2e3),c=setInterval(i,3e3);return()=>{clearTimeout(o),clearInterval(c)}}var H=_(require("fs")),xe=_(require("path")),zt=_(require("os")),Gn=300*60*1e3,Kn={free:10,pro:40,max_5x:200,max_20x:200};function vo(){let r=xe.default.join(zt.default.homedir(),".jerico","settings.json");try{if(!H.default.existsSync(r))return"pro";let t=JSON.parse(H.default.readFileSync(r,"utf-8")).claudeTier;if(typeof t=="string"&&t in Kn)return t}catch{}return"pro"}function ko(){let r=xe.default.join(zt.default.homedir(),".claude","projects");if(!H.default.existsSync(r))return{prompts5h:0,resetAt:0};let t=Date.now()-Gn,n=1/0,s=0;try{let o=H.default.readdirSync(r,{withFileTypes:!0}).filter(c=>c.isDirectory());for(let c of o){let a=xe.default.join(r,c.name),l;try{l=H.default.readdirSync(a).filter(d=>d.endsWith(".jsonl"))}catch{continue}for(let d of l){let u=xe.default.join(a,d),h;try{if(H.default.statSync(u).size>20*1024*1024)continue;h=H.default.readFileSync(u,"utf-8")}catch{continue}for(let g of h.split(`
32
- `)){let f=g.trim();if(f)try{let p=JSON.parse(f);if(p.type!=="user"||p.message?.role!=="user"||p.userType!==void 0&&p.userType!=="external")continue;let v=p.timestamp;if(typeof v!="string")continue;let C=Date.parse(v);if(isNaN(C)||C<t)continue;s++,C<n&&(n=C)}catch{continue}}}}}catch{}let i=isFinite(n)?n+Gn:0;return{prompts5h:s,resetAt:i}}function Yn(r){let e=()=>{let n=vo(),s=Kn[n]??40,{prompts5h:i,resetAt:o}=ko();r({prompts5h:i,limit5h:s,resetAt:o,tier:n})};try{e()}catch(n){console.warn("[quota] initial poll failed",n)}let t=setInterval(()=>{try{e()}catch{}},6e4);return()=>clearInterval(t)}var Xe=_(require("os")),Je=_(require("fs")),Jn=require("node:child_process");function Xn(){let r=0,e=0;for(let t of Xe.default.cpus())r+=t.times.idle,e+=t.times.user+t.times.nice+t.times.sys+t.times.idle+(t.times.irq??0);return{idle:r,total:e}}var Jt=Xn();function Oo(){let r=Xn(),e=r.idle-Jt.idle,t=r.total-Jt.total;return Jt=r,t===0?0:Math.round((1-e/t)*100)}function Io(){let r=Xe.default.totalmem(),e=Xe.default.freemem();return{totalMb:Math.round(r/1024/1024),usedMb:Math.round((r-e)/1024/1024)}}function Co(){try{let r=(0,Jn.spawnSync)("pmset",["-g","batt"],{encoding:"utf-8",timeout:2e3,stdio:"pipe"});if(r.status!==0||!r.stdout)return;let e=r.stdout.match(/(\d+)%;\s*(charging|discharging|charged|finishing charge)/i);if(!e)return;let t=parseInt(e[1],10),n=/charging|charged|finishing/i.test(e[2]);return{percent:t,charging:n}}catch{return}}function Ao(){try{let r="/sys/class/power_supply",e=Je.default.readdirSync(r).filter(o=>/^BAT/i.test(o));if(e.length===0)return;let t=`${r}/${e[0]}`,n=parseInt(Je.default.readFileSync(`${t}/capacity`,"utf-8").trim(),10),s=Je.default.readFileSync(`${t}/status`,"utf-8").trim().toLowerCase();return{percent:n,charging:s==="charging"||s==="full"}}catch{return}}function zn(){let r=process.platform;if(r==="darwin")return Co();if(r==="linux")return Ao()}var To=1e4,Po=3;function Qn(r){let e=0,t=zn(),n=setInterval(()=>{e++,e%Po===0&&(t=zn());let s=Io();r({cpu:Oo(),ramUsedMb:s.usedMb,ramTotalMb:s.totalMb,battery:t})},To);return()=>clearInterval(n)}var Q=new Map,No=r=>r.replace(/[\r\n]+$/,"")+"\r",Qt=null,Ro=Yn(r=>{Qt=r}),Do=3e4,Lo=5e3,Mo=400;function jo(r){return r.replace(/\x1b\[[0-9;?]*[A-Za-z]/g,"")}function $o(r,e=Mo){return r.length<=e?r:`${r.slice(0,e)}...`}function Bo(r){return r.replace(/^wss?:/,e=>e==="wss:"?"https:":"http:").replace(/\/ws(\/.*)?$/,"")}function Ze(){let r=Z.default.realpathSync(process.argv[1]??""),e=L.default.dirname(r);return[L.default.resolve(e,"../../mcp-server/dist/index.cjs"),L.default.resolve(e,"bridge-mcp.cjs"),L.default.resolve(process.cwd(),"node_modules/.bin/bridge-mcp")].find(n=>Z.default.existsSync(n))??"bridge-mcp"}function Uo(r){try{let e=process.env.BRIDGE_MCP_URL,t=e?{mcpServers:{bridge:{type:"http",url:`${e}/mcp/${r.workspaceId}/${r.projectId}`,headers:{Authorization:`Bearer ${r.token}`,"x-panel-id":r.agentId??""}}}}:{mcpServers:{bridge:{command:Ze(),args:[],env:{BRIDGE_SERVER_URL:r.serverUrl,BRIDGE_TOKEN:r.token,BRIDGE_WORKSPACE_ID:r.workspaceId,BRIDGE_PROJECT_ID:r.projectId,BRIDGE_PANEL_ID:r.agentId??"",HTTP_MODE:"false"}}}},n=L.default.join(Oe.default.tmpdir(),`bridge-mcp-${r.agentId??r.projectId}.json`);return Z.default.writeFileSync(n,JSON.stringify(t,null,2)+`
33
- `,"utf-8"),console.log("[daemon] mcp.config.written",{tmpPath:n,transport:e?"http":"stdio"}),["--mcp-config",n]}catch(e){return console.warn("[daemon] mcp.config.build.failed",{error:String(e)}),[]}}var Wo={bridge_get_project:"Project metadata: name, cwd, machineId",bridge_get_plan:"Read project spec/description",bridge_update_plan:"Update project spec/description",bridge_get_project_history:"Past run history and failure patterns",bridge_get_execution_status:"Run history with todo completion counts",bridge_get_todos:"List todos + session state for this project",bridge_add_todo:"Create a new todo (title, todoType, dependsOn)",bridge_update_todo:"Update a todo title or status",bridge_cancel_run:"Cancel active run (use before restarting a stale plan)",bridge_list_agents:"All agents: role, status, inRun flag",bridge_get_agent_status:"Single agent status check",bridge_spawn_worker:"Spawn a new worker agent (agentKey, role)",bridge_kill_agent:"Terminate a stuck or dead agent",bridge_get_agent_output:"Read terminal output of any agent",bridge_send_input:"Send text input to an agent PTY",bridge_get_my_task:"Get the task assigned to this agent",bridge_complete_task:"Signal task completion",bridge_fail_task:"Signal task failure with a specific reason",bridge_get_todo_context:"Read todo output/error for a specific todo",bridge_assign_task:"Assign a pending todo to a specific agent"};function ve(...r){return`
29
+ `+t)}function X(r,e,t,n,s,i){if(r.listenerCount("wsClientError")){let o=new Error(s);Error.captureStackTrace(o,X),r.emit("wsClientError",o,t,e)}else _e(t,n,s,i)}});var Hn={};bs(Hn,{loadConfig:()=>qt,loadProjectSettings:()=>Ht,saveConfig:()=>Vt});function qt(){let r=F.default.existsSync(Ke)?Ke:Vn;F.default.existsSync(r)||(console.error("[bridge] Config not found. Run: bridge-agent auth"),process.exit(1));let e=F.default.readFileSync(r,"utf-8"),t;try{t=JSON.parse(e)}catch{console.error("[bridge] Invalid config file at",Vn),process.exit(1)}(!t||typeof t!="object")&&(console.error("[bridge] Config must be a JSON object. Run: bridge-agent auth"),process.exit(1));let n=t,s=typeof n.server=="string"?n.server:"",i=typeof n.token=="string"?n.token:"",o=typeof n.name=="string"?n.name:"bridge-agent";return(!s||!i)&&(console.error("[bridge] Config missing server or token. Run: bridge-agent auth"),process.exit(1)),{server:s,token:i,name:o}}function Vt(r){let e=ye.default.dirname(Ke);F.default.existsSync(e)||F.default.mkdirSync(e,{recursive:!0}),F.default.writeFileSync(Ke,JSON.stringify(r,null,2),{mode:384})}function Ht(r){let e=ye.default.join(r??process.cwd(),".jerico","settings.json");if(!F.default.existsSync(e))return{};try{let t=F.default.readFileSync(e,"utf-8"),n=JSON.parse(t);if(!n||typeof n!="object"||Array.isArray(n))return{};let s=n,i={};return typeof s.preferredAgent=="string"&&(i.preferredAgent=s.preferredAgent),s.hooks&&typeof s.hooks=="object"&&!Array.isArray(s.hooks)&&(i.hooks=Object.fromEntries(Object.entries(s.hooks).filter(([,o])=>typeof o=="string"))),s.env&&typeof s.env=="object"&&!Array.isArray(s.env)&&(i.env=Object.fromEntries(Object.entries(s.env).filter(([,o])=>typeof o=="string"))),i}catch{return console.warn("[bridge] Failed to parse .jerico/settings.json, ignoring"),{}}}var F,ye,Ft,Ke,Vn,Ye=ys(()=>{"use strict";F=_(require("fs")),ye=_(require("path")),Ft=_(require("os")),Ke=ye.default.join(Ft.default.homedir(),".jerico","settings.json"),Vn=ye.default.join(Ft.default.homedir(),".bridge","config.json")});var fr=_(hr(),1),{program:ha,createCommand:fa,createArgument:pa,createOption:ga,CommanderError:ma,InvalidArgumentError:_a,InvalidOptionArgumentError:ya,Command:pr,Argument:ba,Option:Sa,Help:wa}=fr.default;var is=require("node:http"),ve=require("node:child_process"),os=require("node:fs"),et=require("node:os"),ke=require("node:path");var Lr=_(require("node-pty"));var Pr=_(Tr()),Nr=_(require("fs")),Rr=_(require("path")),Dr=_(require("net")),Te=r=>r+`
30
+ `,Pe=r=>r.replace(/[\r\n]+$/,"")+"\r",te=[{key:"sh",displayName:"Shell",binary:"sh",checkAuth:async()=>!0,formatInput:Te},{key:"claude",displayName:"Claude Code",binary:"claude",checkAuth:async()=>bt(".claude")||ee("ANTHROPIC_API_KEY"),assignSessionId:!0,spawnArgs:["--dangerously-skip-permissions"],resumeArgs:r=>["--dangerously-skip-permissions","--resume",r],supportsMcpConfig:!0,formatInput:Pe},{key:"codex",displayName:"Codex CLI",binary:"codex",checkAuth:async()=>ee("OPENAI_API_KEY"),spawnArgs:["--full-auto"],supportsMcpConfig:!0,formatInput:Pe},{key:"qwen",displayName:"Qwen CLI",binary:"qwen",checkAuth:async()=>bt(".qwen"),assignSessionId:!0,spawnArgs:["--yolo"],resumeArgs:r=>["--resume",r,"--yolo"],supportsMcpConfig:!0,formatInput:Pe},{key:"gemini",displayName:"Gemini",binary:"gemini",checkAuth:async()=>ee("GEMINI_API_KEY"),supportsMcpConfig:!0,formatInput:Te},{key:"ollama",displayName:"Ollama",binary:"ollama",checkAuth:async()=>Ys(11434),formatInput:Te},{key:"aider",displayName:"Aider",binary:"aider",checkAuth:async()=>ee("OPENAI_API_KEY")||ee("ANTHROPIC_API_KEY"),supportsMcpConfig:!0,formatInput:Te},{key:"kimi",displayName:"Kimi Code",binary:"kimi",checkAuth:async()=>bt(".kimi")||ee("KIMI_API_KEY"),assignSessionId:!0,spawnArgs:["--yolo"],resumeArgs:r=>["-r",r,"--yolo"],supportsMcpConfig:!0,formatInput:Pe}];async function St(){let r=[];for(let e of te)try{let t=await(0,Pr.default)(e.binary),s=await e.checkAuth()?"ok":"missing";r.push({key:e.key,displayName:e.displayName,binaryPath:t,authStatus:s})}catch{}return console.log("[daemon] agent.detect.done",{found:r.map(e=>e.key),missing:te.map(e=>e.key).filter(e=>!r.find(t=>t.key===e))}),r}function bt(r){return Nr.default.existsSync(Rr.default.join(process.env.HOME??"",r))}function ee(r){return!!process.env[r]}async function Ys(r){return new Promise(e=>{let t=Dr.default.createConnection(r,"127.0.0.1");t.setTimeout(200),t.on("connect",()=>{t.destroy(),e(!0)}),t.on("error",()=>e(!1)),t.on("timeout",()=>{t.destroy(),e(!1)})})}var Ne=class{handles=new Map;spawn(e,t,n,s,i,o,c,a,l){this.handles.has(e)&&this.kill(e,!0);let d=Math.max(1,Math.min(500,i)),u=Math.max(1,Math.min(500,o)),h={...process.env,TERM:"xterm-256color",COLORTERM:"truecolor"};l&&(h.BRIDGE_SERVER_URL=l.serverUrl,h.BRIDGE_TOKEN=l.token,h.BRIDGE_WORKSPACE_ID=l.workspaceId,h.BRIDGE_PROJECT_ID=l.projectId,l.projectEnv&&Object.assign(h,l.projectEnv));let g=process.env.BRIDGE_MCP_URL;g&&(h.BRIDGE_MCP_URL=g);let f;try{f=Lr.spawn(n,s,{name:"xterm-256color",cols:d,rows:u,cwd:l?.cwd,env:h})}catch(m){let v=m instanceof Error?m.message:String(m);return console.error("[daemon] pty.spawn.failed",{agentId:e,agentKey:t,error:v}),!1}let p={agentId:e,agentKey:t,process:f,pid:f.pid,killed:!1};return f.onData(m=>{c(Buffer.from(m).toString("base64"))}),f.onExit(({exitCode:m,signal:v})=>{p.killed||(this.handles.delete(e),console.log("[daemon] pty.exit",{agentId:e,exitCode:m,signal:v}),a(m??null,v?String(v):null))}),this.handles.set(e,p),console.log("[daemon] pty.spawn.success",{agentId:e,agentKey:t,args:s,cwd:l?.cwd}),!0}write(e,t,n){let s=this.handles.get(e);if(!s)return;let i=Buffer.from(t,"base64").toString(),o=te.find(a=>a.key===s.agentKey),c=n==="orchestrator"&&o?.formatInput?o.formatInput(i):i;s.process.write(c)}kill(e,t=!1){let n=this.handles.get(e);if(!n)return;n.killed=!0,this.handles.delete(e);let s=n.pid;if(t){try{process.kill(-s,"SIGTERM")}catch{n.process.kill()}setTimeout(()=>{try{process.kill(-s,"SIGKILL")}catch{}},2e3)}else try{process.kill(-s,"SIGTERM")}catch{n.process.kill()}console.log("[daemon] pty.kill",{agentId:e,force:t})}resize(e,t,n){let s=this.handles.get(e);if(!s)return;let i=Math.max(1,Math.min(500,t)),o=Math.max(1,Math.min(500,n));s.process.resize(i,o)}killAll(){for(let e of this.handles.values())try{process.kill(-e.pid,"SIGTERM")}catch{e.process.kill()}this.handles.clear()}};var go=_(Pn(),1),mo=_(We(),1),_o=_(se(),1),yo=_(Pt(),1),bo=_(Dt(),1),So=_(Ut(),1),Un=_(He(),1),wo=_(Bn(),1);var O=Un.default;var Z=_(require("fs")),L=_(require("path")),xe=_(require("os")),Jt=require("node:child_process"),ts=require("node:crypto");var Wn=r=>r;var Fn=r=>r,qn=r=>r;Ye();var be=_(require("fs")),Gt=_(require("path")),Gn=_(require("os")),Eo=2e5;function xo(r){let e=Gt.default.join(Gn.default.homedir(),".claude","projects");if(be.default.existsSync(e))try{let t=be.default.readdirSync(e,{withFileTypes:!0}).filter(n=>n.isDirectory());for(let n of t){let s=Gt.default.join(e,n.name,`${r}.jsonl`);if(be.default.existsSync(s))return s}}catch{}}function vo(r){try{let t=be.default.readFileSync(r,"utf-8").trim().split(`
31
+ `);for(let n=t.length-1;n>=0;n--){let s=t[n]?.trim();if(s)try{let i=JSON.parse(s),o=i.message?.usage??i.usage;if(!o||typeof o!="object")continue;let c=o,a=(c.input_tokens??0)+(c.cache_creation_input_tokens??0)+(c.cache_read_input_tokens??0);if(a===0)continue;return{usedPct:Math.min(100,Math.round(a/Eo*100)),usedTokens:a}}catch{continue}}}catch{}return null}function Kt(r,e,t){let n,s=-1,i=()=>{if(n||(n=xo(e)),!n)return;let a=vo(n);a&&a.usedTokens!==s&&(s=a.usedTokens,t(r,a.usedPct,a.usedTokens))},o=setTimeout(i,2e3),c=setInterval(i,3e3);return()=>{clearTimeout(o),clearInterval(c)}}var H=_(require("fs")),Se=_(require("path")),Yt=_(require("os")),Kn=300*60*1e3,Yn={free:10,pro:40,max_5x:200,max_20x:200};function ko(){let r=Se.default.join(Yt.default.homedir(),".jerico","settings.json");try{if(!H.default.existsSync(r))return"pro";let t=JSON.parse(H.default.readFileSync(r,"utf-8")).claudeTier;if(typeof t=="string"&&t in Yn)return t}catch{}return"pro"}function Oo(){let r=Se.default.join(Yt.default.homedir(),".claude","projects");if(!H.default.existsSync(r))return{prompts5h:0,resetAt:0};let t=Date.now()-Kn,n=1/0,s=0;try{let o=H.default.readdirSync(r,{withFileTypes:!0}).filter(c=>c.isDirectory());for(let c of o){let a=Se.default.join(r,c.name),l;try{l=H.default.readdirSync(a).filter(d=>d.endsWith(".jsonl"))}catch{continue}for(let d of l){let u=Se.default.join(a,d),h;try{if(H.default.statSync(u).size>20*1024*1024)continue;h=H.default.readFileSync(u,"utf-8")}catch{continue}for(let g of h.split(`
32
+ `)){let f=g.trim();if(f)try{let p=JSON.parse(f);if(p.type!=="user"||p.message?.role!=="user"||p.userType!==void 0&&p.userType!=="external")continue;let v=p.timestamp;if(typeof v!="string")continue;let C=Date.parse(v);if(isNaN(C)||C<t)continue;s++,C<n&&(n=C)}catch{continue}}}}}catch{}let i=isFinite(n)?n+Kn:0;return{prompts5h:s,resetAt:i}}function zn(r){let e=()=>{let n=ko(),s=Yn[n]??40,{prompts5h:i,resetAt:o}=Oo();r({prompts5h:i,limit5h:s,resetAt:o,tier:n})};try{e()}catch(n){console.warn("[quota] initial poll failed",n)}let t=setInterval(()=>{try{e()}catch{}},6e4);return()=>clearInterval(t)}var Je=_(require("os")),ze=_(require("fs")),Xn=require("node:child_process");function Qn(){let r=0,e=0;for(let t of Je.default.cpus())r+=t.times.idle,e+=t.times.user+t.times.nice+t.times.sys+t.times.idle+(t.times.irq??0);return{idle:r,total:e}}var zt=Qn();function Io(){let r=Qn(),e=r.idle-zt.idle,t=r.total-zt.total;return zt=r,t===0?0:Math.round((1-e/t)*100)}function Co(){let r=Je.default.totalmem(),e=Je.default.freemem();return{totalMb:Math.round(r/1024/1024),usedMb:Math.round((r-e)/1024/1024)}}function Ao(){try{let r=(0,Xn.spawnSync)("pmset",["-g","batt"],{encoding:"utf-8",timeout:2e3,stdio:"pipe"});if(r.status!==0||!r.stdout)return;let e=r.stdout.match(/(\d+)%;\s*(charging|discharging|charged|finishing charge)/i);if(!e)return;let t=parseInt(e[1],10),n=/charging|charged|finishing/i.test(e[2]);return{percent:t,charging:n}}catch{return}}function To(){try{let r="/sys/class/power_supply",e=ze.default.readdirSync(r).filter(o=>/^BAT/i.test(o));if(e.length===0)return;let t=`${r}/${e[0]}`,n=parseInt(ze.default.readFileSync(`${t}/capacity`,"utf-8").trim(),10),s=ze.default.readFileSync(`${t}/status`,"utf-8").trim().toLowerCase();return{percent:n,charging:s==="charging"||s==="full"}}catch{return}}function Jn(){let r=process.platform;if(r==="darwin")return Ao();if(r==="linux")return To()}var Po=1e4,No=3;function Zn(r){let e=0,t=Jn(),n=setInterval(()=>{e++,e%No===0&&(t=Jn());let s=Co();r({cpu:Io(),ramUsedMb:s.usedMb,ramTotalMb:s.totalMb,battery:t})},Po);return()=>clearInterval(n)}var Q=new Map,Ro=r=>r.replace(/[\r\n]+$/,"")+"\r",Xt=null,Do=zn(r=>{Xt=r}),Lo=3e4,Mo=5e3,jo=400;function $o(r){return r.replace(/\x1b\[[0-9;?]*[A-Za-z]/g,"")}function Bo(r,e=jo){return r.length<=e?r:`${r.slice(0,e)}...`}function Uo(r){return r.replace(/^wss?:/,e=>e==="wss:"?"https:":"http:").replace(/\/ws(\/.*)?$/,"")}function Qe(){let r=Z.default.realpathSync(process.argv[1]??""),e=L.default.dirname(r);return[L.default.resolve(e,"../../mcp-server/dist/index.cjs"),L.default.resolve(e,"bridge-mcp.cjs"),L.default.resolve(process.cwd(),"node_modules/.bin/bridge-mcp")].find(n=>Z.default.existsSync(n))??"bridge-mcp"}function Wo(r){try{let e=process.env.BRIDGE_MCP_URL,t=e?{mcpServers:{bridge:{type:"http",url:`${e}/mcp/${r.workspaceId}/${r.projectId}`,headers:{Authorization:`Bearer ${r.token}`,"x-panel-id":r.agentId??""}}}}:{mcpServers:{bridge:{command:Qe(),args:[],env:{BRIDGE_SERVER_URL:r.serverUrl,BRIDGE_TOKEN:r.token,BRIDGE_WORKSPACE_ID:r.workspaceId,BRIDGE_PROJECT_ID:r.projectId,BRIDGE_PANEL_ID:r.agentId??"",HTTP_MODE:"false"}}}},n=L.default.join(xe.default.tmpdir(),`bridge-mcp-${r.agentId??r.projectId}.json`);return Z.default.writeFileSync(n,JSON.stringify(t,null,2)+`
33
+ `,"utf-8"),console.log("[daemon] mcp.config.written",{tmpPath:n,transport:e?"http":"stdio"}),["--mcp-config",n]}catch(e){return console.warn("[daemon] mcp.config.build.failed",{error:String(e)}),[]}}var Fo={bridge_get_project:"Project metadata: name, cwd, machineId",bridge_get_plan:"Read project spec/description",bridge_update_plan:"Update project spec/description",bridge_get_project_history:"Past run history and failure patterns",bridge_get_execution_status:"Run history with todo completion counts",bridge_get_todos:"List todos + session state for this project",bridge_add_todo:"Create a new todo (title, todoType, dependsOn)",bridge_update_todo:"Update a todo title or status",bridge_cancel_run:"Cancel active run (use before restarting a stale plan)",bridge_list_agents:"All agents: role, status, inRun flag",bridge_get_agent_status:"Single agent status check",bridge_spawn_worker:"Spawn a new worker agent (agentKey, role)",bridge_kill_agent:"Terminate a stuck or dead agent",bridge_get_agent_output:"Read terminal output of any agent",bridge_send_input:"Send text input to an agent PTY",bridge_get_my_task:"Get the task assigned to this agent",bridge_complete_task:"Signal task completion",bridge_fail_task:"Signal task failure with a specific reason",bridge_get_todo_context:"Read todo output/error for a specific todo",bridge_assign_task:"Assign a pending todo to a specific agent"};function we(...r){return`
34
34
 
35
- **Available MCP tools:** ${r.join(", ")}`}function Fo(...r){return`
35
+ **Available MCP tools:** ${r.join(", ")}`}function qo(...r){return`
36
36
 
37
37
  ## Tool reference (only call tools listed here)
38
38
 
39
39
  | Tool | Purpose |
40
40
  |------|---------|
41
- ${r.map(t=>`| \`${t}\` | ${Wo[t]} |`).join(`
42
- `)}`}var ts={developer:`# Bridge Worker \u2014 Developer Role
41
+ ${r.map(t=>`| \`${t}\` | ${Fo[t]} |`).join(`
42
+ `)}`}var rs={developer:`# Bridge Worker \u2014 Developer Role
43
43
 
44
44
  You are a **Developer** worker in a multi-agent orchestration system called Bridge.
45
45
 
@@ -52,7 +52,7 @@ You are a **Developer** worker in a multi-agent orchestration system called Brid
52
52
  - After making changes, check the runner agent (role:'runner' in bridge_list_agents) for build errors: bridge_get_agent_output(runnerAgentId)
53
53
  - Trigger hot reload after file changes: bridge_send_input(runnerAgentId, "r")
54
54
 
55
- ${ve("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_get_todos","bridge_list_agents","bridge_get_agent_output","bridge_send_input")}`,reviewer:`# Bridge Worker \u2014 Reviewer Role
55
+ ${we("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_get_todos","bridge_list_agents","bridge_get_agent_output","bridge_send_input")}`,reviewer:`# Bridge Worker \u2014 Reviewer Role
56
56
 
57
57
  You are a **Quality-Obsessed Tech Lead** reviewing code changes in a multi-agent system called Bridge.
58
58
  Your identity: Agile, pragmatic, anti-fragile. You ship with confidence or you send it back.
@@ -136,7 +136,7 @@ If a runner agent exists (bridge_list_agents \u2192 role:'runner'), call bridge_
136
136
  - One \`bridge_fail_task\` per review cycle \u2014 consolidate all issues into a single message
137
137
  - If unsure whether something is a bug or intentional design: flag it as a question, don't reject
138
138
 
139
- ${ve("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_get_todos","bridge_list_agents","bridge_get_agent_output")}`,planner:`# Bridge Worker \u2014 Planner Role
139
+ ${we("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_get_todos","bridge_list_agents","bridge_get_agent_output")}`,planner:`# Bridge Worker \u2014 Planner Role
140
140
 
141
141
  You are a **Planner** in Bridge. Your job: understand the project, listen to the user, then create a well-structured and verified execution plan.
142
142
 
@@ -226,7 +226,7 @@ Show the complete todo list with types and dependency chain. Then stop.
226
226
  - To close a stale open todo that's already done: \`bridge_complete_task\` with its ID
227
227
  - Todo titles must be specific: name the files, endpoints, components \u2014 no vague verbs
228
228
 
229
- ${ve("bridge_get_plan","bridge_get_project_history","bridge_get_todos","bridge_add_todo","bridge_complete_task","bridge_fail_task")}`,executor:`# Bridge Worker \u2014 Executor Role
229
+ ${we("bridge_get_plan","bridge_get_project_history","bridge_get_todos","bridge_add_todo","bridge_complete_task","bridge_fail_task")}`,executor:`# Bridge Worker \u2014 Executor Role
230
230
 
231
231
  You are an **Executor** worker in a multi-agent orchestration system called Bridge.
232
232
 
@@ -236,7 +236,7 @@ You are an **Executor** worker in a multi-agent orchestration system called Brid
236
236
  - Capture and report all relevant output
237
237
  - Call \`bridge_complete_task\` on success, \`bridge_fail_task\` with error details on failure
238
238
 
239
- ${ve("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_list_agents","bridge_get_agent_output","bridge_send_input")}`,shell:`# Bridge Worker \u2014 Shell Role
239
+ ${we("bridge_get_my_task","bridge_complete_task","bridge_fail_task","bridge_get_todo_context","bridge_list_agents","bridge_get_agent_output","bridge_send_input")}`,shell:`# Bridge Worker \u2014 Shell Role
240
240
 
241
241
  You are a **Shell** worker in a multi-agent orchestration system called Bridge.
242
242
 
@@ -246,7 +246,7 @@ You are a **Shell** worker in a multi-agent orchestration system called Bridge.
246
246
  - Call \`bridge_complete_task\` when the command exits cleanly
247
247
  - Call \`bridge_fail_task\` with the error output if the command fails
248
248
 
249
- ${ve("bridge_get_my_task","bridge_complete_task","bridge_fail_task")}`,orchestrator:`# Bridge Orchestrator
249
+ ${we("bridge_get_my_task","bridge_complete_task","bridge_fail_task")}`,orchestrator:`# Bridge Orchestrator
250
250
 
251
251
  You are a **Bridge Orchestrator**. Your sole purpose is to decompose specs into todos, delegate them to worker agents, and report results. Nothing else.
252
252
 
@@ -339,9 +339,9 @@ Summarize: todos completed, failed, any blockers. List what workers did.
339
339
 
340
340
  ---
341
341
 
342
- ${Fo("bridge_get_project","bridge_get_plan","bridge_get_todos","bridge_add_todo","bridge_cancel_run","bridge_get_project_history","bridge_get_execution_status","bridge_list_agents","bridge_get_agent_status","bridge_spawn_worker","bridge_assign_task","bridge_get_todo_context","bridge_get_agent_output","bridge_kill_agent")}`};function qo(r,e,t){if(!e)return[];let n=ts[e];if(!n)return[];if(r==="claude")try{let s=L.default.join(Oe.default.tmpdir(),`bridge-role-${t}.md`),i=n.replaceAll("{{PANEL_ID}}",t);return Z.default.writeFileSync(s,i+`
343
- `,"utf-8"),console.log("[daemon] role.prompt.written",{agentId:t,role:e,tmpPath:s}),["--append-system-prompt-file",s]}catch(s){return console.warn("[daemon] role.prompt.write.failed",{agentId:t,role:e,error:String(s)}),[]}return r==="qwen"?["--append-system-prompt",n]:[]}function ke(r){return`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Vo(r){try{let e=process.env.BRIDGE_MCP_URL,t=e?{mcpServers:{bridge:{type:"http",url:`${e}/mcp/${r.workspaceId}/${r.projectId}`,headers:{Authorization:`Bearer ${r.token}`,"x-panel-id":r.agentId??""}}}}:{mcpServers:{bridge:{command:Ze(),args:[],env:{BRIDGE_SERVER_URL:r.serverUrl,BRIDGE_TOKEN:r.token,BRIDGE_WORKSPACE_ID:r.workspaceId,BRIDGE_PROJECT_ID:r.projectId,BRIDGE_PANEL_ID:r.agentId??"",HTTP_MODE:"false"}}}},n=L.default.join(Oe.default.tmpdir(),`bridge-mcp-kimi-${r.agentId??r.projectId}.json`);return Z.default.writeFileSync(n,JSON.stringify(t,null,2)+`
344
- `,"utf-8"),console.log("[daemon] kimi.mcp.config.written",{tmpPath:n,transport:e?"http":"stdio"}),["--mcp-config-file",n]}catch(e){return console.warn("[daemon] kimi.mcp.config.build.failed",{error:String(e)}),[]}}function Ho(r){try{let e=Ze(),t=`{BRIDGE_SERVER_URL=${ke(r.serverUrl)},BRIDGE_TOKEN=${ke(r.token)},BRIDGE_WORKSPACE_ID=${ke(r.workspaceId)},BRIDGE_PROJECT_ID=${ke(r.projectId)},HTTP_MODE="false"}`;return["-c",'mcp_servers.bridge.transport="stdio"',"-c",`mcp_servers.bridge.command=${ke(e)}`,"-c","mcp_servers.bridge.args=[]","-c",`mcp_servers.bridge.env=${t}`]}catch(e){return console.warn("[daemon] codex.mcp.config.build.failed",{error:String(e)}),[]}}function Go(r){try{if(!r.cwd)return console.warn("[daemon] qwen.mcp.setup.skipped",{reason:"missing_cwd",projectId:r.projectId}),!1;let e=Ze(),t={cwd:r.cwd,encoding:"utf-8",timeout:5e3,stdio:"pipe"};(0,Xt.spawnSync)("qwen",["mcp","remove","--scope","project","bridge"],t);let n=(0,Xt.spawnSync)("qwen",["mcp","add","--scope","project","-t","stdio","-e",`BRIDGE_SERVER_URL=${r.serverUrl}`,"-e",`BRIDGE_TOKEN=${r.token}`,"-e",`BRIDGE_WORKSPACE_ID=${r.workspaceId}`,"-e",`BRIDGE_PROJECT_ID=${r.projectId}`,"-e",`BRIDGE_PANEL_ID=${r.agentId??""}`,"-e","HTTP_MODE=false","bridge",e],t);return n.status===0?(console.log("[daemon] qwen.mcp.setup.ok",{cwd:r.cwd,projectId:r.projectId}),!0):(console.warn("[daemon] qwen.mcp.setup.failed",{cwd:r.cwd,projectId:r.projectId,status:n.status,stderr:(n.stderr??"").toString().slice(0,300)}),!1)}catch(e){return console.warn("[daemon] qwen.mcp.setup.error",{error:String(e),projectId:r.projectId}),!1}}var Qe=[],Zt=!1,Zn=!1;function rs(){return Zt}function ns(r){if(Zn)throw new Error("[daemon] startDaemonConnection called twice \u2014 only one connection manager allowed");Zn=!0;let e=Vt(),t=(0,es.createHash)("sha256").update(e.token).digest("hex"),n=null,s=null,i=null,o=0;function c(){s&&(clearTimeout(s),s=null),n=new O(e.server,{headers:{Authorization:`Bearer ${e.token}`}});let l=n,d=null;l.on("open",()=>{Zt=!0,console.log("[daemon] ws.connected",{server:e.server}),i=setInterval(()=>{l.readyState===O.OPEN&&l.ping()},Do),l.send(JSON.stringify({type:"ready",version:"1.1",name:e.name})),wt().then(u=>{Qe=u,l.readyState===O.OPEN&&l.send(JSON.stringify({type:"agents",list:Qe}))}),d=Qn(u=>{l.readyState===O.OPEN&&l.send(JSON.stringify({type:"system_metrics",daemonId:t,...u}))})}),l.on("message",u=>{let h;try{h=JSON.parse(u.toString())}catch{console.warn("[daemon] Invalid JSON from server, ignoring");return}Ko(h,l,r,e)}),l.on("close",u=>{Zt=!1,i&&(clearInterval(i),i=null),d?.(),d=null,u===1008?(o++,o>=2&&(console.error("[daemon] ws.auth_failed \u2014 token invalid or expired (2 consecutive rejections), stopping. Re-run: bridge-agent auth"),process.exit(1)),console.warn("[daemon] ws.auth_rejected \u2014 transient 1008, will retry once",{attempt:o})):o=0,!s&&(console.log("[daemon] ws.reconnecting",{attempt:1}),s=setTimeout(c,3e3))}),l.on("error",u=>{console.error("[daemon] ws.error",{message:u.message})})}function a(){i&&(clearInterval(i),i=null),Ro();for(let l of Q.values())l();r.killAll(),n?.close()}process.on("SIGINT",()=>{a(),process.exit(0)}),process.on("SIGTERM",()=>{a(),process.exit(0)}),process.on("uncaughtException",l=>{console.error("[daemon] uncaughtException",{error:l.message}),r.killAll(),process.exit(1)}),c()}function Ko(r,e,t,n){switch(r.type){case"spawn":{console.log("[daemon] pty.spawn.start",{agentId:r.agentId,agentKey:r.agentKey,sessionId:r.sessionId,projectId:r.projectId,workspaceId:r.workspaceId,role:r.role});let s=Qe.find(b=>b.key===r.agentKey);if(!s){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"AGENT_NOT_FOUND",message:`Agent '${r.agentKey}' is not installed on this machine`}));return}let i=re.find(b=>b.key===r.agentKey),o=[];if(r.sessionId&&i?.resumeArgs)o=i.resumeArgs(r.sessionId),console.log("[daemon] pty.spawn.resume",{agentId:r.agentId,sessionId:r.sessionId}),r.agentKey==="claude"&&(Q.get(r.agentId)?.(),Q.set(r.agentId,Yt(r.agentId,r.sessionId,(b,w,y)=>{e.readyState===O.OPEN&&e.send(JSON.stringify({type:"panel_token_usage",agentId:b,usedPct:w,usedTokens:y,...Qt}))})));else if(i?.assignSessionId){let b=crypto.randomUUID(),w=r.agentKey==="kimi"?"--session":"--session-id";o=[...i.spawnArgs??[],w,b],e.readyState===O.OPEN&&(e.send(JSON.stringify({type:"session_started",agentId:r.agentId,sessionId:b})),console.log("[daemon] session.assigned",{agentId:r.agentId,sessionId:b})),r.agentKey==="claude"&&(Q.get(r.agentId)?.(),Q.set(r.agentId,Yt(r.agentId,b,(y,R,G)=>{e.readyState===O.OPEN&&e.send(JSON.stringify({type:"panel_token_usage",agentId:y,usedPct:R,usedTokens:G,...Qt}))})))}else e.readyState===O.OPEN&&e.send(JSON.stringify({type:"session_started",agentId:r.agentId,sessionId:crypto.randomUUID()}));let c,a=!1,l;if(r.projectId&&r.workspaceId){let b=Bo(n.server),w=Gt(r.cwd);if(c={serverUrl:b,token:n.token,workspaceId:Wn(r.workspaceId),projectId:Fn(r.projectId),agentId:r.agentId?Un(r.agentId):void 0,cwd:r.cwd,projectEnv:w.env},r.agentKey==="claude"){let y=Uo(c);a=y.length>0,l=process.env.BRIDGE_MCP_URL?"http":"stdio",o=[...o,...y]}else if(r.agentKey==="codex"){let y=Ho(c);a=y.length>0,l="stdio",o=[...o,...y]}else if(r.agentKey==="qwen")a=Go(c),l=a?"stdio":void 0;else if(r.agentKey==="kimi"){let y=Vo(c);a=y.length>0,l=process.env.BRIDGE_MCP_URL?"http":"stdio",o=[...o,...y]}else a=!1,console.log("[daemon] mcp.config.skipped",{agentId:r.agentId,agentKey:r.agentKey,reason:"unsupported_agent_path"})}let d=qo(r.agentKey,r.role,r.agentId);d.length>0&&(o=[...o,...d]);let u=Math.max(1,Math.min(500,r.cols)),h=Math.max(1,Math.min(500,r.rows)),g=Date.now(),f="",p=0,m=!1,v=!1;t.spawn(r.agentId,r.agentKey,s.binaryPath,o,u,h,b=>{p+=b.length;try{let w=Buffer.from(b,"base64").toString("utf-8");if(r.agentKey==="kimi"&&r.role&&!v&&Date.now()-g<3e4&&(/yolo agent/.test(w)||/●/.test(w)||/○/.test(w))){v=!0;let y=ts[r.role];if(y){let R=y.replaceAll("{{PANEL_ID}}",r.agentId),G=No(R),Ce=Buffer.from(G).toString("base64");t.write(r.agentId,Ce,"orchestrator"),console.log("[daemon] kimi.role.injected",{agentId:r.agentId,role:r.role})}}}catch{}if(!f)try{let w=Buffer.from(b,"base64").toString("utf-8"),y=jo(w).replace(/\x00/g,"").trim();if(y&&(f=$o(y)),r.agentKey==="codex"&&!m&&Date.now()-g<2e4&&/included in your plan for free|let[’']s build together/i.test(y)&&/yes|no|\[y\/n\]|\(y\/n\)|y\/n/i.test(y)){m=!0;let R=Buffer.from("y").toString("base64");t.write(r.agentId,R,"orchestrator"),console.log("[daemon] codex.onboarding.auto_ack",{agentId:r.agentId})}}catch{}e.readyState===O.OPEN&&e.send(JSON.stringify({type:"output",agentId:r.agentId,data:b}))},(b,w)=>{let y=Date.now()-g,R=y<=Lo;console.log("[daemon] pty.spawn.result",{agentId:r.agentId,agentKey:r.agentKey,daemonId:r.daemonId,exitCode:b,signal:w,uptimeMs:y,earlyExit:R,outputBytes:p,firstOutputSnippet:f||void 0}),R&&e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"SPAWN_FAILED",message:`Early exit: agent=${r.agentKey} code=${b??"null"} signal=${w??"null"} snippet="${f||"no output"}"`})),e.readyState===O.OPEN&&e.send(JSON.stringify({type:"exit",agentId:r.agentId,exitCode:b,signal:w}))},c)?e.readyState===O.OPEN&&e.send(JSON.stringify({type:"mcp_status",agentId:r.agentId,mcpConfigured:a,transport:a?l:void 0,projectId:c?.projectId})):e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"SPAWN_DUPLICATE",message:`Panel ${r.agentId} is already running`}));break}case"input":t.write(r.agentId,r.data,r.source);break;case"kill":Q.get(r.agentId)?.(),Q.delete(r.agentId),t.kill(r.agentId,r.force);break;case"resize":t.resize(r.agentId,r.cols,r.rows);break;case"detect_agents":wt().then(s=>{Qe=s,e.readyState===O.OPEN&&e.send(JSON.stringify({type:"agents",list:s}))});break;case"dir_list":{let s=Oe.default.homedir(),i=(r.path||"~").replace(/^~/,s),o=L.default.resolve(i);if(o!==s&&!o.startsWith(s+L.default.sep)){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"INVALID_MSG",message:"Path outside home directory"}));return}try{let c=Z.default.readdirSync(o,{withFileTypes:!0}).filter(a=>a.isDirectory()&&!a.name.startsWith(".")).map(a=>({name:a.name,path:L.default.join(o,a.name)})).sort((a,l)=>a.name.localeCompare(l.name));e.readyState===O.OPEN&&e.send(JSON.stringify({type:"dir_list_result",requestId:r.requestId,path:o,entries:c}))}catch(c){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"dir_list_result",requestId:r.requestId,path:o,entries:[],error:c instanceof Error?c.message:"Cannot read directory"}))}break}default:{let s=r}}}var is="com.jerico.bridge-agent.plist",os=(0,ee.join)((0,he.homedir)(),"Library","LaunchAgents"),et=(0,ee.join)(os,is);function Yo(){try{return require("node:fs").realpathSync(process.argv[1]??"")}catch{return process.execPath}}function zo(){try{(0,tt.mkdirSync)(os,{recursive:!0})}catch{}let e=`<?xml version="1.0" encoding="UTF-8"?>
342
+ ${qo("bridge_get_project","bridge_get_plan","bridge_get_todos","bridge_add_todo","bridge_cancel_run","bridge_get_project_history","bridge_get_execution_status","bridge_list_agents","bridge_get_agent_status","bridge_spawn_worker","bridge_assign_task","bridge_get_todo_context","bridge_get_agent_output","bridge_kill_agent")}`};function Vo(r,e,t){if(!e)return[];let n=rs[e];if(!n)return[];if(r==="claude")try{let s=L.default.join(xe.default.tmpdir(),`bridge-role-${t}.md`),i=n.replaceAll("{{PANEL_ID}}",t);return Z.default.writeFileSync(s,i+`
343
+ `,"utf-8"),console.log("[daemon] role.prompt.written",{agentId:t,role:e,tmpPath:s}),["--append-system-prompt-file",s]}catch(s){return console.warn("[daemon] role.prompt.write.failed",{agentId:t,role:e,error:String(s)}),[]}return r==="qwen"?["--append-system-prompt",n]:[]}function Ee(r){return`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ho(r){try{let e=process.env.BRIDGE_MCP_URL,t=e?{mcpServers:{bridge:{type:"http",url:`${e}/mcp/${r.workspaceId}/${r.projectId}`,headers:{Authorization:`Bearer ${r.token}`,"x-panel-id":r.agentId??""}}}}:{mcpServers:{bridge:{command:Qe(),args:[],env:{BRIDGE_SERVER_URL:r.serverUrl,BRIDGE_TOKEN:r.token,BRIDGE_WORKSPACE_ID:r.workspaceId,BRIDGE_PROJECT_ID:r.projectId,BRIDGE_PANEL_ID:r.agentId??"",HTTP_MODE:"false"}}}},n=L.default.join(xe.default.tmpdir(),`bridge-mcp-kimi-${r.agentId??r.projectId}.json`);return Z.default.writeFileSync(n,JSON.stringify(t,null,2)+`
344
+ `,"utf-8"),console.log("[daemon] kimi.mcp.config.written",{tmpPath:n,transport:e?"http":"stdio"}),["--mcp-config-file",n]}catch(e){return console.warn("[daemon] kimi.mcp.config.build.failed",{error:String(e)}),[]}}function Go(r){try{let e=Qe(),t=`{BRIDGE_SERVER_URL=${Ee(r.serverUrl)},BRIDGE_TOKEN=${Ee(r.token)},BRIDGE_WORKSPACE_ID=${Ee(r.workspaceId)},BRIDGE_PROJECT_ID=${Ee(r.projectId)},HTTP_MODE="false"}`;return["-c",'mcp_servers.bridge.transport="stdio"',"-c",`mcp_servers.bridge.command=${Ee(e)}`,"-c","mcp_servers.bridge.args=[]","-c",`mcp_servers.bridge.env=${t}`]}catch(e){return console.warn("[daemon] codex.mcp.config.build.failed",{error:String(e)}),[]}}function Ko(r){try{if(!r.cwd)return console.warn("[daemon] qwen.mcp.setup.skipped",{reason:"missing_cwd",projectId:r.projectId}),!1;let e=Qe(),t={cwd:r.cwd,encoding:"utf-8",timeout:5e3,stdio:"pipe"};(0,Jt.spawnSync)("qwen",["mcp","remove","--scope","project","bridge"],t);let n=(0,Jt.spawnSync)("qwen",["mcp","add","--scope","project","-t","stdio","-e",`BRIDGE_SERVER_URL=${r.serverUrl}`,"-e",`BRIDGE_TOKEN=${r.token}`,"-e",`BRIDGE_WORKSPACE_ID=${r.workspaceId}`,"-e",`BRIDGE_PROJECT_ID=${r.projectId}`,"-e",`BRIDGE_PANEL_ID=${r.agentId??""}`,"-e","HTTP_MODE=false","bridge",e],t);return n.status===0?(console.log("[daemon] qwen.mcp.setup.ok",{cwd:r.cwd,projectId:r.projectId}),!0):(console.warn("[daemon] qwen.mcp.setup.failed",{cwd:r.cwd,projectId:r.projectId,status:n.status,stderr:(n.stderr??"").toString().slice(0,300)}),!1)}catch(e){return console.warn("[daemon] qwen.mcp.setup.error",{error:String(e),projectId:r.projectId}),!1}}var Xe=[],Qt=!1,es=!1;function ns(){return Qt}function ss(r){if(es)throw new Error("[daemon] startDaemonConnection called twice \u2014 only one connection manager allowed");es=!0;let e=qt(),t=(0,ts.createHash)("sha256").update(e.token).digest("hex"),n=null,s=null,i=null,o=0;function c(){s&&(clearTimeout(s),s=null),n=new O(e.server,{headers:{Authorization:`Bearer ${e.token}`}});let l=n,d=null;l.on("open",()=>{Qt=!0,console.log("[daemon] ws.connected",{server:e.server}),i=setInterval(()=>{l.readyState===O.OPEN&&l.ping()},Lo),l.send(JSON.stringify({type:"ready",version:"1.1",name:e.name})),St().then(u=>{Xe=u,l.readyState===O.OPEN&&l.send(JSON.stringify({type:"agents",list:Xe}))}),d=Zn(u=>{l.readyState===O.OPEN&&l.send(JSON.stringify({type:"system_metrics",daemonId:t,...u}))})}),l.on("message",u=>{let h;try{h=JSON.parse(u.toString())}catch{console.warn("[daemon] Invalid JSON from server, ignoring");return}Yo(h,l,r,e)}),l.on("close",u=>{Qt=!1,i&&(clearInterval(i),i=null),d?.(),d=null,u===1008?(o++,o>=2&&(console.error("[daemon] ws.auth_failed \u2014 token invalid or expired (2 consecutive rejections), stopping. Re-run: bridge-agent auth"),process.exit(1)),console.warn("[daemon] ws.auth_rejected \u2014 transient 1008, will retry once",{attempt:o})):o=0,!s&&(console.log("[daemon] ws.reconnecting",{attempt:1}),s=setTimeout(c,3e3))}),l.on("error",u=>{console.error("[daemon] ws.error",{message:u.message})})}function a(){i&&(clearInterval(i),i=null),Do();for(let l of Q.values())l();r.killAll(),n?.close()}process.on("SIGINT",()=>{a(),process.exit(0)}),process.on("SIGTERM",()=>{a(),process.exit(0)}),process.on("uncaughtException",l=>{console.error("[daemon] uncaughtException",{error:l.message}),r.killAll(),process.exit(1)}),c()}function Yo(r,e,t,n){switch(r.type){case"spawn":{console.log("[daemon] pty.spawn.start",{agentId:r.agentId,agentKey:r.agentKey,sessionId:r.sessionId,projectId:r.projectId,workspaceId:r.workspaceId,role:r.role});let s=Xe.find(b=>b.key===r.agentKey);if(!s){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"AGENT_NOT_FOUND",message:`Agent '${r.agentKey}' is not installed on this machine`}));return}let i=te.find(b=>b.key===r.agentKey),o=[];if(r.sessionId&&i?.resumeArgs)o=i.resumeArgs(r.sessionId),console.log("[daemon] pty.spawn.resume",{agentId:r.agentId,sessionId:r.sessionId}),r.agentKey==="claude"&&(Q.get(r.agentId)?.(),Q.set(r.agentId,Kt(r.agentId,r.sessionId,(b,w,y)=>{e.readyState===O.OPEN&&e.send(JSON.stringify({type:"panel_token_usage",agentId:b,usedPct:w,usedTokens:y,...Xt}))})));else if(i?.assignSessionId){let b=crypto.randomUUID(),w=r.agentKey==="kimi"?"--session":"--session-id";o=[...i.spawnArgs??[],w,b],e.readyState===O.OPEN&&(e.send(JSON.stringify({type:"session_started",agentId:r.agentId,sessionId:b})),console.log("[daemon] session.assigned",{agentId:r.agentId,sessionId:b})),r.agentKey==="claude"&&(Q.get(r.agentId)?.(),Q.set(r.agentId,Kt(r.agentId,b,(y,R,G)=>{e.readyState===O.OPEN&&e.send(JSON.stringify({type:"panel_token_usage",agentId:y,usedPct:R,usedTokens:G,...Xt}))})))}else e.readyState===O.OPEN&&e.send(JSON.stringify({type:"session_started",agentId:r.agentId,sessionId:crypto.randomUUID()}));let c,a=!1,l;if(r.projectId&&r.workspaceId){let b=Uo(n.server),w=Ht(r.cwd);if(c={serverUrl:b,token:n.token,workspaceId:Fn(r.workspaceId),projectId:qn(r.projectId),agentId:r.agentId?Wn(r.agentId):void 0,cwd:r.cwd,projectEnv:w.env},r.agentKey==="claude"){let y=Wo(c);a=y.length>0,l=process.env.BRIDGE_MCP_URL?"http":"stdio",o=[...o,...y]}else if(r.agentKey==="codex"){let y=Go(c);a=y.length>0,l="stdio",o=[...o,...y]}else if(r.agentKey==="qwen")a=Ko(c),l=a?"stdio":void 0;else if(r.agentKey==="kimi"){let y=Ho(c);a=y.length>0,l=process.env.BRIDGE_MCP_URL?"http":"stdio",o=[...o,...y]}else a=!1,console.log("[daemon] mcp.config.skipped",{agentId:r.agentId,agentKey:r.agentKey,reason:"unsupported_agent_path"})}let d=Vo(r.agentKey,r.role,r.agentId);d.length>0&&(o=[...o,...d]);let u=Math.max(1,Math.min(500,r.cols)),h=Math.max(1,Math.min(500,r.rows)),g=Date.now(),f="",p=0,m=!1,v=!1;t.spawn(r.agentId,r.agentKey,s.binaryPath,o,u,h,b=>{p+=b.length;try{let w=Buffer.from(b,"base64").toString("utf-8");if(r.agentKey==="kimi"&&r.role&&!v&&Date.now()-g<3e4&&(/yolo agent/.test(w)||/●/.test(w)||/○/.test(w))){v=!0;let y=rs[r.role];if(y){let R=y.replaceAll("{{PANEL_ID}}",r.agentId),G=Ro(R),Ie=Buffer.from(G).toString("base64");t.write(r.agentId,Ie,"orchestrator"),console.log("[daemon] kimi.role.injected",{agentId:r.agentId,role:r.role})}}}catch{}if(!f)try{let w=Buffer.from(b,"base64").toString("utf-8"),y=$o(w).replace(/\x00/g,"").trim();if(y&&(f=Bo(y)),r.agentKey==="codex"&&!m&&Date.now()-g<2e4&&/included in your plan for free|let[’']s build together/i.test(y)&&/yes|no|\[y\/n\]|\(y\/n\)|y\/n/i.test(y)){m=!0;let R=Buffer.from("y").toString("base64");t.write(r.agentId,R,"orchestrator"),console.log("[daemon] codex.onboarding.auto_ack",{agentId:r.agentId})}}catch{}e.readyState===O.OPEN&&e.send(JSON.stringify({type:"output",agentId:r.agentId,data:b}))},(b,w)=>{let y=Date.now()-g,R=y<=Mo;console.log("[daemon] pty.spawn.result",{agentId:r.agentId,agentKey:r.agentKey,daemonId:r.daemonId,exitCode:b,signal:w,uptimeMs:y,earlyExit:R,outputBytes:p,firstOutputSnippet:f||void 0}),R&&e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"SPAWN_FAILED",message:`Early exit: agent=${r.agentKey} code=${b??"null"} signal=${w??"null"} snippet="${f||"no output"}"`})),e.readyState===O.OPEN&&e.send(JSON.stringify({type:"exit",agentId:r.agentId,exitCode:b,signal:w}))},c)?e.readyState===O.OPEN&&e.send(JSON.stringify({type:"mcp_status",agentId:r.agentId,mcpConfigured:a,transport:a?l:void 0,projectId:c?.projectId})):e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"SPAWN_DUPLICATE",message:`Panel ${r.agentId} is already running`}));break}case"input":t.write(r.agentId,r.data,r.source);break;case"kill":Q.get(r.agentId)?.(),Q.delete(r.agentId),t.kill(r.agentId,r.force);break;case"resize":t.resize(r.agentId,r.cols,r.rows);break;case"detect_agents":St().then(s=>{Xe=s,e.readyState===O.OPEN&&e.send(JSON.stringify({type:"agents",list:s}))});break;case"dir_list":{let s=xe.default.homedir(),i=(r.path||"~").replace(/^~/,s),o=L.default.resolve(i);if(o!==s&&!o.startsWith(s+L.default.sep)){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"error",code:"INVALID_MSG",message:"Path outside home directory"}));return}try{let c=Z.default.readdirSync(o,{withFileTypes:!0}).filter(a=>a.isDirectory()&&!a.name.startsWith(".")).map(a=>({name:a.name,path:L.default.join(o,a.name)})).sort((a,l)=>a.name.localeCompare(l.name));e.readyState===O.OPEN&&e.send(JSON.stringify({type:"dir_list_result",requestId:r.requestId,path:o,entries:c}))}catch(c){e.readyState===O.OPEN&&e.send(JSON.stringify({type:"dir_list_result",requestId:r.requestId,path:o,entries:[],error:c instanceof Error?c.message:"Cannot read directory"}))}break}default:{let s=r}}}var zo="com.jerico.bridge-agent.plist",as=(0,ke.join)((0,et.homedir)(),"Library","LaunchAgents"),Ze=(0,ke.join)(as,zo),Zt=(0,ke.join)((0,et.homedir)(),"bridge-daemon.log"),er=(0,ke.join)((0,et.homedir)(),"bridge-daemon.err.log");function Jo(){let r=["/Users/alperduzgun/.nvm/versions/node/v20.20.1/lib/node_modules/bridge-agent/dist/index.js","/Users/alperduzgun/.nvm/versions/node/v20.20.1/bin/bridge-agent",...process.argv[1]?[process.argv[1]]:[]];for(let e of r)try{return require("node:fs").realpathSync(e)}catch{}return process.execPath}function Xo(r){try{(0,ve.execSync)(`mkdir -p "${as}"`,{stdio:"pipe"})}catch{}let e=`<?xml version="1.0" encoding="UTF-8"?>
345
345
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
346
346
  <plist version="1.0">
347
347
  <dict>
@@ -349,7 +349,7 @@ ${Fo("bridge_get_project","bridge_get_plan","bridge_get_todos","bridge_add_todo"
349
349
  <string>com.jerico.bridge-agent</string>
350
350
  <key>ProgramArguments</key>
351
351
  <array>
352
- <string>${Yo()}</string>
352
+ <string>${r}</string>
353
353
  <string>start</string>
354
354
  <string>--daemon</string>
355
355
  </array>
@@ -358,9 +358,9 @@ ${Fo("bridge_get_project","bridge_get_plan","bridge_get_todos","bridge_add_todo"
358
358
  <key>KeepAlive</key>
359
359
  <true/>
360
360
  <key>StandardOutPath</key>
361
- <string>${(0,ee.join)((0,he.homedir)(),"bridge-daemon.log")}</string>
361
+ <string>${Zt}</string>
362
362
  <key>StandardErrorPath</key>
363
- <string>${(0,ee.join)((0,he.homedir)(),"bridge-daemon.err.log")}</string>
363
+ <string>${er}</string>
364
364
  <key>EnvironmentVariables</key>
365
365
  <dict>
366
366
  <key>PATH</key>
@@ -368,5 +368,6 @@ ${Fo("bridge_get_project","bridge_get_plan","bridge_get_todos","bridge_add_todo"
368
368
  </dict>
369
369
  </dict>
370
370
  </plist>
371
- `;try{return(0,tt.writeFileSync)(et,e,"utf-8"),!0}catch(t){return console.warn("[bridge] launchd.plist.write.failed",{error:String(t)}),!1}}function Jo(){try{try{(0,ue.execSync)(`launchctl list ${is.replace(".plist","")}`,{stdio:"pipe"}),(0,ue.execSync)(`launchctl unload ${et}`,{stdio:"pipe"})}catch{}return(0,ue.execSync)(`launchctl load ${et}`,{stdio:"pipe"}),!0}catch(r){let e=String(r);return e.includes("Permission denied")||e.includes("not allowed")?(console.warn("[bridge] launchd.permission.denied"),console.warn("[bridge] To enable auto-start, run:"),console.warn(` sudo launchctl bootstrap system ${et}`),console.warn("[bridge] Falling back to background process...")):console.warn("[bridge] launchd.load.failed",{error:e}),!1}}function Xo(){let r=(0,ee.join)((0,he.homedir)(),"bridge-daemon.log");try{let e=(0,ue.spawn)(process.argv[1]??"",["start","--daemon"],{detached:!0,stdio:"ignore",env:{...process.env}});e.unref(),setTimeout(()=>{e.pid&&Qo(e.pid,0)?(console.log("[bridge] daemon.pid",{pid:e.pid}),console.log("[bridge] background.start.ok",{log:r})):(console.error("[bridge] background.start.failed \u2014 check logs at:"),console.error(` tail -f ${r}`))},2e3)}catch(e){console.error("[bridge] background.start.failed",{error:String(e)})}}function Qo(r,e){try{return process.kill(r,e),!0}catch{return!1}}function as(){let r=process.argv.includes("--daemon");if(console.log("[bridge] Starting bridge-agent daemon..."),r){Zo();return}if(zo()&&Jo()){console.log("[bridge] launchd.managed",{log:(0,ee.join)((0,he.homedir)(),"bridge-daemon.log")}),process.exit(0);return}Xo(),process.exit(0)}function Zo(){let r=new Re;ns(r);let e=parseInt(process.env.HEALTH_PORT??"3101",10),t=(0,ss.createServer)((n,s)=>{let i=rs(),o=JSON.stringify({status:"ok",connected:i,uptime:process.uptime()});s.writeHead(i?200:503,{"Content-Type":"application/json"}),s.end(o)});t.listen(e,"127.0.0.1",()=>{console.log(`[bridge] health check listening on 127.0.0.1:${e}`)}),t.on("error",n=>{console.error("[bridge] health.server.error",{error:n.message})})}var ls=_(require("https")),cs=_(require("http"));ze();function ea(r){return(r??"").trim()}async function ds(r,e=!1,t){console.log("[bridge] Starting auth flow..."),console.log(`[bridge] Server: ${r}`),console.log("[bridge] Open this URL to generate a daemon token:"),console.log(` ${r}/connect`);let n=ea(t);n&&console.log("[bridge] Using token from --token"),e&&(n?console.log("[bridge] --no-browser ignored because --token is provided."):(console.log("[bridge] --no-browser: exiting after printing URL."),process.exit(0)));let s=n;s||(console.log(),console.log("[bridge] After authenticating, paste your token here:"),s=await ta()),s||(console.error("[bridge] No token provided. Exiting."),process.exit(1)),await ra(r,s)||(console.error("[bridge] Token validation failed. Please try again."),process.exit(1));let c=r.replace(/^https?:\/\//,a=>a.startsWith("https")?"wss://":"ws://").replace(/\/?$/,"/ws/daemon");Ht({server:c,token:s,name:process.env.HOSTNAME??"My Machine"}),console.log("[bridge] Auth successful! Config saved to ~/.bridge/config.json"),console.log("[bridge] Run: bridge-agent start")}async function ta(){return new Promise(r=>{process.stdout.write("Token: ");let e="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",t=>{e+=t,e.includes(`
372
- `)&&(process.stdin.pause(),r(e.trim()))}),process.stdin.resume()})}async function ra(r,e){return new Promise(t=>{let n=new URL("/api/tokens/validate",r),s=n.protocol==="https:",i=s?ls.default:cs.default,o={hostname:n.hostname,port:n.port||(s?443:80),path:n.pathname,method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}},c=i.request(o,a=>{t(a.statusCode===200)});c.on("error",()=>t(!1)),c.end()})}var Ie=new fr;Ie.name("bridge-agent").description("Bridge local agent \u2014 connects your AI tools to Jerico").version("0.1.0");Ie.command("start").description("Start the bridge-agent daemon").action(()=>{as()});Ie.command("auth").description("Authenticate with Bridge server").requiredOption("-s, --server <url>","Server URL (e.g., https://your-server.com)").option("-t, --token <token>","Use token non-interactively").option("--no-browser","Print auth URL without opening browser or interactive prompt").action(r=>{ds(r.server,!r.browser,r.token)});Ie.command("status").description("Show connection status").action(async()=>{try{let{loadConfig:r}=await Promise.resolve().then(()=>(ze(),Vn)),e=r();console.log("[bridge] Config found"),console.log(" Server:",e.server),console.log(" Name:",e.name)}catch{console.log("[bridge] Not authenticated. Run: bridge-agent auth")}});Ie.parse();
371
+ `;try{return(0,os.writeFileSync)(Ze,e,"utf-8"),!0}catch(t){return console.warn("[bridge] launchd.plist.write.failed",{error:String(t)}),!1}}function Qo(){try{return(0,ve.execSync)(`launchctl unload "${Ze}" 2>/dev/null; launchctl load "${Ze}"`,{stdio:"pipe"}),{ok:!0,permissionDenied:!1}}catch(r){let e=String(r);return{ok:!1,permissionDenied:e.includes("Permission denied")||e.includes("not allowed")||e.includes("bootstrap")}}}function Zo(r){try{let e=(0,ve.spawn)(r,["start","--daemon"],{detached:!0,stdio:"ignore",env:{...process.env}});e.unref(),setTimeout(()=>{e.pid&&process.kill(e.pid,0)?(console.log("[bridge] daemon.pid",{pid:e.pid}),console.log("[bridge] background.ok",{log:Zt})):console.error("[bridge] background.failed \u2014 check: tail -f",{log:er})},2e3)}catch(e){console.error("[bridge] background.spawn.failed",{error:String(e)})}}function ea(){let r=new Ne;ss(r);let e=parseInt(process.env.HEALTH_PORT??"3101",10),t=(0,is.createServer)((n,s)=>{let i=ns(),o=JSON.stringify({status:"ok",connected:i,uptime:process.uptime()});s.writeHead(i?200:503,{"Content-Type":"application/json"}),s.end(o)});t.listen(e,"127.0.0.1",()=>{console.log(`[bridge] health. listening on 127.0.0.1:${e}`)}),t.on("error",n=>{console.error("[bridge] health.error",{error:n.message})})}function ls(){let r=process.argv.includes("--daemon");if(console.log("[bridge] Starting bridge-agent daemon..."),r){ea();return}let e=Jo(),t=Xo(e),{ok:n,permissionDenied:s}=t?Qo():{ok:!1,permissionDenied:!1};if(n){console.log("[bridge] launchd.ok \u2014 managed, auto-restart enabled"),console.log("[bridge] logs: tail -f",{out:Zt,err:er}),process.exit(0);return}s&&(console.warn("[bridge] launchd.permission.denied"),console.warn("[bridge] \u2192 Auto-start on login requires:"),console.warn(`[bridge] sudo launchctl bootstrap gui/$(id -u) "${Ze}"`),console.warn(`[bridge] Falling back to background process...
372
+ `)),Zo(e),process.exit(0)}var cs=_(require("https")),ds=_(require("http"));Ye();function ta(r){return(r??"").trim()}async function us(r,e=!1,t){console.log("[bridge] Starting auth flow..."),console.log(`[bridge] Server: ${r}`),console.log("[bridge] Open this URL to generate a daemon token:"),console.log(` ${r}/connect`);let n=ta(t);n&&console.log("[bridge] Using token from --token"),e&&(n?console.log("[bridge] --no-browser ignored because --token is provided."):(console.log("[bridge] --no-browser: exiting after printing URL."),process.exit(0)));let s=n;s||(console.log(),console.log("[bridge] After authenticating, paste your token here:"),s=await ra()),s||(console.error("[bridge] No token provided. Exiting."),process.exit(1)),await na(r,s)||(console.error("[bridge] Token validation failed. Please try again."),process.exit(1));let c=r.replace(/^https?:\/\//,a=>a.startsWith("https")?"wss://":"ws://").replace(/\/?$/,"/ws/daemon");Vt({server:c,token:s,name:process.env.HOSTNAME??"My Machine"}),console.log("[bridge] Auth successful! Config saved to ~/.bridge/config.json"),console.log("[bridge] Run: bridge-agent start")}async function ra(){return new Promise(r=>{process.stdout.write("Token: ");let e="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",t=>{e+=t,e.includes(`
373
+ `)&&(process.stdin.pause(),r(e.trim()))}),process.stdin.resume()})}async function na(r,e){return new Promise(t=>{let n=new URL("/api/tokens/validate",r),s=n.protocol==="https:",i=s?cs.default:ds.default,o={hostname:n.hostname,port:n.port||(s?443:80),path:n.pathname,method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e}`}},c=i.request(o,a=>{t(a.statusCode===200)});c.on("error",()=>t(!1)),c.end()})}var Oe=new pr;Oe.name("bridge-agent").description("Bridge local agent \u2014 connects your AI tools to Jerico").version("0.1.0");Oe.command("start").description("Start the bridge-agent daemon").action(()=>{ls()});Oe.command("auth").description("Authenticate with Bridge server").requiredOption("-s, --server <url>","Server URL (e.g., https://your-server.com)").option("-t, --token <token>","Use token non-interactively").option("--no-browser","Print auth URL without opening browser or interactive prompt").action(r=>{us(r.server,!r.browser,r.token)});Oe.command("status").description("Show connection status").action(async()=>{try{let{loadConfig:r}=await Promise.resolve().then(()=>(Ye(),Hn)),e=r();console.log("[bridge] Config found"),console.log(" Server:",e.server),console.log(" Name:",e.name)}catch{console.log("[bridge] Not authenticated. Run: bridge-agent auth")}});Oe.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bridge-agent",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.1.0-beta.3",
4
4
  "description": "Bridge local agent — connects your AI tools to Jerico",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",