@scheduler-systems/gal-cli 0.1.13-alpha.pr417 → 0.1.13-alpha.pr472

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.cjs +55 -55
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -1,37 +1,37 @@
1
1
  #!/usr/bin/env node
2
2
  #!/usr/bin/env node
3
- "use strict";var $o=Object.create;var _e=Object.defineProperty;var jo=Object.getOwnPropertyDescriptor;var Go=Object.getOwnPropertyNames;var Uo=Object.getPrototypeOf,Mo=Object.prototype.hasOwnProperty;var I=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Ho=(t,e)=>{for(var n in e)_e(t,n,{get:e[n],enumerable:!0})},rn=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Go(e))!Mo.call(t,s)&&s!==n&&_e(t,s,{get:()=>e[s],enumerable:!(o=jo(e,s))||o.enumerable});return t};var A=(t,e,n)=>(n=t!=null?$o(Uo(t)):{},rn(e||!t||!t.__esModule?_e(n,"default",{value:t,enumerable:!0}):n,t)),Vo=t=>rn(_e({},"__esModule",{value:!0}),t);var ie=I(Ye=>{var ve=class extends Error{constructor(e,n,o){super(o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=n,this.exitCode=e,this.nestedError=void 0}},ze=class extends ve{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Ye.CommanderError=ve;Ye.InvalidArgumentError=ze});var Ae=I(Qe=>{var{InvalidArgumentError:qo}=ie(),Ke=class{constructor(e,n){switch(this.description=n||"",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,n){return n===this.defaultValue||!Array.isArray(n)?[e]:n.concat(e)}default(e,n){return this.defaultValue=e,this.defaultValueDescription=n,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new qo(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function Wo(t){let e=t.name()+(t.variadic===!0?"...":"");return t.required?"<"+e+">":"["+e+"]"}Qe.Argument=Ke;Qe.humanReadableArgName=Wo});var Ze=I(an=>{var{humanReadableArgName:Jo}=Ae(),Xe=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let n=e.commands.filter(s=>!s._hidden),o=e._getHelpCommand();return o&&!o._hidden&&n.push(o),this.sortSubcommands&&n.sort((s,r)=>s.name().localeCompare(r.name())),n}compareOptions(e,n){let o=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return o(e).localeCompare(o(n))}visibleOptions(e){let n=e.options.filter(s=>!s.hidden),o=e._getHelpOption();if(o&&!o.hidden){let s=o.short&&e._findOption(o.short),r=o.long&&e._findOption(o.long);!s&&!r?n.push(o):o.long&&!r?n.push(e.createOption(o.long,o.description)):o.short&&!s&&n.push(e.createOption(o.short,o.description))}return this.sortOptions&&n.sort(this.compareOptions),n}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let n=[];for(let o=e.parent;o;o=o.parent){let s=o.options.filter(r=>!r.hidden);n.push(...s)}return this.sortOptions&&n.sort(this.compareOptions),n}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(n=>{n.description=n.description||e._argsDescription[n.name()]||""}),e.registeredArguments.find(n=>n.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(o=>Jo(o)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(n?" "+n:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,n){return n.visibleCommands(e).reduce((o,s)=>Math.max(o,n.subcommandTerm(s).length),0)}longestOptionTermLength(e,n){return n.visibleOptions(e).reduce((o,s)=>Math.max(o,n.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,n){return n.visibleGlobalOptions(e).reduce((o,s)=>Math.max(o,n.optionTerm(s).length),0)}longestArgumentTermLength(e,n){return n.visibleArguments(e).reduce((o,s)=>Math.max(o,n.argumentTerm(s).length),0)}commandUsage(e){let n=e._name;e._aliases[0]&&(n=n+"|"+e._aliases[0]);let o="";for(let s=e.parent;s;s=s.parent)o=s.name()+" "+o;return o+n+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let n=[];return e.argChoices&&n.push(`choices: ${e.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&n.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&n.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&n.push(`env: ${e.envVar}`),n.length>0?`${e.description} (${n.join(", ")})`:e.description}argumentDescription(e){let n=[];if(e.argChoices&&n.push(`choices: ${e.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),e.defaultValue!==void 0&&n.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),n.length>0){let o=`(${n.join(", ")})`;return e.description?`${e.description} ${o}`:o}return e.description}formatHelp(e,n){let o=n.padWidth(e,n),s=n.helpWidth||80,r=2,a=2;function u(p,k){if(k){let O=`${p.padEnd(o+a)}${k}`;return n.wrap(O,s-r,o+a)}return p}function l(p){return p.join(`
4
- `).replace(/^/gm," ".repeat(r))}let d=[`Usage: ${n.commandUsage(e)}`,""],c=n.commandDescription(e);c.length>0&&(d=d.concat([n.wrap(c,s,0),""]));let f=n.visibleArguments(e).map(p=>u(n.argumentTerm(p),n.argumentDescription(p)));f.length>0&&(d=d.concat(["Arguments:",l(f),""]));let h=n.visibleOptions(e).map(p=>u(n.optionTerm(p),n.optionDescription(p)));if(h.length>0&&(d=d.concat(["Options:",l(h),""])),this.showGlobalOptions){let p=n.visibleGlobalOptions(e).map(k=>u(n.optionTerm(k),n.optionDescription(k)));p.length>0&&(d=d.concat(["Global Options:",l(p),""]))}let m=n.visibleCommands(e).map(p=>u(n.subcommandTerm(p),n.subcommandDescription(p)));return m.length>0&&(d=d.concat(["Commands:",l(m),""])),d.join(`
3
+ "use strict";var No=Object.create;var Ce=Object.defineProperty;var $o=Object.getOwnPropertyDescriptor;var jo=Object.getOwnPropertyNames;var Go=Object.getPrototypeOf,Uo=Object.prototype.hasOwnProperty;var x=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Mo=(t,e)=>{for(var n in e)Ce(t,n,{get:e[n],enumerable:!0})},on=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of jo(e))!Uo.call(t,s)&&s!==n&&Ce(t,s,{get:()=>e[s],enumerable:!(o=$o(e,s))||o.enumerable});return t};var b=(t,e,n)=>(n=t!=null?No(Go(t)):{},on(e||!t||!t.__esModule?Ce(n,"default",{value:t,enumerable:!0}):n,t)),Ho=t=>on(Ce({},"__esModule",{value:!0}),t);var re=x(Je=>{var Ee=class extends Error{constructor(e,n,o){super(o),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=n,this.exitCode=e,this.nestedError=void 0}},We=class extends Ee{constructor(e){super(1,"commander.invalidArgument",e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}};Je.CommanderError=Ee;Je.InvalidArgumentError=We});var _e=x(Ye=>{var{InvalidArgumentError:Vo}=re(),ze=class{constructor(e,n){switch(this.description=n||"",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,n){return n===this.defaultValue||!Array.isArray(n)?[e]:n.concat(e)}default(e,n){return this.defaultValue=e,this.defaultValueDescription=n,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new Vo(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function qo(t){let e=t.name()+(t.variadic===!0?"...":"");return t.required?"<"+e+">":"["+e+"]"}Ye.Argument=ze;Ye.humanReadableArgName=qo});var Qe=x(sn=>{var{humanReadableArgName:Wo}=_e(),Ke=class{constructor(){this.helpWidth=void 0,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}visibleCommands(e){let n=e.commands.filter(s=>!s._hidden),o=e._getHelpCommand();return o&&!o._hidden&&n.push(o),this.sortSubcommands&&n.sort((s,r)=>s.name().localeCompare(r.name())),n}compareOptions(e,n){let o=s=>s.short?s.short.replace(/^-/,""):s.long.replace(/^--/,"");return o(e).localeCompare(o(n))}visibleOptions(e){let n=e.options.filter(s=>!s.hidden),o=e._getHelpOption();if(o&&!o.hidden){let s=o.short&&e._findOption(o.short),r=o.long&&e._findOption(o.long);!s&&!r?n.push(o):o.long&&!r?n.push(e.createOption(o.long,o.description)):o.short&&!s&&n.push(e.createOption(o.short,o.description))}return this.sortOptions&&n.sort(this.compareOptions),n}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let n=[];for(let o=e.parent;o;o=o.parent){let s=o.options.filter(r=>!r.hidden);n.push(...s)}return this.sortOptions&&n.sort(this.compareOptions),n}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(n=>{n.description=n.description||e._argsDescription[n.name()]||""}),e.registeredArguments.find(n=>n.description)?e.registeredArguments:[]}subcommandTerm(e){let n=e.registeredArguments.map(o=>Wo(o)).join(" ");return e._name+(e._aliases[0]?"|"+e._aliases[0]:"")+(e.options.length?" [options]":"")+(n?" "+n:"")}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,n){return n.visibleCommands(e).reduce((o,s)=>Math.max(o,n.subcommandTerm(s).length),0)}longestOptionTermLength(e,n){return n.visibleOptions(e).reduce((o,s)=>Math.max(o,n.optionTerm(s).length),0)}longestGlobalOptionTermLength(e,n){return n.visibleGlobalOptions(e).reduce((o,s)=>Math.max(o,n.optionTerm(s).length),0)}longestArgumentTermLength(e,n){return n.visibleArguments(e).reduce((o,s)=>Math.max(o,n.argumentTerm(s).length),0)}commandUsage(e){let n=e._name;e._aliases[0]&&(n=n+"|"+e._aliases[0]);let o="";for(let s=e.parent;s;s=s.parent)o=s.name()+" "+o;return o+n+" "+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let n=[];return e.argChoices&&n.push(`choices: ${e.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue=="boolean")&&n.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&n.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&n.push(`env: ${e.envVar}`),n.length>0?`${e.description} (${n.join(", ")})`:e.description}argumentDescription(e){let n=[];if(e.argChoices&&n.push(`choices: ${e.argChoices.map(o=>JSON.stringify(o)).join(", ")}`),e.defaultValue!==void 0&&n.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),n.length>0){let o=`(${n.join(", ")})`;return e.description?`${e.description} ${o}`:o}return e.description}formatHelp(e,n){let o=n.padWidth(e,n),s=n.helpWidth||80,r=2,a=2;function u(m,k){if(k){let v=`${m.padEnd(o+a)}${k}`;return n.wrap(v,s-r,o+a)}return m}function l(m){return m.join(`
4
+ `).replace(/^/gm," ".repeat(r))}let d=[`Usage: ${n.commandUsage(e)}`,""],c=n.commandDescription(e);c.length>0&&(d=d.concat([n.wrap(c,s,0),""]));let f=n.visibleArguments(e).map(m=>u(n.argumentTerm(m),n.argumentDescription(m)));f.length>0&&(d=d.concat(["Arguments:",l(f),""]));let h=n.visibleOptions(e).map(m=>u(n.optionTerm(m),n.optionDescription(m)));if(h.length>0&&(d=d.concat(["Options:",l(h),""])),this.showGlobalOptions){let m=n.visibleGlobalOptions(e).map(k=>u(n.optionTerm(k),n.optionDescription(k)));m.length>0&&(d=d.concat(["Global Options:",l(m),""]))}let p=n.visibleCommands(e).map(m=>u(n.subcommandTerm(m),n.subcommandDescription(m)));return p.length>0&&(d=d.concat(["Commands:",l(p),""])),d.join(`
5
5
  `)}padWidth(e,n){return Math.max(n.longestOptionTermLength(e,n),n.longestGlobalOptionTermLength(e,n),n.longestSubcommandTermLength(e,n),n.longestArgumentTermLength(e,n))}wrap(e,n,o,s=40){let r=" \\f\\t\\v\xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF",a=new RegExp(`[\\n][${r}]+`);if(e.match(a))return e;let u=n-o;if(u<s)return e;let l=e.slice(0,o),d=e.slice(o).replace(`\r
6
6
  `,`
7
- `),c=" ".repeat(o),h="\\s\u200B",m=new RegExp(`
8
- |.{1,${u-1}}([${h}]|$)|[^${h}]+?([${h}]|$)`,"g"),p=d.match(m)||[];return l+p.map((k,O)=>k===`
9
- `?"":(O>0?c:"")+k.trimEnd()).join(`
10
- `)}};an.Help=Xe});var ot=I(nt=>{var{InvalidArgumentError:zo}=ie(),et=class{constructor(e,n){this.flags=e,this.description=n||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let o=Ko(e);this.short=o.shortFlag,this.long=o.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,n){return this.defaultValue=e,this.defaultValueDescription=n,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let n=e;return typeof e=="string"&&(n={[e]:!0}),this.implied=Object.assign(this.implied||{},n),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,n){return n===this.defaultValue||!Array.isArray(n)?[e]:n.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new zo(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return Yo(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},tt=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(n=>{n.negate?this.negativeOptions.set(n.attributeName(),n):this.positiveOptions.set(n.attributeName(),n)}),this.negativeOptions.forEach((n,o)=>{this.positiveOptions.has(o)&&this.dualOptions.add(o)})}valueFromOption(e,n){let o=n.attributeName();if(!this.dualOptions.has(o))return!0;let s=this.negativeOptions.get(o).presetArg,r=s!==void 0?s:!1;return n.negate===(r===e)}};function Yo(t){return t.split("-").reduce((e,n)=>e+n[0].toUpperCase()+n.slice(1))}function Ko(t){let e,n,o=t.split(/[ |,]+/);return o.length>1&&!/^[[<]/.test(o[1])&&(e=o.shift()),n=o.shift(),!e&&/^-[^-]$/.test(n)&&(e=n,n=void 0),{shortFlag:e,longFlag:n}}nt.Option=et;nt.DualOptions=tt});var ln=I(un=>{function Qo(t,e){if(Math.abs(t.length-e.length)>3)return Math.max(t.length,e.length);let n=[];for(let o=0;o<=t.length;o++)n[o]=[o];for(let o=0;o<=e.length;o++)n[0][o]=o;for(let o=1;o<=e.length;o++)for(let s=1;s<=t.length;s++){let r=1;t[s-1]===e[o-1]?r=0:r=1,n[s][o]=Math.min(n[s-1][o]+1,n[s][o-1]+1,n[s-1][o-1]+r),s>1&&o>1&&t[s-1]===e[o-2]&&t[s-2]===e[o-1]&&(n[s][o]=Math.min(n[s][o],n[s-2][o-2]+1))}return n[t.length][e.length]}function Xo(t,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let n=t.startsWith("--");n&&(t=t.slice(2),e=e.map(a=>a.slice(2)));let o=[],s=3,r=.4;return e.forEach(a=>{if(a.length<=1)return;let u=Qo(t,a),l=Math.max(t.length,a.length);(l-u)/l>r&&(u<s?(s=u,o=[a]):u===s&&o.push(a))}),o.sort((a,u)=>a.localeCompare(u)),n&&(o=o.map(a=>`--${a}`)),o.length>1?`
7
+ `),c=" ".repeat(o),h="\\s\u200B",p=new RegExp(`
8
+ |.{1,${u-1}}([${h}]|$)|[^${h}]+?([${h}]|$)`,"g"),m=d.match(p)||[];return l+m.map((k,v)=>k===`
9
+ `?"":(v>0?c:"")+k.trimEnd()).join(`
10
+ `)}};sn.Help=Ke});var tt=x(et=>{var{InvalidArgumentError:Jo}=re(),Xe=class{constructor(e,n){this.flags=e,this.description=n||"",this.required=e.includes("<"),this.optional=e.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let o=Yo(e);this.short=o.shortFlag,this.long=o.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,n){return this.defaultValue=e,this.defaultValueDescription=n,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let n=e;return typeof e=="string"&&(n={[e]:!0}),this.implied=Object.assign(this.implied||{},n),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,n){return n===this.defaultValue||!Array.isArray(n)?[e]:n.concat(e)}choices(e){return this.argChoices=e.slice(),this.parseArg=(n,o)=>{if(!this.argChoices.includes(n))throw new Jo(`Allowed choices are ${this.argChoices.join(", ")}.`);return this.variadic?this._concatValue(n,o):n},this}name(){return this.long?this.long.replace(/^--/,""):this.short.replace(/^-/,"")}attributeName(){return zo(this.name().replace(/^no-/,""))}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},Ze=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(n=>{n.negate?this.negativeOptions.set(n.attributeName(),n):this.positiveOptions.set(n.attributeName(),n)}),this.negativeOptions.forEach((n,o)=>{this.positiveOptions.has(o)&&this.dualOptions.add(o)})}valueFromOption(e,n){let o=n.attributeName();if(!this.dualOptions.has(o))return!0;let s=this.negativeOptions.get(o).presetArg,r=s!==void 0?s:!1;return n.negate===(r===e)}};function zo(t){return t.split("-").reduce((e,n)=>e+n[0].toUpperCase()+n.slice(1))}function Yo(t){let e,n,o=t.split(/[ |,]+/);return o.length>1&&!/^[[<]/.test(o[1])&&(e=o.shift()),n=o.shift(),!e&&/^-[^-]$/.test(n)&&(e=n,n=void 0),{shortFlag:e,longFlag:n}}et.Option=Xe;et.DualOptions=Ze});var an=x(rn=>{function Ko(t,e){if(Math.abs(t.length-e.length)>3)return Math.max(t.length,e.length);let n=[];for(let o=0;o<=t.length;o++)n[o]=[o];for(let o=0;o<=e.length;o++)n[0][o]=o;for(let o=1;o<=e.length;o++)for(let s=1;s<=t.length;s++){let r=1;t[s-1]===e[o-1]?r=0:r=1,n[s][o]=Math.min(n[s-1][o]+1,n[s][o-1]+1,n[s-1][o-1]+r),s>1&&o>1&&t[s-1]===e[o-2]&&t[s-2]===e[o-1]&&(n[s][o]=Math.min(n[s][o],n[s-2][o-2]+1))}return n[t.length][e.length]}function Qo(t,e){if(!e||e.length===0)return"";e=Array.from(new Set(e));let n=t.startsWith("--");n&&(t=t.slice(2),e=e.map(a=>a.slice(2)));let o=[],s=3,r=.4;return e.forEach(a=>{if(a.length<=1)return;let u=Ko(t,a),l=Math.max(t.length,a.length);(l-u)/l>r&&(u<s?(s=u,o=[a]):u===s&&o.push(a))}),o.sort((a,u)=>a.localeCompare(u)),n&&(o=o.map(a=>`--${a}`)),o.length>1?`
11
11
  (Did you mean one of ${o.join(", ")}?)`:o.length===1?`
12
- (Did you mean ${o[0]}?)`:""}un.suggestSimilar=Xo});var pn=I(hn=>{var Zo=require("node:events").EventEmitter,st=require("node:child_process"),M=require("node:path"),rt=require("node:fs"),v=require("node:process"),{Argument:es,humanReadableArgName:ts}=Ae(),{CommanderError:it}=ie(),{Help:ns}=Ze(),{Option:cn,DualOptions:os}=ot(),{suggestSimilar:dn}=ln(),at=class t extends Zo{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:n=>v.stdout.write(n),writeErr:n=>v.stderr.write(n),getOutHelpWidth:()=>v.stdout.isTTY?v.stdout.columns:void 0,getErrHelpWidth:()=>v.stderr.isTTY?v.stderr.columns:void 0,outputError:(n,o)=>o(n)},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 n=this;n;n=n.parent)e.push(n);return e}command(e,n,o){let s=n,r=o;typeof s=="object"&&s!==null&&(r=s,s=null),r=r||{};let[,a,u]=e.match(/([^ ]+) *(.*)/),l=this.createCommand(a);return s&&(l.description(s),l._executableHandler=!0),r.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(r.noHelp||r.hidden),l._executableFile=r.executableFile||null,u&&l.arguments(u),this._registerCommand(l),l.parent=this,l.copyInheritedSettings(this),s?this:l}createCommand(e){return new t(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,n){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
13
- - specify the name in Command constructor or using .name()`);return n=n||{},n.isDefault&&(this._defaultCommandName=e._name),(n.noHelp||n.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,n){return new es(e,n)}argument(e,n,o,s){let r=this.createArgument(e,n);return typeof o=="function"?r.default(s).argParser(o):r.default(o),this.addArgument(r),this}arguments(e){return e.trim().split(/ +/).forEach(n=>{this.argument(n)}),this}addArgument(e){let n=this.registeredArguments.slice(-1)[0];if(n&&n.variadic)throw new Error(`only the last argument can be variadic '${n.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,n){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,o,s]=e.match(/([^ ]+) *(.*)/),r=n??"display help for command",a=this.createCommand(o);return a.helpOption(!1),s&&a.arguments(s),r&&a.description(r),this._addImplicitHelpCommand=!0,this._helpCommand=a,this}addHelpCommand(e,n){return typeof e!="object"?(this.helpCommand(e,n),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,n){let o=["preSubcommand","preAction","postAction"];if(!o.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
14
- Expecting one of '${o.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(n):this._lifeCycleHooks[e]=[n],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=n=>{if(n.code!=="commander.executeSubCommandAsync")throw n},this}_exit(e,n,o){this._exitCallback&&this._exitCallback(new it(e,n,o)),v.exit(e)}action(e){let n=o=>{let s=this.registeredArguments.length,r=o.slice(0,s);return this._storeOptionsAsProperties?r[s]=this:r[s]=this.opts(),r.push(this),e.apply(this,r)};return this._actionHandler=n,this}createOption(e,n){return new cn(e,n)}_callParseArg(e,n,o,s){try{return e.parseArg(n,o)}catch(r){if(r.code==="commander.invalidArgument"){let a=`${s} ${r.message}`;this.error(a,{exitCode:r.exitCode,code:r.code})}throw r}}_registerOption(e){let n=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(n){let o=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 '${o}'
15
- - already used by option '${n.flags}'`)}this.options.push(e)}_registerCommand(e){let n=s=>[s.name()].concat(s.aliases()),o=n(e).find(s=>this._findCommand(s));if(o){let s=n(this._findCommand(o)).join("|"),r=n(e).join("|");throw new Error(`cannot add command '${r}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let n=e.name(),o=e.attributeName();if(e.negate){let r=e.long.replace(/^--no-/,"--");this._findOption(r)||this.setOptionValueWithSource(o,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(o,e.defaultValue,"default");let s=(r,a,u)=>{r==null&&e.presetArg!==void 0&&(r=e.presetArg);let l=this.getOptionValue(o);r!==null&&e.parseArg?r=this._callParseArg(e,r,l,a):r!==null&&e.variadic&&(r=e._concatValue(r,l)),r==null&&(e.negate?r=!1:e.isBoolean()||e.optional?r=!0:r=""),this.setOptionValueWithSource(o,r,u)};return this.on("option:"+n,r=>{let a=`error: option '${e.flags}' argument '${r}' is invalid.`;s(r,a,"cli")}),e.envVar&&this.on("optionEnv:"+n,r=>{let a=`error: option '${e.flags}' value '${r}' from env '${e.envVar}' is invalid.`;s(r,a,"env")}),this}_optionEx(e,n,o,s,r){if(typeof n=="object"&&n instanceof cn)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let a=this.createOption(n,o);if(a.makeOptionMandatory(!!e.mandatory),typeof s=="function")a.default(r).argParser(s);else if(s instanceof RegExp){let u=s;s=(l,d)=>{let c=u.exec(l);return c?c[0]:d},a.default(r).argParser(s)}else a.default(s);return this.addOption(a)}option(e,n,o,s){return this._optionEx({},e,n,o,s)}requiredOption(e,n,o,s){return this._optionEx({mandatory:!0},e,n,o,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,n){return this.setOptionValueWithSource(e,n,void 0)}setOptionValueWithSource(e,n,o){return this._storeOptionsAsProperties?this[e]=n:this._optionValues[e]=n,this._optionValueSources[e]=o,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let n;return this._getCommandAndAncestors().forEach(o=>{o.getOptionValueSource(e)!==void 0&&(n=o.getOptionValueSource(e))}),n}_prepareUserArgs(e,n){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(n=n||{},e===void 0&&n.from===void 0){v.versions?.electron&&(n.from="electron");let s=v.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(n.from="eval")}e===void 0&&(e=v.argv),this.rawArgs=e.slice();let o;switch(n.from){case void 0:case"node":this._scriptPath=e[1],o=e.slice(2);break;case"electron":v.defaultApp?(this._scriptPath=e[1],o=e.slice(2)):o=e.slice(1);break;case"user":o=e.slice(0);break;case"eval":o=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${n.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",o}parse(e,n){let o=this._prepareUserArgs(e,n);return this._parseCommand([],o),this}async parseAsync(e,n){let o=this._prepareUserArgs(e,n);return await this._parseCommand([],o),this}_executeSubCommand(e,n){n=n.slice();let o=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function r(c,f){let h=M.resolve(c,f);if(rt.existsSync(h))return h;if(s.includes(M.extname(f)))return;let m=s.find(p=>rt.existsSync(`${h}${p}`));if(m)return`${h}${m}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let a=e._executableFile||`${this._name}-${e._name}`,u=this._executableDir||"";if(this._scriptPath){let c;try{c=rt.realpathSync(this._scriptPath)}catch{c=this._scriptPath}u=M.resolve(M.dirname(c),u)}if(u){let c=r(u,a);if(!c&&!e._executableFile&&this._scriptPath){let f=M.basename(this._scriptPath,M.extname(this._scriptPath));f!==this._name&&(c=r(u,`${f}-${e._name}`))}a=c||a}o=s.includes(M.extname(a));let l;v.platform!=="win32"?o?(n.unshift(a),n=fn(v.execArgv).concat(n),l=st.spawn(v.argv[0],n,{stdio:"inherit"})):l=st.spawn(a,n,{stdio:"inherit"}):(n.unshift(a),n=fn(v.execArgv).concat(n),l=st.spawn(v.execPath,n,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(f=>{v.on(f,()=>{l.killed===!1&&l.exitCode===null&&l.kill(f)})});let d=this._exitCallback;l.on("close",c=>{c=c??1,d?d(new it(c,"commander.executeSubCommandAsync","(close)")):v.exit(c)}),l.on("error",c=>{if(c.code==="ENOENT"){let f=u?`searched for local subcommand relative to directory '${u}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",h=`'${a}' does not exist
12
+ (Did you mean ${o[0]}?)`:""}rn.suggestSimilar=Qo});var fn=x(dn=>{var Xo=require("node:events").EventEmitter,nt=require("node:child_process"),U=require("node:path"),ot=require("node:fs"),A=require("node:process"),{Argument:Zo,humanReadableArgName:es}=_e(),{CommanderError:st}=re(),{Help:ts}=Qe(),{Option:un,DualOptions:ns}=tt(),{suggestSimilar:ln}=an(),rt=class t extends Xo{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:n=>A.stdout.write(n),writeErr:n=>A.stderr.write(n),getOutHelpWidth:()=>A.stdout.isTTY?A.stdout.columns:void 0,getErrHelpWidth:()=>A.stderr.isTTY?A.stderr.columns:void 0,outputError:(n,o)=>o(n)},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 n=this;n;n=n.parent)e.push(n);return e}command(e,n,o){let s=n,r=o;typeof s=="object"&&s!==null&&(r=s,s=null),r=r||{};let[,a,u]=e.match(/([^ ]+) *(.*)/),l=this.createCommand(a);return s&&(l.description(s),l._executableHandler=!0),r.isDefault&&(this._defaultCommandName=l._name),l._hidden=!!(r.noHelp||r.hidden),l._executableFile=r.executableFile||null,u&&l.arguments(u),this._registerCommand(l),l.parent=this,l.copyInheritedSettings(this),s?this:l}createCommand(e){return new t(e)}createHelp(){return Object.assign(new ts,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,n){if(!e._name)throw new Error(`Command passed to .addCommand() must have a name
13
+ - specify the name in Command constructor or using .name()`);return n=n||{},n.isDefault&&(this._defaultCommandName=e._name),(n.noHelp||n.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,n){return new Zo(e,n)}argument(e,n,o,s){let r=this.createArgument(e,n);return typeof o=="function"?r.default(s).argParser(o):r.default(o),this.addArgument(r),this}arguments(e){return e.trim().split(/ +/).forEach(n=>{this.argument(n)}),this}addArgument(e){let n=this.registeredArguments.slice(-1)[0];if(n&&n.variadic)throw new Error(`only the last argument can be variadic '${n.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,n){if(typeof e=="boolean")return this._addImplicitHelpCommand=e,this;e=e??"help [command]";let[,o,s]=e.match(/([^ ]+) *(.*)/),r=n??"display help for command",a=this.createCommand(o);return a.helpOption(!1),s&&a.arguments(s),r&&a.description(r),this._addImplicitHelpCommand=!0,this._helpCommand=a,this}addHelpCommand(e,n){return typeof e!="object"?(this.helpCommand(e,n),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,n){let o=["preSubcommand","preAction","postAction"];if(!o.includes(e))throw new Error(`Unexpected value for event passed to hook : '${e}'.
14
+ Expecting one of '${o.join("', '")}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(n):this._lifeCycleHooks[e]=[n],this}exitOverride(e){return e?this._exitCallback=e:this._exitCallback=n=>{if(n.code!=="commander.executeSubCommandAsync")throw n},this}_exit(e,n,o){this._exitCallback&&this._exitCallback(new st(e,n,o)),A.exit(e)}action(e){let n=o=>{let s=this.registeredArguments.length,r=o.slice(0,s);return this._storeOptionsAsProperties?r[s]=this:r[s]=this.opts(),r.push(this),e.apply(this,r)};return this._actionHandler=n,this}createOption(e,n){return new un(e,n)}_callParseArg(e,n,o,s){try{return e.parseArg(n,o)}catch(r){if(r.code==="commander.invalidArgument"){let a=`${s} ${r.message}`;this.error(a,{exitCode:r.exitCode,code:r.code})}throw r}}_registerOption(e){let n=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(n){let o=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 '${o}'
15
+ - already used by option '${n.flags}'`)}this.options.push(e)}_registerCommand(e){let n=s=>[s.name()].concat(s.aliases()),o=n(e).find(s=>this._findCommand(s));if(o){let s=n(this._findCommand(o)).join("|"),r=n(e).join("|");throw new Error(`cannot add command '${r}' as already have command '${s}'`)}this.commands.push(e)}addOption(e){this._registerOption(e);let n=e.name(),o=e.attributeName();if(e.negate){let r=e.long.replace(/^--no-/,"--");this._findOption(r)||this.setOptionValueWithSource(o,e.defaultValue===void 0?!0:e.defaultValue,"default")}else e.defaultValue!==void 0&&this.setOptionValueWithSource(o,e.defaultValue,"default");let s=(r,a,u)=>{r==null&&e.presetArg!==void 0&&(r=e.presetArg);let l=this.getOptionValue(o);r!==null&&e.parseArg?r=this._callParseArg(e,r,l,a):r!==null&&e.variadic&&(r=e._concatValue(r,l)),r==null&&(e.negate?r=!1:e.isBoolean()||e.optional?r=!0:r=""),this.setOptionValueWithSource(o,r,u)};return this.on("option:"+n,r=>{let a=`error: option '${e.flags}' argument '${r}' is invalid.`;s(r,a,"cli")}),e.envVar&&this.on("optionEnv:"+n,r=>{let a=`error: option '${e.flags}' value '${r}' from env '${e.envVar}' is invalid.`;s(r,a,"env")}),this}_optionEx(e,n,o,s,r){if(typeof n=="object"&&n instanceof un)throw new Error("To add an Option object use addOption() instead of option() or requiredOption()");let a=this.createOption(n,o);if(a.makeOptionMandatory(!!e.mandatory),typeof s=="function")a.default(r).argParser(s);else if(s instanceof RegExp){let u=s;s=(l,d)=>{let c=u.exec(l);return c?c[0]:d},a.default(r).argParser(s)}else a.default(s);return this.addOption(a)}option(e,n,o,s){return this._optionEx({},e,n,o,s)}requiredOption(e,n,o,s){return this._optionEx({mandatory:!0},e,n,o,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,n){return this.setOptionValueWithSource(e,n,void 0)}setOptionValueWithSource(e,n,o){return this._storeOptionsAsProperties?this[e]=n:this._optionValues[e]=n,this._optionValueSources[e]=o,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let n;return this._getCommandAndAncestors().forEach(o=>{o.getOptionValueSource(e)!==void 0&&(n=o.getOptionValueSource(e))}),n}_prepareUserArgs(e,n){if(e!==void 0&&!Array.isArray(e))throw new Error("first parameter to parse must be array or undefined");if(n=n||{},e===void 0&&n.from===void 0){A.versions?.electron&&(n.from="electron");let s=A.execArgv??[];(s.includes("-e")||s.includes("--eval")||s.includes("-p")||s.includes("--print"))&&(n.from="eval")}e===void 0&&(e=A.argv),this.rawArgs=e.slice();let o;switch(n.from){case void 0:case"node":this._scriptPath=e[1],o=e.slice(2);break;case"electron":A.defaultApp?(this._scriptPath=e[1],o=e.slice(2)):o=e.slice(1);break;case"user":o=e.slice(0);break;case"eval":o=e.slice(1);break;default:throw new Error(`unexpected parse option { from: '${n.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||"program",o}parse(e,n){let o=this._prepareUserArgs(e,n);return this._parseCommand([],o),this}async parseAsync(e,n){let o=this._prepareUserArgs(e,n);return await this._parseCommand([],o),this}_executeSubCommand(e,n){n=n.slice();let o=!1,s=[".js",".ts",".tsx",".mjs",".cjs"];function r(c,f){let h=U.resolve(c,f);if(ot.existsSync(h))return h;if(s.includes(U.extname(f)))return;let p=s.find(m=>ot.existsSync(`${h}${m}`));if(p)return`${h}${p}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let a=e._executableFile||`${this._name}-${e._name}`,u=this._executableDir||"";if(this._scriptPath){let c;try{c=ot.realpathSync(this._scriptPath)}catch{c=this._scriptPath}u=U.resolve(U.dirname(c),u)}if(u){let c=r(u,a);if(!c&&!e._executableFile&&this._scriptPath){let f=U.basename(this._scriptPath,U.extname(this._scriptPath));f!==this._name&&(c=r(u,`${f}-${e._name}`))}a=c||a}o=s.includes(U.extname(a));let l;A.platform!=="win32"?o?(n.unshift(a),n=cn(A.execArgv).concat(n),l=nt.spawn(A.argv[0],n,{stdio:"inherit"})):l=nt.spawn(a,n,{stdio:"inherit"}):(n.unshift(a),n=cn(A.execArgv).concat(n),l=nt.spawn(A.execPath,n,{stdio:"inherit"})),l.killed||["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach(f=>{A.on(f,()=>{l.killed===!1&&l.exitCode===null&&l.kill(f)})});let d=this._exitCallback;l.on("close",c=>{c=c??1,d?d(new st(c,"commander.executeSubCommandAsync","(close)")):A.exit(c)}),l.on("error",c=>{if(c.code==="ENOENT"){let f=u?`searched for local subcommand relative to directory '${u}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",h=`'${a}' does not exist
16
16
  - if '${e._name}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
17
17
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
18
- - ${f}`;throw new Error(h)}else if(c.code==="EACCES")throw new Error(`'${a}' not executable`);if(!d)v.exit(1);else{let f=new it(1,"commander.executeSubCommandAsync","(error)");f.nestedError=c,d(f)}}),this.runningCommand=l}_dispatchSubcommand(e,n,o){let s=this._findCommand(e);s||this.help({error:!0});let r;return r=this._chainOrCallSubCommandHook(r,s,"preSubcommand"),r=this._chainOrCall(r,()=>{if(s._executableHandler)this._executeSubCommand(s,n.concat(o));else return s._parseCommand(n,o)}),r}_dispatchHelpCommand(e){e||this.help();let n=this._findCommand(e);return n&&!n._executableHandler&&n.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,n)=>{e.required&&this.args[n]==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=(o,s,r)=>{let a=s;if(s!==null&&o.parseArg){let u=`error: command-argument value '${s}' is invalid for argument '${o.name()}'.`;a=this._callParseArg(o,s,r,u)}return a};this._checkNumberOfArguments();let n=[];this.registeredArguments.forEach((o,s)=>{let r=o.defaultValue;o.variadic?s<this.args.length?(r=this.args.slice(s),o.parseArg&&(r=r.reduce((a,u)=>e(o,u,a),o.defaultValue))):r===void 0&&(r=[]):s<this.args.length&&(r=this.args[s],o.parseArg&&(r=e(o,r,o.defaultValue))),n[s]=r}),this.processedArgs=n}_chainOrCall(e,n){return e&&e.then&&typeof e.then=="function"?e.then(()=>n()):n()}_chainOrCallHooks(e,n){let o=e,s=[];return this._getCommandAndAncestors().reverse().filter(r=>r._lifeCycleHooks[n]!==void 0).forEach(r=>{r._lifeCycleHooks[n].forEach(a=>{s.push({hookedCommand:r,callback:a})})}),n==="postAction"&&s.reverse(),s.forEach(r=>{o=this._chainOrCall(o,()=>r.callback(r.hookedCommand,this))}),o}_chainOrCallSubCommandHook(e,n,o){let s=e;return this._lifeCycleHooks[o]!==void 0&&this._lifeCycleHooks[o].forEach(r=>{s=this._chainOrCall(s,()=>r(this,n))}),s}_parseCommand(e,n){let o=this.parseOptions(n);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(o.operands),n=o.unknown,this.args=e.concat(n),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),n);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(n),this._dispatchSubcommand(this._defaultCommandName,e,n);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(o.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let s=()=>{o.unknown.length>0&&this.unknownOption(o.unknown[0])},r=`command:${this.name()}`;if(this._actionHandler){s(),this._processArguments();let a;return a=this._chainOrCallHooks(a,"preAction"),a=this._chainOrCall(a,()=>this._actionHandler(this.processedArgs)),this.parent&&(a=this._chainOrCall(a,()=>{this.parent.emit(r,e,n)})),a=this._chainOrCallHooks(a,"postAction"),a}if(this.parent&&this.parent.listenerCount(r))s(),this._processArguments(),this.parent.emit(r,e,n);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,n);this.listenerCount("command:*")?this.emit("command:*",e,n):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(n=>n._name===e||n._aliases.includes(e))}_findOption(e){return this.options.find(n=>n.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(n=>{n.mandatory&&e.getOptionValue(n.attributeName())===void 0&&e.missingMandatoryOptionValue(n)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(o=>{let s=o.attributeName();return this.getOptionValue(s)===void 0?!1:this.getOptionValueSource(s)!=="default"});e.filter(o=>o.conflictsWith.length>0).forEach(o=>{let s=e.find(r=>o.conflictsWith.includes(r.attributeName()));s&&this._conflictingOption(o,s)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let n=[],o=[],s=n,r=e.slice();function a(l){return l.length>1&&l[0]==="-"}let u=null;for(;r.length;){let l=r.shift();if(l==="--"){s===o&&s.push(l),s.push(...r);break}if(u&&!a(l)){this.emit(`option:${u.name()}`,l);continue}if(u=null,a(l)){let d=this._findOption(l);if(d){if(d.required){let c=r.shift();c===void 0&&this.optionMissingArgument(d),this.emit(`option:${d.name()}`,c)}else if(d.optional){let c=null;r.length>0&&!a(r[0])&&(c=r.shift()),this.emit(`option:${d.name()}`,c)}else this.emit(`option:${d.name()}`);u=d.variadic?d:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let d=this._findOption(`-${l[1]}`);if(d){d.required||d.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${d.name()}`,l.slice(2)):(this.emit(`option:${d.name()}`),r.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let d=l.indexOf("="),c=this._findOption(l.slice(0,d));if(c&&(c.required||c.optional)){this.emit(`option:${c.name()}`,l.slice(d+1));continue}}if(a(l)&&(s=o),(this._enablePositionalOptions||this._passThroughOptions)&&n.length===0&&o.length===0){if(this._findCommand(l)){n.push(l),r.length>0&&o.push(...r);break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){n.push(l),r.length>0&&n.push(...r);break}else if(this._defaultCommandName){o.push(l),r.length>0&&o.push(...r);break}}if(this._passThroughOptions){s.push(l),r.length>0&&s.push(...r);break}s.push(l)}return{operands:n,unknown:o}}opts(){if(this._storeOptionsAsProperties){let e={},n=this.options.length;for(let o=0;o<n;o++){let s=this.options[o].attributeName();e[s]=s===this._versionOptionName?this._version:this[s]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,n)=>Object.assign(e,n.opts()),{})}error(e,n){this._outputConfiguration.outputError(`${e}
18
+ - ${f}`;throw new Error(h)}else if(c.code==="EACCES")throw new Error(`'${a}' not executable`);if(!d)A.exit(1);else{let f=new st(1,"commander.executeSubCommandAsync","(error)");f.nestedError=c,d(f)}}),this.runningCommand=l}_dispatchSubcommand(e,n,o){let s=this._findCommand(e);s||this.help({error:!0});let r;return r=this._chainOrCallSubCommandHook(r,s,"preSubcommand"),r=this._chainOrCall(r,()=>{if(s._executableHandler)this._executeSubCommand(s,n.concat(o));else return s._parseCommand(n,o)}),r}_dispatchHelpCommand(e){e||this.help();let n=this._findCommand(e);return n&&!n._executableHandler&&n.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,n)=>{e.required&&this.args[n]==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=(o,s,r)=>{let a=s;if(s!==null&&o.parseArg){let u=`error: command-argument value '${s}' is invalid for argument '${o.name()}'.`;a=this._callParseArg(o,s,r,u)}return a};this._checkNumberOfArguments();let n=[];this.registeredArguments.forEach((o,s)=>{let r=o.defaultValue;o.variadic?s<this.args.length?(r=this.args.slice(s),o.parseArg&&(r=r.reduce((a,u)=>e(o,u,a),o.defaultValue))):r===void 0&&(r=[]):s<this.args.length&&(r=this.args[s],o.parseArg&&(r=e(o,r,o.defaultValue))),n[s]=r}),this.processedArgs=n}_chainOrCall(e,n){return e&&e.then&&typeof e.then=="function"?e.then(()=>n()):n()}_chainOrCallHooks(e,n){let o=e,s=[];return this._getCommandAndAncestors().reverse().filter(r=>r._lifeCycleHooks[n]!==void 0).forEach(r=>{r._lifeCycleHooks[n].forEach(a=>{s.push({hookedCommand:r,callback:a})})}),n==="postAction"&&s.reverse(),s.forEach(r=>{o=this._chainOrCall(o,()=>r.callback(r.hookedCommand,this))}),o}_chainOrCallSubCommandHook(e,n,o){let s=e;return this._lifeCycleHooks[o]!==void 0&&this._lifeCycleHooks[o].forEach(r=>{s=this._chainOrCall(s,()=>r(this,n))}),s}_parseCommand(e,n){let o=this.parseOptions(n);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(o.operands),n=o.unknown,this.args=e.concat(n),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),n);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(n),this._dispatchSubcommand(this._defaultCommandName,e,n);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(o.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let s=()=>{o.unknown.length>0&&this.unknownOption(o.unknown[0])},r=`command:${this.name()}`;if(this._actionHandler){s(),this._processArguments();let a;return a=this._chainOrCallHooks(a,"preAction"),a=this._chainOrCall(a,()=>this._actionHandler(this.processedArgs)),this.parent&&(a=this._chainOrCall(a,()=>{this.parent.emit(r,e,n)})),a=this._chainOrCallHooks(a,"postAction"),a}if(this.parent&&this.parent.listenerCount(r))s(),this._processArguments(),this.parent.emit(r,e,n);else if(e.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",e,n);this.listenerCount("command:*")?this.emit("command:*",e,n):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(n=>n._name===e||n._aliases.includes(e))}_findOption(e){return this.options.find(n=>n.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(n=>{n.mandatory&&e.getOptionValue(n.attributeName())===void 0&&e.missingMandatoryOptionValue(n)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(o=>{let s=o.attributeName();return this.getOptionValue(s)===void 0?!1:this.getOptionValueSource(s)!=="default"});e.filter(o=>o.conflictsWith.length>0).forEach(o=>{let s=e.find(r=>o.conflictsWith.includes(r.attributeName()));s&&this._conflictingOption(o,s)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let n=[],o=[],s=n,r=e.slice();function a(l){return l.length>1&&l[0]==="-"}let u=null;for(;r.length;){let l=r.shift();if(l==="--"){s===o&&s.push(l),s.push(...r);break}if(u&&!a(l)){this.emit(`option:${u.name()}`,l);continue}if(u=null,a(l)){let d=this._findOption(l);if(d){if(d.required){let c=r.shift();c===void 0&&this.optionMissingArgument(d),this.emit(`option:${d.name()}`,c)}else if(d.optional){let c=null;r.length>0&&!a(r[0])&&(c=r.shift()),this.emit(`option:${d.name()}`,c)}else this.emit(`option:${d.name()}`);u=d.variadic?d:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let d=this._findOption(`-${l[1]}`);if(d){d.required||d.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${d.name()}`,l.slice(2)):(this.emit(`option:${d.name()}`),r.unshift(`-${l.slice(2)}`));continue}}if(/^--[^=]+=/.test(l)){let d=l.indexOf("="),c=this._findOption(l.slice(0,d));if(c&&(c.required||c.optional)){this.emit(`option:${c.name()}`,l.slice(d+1));continue}}if(a(l)&&(s=o),(this._enablePositionalOptions||this._passThroughOptions)&&n.length===0&&o.length===0){if(this._findCommand(l)){n.push(l),r.length>0&&o.push(...r);break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){n.push(l),r.length>0&&n.push(...r);break}else if(this._defaultCommandName){o.push(l),r.length>0&&o.push(...r);break}}if(this._passThroughOptions){s.push(l),r.length>0&&s.push(...r);break}s.push(l)}return{operands:n,unknown:o}}opts(){if(this._storeOptionsAsProperties){let e={},n=this.options.length;for(let o=0;o<n;o++){let s=this.options[o].attributeName();e[s]=s===this._versionOptionName?this._version:this[s]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,n)=>Object.assign(e,n.opts()),{})}error(e,n){this._outputConfiguration.outputError(`${e}
19
19
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError=="string"?this._outputConfiguration.writeErr(`${this._showHelpAfterError}
20
20
  `):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
21
- `),this.outputHelp({error:!0}));let o=n||{},s=o.exitCode||1,r=o.code||"commander.error";this._exit(s,r,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in v.env){let n=e.attributeName();(this.getOptionValue(n)===void 0||["default","config","env"].includes(this.getOptionValueSource(n)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,v.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new os(this.options),n=o=>this.getOptionValue(o)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(o));this.options.filter(o=>o.implied!==void 0&&n(o.attributeName())&&e.valueFromOption(this.getOptionValue(o.attributeName()),o)).forEach(o=>{Object.keys(o.implied).filter(s=>!n(s)).forEach(s=>{this.setOptionValueWithSource(s,o.implied[s],"implied")})})}missingArgument(e){let n=`error: missing required argument '${e}'`;this.error(n,{code:"commander.missingArgument"})}optionMissingArgument(e){let n=`error: option '${e.flags}' argument missing`;this.error(n,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let n=`error: required option '${e.flags}' not specified`;this.error(n,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,n){let o=a=>{let u=a.attributeName(),l=this.getOptionValue(u),d=this.options.find(f=>f.negate&&u===f.attributeName()),c=this.options.find(f=>!f.negate&&u===f.attributeName());return d&&(d.presetArg===void 0&&l===!1||d.presetArg!==void 0&&l===d.presetArg)?d:c||a},s=a=>{let u=o(a),l=u.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${u.envVar}'`:`option '${u.flags}'`},r=`error: ${s(e)} cannot be used with ${s(n)}`;this.error(r,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let n="";if(e.startsWith("--")&&this._showSuggestionAfterError){let s=[],r=this;do{let a=r.createHelp().visibleOptions(r).filter(u=>u.long).map(u=>u.long);s=s.concat(a),r=r.parent}while(r&&!r._enablePositionalOptions);n=dn(e,s)}let o=`error: unknown option '${e}'${n}`;this.error(o,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let n=this.registeredArguments.length,o=n===1?"":"s",r=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${n} argument${o} but got ${e.length}.`;this.error(r,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],n="";if(this._showSuggestionAfterError){let s=[];this.createHelp().visibleCommands(this).forEach(r=>{s.push(r.name()),r.alias()&&s.push(r.alias())}),n=dn(e,s)}let o=`error: unknown command '${e}'${n}`;this.error(o,{code:"commander.unknownCommand"})}version(e,n,o){if(e===void 0)return this._version;this._version=e,n=n||"-V, --version",o=o||"output the version number";let s=this.createOption(n,o);return this._versionOptionName=s.attributeName(),this._registerOption(s),this.on("option:"+s.name(),()=>{this._outputConfiguration.writeOut(`${e}
22
- `),this._exit(0,"commander.version",e)}),this}description(e,n){return e===void 0&&n===void 0?this._description:(this._description=e,n&&(this._argsDescription=n),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let n=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(n=this.commands[this.commands.length-1]),e===n._name)throw new Error("Command alias can't be the same as its name");let o=this.parent?._findCommand(e);if(o){let s=[o.name()].concat(o.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${s}'`)}return n._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(n=>this.alias(n)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let n=this.registeredArguments.map(o=>ts(o));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?n:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=M.basename(e,M.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let n=this.createHelp();return n.helpWidth===void 0&&(n.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),n.formatHelp(this,n)}_getHelpContext(e){e=e||{};let n={error:!!e.error},o;return n.error?o=s=>this._outputConfiguration.writeErr(s):o=s=>this._outputConfiguration.writeOut(s),n.write=e.write||o,n.command=this,n}outputHelp(e){let n;typeof e=="function"&&(n=e,e=void 0);let o=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(r=>r.emit("beforeAllHelp",o)),this.emit("beforeHelp",o);let s=this.helpInformation(o);if(n&&(s=n(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");o.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",o),this._getCommandAndAncestors().forEach(r=>r.emit("afterAllHelp",o))}helpOption(e,n){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",n=n??"display help for command",this._helpOption=this.createOption(e,n),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 n=v.exitCode||0;n===0&&e&&typeof e!="function"&&e.error&&(n=1),this._exit(n,"commander.help","(outputHelp)")}addHelpText(e,n){let o=["beforeAll","before","after","afterAll"];if(!o.includes(e))throw new Error(`Unexpected value for position to addHelpText.
21
+ `),this.outputHelp({error:!0}));let o=n||{},s=o.exitCode||1,r=o.code||"commander.error";this._exit(s,r,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in A.env){let n=e.attributeName();(this.getOptionValue(n)===void 0||["default","config","env"].includes(this.getOptionValueSource(n)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,A.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new ns(this.options),n=o=>this.getOptionValue(o)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(o));this.options.filter(o=>o.implied!==void 0&&n(o.attributeName())&&e.valueFromOption(this.getOptionValue(o.attributeName()),o)).forEach(o=>{Object.keys(o.implied).filter(s=>!n(s)).forEach(s=>{this.setOptionValueWithSource(s,o.implied[s],"implied")})})}missingArgument(e){let n=`error: missing required argument '${e}'`;this.error(n,{code:"commander.missingArgument"})}optionMissingArgument(e){let n=`error: option '${e.flags}' argument missing`;this.error(n,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(e){let n=`error: required option '${e.flags}' not specified`;this.error(n,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(e,n){let o=a=>{let u=a.attributeName(),l=this.getOptionValue(u),d=this.options.find(f=>f.negate&&u===f.attributeName()),c=this.options.find(f=>!f.negate&&u===f.attributeName());return d&&(d.presetArg===void 0&&l===!1||d.presetArg!==void 0&&l===d.presetArg)?d:c||a},s=a=>{let u=o(a),l=u.attributeName();return this.getOptionValueSource(l)==="env"?`environment variable '${u.envVar}'`:`option '${u.flags}'`},r=`error: ${s(e)} cannot be used with ${s(n)}`;this.error(r,{code:"commander.conflictingOption"})}unknownOption(e){if(this._allowUnknownOption)return;let n="";if(e.startsWith("--")&&this._showSuggestionAfterError){let s=[],r=this;do{let a=r.createHelp().visibleOptions(r).filter(u=>u.long).map(u=>u.long);s=s.concat(a),r=r.parent}while(r&&!r._enablePositionalOptions);n=ln(e,s)}let o=`error: unknown option '${e}'${n}`;this.error(o,{code:"commander.unknownOption"})}_excessArguments(e){if(this._allowExcessArguments)return;let n=this.registeredArguments.length,o=n===1?"":"s",r=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${n} argument${o} but got ${e.length}.`;this.error(r,{code:"commander.excessArguments"})}unknownCommand(){let e=this.args[0],n="";if(this._showSuggestionAfterError){let s=[];this.createHelp().visibleCommands(this).forEach(r=>{s.push(r.name()),r.alias()&&s.push(r.alias())}),n=ln(e,s)}let o=`error: unknown command '${e}'${n}`;this.error(o,{code:"commander.unknownCommand"})}version(e,n,o){if(e===void 0)return this._version;this._version=e,n=n||"-V, --version",o=o||"output the version number";let s=this.createOption(n,o);return this._versionOptionName=s.attributeName(),this._registerOption(s),this.on("option:"+s.name(),()=>{this._outputConfiguration.writeOut(`${e}
22
+ `),this._exit(0,"commander.version",e)}),this}description(e,n){return e===void 0&&n===void 0?this._description:(this._description=e,n&&(this._argsDescription=n),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let n=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(n=this.commands[this.commands.length-1]),e===n._name)throw new Error("Command alias can't be the same as its name");let o=this.parent?._findCommand(e);if(o){let s=[o.name()].concat(o.aliases()).join("|");throw new Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${s}'`)}return n._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(n=>this.alias(n)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let n=this.registeredArguments.map(o=>es(o));return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?n:[]).join(" ")}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}nameFromFilename(e){return this._name=U.basename(e,U.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let n=this.createHelp();return n.helpWidth===void 0&&(n.helpWidth=e&&e.error?this._outputConfiguration.getErrHelpWidth():this._outputConfiguration.getOutHelpWidth()),n.formatHelp(this,n)}_getHelpContext(e){e=e||{};let n={error:!!e.error},o;return n.error?o=s=>this._outputConfiguration.writeErr(s):o=s=>this._outputConfiguration.writeOut(s),n.write=e.write||o,n.command=this,n}outputHelp(e){let n;typeof e=="function"&&(n=e,e=void 0);let o=this._getHelpContext(e);this._getCommandAndAncestors().reverse().forEach(r=>r.emit("beforeAllHelp",o)),this.emit("beforeHelp",o);let s=this.helpInformation(o);if(n&&(s=n(s),typeof s!="string"&&!Buffer.isBuffer(s)))throw new Error("outputHelp callback must return a string or a Buffer");o.write(s),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit("afterHelp",o),this._getCommandAndAncestors().forEach(r=>r.emit("afterAllHelp",o))}helpOption(e,n){return typeof e=="boolean"?(e?this._helpOption=this._helpOption??void 0:this._helpOption=null,this):(e=e??"-h, --help",n=n??"display help for command",this._helpOption=this.createOption(e,n),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 n=A.exitCode||0;n===0&&e&&typeof e!="function"&&e.error&&(n=1),this._exit(n,"commander.help","(outputHelp)")}addHelpText(e,n){let o=["beforeAll","before","after","afterAll"];if(!o.includes(e))throw new Error(`Unexpected value for position to addHelpText.
23
23
  Expecting one of '${o.join("', '")}'`);let s=`${e}Help`;return this.on(s,r=>{let a;typeof n=="function"?a=n({error:r.error,command:r.command}):a=n,a&&r.write(`${a}
24
- `)}),this}_outputHelpIfRequested(e){let n=this._getHelpOption();n&&e.find(s=>n.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function fn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let n,o="127.0.0.1",s="9229",r;return(r=e.match(/^(--inspect(-brk)?)$/))!==null?n=r[1]:(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(n=r[1],/^\d+$/.test(r[3])?s=r[3]:o=r[3]):(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(n=r[1],o=r[3],s=r[4]),n&&s!=="0"?`${n}=${o}:${parseInt(s)+1}`:e})}hn.Command=at});var Fn=I(B=>{var{Argument:mn}=Ae(),{Command:ut}=pn(),{CommanderError:ss,InvalidArgumentError:Dn}=ie(),{Help:rs}=Ze(),{Option:gn}=ot();B.program=new ut;B.createCommand=t=>new ut(t);B.createOption=(t,e)=>new gn(t,e);B.createArgument=(t,e)=>new mn(t,e);B.Command=ut;B.Option=gn;B.Argument=mn;B.Help=rs;B.CommanderError=ss;B.InvalidArgumentError=Dn;B.InvalidOptionArgumentError=Dn});var yn=I((ui,is)=>{is.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var bn=I((li,H)=>{var lt=require("fs"),be=require("path"),as=require("os"),us=require("crypto"),ls=yn(),ct=ls.version,cs=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function ds(t){let e={},n=t.toString();n=n.replace(/\r\n?/mg,`
25
- `);let o;for(;(o=cs.exec(n))!=null;){let s=o[1],r=o[2]||"";r=r.trim();let a=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),a==='"'&&(r=r.replace(/\\n/g,`
26
- `),r=r.replace(/\\r/g,"\r")),e[s]=r}return e}function fs(t){t=t||{};let e=An(t);t.path=e;let n=b.configDotenv(t);if(!n.parsed){let a=new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);throw a.code="MISSING_DATA",a}let o=vn(t).split(","),s=o.length,r;for(let a=0;a<s;a++)try{let u=o[a].trim(),l=ps(n,u);r=b.decrypt(l.ciphertext,l.key);break}catch(u){if(a+1>=s)throw u}return b.parse(r)}function hs(t){console.log(`[dotenv@${ct}][WARN] ${t}`)}function ae(t){console.log(`[dotenv@${ct}][DEBUG] ${t}`)}function _n(t){console.log(`[dotenv@${ct}] ${t}`)}function vn(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function ps(t,e){let n;try{n=new URL(e)}catch(u){if(u.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw u}let o=n.password;if(!o){let u=new Error("INVALID_DOTENV_KEY: Missing key part");throw u.code="INVALID_DOTENV_KEY",u}let s=n.searchParams.get("environment");if(!s){let u=new Error("INVALID_DOTENV_KEY: Missing environment part");throw u.code="INVALID_DOTENV_KEY",u}let r=`DOTENV_VAULT_${s.toUpperCase()}`,a=t.parsed[r];if(!a){let u=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${r} in your .env.vault file.`);throw u.code="NOT_FOUND_DOTENV_ENVIRONMENT",u}return{ciphertext:a,key:o}}function An(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)lt.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=be.resolve(process.cwd(),".env.vault");return lt.existsSync(e)?e:null}function En(t){return t[0]==="~"?be.join(as.homedir(),t.slice(1)):t}function ms(t){let e=!!(t&&t.debug),n=t&&"quiet"in t?t.quiet:!0;(e||!n)&&_n("Loading env from encrypted .env.vault");let o=b._parseVault(t),s=process.env;return t&&t.processEnv!=null&&(s=t.processEnv),b.populate(s,o,t),{parsed:o}}function Ds(t){let e=be.resolve(process.cwd(),".env"),n="utf8",o=!!(t&&t.debug),s=t&&"quiet"in t?t.quiet:!0;t&&t.encoding?n=t.encoding:o&&ae("No encoding is specified. UTF-8 is used by default");let r=[e];if(t&&t.path)if(!Array.isArray(t.path))r=[En(t.path)];else{r=[];for(let d of t.path)r.push(En(d))}let a,u={};for(let d of r)try{let c=b.parse(lt.readFileSync(d,{encoding:n}));b.populate(u,c,t)}catch(c){o&&ae(`Failed to load ${d} ${c.message}`),a=c}let l=process.env;if(t&&t.processEnv!=null&&(l=t.processEnv),b.populate(l,u,t),o||!s){let d=Object.keys(u).length,c=[];for(let f of r)try{let h=be.relative(process.cwd(),f);c.push(h)}catch(h){o&&ae(`Failed to load ${f} ${h.message}`),a=h}_n(`injecting env (${d}) from ${c.join(",")}`)}return a?{parsed:u,error:a}:{parsed:u}}function gs(t){if(vn(t).length===0)return b.configDotenv(t);let e=An(t);return e?b._configVault(t):(hs(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),b.configDotenv(t))}function Fs(t,e){let n=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),s=o.subarray(0,12),r=o.subarray(-16);o=o.subarray(12,-16);try{let a=us.createDecipheriv("aes-256-gcm",n,s);return a.setAuthTag(r),`${a.update(o)}${a.final()}`}catch(a){let u=a instanceof RangeError,l=a.message==="Invalid key length",d=a.message==="Unsupported state or unable to authenticate data";if(u||l){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(d){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw a}}function Cs(t,e,n={}){let o=!!(n&&n.debug),s=!!(n&&n.override);if(typeof e!="object"){let r=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw r.code="OBJECT_REQUIRED",r}for(let r of Object.keys(e))Object.prototype.hasOwnProperty.call(t,r)?(s===!0&&(t[r]=e[r]),o&&ae(s===!0?`"${r}" is already defined and WAS overwritten`:`"${r}" is already defined and was NOT overwritten`)):t[r]=e[r]}var b={configDotenv:Ds,_configVault:ms,_parseVault:fs,config:gs,decrypt:Fs,parse:ds,populate:Cs};H.exports.configDotenv=b.configDotenv;H.exports._configVault=b._configVault;H.exports._parseVault=b._parseVault;H.exports.config=b.config;H.exports.decrypt=b.decrypt;H.exports.parse=b.parse;H.exports.populate=b.populate;H.exports=b});var ro=I((Yi,zs)=>{zs.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var Nt=I((Ki,ao)=>{"use strict";var je=Object.assign({},ro()),io=Object.keys(je);Object.defineProperty(je,"random",{get(){let t=Math.floor(Math.random()*io.length),e=io[t];return je[e]}});ao.exports=je});var po=I((ua,ho)=>{ho.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var Fo=I((Sa,ir)=>{ir.exports={name:"@scheduler-systems/gal-cli",version:"0.1.13-alpha.pr417",description:"GAL CLI - Command-line tool for managing AI agent configurations across your organization",license:"UNLICENSED",private:!1,type:"module",main:"./dist/index.cjs",bin:{gal:"./dist/index.cjs"},files:["dist/index.cjs","scripts/postinstall.cjs","scripts/preuninstall.cjs","README.md","LICENSE"],scripts:{postinstall:"node scripts/postinstall.cjs",preuninstall:"node scripts/preuninstall.cjs",dev:"tsx watch src/index.ts",build:`rm -rf dist && esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.cjs --format=cjs --define:__CLI_VERSION__=\\"$(node -p "require('./package.json').version")-local+$(git rev-parse --short HEAD)\\" --define:__DEFAULT_API_URL__=\\"http://localhost:3000\\" && chmod +x dist/index.cjs`,"build:publish":`rm -rf dist && esbuild src/index.ts --bundle --platform=node --target=node18 --minify --outfile=dist/index.cjs --format=cjs --define:__CLI_VERSION__=\\"$(node -p "require('./package.json').version")\\" --define:__DEFAULT_API_URL__=\\"\${DEFAULT_API_URL:-https://api.gal.run}\\" && { printf '%s\\n' '#!/usr/bin/env node'; cat dist/index.cjs; } > dist/temp.cjs && mv dist/temp.cjs dist/index.cjs && chmod +x dist/index.cjs`,start:"node dist/index.js",test:"vitest run --pool=forks","test:watch":"vitest","test:unit":"vitest run --pool=forks tests/unit/","test:e2e":"vitest run --pool=forks tests/e2e/","test:mutation":"stryker run","test:mutation:incremental":"stryker run --incremental","test:coverage":"vitest run --coverage","type-check":"tsc --noEmit",prepublishOnly:"npm run build:publish",clean:"rm -rf dist"},keywords:["gal","governance","ai","agent","cli","configuration","claude","cursor","windsurf","gemini","codex"],author:"Scheduler Systems",repository:{type:"git",url:"https://github.com/Scheduler-Systems/gal.git",directory:"apps/cli"},bugs:{url:"https://github.com/Scheduler-Systems/gal/issues"},homepage:"https://github.com/Scheduler-Systems/gal#readme",engines:{node:">=18.0.0"},dependencies:{"@anthropic-ai/sdk":"^0.32.1","@e2b/code-interpreter":"^1.0.4","@octokit/rest":"^21.0.2",chalk:"^5.4.1",commander:"^12.1.0",dotenv:"^16.4.7",openai:"^4.77.3",ora:"^8.1.1"},devDependencies:{"@eslint/js":"^9.39.1","@gal/types":"workspace:*","@stryker-mutator/core":"^9.4.0","@stryker-mutator/typescript-checker":"^9.4.0","@stryker-mutator/vitest-runner":"^9.4.0","@types/node":"^22.10.2","@vitest/coverage-v8":"^4.0.16",esbuild:"^0.24.0",eslint:"^9.39.2","eslint-plugin-security":"^3.0.1","eslint-plugin-sonarjs":"^3.0.5","fast-check":"^4.5.3",globals:"^16.5.0","node-pty":"^1.0.0",tsx:"^4.19.2",typescript:"^5.7.2","typescript-eslint":"^8.46.4",vitest:"^4.0.16"}}});var Mr={};Ho(Mr,{DEFAULT_API_URL:()=>te});module.exports=Vo(Mr);var Cn=A(Fn(),1),{program:Qr,createCommand:Xr,createArgument:Zr,createOption:ei,CommanderError:ti,InvalidArgumentError:ni,InvalidOptionArgumentError:oi,Command:L,Argument:si,Option:ri,Help:ii}=Cn.default;var Io=A(bn(),1),Bo=A(require("https"),1),q=require("fs"),en=require("path"),Lo=require("os");var wn=(t=0)=>e=>`\x1B[${e+t}m`,Sn=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,kn=(t=0)=>(e,n,o)=>`\x1B[${38+t};2;${e};${n};${o}m`,y={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},ci=Object.keys(y.modifier),ys=Object.keys(y.color),Es=Object.keys(y.bgColor),di=[...ys,...Es];function _s(){let t=new Map;for(let[e,n]of Object.entries(y)){for(let[o,s]of Object.entries(n))y[o]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},n[o]=y[o],t.set(s[0],s[1]);Object.defineProperty(y,e,{value:n,enumerable:!1})}return Object.defineProperty(y,"codes",{value:t,enumerable:!1}),y.color.close="\x1B[39m",y.bgColor.close="\x1B[49m",y.color.ansi=wn(),y.color.ansi256=Sn(),y.color.ansi16m=kn(),y.bgColor.ansi=wn(10),y.bgColor.ansi256=Sn(10),y.bgColor.ansi16m=kn(10),Object.defineProperties(y,{rgbToAnsi256:{value(e,n,o){return e===n&&n===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(e){let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[o]=n;o.length===3&&(o=[...o].map(r=>r+r).join(""));let s=Number.parseInt(o,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>y.rgbToAnsi256(...y.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,o,s;if(e>=232)n=((e-232)*10+8)/255,o=n,s=n;else{e-=16;let u=e%36;n=Math.floor(e/36)/5,o=Math.floor(u/6)/5,s=u%6/5}let r=Math.max(n,o,s)*2;if(r===0)return 30;let a=30+(Math.round(s)<<2|Math.round(o)<<1|Math.round(n));return r===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,n,o)=>y.ansi256ToAnsi(y.rgbToAnsi256(e,n,o)),enumerable:!1},hexToAnsi:{value:e=>y.ansi256ToAnsi(y.hexToAnsi256(e)),enumerable:!1}}),y}var vs=_s(),N=vs;var Se=A(require("node:process"),1),xn=A(require("node:os"),1),dt=A(require("node:tty"),1);function P(t,e=globalThis.Deno?globalThis.Deno.args:Se.default.argv){let n=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(n+t),s=e.indexOf("--");return o!==-1&&(s===-1||o<s)}var{env:E}=Se.default,we;P("no-color")||P("no-colors")||P("color=false")||P("color=never")?we=0:(P("color")||P("colors")||P("color=true")||P("color=always"))&&(we=1);function As(){if("FORCE_COLOR"in E)return E.FORCE_COLOR==="true"?1:E.FORCE_COLOR==="false"?0:E.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(E.FORCE_COLOR,10),3)}function bs(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function ws(t,{streamIsTTY:e,sniffFlags:n=!0}={}){let o=As();o!==void 0&&(we=o);let s=n?we:o;if(s===0)return 0;if(n){if(P("color=16m")||P("color=full")||P("color=truecolor"))return 3;if(P("color=256"))return 2}if("TF_BUILD"in E&&"AGENT_NAME"in E)return 1;if(t&&!e&&s===void 0)return 0;let r=s||0;if(E.TERM==="dumb")return r;if(Se.default.platform==="win32"){let a=xn.default.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in E)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in E)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in E)||E.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in E)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(E.TEAMCITY_VERSION)?1:0;if(E.COLORTERM==="truecolor"||E.TERM==="xterm-kitty"||E.TERM==="xterm-ghostty"||E.TERM==="wezterm")return 3;if("TERM_PROGRAM"in E){let a=Number.parseInt((E.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(E.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(E.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(E.TERM)||"COLORTERM"in E?1:r}function On(t,e={}){let n=ws(t,{streamIsTTY:t&&t.isTTY,...e});return bs(n)}var Ss={stdout:On({isTTY:dt.default.isatty(1)}),stderr:On({isTTY:dt.default.isatty(2)})},Tn=Ss;function In(t,e,n){let o=t.indexOf(e);if(o===-1)return t;let s=e.length,r=0,a="";do a+=t.slice(r,o)+e+n,r=o+s,o=t.indexOf(e,r);while(o!==-1);return a+=t.slice(r),a}function Bn(t,e,n,o){let s=0,r="";do{let a=t[o-1]==="\r";r+=t.slice(s,a?o-1:o)+e+(a?`\r
24
+ `)}),this}_outputHelpIfRequested(e){let n=this._getHelpOption();n&&e.find(s=>n.is(s))&&(this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)"))}};function cn(t){return t.map(e=>{if(!e.startsWith("--inspect"))return e;let n,o="127.0.0.1",s="9229",r;return(r=e.match(/^(--inspect(-brk)?)$/))!==null?n=r[1]:(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null?(n=r[1],/^\d+$/.test(r[3])?s=r[3]:o=r[3]):(r=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(n=r[1],o=r[3],s=r[4]),n&&s!=="0"?`${n}=${o}:${parseInt(s)+1}`:e})}dn.Command=rt});var Dn=x(I=>{var{Argument:hn}=_e(),{Command:it}=fn(),{CommanderError:os,InvalidArgumentError:mn}=re(),{Help:ss}=Qe(),{Option:pn}=tt();I.program=new it;I.createCommand=t=>new it(t);I.createOption=(t,e)=>new pn(t,e);I.createArgument=(t,e)=>new hn(t,e);I.Command=it;I.Option=pn;I.Argument=hn;I.Help=ss;I.CommanderError=os;I.InvalidArgumentError=mn;I.InvalidOptionArgumentError=mn});var Fn=x((li,rs)=>{rs.exports={name:"dotenv",version:"16.6.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard",pretest:"npm run lint && npm run dts-check",test:"tap run --allow-empty-coverage --disable-coverage --timeout=60000","test:coverage":"tap run --show-full-coverage --timeout=60000 --coverage-report=text --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},homepage:"https://github.com/motdotla/dotenv#readme",funding:"https://dotenvx.com",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@types/node":"^18.11.3",decache:"^4.6.2",sinon:"^14.0.1",standard:"^17.0.0","standard-version":"^9.5.0",tap:"^19.2.0",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var vn=x((ci,M)=>{var at=require("fs"),ve=require("path"),is=require("os"),as=require("crypto"),us=Fn(),ut=us.version,ls=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function cs(t){let e={},n=t.toString();n=n.replace(/\r\n?/mg,`
25
+ `);let o;for(;(o=ls.exec(n))!=null;){let s=o[1],r=o[2]||"";r=r.trim();let a=r[0];r=r.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),a==='"'&&(r=r.replace(/\\n/g,`
26
+ `),r=r.replace(/\\r/g,"\r")),e[s]=r}return e}function ds(t){t=t||{};let e=_n(t);t.path=e;let n=w.configDotenv(t);if(!n.parsed){let a=new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);throw a.code="MISSING_DATA",a}let o=En(t).split(","),s=o.length,r;for(let a=0;a<s;a++)try{let u=o[a].trim(),l=hs(n,u);r=w.decrypt(l.ciphertext,l.key);break}catch(u){if(a+1>=s)throw u}return w.parse(r)}function fs(t){console.log(`[dotenv@${ut}][WARN] ${t}`)}function ie(t){console.log(`[dotenv@${ut}][DEBUG] ${t}`)}function Cn(t){console.log(`[dotenv@${ut}] ${t}`)}function En(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function hs(t,e){let n;try{n=new URL(e)}catch(u){if(u.code==="ERR_INVALID_URL"){let l=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw l.code="INVALID_DOTENV_KEY",l}throw u}let o=n.password;if(!o){let u=new Error("INVALID_DOTENV_KEY: Missing key part");throw u.code="INVALID_DOTENV_KEY",u}let s=n.searchParams.get("environment");if(!s){let u=new Error("INVALID_DOTENV_KEY: Missing environment part");throw u.code="INVALID_DOTENV_KEY",u}let r=`DOTENV_VAULT_${s.toUpperCase()}`,a=t.parsed[r];if(!a){let u=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${r} in your .env.vault file.`);throw u.code="NOT_FOUND_DOTENV_ENVIRONMENT",u}return{ciphertext:a,key:o}}function _n(t){let e=null;if(t&&t.path&&t.path.length>0)if(Array.isArray(t.path))for(let n of t.path)at.existsSync(n)&&(e=n.endsWith(".vault")?n:`${n}.vault`);else e=t.path.endsWith(".vault")?t.path:`${t.path}.vault`;else e=ve.resolve(process.cwd(),".env.vault");return at.existsSync(e)?e:null}function yn(t){return t[0]==="~"?ve.join(is.homedir(),t.slice(1)):t}function ms(t){let e=!!(t&&t.debug),n=t&&"quiet"in t?t.quiet:!0;(e||!n)&&Cn("Loading env from encrypted .env.vault");let o=w._parseVault(t),s=process.env;return t&&t.processEnv!=null&&(s=t.processEnv),w.populate(s,o,t),{parsed:o}}function ps(t){let e=ve.resolve(process.cwd(),".env"),n="utf8",o=!!(t&&t.debug),s=t&&"quiet"in t?t.quiet:!0;t&&t.encoding?n=t.encoding:o&&ie("No encoding is specified. UTF-8 is used by default");let r=[e];if(t&&t.path)if(!Array.isArray(t.path))r=[yn(t.path)];else{r=[];for(let d of t.path)r.push(yn(d))}let a,u={};for(let d of r)try{let c=w.parse(at.readFileSync(d,{encoding:n}));w.populate(u,c,t)}catch(c){o&&ie(`Failed to load ${d} ${c.message}`),a=c}let l=process.env;if(t&&t.processEnv!=null&&(l=t.processEnv),w.populate(l,u,t),o||!s){let d=Object.keys(u).length,c=[];for(let f of r)try{let h=ve.relative(process.cwd(),f);c.push(h)}catch(h){o&&ie(`Failed to load ${f} ${h.message}`),a=h}Cn(`injecting env (${d}) from ${c.join(",")}`)}return a?{parsed:u,error:a}:{parsed:u}}function Ds(t){if(En(t).length===0)return w.configDotenv(t);let e=_n(t);return e?w._configVault(t):(fs(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),w.configDotenv(t))}function gs(t,e){let n=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),s=o.subarray(0,12),r=o.subarray(-16);o=o.subarray(12,-16);try{let a=as.createDecipheriv("aes-256-gcm",n,s);return a.setAuthTag(r),`${a.update(o)}${a.final()}`}catch(a){let u=a instanceof RangeError,l=a.message==="Invalid key length",d=a.message==="Unsupported state or unable to authenticate data";if(u||l){let c=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw c.code="INVALID_DOTENV_KEY",c}else if(d){let c=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw c.code="DECRYPTION_FAILED",c}else throw a}}function Fs(t,e,n={}){let o=!!(n&&n.debug),s=!!(n&&n.override);if(typeof e!="object"){let r=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw r.code="OBJECT_REQUIRED",r}for(let r of Object.keys(e))Object.prototype.hasOwnProperty.call(t,r)?(s===!0&&(t[r]=e[r]),o&&ie(s===!0?`"${r}" is already defined and WAS overwritten`:`"${r}" is already defined and was NOT overwritten`)):t[r]=e[r]}var w={configDotenv:ps,_configVault:ms,_parseVault:ds,config:Ds,decrypt:gs,parse:cs,populate:Fs};M.exports.configDotenv=w.configDotenv;M.exports._configVault=w._configVault;M.exports._parseVault=w._parseVault;M.exports.config=w.config;M.exports.decrypt=w.decrypt;M.exports.parse=w.parse;M.exports.populate=w.populate;M.exports=w});var so=x((Ki,Ys)=>{Ys.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var Lt=x((Qi,io)=>{"use strict";var Ne=Object.assign({},so()),ro=Object.keys(Ne);Object.defineProperty(Ne,"random",{get(){let t=Math.floor(Math.random()*ro.length),e=ro[t];return Ne[e]}});io.exports=Ne});var ho=x((la,fo)=>{fo.exports=()=>/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g});var go=x((ka,ar)=>{ar.exports={name:"@scheduler-systems/gal-cli",version:"0.1.13-alpha.pr472",description:"GAL CLI - Command-line tool for managing AI agent configurations across your organization",license:"UNLICENSED",private:!1,type:"module",main:"./dist/index.cjs",bin:{gal:"./dist/index.cjs"},files:["dist/index.cjs","scripts/postinstall.cjs","scripts/preuninstall.cjs","README.md","LICENSE"],scripts:{postinstall:"node scripts/postinstall.cjs",preuninstall:"node scripts/preuninstall.cjs",dev:"tsx watch src/index.ts",build:`rm -rf dist && esbuild src/index.ts --bundle --platform=node --target=node18 --outfile=dist/index.cjs --format=cjs --define:__CLI_VERSION__=\\"$(node -p "require('./package.json').version")-local+$(git rev-parse --short HEAD)\\" --define:__DEFAULT_API_URL__=\\"http://localhost:3000\\" && chmod +x dist/index.cjs`,"build:publish":`rm -rf dist && esbuild src/index.ts --bundle --platform=node --target=node18 --minify --outfile=dist/index.cjs --format=cjs --define:__CLI_VERSION__=\\"$(node -p "require('./package.json').version")\\" --define:__DEFAULT_API_URL__=\\"\${DEFAULT_API_URL:-https://api.gal.run}\\" && { printf '%s\\n' '#!/usr/bin/env node'; cat dist/index.cjs; } > dist/temp.cjs && mv dist/temp.cjs dist/index.cjs && chmod +x dist/index.cjs`,start:"node dist/index.js",test:"vitest run --pool=forks","test:watch":"vitest","test:unit":"vitest run --pool=forks tests/unit/","test:e2e":"vitest run --pool=forks tests/e2e/","test:mutation":"stryker run","test:mutation:incremental":"stryker run --incremental","test:coverage":"vitest run --coverage","type-check":"tsc --noEmit",prepublishOnly:"npm run build:publish",clean:"rm -rf dist"},keywords:["gal","governance","ai","agent","cli","configuration","claude","cursor","windsurf","gemini","codex"],author:"Scheduler Systems",repository:{type:"git",url:"https://github.com/Scheduler-Systems/gal.git",directory:"apps/cli"},bugs:{url:"https://github.com/Scheduler-Systems/gal/issues"},homepage:"https://github.com/Scheduler-Systems/gal#readme",engines:{node:">=18.0.0"},dependencies:{"@anthropic-ai/sdk":"^0.32.1","@e2b/code-interpreter":"^1.0.4","@octokit/rest":"^21.0.2",chalk:"^5.4.1",commander:"^12.1.0",dotenv:"^16.4.7",openai:"^4.77.3",ora:"^8.1.1"},devDependencies:{"@eslint/js":"^9.39.1","@gal/types":"workspace:*","@stryker-mutator/core":"^9.4.0","@stryker-mutator/typescript-checker":"^9.4.0","@stryker-mutator/vitest-runner":"^9.4.0","@types/node":"^22.10.2","@vitest/coverage-v8":"^4.0.16",esbuild:"^0.24.0",eslint:"^9.39.2","eslint-plugin-security":"^3.0.1","eslint-plugin-sonarjs":"^3.0.5","fast-check":"^4.5.3",globals:"^16.5.0","node-pty":"^1.0.0",tsx:"^4.19.2",typescript:"^5.7.2","typescript-eslint":"^8.46.4",vitest:"^4.0.16"}}});var Hr={};Mo(Hr,{DEFAULT_API_URL:()=>ee});module.exports=Ho(Hr);var gn=b(Dn(),1),{program:Xr,createCommand:Zr,createArgument:ei,createOption:ti,CommanderError:ni,InvalidArgumentError:oi,InvalidOptionArgumentError:si,Command:B,Argument:ri,Option:ii,Help:ai}=gn.default;var To=b(vn(),1),Io=b(require("https"),1),V=require("fs"),Xt=require("path"),Bo=require("os");var An=(t=0)=>e=>`\x1B[${e+t}m`,bn=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,wn=(t=0)=>(e,n,o)=>`\x1B[${38+t};2;${e};${n};${o}m`,C={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},di=Object.keys(C.modifier),ys=Object.keys(C.color),Cs=Object.keys(C.bgColor),fi=[...ys,...Cs];function Es(){let t=new Map;for(let[e,n]of Object.entries(C)){for(let[o,s]of Object.entries(n))C[o]={open:`\x1B[${s[0]}m`,close:`\x1B[${s[1]}m`},n[o]=C[o],t.set(s[0],s[1]);Object.defineProperty(C,e,{value:n,enumerable:!1})}return Object.defineProperty(C,"codes",{value:t,enumerable:!1}),C.color.close="\x1B[39m",C.bgColor.close="\x1B[49m",C.color.ansi=An(),C.color.ansi256=bn(),C.color.ansi16m=wn(),C.bgColor.ansi=An(10),C.bgColor.ansi256=bn(10),C.bgColor.ansi16m=wn(10),Object.defineProperties(C,{rgbToAnsi256:{value(e,n,o){return e===n&&n===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(e){let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!n)return[0,0,0];let[o]=n;o.length===3&&(o=[...o].map(r=>r+r).join(""));let s=Number.parseInt(o,16);return[s>>16&255,s>>8&255,s&255]},enumerable:!1},hexToAnsi256:{value:e=>C.rgbToAnsi256(...C.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let n,o,s;if(e>=232)n=((e-232)*10+8)/255,o=n,s=n;else{e-=16;let u=e%36;n=Math.floor(e/36)/5,o=Math.floor(u/6)/5,s=u%6/5}let r=Math.max(n,o,s)*2;if(r===0)return 30;let a=30+(Math.round(s)<<2|Math.round(o)<<1|Math.round(n));return r===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(e,n,o)=>C.ansi256ToAnsi(C.rgbToAnsi256(e,n,o)),enumerable:!1},hexToAnsi:{value:e=>C.ansi256ToAnsi(C.hexToAnsi256(e)),enumerable:!1}}),C}var _s=Es(),P=_s;var be=b(require("node:process"),1),kn=b(require("node:os"),1),lt=b(require("node:tty"),1);function R(t,e=globalThis.Deno?globalThis.Deno.args:be.default.argv){let n=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(n+t),s=e.indexOf("--");return o!==-1&&(s===-1||o<s)}var{env:E}=be.default,Ae;R("no-color")||R("no-colors")||R("color=false")||R("color=never")?Ae=0:(R("color")||R("colors")||R("color=true")||R("color=always"))&&(Ae=1);function vs(){if("FORCE_COLOR"in E)return E.FORCE_COLOR==="true"?1:E.FORCE_COLOR==="false"?0:E.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(E.FORCE_COLOR,10),3)}function As(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function bs(t,{streamIsTTY:e,sniffFlags:n=!0}={}){let o=vs();o!==void 0&&(Ae=o);let s=n?Ae:o;if(s===0)return 0;if(n){if(R("color=16m")||R("color=full")||R("color=truecolor"))return 3;if(R("color=256"))return 2}if("TF_BUILD"in E&&"AGENT_NAME"in E)return 1;if(t&&!e&&s===void 0)return 0;let r=s||0;if(E.TERM==="dumb")return r;if(be.default.platform==="win32"){let a=kn.default.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in E)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(a=>a in E)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(a=>a in E)||E.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in E)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(E.TEAMCITY_VERSION)?1:0;if(E.COLORTERM==="truecolor"||E.TERM==="xterm-kitty"||E.TERM==="xterm-ghostty"||E.TERM==="wezterm")return 3;if("TERM_PROGRAM"in E){let a=Number.parseInt((E.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(E.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(E.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(E.TERM)||"COLORTERM"in E?1:r}function Sn(t,e={}){let n=bs(t,{streamIsTTY:t&&t.isTTY,...e});return As(n)}var ws={stdout:Sn({isTTY:lt.default.isatty(1)}),stderr:Sn({isTTY:lt.default.isatty(2)})},On=ws;function xn(t,e,n){let o=t.indexOf(e);if(o===-1)return t;let s=e.length,r=0,a="";do a+=t.slice(r,o)+e+n,r=o+s,o=t.indexOf(e,r);while(o!==-1);return a+=t.slice(r),a}function Tn(t,e,n,o){let s=0,r="";do{let a=t[o-1]==="\r";r+=t.slice(s,a?o-1:o)+e+(a?`\r
27
27
  `:`
28
28
  `)+n,s=o+1,o=t.indexOf(`
29
- `,s)}while(o!==-1);return r+=t.slice(s),r}var{stdout:Ln,stderr:Pn}=Tn,ft=Symbol("GENERATOR"),Q=Symbol("STYLER"),ue=Symbol("IS_EMPTY"),Rn=["ansi","ansi","ansi256","ansi16m"],X=Object.create(null),ks=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=Ln?Ln.level:0;t.level=e.level===void 0?n:e.level};var Os=t=>{let e=(...n)=>n.join(" ");return ks(e,t),Object.setPrototypeOf(e,le.prototype),e};function le(t){return Os(t)}Object.setPrototypeOf(le.prototype,Function.prototype);for(let[t,e]of Object.entries(N))X[t]={get(){let n=ke(this,pt(e.open,e.close,this[Q]),this[ue]);return Object.defineProperty(this,t,{value:n}),n}};X.visible={get(){let t=ke(this,this[Q],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var ht=(t,e,n,...o)=>t==="rgb"?e==="ansi16m"?N[n].ansi16m(...o):e==="ansi256"?N[n].ansi256(N.rgbToAnsi256(...o)):N[n].ansi(N.rgbToAnsi(...o)):t==="hex"?ht("rgb",e,n,...N.hexToRgb(...o)):N[n][t](...o),xs=["rgb","hex","ansi256"];for(let t of xs){X[t]={get(){let{level:n}=this;return function(...o){let s=pt(ht(t,Rn[n],"color",...o),N.color.close,this[Q]);return ke(this,s,this[ue])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);X[e]={get(){let{level:n}=this;return function(...o){let s=pt(ht(t,Rn[n],"bgColor",...o),N.bgColor.close,this[Q]);return ke(this,s,this[ue])}}}}var Ts=Object.defineProperties(()=>{},{...X,level:{enumerable:!0,get(){return this[ft].level},set(t){this[ft].level=t}}}),pt=(t,e,n)=>{let o,s;return n===void 0?(o=t,s=e):(o=n.openAll+t,s=e+n.closeAll),{open:t,close:e,openAll:o,closeAll:s,parent:n}},ke=(t,e,n)=>{let o=(...s)=>Is(o,s.length===1?""+s[0]:s.join(" "));return Object.setPrototypeOf(o,Ts),o[ft]=t,o[Q]=e,o[ue]=n,o},Is=(t,e)=>{if(t.level<=0||!e)return t[ue]?"":e;let n=t[Q];if(n===void 0)return e;let{openAll:o,closeAll:s}=n;if(e.includes("\x1B"))for(;n!==void 0;)e=In(e,n.close,n.open),n=n.parent;let r=e.indexOf(`
30
- `);return r!==-1&&(e=Bn(e,s,o,r)),o+e+s};Object.defineProperties(le.prototype,X);var Bs=le(),Fi=le({level:Pn?Pn.level:0});var i=Bs;var Qn=require("crypto");var $=require("fs"),$n=require("os"),Z=require("path"),jn=require("url"),Ps={},mt=(0,Z.join)((0,$n.homedir)(),".gal"),Oe=(0,Z.join)(mt,"config.json"),Ls={development:"http://localhost:3000",staging:"https://gal-api-wug5dzqj2a-uc.a.run.app",production:"https://api.gal.run"};function Nn(){let t=process.env.GAL_ENV?.toLowerCase();if(t==="development"||t==="dev"||t==="local")return"development";if(t==="staging"||t==="stg"||t==="beta")return"staging";if(t==="production"||t==="prod")return"production";if(process.argv[1]?.includes("tsx")||process.argv[1]?.includes("ts-node")||process.argv[1]?.endsWith(".ts")||process.env.npm_lifecycle_event==="dev"||process.env.NODE_ENV==="development")return"development";try{let n="0.1.13-alpha.pr417";if(n&&(n.includes("-beta")||n.includes("-rc")||n.includes("-alpha")))return"staging";if(!n||n==="0.0.0-dev"){let o=(0,jn.fileURLToPath)(Ps.url),s=(0,Z.dirname)(o),r=(0,Z.join)(s,"..","package.json");if((0,$.existsSync)(r)){let u=JSON.parse((0,$.readFileSync)(r,"utf-8")).version||"";if(u.includes("-beta")||u.includes("-rc")||u.includes("-alpha"))return"staging"}}}catch{}return"production"}var C=class{static getEnvironment(){return Nn()}static load(){let e=Nn(),n=Ls[e];if(!(0,$.existsSync)(Oe))return{apiUrl:n};try{let o=(0,$.readFileSync)(Oe,"utf-8"),s=JSON.parse(o);return s.apiUrl||(s.apiUrl=n),e!=="development"&&s.apiUrl.includes("localhost")&&(s.apiUrl=n),s}catch(o){return console.error("Error loading config:",o),{apiUrl:n}}}static save(e){(0,$.existsSync)(mt)||(0,$.mkdirSync)(mt,{recursive:!0}),(0,$.writeFileSync)(Oe,JSON.stringify(e,null,2),"utf-8")}static set(e,n){let o=this.load();o[e]=n,this.save(o)}static get(e){return this.load()[e]}static getConfigPath(){return Oe}};var U=require("fs"),gt=require("path"),Gn=require("os"),Un=require("crypto"),Dt=(0,gt.join)((0,Gn.homedir)(),".gal"),xe=(0,gt.join)(Dt,"installation-id");function Mn(){try{if((0,U.existsSync)(xe)){let e=(0,U.readFileSync)(xe,"utf-8").trim();if(e&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e))return e}}catch{}let t=(0,Un.randomUUID)();try{(0,U.existsSync)(Dt)||(0,U.mkdirSync)(Dt,{recursive:!0}),(0,U.writeFileSync)(xe,t,"utf-8")}catch{}return t}function Hn(){return!(0,U.existsSync)(xe)}var x=require("fs"),Be=require("path"),qn=require("os"),Te=(0,Be.join)((0,qn.homedir)(),".gal"),ce=(0,Be.join)(Te,"telemetry-queue.json"),Ft=(0,Be.join)(Te,"telemetry-pending-events.json"),Vn=100,Rs=7,Ns=Rs*24*60*60*1e3,Ie=class{queue=[];flushCallback=null;constructor(){this.loadOfflineQueue(),this.loadPendingEvents()}setFlushCallback(e){this.flushCallback=e}async addEvent(e){let n={...e,queuedAt:Date.now()};this.queue.push(n),this.queue.length>=Vn&&await this.flush()}async flush(){if(this.queue.length===0)return;if(!this.flushCallback){this.saveOfflineQueue();return}if(this.pruneExpiredEvents(),this.queue.length===0)return;let e=this.queue.slice(0,Vn),n=e.map(({queuedAt:o,...s})=>s);try{await this.flushCallback(n)?(this.queue=this.queue.slice(e.length),this.queue.length>0?this.saveOfflineQueue():this.clearOfflineQueue()):this.saveOfflineQueue()}catch{this.saveOfflineQueue()}}getQueueLength(){return this.queue.length}loadOfflineQueue(){try{if((0,x.existsSync)(ce)){let e=(0,x.readFileSync)(ce,"utf-8"),n=JSON.parse(e);Array.isArray(n)&&(this.queue=n,this.pruneExpiredEvents())}}catch{}}loadPendingEvents(){try{if((0,x.existsSync)(Ft)){let e=(0,x.readFileSync)(Ft,"utf-8"),n=JSON.parse(e);if(Array.isArray(n))for(let o of n)o.queuedAt||(o.queuedAt=Date.now()),this.queue.push(o);(0,x.writeFileSync)(Ft,"[]","utf-8")}}catch{}}saveOfflineQueue(){try{(0,x.existsSync)(Te)||(0,x.mkdirSync)(Te,{recursive:!0}),(0,x.writeFileSync)(ce,JSON.stringify(this.queue),"utf-8")}catch{}}clearOfflineQueue(){try{(0,x.existsSync)(ce)&&(0,x.writeFileSync)(ce,"[]","utf-8")}catch{}}pruneExpiredEvents(){let e=Date.now();this.queue=this.queue.filter(n=>e-n.queuedAt<Ns)}};var Le=class{baseUrl;constructor(e){this.baseUrl=e}async sendEvents(e){if(e.length===0)return!0;try{let n=new AbortController,o=setTimeout(()=>n.abort(),5e3),s=await fetch(`${this.baseUrl}/telemetry/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({events:e}),signal:n.signal});return clearTimeout(o),s.ok?(await s.json()).accepted===!0:s.status===202}catch{return!1}}async sendFeedback(e,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),5e3),r={"Content-Type":"application/json"};n&&(r.Authorization=`Bearer ${n}`);let a=await fetch(`${this.baseUrl}/telemetry/feedback`,{method:"POST",headers:r,body:JSON.stringify(e),signal:o.signal});return clearTimeout(s),a.ok?(await a.json()).accepted===!0:a.status===202}catch{return!1}}setBaseUrl(e){this.baseUrl=e}};var Ct=A(require("readline"),1);var Wn=0;function yt(){Wn++}async function de(t,e){if(!vt()||!process.stdin.isTTY||!process.stdout.isTTY||!Jn("error"))return;let n=Ct.createInterface({input:process.stdin,output:process.stdout}),o=s=>new Promise(r=>{n.question(s,r)});try{console.log(),console.log(i.yellow("\u2501".repeat(50))),console.log(i.yellow(" Help us improve GAL CLI")),console.log(i.yellow("\u2501".repeat(50))),console.log();let s=await o(i.dim("Would you like to report this error? (y/N): "));if(s.toLowerCase()!=="y"&&s.toLowerCase()!=="yes"){n.close();return}let r=await o(i.dim("Any additional context? (press Enter to skip): "));n.close(),await _t(1,r||`Error in ${t}: ${e.message}`,{command:t,errorType:e.name,errorMessage:e.message.substring(0,200)})&&console.log(i.green("\u2713 Thanks for your feedback!")),zn("error")}catch{n.close()}}async function Et(){if(!vt()||!process.stdin.isTTY||!process.stdout.isTTY||Wn<10||!Jn("session"))return;let t=Ct.createInterface({input:process.stdin,output:process.stdout}),e=n=>new Promise(o=>{t.question(n,o)});try{console.log(),console.log(i.blue("\u2501".repeat(50))),console.log(i.blue(" Quick feedback (1 question)")),console.log(i.blue("\u2501".repeat(50))),console.log();let n=await e(i.dim("How would you rate GAL CLI? (1-5, or press Enter to skip): "));if(!n){t.close();return}let o=parseInt(n,10);if(isNaN(o)||o<1||o>5){console.log(i.dim("Invalid rating, skipping...")),t.close();return}let s;o<=3&&(s=await e(i.dim("What could we improve? (press Enter to skip): "))),t.close(),await _t(o,s||void 0,{command:"session_feedback"})&&console.log(i.green("\u2713 Thanks for your feedback!")),zn("session")}catch{t.close()}}function Jn(t){try{let e=C.load(),n=Date.now(),o=24*60*60*1e3,s=7*o;if(t==="error"){let r=e.lastErrorFeedback||0;return n-r>o}else{let r=e.lastSessionFeedback||0;return n-r>s}}catch{return!0}}function zn(t){try{let e=t==="error"?"lastErrorFeedback":"lastSessionFeedback";C.set(e,Date.now())}catch{}}var Yn="0.1.13-alpha.pr417",W=null,Kn=!1;function bt(){let t=process.env.GAL_TELEMETRY?.toLowerCase();if(t==="false"||t==="0"||t==="no"||t==="off")return!0;try{if(C.load().telemetry===!1)return!0}catch{}return!1}var At=class{queue;client;installationId;exitHandlersRegistered=!1;constructor(e){this.installationId=Mn(),this.queue=new Ie,this.client=new Le(e),this.queue.setFlushCallback(n=>this.client.sendEvents(n)),this.registerExitHandlers()}async trackEvent(e,n){let o={id:(0,Qn.randomUUID)(),installationId:this.installationId,timestamp:new Date().toISOString(),eventType:e,payload:{...n,cliVersion:Yn,platform:process.platform,nodeVersion:process.version}};await this.queue.addEvent(o)}async flush(){await this.queue.flush()}async sendFeedback(e,n,o){let s={installationId:this.installationId,rating:e,comment:n,context:{...o,cliVersion:Yn,platform:process.platform}},r=C.load();return this.client.sendFeedback(s,r.authToken)}registerExitHandlers(){if(this.exitHandlersRegistered)return;let e=async()=>{await this.flush()};process.on("beforeExit",e),process.on("SIGINT",async()=>{await e(),process.exit(130)}),process.on("SIGTERM",async()=>{await e(),process.exit(143)}),this.exitHandlersRegistered=!0}};function Xn(){if(Kn||(Kn=!0,bt()))return;let e=C.load().apiUrl||"https://api.gal.run";W=new At(e)}function Zn(){if(!(bt()||C.load().telemetryNoticeShown)){if(!Hn()){C.set("telemetryNoticeShown","true");return}console.log(i.blue("\u2501".repeat(60))),console.log(i.blue.bold(" GAL CLI Telemetry")),console.log(i.blue("\u2501".repeat(60))),console.log(),console.log(" GAL collects anonymous usage data to improve the CLI."),console.log(" This helps us diagnose issues and understand which"),console.log(" features are most valuable to developers."),console.log(),console.log(i.dim(" No personal information or code is collected.")),console.log(),console.log(" To opt out:"),console.log(i.cyan(" gal config set telemetry false")),console.log(" Or set environment variable:"),console.log(i.cyan(" export GAL_TELEMETRY=false")),console.log(),console.log(i.blue("\u2501".repeat(60))),console.log(),C.set("telemetryNoticeShown","true")}}function wt(t,e){W&&W.trackEvent("auth_login",{success:t,errorType:e?e.name:void 0})}function St(t,e,n){W&&W.trackEvent("sync_pull",{filesTracked:t,success:e,syncAgeHours:n})}async function _t(t,e,n){return W?W.sendFeedback(t,e,n):!1}function vt(){return!bt()&&W!==null}var me=A(require("node:process"),1);var Pt=A(require("node:process"),1);var fe=A(require("node:process"),1);var $s=(t,e,n,o)=>{if(n==="length"||n==="prototype"||n==="arguments"||n==="caller")return;let s=Object.getOwnPropertyDescriptor(t,n),r=Object.getOwnPropertyDescriptor(e,n);!js(s,r)&&o||Object.defineProperty(t,n,r)},js=function(t,e){return t===void 0||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},Gs=(t,e)=>{let n=Object.getPrototypeOf(e);n!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,n)},Us=(t,e)=>`/* Wrapped ${t}*/
31
- ${e}`,Ms=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),Hs=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),Vs=(t,e,n)=>{let o=n===""?"":`with ${n.trim()}() `,s=Us.bind(null,o,e.toString());Object.defineProperty(s,"name",Hs);let{writable:r,enumerable:a,configurable:u}=Ms;Object.defineProperty(t,"toString",{value:s,writable:r,enumerable:a,configurable:u})};function kt(t,e,{ignoreNonConfigurable:n=!1}={}){let{name:o}=t;for(let s of Reflect.ownKeys(e))$s(t,e,s,n);return Gs(t,e),Vs(t,e,o),t}var Pe=new WeakMap,eo=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let n,o=0,s=t.displayName||t.name||"<anonymous>",r=function(...a){if(Pe.set(r,++o),o===1)n=t.apply(this,a),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${s}\` can only be called once`);return n};return kt(r,t),Pe.set(r,o),r};eo.callCount=t=>{if(!Pe.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return Pe.get(t)};var to=eo;var J=[];J.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&J.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&J.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Re=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",Ot=Symbol.for("signal-exit emitter"),xt=globalThis,qs=Object.defineProperty.bind(Object),Tt=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(xt[Ot])return xt[Ot];qs(xt,Ot,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){let o=this.listeners[e],s=o.indexOf(n);s!==-1&&(s===0&&o.length===1?o.length=0:o.splice(s,1))}emit(e,n,o){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let r of this.listeners[e])s=r(n,o)===!0||s;return e==="exit"&&(s=this.emit("afterExit",n,o)||s),s}},Ne=class{},Ws=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}}),It=class extends Ne{onExit(){return()=>{}}load(){}unload(){}},Bt=class extends Ne{#i=Lt.platform==="win32"?"SIGINT":"SIGHUP";#n=new Tt;#e;#s;#f;#t={};#r=!1;constructor(e){super(),this.#e=e,this.#t={};for(let n of J)this.#t[n]=()=>{let o=this.#e.listeners(n),{count:s}=this.#n,r=e;if(typeof r.__signal_exit_emitter__=="object"&&typeof r.__signal_exit_emitter__.count=="number"&&(s+=r.__signal_exit_emitter__.count),o.length===s){this.unload();let a=this.#n.emit("exit",null,n),u=n==="SIGHUP"?this.#i:n;a||e.kill(e.pid,u)}};this.#f=e.reallyExit,this.#s=e.emit}onExit(e,n){if(!Re(this.#e))return()=>{};this.#r===!1&&this.load();let o=n?.alwaysLast?"afterExit":"exit";return this.#n.on(o,e),()=>{this.#n.removeListener(o,e),this.#n.listeners.exit.length===0&&this.#n.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#r){this.#r=!0,this.#n.count+=1;for(let e of J)try{let n=this.#t[e];n&&this.#e.on(e,n)}catch{}this.#e.emit=(e,...n)=>this.#h(e,...n),this.#e.reallyExit=e=>this.#o(e)}}unload(){this.#r&&(this.#r=!1,J.forEach(e=>{let n=this.#t[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,n)}catch{}}),this.#e.emit=this.#s,this.#e.reallyExit=this.#f,this.#n.count-=1)}#o(e){return Re(this.#e)?(this.#e.exitCode=e||0,this.#n.emit("exit",this.#e.exitCode,null),this.#f.call(this.#e,this.#e.exitCode)):0}#h(e,...n){let o=this.#s;if(e==="exit"&&Re(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let s=o.call(this.#e,e,...n);return this.#n.emit("exit",this.#e.exitCode,null),s}else return o.call(this.#e,e,...n)}},Lt=globalThis.process,{onExit:no,load:Ui,unload:Mi}=Ws(Re(Lt)?new Bt(Lt):new It);var oo=fe.default.stderr.isTTY?fe.default.stderr:fe.default.stdout.isTTY?fe.default.stdout:void 0,Js=oo?to(()=>{no(()=>{oo.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},so=Js;var $e=!1,ee={};ee.show=(t=Pt.default.stderr)=>{t.isTTY&&($e=!1,t.write("\x1B[?25h"))};ee.hide=(t=Pt.default.stderr)=>{t.isTTY&&(so(),$e=!0,t.write("\x1B[?25l"))};ee.toggle=(t,e)=>{t!==void 0&&($e=t),$e?ee.show(e):ee.hide(e)};var Rt=ee;var De=A(Nt(),1);var R=A(require("node:process"),1);function $t(){return R.default.platform!=="win32"?R.default.env.TERM!=="linux":!!R.default.env.CI||!!R.default.env.WT_SESSION||!!R.default.env.TERMINUS_SUBLIME||R.default.env.ConEmuTask==="{cmd::Cmder}"||R.default.env.TERM_PROGRAM==="Terminus-Sublime"||R.default.env.TERM_PROGRAM==="vscode"||R.default.env.TERM==="xterm-256color"||R.default.env.TERM==="alacritty"||R.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Ys={info:i.blue("\u2139"),success:i.green("\u2714"),warning:i.yellow("\u26A0"),error:i.red("\u2716")},Ks={info:i.blue("i"),success:i.green("\u221A"),warning:i.yellow("\u203C"),error:i.red("\xD7")},Qs=$t()?Ys:Ks,he=Qs;function jt({onlyFirst:t=!1}={}){let s="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(s,t?void 0:"g")}var Xs=jt();function pe(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Xs,"")}function uo(t){return t===161||t===164||t===167||t===168||t===170||t===173||t===174||t>=176&&t<=180||t>=182&&t<=186||t>=188&&t<=191||t===198||t===208||t===215||t===216||t>=222&&t<=225||t===230||t>=232&&t<=234||t===236||t===237||t===240||t===242||t===243||t>=247&&t<=250||t===252||t===254||t===257||t===273||t===275||t===283||t===294||t===295||t===299||t>=305&&t<=307||t===312||t>=319&&t<=322||t===324||t>=328&&t<=331||t===333||t===338||t===339||t===358||t===359||t===363||t===462||t===464||t===466||t===468||t===470||t===472||t===474||t===476||t===593||t===609||t===708||t===711||t>=713&&t<=715||t===717||t===720||t>=728&&t<=731||t===733||t===735||t>=768&&t<=879||t>=913&&t<=929||t>=931&&t<=937||t>=945&&t<=961||t>=963&&t<=969||t===1025||t>=1040&&t<=1103||t===1105||t===8208||t>=8211&&t<=8214||t===8216||t===8217||t===8220||t===8221||t>=8224&&t<=8226||t>=8228&&t<=8231||t===8240||t===8242||t===8243||t===8245||t===8251||t===8254||t===8308||t===8319||t>=8321&&t<=8324||t===8364||t===8451||t===8453||t===8457||t===8467||t===8470||t===8481||t===8482||t===8486||t===8491||t===8531||t===8532||t>=8539&&t<=8542||t>=8544&&t<=8555||t>=8560&&t<=8569||t===8585||t>=8592&&t<=8601||t===8632||t===8633||t===8658||t===8660||t===8679||t===8704||t===8706||t===8707||t===8711||t===8712||t===8715||t===8719||t===8721||t===8725||t===8730||t>=8733&&t<=8736||t===8739||t===8741||t>=8743&&t<=8748||t===8750||t>=8756&&t<=8759||t===8764||t===8765||t===8776||t===8780||t===8786||t===8800||t===8801||t>=8804&&t<=8807||t===8810||t===8811||t===8814||t===8815||t===8834||t===8835||t===8838||t===8839||t===8853||t===8857||t===8869||t===8895||t===8978||t>=9312&&t<=9449||t>=9451&&t<=9547||t>=9552&&t<=9587||t>=9600&&t<=9615||t>=9618&&t<=9621||t===9632||t===9633||t>=9635&&t<=9641||t===9650||t===9651||t===9654||t===9655||t===9660||t===9661||t===9664||t===9665||t>=9670&&t<=9672||t===9675||t>=9678&&t<=9681||t>=9698&&t<=9701||t===9711||t===9733||t===9734||t===9737||t===9742||t===9743||t===9756||t===9758||t===9792||t===9794||t===9824||t===9825||t>=9827&&t<=9829||t>=9831&&t<=9834||t===9836||t===9837||t===9839||t===9886||t===9887||t===9919||t>=9926&&t<=9933||t>=9935&&t<=9939||t>=9941&&t<=9953||t===9955||t===9960||t===9961||t>=9963&&t<=9969||t===9972||t>=9974&&t<=9977||t===9979||t===9980||t===9982||t===9983||t===10045||t>=10102&&t<=10111||t>=11094&&t<=11097||t>=12872&&t<=12879||t>=57344&&t<=63743||t>=65024&&t<=65039||t===65533||t>=127232&&t<=127242||t>=127248&&t<=127277||t>=127280&&t<=127337||t>=127344&&t<=127373||t===127375||t===127376||t>=127387&&t<=127404||t>=917760&&t<=917999||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function lo(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function co(t){return t>=4352&&t<=4447||t===8986||t===8987||t===9001||t===9002||t>=9193&&t<=9196||t===9200||t===9203||t===9725||t===9726||t===9748||t===9749||t>=9776&&t<=9783||t>=9800&&t<=9811||t===9855||t>=9866&&t<=9871||t===9875||t===9889||t===9898||t===9899||t===9917||t===9918||t===9924||t===9925||t===9934||t===9940||t===9962||t===9970||t===9971||t===9973||t===9978||t===9981||t===9989||t===9994||t===9995||t===10024||t===10060||t===10062||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t===11035||t===11036||t===11088||t===11093||t>=11904&&t<=11929||t>=11931&&t<=12019||t>=12032&&t<=12245||t>=12272&&t<=12287||t>=12289&&t<=12350||t>=12353&&t<=12438||t>=12441&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12773||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=42124||t>=42128&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65106||t>=65108&&t<=65126||t>=65128&&t<=65131||t>=94176&&t<=94180||t>=94192&&t<=94198||t>=94208&&t<=101589||t>=101631&&t<=101662||t>=101760&&t<=101874||t>=110576&&t<=110579||t>=110581&&t<=110587||t===110589||t===110590||t>=110592&&t<=110882||t===110898||t>=110928&&t<=110930||t===110933||t>=110948&&t<=110951||t>=110960&&t<=111355||t>=119552&&t<=119638||t>=119648&&t<=119670||t===126980||t===127183||t===127374||t>=127377&&t<=127386||t>=127488&&t<=127490||t>=127504&&t<=127547||t>=127552&&t<=127560||t===127568||t===127569||t>=127584&&t<=127589||t>=127744&&t<=127776||t>=127789&&t<=127797||t>=127799&&t<=127868||t>=127870&&t<=127891||t>=127904&&t<=127946||t>=127951&&t<=127955||t>=127968&&t<=127984||t===127988||t>=127992&&t<=128062||t===128064||t>=128066&&t<=128252||t>=128255&&t<=128317||t>=128331&&t<=128334||t>=128336&&t<=128359||t===128378||t===128405||t===128406||t===128420||t>=128507&&t<=128591||t>=128640&&t<=128709||t===128716||t>=128720&&t<=128722||t>=128725&&t<=128728||t>=128732&&t<=128735||t===128747||t===128748||t>=128756&&t<=128764||t>=128992&&t<=129003||t===129008||t>=129292&&t<=129338||t>=129340&&t<=129349||t>=129351&&t<=129535||t>=129648&&t<=129660||t>=129664&&t<=129674||t>=129678&&t<=129734||t===129736||t>=129741&&t<=129756||t>=129759&&t<=129770||t>=129775&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141}function Zs(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function fo(t,{ambiguousAsWide:e=!1}={}){return Zs(t),lo(t)||co(t)||e&&uo(t)?2:1}var mo=A(po(),1),er=new Intl.Segmenter,tr=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function Gt(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:o=!1}=e;if(o||(t=pe(t)),t.length===0)return 0;let s=0,r={ambiguousAsWide:!n};for(let{segment:a}of er.segment(t)){let u=a.codePointAt(0);if(!(u<=31||u>=127&&u<=159)&&!(u>=8203&&u<=8207||u===65279)&&!(u>=768&&u<=879||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071)&&!(u>=55296&&u<=57343)&&!(u>=65024&&u<=65039)&&!tr.test(a)){if((0,mo.default)().test(a)){s+=2;continue}s+=fo(u,r)}}return s}function Ut({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Mt=A(require("node:process"),1);function Ht(){let{env:t}=Mt.default,{TERM:e,TERM_PROGRAM:n}=t;return Mt.default.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||n==="Terminus-Sublime"||n==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var j=A(require("node:process"),1),nr=3,Vt=class{#i=0;start(){this.#i++,this.#i===1&&this.#n()}stop(){if(this.#i<=0)throw new Error("`stop` called more times than `start`");this.#i--,this.#i===0&&this.#e()}#n(){j.default.platform==="win32"||!j.default.stdin.isTTY||(j.default.stdin.setRawMode(!0),j.default.stdin.on("data",this.#s),j.default.stdin.resume())}#e(){j.default.stdin.isTTY&&(j.default.stdin.off("data",this.#s),j.default.stdin.pause(),j.default.stdin.setRawMode(!1))}#s(e){e[0]===nr&&j.default.emit("SIGINT")}},or=new Vt,qt=or;var sr=A(Nt(),1),Wt=class{#i=0;#n=!1;#e=0;#s=-1;#f=0;#t;#r;#o;#h;#m;#l;#c;#d;#D;#a;#u;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:me.default.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#m=this.#t.interval,this.#o=this.#t.stream,this.#l=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:Ut({stream:this.#o}),this.#c=typeof this.#t.isSilent=="boolean"?this.#t.isSilent:!1,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent,me.default.env.NODE_ENV==="test"&&(this._stream=this.#o,this._isEnabled=this.#l,Object.defineProperty(this,"_linesToClear",{get(){return this.#i},set(n){this.#i=n}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#s}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#d}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");this.#d=e,this.#p()}get interval(){return this.#m??this.#r.interval??100}get spinner(){return this.#r}set spinner(e){if(this.#s=-1,this.#m=void 0,typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#r=e}else if(!Ht())this.#r=De.default.line;else if(e===void 0)this.#r=De.default.dots;else if(e!=="default"&&De.default[e])this.#r=De.default[e];else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#D}set text(e=""){this.#D=e,this.#p()}get prefixText(){return this.#a}set prefixText(e=""){this.#a=e,this.#p()}get suffixText(){return this.#u}set suffixText(e=""){this.#u=e,this.#p()}get isSpinning(){return this.#h!==void 0}#g(e=this.#a,n=" "){return typeof e=="string"&&e!==""?e+n:typeof e=="function"?e()+n:""}#F(e=this.#u,n=" "){return typeof e=="string"&&e!==""?n+e:typeof e=="function"?n+e():""}#p(){let e=this.#o.columns??80,n=this.#g(this.#a,"-"),o=this.#F(this.#u,"-"),s=" ".repeat(this.#d)+n+"--"+this.#D+"--"+o;this.#e=0;for(let r of pe(s).split(`
32
- `))this.#e+=Math.max(1,Math.ceil(Gt(r,{countAnsiEscapeCodes:!0})/e))}get isEnabled(){return this.#l&&!this.#c}set isEnabled(e){if(typeof e!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#l=e}get isSilent(){return this.#c}set isSilent(e){if(typeof e!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#c=e}frame(){let e=Date.now();(this.#s===-1||e-this.#f>=this.interval)&&(this.#s=++this.#s%this.#r.frames.length,this.#f=e);let{frames:n}=this.#r,o=n[this.#s];this.color&&(o=i[this.color](o));let s=typeof this.#a=="string"&&this.#a!==""?this.#a+" ":"",r=typeof this.text=="string"?" "+this.text:"",a=typeof this.#u=="string"&&this.#u!==""?" "+this.#u:"";return s+o+r+a}clear(){if(!this.#l||!this.#o.isTTY)return this;this.#o.cursorTo(0);for(let e=0;e<this.#i;e++)e>0&&this.#o.moveCursor(0,-1),this.#o.clearLine(1);return(this.#d||this.lastIndent!==this.#d)&&this.#o.cursorTo(this.#d),this.lastIndent=this.#d,this.#i=0,this}render(){return this.#c?this:(this.clear(),this.#o.write(this.frame()),this.#i=this.#e,this)}start(e){return e&&(this.text=e),this.#c?this:this.#l?this.isSpinning?this:(this.#t.hideCursor&&Rt.hide(this.#o),this.#t.discardStdin&&me.default.stdin.isTTY&&(this.#n=!0,qt.start()),this.render(),this.#h=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#o.write(`- ${this.text}
33
- `),this)}stop(){return this.#l?(clearInterval(this.#h),this.#h=void 0,this.#s=0,this.clear(),this.#t.hideCursor&&Rt.show(this.#o),this.#t.discardStdin&&me.default.stdin.isTTY&&this.#n&&(qt.stop(),this.#n=!1),this):this}succeed(e){return this.stopAndPersist({symbol:he.success,text:e})}fail(e){return this.stopAndPersist({symbol:he.error,text:e})}warn(e){return this.stopAndPersist({symbol:he.warning,text:e})}info(e){return this.stopAndPersist({symbol:he.info,text:e})}stopAndPersist(e={}){if(this.#c)return this;let n=e.prefixText??this.#a,o=this.#g(n," "),s=e.symbol??" ",r=e.text??this.text,u=typeof r=="string"?(s?" ":"")+r:"",l=e.suffixText??this.#u,d=this.#F(l," "),c=o+s+u+d+`
34
- `;return this.stop(),this.#o.write(c),this}};function T(t){return new Wt(t)}var Co=require("http"),Ge=require("child_process");var G=class{config;constructor(e){this.config=e}async getCurrentUser(){return(await(await this.fetch("/auth/me")).json()).user}async listOrganizations(){return(await(await this.fetch("/organizations")).json()).organizations}async getOrganization(e){return(await(await this.fetch(`/organizations/${e}`)).json()).organization}async scanOrganization(e){return await(await this.fetch(`/scan/${e}`,{method:"POST"})).json()}async downloadConfigs(e,n){let o=new URLSearchParams;n&&o.set("platform",n);let s=`/organizations/${e}/configs${o.toString()?"?"+o.toString():""}`;return(await(await this.fetch(s)).json()).configs.map(u=>({fileName:u.fileName,content:u.content,platform:u.platform,type:u.category,repoName:u.repoName}))}async testConnection(){try{let n=await(await this.fetch("/health")).json();return n.status==="ok"&&n.service==="gal-api"}catch{return!1}}async getPolicy(e){try{return(await(await this.fetch(`/policies/${e}`)).json()).policy}catch{return null}}async getOrgPolicy(e){try{return(await(await this.fetch(`/organizations/${e}/policy`)).json()).policy}catch{return null}}async fleetRegister(e,n){return await(await this.fetch(`/organizations/${e}/fleet/register`,{method:"POST",body:JSON.stringify(n)})).json()}async fleetHeartbeat(e){return await(await this.fetch("/fleet/heartbeat",{method:"POST",body:JSON.stringify(e)})).json()}async fleetStatus(e){return await(await this.fetch(`/fleet/developers/${e}/status`)).json()}async fleetList(e,n="all"){let o=new URLSearchParams;n!=="all"&&o.set("status",n);let s=`/organizations/${e}/fleet${o.toString()?"?"+o.toString():""}`;return await(await this.fetch(s)).json()}async fleetReport(e){return await(await this.fetch(`/organizations/${e}/fleet/report`)).json()}async fleetUnenroll(e){await this.fetch(`/fleet/developers/${e}`,{method:"DELETE"})}async getApprovedConfig(e,n){try{return await(await this.fetch(`/organizations/${e}/approved-config?platform=${n}`)).json()}catch(o){if(o.message?.includes("404"))return{approved:!1};throw o}}async getHookSettings(e){try{return await(await this.fetch(`/organizations/${e}/hook-settings`)).json()}catch{return{globalIntervalMinutes:10,intervals:{}}}}async validateInvite(e){return await(await this.fetch(`/invites/${encodeURIComponent(e)}/validate`)).json()}async useInvite(e,n){return await(await this.fetch(`/invites/${encodeURIComponent(e)}/use`,{method:"POST",body:JSON.stringify(n)})).json()}async reportDeveloperStatus(e,n){return await(await this.fetch(`/organizations/${encodeURIComponent(e)}/developer-status`,{method:"POST",body:JSON.stringify(n)})).json()}async fetch(e,n={}){if(!this.config.apiUrl)throw new Error("API URL not configured. Run: gal config set apiUrl <url>");let o=`${this.config.apiUrl}${e}`,s={"Content-Type":"application/json",...n.headers};this.config.authToken?s.Authorization=`Bearer ${this.config.authToken}`:this.config.apiKey&&(s.Authorization=`Bearer ${this.config.apiKey}`);let r=await fetch(o,{...n,headers:s});if(!r.ok){let a=`API request failed: ${r.status} ${r.statusText}`;try{let u=await r.json();u&&u.error&&(a=u.error)}catch{}throw new Error(a)}return r}};var Jt=require("os"),w=require("fs"),V=require("path");var rr=process.env.GAL_API_URL||"http://localhost:3000";var ba=60*60*1e3;function Do(t,e){return`#!/usr/bin/env node
29
+ `,s)}while(o!==-1);return r+=t.slice(s),r}var{stdout:In,stderr:Bn}=On,ct=Symbol("GENERATOR"),K=Symbol("STYLER"),ae=Symbol("IS_EMPTY"),Rn=["ansi","ansi","ansi256","ansi16m"],Q=Object.create(null),Ss=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=In?In.level:0;t.level=e.level===void 0?n:e.level};var ks=t=>{let e=(...n)=>n.join(" ");return Ss(e,t),Object.setPrototypeOf(e,ue.prototype),e};function ue(t){return ks(t)}Object.setPrototypeOf(ue.prototype,Function.prototype);for(let[t,e]of Object.entries(P))Q[t]={get(){let n=we(this,ft(e.open,e.close,this[K]),this[ae]);return Object.defineProperty(this,t,{value:n}),n}};Q.visible={get(){let t=we(this,this[K],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var dt=(t,e,n,...o)=>t==="rgb"?e==="ansi16m"?P[n].ansi16m(...o):e==="ansi256"?P[n].ansi256(P.rgbToAnsi256(...o)):P[n].ansi(P.rgbToAnsi(...o)):t==="hex"?dt("rgb",e,n,...P.hexToRgb(...o)):P[n][t](...o),Os=["rgb","hex","ansi256"];for(let t of Os){Q[t]={get(){let{level:n}=this;return function(...o){let s=ft(dt(t,Rn[n],"color",...o),P.color.close,this[K]);return we(this,s,this[ae])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);Q[e]={get(){let{level:n}=this;return function(...o){let s=ft(dt(t,Rn[n],"bgColor",...o),P.bgColor.close,this[K]);return we(this,s,this[ae])}}}}var xs=Object.defineProperties(()=>{},{...Q,level:{enumerable:!0,get(){return this[ct].level},set(t){this[ct].level=t}}}),ft=(t,e,n)=>{let o,s;return n===void 0?(o=t,s=e):(o=n.openAll+t,s=e+n.closeAll),{open:t,close:e,openAll:o,closeAll:s,parent:n}},we=(t,e,n)=>{let o=(...s)=>Ts(o,s.length===1?""+s[0]:s.join(" "));return Object.setPrototypeOf(o,xs),o[ct]=t,o[K]=e,o[ae]=n,o},Ts=(t,e)=>{if(t.level<=0||!e)return t[ae]?"":e;let n=t[K];if(n===void 0)return e;let{openAll:o,closeAll:s}=n;if(e.includes("\x1B"))for(;n!==void 0;)e=xn(e,n.close,n.open),n=n.parent;let r=e.indexOf(`
30
+ `);return r!==-1&&(e=Tn(e,s,o,r)),o+e+s};Object.defineProperties(ue.prototype,Q);var Is=ue(),yi=ue({level:Bn?Bn.level:0});var i=Is;var zn=require("crypto"),Yn=b(require("os"),1);var N=require("fs"),Pn=require("os"),X=require("path"),Nn=require("url"),Rs={},ht=(0,X.join)((0,Pn.homedir)(),".gal"),Se=(0,X.join)(ht,"config.json"),Bs={development:"http://localhost:3000",staging:"https://gal-api-wug5dzqj2a-uc.a.run.app",production:"https://api.gal.run"};function Ln(){let t=process.env.GAL_ENV?.toLowerCase();if(t==="development"||t==="dev"||t==="local")return"development";if(t==="staging"||t==="stg"||t==="beta")return"staging";if(t==="production"||t==="prod")return"production";if(process.argv[1]?.includes("tsx")||process.argv[1]?.includes("ts-node")||process.argv[1]?.endsWith(".ts")||process.env.npm_lifecycle_event==="dev"||process.env.NODE_ENV==="development")return"development";try{let n="0.1.13-alpha.pr472";if(n&&(n.includes("-beta")||n.includes("-rc")||n.includes("-alpha")))return"staging";if(!n||n==="0.0.0-dev"){let o=(0,Nn.fileURLToPath)(Rs.url),s=(0,X.dirname)(o),r=(0,X.join)(s,"..","package.json");if((0,N.existsSync)(r)){let u=JSON.parse((0,N.readFileSync)(r,"utf-8")).version||"";if(u.includes("-beta")||u.includes("-rc")||u.includes("-alpha"))return"staging"}}}catch{}return"production"}var y=class{static getEnvironment(){return Ln()}static load(){let e=Ln(),n=Bs[e];if(!(0,N.existsSync)(Se))return{apiUrl:n};try{let o=(0,N.readFileSync)(Se,"utf-8"),s=JSON.parse(o);return s.apiUrl||(s.apiUrl=n),e!=="development"&&s.apiUrl.includes("localhost")&&(s.apiUrl=n),s}catch(o){return console.error("Error loading config:",o),{apiUrl:n}}}static save(e){(0,N.existsSync)(ht)||(0,N.mkdirSync)(ht,{recursive:!0}),(0,N.writeFileSync)(Se,JSON.stringify(e,null,2),"utf-8")}static set(e,n){let o=this.load();o[e]=n,this.save(o)}static get(e){return this.load()[e]}static getConfigPath(){return Se}};var G=require("fs"),pt=require("path"),$n=require("os"),jn=require("crypto"),mt=(0,pt.join)((0,$n.homedir)(),".gal"),ke=(0,pt.join)(mt,"installation-id");function Gn(){try{if((0,G.existsSync)(ke)){let e=(0,G.readFileSync)(ke,"utf-8").trim();if(e&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(e))return e}}catch{}let t=(0,jn.randomUUID)();try{(0,G.existsSync)(mt)||(0,G.mkdirSync)(mt,{recursive:!0}),(0,G.writeFileSync)(ke,t,"utf-8")}catch{}return t}function Un(){return!(0,G.existsSync)(ke)}var O=require("fs"),Te=require("path"),Hn=require("os"),Oe=(0,Te.join)((0,Hn.homedir)(),".gal"),le=(0,Te.join)(Oe,"telemetry-queue.json"),Dt=(0,Te.join)(Oe,"telemetry-pending-events.json"),Mn=100,Ls=7,Ps=Ls*24*60*60*1e3,xe=class{queue=[];flushCallback=null;constructor(){this.loadOfflineQueue(),this.loadPendingEvents()}setFlushCallback(e){this.flushCallback=e}async addEvent(e){let n={event:e,queuedAt:Date.now()};this.queue.push(n),this.queue.length>=Mn&&await this.flush()}async flush(){if(this.queue.length===0)return;if(!this.flushCallback){this.saveOfflineQueue();return}if(this.pruneExpiredEvents(),this.queue.length===0)return;let e=this.queue.slice(0,Mn),n=e.map(o=>o.event);try{await this.flushCallback(n)?(this.queue=this.queue.slice(e.length),this.queue.length>0?this.saveOfflineQueue():this.clearOfflineQueue()):this.saveOfflineQueue()}catch{this.saveOfflineQueue()}}getQueueLength(){return this.queue.length}loadOfflineQueue(){try{if((0,O.existsSync)(le)){let e=(0,O.readFileSync)(le,"utf-8"),n=JSON.parse(e);Array.isArray(n)&&(this.queue=n.map(o=>"event"in o&&"queuedAt"in o?o:{event:this.upgradeOldEvent(o),queuedAt:o.queuedAt||Date.now()}),this.pruneExpiredEvents())}}catch{}}upgradeOldEvent(e){let n=e.payload||{};return{id:e.id||"",timestamp:e.timestamp||new Date().toISOString(),severity:n.success===!1?"ERROR":"INFO",resource:{"service.name":"gal-cli","service.version":n.cliVersion||"unknown","host.os":n.platform||"linux","host.arch":"x64","process.runtime.version":n.nodeVersion},eventType:e.eventType||"cli_command",attributes:{command:n.command??null,success:n.success??null,error_type:n.errorType??null,duration_ms:n.durationMs??null,notification_type:n.notificationType??null,rate_limit_hit:n.rateLimitHit??null,sync_age_hours:n.syncAgeHours??null,files_synced:n.filesTracked??null},installationId:e.installationId||""}}loadPendingEvents(){try{if((0,O.existsSync)(Dt)){let e=(0,O.readFileSync)(Dt,"utf-8"),n=JSON.parse(e);if(Array.isArray(n))for(let o of n){let s,r;"event"in o?(s=o.event,r=o.queuedAt||Date.now()):(s=this.upgradeOldEvent(o),r=o.queuedAt||Date.now()),this.queue.push({event:s,queuedAt:r})}(0,O.writeFileSync)(Dt,"[]","utf-8")}}catch{}}saveOfflineQueue(){try{(0,O.existsSync)(Oe)||(0,O.mkdirSync)(Oe,{recursive:!0}),(0,O.writeFileSync)(le,JSON.stringify(this.queue),"utf-8")}catch{}}clearOfflineQueue(){try{(0,O.existsSync)(le)&&(0,O.writeFileSync)(le,"[]","utf-8")}catch{}}pruneExpiredEvents(){let e=Date.now();this.queue=this.queue.filter(n=>e-n.queuedAt<Ps)}};var Ns="v2",Ie=class{baseUrl;constructor(e){this.baseUrl=e}async sendEvents(e){if(e.length===0)return!0;try{let n=new AbortController,o=setTimeout(()=>n.abort(),5e3),s=await fetch(`${this.baseUrl}/telemetry/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({events:e,schemaVersion:Ns}),signal:n.signal});return clearTimeout(o),s.ok?(await s.json()).accepted===!0:s.status===202}catch{return!1}}async sendFeedback(e,n){try{let o=new AbortController,s=setTimeout(()=>o.abort(),5e3),r={"Content-Type":"application/json"};n&&(r.Authorization=`Bearer ${n}`);let a=await fetch(`${this.baseUrl}/telemetry/feedback`,{method:"POST",headers:r,body:JSON.stringify(e),signal:o.signal});return clearTimeout(s),a.ok?(await a.json()).accepted===!0:a.status===202}catch{return!1}}setBaseUrl(e){this.baseUrl=e}};var gt=b(require("readline"),1);var Vn=0;function Ft(){Vn++}async function ce(t,e){if(!Et()||!process.stdin.isTTY||!process.stdout.isTTY||!qn("error"))return;let n=gt.createInterface({input:process.stdin,output:process.stdout}),o=s=>new Promise(r=>{n.question(s,r)});try{console.log(),console.log(i.yellow("\u2501".repeat(50))),console.log(i.yellow(" Help us improve GAL CLI")),console.log(i.yellow("\u2501".repeat(50))),console.log();let s=await o(i.dim("Would you like to report this error? (y/N): "));if(s.toLowerCase()!=="y"&&s.toLowerCase()!=="yes"){n.close();return}let r=await o(i.dim("Any additional context? (press Enter to skip): "));n.close(),await Ct(1,r||`Error in ${t}: ${e.message}`,{command:t,errorType:e.name,errorMessage:e.message.substring(0,200)})&&console.log(i.green("\u2713 Thanks for your feedback!")),Wn("error")}catch{n.close()}}async function yt(){if(!Et()||!process.stdin.isTTY||!process.stdout.isTTY||Vn<10||!qn("session"))return;let t=gt.createInterface({input:process.stdin,output:process.stdout}),e=n=>new Promise(o=>{t.question(n,o)});try{console.log(),console.log(i.blue("\u2501".repeat(50))),console.log(i.blue(" Quick feedback (1 question)")),console.log(i.blue("\u2501".repeat(50))),console.log();let n=await e(i.dim("How would you rate GAL CLI? (1-5, or press Enter to skip): "));if(!n){t.close();return}let o=parseInt(n,10);if(isNaN(o)||o<1||o>5){console.log(i.dim("Invalid rating, skipping...")),t.close();return}let s;o<=3&&(s=await e(i.dim("What could we improve? (press Enter to skip): "))),t.close(),await Ct(o,s||void 0,{command:"session_feedback"})&&console.log(i.green("\u2713 Thanks for your feedback!")),Wn("session")}catch{t.close()}}function qn(t){try{let e=y.load(),n=Date.now(),o=24*60*60*1e3,s=7*o;if(t==="error"){let r=e.lastErrorFeedback||0;return n-r>o}else{let r=e.lastSessionFeedback||0;return n-r>s}}catch{return!0}}function Wn(t){try{let e=t==="error"?"lastErrorFeedback":"lastSessionFeedback";y.set(e,Date.now())}catch{}}var Kn="0.1.13-alpha.pr472",q=null,Jn=!1;function vt(){let t=process.env.GAL_TELEMETRY?.toLowerCase();if(t==="false"||t==="0"||t==="no"||t==="off")return!0;try{if(y.load().telemetry===!1)return!0}catch{}return!1}function $s(){return{"service.name":"gal-cli","service.version":Kn,"host.os":process.platform,"host.arch":Yn.default.arch(),"process.runtime.version":process.version}}var _t=class{queue;client;installationId;resource;exitHandlersRegistered=!1;constructor(e){this.installationId=Gn(),this.resource=$s(),this.queue=new xe,this.client=new Ie(e),this.queue.setFlushCallback(n=>this.client.sendEvents(n)),this.registerExitHandlers()}async trackEvent(e,n,o="INFO"){let s={id:(0,zn.randomUUID)(),timestamp:new Date().toISOString(),severity:o,resource:this.resource,eventType:e,attributes:n,installationId:this.installationId};await this.queue.addEvent(s)}async flush(){await this.queue.flush()}async sendFeedback(e,n,o){let s={installationId:this.installationId,rating:e,comment:n,context:{...o,cliVersion:Kn,platform:process.platform}},r=y.load();return this.client.sendFeedback(s,r.authToken)}registerExitHandlers(){if(this.exitHandlersRegistered)return;let e=async()=>{await this.flush()};process.on("beforeExit",e),process.on("SIGINT",async()=>{await e(),process.exit(130)}),process.on("SIGTERM",async()=>{await e(),process.exit(143)}),this.exitHandlersRegistered=!0}};function Qn(){if(Jn||(Jn=!0,vt()))return;let e=y.load().apiUrl||"https://api.gal.run";q=new _t(e)}function Xn(){if(!(vt()||y.load().telemetryNoticeShown)){if(!Un()){y.set("telemetryNoticeShown","true");return}console.log(i.blue("\u2501".repeat(60))),console.log(i.blue.bold(" GAL CLI Telemetry")),console.log(i.blue("\u2501".repeat(60))),console.log(),console.log(" GAL collects anonymous usage data to improve the CLI."),console.log(" This helps us diagnose issues and understand which"),console.log(" features are most valuable to developers."),console.log(),console.log(i.dim(" No personal information or code is collected.")),console.log(),console.log(" To opt out:"),console.log(i.cyan(" gal config set telemetry false")),console.log(" Or set environment variable:"),console.log(i.cyan(" export GAL_TELEMETRY=false")),console.log(),console.log(i.blue("\u2501".repeat(60))),console.log(),y.set("telemetryNoticeShown","true")}}function At(t,e){q&&q.trackEvent("auth_login",{success:t,error_type:e?e.name:null,auth_method:"github_oauth"},t?"INFO":"ERROR")}function bt(t,e,n,o){q&&q.trackEvent("sync_pull",{files_synced:t,success:e,sync_age_hours:n??null,config_version:o??null},e?"INFO":"ERROR")}async function Ct(t,e,n){return q?q.sendFeedback(t,e,n):!1}function Et(){return!vt()&&q!==null}var me=b(require("node:process"),1);var Bt=b(require("node:process"),1);var de=b(require("node:process"),1);var js=(t,e,n,o)=>{if(n==="length"||n==="prototype"||n==="arguments"||n==="caller")return;let s=Object.getOwnPropertyDescriptor(t,n),r=Object.getOwnPropertyDescriptor(e,n);!Gs(s,r)&&o||Object.defineProperty(t,n,r)},Gs=function(t,e){return t===void 0||t.configurable||t.writable===e.writable&&t.enumerable===e.enumerable&&t.configurable===e.configurable&&(t.writable||t.value===e.value)},Us=(t,e)=>{let n=Object.getPrototypeOf(e);n!==Object.getPrototypeOf(t)&&Object.setPrototypeOf(t,n)},Ms=(t,e)=>`/* Wrapped ${t}*/
31
+ ${e}`,Hs=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),Vs=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),qs=(t,e,n)=>{let o=n===""?"":`with ${n.trim()}() `,s=Ms.bind(null,o,e.toString());Object.defineProperty(s,"name",Vs);let{writable:r,enumerable:a,configurable:u}=Hs;Object.defineProperty(t,"toString",{value:s,writable:r,enumerable:a,configurable:u})};function wt(t,e,{ignoreNonConfigurable:n=!1}={}){let{name:o}=t;for(let s of Reflect.ownKeys(e))js(t,e,s,n);return Us(t,e),qs(t,e,o),t}var Be=new WeakMap,Zn=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let n,o=0,s=t.displayName||t.name||"<anonymous>",r=function(...a){if(Be.set(r,++o),o===1)n=t.apply(this,a),t=void 0;else if(e.throw===!0)throw new Error(`Function \`${s}\` can only be called once`);return n};return wt(r,t),Be.set(r,o),r};Zn.callCount=t=>{if(!Be.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return Be.get(t)};var eo=Zn;var W=[];W.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&W.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&W.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Re=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",St=Symbol.for("signal-exit emitter"),kt=globalThis,Ws=Object.defineProperty.bind(Object),Ot=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(kt[St])return kt[St];Ws(kt,St,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,n){this.listeners[e].push(n)}removeListener(e,n){let o=this.listeners[e],s=o.indexOf(n);s!==-1&&(s===0&&o.length===1?o.length=0:o.splice(s,1))}emit(e,n,o){if(this.emitted[e])return!1;this.emitted[e]=!0;let s=!1;for(let r of this.listeners[e])s=r(n,o)===!0||s;return e==="exit"&&(s=this.emit("afterExit",n,o)||s),s}},Le=class{},Js=t=>({onExit(e,n){return t.onExit(e,n)},load(){return t.load()},unload(){return t.unload()}}),xt=class extends Le{onExit(){return()=>{}}load(){}unload(){}},Tt=class extends Le{#i=It.platform==="win32"?"SIGINT":"SIGHUP";#n=new Ot;#e;#s;#f;#t={};#r=!1;constructor(e){super(),this.#e=e,this.#t={};for(let n of W)this.#t[n]=()=>{let o=this.#e.listeners(n),{count:s}=this.#n,r=e;if(typeof r.__signal_exit_emitter__=="object"&&typeof r.__signal_exit_emitter__.count=="number"&&(s+=r.__signal_exit_emitter__.count),o.length===s){this.unload();let a=this.#n.emit("exit",null,n),u=n==="SIGHUP"?this.#i:n;a||e.kill(e.pid,u)}};this.#f=e.reallyExit,this.#s=e.emit}onExit(e,n){if(!Re(this.#e))return()=>{};this.#r===!1&&this.load();let o=n?.alwaysLast?"afterExit":"exit";return this.#n.on(o,e),()=>{this.#n.removeListener(o,e),this.#n.listeners.exit.length===0&&this.#n.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#r){this.#r=!0,this.#n.count+=1;for(let e of W)try{let n=this.#t[e];n&&this.#e.on(e,n)}catch{}this.#e.emit=(e,...n)=>this.#h(e,...n),this.#e.reallyExit=e=>this.#o(e)}}unload(){this.#r&&(this.#r=!1,W.forEach(e=>{let n=this.#t[e];if(!n)throw new Error("Listener not defined for signal: "+e);try{this.#e.removeListener(e,n)}catch{}}),this.#e.emit=this.#s,this.#e.reallyExit=this.#f,this.#n.count-=1)}#o(e){return Re(this.#e)?(this.#e.exitCode=e||0,this.#n.emit("exit",this.#e.exitCode,null),this.#f.call(this.#e,this.#e.exitCode)):0}#h(e,...n){let o=this.#s;if(e==="exit"&&Re(this.#e)){typeof n[0]=="number"&&(this.#e.exitCode=n[0]);let s=o.call(this.#e,e,...n);return this.#n.emit("exit",this.#e.exitCode,null),s}else return o.call(this.#e,e,...n)}},It=globalThis.process,{onExit:to,load:Mi,unload:Hi}=Js(Re(It)?new Tt(It):new xt);var no=de.default.stderr.isTTY?de.default.stderr:de.default.stdout.isTTY?de.default.stdout:void 0,zs=no?eo(()=>{to(()=>{no.write("\x1B[?25h")},{alwaysLast:!0})}):()=>{},oo=zs;var Pe=!1,Z={};Z.show=(t=Bt.default.stderr)=>{t.isTTY&&(Pe=!1,t.write("\x1B[?25h"))};Z.hide=(t=Bt.default.stderr)=>{t.isTTY&&(oo(),Pe=!0,t.write("\x1B[?25l"))};Z.toggle=(t,e)=>{t!==void 0&&(Pe=t),Pe?Z.show(e):Z.hide(e)};var Rt=Z;var pe=b(Lt(),1);var L=b(require("node:process"),1);function Pt(){return L.default.platform!=="win32"?L.default.env.TERM!=="linux":!!L.default.env.CI||!!L.default.env.WT_SESSION||!!L.default.env.TERMINUS_SUBLIME||L.default.env.ConEmuTask==="{cmd::Cmder}"||L.default.env.TERM_PROGRAM==="Terminus-Sublime"||L.default.env.TERM_PROGRAM==="vscode"||L.default.env.TERM==="xterm-256color"||L.default.env.TERM==="alacritty"||L.default.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Ks={info:i.blue("\u2139"),success:i.green("\u2714"),warning:i.yellow("\u26A0"),error:i.red("\u2716")},Qs={info:i.blue("i"),success:i.green("\u221A"),warning:i.yellow("\u203C"),error:i.red("\xD7")},Xs=Pt()?Ks:Qs,fe=Xs;function Nt({onlyFirst:t=!1}={}){let s="(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]";return new RegExp(s,t?void 0:"g")}var Zs=Nt();function he(t){if(typeof t!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(Zs,"")}function ao(t){return t===161||t===164||t===167||t===168||t===170||t===173||t===174||t>=176&&t<=180||t>=182&&t<=186||t>=188&&t<=191||t===198||t===208||t===215||t===216||t>=222&&t<=225||t===230||t>=232&&t<=234||t===236||t===237||t===240||t===242||t===243||t>=247&&t<=250||t===252||t===254||t===257||t===273||t===275||t===283||t===294||t===295||t===299||t>=305&&t<=307||t===312||t>=319&&t<=322||t===324||t>=328&&t<=331||t===333||t===338||t===339||t===358||t===359||t===363||t===462||t===464||t===466||t===468||t===470||t===472||t===474||t===476||t===593||t===609||t===708||t===711||t>=713&&t<=715||t===717||t===720||t>=728&&t<=731||t===733||t===735||t>=768&&t<=879||t>=913&&t<=929||t>=931&&t<=937||t>=945&&t<=961||t>=963&&t<=969||t===1025||t>=1040&&t<=1103||t===1105||t===8208||t>=8211&&t<=8214||t===8216||t===8217||t===8220||t===8221||t>=8224&&t<=8226||t>=8228&&t<=8231||t===8240||t===8242||t===8243||t===8245||t===8251||t===8254||t===8308||t===8319||t>=8321&&t<=8324||t===8364||t===8451||t===8453||t===8457||t===8467||t===8470||t===8481||t===8482||t===8486||t===8491||t===8531||t===8532||t>=8539&&t<=8542||t>=8544&&t<=8555||t>=8560&&t<=8569||t===8585||t>=8592&&t<=8601||t===8632||t===8633||t===8658||t===8660||t===8679||t===8704||t===8706||t===8707||t===8711||t===8712||t===8715||t===8719||t===8721||t===8725||t===8730||t>=8733&&t<=8736||t===8739||t===8741||t>=8743&&t<=8748||t===8750||t>=8756&&t<=8759||t===8764||t===8765||t===8776||t===8780||t===8786||t===8800||t===8801||t>=8804&&t<=8807||t===8810||t===8811||t===8814||t===8815||t===8834||t===8835||t===8838||t===8839||t===8853||t===8857||t===8869||t===8895||t===8978||t>=9312&&t<=9449||t>=9451&&t<=9547||t>=9552&&t<=9587||t>=9600&&t<=9615||t>=9618&&t<=9621||t===9632||t===9633||t>=9635&&t<=9641||t===9650||t===9651||t===9654||t===9655||t===9660||t===9661||t===9664||t===9665||t>=9670&&t<=9672||t===9675||t>=9678&&t<=9681||t>=9698&&t<=9701||t===9711||t===9733||t===9734||t===9737||t===9742||t===9743||t===9756||t===9758||t===9792||t===9794||t===9824||t===9825||t>=9827&&t<=9829||t>=9831&&t<=9834||t===9836||t===9837||t===9839||t===9886||t===9887||t===9919||t>=9926&&t<=9933||t>=9935&&t<=9939||t>=9941&&t<=9953||t===9955||t===9960||t===9961||t>=9963&&t<=9969||t===9972||t>=9974&&t<=9977||t===9979||t===9980||t===9982||t===9983||t===10045||t>=10102&&t<=10111||t>=11094&&t<=11097||t>=12872&&t<=12879||t>=57344&&t<=63743||t>=65024&&t<=65039||t===65533||t>=127232&&t<=127242||t>=127248&&t<=127277||t>=127280&&t<=127337||t>=127344&&t<=127373||t===127375||t===127376||t>=127387&&t<=127404||t>=917760&&t<=917999||t>=983040&&t<=1048573||t>=1048576&&t<=1114109}function uo(t){return t===12288||t>=65281&&t<=65376||t>=65504&&t<=65510}function lo(t){return t>=4352&&t<=4447||t===8986||t===8987||t===9001||t===9002||t>=9193&&t<=9196||t===9200||t===9203||t===9725||t===9726||t===9748||t===9749||t>=9776&&t<=9783||t>=9800&&t<=9811||t===9855||t>=9866&&t<=9871||t===9875||t===9889||t===9898||t===9899||t===9917||t===9918||t===9924||t===9925||t===9934||t===9940||t===9962||t===9970||t===9971||t===9973||t===9978||t===9981||t===9989||t===9994||t===9995||t===10024||t===10060||t===10062||t>=10067&&t<=10069||t===10071||t>=10133&&t<=10135||t===10160||t===10175||t===11035||t===11036||t===11088||t===11093||t>=11904&&t<=11929||t>=11931&&t<=12019||t>=12032&&t<=12245||t>=12272&&t<=12287||t>=12289&&t<=12350||t>=12353&&t<=12438||t>=12441&&t<=12543||t>=12549&&t<=12591||t>=12593&&t<=12686||t>=12688&&t<=12773||t>=12783&&t<=12830||t>=12832&&t<=12871||t>=12880&&t<=42124||t>=42128&&t<=42182||t>=43360&&t<=43388||t>=44032&&t<=55203||t>=63744&&t<=64255||t>=65040&&t<=65049||t>=65072&&t<=65106||t>=65108&&t<=65126||t>=65128&&t<=65131||t>=94176&&t<=94180||t>=94192&&t<=94198||t>=94208&&t<=101589||t>=101631&&t<=101662||t>=101760&&t<=101874||t>=110576&&t<=110579||t>=110581&&t<=110587||t===110589||t===110590||t>=110592&&t<=110882||t===110898||t>=110928&&t<=110930||t===110933||t>=110948&&t<=110951||t>=110960&&t<=111355||t>=119552&&t<=119638||t>=119648&&t<=119670||t===126980||t===127183||t===127374||t>=127377&&t<=127386||t>=127488&&t<=127490||t>=127504&&t<=127547||t>=127552&&t<=127560||t===127568||t===127569||t>=127584&&t<=127589||t>=127744&&t<=127776||t>=127789&&t<=127797||t>=127799&&t<=127868||t>=127870&&t<=127891||t>=127904&&t<=127946||t>=127951&&t<=127955||t>=127968&&t<=127984||t===127988||t>=127992&&t<=128062||t===128064||t>=128066&&t<=128252||t>=128255&&t<=128317||t>=128331&&t<=128334||t>=128336&&t<=128359||t===128378||t===128405||t===128406||t===128420||t>=128507&&t<=128591||t>=128640&&t<=128709||t===128716||t>=128720&&t<=128722||t>=128725&&t<=128728||t>=128732&&t<=128735||t===128747||t===128748||t>=128756&&t<=128764||t>=128992&&t<=129003||t===129008||t>=129292&&t<=129338||t>=129340&&t<=129349||t>=129351&&t<=129535||t>=129648&&t<=129660||t>=129664&&t<=129674||t>=129678&&t<=129734||t===129736||t>=129741&&t<=129756||t>=129759&&t<=129770||t>=129775&&t<=129784||t>=131072&&t<=196605||t>=196608&&t<=262141}function er(t){if(!Number.isSafeInteger(t))throw new TypeError(`Expected a code point, got \`${typeof t}\`.`)}function co(t,{ambiguousAsWide:e=!1}={}){return er(t),uo(t)||lo(t)||e&&ao(t)?2:1}var mo=b(ho(),1),tr=new Intl.Segmenter,nr=new RegExp("^\\p{Default_Ignorable_Code_Point}$","u");function $t(t,e={}){if(typeof t!="string"||t.length===0)return 0;let{ambiguousIsNarrow:n=!0,countAnsiEscapeCodes:o=!1}=e;if(o||(t=he(t)),t.length===0)return 0;let s=0,r={ambiguousAsWide:!n};for(let{segment:a}of tr.segment(t)){let u=a.codePointAt(0);if(!(u<=31||u>=127&&u<=159)&&!(u>=8203&&u<=8207||u===65279)&&!(u>=768&&u<=879||u>=6832&&u<=6911||u>=7616&&u<=7679||u>=8400&&u<=8447||u>=65056&&u<=65071)&&!(u>=55296&&u<=57343)&&!(u>=65024&&u<=65039)&&!nr.test(a)){if((0,mo.default)().test(a)){s+=2;continue}s+=co(u,r)}}return s}function jt({stream:t=process.stdout}={}){return!!(t&&t.isTTY&&process.env.TERM!=="dumb"&&!("CI"in process.env))}var Gt=b(require("node:process"),1);function Ut(){let{env:t}=Gt.default,{TERM:e,TERM_PROGRAM:n}=t;return Gt.default.platform!=="win32"?e!=="linux":!!t.WT_SESSION||!!t.TERMINUS_SUBLIME||t.ConEmuTask==="{cmd::Cmder}"||n==="Terminus-Sublime"||n==="vscode"||e==="xterm-256color"||e==="alacritty"||e==="rxvt-unicode"||e==="rxvt-unicode-256color"||t.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var $=b(require("node:process"),1),or=3,Mt=class{#i=0;start(){this.#i++,this.#i===1&&this.#n()}stop(){if(this.#i<=0)throw new Error("`stop` called more times than `start`");this.#i--,this.#i===0&&this.#e()}#n(){$.default.platform==="win32"||!$.default.stdin.isTTY||($.default.stdin.setRawMode(!0),$.default.stdin.on("data",this.#s),$.default.stdin.resume())}#e(){$.default.stdin.isTTY&&($.default.stdin.off("data",this.#s),$.default.stdin.pause(),$.default.stdin.setRawMode(!1))}#s(e){e[0]===or&&$.default.emit("SIGINT")}},sr=new Mt,Ht=sr;var rr=b(Lt(),1),Vt=class{#i=0;#n=!1;#e=0;#s=-1;#f=0;#t;#r;#o;#h;#p;#l;#c;#d;#D;#a;#u;color;constructor(e){typeof e=="string"&&(e={text:e}),this.#t={color:"cyan",stream:me.default.stderr,discardStdin:!0,hideCursor:!0,...e},this.color=this.#t.color,this.spinner=this.#t.spinner,this.#p=this.#t.interval,this.#o=this.#t.stream,this.#l=typeof this.#t.isEnabled=="boolean"?this.#t.isEnabled:jt({stream:this.#o}),this.#c=typeof this.#t.isSilent=="boolean"?this.#t.isSilent:!1,this.text=this.#t.text,this.prefixText=this.#t.prefixText,this.suffixText=this.#t.suffixText,this.indent=this.#t.indent,me.default.env.NODE_ENV==="test"&&(this._stream=this.#o,this._isEnabled=this.#l,Object.defineProperty(this,"_linesToClear",{get(){return this.#i},set(n){this.#i=n}}),Object.defineProperty(this,"_frameIndex",{get(){return this.#s}}),Object.defineProperty(this,"_lineCount",{get(){return this.#e}}))}get indent(){return this.#d}set indent(e=0){if(!(e>=0&&Number.isInteger(e)))throw new Error("The `indent` option must be an integer from 0 and up");this.#d=e,this.#m()}get interval(){return this.#p??this.#r.interval??100}get spinner(){return this.#r}set spinner(e){if(this.#s=-1,this.#p=void 0,typeof e=="object"){if(e.frames===void 0)throw new Error("The given spinner must have a `frames` property");this.#r=e}else if(!Ut())this.#r=pe.default.line;else if(e===void 0)this.#r=pe.default.dots;else if(e!=="default"&&pe.default[e])this.#r=pe.default[e];else throw new Error(`There is no built-in spinner named '${e}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`)}get text(){return this.#D}set text(e=""){this.#D=e,this.#m()}get prefixText(){return this.#a}set prefixText(e=""){this.#a=e,this.#m()}get suffixText(){return this.#u}set suffixText(e=""){this.#u=e,this.#m()}get isSpinning(){return this.#h!==void 0}#g(e=this.#a,n=" "){return typeof e=="string"&&e!==""?e+n:typeof e=="function"?e()+n:""}#F(e=this.#u,n=" "){return typeof e=="string"&&e!==""?n+e:typeof e=="function"?n+e():""}#m(){let e=this.#o.columns??80,n=this.#g(this.#a,"-"),o=this.#F(this.#u,"-"),s=" ".repeat(this.#d)+n+"--"+this.#D+"--"+o;this.#e=0;for(let r of he(s).split(`
32
+ `))this.#e+=Math.max(1,Math.ceil($t(r,{countAnsiEscapeCodes:!0})/e))}get isEnabled(){return this.#l&&!this.#c}set isEnabled(e){if(typeof e!="boolean")throw new TypeError("The `isEnabled` option must be a boolean");this.#l=e}get isSilent(){return this.#c}set isSilent(e){if(typeof e!="boolean")throw new TypeError("The `isSilent` option must be a boolean");this.#c=e}frame(){let e=Date.now();(this.#s===-1||e-this.#f>=this.interval)&&(this.#s=++this.#s%this.#r.frames.length,this.#f=e);let{frames:n}=this.#r,o=n[this.#s];this.color&&(o=i[this.color](o));let s=typeof this.#a=="string"&&this.#a!==""?this.#a+" ":"",r=typeof this.text=="string"?" "+this.text:"",a=typeof this.#u=="string"&&this.#u!==""?" "+this.#u:"";return s+o+r+a}clear(){if(!this.#l||!this.#o.isTTY)return this;this.#o.cursorTo(0);for(let e=0;e<this.#i;e++)e>0&&this.#o.moveCursor(0,-1),this.#o.clearLine(1);return(this.#d||this.lastIndent!==this.#d)&&this.#o.cursorTo(this.#d),this.lastIndent=this.#d,this.#i=0,this}render(){return this.#c?this:(this.clear(),this.#o.write(this.frame()),this.#i=this.#e,this)}start(e){return e&&(this.text=e),this.#c?this:this.#l?this.isSpinning?this:(this.#t.hideCursor&&Rt.hide(this.#o),this.#t.discardStdin&&me.default.stdin.isTTY&&(this.#n=!0,Ht.start()),this.render(),this.#h=setInterval(this.render.bind(this),this.interval),this):(this.text&&this.#o.write(`- ${this.text}
33
+ `),this)}stop(){return this.#l?(clearInterval(this.#h),this.#h=void 0,this.#s=0,this.clear(),this.#t.hideCursor&&Rt.show(this.#o),this.#t.discardStdin&&me.default.stdin.isTTY&&this.#n&&(Ht.stop(),this.#n=!1),this):this}succeed(e){return this.stopAndPersist({symbol:fe.success,text:e})}fail(e){return this.stopAndPersist({symbol:fe.error,text:e})}warn(e){return this.stopAndPersist({symbol:fe.warning,text:e})}info(e){return this.stopAndPersist({symbol:fe.info,text:e})}stopAndPersist(e={}){if(this.#c)return this;let n=e.prefixText??this.#a,o=this.#g(n," "),s=e.symbol??" ",r=e.text??this.text,u=typeof r=="string"?(s?" ":"")+r:"",l=e.suffixText??this.#u,d=this.#F(l," "),c=o+s+u+d+`
34
+ `;return this.stop(),this.#o.write(c),this}};function T(t){return new Vt(t)}var Fo=require("http"),$e=require("child_process");var j=class{config;constructor(e){this.config=e}async getCurrentUser(){return(await(await this.fetch("/auth/me")).json()).user}async listOrganizations(){return(await(await this.fetch("/organizations")).json()).organizations}async getOrganization(e){return(await(await this.fetch(`/organizations/${e}`)).json()).organization}async scanOrganization(e){return await(await this.fetch(`/scan/${e}`,{method:"POST"})).json()}async downloadConfigs(e,n){let o=new URLSearchParams;n&&o.set("platform",n);let s=`/organizations/${e}/configs${o.toString()?"?"+o.toString():""}`;return(await(await this.fetch(s)).json()).configs.map(u=>({fileName:u.fileName,content:u.content,platform:u.platform,type:u.category,repoName:u.repoName}))}async testConnection(){try{let n=await(await this.fetch("/health")).json();return n.status==="ok"&&n.service==="gal-api"}catch{return!1}}async getPolicy(e){try{return(await(await this.fetch(`/policies/${e}`)).json()).policy}catch{return null}}async getOrgPolicy(e){try{return(await(await this.fetch(`/organizations/${e}/policy`)).json()).policy}catch{return null}}async fleetRegister(e,n){return await(await this.fetch(`/organizations/${e}/fleet/register`,{method:"POST",body:JSON.stringify(n)})).json()}async fleetHeartbeat(e){return await(await this.fetch("/fleet/heartbeat",{method:"POST",body:JSON.stringify(e)})).json()}async fleetStatus(e){return await(await this.fetch(`/fleet/developers/${e}/status`)).json()}async fleetList(e,n="all"){let o=new URLSearchParams;n!=="all"&&o.set("status",n);let s=`/organizations/${e}/fleet${o.toString()?"?"+o.toString():""}`;return await(await this.fetch(s)).json()}async fleetReport(e){return await(await this.fetch(`/organizations/${e}/fleet/report`)).json()}async fleetUnenroll(e){await this.fetch(`/fleet/developers/${e}`,{method:"DELETE"})}async getApprovedConfig(e,n){try{return await(await this.fetch(`/organizations/${e}/approved-config?platform=${n}`)).json()}catch(o){if(o.message?.includes("404"))return{approved:!1};throw o}}async getHookSettings(e){try{return await(await this.fetch(`/organizations/${e}/hook-settings`)).json()}catch{return{globalIntervalMinutes:10,intervals:{}}}}async validateInvite(e){return await(await this.fetch(`/invites/${encodeURIComponent(e)}/validate`)).json()}async useInvite(e,n){return await(await this.fetch(`/invites/${encodeURIComponent(e)}/use`,{method:"POST",body:JSON.stringify(n)})).json()}async reportDeveloperStatus(e,n){return await(await this.fetch(`/organizations/${encodeURIComponent(e)}/developer-status`,{method:"POST",body:JSON.stringify(n)})).json()}async fetch(e,n={}){if(!this.config.apiUrl)throw new Error("API URL not configured. Run: gal config set apiUrl <url>");let o=`${this.config.apiUrl}${e}`,s={"Content-Type":"application/json",...n.headers};this.config.authToken?s.Authorization=`Bearer ${this.config.authToken}`:this.config.apiKey&&(s.Authorization=`Bearer ${this.config.apiKey}`);let r=await fetch(o,{...n,headers:s});if(!r.ok){let a=`API request failed: ${r.status} ${r.statusText}`;try{let u=await r.json();u&&u.error&&(a=u.error)}catch{}throw new Error(a)}return r}};var qt=require("os"),S=require("fs"),H=require("path");var ir=process.env.GAL_API_URL||"http://localhost:3000";var wa=60*60*1e3;function po(t,e){return`#!/usr/bin/env node
35
35
  /**
36
36
  * GAL Config Sync Hook for Claude Code (SessionStart only)
37
37
  *
@@ -195,7 +195,7 @@ if (state.syncedFiles && state.syncedFiles.length > 0) {
195
195
 
196
196
  // All good - show synced status with friendly reminder
197
197
  showMessage(\`\u2705 GAL: You're good to go! Synced with \${state.organization}'s approved config (v\${state.version || 'latest'}).\`);
198
- `}function go(t,e=rr){return`#!/usr/bin/env node
198
+ `}function Do(t,e=ir){return`#!/usr/bin/env node
199
199
  /**
200
200
  * GAL Config Enforcement Hook for Cursor IDE (beforeShellExecution)
201
201
  * Blocks git commit/push when config is out of sync with org's approved version.
@@ -383,10 +383,10 @@ function main(hookInput) {
383
383
  // All good - allow the git command
384
384
  allow();
385
385
  }
386
- `}var Ue=9876,yo="/callback";function ar(t){let e=process.platform;try{e==="darwin"?(0,Ge.execSync)(`open "${t}"`):e==="win32"?(0,Ge.execSync)(`start "" "${t}"`):(0,Ge.execSync)(`xdg-open "${t}"`)}catch{console.log(i.yellow(`
386
+ `}var je=9876,yo="/callback";function ur(t){let e=process.platform;try{e==="darwin"?(0,$e.execSync)(`open "${t}"`):e==="win32"?(0,$e.execSync)(`start "" "${t}"`):(0,$e.execSync)(`xdg-open "${t}"`)}catch{console.log(i.yellow(`
387
387
  Could not open browser. Please visit:
388
388
  ${t}
389
- `))}}function ur(t,e){let n=(0,V.join)((0,Jt.homedir)(),".claude"),o=(0,V.join)(n,"hooks"),s=(0,V.join)(o,"gal-sync-reminder.js"),r=(0,V.join)(n,"settings.json");try{(0,w.existsSync)(o)||(0,w.mkdirSync)(o,{recursive:!0});let a=Do(t,e);(0,w.writeFileSync)(s,a,"utf-8"),(0,w.chmodSync)(s,"755");let u={};if((0,w.existsSync)(r))try{u=JSON.parse((0,w.readFileSync)(r,"utf-8"))}catch{}u.hooks||(u.hooks={}),u.hooks.SessionStart||(u.hooks.SessionStart=[]),u.hooks.UserPromptSubmit&&(u.hooks.UserPromptSubmit=u.hooks.UserPromptSubmit.filter(c=>c.hooks?(c.hooks=c.hooks.filter(f=>!f.command?.includes("gal-")&&!f.command?.includes("/gal/")),c.hooks.length>0):!0),u.hooks.UserPromptSubmit.length===0&&delete u.hooks.UserPromptSubmit);let l=`node ${s}`;return u.hooks.SessionStart.some(c=>c.hooks?.some(f=>f.command===l))||(u.hooks.SessionStart.push({hooks:[{type:"command",command:l}]}),(0,w.writeFileSync)(r,JSON.stringify(u,null,2),"utf-8")),!0}catch{return!1}}function lr(t,e){let n=(0,V.join)((0,Jt.homedir)(),".cursor"),o=(0,V.join)(n,"hooks"),s=(0,V.join)(o,"gal-shell-enforcement.js"),r=(0,V.join)(n,"hooks.json");try{(0,w.existsSync)(o)||(0,w.mkdirSync)(o,{recursive:!0});let a=go(t,e);(0,w.writeFileSync)(s,a,"utf-8"),(0,w.chmodSync)(s,"755");let u={version:1,hooks:{}};if((0,w.existsSync)(r))try{u=JSON.parse((0,w.readFileSync)(r,"utf-8")),u.hooks||(u.hooks={})}catch{u={version:1,hooks:{}}}u.hooks.beforeShellExecution||(u.hooks.beforeShellExecution=[]);let l=`node ${s}`;return u.hooks.beforeShellExecution.some(c=>c.command===l)||(u.hooks.beforeShellExecution.push({command:l}),(0,w.writeFileSync)(r,JSON.stringify(u,null,2),"utf-8")),!0}catch{return!1}}function cr(t=12e4){return new Promise((e,n)=>{let o=(0,Co.createServer)((r,a)=>{let u=new URL(r.url||"",`http://localhost:${Ue}`);if(u.pathname===yo){let l=u.searchParams.get("token"),d=u.searchParams.get("error"),c=u.searchParams.get("user");if(d){a.writeHead(200,{"Content-Type":"text/html"}),a.end(`
389
+ `))}}function lr(t,e){let n=(0,H.join)((0,qt.homedir)(),".claude"),o=(0,H.join)(n,"hooks"),s=(0,H.join)(o,"gal-sync-reminder.js"),r=(0,H.join)(n,"settings.json");try{(0,S.existsSync)(o)||(0,S.mkdirSync)(o,{recursive:!0});let a=po(t,e);(0,S.writeFileSync)(s,a,"utf-8"),(0,S.chmodSync)(s,"755");let u={};if((0,S.existsSync)(r))try{u=JSON.parse((0,S.readFileSync)(r,"utf-8"))}catch{}u.hooks||(u.hooks={}),u.hooks.SessionStart||(u.hooks.SessionStart=[]),u.hooks.UserPromptSubmit&&(u.hooks.UserPromptSubmit=u.hooks.UserPromptSubmit.filter(c=>c.hooks?(c.hooks=c.hooks.filter(f=>!f.command?.includes("gal-")&&!f.command?.includes("/gal/")),c.hooks.length>0):!0),u.hooks.UserPromptSubmit.length===0&&delete u.hooks.UserPromptSubmit);let l=`node ${s}`;return u.hooks.SessionStart.some(c=>c.hooks?.some(f=>f.command===l))||(u.hooks.SessionStart.push({hooks:[{type:"command",command:l}]}),(0,S.writeFileSync)(r,JSON.stringify(u,null,2),"utf-8")),!0}catch{return!1}}function cr(t,e){let n=(0,H.join)((0,qt.homedir)(),".cursor"),o=(0,H.join)(n,"hooks"),s=(0,H.join)(o,"gal-shell-enforcement.js"),r=(0,H.join)(n,"hooks.json");try{(0,S.existsSync)(o)||(0,S.mkdirSync)(o,{recursive:!0});let a=Do(t,e);(0,S.writeFileSync)(s,a,"utf-8"),(0,S.chmodSync)(s,"755");let u={version:1,hooks:{}};if((0,S.existsSync)(r))try{u=JSON.parse((0,S.readFileSync)(r,"utf-8")),u.hooks||(u.hooks={})}catch{u={version:1,hooks:{}}}u.hooks.beforeShellExecution||(u.hooks.beforeShellExecution=[]);let l=`node ${s}`;return u.hooks.beforeShellExecution.some(c=>c.command===l)||(u.hooks.beforeShellExecution.push({command:l}),(0,S.writeFileSync)(r,JSON.stringify(u,null,2),"utf-8")),!0}catch{return!1}}function dr(t=12e4){return new Promise((e,n)=>{let o=(0,Fo.createServer)((r,a)=>{let u=new URL(r.url||"",`http://localhost:${je}`);if(u.pathname===yo){let l=u.searchParams.get("token"),d=u.searchParams.get("error"),c=u.searchParams.get("user");if(d){a.writeHead(200,{"Content-Type":"text/html"}),a.end(`
390
390
  <html>
391
391
  <body style="font-family: system-ui; padding: 40px; text-align: center;">
392
392
  <h1 style="color: #dc2626;">\u274C Authentication Failed</h1>
@@ -402,31 +402,31 @@ ${t}
402
402
  <p>You can close this window and return to the terminal.</p>
403
403
  </body>
404
404
  </html>
405
- `),o.close();let f=null;if(c)try{f=JSON.parse(decodeURIComponent(c))}catch{}e({token:l,user:f});return}a.writeHead(400,{"Content-Type":"text/plain"}),a.end("Missing token");return}a.writeHead(404,{"Content-Type":"text/plain"}),a.end("Not found")});o.listen(Ue,()=>{});let s=setTimeout(()=>{o.close(),n(new Error("Authentication timed out. Please try again."))},t);o.on("close",()=>{clearTimeout(s)}),o.on("error",r=>{r.code==="EADDRINUSE"?n(new Error(`Port ${Ue} is in use. Close other GAL auth processes and try again.`)):n(r)})})}function Eo(){let t=new L("auth").description("Manage GitHub authentication");return t.command("login").description("Authenticate with GitHub OAuth").action(async()=>{console.log(i.blue(`
405
+ `),o.close();let f=null;if(c)try{f=JSON.parse(decodeURIComponent(c))}catch{}e({token:l,user:f});return}a.writeHead(400,{"Content-Type":"text/plain"}),a.end("Missing token");return}a.writeHead(404,{"Content-Type":"text/plain"}),a.end("Not found")});o.listen(je,()=>{});let s=setTimeout(()=>{o.close(),n(new Error("Authentication timed out. Please try again."))},t);o.on("close",()=>{clearTimeout(s)}),o.on("error",r=>{r.code==="EADDRINUSE"?n(new Error(`Port ${je} is in use. Close other GAL auth processes and try again.`)):n(r)})})}function Co(){let t=new B("auth").description("Manage GitHub authentication");return t.command("login").description("Authenticate with GitHub OAuth").action(async()=>{console.log(i.blue(`
406
406
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.blue(" GAL CLI - GitHub Authentication")),console.log(i.blue(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
407
- `));let e=C.load(),n=e.apiUrl||process.env.GAL_API_URL||(()=>{throw new Error("API URL not configured. This should never happen.")})();if(e.authToken){let s=new G(e);try{let r=await s.getCurrentUser();console.log(i.yellow(`Already logged in as ${i.bold(r.login)}`)),console.log(i.dim(`Use "gal auth logout" first to switch accounts.
408
- `));return}catch{}}let o=T("Starting authentication...").start();try{let s=`http://localhost:${Ue}${yo}`,r=`${n}/auth/github?redirect=${encodeURIComponent(s)}&source=cli&force_select=true`;o.text="Opening browser for GitHub authentication...";let a=cr();ar(r),o.text="Waiting for authentication (check your browser)...";let{token:u,user:l}=await a;o.succeed(i.green("Authentication successful!")),wt(!0),e.authToken=u,l?(e.defaultOrg=l.organizations?.[0]||void 0,console.log(i.blue(`
407
+ `));let e=y.load(),n=e.apiUrl||process.env.GAL_API_URL||(()=>{throw new Error("API URL not configured. This should never happen.")})();if(e.authToken){let s=new j(e);try{let r=await s.getCurrentUser();console.log(i.yellow(`Already logged in as ${i.bold(r.login)}`)),console.log(i.dim(`Use "gal auth logout" first to switch accounts.
408
+ `));return}catch{}}let o=T("Starting authentication...").start();try{let s=`http://localhost:${je}${yo}`,r=`${n}/auth/github?redirect=${encodeURIComponent(s)}&source=cli&force_select=true`;o.text="Opening browser for GitHub authentication...";let a=dr();ur(r),o.text="Waiting for authentication (check your browser)...";let{token:u,user:l}=await a;o.succeed(i.green("Authentication successful!")),At(!0),e.authToken=u,l?(e.defaultOrg=l.organizations?.[0]||void 0,console.log(i.blue(`
409
409
  Logged in as:`)),console.log(` User: ${i.bold(l.login)}`),console.log(` Name: ${l.name||i.dim("(not set)")}`),console.log(` Email: ${l.email||i.dim("(not set)")}`),l.organizations?.length&&(console.log(` Organizations: ${l.organizations.join(", ")}`),console.log(` Default org: ${i.bold(e.defaultOrg)}`))):console.log(i.dim(`
410
- User details not available.`));let d=e.defaultOrg||"your-organization",c=ur(d,n),f=lr(d,n);if((c||f)&&(console.log(i.dim(" \u2713 Sync reminder hooks installed:")),c&&console.log(i.dim(" - Claude Code (~/.claude/hooks/)")),f&&console.log(i.dim(" - Cursor IDE (~/.cursor/hooks/)"))),C.save(e),e.defaultOrg)try{let h=new G(e),m=await Promise.resolve().then(()=>A(Fo(),1));await h.reportDeveloperStatus(e.defaultOrg,{cliInstalled:!0,cliVersion:m.version,authenticated:!0,authExpiresAt:new Date(Date.now()+7*24*60*60*1e3).toISOString()})}catch{console.log(i.dim(" \u26A0 Could not report status to dashboard"))}console.log(i.green(`
410
+ User details not available.`));let d=e.defaultOrg||"your-organization",c=lr(d,n),f=cr(d,n);if((c||f)&&(console.log(i.dim(" \u2713 Sync reminder hooks installed:")),c&&console.log(i.dim(" - Claude Code (~/.claude/hooks/)")),f&&console.log(i.dim(" - Cursor IDE (~/.cursor/hooks/)"))),y.save(e),e.defaultOrg)try{let h=new j(e),p=await Promise.resolve().then(()=>b(go(),1));await h.reportDeveloperStatus(e.defaultOrg,{cliInstalled:!0,cliVersion:p.version,authenticated:!0,authExpiresAt:new Date(Date.now()+7*24*60*60*1e3).toISOString()})}catch{console.log(i.dim(" \u26A0 Could not report status to dashboard"))}console.log(i.green(`
411
411
  \u2713 Credentials saved!
412
412
  `)),console.log("Next steps:"),console.log(` ${i.cyan("gal sync --pull")} - Pull org-approved config`),console.log(` ${i.cyan("gal auth status")} - Check auth status
413
- `)}catch(s){o.fail(i.red("Authentication failed"));let r=s instanceof Error?s:new Error(String(s));wt(!1,r),console.error(i.red(r.message)),await de("auth login",r),process.exit(1)}}),t.command("status").description("Show current authentication status").option("--json","Output as JSON (for extension/script integration)").action(async e=>{let n=C.load();if(e.json){if(!n.authToken){console.log(JSON.stringify({authenticated:!1,expired:!1,user:null,organizations:[]}));return}try{let r=await new G(n).getCurrentUser();console.log(JSON.stringify({authenticated:!0,expired:!1,user:r.login,email:r.email,name:r.name,organizations:r.organizations||[],defaultOrg:n.defaultOrg,apiUrl:n.apiUrl||te}))}catch{console.log(JSON.stringify({authenticated:!1,expired:!0,user:null,organizations:[]}))}return}if(!n.authToken){console.log(i.yellow(`
413
+ `)}catch(s){o.fail(i.red("Authentication failed"));let r=s instanceof Error?s:new Error(String(s));At(!1,r),console.error(i.red(r.message)),await ce("auth login",r),process.exit(1)}}),t.command("status").description("Show current authentication status").option("--json","Output as JSON (for extension/script integration)").action(async e=>{let n=y.load();if(e.json){if(!n.authToken){console.log(JSON.stringify({authenticated:!1,expired:!1,user:null,organizations:[]}));return}try{let r=await new j(n).getCurrentUser();console.log(JSON.stringify({authenticated:!0,expired:!1,user:r.login,email:r.email,name:r.name,organizations:r.organizations||[],defaultOrg:n.defaultOrg,apiUrl:n.apiUrl||ee}))}catch{console.log(JSON.stringify({authenticated:!1,expired:!0,user:null,organizations:[]}))}return}if(!n.authToken){console.log(i.yellow(`
414
414
  Not authenticated.`)),console.log(i.dim(`Run: gal auth login
415
- `));return}let o=T("Checking authentication...").start();try{let r=await new G(n).getCurrentUser();o.stop(),console.log(i.green(`
415
+ `));return}let o=T("Checking authentication...").start();try{let r=await new j(n).getCurrentUser();o.stop(),console.log(i.green(`
416
416
  \u2713 Authenticated
417
417
  `)),console.log(` User: ${i.bold(r.login)}`),console.log(` Name: ${r.name||i.dim("(not set)")}`),console.log(` Email: ${r.email||i.dim("(not set)")}`),r.organizations?.length&&console.log(` Organizations: ${r.organizations.join(", ")}`),n.defaultOrg&&console.log(` Default org: ${i.bold(n.defaultOrg)}`),console.log(` API: ${n.apiUrl}`),console.log()}catch{o.fail(i.red("Token invalid or expired")),console.log(i.dim(`Run: gal auth login
418
- `))}}),t.command("logout").description("Clear saved credentials").action(()=>{let e=C.load();if(!e.authToken){console.log(i.yellow(`
418
+ `))}}),t.command("logout").description("Clear saved credentials").action(()=>{let e=y.load();if(!e.authToken){console.log(i.yellow(`
419
419
  Not logged in.
420
- `));return}delete e.authToken,delete e.defaultOrg,C.save(e),console.log(i.green(`
420
+ `));return}delete e.authToken,delete e.defaultOrg,y.save(e),console.log(i.green(`
421
421
  \u2713 Logged out successfully.
422
- `))}),t}var D=require("fs"),g=require("path");var zt=require("fs"),z=require("path"),ne=null,Me=null,dr=process.env.GAL_DEBUG==="true"||process.env.GAL_DEBUG==="1";function oe(t){dr&&console.log(`[GAL:project-detection] ${t}`)}function He(t=process.cwd()){if(oe(`Finding project root from: ${t}`),Me===t&&ne!==null)return oe(`Using cached project root: ${ne}`),ne;let e=t,n=(0,z.parse)(e).root;for(;e!==n;){let s=(0,z.join)(e,".git");if((0,zt.existsSync)(s))return oe(`Found .git at: ${e}`),Me=t,ne=e,e;oe(`No .git in: ${e}, checking parent...`),e=(0,z.dirname)(e)}let o=(0,z.join)(n,".git");return(0,zt.existsSync)(o)?(oe(`Found .git at filesystem root: ${n}`),Me=t,ne=n,n):(oe(`Not in git repo, using start path: ${t}`),Me=t,ne=t,t)}var vo=require("crypto"),Ao="1.0.0",fr=`---
422
+ `))}),t}var D=require("fs"),g=require("path");var Wt=require("fs"),J=require("path"),te=null,Ge=null,fr=process.env.GAL_DEBUG==="true"||process.env.GAL_DEBUG==="1";function ne(t){fr&&console.log(`[GAL:project-detection] ${t}`)}function Ue(t=process.cwd()){if(ne(`Finding project root from: ${t}`),Ge===t&&te!==null)return ne(`Using cached project root: ${te}`),te;let e=t,n=(0,J.parse)(e).root;for(;e!==n;){let s=(0,J.join)(e,".git");if((0,Wt.existsSync)(s))return ne(`Found .git at: ${e}`),Ge=t,te=e,e;ne(`No .git in: ${e}, checking parent...`),e=(0,J.dirname)(e)}let o=(0,J.join)(n,".git");return(0,Wt.existsSync)(o)?(ne(`Found .git at filesystem root: ${n}`),Ge=t,te=n,n):(ne(`Not in git repo, using start path: ${t}`),Ge=t,te=t,t)}var _o=require("crypto"),vo="1.0.0",hr=`---
423
423
  description: "GAL CLI awareness for syncing org-approved configs"
424
424
  alwaysApply: true
425
425
  ---
426
426
 
427
427
  # GAL CLI
428
428
 
429
- <!-- GAL_CURSOR_RULES_VERSION = "${Ao}" -->
429
+ <!-- GAL_CURSOR_RULES_VERSION = "${vo}" -->
430
430
 
431
431
  The \`gal\` CLI is available for managing org-approved AI agent configurations.
432
432
 
@@ -439,7 +439,7 @@ The \`gal\` CLI is available for managing org-approved AI agent configurations.
439
439
  - **Confirmation Required**: Always ask the user before running any \`gal\` command
440
440
  - **Self-Discovery**: If unsure about syntax, run \`gal --help\` or \`gal <command> --help\` first
441
441
  - **Sync Notifications**: When configs need updating, ask: "Do you want me to sync gal now?"
442
- `,Y={approved:!0,hash:"demo-approved-v1.3.0",version:"1.3.0",platform:"claude",approvedAt:"2024-12-20T10:00:00Z",approvedBy:"admin@scheduler-systems.com",claudeMd:`# Scheduler-Systems Ltd - Approved Claude Code Configuration
442
+ `,z={approved:!0,hash:"demo-approved-v1.3.0",version:"1.3.0",platform:"claude",approvedAt:"2024-12-20T10:00:00Z",approvedBy:"admin@scheduler-systems.com",claudeMd:`# Scheduler-Systems Ltd - Approved Claude Code Configuration
443
443
 
444
444
  ## Organization Standards
445
445
  All Claude Code usage must follow these guidelines.
@@ -752,59 +752,59 @@ Use the approved deployment workflow:
752
752
 
753
753
  // Allow the operation
754
754
  console.log(JSON.stringify({ decision: 'allow' }));
755
- `}]};function hr(t){let e=(0,g.join)(t,".cursor","rules","gal-cli"),n=(0,g.join)(e,"RULE.md");try{if((0,D.existsSync)(n)){let s=(0,D.readFileSync)(n,"utf-8").match(/GAL_CURSOR_RULES_VERSION = "([^"]+)"/);if(s&&s[1]===Ao)return!0}return(0,D.existsSync)(e)||(0,D.mkdirSync)(e,{recursive:!0}),(0,D.writeFileSync)(n,fr,"utf-8"),!0}catch{return!1}}function pr(t,e,n,o,s=[],r,a){let u=He(),l=(0,g.join)(u,".gal"),d=(0,g.join)(l,"sync-state.json");(0,D.existsSync)(l)||(0,D.mkdirSync)(l,{recursive:!0});let c={lastSyncTimestamp:new Date().toISOString(),lastSyncHash:e,approvedConfigHash:n,lastCheckTimestamp:new Date().toISOString(),organization:t,version:o,syncedFiles:s.length>0?s:void 0,policyName:r||void 0,hookSettings:a};(0,D.writeFileSync)(d,JSON.stringify(c,null,2),"utf-8")}function mr(t){return(0,vo.createHash)("sha256").update(t).digest("hex").substring(0,16)}function Dr(){let t=He(),e=(0,g.join)(t,".gal","sync-state.json");if(!(0,D.existsSync)(e))return null;try{let n=(0,D.readFileSync)(e,"utf-8");return JSON.parse(n)}catch{return null}}function _o(t){let e=t.match(/^---\s*\n([\s\S]*?)\n---/);if(!e)return{};let n=e[1],o={},s=n.match(/description:\s*(.+)/);s&&(o.description=s[1].trim().replace(/^["']|["']$/g,""));let r=n.match(/allowed-tools:\s*\[([^\]]+)\]/);return r&&(o.allowedTools=r[1].split(",").map(a=>a.trim())),o}function gr(t){return t==="settings.json"||t.endsWith("/settings.json")?"settings":t.startsWith("rules/")||t.includes("/rules/")?"rules":t.startsWith("commands/")||t.includes("/commands/")?"commands":t.startsWith("hooks/")||t.includes("/hooks/")?"hooks":t.startsWith("agents/")||t.includes("/agents/")?"agents":t===".mcp.json"||t.endsWith(".mcp.json")?"mcp":"unknown"}function Fr(t){let e=t.split("/");return e[e.length-1].replace(/\.(md|json|js|py|sh)$/,"")}function Cr(t,e,n,o){let s={};for(let f of t)s[f.type]||(s[f.type]=[]),s[f.type].push(f);let r={commands:{label:"Slash Commands",icon:"/"},settings:{label:"Settings",icon:"\u2699"},rules:{label:"Rules",icon:"\u{1F4CB}"},hooks:{label:"Hooks",icon:"\u{1FA9D}"},agents:{label:"Agents",icon:"\u{1F916}"},mcp:{label:"MCP Config",icon:"\u{1F50C}"},unknown:{label:"Other",icon:"\u{1F4C4}"}};console.log(i.dim(`
755
+ `}]};function mr(t){let e=(0,g.join)(t,".cursor","rules","gal-cli"),n=(0,g.join)(e,"RULE.md");try{if((0,D.existsSync)(n)){let s=(0,D.readFileSync)(n,"utf-8").match(/GAL_CURSOR_RULES_VERSION = "([^"]+)"/);if(s&&s[1]===vo)return!0}return(0,D.existsSync)(e)||(0,D.mkdirSync)(e,{recursive:!0}),(0,D.writeFileSync)(n,hr,"utf-8"),!0}catch{return!1}}function pr(t,e,n,o,s=[],r,a){let u=Ue(),l=(0,g.join)(u,".gal"),d=(0,g.join)(l,"sync-state.json");(0,D.existsSync)(l)||(0,D.mkdirSync)(l,{recursive:!0});let c={lastSyncTimestamp:new Date().toISOString(),lastSyncHash:e,approvedConfigHash:n,lastCheckTimestamp:new Date().toISOString(),organization:t,version:o,syncedFiles:s.length>0?s:void 0,policyName:r||void 0,hookSettings:a};(0,D.writeFileSync)(d,JSON.stringify(c,null,2),"utf-8")}function Dr(t){return(0,_o.createHash)("sha256").update(t).digest("hex").substring(0,16)}function gr(){let t=Ue(),e=(0,g.join)(t,".gal","sync-state.json");if(!(0,D.existsSync)(e))return null;try{let n=(0,D.readFileSync)(e,"utf-8");return JSON.parse(n)}catch{return null}}function Eo(t){let e=t.match(/^---\s*\n([\s\S]*?)\n---/);if(!e)return{};let n=e[1],o={},s=n.match(/description:\s*(.+)/);s&&(o.description=s[1].trim().replace(/^["']|["']$/g,""));let r=n.match(/allowed-tools:\s*\[([^\]]+)\]/);return r&&(o.allowedTools=r[1].split(",").map(a=>a.trim())),o}function Fr(t){return t==="settings.json"||t.endsWith("/settings.json")?"settings":t.startsWith("rules/")||t.includes("/rules/")?"rules":t.startsWith("commands/")||t.includes("/commands/")?"commands":t.startsWith("hooks/")||t.includes("/hooks/")?"hooks":t.startsWith("agents/")||t.includes("/agents/")?"agents":t===".mcp.json"||t.endsWith(".mcp.json")?"mcp":"unknown"}function yr(t){let e=t.split("/");return e[e.length-1].replace(/\.(md|json|js|py|sh)$/,"")}function Cr(t,e,n,o){let s={};for(let f of t)s[f.type]||(s[f.type]=[]),s[f.type].push(f);let r={commands:{label:"Slash Commands",icon:"/"},settings:{label:"Settings",icon:"\u2699"},rules:{label:"Rules",icon:"\u{1F4CB}"},hooks:{label:"Hooks",icon:"\u{1FA9D}"},agents:{label:"Agents",icon:"\u{1F916}"},mcp:{label:"MCP Config",icon:"\u{1F50C}"},unknown:{label:"Other",icon:"\u{1F4C4}"}};console.log(i.dim(`
756
756
  // Synced from org approved config:
757
- `));for(let[f,h]of Object.entries(s)){let{label:m}=r[f]||{label:f,icon:"\u{1F4C4}"};if(f==="commands")for(let p of h)console.log(i.green(` /${p.name}`)),p.description&&console.log(i.white(` ${p.description}`)),p.allowedTools&&p.allowedTools.length>0&&console.log(i.dim(" Allowed tools: ")+i.cyan(p.allowedTools.join(", "))),console.log();else if(f==="settings")console.log(i.green(" \u2699 Settings")),console.log(i.white(" Organization-approved configuration")),console.log();else if(f==="agents")for(let p of h)console.log(i.green(` \u{1F916} ${p.name}`)),p.description&&console.log(i.white(` ${p.description}`)),console.log();else if(f==="rules"){console.log(i.green(` \u{1F4CB} Rules (${h.length})`));for(let p of h)console.log(i.dim(` \u2192 ${p.name}.md`));console.log()}else if(f==="hooks"){console.log(i.green(` \u{1FA9D} Hooks (${h.length})`));for(let p of h)console.log(i.dim(` \u2192 ${p.path}`));console.log()}else if(f==="mcp")console.log(i.green(" \u{1F50C} MCP Configuration")),console.log(i.white(" Model Context Protocol servers")),console.log();else{console.log(i.green(` \u{1F4C4} ${m} (${h.length})`));for(let p of h)console.log(i.dim(` \u2192 ${p.path}`));console.log()}}console.log(i.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));let a=t.length,u=s.commands?.length||0,l=o?` \u2022 Policy: ${i.cyan(o)}`:"",d=[];u>0&&d.push(`${u} command${u>1?"s":""}`),s.rules?.length&&d.push(`${s.rules.length} rule${s.rules.length>1?"s":""}`),s.settings?.length&&d.push("settings"),s.agents?.length&&d.push(`${s.agents.length} agent${s.agents.length>1?"s":""}`),s.hooks?.length&&d.push(`${s.hooks.length} hook${s.hooks.length>1?"s":""}`),s.mcp?.length&&d.push("MCP config");let c=d.length>0?d.join(", "):`${a} file${a>1?"s":""}`;console.log(i.green("[GAL] ")+i.white(`${c} synced from ${e} v${n}`)+l)}function bo(){let t=new L("sync").description("Sync local configs with CISO-approved organization standard");return t.command("status").description("Check current sync status (for extension integration)").option("--json","Output as JSON").action(async n=>{let o=Dr();if(n.json){if(!o){console.log(JSON.stringify({synced:!1,neverSynced:!0,upToDate:!1,lastSync:null,organization:null,hash:null}));return}let r=o.lastSyncHash===o.approvedConfigHash;console.log(JSON.stringify({synced:!0,neverSynced:!1,upToDate:r,outdated:!r,lastSync:o.lastSyncTimestamp,lastCheck:o.lastCheckTimestamp,organization:o.organization,version:o.version,hash:o.lastSyncHash,approvedHash:o.approvedConfigHash,syncedFiles:o.syncedFiles||[]}));return}if(!o){console.log(i.yellow(`
757
+ `));for(let[f,h]of Object.entries(s)){let{label:p}=r[f]||{label:f,icon:"\u{1F4C4}"};if(f==="commands")for(let m of h)console.log(i.green(` /${m.name}`)),m.description&&console.log(i.white(` ${m.description}`)),m.allowedTools&&m.allowedTools.length>0&&console.log(i.dim(" Allowed tools: ")+i.cyan(m.allowedTools.join(", "))),console.log();else if(f==="settings")console.log(i.green(" \u2699 Settings")),console.log(i.white(" Organization-approved configuration")),console.log();else if(f==="agents")for(let m of h)console.log(i.green(` \u{1F916} ${m.name}`)),m.description&&console.log(i.white(` ${m.description}`)),console.log();else if(f==="rules"){console.log(i.green(` \u{1F4CB} Rules (${h.length})`));for(let m of h)console.log(i.dim(` \u2192 ${m.name}.md`));console.log()}else if(f==="hooks"){console.log(i.green(` \u{1FA9D} Hooks (${h.length})`));for(let m of h)console.log(i.dim(` \u2192 ${m.path}`));console.log()}else if(f==="mcp")console.log(i.green(" \u{1F50C} MCP Configuration")),console.log(i.white(" Model Context Protocol servers")),console.log();else{console.log(i.green(` \u{1F4C4} ${p} (${h.length})`));for(let m of h)console.log(i.dim(` \u2192 ${m.path}`));console.log()}}console.log(i.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"));let a=t.length,u=s.commands?.length||0,l=o?` \u2022 Policy: ${i.cyan(o)}`:"",d=[];u>0&&d.push(`${u} command${u>1?"s":""}`),s.rules?.length&&d.push(`${s.rules.length} rule${s.rules.length>1?"s":""}`),s.settings?.length&&d.push("settings"),s.agents?.length&&d.push(`${s.agents.length} agent${s.agents.length>1?"s":""}`),s.hooks?.length&&d.push(`${s.hooks.length} hook${s.hooks.length>1?"s":""}`),s.mcp?.length&&d.push("MCP config");let c=d.length>0?d.join(", "):`${a} file${a>1?"s":""}`;console.log(i.green("[GAL] ")+i.white(`${c} synced from ${e} v${n}`)+l)}function Ao(){let t=new B("sync").description("Sync local configs with CISO-approved organization standard");return t.command("status").description("Check current sync status (for extension integration)").option("--json","Output as JSON").action(async n=>{let o=gr();if(n.json){if(!o){console.log(JSON.stringify({synced:!1,neverSynced:!0,upToDate:!1,lastSync:null,organization:null,hash:null}));return}let r=o.lastSyncHash===o.approvedConfigHash;console.log(JSON.stringify({synced:!0,neverSynced:!1,upToDate:r,outdated:!r,lastSync:o.lastSyncTimestamp,lastCheck:o.lastCheckTimestamp,organization:o.organization,version:o.version,hash:o.lastSyncHash,approvedHash:o.approvedConfigHash,syncedFiles:o.syncedFiles||[]}));return}if(!o){console.log(i.yellow(`
758
758
  Never synced.`)),console.log(i.dim(`Run: gal sync --pull
759
759
  `));return}o.lastSyncHash===o.approvedConfigHash?console.log(i.green(`
760
760
  \u2713 Config is up to date
761
761
  `)):(console.log(i.yellow(`
762
762
  \u26A0 Config may be outdated
763
763
  `)),console.log(i.dim(`Run: gal sync --pull to update
764
- `))),console.log(` Organization: ${i.bold(o.organization)}`),console.log(` Version: ${o.version}`),console.log(` Last sync: ${new Date(o.lastSyncTimestamp).toLocaleString()}`),o.syncedFiles&&o.syncedFiles.length>0&&console.log(` Synced files: ${o.syncedFiles.length}`),console.log()}),t.argument("[orgName]","Organization name (uses default if not specified)").option("-d, --directory <path>","Local config directory (auto-detects project root)",process.cwd()).option("-p, --platform <platform>","Filter by platform (claude, cursor, etc.)").option("--pull","Download CISO-approved config to local directory").option("--check","Check if local files match approved config (for hooks)").option("--output-json","Output as JSON").option("--demo","Demo mode - use mock data without API (for client presentations)").action(async(n,o)=>{try{let s=He(o.directory);if(o.demo||process.env.GAL_DEMO_MODE==="true"){let p=n||"Scheduler-Systems";o.pull?await br(p,s):(console.log(i.green(`
765
- [DEMO MODE] Would sync with Scheduler-Systems Ltd approved config`)),console.log(i.dim("Use --pull to write demo config files")));return}let a=C.load();!a.authToken&&!a.apiKey&&(console.error(i.red("\u2716 Not authenticated. Run: gal auth login")),process.exit(1));let u=n||a.defaultOrg;u||(console.error(i.red("Error: No organization specified and no default set")),console.log(i.dim("Usage: gal sync <orgName>")),console.log(i.dim(" or: gal config set defaultOrg <orgName>")),process.exit(1));let l=a.apiUrl||process.env.GAL_API_URL;l||(console.error(i.red("Error: API URL not configured")),process.exit(1));let d=new G({...a,apiUrl:l});if(o.pull){await vr(d,u,s,o.platform,l);return}if(o.check){await Ar(d,u,s,o.platform);return}let c=T(`Comparing configs for ${u}...`).start(),f;try{f=await d.getOrganization(u)}catch(p){c.fail(i.red(`Failed to fetch organization ${u}`)),console.error(i.dim(p.message)),process.exit(1)}let h=yr(s,o.platform);c.stop();let m=Er(h,f);if(o.outputJson){console.log(JSON.stringify(m,null,2));return}_r(u,m)}catch(s){let r=s instanceof Error?s:new Error(String(s));console.error(i.red("Error:"),r.message),await de("sync",r),process.exit(1)}}),t}function yr(t,e){let n=["claude","cursor","gemini","codex","windsurf"],o=[];for(let s of n){if(e&&s!==e)continue;let r=Yt(s),a=(0,g.join)(t,r);if(!(0,D.existsSync)(a))continue;let u=[],l=(0,g.join)(a,"settings.json");(0,D.existsSync)(l)&&u.push({path:l,type:"settings",content:(0,D.readFileSync)(l,"utf-8")});let d=(0,g.join)(a,"rules");if((0,D.existsSync)(d)){let c=(0,D.readdirSync)(d).filter(f=>f.endsWith(".md")||f.endsWith(".mdc"));for(let f of c){let h=(0,g.join)(d,f);u.push({path:h,type:"rule",content:(0,D.readFileSync)(h,"utf-8")})}}if(s==="cursor"){let c=(0,g.join)(t,".cursorrules");(0,D.existsSync)(c)&&u.push({path:c,type:"rule",content:(0,D.readFileSync)(c,"utf-8")})}if(s==="claude"){let c=(0,g.join)(a,"commands");if((0,D.existsSync)(c)){let h=(0,D.readdirSync)(c).filter(m=>m.endsWith(".md"));for(let m of h){let p=(0,g.join)(c,m);u.push({path:p,type:"command",content:(0,D.readFileSync)(p,"utf-8")})}}let f=(0,g.join)(a,"hooks");if((0,D.existsSync)(f)){let h=(0,D.readdirSync)(f).filter(m=>m.endsWith(".py")||m.endsWith(".sh"));for(let m of h){let p=(0,g.join)(f,m);u.push({path:p,type:"hook",content:(0,D.readFileSync)(p,"utf-8")})}}}u.length>0&&o.push({platform:s,directory:a,files:u})}return o}function Yt(t){return{claude:".claude",cursor:".cursor",gemini:".gemini",codex:".codex",windsurf:".windsurf"}[t]}function Er(t,e){let n={platforms:{},summary:{localOnly:0,remoteOnly:0,inSync:0,total:0}},o=t.find(a=>a.platform==="claude"),s=e.totalCommands+e.totalHooks+(e.settings.versions>0?1:0),r={hasLocal:!!o,hasRemote:s>0,localCount:o?.files.length||0,remoteCount:s};return o&&s===0?(r.status="local-only",n.summary.localOnly+=o.files.length):!o&&s>0?(r.status="remote-only",n.summary.remoteOnly+=s):o&&s>0&&(r.status="exists-both",n.summary.inSync+=o.files.length),n.platforms.claude=r,n.summary.total=Math.max(r.localCount,r.remoteCount),n}function _r(t,e){console.log(i.blue(`
764
+ `))),console.log(` Organization: ${i.bold(o.organization)}`),console.log(` Version: ${o.version}`),console.log(` Last sync: ${new Date(o.lastSyncTimestamp).toLocaleString()}`),o.syncedFiles&&o.syncedFiles.length>0&&console.log(` Synced files: ${o.syncedFiles.length}`),console.log()}),t.argument("[orgName]","Organization name (uses default if not specified)").option("-d, --directory <path>","Local config directory (auto-detects project root)",process.cwd()).option("-p, --platform <platform>","Filter by platform (claude, cursor, etc.)").option("--pull","Download CISO-approved config to local directory").option("--check","Check if local files match approved config (for hooks)").option("--output-json","Output as JSON").action(async(n,o)=>{try{let s=Ue(o.directory);if(o.demo||process.env.GAL_DEMO_MODE==="true"){let m=n||"Scheduler-Systems";o.pull?await wr(m,s):(console.log(i.green(`
765
+ [DEMO MODE] Would sync with Scheduler-Systems Ltd approved config`)),console.log(i.dim("Use --pull to write demo config files")));return}let a=y.load();!a.authToken&&!a.apiKey&&(console.error(i.red("\u2716 Not authenticated. Run: gal auth login")),process.exit(1));let u=n||a.defaultOrg;u||(console.error(i.red("Error: No organization specified and no default set")),console.log(i.dim("Usage: gal sync <orgName>")),console.log(i.dim(" or: gal config set defaultOrg <orgName>")),process.exit(1));let l=a.apiUrl||process.env.GAL_API_URL;l||(console.error(i.red("Error: API URL not configured")),process.exit(1));let d=new j({...a,apiUrl:l});if(o.pull){await Ar(d,u,s,o.platform,l);return}if(o.check){await br(d,u,s,o.platform);return}let c=T(`Comparing configs for ${u}...`).start(),f;try{f=await d.getOrganization(u)}catch(m){c.fail(i.red(`Failed to fetch organization ${u}`)),console.error(i.dim(m.message)),process.exit(1)}let h=Er(s,o.platform);c.stop();let p=_r(h,f);if(o.outputJson){console.log(JSON.stringify(p,null,2));return}vr(u,p)}catch(s){let r=s instanceof Error?s:new Error(String(s));console.error(i.red("Error:"),r.message),await ce("sync",r),process.exit(1)}}),t}function Er(t,e){let n=["claude","cursor","gemini","codex","windsurf"],o=[];for(let s of n){if(e&&s!==e)continue;let r=Jt(s),a=(0,g.join)(t,r);if(!(0,D.existsSync)(a))continue;let u=[],l=(0,g.join)(a,"settings.json");(0,D.existsSync)(l)&&u.push({path:l,type:"settings",content:(0,D.readFileSync)(l,"utf-8")});let d=(0,g.join)(a,"rules");if((0,D.existsSync)(d)){let c=(0,D.readdirSync)(d).filter(f=>f.endsWith(".md")||f.endsWith(".mdc"));for(let f of c){let h=(0,g.join)(d,f);u.push({path:h,type:"rule",content:(0,D.readFileSync)(h,"utf-8")})}}if(s==="cursor"){let c=(0,g.join)(t,".cursorrules");(0,D.existsSync)(c)&&u.push({path:c,type:"rule",content:(0,D.readFileSync)(c,"utf-8")})}if(s==="claude"){let c=(0,g.join)(a,"commands");if((0,D.existsSync)(c)){let h=(0,D.readdirSync)(c).filter(p=>p.endsWith(".md"));for(let p of h){let m=(0,g.join)(c,p);u.push({path:m,type:"command",content:(0,D.readFileSync)(m,"utf-8")})}}let f=(0,g.join)(a,"hooks");if((0,D.existsSync)(f)){let h=(0,D.readdirSync)(f).filter(p=>p.endsWith(".py")||p.endsWith(".sh"));for(let p of h){let m=(0,g.join)(f,p);u.push({path:m,type:"hook",content:(0,D.readFileSync)(m,"utf-8")})}}}u.length>0&&o.push({platform:s,directory:a,files:u})}return o}function Jt(t){return{claude:".claude",cursor:".cursor",gemini:".gemini",codex:".codex",windsurf:".windsurf"}[t]}function _r(t,e){let n={platforms:{},summary:{localOnly:0,remoteOnly:0,inSync:0,total:0}},o=t.find(a=>a.platform==="claude"),s=e.totalCommands+e.totalHooks+(e.settings.versions>0?1:0),r={hasLocal:!!o,hasRemote:s>0,localCount:o?.files.length||0,remoteCount:s};return o&&s===0?(r.status="local-only",n.summary.localOnly+=o.files.length):!o&&s>0?(r.status="remote-only",n.summary.remoteOnly+=s):o&&s>0&&(r.status="exists-both",n.summary.inSync+=o.files.length),n.platforms.claude=r,n.summary.total=Math.max(r.localCount,r.remoteCount),n}function vr(t,e){console.log(i.blue(`
766
766
  Sync Status for ${t}:
767
767
  `));for(let[n,o]of Object.entries(e.platforms)){let s=o;console.log(i.bold(n.toUpperCase())),s.status==="local-only"?(console.log(i.yellow(" \u26A0 Local only:"),`${s.localCount} configs`),console.log(i.dim(" These configs exist locally but not in GAL"))):s.status==="remote-only"?(console.log(i.cyan(" \u2193 Remote only:"),`${s.remoteCount} configs`),console.log(i.dim(" These configs exist in GAL but not locally"))):s.status==="exists-both"&&(console.log(i.green(" \u2713 Exists in both:"),`Local: ${s.localCount}, Remote: ${s.remoteCount}`),s.localCount!==s.remoteCount&&console.log(i.dim(" File counts differ - manual review needed"))),console.log()}console.log(i.bold("Summary:")),console.log(i.gray(" Total configs:"),e.summary.total),console.log(i.yellow(" Local only:"),e.summary.localOnly),console.log(i.cyan(" Remote only:"),e.summary.remoteOnly),e.summary.localOnly>0&&console.log(i.dim(`
768
768
  \u{1F4A1} Tip: Local-only configs are not tracked by GAL. Consider pushing them to your repo.`)),e.summary.remoteOnly>0&&console.log(i.dim(`
769
- \u{1F4A1} Tip: Use "gal sync --pull" to download CISO-approved configs.`))}async function vr(t,e,n,o,s){let r=o?[o]:["claude","cursor","gemini","codex","windsurf"];console.log(i.blue(`
769
+ \u{1F4A1} Tip: Use "gal sync --pull" to download CISO-approved configs.`))}async function Ar(t,e,n,o,s){let r=o?[o]:["claude","cursor","gemini","codex","windsurf"];console.log(i.blue(`
770
770
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.blue(" GAL Config Sync - Convenience Package")),console.log(i.blue(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
771
- `));let a=T("Installing sync reminder hook...").start();await installSyncReminderHook(e,s)?a.succeed(i.dim("Sync reminder hook installed to ~/.claude/hooks/")):a.warn(i.dim("Could not install sync reminder hook"));let l;try{l=await t.getHookSettings(e),console.log(i.dim(` Fetched hook settings (interval: ${l.globalIntervalMinutes||10} min)`))}catch{l={globalIntervalMinutes:10,intervals:{}}}let d=!1,c="",f="",h="",m="",p=[],k=[];for(let O of r){let Ce=T(`Checking ${O} approved config...`).start();try{let S=await t.getApprovedConfig(e,O);if(!S.approved){Ce.info(i.dim(`${O}: No approved config set by CISO`));continue}if(d=!0,Ce.succeed(i.green(`${O}: Found approved config v${S.version}`)),S.configContent){let tn=Yt(O),ye=(0,g.join)(n,tn);(0,D.existsSync)(ye)||(0,D.mkdirSync)(ye,{recursive:!0});let nn=mr(S.configContent);c=nn,f=nn,h=S.version||"1",m=S.policyName||"";try{let qe=JSON.parse(S.configContent);for(let[se,re]of Object.entries(qe)){let on=(0,g.join)(ye,se),sn=(0,g.dirname)(on);(0,D.existsSync)(sn)||(0,D.mkdirSync)(sn,{recursive:!0}),(0,D.writeFileSync)(on,re);let Po=(0,g.join)(tn,se);p.push(Po);let We=gr(se),Ro=Fr(se),Ee={path:se,type:We,name:Ro};if(We==="commands"&&typeof re=="string"){let{description:Je,allowedTools:No}=_o(re);Ee.description=Je,Ee.allowedTools=No}if(We==="agents"&&typeof re=="string"){let{description:Je}=_o(re);Ee.description=Je}k.push(Ee)}}catch{let qe=(0,g.join)(ye,"approved-config.json");(0,D.writeFileSync)(qe,S.configContent),k.push({path:"approved-config.json",type:"unknown",name:"approved-config"})}}else console.log(i.yellow(" \u26A0 Config approved but content not stored")),console.log(i.dim(` Hash: ${S.hash}`)),console.log(i.dim(` Approved by: ${S.approvedBy} on ${S.approvedAt}`)),f=S.hash||"",h=S.version||"1",m=S.policyName||""}catch(S){Ce.fail(i.red(`${O}: Failed to fetch - ${S.message}`))}}if(d){pr(e,c,f,h,p,m,l),k.length>0?Cr(k,e,h,m):p.length>0&&(console.log(i.dim(" Sync state saved to .gal/sync-state.json")),console.log(i.dim(` Tracking ${p.length} synced file(s)`))),l&&console.log(i.dim(` Hook reminder interval: ${l.globalIntervalMinutes||10} minutes`)),(!o||o==="cursor")&&hr(n)&&(console.log(i.dim(" GAL CLI rules installed to .cursor/rules/gal-cli/")),p.push(".cursor/rules/gal-cli/RULE.md")),St(p.length,!0);try{await t.reportDeveloperStatus(e,{lastSyncAt:new Date().toISOString(),syncedConfigVersion:h,syncStatus:"synced"})}catch{}console.log(i.green(`
772
- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.green(" \u2713 Sync complete! Your configs match org standard.")),console.log(i.green("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"));let O=m?` \u2022 Policy: ${i.cyan(m)}`:"";console.log(i.blue(`
773
- [GAL] ${p.length} org configs loaded${O}
771
+ `));let a;try{a=await t.getHookSettings(e),console.log(i.dim(` Fetched hook settings (interval: ${a.globalIntervalMinutes||10} min)`))}catch{a={globalIntervalMinutes:10,intervals:{}}}let u=!1,l="",d="",c="",f="",h=[],p=[];for(let m of r){let k=T(`Checking ${m} approved config...`).start();try{let v=await t.getApprovedConfig(e,m);if(!v.approved){k.info(i.dim(`${m}: No approved config set by CISO`));continue}if(u=!0,k.succeed(i.green(`${m}: Found approved config v${v.version}`)),v.configContent){let Zt=Jt(m),Fe=(0,g.join)(n,Zt);(0,D.existsSync)(Fe)||(0,D.mkdirSync)(Fe,{recursive:!0});let en=Dr(v.configContent);l=en,d=en,c=v.version||"1",f=v.policyName||"";try{let He=JSON.parse(v.configContent);for(let[oe,se]of Object.entries(He)){let tn=(0,g.join)(Fe,oe),nn=(0,g.dirname)(tn);(0,D.existsSync)(nn)||(0,D.mkdirSync)(nn,{recursive:!0}),(0,D.writeFileSync)(tn,se);let Ro=(0,g.join)(Zt,oe);h.push(Ro);let Ve=Fr(oe),Lo=yr(oe),ye={path:oe,type:Ve,name:Lo};if(Ve==="commands"&&typeof se=="string"){let{description:qe,allowedTools:Po}=Eo(se);ye.description=qe,ye.allowedTools=Po}if(Ve==="agents"&&typeof se=="string"){let{description:qe}=Eo(se);ye.description=qe}p.push(ye)}}catch{let He=(0,g.join)(Fe,"approved-config.json");(0,D.writeFileSync)(He,v.configContent),p.push({path:"approved-config.json",type:"unknown",name:"approved-config"})}}else console.log(i.yellow(" \u26A0 Config approved but content not stored")),console.log(i.dim(` Hash: ${v.hash}`)),console.log(i.dim(` Approved by: ${v.approvedBy} on ${v.approvedAt}`)),d=v.hash||"",c=v.version||"1",f=v.policyName||""}catch(v){k.fail(i.red(`${m}: Failed to fetch - ${v.message}`))}}if(u){pr(e,l,d,c,h,f,a),p.length>0?Cr(p,e,c,f):h.length>0&&(console.log(i.dim(" Sync state saved to .gal/sync-state.json")),console.log(i.dim(` Tracking ${h.length} synced file(s)`))),a&&console.log(i.dim(` Hook reminder interval: ${a.globalIntervalMinutes||10} minutes`)),(!o||o==="cursor")&&mr(n)&&(console.log(i.dim(" GAL CLI rules installed to .cursor/rules/gal-cli/")),h.push(".cursor/rules/gal-cli/RULE.md")),bt(h.length,!0);try{await t.reportDeveloperStatus(e,{lastSyncAt:new Date().toISOString(),syncedConfigVersion:c,syncStatus:"synced"})}catch{}console.log(i.green(`
772
+ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.green(" \u2713 Sync complete! Your configs match org standard.")),console.log(i.green("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550"));let m=f?` \u2022 Policy: ${i.cyan(f)}`:"";console.log(i.blue(`
773
+ [GAL] ${h.length} org configs loaded${m}
774
774
  `)),console.log(i.yellow(`\u26A0\uFE0F RESTART Claude Code/Cursor for changes to take effect.
775
775
  `))}else{console.log(i.yellow(`
776
776
  \u26A0 No CISO-approved configs found for this organization.`)),console.log(i.dim(" Ask your admin to approve configs on the GAL dashboard.")),console.log(i.dim(` Dashboard: https://app.gal.run/approved-config
777
- `)),St(0,!1);try{await t.reportDeveloperStatus(e,{syncStatus:"never_synced"})}catch{}}}async function Ar(t,e,n,o){let s=o?[o]:["claude"],r={inSync:!0,missingFiles:[],expectedFiles:[]};for(let a of s)try{let u=await t.getApprovedConfig(e,a);if(!u.approved||!u.configContent)continue;r.approvedHash=u.hash;try{let l=JSON.parse(u.configContent),d=Yt(a);for(let c of Object.keys(l)){let f=(0,g.join)(d,c),h=(0,g.join)(n,f);r.expectedFiles.push(f),(0,D.existsSync)(h)||(r.missingFiles.push(f),r.inSync=!1)}}catch{}}catch{}console.log(JSON.stringify(r))}async function br(t,e){console.log(i.blue(`
777
+ `)),bt(0,!1);try{await t.reportDeveloperStatus(e,{syncStatus:"never_synced"})}catch{}}}async function br(t,e,n,o){let s=o?[o]:["claude"],r={inSync:!0,missingFiles:[],expectedFiles:[]};for(let a of s)try{let u=await t.getApprovedConfig(e,a);if(!u.approved||!u.configContent)continue;r.approvedHash=u.hash;try{let l=JSON.parse(u.configContent),d=Jt(a);for(let c of Object.keys(l)){let f=(0,g.join)(d,c),h=(0,g.join)(n,f);r.expectedFiles.push(f),(0,D.existsSync)(h)||(r.missingFiles.push(f),r.inSync=!1)}}catch{}}catch{}console.log(JSON.stringify(r))}async function wr(t,e){console.log(i.blue(`
778
778
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.blue(" GAL Config Sync - DEMO MODE")),console.log(i.blue(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
779
779
  `)),console.log(i.yellow(` [DEMO] Using Scheduler-Systems Ltd approved config
780
- `));let n=T("Syncing approved config...").start(),o=[],s=(0,g.join)(e,".claude");(0,D.existsSync)(s)||(0,D.mkdirSync)(s,{recursive:!0});let r=(0,g.join)(e,"CLAUDE.md");(0,D.writeFileSync)(r,Y.claudeMd),o.push("CLAUDE.md"),console.log(i.dim(" \u2192 Written: CLAUDE.md"));let a=(0,g.join)(s,"settings.json");(0,D.writeFileSync)(a,JSON.stringify(Y.settings,null,2)),o.push(".claude/settings.json"),console.log(i.dim(" \u2192 Written: .claude/settings.json"));let u=(0,g.join)(s,"commands");(0,D.existsSync)(u)||(0,D.mkdirSync)(u,{recursive:!0});for(let f of Y.commands){let h=(0,g.join)(u,`${f.name}.md`);(0,D.writeFileSync)(h,f.content),o.push(`.claude/commands/${f.name}.md`),console.log(i.dim(` \u2192 Written: .claude/commands/${f.name}.md`))}let l=(0,g.join)(s,"hooks");(0,D.existsSync)(l)||(0,D.mkdirSync)(l,{recursive:!0});for(let f of Y.hooks){let h=(0,g.join)(l,`${f.name}.js`);(0,D.writeFileSync)(h,f.content),(0,D.chmodSync)(h,"755"),o.push(`.claude/hooks/${f.name}.js`),console.log(i.dim(` \u2192 Written: .claude/hooks/${f.name}.js (${f.event})`))}n.succeed(i.green(`Synced ${o.length} files from Scheduler-Systems Ltd approved config`));let d=(0,g.join)(e,".gal");(0,D.existsSync)(d)||(0,D.mkdirSync)(d,{recursive:!0});let c={lastSyncTimestamp:new Date().toISOString(),lastSyncHash:Y.hash,approvedConfigHash:Y.hash,lastCheckTimestamp:new Date().toISOString(),organization:t,version:Y.version,syncedFiles:o,demoMode:!0};(0,D.writeFileSync)((0,g.join)(d,"sync-state.json"),JSON.stringify(c,null,2)),console.log(i.dim(" Sync state saved to .gal/sync-state.json")),console.log(i.green(`
780
+ `));let n=T("Syncing approved config...").start(),o=[],s=(0,g.join)(e,".claude");(0,D.existsSync)(s)||(0,D.mkdirSync)(s,{recursive:!0});let r=(0,g.join)(e,"CLAUDE.md");(0,D.writeFileSync)(r,z.claudeMd),o.push("CLAUDE.md"),console.log(i.dim(" \u2192 Written: CLAUDE.md"));let a=(0,g.join)(s,"settings.json");(0,D.writeFileSync)(a,JSON.stringify(z.settings,null,2)),o.push(".claude/settings.json"),console.log(i.dim(" \u2192 Written: .claude/settings.json"));let u=(0,g.join)(s,"commands");(0,D.existsSync)(u)||(0,D.mkdirSync)(u,{recursive:!0});for(let f of z.commands){let h=(0,g.join)(u,`${f.name}.md`);(0,D.writeFileSync)(h,f.content),o.push(`.claude/commands/${f.name}.md`),console.log(i.dim(` \u2192 Written: .claude/commands/${f.name}.md`))}let l=(0,g.join)(s,"hooks");(0,D.existsSync)(l)||(0,D.mkdirSync)(l,{recursive:!0});for(let f of z.hooks){let h=(0,g.join)(l,`${f.name}.js`);(0,D.writeFileSync)(h,f.content),(0,D.chmodSync)(h,"755"),o.push(`.claude/hooks/${f.name}.js`),console.log(i.dim(` \u2192 Written: .claude/hooks/${f.name}.js (${f.event})`))}n.succeed(i.green(`Synced ${o.length} files from Scheduler-Systems Ltd approved config`));let d=(0,g.join)(e,".gal");(0,D.existsSync)(d)||(0,D.mkdirSync)(d,{recursive:!0});let c={lastSyncTimestamp:new Date().toISOString(),lastSyncHash:z.hash,approvedConfigHash:z.hash,lastCheckTimestamp:new Date().toISOString(),organization:t,version:z.version,syncedFiles:o,demoMode:!0};(0,D.writeFileSync)((0,g.join)(d,"sync-state.json"),JSON.stringify(c,null,2)),console.log(i.dim(" Sync state saved to .gal/sync-state.json")),console.log(i.green(`
781
781
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.green(" \u2713 Demo sync complete!")),console.log(i.green("\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550")),console.log(i.cyan(`
782
782
  Synced files:`));for(let f of o)console.log(i.dim(` \u2022 ${f}`));console.log(i.yellow(`
783
783
  \u26A0\uFE0F RESTART Claude Code for new slash commands and hooks to work.
784
- `))}function wo(){let t=new L("config");return t.description("Manage GAL CLI configuration").action(()=>{let e=C.load(),n=C.getEnvironment(),s={development:i.yellow,staging:i.cyan,production:i.green}[n]||i.white;console.log(i.blue("Current Configuration:")),console.log(i.gray(" Environment:"),s(n)),console.log(i.gray(" Config file:"),C.getConfigPath()),console.log(i.gray(" API URL:"),e.apiUrl||i.dim("(not set)")),console.log(i.gray(" API Key:"),e.apiKey?i.green("(set)"):i.dim("(not set)")),console.log(i.gray(" Default Org:"),e.defaultOrg||i.dim("(not set)")),console.log(i.gray(" Telemetry:"),e.telemetry===!1?i.red("disabled"):i.green("enabled")),console.log(""),console.log(i.dim(" Tip: Set GAL_ENV=dev|staging|prod to override environment")),console.log(i.dim(" Tip: gal config set telemetry false to disable telemetry"))}),t.command("set").description("Set a configuration value").argument("<key>","Configuration key (apiUrl, apiKey, defaultOrg, telemetry)").argument("<value>","Configuration value").action((e,n)=>{let o=["apiUrl","apiKey","defaultOrg","telemetry"];o.includes(e)||(console.error(i.red(`Invalid key: ${e}. Valid keys: ${o.join(", ")}`)),process.exit(1));let s=n;if(e==="telemetry"){let a=n.toLowerCase();a==="true"||a==="1"||a==="yes"||a==="on"?s=!0:a==="false"||a==="0"||a==="no"||a==="off"?s=!1:(console.error(i.red("Invalid value for telemetry. Use: true/false, yes/no, 1/0, on/off")),process.exit(1))}C.set(e,s);let r=e==="apiKey"?"***":String(s);console.log(i.green(`\u2713 Set ${e} = ${r}`))}),t.command("get").description("Get a configuration value").argument("<key>","Configuration key").action(e=>{let n=C.get(e);console.log(n===void 0?i.dim(`${e} is not set`):e==="apiKey"?"***":n)}),t.command("test").description("Test connection to GAL API").action(async()=>{let e=T("Testing API connection...").start();try{let n=C.load();n.apiUrl||(e.fail(i.red("API URL not configured")),console.log(i.dim("Run: gal config set apiUrl <url>")),process.exit(1)),await new G(n).testConnection()?e.succeed(i.green(`Connected to GAL API at ${n.apiUrl}`)):(e.fail(i.red(`Failed to connect to ${n.apiUrl}`)),process.exit(1))}catch(n){e.fail(i.red("Connection test failed")),console.error(i.dim(n.message)),process.exit(1)}}),t.command("path").description("Show config file path").action(()=>{console.log(C.getConfigPath())}),t}var F=require("fs"),_=require("path"),Kt=require("os"),ko=require("readline");async function wr(t){let e=(0,ko.createInterface)({input:process.stdin,output:process.stdout});return new Promise(n=>{e.question(`${t} (y/N): `,o=>{e.close(),n(o.toLowerCase()==="y"||o.toLowerCase()==="yes")})})}function Qt(t){if(!(0,F.existsSync)(t))return!1;try{let e=(0,F.readFileSync)(t,"utf-8");return["GAL Config","GAL CLI","GAL Governance","Generated by GAL","gal sync","gal check","Governance Agentic Layer","CISO-approved","gal-sync-reminder","gal-config-hook","gal-safety-hook"].some(o=>e.includes(o))}catch{return!1}}function Sr(t){if(!(0,F.existsSync)(t))return!1;try{let e=(0,F.readFileSync)(t,"utf-8");return e.includes("CURRENT_VERSION =")||e.includes("const CURRENT_VERSION")}catch{return!1}}function So(t){return Sr(t)?"npm":Qt(t)?"org-sync":"unknown"}function kr(t){let e=[],n=(0,_.join)((0,Kt.homedir)(),".claude"),o=(0,_.join)(n,"hooks"),s=(0,_.join)(n,"status_lines"),r=t?.includeNpmInstalled??!0;if((0,F.existsSync)(o)){let c=(0,F.readdirSync)(o);for(let f of c)if(f.startsWith("gal-")){let h=(0,_.join)(o,f),m=So(h);if(!r&&m==="npm")continue;e.push({path:h,type:"file",reason:`GAL hook file (${m==="npm"?"npm-installed":m==="org-sync"?"org-synced":"unknown source"})`,isGalOwned:!0,source:m})}}if((0,F.existsSync)(s)){let c=(0,F.readdirSync)(s);for(let f of c)if(f.startsWith("gal-")){let h=(0,_.join)(s,f),m=So(h);if(!r&&m==="npm")continue;e.push({path:h,type:"file",reason:`GAL status line script (${m==="npm"?"npm-installed":m==="org-sync"?"org-synced":"unknown source"})`,isGalOwned:!0,source:m})}}let a=(0,_.join)(n,"settings.json");if((0,F.existsSync)(a))try{let c=JSON.parse((0,F.readFileSync)(a,"utf-8"));c.hooks?.SessionStart&&c.hooks.SessionStart.some(h=>h.hooks?.some(m=>m.command?.includes("gal-")||m.command?.includes("/gal/")))&&e.push({path:a,type:"hook-entry",reason:"GAL hook entries in SessionStart",isGalOwned:!1}),c.hooks?.UserPromptSubmit&&c.hooks.UserPromptSubmit.some(h=>h.hooks?.some(m=>m.command?.includes("gal-")||m.command?.includes("/gal/")))&&e.push({path:a,type:"hook-entry",reason:"GAL hook entries in UserPromptSubmit",isGalOwned:!1,source:"unknown"}),c.statusLine?.command?.includes("gal-")&&e.push({path:a,type:"statusline-entry",reason:"GAL status line entry in settings",isGalOwned:!1})}catch{}let u=(0,_.join)((0,Kt.homedir)(),".cursor"),l=(0,_.join)(u,"hooks");if((0,F.existsSync)(l)){let c=(0,F.readdirSync)(l);for(let f of c)f.startsWith("gal-")&&e.push({path:(0,_.join)(l,f),type:"file",reason:"GAL hook file for Cursor IDE",isGalOwned:!0})}let d=(0,_.join)(u,"hooks.json");if((0,F.existsSync)(d))try{let c=JSON.parse((0,F.readFileSync)(d,"utf-8")),f=["beforeShellExecution","beforeSubmitPrompt"];for(let h of f)if(c.hooks?.[h]&&c.hooks[h].some(p=>p.command?.includes("gal-")||p.command?.includes("/gal/"))){e.push({path:d,type:"hook-entry",reason:`GAL hook entries in Cursor hooks.json (${h})`,isGalOwned:!1});break}}catch{}return e}function Or(t){let e=[],n=(0,_.join)(t,".gal");(0,F.existsSync)(n)&&e.push({path:n,type:"directory",reason:"GAL state directory",isGalOwned:!0});let o=(0,_.join)(t,"gal.config.json");(0,F.existsSync)(o)&&e.push({path:o,type:"file",reason:"GAL configuration file",isGalOwned:!0});let s=[(0,_.join)(t,".git","hooks","pre-commit"),(0,_.join)(t,".husky","pre-commit")];for(let a of s)(0,F.existsSync)(a)&&Qt(a)&&e.push({path:a,type:"file",reason:"GAL-generated git hook",isGalOwned:!0});let r=[{path:(0,_.join)(t,"CLAUDE.md"),reason:"GAL-generated CLAUDE.md"},{path:(0,_.join)(t,".claude","settings.json"),reason:"GAL-generated settings"},{path:(0,_.join)(t,".claude","commands","review.md"),reason:"GAL-generated command"},{path:(0,_.join)(t,".claude","commands","check.md"),reason:"GAL-generated command"},{path:(0,_.join)(t,".github","workflows","ci.yml"),reason:"GAL-generated workflow"},{path:(0,_.join)(t,".github","workflows","pr-governance.yml"),reason:"GAL-generated workflow"},{path:(0,_.join)(t,".gitleaks.toml"),reason:"GAL-generated security config"},{path:(0,_.join)(t,"SECURITY.md"),reason:"GAL-generated security docs"},{path:(0,_.join)(t,".env.example"),reason:"GAL-generated env template"}];for(let{path:a,reason:u}of r)(0,F.existsSync)(a)&&Qt(a)&&e.push({path:a,type:"file",reason:u,isGalOwned:!0});return e}function xr(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8"));return e.statusLine?.command?.includes("gal-")?(delete e.statusLine,(0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Tr(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8")),n=!1;for(let o of["SessionStart","UserPromptSubmit"]){if(!e.hooks?.[o])continue;let s=e.hooks[o].length;e.hooks[o]=e.hooks[o].filter(r=>r.hooks?(r.hooks=r.hooks.filter(a=>!a.command?.includes("gal-")&&!a.command?.includes("/gal/")),r.hooks.length>0):!0),e.hooks[o].length===0&&delete e.hooks[o],e.hooks[o]?.length!==s&&(n=!0)}return Object.keys(e.hooks||{}).length===0&&delete e.hooks,n?((0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Ir(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8"));if(!e.hooks)return!1;let n=!1,o=["beforeShellExecution","beforeSubmitPrompt"];for(let s of o)if(e.hooks[s]){let r=e.hooks[s].length;e.hooks[s]=e.hooks[s].filter(a=>!a.command?.includes("gal-")&&!a.command?.includes("/gal/")),e.hooks[s].length===0&&delete e.hooks[s],e.hooks[s]?.length!==r&&(n=!0)}return Object.keys(e.hooks).length===0&&delete e.hooks,n?((0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Br(t,e){let n={removed:[],skipped:[],errors:[]};for(let o of t){if(e){n.removed.push(o.path);continue}try{o.type==="hook-entry"?(o.path.includes(".cursor")&&o.path.endsWith("hooks.json")?Ir(o.path):Tr(o.path))?n.removed.push(`${o.path} (GAL hooks removed)`):n.skipped.push(`${o.path} (no GAL hooks found)`):o.type==="statusline-entry"?xr(o.path)?n.removed.push(`${o.path} (GAL statusLine removed)`):n.skipped.push(`${o.path} (no GAL statusLine found)`):o.type==="directory"?((0,F.rmSync)(o.path,{recursive:!0,force:!0}),n.removed.push(o.path)):((0,F.unlinkSync)(o.path),n.removed.push(o.path))}catch(s){n.errors.push(`${o.path}: ${s instanceof Error?s.message:String(s)}`)}}return n}function Oo(){let t=new L("uninstall");return t.description("Remove GAL-installed files and configurations").option("-d, --directory <path>","Project directory",process.cwd()).option("--user-only","Only remove org-synced configs from ~/.claude/ (preserves npm-installed CLI hooks)").option("--project-only","Only remove project-level configs").option("--dry-run","Show what would be removed without actually removing").option("-y, --yes","Skip confirmation prompt").action(async e=>{console.log(i.blue(`
784
+ `))}function bo(){let t=new B("config");return t.description("Manage GAL CLI configuration").action(()=>{let e=y.load(),n=y.getEnvironment(),s={development:i.yellow,staging:i.cyan,production:i.green}[n]||i.white;console.log(i.blue("Current Configuration:")),console.log(i.gray(" Environment:"),s(n)),console.log(i.gray(" Config file:"),y.getConfigPath()),console.log(i.gray(" API URL:"),e.apiUrl||i.dim("(not set)")),console.log(i.gray(" API Key:"),e.apiKey?i.green("(set)"):i.dim("(not set)")),console.log(i.gray(" Default Org:"),e.defaultOrg||i.dim("(not set)")),console.log(i.gray(" Telemetry:"),e.telemetry===!1?i.red("disabled"):i.green("enabled")),console.log(""),console.log(i.dim(" Tip: Set GAL_ENV=dev|staging|prod to override environment")),console.log(i.dim(" Tip: gal config set telemetry false to disable telemetry"))}),t.command("set").description("Set a configuration value").argument("<key>","Configuration key (apiUrl, apiKey, defaultOrg, telemetry)").argument("<value>","Configuration value").action((e,n)=>{let o=["apiUrl","apiKey","defaultOrg","telemetry"];o.includes(e)||(console.error(i.red(`Invalid key: ${e}. Valid keys: ${o.join(", ")}`)),process.exit(1));let s=n;if(e==="telemetry"){let a=n.toLowerCase();a==="true"||a==="1"||a==="yes"||a==="on"?s=!0:a==="false"||a==="0"||a==="no"||a==="off"?s=!1:(console.error(i.red("Invalid value for telemetry. Use: true/false, yes/no, 1/0, on/off")),process.exit(1))}y.set(e,s);let r=e==="apiKey"?"***":String(s);console.log(i.green(`\u2713 Set ${e} = ${r}`))}),t.command("get").description("Get a configuration value").argument("<key>","Configuration key").action(e=>{let n=y.get(e);console.log(n===void 0?i.dim(`${e} is not set`):e==="apiKey"?"***":n)}),t.command("test").description("Test connection to GAL API").action(async()=>{let e=T("Testing API connection...").start();try{let n=y.load();n.apiUrl||(e.fail(i.red("API URL not configured")),console.log(i.dim("Run: gal config set apiUrl <url>")),process.exit(1)),await new j(n).testConnection()?e.succeed(i.green(`Connected to GAL API at ${n.apiUrl}`)):(e.fail(i.red(`Failed to connect to ${n.apiUrl}`)),process.exit(1))}catch(n){e.fail(i.red("Connection test failed")),console.error(i.dim(n.message)),process.exit(1)}}),t.command("path").description("Show config file path").action(()=>{console.log(y.getConfigPath())}),t}var F=require("fs"),_=require("path"),zt=require("os"),So=require("readline");async function Sr(t){let e=(0,So.createInterface)({input:process.stdin,output:process.stdout});return new Promise(n=>{e.question(`${t} (y/N): `,o=>{e.close(),n(o.toLowerCase()==="y"||o.toLowerCase()==="yes")})})}function Yt(t){if(!(0,F.existsSync)(t))return!1;try{let e=(0,F.readFileSync)(t,"utf-8");return["GAL Config","GAL CLI","GAL Governance","Generated by GAL","gal sync","gal check","Governance Agentic Layer","CISO-approved","gal-sync-reminder","gal-config-hook","gal-safety-hook"].some(o=>e.includes(o))}catch{return!1}}function kr(t){if(!(0,F.existsSync)(t))return!1;try{let e=(0,F.readFileSync)(t,"utf-8");return e.includes("CURRENT_VERSION =")||e.includes("const CURRENT_VERSION")}catch{return!1}}function wo(t){return kr(t)?"npm":Yt(t)?"org-sync":"unknown"}function Or(t){let e=[],n=(0,_.join)((0,zt.homedir)(),".claude"),o=(0,_.join)(n,"hooks"),s=(0,_.join)(n,"status_lines"),r=t?.includeNpmInstalled??!0;if((0,F.existsSync)(o)){let c=(0,F.readdirSync)(o);for(let f of c)if(f.startsWith("gal-")){let h=(0,_.join)(o,f),p=wo(h);if(!r&&p==="npm")continue;e.push({path:h,type:"file",reason:`GAL hook file (${p==="npm"?"npm-installed":p==="org-sync"?"org-synced":"unknown source"})`,isGalOwned:!0,source:p})}}if((0,F.existsSync)(s)){let c=(0,F.readdirSync)(s);for(let f of c)if(f.startsWith("gal-")){let h=(0,_.join)(s,f),p=wo(h);if(!r&&p==="npm")continue;e.push({path:h,type:"file",reason:`GAL status line script (${p==="npm"?"npm-installed":p==="org-sync"?"org-synced":"unknown source"})`,isGalOwned:!0,source:p})}}let a=(0,_.join)(n,"settings.json");if((0,F.existsSync)(a))try{let c=JSON.parse((0,F.readFileSync)(a,"utf-8"));c.hooks?.SessionStart&&c.hooks.SessionStart.some(h=>h.hooks?.some(p=>p.command?.includes("gal-")||p.command?.includes("/gal/")))&&e.push({path:a,type:"hook-entry",reason:"GAL hook entries in SessionStart",isGalOwned:!1}),c.hooks?.UserPromptSubmit&&c.hooks.UserPromptSubmit.some(h=>h.hooks?.some(p=>p.command?.includes("gal-")||p.command?.includes("/gal/")))&&e.push({path:a,type:"hook-entry",reason:"GAL hook entries in UserPromptSubmit",isGalOwned:!1,source:"unknown"}),c.statusLine?.command?.includes("gal-")&&e.push({path:a,type:"statusline-entry",reason:"GAL status line entry in settings",isGalOwned:!1})}catch{}let u=(0,_.join)((0,zt.homedir)(),".cursor"),l=(0,_.join)(u,"hooks");if((0,F.existsSync)(l)){let c=(0,F.readdirSync)(l);for(let f of c)f.startsWith("gal-")&&e.push({path:(0,_.join)(l,f),type:"file",reason:"GAL hook file for Cursor IDE",isGalOwned:!0})}let d=(0,_.join)(u,"hooks.json");if((0,F.existsSync)(d))try{let c=JSON.parse((0,F.readFileSync)(d,"utf-8")),f=["beforeShellExecution","beforeSubmitPrompt"];for(let h of f)if(c.hooks?.[h]&&c.hooks[h].some(m=>m.command?.includes("gal-")||m.command?.includes("/gal/"))){e.push({path:d,type:"hook-entry",reason:`GAL hook entries in Cursor hooks.json (${h})`,isGalOwned:!1});break}}catch{}return e}function xr(t){let e=[],n=(0,_.join)(t,".gal");(0,F.existsSync)(n)&&e.push({path:n,type:"directory",reason:"GAL state directory",isGalOwned:!0});let o=(0,_.join)(t,"gal.config.json");(0,F.existsSync)(o)&&e.push({path:o,type:"file",reason:"GAL configuration file",isGalOwned:!0});let s=[(0,_.join)(t,".git","hooks","pre-commit"),(0,_.join)(t,".husky","pre-commit")];for(let a of s)(0,F.existsSync)(a)&&Yt(a)&&e.push({path:a,type:"file",reason:"GAL-generated git hook",isGalOwned:!0});let r=[{path:(0,_.join)(t,"CLAUDE.md"),reason:"GAL-generated CLAUDE.md"},{path:(0,_.join)(t,".claude","settings.json"),reason:"GAL-generated settings"},{path:(0,_.join)(t,".claude","commands","review.md"),reason:"GAL-generated command"},{path:(0,_.join)(t,".claude","commands","check.md"),reason:"GAL-generated command"},{path:(0,_.join)(t,".github","workflows","ci.yml"),reason:"GAL-generated workflow"},{path:(0,_.join)(t,".github","workflows","pr-governance.yml"),reason:"GAL-generated workflow"},{path:(0,_.join)(t,".gitleaks.toml"),reason:"GAL-generated security config"},{path:(0,_.join)(t,"SECURITY.md"),reason:"GAL-generated security docs"},{path:(0,_.join)(t,".env.example"),reason:"GAL-generated env template"}];for(let{path:a,reason:u}of r)(0,F.existsSync)(a)&&Yt(a)&&e.push({path:a,type:"file",reason:u,isGalOwned:!0});return e}function Tr(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8"));return e.statusLine?.command?.includes("gal-")?(delete e.statusLine,(0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Ir(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8")),n=!1;for(let o of["SessionStart","UserPromptSubmit"]){if(!e.hooks?.[o])continue;let s=e.hooks[o].length;e.hooks[o]=e.hooks[o].filter(r=>r.hooks?(r.hooks=r.hooks.filter(a=>!a.command?.includes("gal-")&&!a.command?.includes("/gal/")),r.hooks.length>0):!0),e.hooks[o].length===0&&delete e.hooks[o],e.hooks[o]?.length!==s&&(n=!0)}return Object.keys(e.hooks||{}).length===0&&delete e.hooks,n?((0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Br(t){try{let e=JSON.parse((0,F.readFileSync)(t,"utf-8"));if(!e.hooks)return!1;let n=!1,o=["beforeShellExecution","beforeSubmitPrompt"];for(let s of o)if(e.hooks[s]){let r=e.hooks[s].length;e.hooks[s]=e.hooks[s].filter(a=>!a.command?.includes("gal-")&&!a.command?.includes("/gal/")),e.hooks[s].length===0&&delete e.hooks[s],e.hooks[s]?.length!==r&&(n=!0)}return Object.keys(e.hooks).length===0&&delete e.hooks,n?((0,F.writeFileSync)(t,JSON.stringify(e,null,2)),!0):!1}catch{return!1}}function Rr(t,e){let n={removed:[],skipped:[],errors:[]};for(let o of t){if(e){n.removed.push(o.path);continue}try{o.type==="hook-entry"?(o.path.includes(".cursor")&&o.path.endsWith("hooks.json")?Br(o.path):Ir(o.path))?n.removed.push(`${o.path} (GAL hooks removed)`):n.skipped.push(`${o.path} (no GAL hooks found)`):o.type==="statusline-entry"?Tr(o.path)?n.removed.push(`${o.path} (GAL statusLine removed)`):n.skipped.push(`${o.path} (no GAL statusLine found)`):o.type==="directory"?((0,F.rmSync)(o.path,{recursive:!0,force:!0}),n.removed.push(o.path)):((0,F.unlinkSync)(o.path),n.removed.push(o.path))}catch(s){n.errors.push(`${o.path}: ${s instanceof Error?s.message:String(s)}`)}}return n}function ko(){let t=new B("uninstall");return t.description("Remove GAL-installed files and configurations").option("-d, --directory <path>","Project directory",process.cwd()).option("--user-only","Only remove org-synced configs from ~/.claude/ (preserves npm-installed CLI hooks)").option("--project-only","Only remove project-level configs").option("--dry-run","Show what would be removed without actually removing").option("-y, --yes","Skip confirmation prompt").action(async e=>{console.log(i.blue(`
785
785
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.blue(" GAL Uninstall")),console.log(i.blue(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
786
- `));let n=e.projectOnly?[]:kr({includeNpmInstalled:!e.userOnly}),o=e.userOnly?[]:Or(e.directory),s=[...n,...o];if(s.length===0){console.log(i.yellow("No GAL-installed files found.")),e.userOnly&&(console.log(i.dim(`
786
+ `));let n=e.projectOnly?[]:Or({includeNpmInstalled:!e.userOnly}),o=e.userOnly?[]:xr(e.directory),s=[...n,...o];if(s.length===0){console.log(i.yellow("No GAL-installed files found.")),e.userOnly&&(console.log(i.dim(`
787
787
  Note: --user-only preserves npm-installed CLI hooks (e.g., gal-sync-reminder.js)`)),console.log(i.dim("To remove CLI hooks, uninstall the npm package: npm uninstall -g @scheduler-systems/gal-cli"))),console.log(i.dim(`
788
788
  Nothing to uninstall.`));return}if(console.log(i.bold(`The following GAL-installed items were detected:
789
789
  `)),e.userOnly&&(console.log(i.cyan("Mode: User-level org-synced configs only")),console.log(i.dim(` (npm-installed CLI hooks will be preserved)
790
- `))),n.length>0){console.log(i.cyan("User-level (Claude Code & Cursor IDE):"));for(let a of n){let u=a.type==="directory"?"\u{1F4C1}":a.type==="hook-entry"?"\u{1F527}":a.type==="statusline-entry"?"\u{1F4CA}":"\u{1F4C4}";console.log(` ${u} ${i.dim(a.path)}`),console.log(` ${i.dim(a.reason)}`)}console.log()}if(o.length>0){console.log(i.cyan("Project-level:"));for(let a of o){let u=a.type==="directory"?"\u{1F4C1}":"\u{1F4C4}",l=a.path.replace(e.directory,".");console.log(` ${u} ${i.dim(l)}`),console.log(` ${i.dim(a.reason)}`)}console.log()}if(e.dryRun){console.log(i.yellow("DRY RUN - No files were removed."));return}if(!e.yes&&(console.log(i.yellow("\u26A0\uFE0F This action cannot be undone.")),!await wr(`
790
+ `))),n.length>0){console.log(i.cyan("User-level (Claude Code & Cursor IDE):"));for(let a of n){let u=a.type==="directory"?"\u{1F4C1}":a.type==="hook-entry"?"\u{1F527}":a.type==="statusline-entry"?"\u{1F4CA}":"\u{1F4C4}";console.log(` ${u} ${i.dim(a.path)}`),console.log(` ${i.dim(a.reason)}`)}console.log()}if(o.length>0){console.log(i.cyan("Project-level:"));for(let a of o){let u=a.type==="directory"?"\u{1F4C1}":"\u{1F4C4}",l=a.path.replace(e.directory,".");console.log(` ${u} ${i.dim(l)}`),console.log(` ${i.dim(a.reason)}`)}console.log()}if(e.dryRun){console.log(i.yellow("DRY RUN - No files were removed."));return}if(!e.yes&&(console.log(i.yellow("\u26A0\uFE0F This action cannot be undone.")),!await Sr(`
791
791
  Proceed with uninstallation?`))){console.log(i.dim(`
792
792
  Uninstall cancelled.`));return}console.log(i.dim(`
793
- Removing files...`));let r=Br(s,!1);if(console.log(),r.removed.length>0){console.log(i.green(`\u2713 Removed ${r.removed.length} item(s):`));for(let a of r.removed)console.log(i.dim(` - ${a}`))}if(r.skipped.length>0){console.log(i.yellow(`
793
+ Removing files...`));let r=Rr(s,!1);if(console.log(),r.removed.length>0){console.log(i.green(`\u2713 Removed ${r.removed.length} item(s):`));for(let a of r.removed)console.log(i.dim(` - ${a}`))}if(r.skipped.length>0){console.log(i.yellow(`
794
794
  \u26A0 Skipped ${r.skipped.length} item(s):`));for(let a of r.skipped)console.log(i.dim(` - ${a}`))}if(r.errors.length>0){console.log(i.red(`
795
795
  \u2717 Failed to remove ${r.errors.length} item(s):`));for(let a of r.errors)console.log(i.dim(` - ${a}`))}console.log(i.blue(`
796
796
  \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550`)),console.log(i.blue(" GAL has been uninstalled.")),console.log(i.blue(`\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550
797
797
  `)),console.log(i.dim("To reinstall, run: gal sync --pull")),console.log(i.dim(`To completely remove the CLI: npm uninstall -g @scheduler-systems/gal-cli
798
- `))}),t}var ge=A(require("fs/promises"),1),Fe=A(require("path"),1);function To(){let t=new L("workflow").description("Test workflow configurations (commands and hooks) in E2B sandbox");return t.command("test").description("Test a workflow file in sandbox before deployment").argument("<file>","Path to command (.md) or hook (.json) file").option("-p, --platform <platform>","Platform: claude, cursor, gemini, codex, windsurf","claude").option("--type <type>","Type: command or hook (auto-detected if not specified)").option("--test-cases <cases>","Comma-separated test cases to run").option("--max-iterations <n>","Maximum improvement iterations (default: 3)","3").option("-o, --org <org>","Organization name").option("--json","Output results as JSON",!1).action(async(e,n)=>{let o=process.env.GAL_API_URL||te;try{let s=T(`Reading ${e}...`).start(),r=Fe.default.resolve(e),a=await ge.default.readFile(r,"utf-8"),u=Fe.default.basename(e),l=n.type;l||(u.endsWith(".md")?l="command":u.includes("hook")||u.endsWith(".json")||u.endsWith(".py")||u.endsWith(".js")?l="hook":(s.fail(i.red("Could not auto-detect type. Please specify --type (command or hook)")),process.exit(1))),s.text="Uploading to sandbox...";let d=n.org||await xo(o);d||(s.fail(i.red("No organization found. Please connect GitHub via dashboard or use --org flag")),process.exit(1));let c=n.testCases?.split(",").map(p=>p.trim()).filter(p=>p)||[];s.text=`Testing ${u} in sandbox...`;let f=await fetch(`${o}/organizations/${d}/workflow-test`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:u,type:l,platform:n.platform,content:a,testCases:c,maxIterations:parseInt(n.maxIterations,10)})});if(!f.ok){let p=await f.text();s.fail(i.red("Test failed")),console.error(i.red(p)),process.exit(1)}let m=(await f.json()).result;s.stop(),n.json?console.log(JSON.stringify(m,null,2)):Lr(m),m.recommendation==="reject"&&process.exit(1)}catch(s){console.error(i.red(`Error: ${s instanceof Error?s.message:String(s)}`)),process.exit(1)}}),t.command("test-batch").description("Test multiple workflow files in batch").argument("<directory>","Directory containing workflow files").option("-p, --platform <platform>","Platform: claude, cursor, gemini, codex, windsurf","claude").option("-o, --org <org>","Organization name").option("--report <path>","Save detailed report to file").action(async(e,n)=>{let o=process.env.GAL_API_URL||te,s=T("Scanning directory...").start();try{let r=n.org||await xo(o);r||(s.fail(i.red("No organization found. Please connect GitHub via dashboard or use --org flag")),process.exit(1));let a=Fe.default.resolve(e),l=(await ge.default.readdir(a)).filter(m=>m.endsWith(".md")||m.includes("hook")&&(m.endsWith(".json")||m.endsWith(".py")||m.endsWith(".js")));l.length===0&&(s.fail(i.yellow("No workflow files found")),process.exit(0)),s.text=`Found ${l.length} workflow files. Preparing batch test...`;let d=[];for(let m of l){let p=Fe.default.join(a,m),k=await ge.default.readFile(p,"utf-8"),O=m.endsWith(".md")?"command":"hook";d.push({fileName:m,type:O,platform:n.platform,content:k,testCases:[],maxIterations:3})}s.text=`Testing ${d.length} workflows in sandbox...`;let c=await fetch(`${o}/organizations/${r}/workflow-test/batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({requests:d})});if(!c.ok){let m=await c.text();s.fail(i.red("Batch test failed")),console.error(i.red(m)),process.exit(1)}let h=(await c.json()).report;s.stop(),console.log(i.green(`
798
+ `))}),t}var De=b(require("fs/promises"),1),ge=b(require("path"),1);function xo(){let t=new B("workflow").description("Test workflow configurations (commands and hooks) in E2B sandbox");return t.command("test").description("Test a workflow file in sandbox before deployment").argument("<file>","Path to command (.md) or hook (.json) file").option("-p, --platform <platform>","Platform: claude, cursor, gemini, codex, windsurf","claude").option("--type <type>","Type: command or hook (auto-detected if not specified)").option("--test-cases <cases>","Comma-separated test cases to run").option("--max-iterations <n>","Maximum improvement iterations (default: 3)","3").option("-o, --org <org>","Organization name").option("--json","Output results as JSON",!1).action(async(e,n)=>{let o=process.env.GAL_API_URL||ee;try{let s=T(`Reading ${e}...`).start(),r=ge.default.resolve(e),a=await De.default.readFile(r,"utf-8"),u=ge.default.basename(e),l=n.type;l||(u.endsWith(".md")?l="command":u.includes("hook")||u.endsWith(".json")||u.endsWith(".py")||u.endsWith(".js")?l="hook":(s.fail(i.red("Could not auto-detect type. Please specify --type (command or hook)")),process.exit(1))),s.text="Uploading to sandbox...";let d=n.org||await Oo(o);d||(s.fail(i.red("No organization found. Please connect GitHub via dashboard or use --org flag")),process.exit(1));let c=n.testCases?.split(",").map(m=>m.trim()).filter(m=>m)||[];s.text=`Testing ${u} in sandbox...`;let f=await fetch(`${o}/organizations/${d}/workflow-test`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({fileName:u,type:l,platform:n.platform,content:a,testCases:c,maxIterations:parseInt(n.maxIterations,10)})});if(!f.ok){let m=await f.text();s.fail(i.red("Test failed")),console.error(i.red(m)),process.exit(1)}let p=(await f.json()).result;s.stop(),n.json?console.log(JSON.stringify(p,null,2)):Lr(p),p.recommendation==="reject"&&process.exit(1)}catch(s){console.error(i.red(`Error: ${s instanceof Error?s.message:String(s)}`)),process.exit(1)}}),t.command("test-batch").description("Test multiple workflow files in batch").argument("<directory>","Directory containing workflow files").option("-p, --platform <platform>","Platform: claude, cursor, gemini, codex, windsurf","claude").option("-o, --org <org>","Organization name").option("--report <path>","Save detailed report to file").action(async(e,n)=>{let o=process.env.GAL_API_URL||ee,s=T("Scanning directory...").start();try{let r=n.org||await Oo(o);r||(s.fail(i.red("No organization found. Please connect GitHub via dashboard or use --org flag")),process.exit(1));let a=ge.default.resolve(e),l=(await De.default.readdir(a)).filter(p=>p.endsWith(".md")||p.includes("hook")&&(p.endsWith(".json")||p.endsWith(".py")||p.endsWith(".js")));l.length===0&&(s.fail(i.yellow("No workflow files found")),process.exit(0)),s.text=`Found ${l.length} workflow files. Preparing batch test...`;let d=[];for(let p of l){let m=ge.default.join(a,p),k=await De.default.readFile(m,"utf-8"),v=p.endsWith(".md")?"command":"hook";d.push({fileName:p,type:v,platform:n.platform,content:k,testCases:[],maxIterations:3})}s.text=`Testing ${d.length} workflows in sandbox...`;let c=await fetch(`${o}/organizations/${r}/workflow-test/batch`,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify({requests:d})});if(!c.ok){let p=await c.text();s.fail(i.red("Batch test failed")),console.error(i.red(p)),process.exit(1)}let h=(await c.json()).report;s.stop(),console.log(i.green(`
799
799
  === Batch Test Results ===
800
800
  `)),console.log(`Total Tests: ${i.bold(h.totalTests)}`),console.log(`Passed: ${i.green(h.passedTests)}`),console.log(`Average Score: ${i.yellow(h.averageScore+"%")}`),console.log(`
801
- Recommendations:`),console.log(` Approve: ${i.green(h.summary.byRecommendation.approve)}`),console.log(` Needs Revision: ${i.yellow(h.summary.byRecommendation.revise)}`),console.log(` Reject: ${i.red(h.summary.byRecommendation.reject)}`),n.report&&(await ge.default.writeFile(n.report,JSON.stringify(h,null,2)),console.log(i.gray(`
802
- Detailed report saved to: ${n.report}`))),h.passedTests<h.totalTests&&process.exit(1)}catch(r){s.fail(i.red("Batch test failed")),console.error(i.red(`Error: ${r instanceof Error?r.message:String(r)}`)),process.exit(1)}}),t}async function xo(t){try{let e=await fetch(`${t}/organizations`,{credentials:"include"});if(!e.ok)return null;let n=await e.json();return n.length>0?n[0].name:null}catch{return null}}function Lr(t){console.log(i.green(`
801
+ Recommendations:`),console.log(` Approve: ${i.green(h.summary.byRecommendation.approve)}`),console.log(` Needs Revision: ${i.yellow(h.summary.byRecommendation.revise)}`),console.log(` Reject: ${i.red(h.summary.byRecommendation.reject)}`),n.report&&(await De.default.writeFile(n.report,JSON.stringify(h,null,2)),console.log(i.gray(`
802
+ Detailed report saved to: ${n.report}`))),h.passedTests<h.totalTests&&process.exit(1)}catch(r){s.fail(i.red("Batch test failed")),console.error(i.red(`Error: ${r instanceof Error?r.message:String(r)}`)),process.exit(1)}}),t}async function Oo(t){try{let e=await fetch(`${t}/organizations`,{credentials:"include"});if(!e.ok)return null;let n=await e.json();return n.length>0?n[0].name:null}catch{return null}}function Lr(t){console.log(i.green(`
803
803
  === Test Results ===
804
804
  `)),console.log(`File: ${i.bold(t.fileName)}`),console.log(`Type: ${i.cyan(t.type)}`),console.log(`Platform: ${i.cyan(t.platform)}`),console.log(`Iterations: ${t.iterations.length}`),console.log(`Execution: ${t.executionTimeMs}ms`),console.log();let e=t.finalScore>=80?i.green:t.finalScore>=60?i.yellow:i.red;console.log(`Final Score: ${e(t.finalScore+"/100")}`);let n=t.recommendation==="approve"?i.green:t.recommendation==="revise"?i.yellow:i.red;console.log(`Recommendation: ${n(t.recommendation.toUpperCase())}`),console.log(),t.error&&(console.log(i.red("Error:")),console.log(i.red(" "+t.error)),console.log());let o=t.iterations[t.iterations.length-1];o&&(console.log(i.blue(`=== LLM Evaluation ===
805
805
  `)),console.log(o.evaluation.reasoning),console.log(),o.evaluation.issues.length>0&&(console.log(i.yellow(`Issues Found:
806
806
  `)),o.evaluation.issues.forEach((s,r)=>{let a=s.severity==="critical"||s.severity==="high"?i.red:s.severity==="medium"?i.yellow:i.blue;console.log(` ${r+1}. [${a(s.severity.toUpperCase())}] ${s.message}`)}),console.log()),o.evaluation.suggestedImprovements.length>0&&(console.log(i.cyan(`Suggested Improvements:
807
- `)),o.evaluation.suggestedImprovements.forEach((s,r)=>{console.log(` ${r+1}. ${s}`)}),console.log())),t.recommendation==="approve"?console.log(i.green("\u2713 This workflow is ready for deployment!")):t.recommendation==="revise"?console.log(i.yellow("\u26A0 This workflow needs improvements before deployment.")):console.log(i.red("\u2717 This workflow should be rejected. See issues above.")),console.log()}var Ve="0.1.13-alpha.pr417",te="https://api.gal.run",Xt=(0,en.join)((0,Lo.homedir)(),".gal"),Zt=(0,en.join)(Xt,"update-cache.json"),Pr=24*60*60*1e3;function Rr(t,e){let n=t.replace(/^v/,"").split(".").map(Number),o=e.replace(/^v/,"").split(".").map(Number);for(let s=0;s<3;s++){if((n[s]||0)<(o[s]||0))return-1;if((n[s]||0)>(o[s]||0))return 1}return 0}function Nr(){try{if((0,q.existsSync)(Zt))return JSON.parse((0,q.readFileSync)(Zt,"utf-8"))}catch{}return null}function $r(t){try{(0,q.existsSync)(Xt)||(0,q.mkdirSync)(Xt,{recursive:!0}),(0,q.writeFileSync)(Zt,JSON.stringify(t))}catch{}}function jr(t,e){let n=["",i.bgYellow.black(" UPDATE AVAILABLE "),"",` ${i.dim(t)} \u2192 ${i.green(e)}`,"",` Run: ${i.cyan("npm update -g @scheduler-systems/gal-cli")}`,""].join(`
807
+ `)),o.evaluation.suggestedImprovements.forEach((s,r)=>{console.log(` ${r+1}. ${s}`)}),console.log())),t.recommendation==="approve"?console.log(i.green("\u2713 This workflow is ready for deployment!")):t.recommendation==="revise"?console.log(i.yellow("\u26A0 This workflow needs improvements before deployment.")):console.log(i.red("\u2717 This workflow should be rejected. See issues above.")),console.log()}var Me="0.1.13-alpha.pr472",ee="https://api.gal.run",Kt=(0,Xt.join)((0,Bo.homedir)(),".gal"),Qt=(0,Xt.join)(Kt,"update-cache.json"),Pr=24*60*60*1e3;function Nr(t,e){let n=t.replace(/^v/,"").split(".").map(Number),o=e.replace(/^v/,"").split(".").map(Number);for(let s=0;s<3;s++){if((n[s]||0)<(o[s]||0))return-1;if((n[s]||0)>(o[s]||0))return 1}return 0}function $r(){try{if((0,V.existsSync)(Qt))return JSON.parse((0,V.readFileSync)(Qt,"utf-8"))}catch{}return null}function jr(t){try{(0,V.existsSync)(Kt)||(0,V.mkdirSync)(Kt,{recursive:!0}),(0,V.writeFileSync)(Qt,JSON.stringify(t))}catch{}}function Gr(t,e){let n=["",i.bgYellow.black(" UPDATE AVAILABLE "),"",` ${i.dim(t)} \u2192 ${i.green(e)}`,"",` Run: ${i.cyan("npm update -g @scheduler-systems/gal-cli")}`,""].join(`
808
808
  `),s=i.yellow("\u2500".repeat(50));console.log(`
809
809
  `+s),console.log(n),console.log(s+`
810
- `)}function Gr(t){return/-(alpha|beta|pr|rc|dev)/i.test(t)}function Ur(){if(Gr(Ve))return;let t=Nr(),e=!t||Date.now()-t.lastCheck>Pr;if(t?.latestVersion&&Rr(Ve,t.latestVersion)<0&&process.on("exit",()=>{jr(Ve,t.latestVersion)}),e){let n=Bo.default.get("https://registry.npmjs.org/@scheduler-systems/gal-cli/latest",{timeout:3e3},o=>{let s="";o.on("data",r=>s+=r),o.on("end",()=>{try{let r=JSON.parse(s);$r({lastCheck:Date.now(),latestVersion:r.version})}catch{}})});n.on("error",()=>{}),n.on("timeout",()=>n.destroy());try{typeof n.unref=="function"&&n.unref()}catch{}}}Ur();Zn();Xn();yt();process.on("beforeExit",async()=>{await Et()});Io.default.config();var K=new L;K.name("gal").description("GAL - Governance Agentic Layer CLI").version(Ve);K.addCommand(Eo());K.addCommand(bo());K.addCommand(wo());K.addCommand(Oo());K.addCommand(To());K.parse();0&&(module.exports={DEFAULT_API_URL});
810
+ `)}function Ur(t){return/-(alpha|beta|pr|rc|dev)/i.test(t)}function Mr(){if(Ur(Me))return;let t=$r(),e=!t||Date.now()-t.lastCheck>Pr;if(t?.latestVersion&&Nr(Me,t.latestVersion)<0&&process.on("exit",()=>{Gr(Me,t.latestVersion)}),e){let n=Io.default.get("https://registry.npmjs.org/@scheduler-systems/gal-cli/latest",{timeout:3e3},o=>{let s="";o.on("data",r=>s+=r),o.on("end",()=>{try{let r=JSON.parse(s);jr({lastCheck:Date.now(),latestVersion:r.version})}catch{}})});n.on("error",()=>{}),n.on("timeout",()=>n.destroy());try{typeof n.unref=="function"&&n.unref()}catch{}}}Mr();Xn();Qn();Ft();process.on("beforeExit",async()=>{await yt()});To.default.config();var Y=new B;Y.name("gal").description("GAL - Governance Agentic Layer CLI").version(Me);Y.addCommand(Co());Y.addCommand(Ao());Y.addCommand(bo());Y.addCommand(ko());Y.addCommand(xo());Y.parse();0&&(module.exports={DEFAULT_API_URL});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scheduler-systems/gal-cli",
3
- "version": "0.1.13-alpha.pr417",
3
+ "version": "0.1.13-alpha.pr472",
4
4
  "description": "GAL CLI - Command-line tool for managing AI agent configurations across your organization",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,