flins 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +51 -1
  2. package/dist/index.js +64 -64
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1 +1,51 @@
1
- # flins cli
1
+ # flins
2
+
3
+ Universal skill and command manager for AI coding agents.
4
+
5
+ Install, manage, and update skills and commands across 16+ AI development tools from a single unified interface.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ # Using npx (recommended)
11
+ npx flins@latest add <source>
12
+
13
+ # Install globally
14
+ npm install -g flins
15
+ flins add <source>
16
+ ```
17
+
18
+ ## Quick Start
19
+
20
+ ```bash
21
+ # Install from flins directory
22
+ npx flins@latest add better-auth
23
+
24
+ # Install from GitHub
25
+ npx flins@latest add expo/skills
26
+
27
+ # Install from any git repo
28
+ npx flins@latest add https://gitlab.com/org/repo
29
+
30
+ # Install globally
31
+ npx flins@latest add expo --global
32
+
33
+ # Browse available skills
34
+ npx flins@latest search
35
+ ```
36
+
37
+ ## Available Commands
38
+
39
+ | Command | Description |
40
+ | ---------------- | ----------------------------------- |
41
+ | `flins add` | Install skills/commands from source |
42
+ | `flins update` | Update installed skills/commands |
43
+ | `flins outdated` | Check for available updates |
44
+ | `flins remove` | Uninstall skills/commands |
45
+ | `flins list` | List all installed skills/commands |
46
+ | `flins search` | Interactive skill browser |
47
+ | `flins clean` | Remove orphaned state entries |
48
+
49
+ ## Documentation
50
+
51
+ For complete documentation, see the [main README](../../README.md).
package/dist/index.js CHANGED
@@ -1,102 +1,102 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as c1}from"node:module";var j1=Object.create;var{getPrototypeOf:K1,defineProperty:Kr,getOwnPropertyNames:H1}=Object;var E1=Object.prototype.hasOwnProperty;var O=(f,r,y)=>{y=f!=null?j1(K1(f)):{};let i=r||!f||!f.__esModule?Kr(y,"default",{value:f,enumerable:!0}):y;for(let n of H1(f))if(!E1.call(i,n))Kr(i,n,{get:()=>f[n],enumerable:!0});return i};var Df=(f,r)=>()=>(r||f((r={exports:{}}).exports,r),r.exports);var G1=(f,r)=>{for(var y in r)Kr(f,y,{get:r[y],enumerable:!0,configurable:!0,set:(i)=>r[y]=()=>i})};var W=(f,r)=>()=>(f&&(r=f(f=0)),r);var Xf=c1(import.meta.url);var Mf=Df((W1)=>{class Hr extends Error{constructor(f,r,y){super(y);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=f,this.nestedError=void 0}}class Vy extends Hr{constructor(f){super(1,"commander.invalidArgument",f);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}W1.CommanderError=Hr;W1.InvalidArgumentError=Vy});var gf=Df((F1)=>{var{InvalidArgumentError:N1}=Mf();class gy{constructor(f,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,f[0]){case"<":this.required=!0,this._name=f.slice(1,-1);break;case"[":this.required=!1,this._name=f.slice(1,-1);break;default:this.required=!0,this._name=f;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(f,r){if(r===this.defaultValue||!Array.isArray(r))return[f];return r.push(f),r}default(f,r){return this.defaultValue=f,this.defaultValueDescription=r,this}argParser(f){return this.parseArg=f,this}choices(f){return this.argChoices=f.slice(),this.parseArg=(r,y)=>{if(!this.argChoices.includes(r))throw new N1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(r,y);return r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function C1(f){let r=f.name()+(f.variadic===!0?"...":"");return f.required?"<"+r+">":"["+r+"]"}F1.Argument=gy;F1.humanReadableArgName=C1});var Er=Df((A1)=>{var{humanReadableArgName:v1}=gf();class Ny{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(f){this.helpWidth=this.helpWidth??f.helpWidth??80}visibleCommands(f){let r=f.commands.filter((i)=>!i._hidden),y=f._getHelpCommand();if(y&&!y._hidden)r.push(y);if(this.sortSubcommands)r.sort((i,n)=>{return i.name().localeCompare(n.name())});return r}compareOptions(f,r){let y=(i)=>{return i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"")};return y(f).localeCompare(y(r))}visibleOptions(f){let r=f.options.filter((i)=>!i.hidden),y=f._getHelpOption();if(y&&!y.hidden){let i=y.short&&f._findOption(y.short),n=y.long&&f._findOption(y.long);if(!i&&!n)r.push(y);else if(y.long&&!n)r.push(f.createOption(y.long,y.description));else if(y.short&&!i)r.push(f.createOption(y.short,y.description))}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleGlobalOptions(f){if(!this.showGlobalOptions)return[];let r=[];for(let y=f.parent;y;y=y.parent){let i=y.options.filter((n)=>!n.hidden);r.push(...i)}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleArguments(f){if(f._argsDescription)f.registeredArguments.forEach((r)=>{r.description=r.description||f._argsDescription[r.name()]||""});if(f.registeredArguments.find((r)=>r.description))return f.registeredArguments;return[]}subcommandTerm(f){let r=f.registeredArguments.map((y)=>v1(y)).join(" ");return f._name+(f._aliases[0]?"|"+f._aliases[0]:"")+(f.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(f){return f.flags}argumentTerm(f){return f.name()}longestSubcommandTermLength(f,r){return r.visibleCommands(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(i))))},0)}longestOptionTermLength(f,r){return r.visibleOptions(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestGlobalOptionTermLength(f,r){return r.visibleGlobalOptions(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestArgumentTermLength(f,r){return r.visibleArguments(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(i))))},0)}commandUsage(f){let r=f._name;if(f._aliases[0])r=r+"|"+f._aliases[0];let y="";for(let i=f.parent;i;i=i.parent)y=i.name()+" "+y;return y+r+" "+f.usage()}commandDescription(f){return f.description()}subcommandDescription(f){return f.summary()||f.description()}optionDescription(f){let r=[];if(f.argChoices)r.push(`choices: ${f.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(f.defaultValue!==void 0){if(f.required||f.optional||f.isBoolean()&&typeof f.defaultValue==="boolean")r.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`)}if(f.presetArg!==void 0&&f.optional)r.push(`preset: ${JSON.stringify(f.presetArg)}`);if(f.envVar!==void 0)r.push(`env: ${f.envVar}`);if(r.length>0){let y=`(${r.join(", ")})`;if(f.description)return`${f.description} ${y}`;return y}return f.description}argumentDescription(f){let r=[];if(f.argChoices)r.push(`choices: ${f.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(f.defaultValue!==void 0)r.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`);if(r.length>0){let y=`(${r.join(", ")})`;if(f.description)return`${f.description} ${y}`;return y}return f.description}formatItemList(f,r,y){if(r.length===0)return[];return[y.styleTitle(f),...r,""]}groupItems(f,r,y){let i=new Map;return f.forEach((n)=>{let b=y(n);if(!i.has(b))i.set(b,[])}),r.forEach((n)=>{let b=y(n);if(!i.has(b))i.set(b,[]);i.get(b).push(n)}),i}formatHelp(f,r){let y=r.padWidth(f,r),i=r.helpWidth??80;function n(T,o){return r.formatItem(T,y,o,r)}let b=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(f))}`,""],S=r.commandDescription(f);if(S.length>0)b=b.concat([r.boxWrap(r.styleCommandDescription(S),i),""]);let D=r.visibleArguments(f).map((T)=>{return n(r.styleArgumentTerm(r.argumentTerm(T)),r.styleArgumentDescription(r.argumentDescription(T)))});if(b=b.concat(this.formatItemList("Arguments:",D,r)),this.groupItems(f.options,r.visibleOptions(f),(T)=>T.helpGroupHeading??"Options:").forEach((T,o)=>{let _=T.map((I)=>{return n(r.styleOptionTerm(r.optionTerm(I)),r.styleOptionDescription(r.optionDescription(I)))});b=b.concat(this.formatItemList(o,_,r))}),r.showGlobalOptions){let T=r.visibleGlobalOptions(f).map((o)=>{return n(r.styleOptionTerm(r.optionTerm(o)),r.styleOptionDescription(r.optionDescription(o)))});b=b.concat(this.formatItemList("Global Options:",T,r))}return this.groupItems(f.commands,r.visibleCommands(f),(T)=>T.helpGroup()||"Commands:").forEach((T,o)=>{let _=T.map((I)=>{return n(r.styleSubcommandTerm(r.subcommandTerm(I)),r.styleSubcommandDescription(r.subcommandDescription(I)))});b=b.concat(this.formatItemList(o,_,r))}),b.join(`
3
- `)}displayWidth(f){return Cy(f).length}styleTitle(f){return f}styleUsage(f){return f.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r==="[command]")return this.styleSubcommandText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleCommandText(r)}).join(" ")}styleCommandDescription(f){return this.styleDescriptionText(f)}styleOptionDescription(f){return this.styleDescriptionText(f)}styleSubcommandDescription(f){return this.styleDescriptionText(f)}styleArgumentDescription(f){return this.styleDescriptionText(f)}styleDescriptionText(f){return f}styleOptionTerm(f){return this.styleOptionText(f)}styleSubcommandTerm(f){return f.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleSubcommandText(r)}).join(" ")}styleArgumentTerm(f){return this.styleArgumentText(f)}styleOptionText(f){return f}styleArgumentText(f){return f}styleSubcommandText(f){return f}styleCommandText(f){return f}padWidth(f,r){return Math.max(r.longestOptionTermLength(f,r),r.longestGlobalOptionTermLength(f,r),r.longestSubcommandTermLength(f,r),r.longestArgumentTermLength(f,r))}preformatted(f){return/\n[^\S\r\n]/.test(f)}formatItem(f,r,y,i){let b=" ".repeat(2);if(!y)return b+f;let S=f.padEnd(r+f.length-i.displayWidth(f)),D=2,l=(this.helpWidth??80)-r-D-2,T;if(l<this.minWidthToWrap||i.preformatted(y))T=y;else T=i.boxWrap(y,l).replace(/\n/g,`
2
+ import{createRequire as gn}from"node:module";var Hn=Object.create;var{getPrototypeOf:En,defineProperty:Hr,getOwnPropertyNames:Gn}=Object;var Wn=Object.prototype.hasOwnProperty;var O=(f,r,y)=>{y=f!=null?Hn(En(f)):{};let i=r||!f||!f.__esModule?Hr(y,"default",{value:f,enumerable:!0}):y;for(let n of Gn(f))if(!Wn.call(i,n))Hr(i,n,{get:()=>f[n],enumerable:!0});return i};var Df=(f,r)=>()=>(r||f((r={exports:{}}).exports,r),r.exports);var Vn=(f,r)=>{for(var y in r)Hr(f,y,{get:r[y],enumerable:!0,configurable:!0,set:(i)=>r[y]=()=>i})};var W=(f,r)=>()=>(f&&(r=f(f=0)),r);var Xf=gn(import.meta.url);var Mf=Df((Nn)=>{class Er extends Error{constructor(f,r,y){super(y);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=r,this.exitCode=f,this.nestedError=void 0}}class Vy extends Er{constructor(f){super(1,"commander.invalidArgument",f);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}Nn.CommanderError=Er;Nn.InvalidArgumentError=Vy});var Cf=Df((vn)=>{var{InvalidArgumentError:On}=Mf();class gy{constructor(f,r){switch(this.description=r||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,f[0]){case"<":this.required=!0,this._name=f.slice(1,-1);break;case"[":this.required=!1,this._name=f.slice(1,-1);break;default:this.required=!0,this._name=f;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(f,r){if(r===this.defaultValue||!Array.isArray(r))return[f];return r.push(f),r}default(f,r){return this.defaultValue=f,this.defaultValueDescription=r,this}argParser(f){return this.parseArg=f,this}choices(f){return this.argChoices=f.slice(),this.parseArg=(r,y)=>{if(!this.argChoices.includes(r))throw new On(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(r,y);return r},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function un(f){let r=f.name()+(f.variadic===!0?"...":"");return f.required?"<"+r+">":"["+r+"]"}vn.Argument=gy;vn.humanReadableArgName=un});var Gr=Df((an)=>{var{humanReadableArgName:mn}=Cf();class Ny{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(f){this.helpWidth=this.helpWidth??f.helpWidth??80}visibleCommands(f){let r=f.commands.filter((i)=>!i._hidden),y=f._getHelpCommand();if(y&&!y._hidden)r.push(y);if(this.sortSubcommands)r.sort((i,n)=>{return i.name().localeCompare(n.name())});return r}compareOptions(f,r){let y=(i)=>{return i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"")};return y(f).localeCompare(y(r))}visibleOptions(f){let r=f.options.filter((i)=>!i.hidden),y=f._getHelpOption();if(y&&!y.hidden){let i=y.short&&f._findOption(y.short),n=y.long&&f._findOption(y.long);if(!i&&!n)r.push(y);else if(y.long&&!n)r.push(f.createOption(y.long,y.description));else if(y.short&&!i)r.push(f.createOption(y.short,y.description))}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleGlobalOptions(f){if(!this.showGlobalOptions)return[];let r=[];for(let y=f.parent;y;y=y.parent){let i=y.options.filter((n)=>!n.hidden);r.push(...i)}if(this.sortOptions)r.sort(this.compareOptions);return r}visibleArguments(f){if(f._argsDescription)f.registeredArguments.forEach((r)=>{r.description=r.description||f._argsDescription[r.name()]||""});if(f.registeredArguments.find((r)=>r.description))return f.registeredArguments;return[]}subcommandTerm(f){let r=f.registeredArguments.map((y)=>mn(y)).join(" ");return f._name+(f._aliases[0]?"|"+f._aliases[0]:"")+(f.options.length?" [options]":"")+(r?" "+r:"")}optionTerm(f){return f.flags}argumentTerm(f){return f.name()}longestSubcommandTermLength(f,r){return r.visibleCommands(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleSubcommandTerm(r.subcommandTerm(i))))},0)}longestOptionTermLength(f,r){return r.visibleOptions(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestGlobalOptionTermLength(f,r){return r.visibleGlobalOptions(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleOptionTerm(r.optionTerm(i))))},0)}longestArgumentTermLength(f,r){return r.visibleArguments(f).reduce((y,i)=>{return Math.max(y,this.displayWidth(r.styleArgumentTerm(r.argumentTerm(i))))},0)}commandUsage(f){let r=f._name;if(f._aliases[0])r=r+"|"+f._aliases[0];let y="";for(let i=f.parent;i;i=i.parent)y=i.name()+" "+y;return y+r+" "+f.usage()}commandDescription(f){return f.description()}subcommandDescription(f){return f.summary()||f.description()}optionDescription(f){let r=[];if(f.argChoices)r.push(`choices: ${f.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(f.defaultValue!==void 0){if(f.required||f.optional||f.isBoolean()&&typeof f.defaultValue==="boolean")r.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`)}if(f.presetArg!==void 0&&f.optional)r.push(`preset: ${JSON.stringify(f.presetArg)}`);if(f.envVar!==void 0)r.push(`env: ${f.envVar}`);if(r.length>0){let y=`(${r.join(", ")})`;if(f.description)return`${f.description} ${y}`;return y}return f.description}argumentDescription(f){let r=[];if(f.argChoices)r.push(`choices: ${f.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(f.defaultValue!==void 0)r.push(`default: ${f.defaultValueDescription||JSON.stringify(f.defaultValue)}`);if(r.length>0){let y=`(${r.join(", ")})`;if(f.description)return`${f.description} ${y}`;return y}return f.description}formatItemList(f,r,y){if(r.length===0)return[];return[y.styleTitle(f),...r,""]}groupItems(f,r,y){let i=new Map;return f.forEach((n)=>{let b=y(n);if(!i.has(b))i.set(b,[])}),r.forEach((n)=>{let b=y(n);if(!i.has(b))i.set(b,[]);i.get(b).push(n)}),i}formatHelp(f,r){let y=r.padWidth(f,r),i=r.helpWidth??80;function n(T,I){return r.formatItem(T,y,I,r)}let b=[`${r.styleTitle("Usage:")} ${r.styleUsage(r.commandUsage(f))}`,""],S=r.commandDescription(f);if(S.length>0)b=b.concat([r.boxWrap(r.styleCommandDescription(S),i),""]);let D=r.visibleArguments(f).map((T)=>{return n(r.styleArgumentTerm(r.argumentTerm(T)),r.styleArgumentDescription(r.argumentDescription(T)))});if(b=b.concat(this.formatItemList("Arguments:",D,r)),this.groupItems(f.options,r.visibleOptions(f),(T)=>T.helpGroupHeading??"Options:").forEach((T,I)=>{let _=T.map((R)=>{return n(r.styleOptionTerm(r.optionTerm(R)),r.styleOptionDescription(r.optionDescription(R)))});b=b.concat(this.formatItemList(I,_,r))}),r.showGlobalOptions){let T=r.visibleGlobalOptions(f).map((I)=>{return n(r.styleOptionTerm(r.optionTerm(I)),r.styleOptionDescription(r.optionDescription(I)))});b=b.concat(this.formatItemList("Global Options:",T,r))}return this.groupItems(f.commands,r.visibleCommands(f),(T)=>T.helpGroup()||"Commands:").forEach((T,I)=>{let _=T.map((R)=>{return n(r.styleSubcommandTerm(r.subcommandTerm(R)),r.styleSubcommandDescription(r.subcommandDescription(R)))});b=b.concat(this.formatItemList(I,_,r))}),b.join(`
3
+ `)}displayWidth(f){return Cy(f).length}styleTitle(f){return f}styleUsage(f){return f.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r==="[command]")return this.styleSubcommandText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleCommandText(r)}).join(" ")}styleCommandDescription(f){return this.styleDescriptionText(f)}styleOptionDescription(f){return this.styleDescriptionText(f)}styleSubcommandDescription(f){return this.styleDescriptionText(f)}styleArgumentDescription(f){return this.styleDescriptionText(f)}styleDescriptionText(f){return f}styleOptionTerm(f){return this.styleOptionText(f)}styleSubcommandTerm(f){return f.split(" ").map((r)=>{if(r==="[options]")return this.styleOptionText(r);if(r[0]==="["||r[0]==="<")return this.styleArgumentText(r);return this.styleSubcommandText(r)}).join(" ")}styleArgumentTerm(f){return this.styleArgumentText(f)}styleOptionText(f){return f}styleArgumentText(f){return f}styleSubcommandText(f){return f}styleCommandText(f){return f}padWidth(f,r){return Math.max(r.longestOptionTermLength(f,r),r.longestGlobalOptionTermLength(f,r),r.longestSubcommandTermLength(f,r),r.longestArgumentTermLength(f,r))}preformatted(f){return/\n[^\S\r\n]/.test(f)}formatItem(f,r,y,i){let b=" ".repeat(2);if(!y)return b+f;let S=f.padEnd(r+f.length-i.displayWidth(f)),D=2,$=(this.helpWidth??80)-r-D-2,T;if($<this.minWidthToWrap||i.preformatted(y))T=y;else T=i.boxWrap(y,$).replace(/\n/g,`
4
4
  `+" ".repeat(r+D));return b+S+" ".repeat(D)+T.replace(/\n/g,`
5
- ${b}`)}boxWrap(f,r){if(r<this.minWidthToWrap)return f;let y=f.split(/\r\n|\n/),i=/[\s]*[^\s]+/g,n=[];return y.forEach((b)=>{let S=b.match(i);if(S===null){n.push("");return}let D=[S.shift()],$=this.displayWidth(D[0]);S.forEach((l)=>{let T=this.displayWidth(l);if($+T<=r){D.push(l),$+=T;return}n.push(D.join(""));let o=l.trimStart();D=[o],$=this.displayWidth(o)}),n.push(D.join(""))}),n.join(`
6
- `)}}function Cy(f){let r=/\x1b\[\d*(;\d*)*m/g;return f.replace(r,"")}A1.Help=Ny;A1.stripColor=Cy});var Gr=Df((p1)=>{var{InvalidArgumentError:a1}=Mf();class Oy{constructor(f,r){this.flags=f,this.description=r||"",this.required=f.includes("<"),this.optional=f.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(f),this.mandatory=!1;let y=s1(f);if(this.short=y.shortFlag,this.long=y.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,this.helpGroupHeading=void 0}default(f,r){return this.defaultValue=f,this.defaultValueDescription=r,this}preset(f){return this.presetArg=f,this}conflicts(f){return this.conflictsWith=this.conflictsWith.concat(f),this}implies(f){let r=f;if(typeof f==="string")r={[f]:!0};return this.implied=Object.assign(this.implied||{},r),this}env(f){return this.envVar=f,this}argParser(f){return this.parseArg=f,this}makeOptionMandatory(f=!0){return this.mandatory=!!f,this}hideHelp(f=!0){return this.hidden=!!f,this}_collectValue(f,r){if(r===this.defaultValue||!Array.isArray(r))return[f];return r.push(f),r}choices(f){return this.argChoices=f.slice(),this.parseArg=(r,y)=>{if(!this.argChoices.includes(r))throw new a1(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(r,y);return r},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return Fy(this.name().replace(/^no-/,""));return Fy(this.name())}helpGroup(f){return this.helpGroupHeading=f,this}is(f){return this.short===f||this.long===f}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class uy{constructor(f){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,f.forEach((r)=>{if(r.negate)this.negativeOptions.set(r.attributeName(),r);else this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,y)=>{if(this.positiveOptions.has(y))this.dualOptions.add(y)})}valueFromOption(f,r){let y=r.attributeName();if(!this.dualOptions.has(y))return!0;let i=this.negativeOptions.get(y).presetArg,n=i!==void 0?i:!1;return r.negate===(n===f)}}function Fy(f){return f.split("-").reduce((r,y)=>{return r+y[0].toUpperCase()+y.slice(1)})}function s1(f){let r,y,i=/^-[^-]$/,n=/^--[^-]/,b=f.split(/[ |,]+/).concat("guard");if(i.test(b[0]))r=b.shift();if(n.test(b[0]))y=b.shift();if(!r&&i.test(b[0]))r=b.shift();if(!r&&n.test(b[0]))r=y,y=b.shift();if(b[0].startsWith("-")){let S=b[0],D=`option creation failed due to '${S}' in option flags '${f}'`;if(/^-[^-][^-]/.test(S))throw Error(`${D}
5
+ ${b}`)}boxWrap(f,r){if(r<this.minWidthToWrap)return f;let y=f.split(/\r\n|\n/),i=/[\s]*[^\s]+/g,n=[];return y.forEach((b)=>{let S=b.match(i);if(S===null){n.push("");return}let D=[S.shift()],l=this.displayWidth(D[0]);S.forEach(($)=>{let T=this.displayWidth($);if(l+T<=r){D.push($),l+=T;return}n.push(D.join(""));let I=$.trimStart();D=[I],l=this.displayWidth(I)}),n.push(D.join(""))}),n.join(`
6
+ `)}}function Cy(f){let r=/\x1b\[\d*(;\d*)*m/g;return f.replace(r,"")}an.Help=Ny;an.stripColor=Cy});var Wr=Df((en)=>{var{InvalidArgumentError:dn}=Mf();class Oy{constructor(f,r){this.flags=f,this.description=r||"",this.required=f.includes("<"),this.optional=f.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(f),this.mandatory=!1;let y=tn(f);if(this.short=y.shortFlag,this.long=y.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,this.helpGroupHeading=void 0}default(f,r){return this.defaultValue=f,this.defaultValueDescription=r,this}preset(f){return this.presetArg=f,this}conflicts(f){return this.conflictsWith=this.conflictsWith.concat(f),this}implies(f){let r=f;if(typeof f==="string")r={[f]:!0};return this.implied=Object.assign(this.implied||{},r),this}env(f){return this.envVar=f,this}argParser(f){return this.parseArg=f,this}makeOptionMandatory(f=!0){return this.mandatory=!!f,this}hideHelp(f=!0){return this.hidden=!!f,this}_collectValue(f,r){if(r===this.defaultValue||!Array.isArray(r))return[f];return r.push(f),r}choices(f){return this.argChoices=f.slice(),this.parseArg=(r,y)=>{if(!this.argChoices.includes(r))throw new dn(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(r,y);return r},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return Fy(this.name().replace(/^no-/,""));return Fy(this.name())}helpGroup(f){return this.helpGroupHeading=f,this}is(f){return this.short===f||this.long===f}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class uy{constructor(f){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,f.forEach((r)=>{if(r.negate)this.negativeOptions.set(r.attributeName(),r);else this.positiveOptions.set(r.attributeName(),r)}),this.negativeOptions.forEach((r,y)=>{if(this.positiveOptions.has(y))this.dualOptions.add(y)})}valueFromOption(f,r){let y=r.attributeName();if(!this.dualOptions.has(y))return!0;let i=this.negativeOptions.get(y).presetArg,n=i!==void 0?i:!1;return r.negate===(n===f)}}function Fy(f){return f.split("-").reduce((r,y)=>{return r+y[0].toUpperCase()+y.slice(1)})}function tn(f){let r,y,i=/^-[^-]$/,n=/^--[^-]/,b=f.split(/[ |,]+/).concat("guard");if(i.test(b[0]))r=b.shift();if(n.test(b[0]))y=b.shift();if(!r&&i.test(b[0]))r=b.shift();if(!r&&n.test(b[0]))r=y,y=b.shift();if(b[0].startsWith("-")){let S=b[0],D=`option creation failed due to '${S}' in option flags '${f}'`;if(/^-[^-][^-]/.test(S))throw Error(`${D}
7
7
  - a short flag is a single dash and a single character
8
8
  - either use a single dash and a single character (for a short flag)
9
9
  - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(i.test(S))throw Error(`${D}
10
10
  - too many short flags`);if(n.test(S))throw Error(`${D}
11
11
  - too many long flags`);throw Error(`${D}
12
- - unrecognised flag format`)}if(r===void 0&&y===void 0)throw Error(`option creation failed due to no flags found in '${f}'.`);return{shortFlag:r,longFlag:y}}p1.Option=Oy;p1.DualOptions=uy});var vy=Df((rn)=>{function e1(f,r){if(Math.abs(f.length-r.length)>3)return Math.max(f.length,r.length);let y=[];for(let i=0;i<=f.length;i++)y[i]=[i];for(let i=0;i<=r.length;i++)y[0][i]=i;for(let i=1;i<=r.length;i++)for(let n=1;n<=f.length;n++){let b=1;if(f[n-1]===r[i-1])b=0;else b=1;if(y[n][i]=Math.min(y[n-1][i]+1,y[n][i-1]+1,y[n-1][i-1]+b),n>1&&i>1&&f[n-1]===r[i-2]&&f[n-2]===r[i-1])y[n][i]=Math.min(y[n][i],y[n-2][i-2]+1)}return y[f.length][r.length]}function fn(f,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));let y=f.startsWith("--");if(y)f=f.slice(2),r=r.map((S)=>S.slice(2));let i=[],n=3,b=0.4;if(r.forEach((S)=>{if(S.length<=1)return;let D=e1(f,S),$=Math.max(f.length,S.length);if(($-D)/$>b){if(D<n)n=D,i=[S];else if(D===n)i.push(S)}}),i.sort((S,D)=>S.localeCompare(D)),y)i=i.map((S)=>`--${S}`);if(i.length>1)return`
12
+ - unrecognised flag format`)}if(r===void 0&&y===void 0)throw Error(`option creation failed due to no flags found in '${f}'.`);return{shortFlag:r,longFlag:y}}en.Option=Oy;en.DualOptions=uy});var vy=Df((n1)=>{function y1(f,r){if(Math.abs(f.length-r.length)>3)return Math.max(f.length,r.length);let y=[];for(let i=0;i<=f.length;i++)y[i]=[i];for(let i=0;i<=r.length;i++)y[0][i]=i;for(let i=1;i<=r.length;i++)for(let n=1;n<=f.length;n++){let b=1;if(f[n-1]===r[i-1])b=0;else b=1;if(y[n][i]=Math.min(y[n-1][i]+1,y[n][i-1]+1,y[n-1][i-1]+b),n>1&&i>1&&f[n-1]===r[i-2]&&f[n-2]===r[i-1])y[n][i]=Math.min(y[n][i],y[n-2][i-2]+1)}return y[f.length][r.length]}function i1(f,r){if(!r||r.length===0)return"";r=Array.from(new Set(r));let y=f.startsWith("--");if(y)f=f.slice(2),r=r.map((S)=>S.slice(2));let i=[],n=3,b=0.4;if(r.forEach((S)=>{if(S.length<=1)return;let D=y1(f,S),l=Math.max(f.length,S.length);if((l-D)/l>b){if(D<n)n=D,i=[S];else if(D===n)i.push(S)}}),i.sort((S,D)=>S.localeCompare(D)),y)i=i.map((S)=>`--${S}`);if(i.length>1)return`
13
13
  (Did you mean one of ${i.join(", ")}?)`;if(i.length===1)return`
14
- (Did you mean ${i[0]}?)`;return""}rn.suggestSimilar=fn});var ay=Df((Tn)=>{var nn=Xf("node:events").EventEmitter,cr=Xf("node:child_process"),Sf=Xf("node:path"),Nf=Xf("node:fs"),G=Xf("node:process"),{Argument:bn,humanReadableArgName:Dn}=gf(),{CommanderError:Wr}=Mf(),{Help:Sn,stripColor:$n}=Er(),{Option:Ay,DualOptions:ln}=Gr(),{suggestSimilar:hy}=vy();class gr extends nn{constructor(f){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=f||"",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._savedState=null,this._outputConfiguration={writeOut:(r)=>G.stdout.write(r),writeErr:(r)=>G.stderr.write(r),outputError:(r,y)=>y(r),getOutHelpWidth:()=>G.stdout.isTTY?G.stdout.columns:void 0,getErrHelpWidth:()=>G.stderr.isTTY?G.stderr.columns:void 0,getOutHasColors:()=>Vr()??(G.stdout.isTTY&&G.stdout.hasColors?.()),getErrHasColors:()=>Vr()??(G.stderr.isTTY&&G.stderr.hasColors?.()),stripColor:(r)=>$n(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(f){return this._outputConfiguration=f._outputConfiguration,this._helpOption=f._helpOption,this._helpCommand=f._helpCommand,this._helpConfiguration=f._helpConfiguration,this._exitCallback=f._exitCallback,this._storeOptionsAsProperties=f._storeOptionsAsProperties,this._combineFlagAndOptionalValue=f._combineFlagAndOptionalValue,this._allowExcessArguments=f._allowExcessArguments,this._enablePositionalOptions=f._enablePositionalOptions,this._showHelpAfterError=f._showHelpAfterError,this._showSuggestionAfterError=f._showSuggestionAfterError,this}_getCommandAndAncestors(){let f=[];for(let r=this;r;r=r.parent)f.push(r);return f}command(f,r,y){let i=r,n=y;if(typeof i==="object"&&i!==null)n=i,i=null;n=n||{};let[,b,S]=f.match(/([^ ]+) *(.*)/),D=this.createCommand(b);if(i)D.description(i),D._executableHandler=!0;if(n.isDefault)this._defaultCommandName=D._name;if(D._hidden=!!(n.noHelp||n.hidden),D._executableFile=n.executableFile||null,S)D.arguments(S);if(this._registerCommand(D),D.parent=this,D.copyInheritedSettings(this),i)return this;return D}createCommand(f){return new gr(f)}createHelp(){return Object.assign(new Sn,this.configureHelp())}configureHelp(f){if(f===void 0)return this._helpConfiguration;return this._helpConfiguration=f,this}configureOutput(f){if(f===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...f},this}showHelpAfterError(f=!0){if(typeof f!=="string")f=!!f;return this._showHelpAfterError=f,this}showSuggestionAfterError(f=!0){return this._showSuggestionAfterError=!!f,this}addCommand(f,r){if(!f._name)throw Error(`Command passed to .addCommand() must have a name
15
- - specify the name in Command constructor or using .name()`);if(r=r||{},r.isDefault)this._defaultCommandName=f._name;if(r.noHelp||r.hidden)f._hidden=!0;return this._registerCommand(f),f.parent=this,f._checkForBrokenPassThrough(),this}createArgument(f,r){return new bn(f,r)}argument(f,r,y,i){let n=this.createArgument(f,r);if(typeof y==="function")n.default(i).argParser(y);else n.default(y);return this.addArgument(n),this}arguments(f){return f.trim().split(/ +/).forEach((r)=>{this.argument(r)}),this}addArgument(f){let r=this.registeredArguments.slice(-1)[0];if(r?.variadic)throw Error(`only the last argument can be variadic '${r.name()}'`);if(f.required&&f.defaultValue!==void 0&&f.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${f.name()}'`);return this.registeredArguments.push(f),this}helpCommand(f,r){if(typeof f==="boolean"){if(this._addImplicitHelpCommand=f,f&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let y=f??"help [command]",[,i,n]=y.match(/([^ ]+) *(.*)/),b=r??"display help for command",S=this.createCommand(i);if(S.helpOption(!1),n)S.arguments(n);if(b)S.description(b);if(this._addImplicitHelpCommand=!0,this._helpCommand=S,f||r)this._initCommandGroup(S);return this}addHelpCommand(f,r){if(typeof f!=="object")return this.helpCommand(f,r),this;return this._addImplicitHelpCommand=!0,this._helpCommand=f,this._initCommandGroup(f),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(f,r){let y=["preSubcommand","preAction","postAction"];if(!y.includes(f))throw Error(`Unexpected value for event passed to hook : '${f}'.
16
- Expecting one of '${y.join("', '")}'`);if(this._lifeCycleHooks[f])this._lifeCycleHooks[f].push(r);else this._lifeCycleHooks[f]=[r];return this}exitOverride(f){if(f)this._exitCallback=f;else this._exitCallback=(r)=>{if(r.code!=="commander.executeSubCommandAsync")throw r};return this}_exit(f,r,y){if(this._exitCallback)this._exitCallback(new Wr(f,r,y));G.exit(f)}action(f){let r=(y)=>{let i=this.registeredArguments.length,n=y.slice(0,i);if(this._storeOptionsAsProperties)n[i]=this;else n[i]=this.opts();return n.push(this),f.apply(this,n)};return this._actionHandler=r,this}createOption(f,r){return new Ay(f,r)}_callParseArg(f,r,y,i){try{return f.parseArg(r,y)}catch(n){if(n.code==="commander.invalidArgument"){let b=`${i} ${n.message}`;this.error(b,{exitCode:n.exitCode,code:n.code})}throw n}}_registerOption(f){let r=f.short&&this._findOption(f.short)||f.long&&this._findOption(f.long);if(r){let y=f.long&&this._findOption(f.long)?f.long:f.short;throw Error(`Cannot add option '${f.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${y}'
17
- - already used by option '${r.flags}'`)}this._initOptionGroup(f),this.options.push(f)}_registerCommand(f){let r=(i)=>{return[i.name()].concat(i.aliases())},y=r(f).find((i)=>this._findCommand(i));if(y){let i=r(this._findCommand(y)).join("|"),n=r(f).join("|");throw Error(`cannot add command '${n}' as already have command '${i}'`)}this._initCommandGroup(f),this.commands.push(f)}addOption(f){this._registerOption(f);let r=f.name(),y=f.attributeName();if(f.negate){let n=f.long.replace(/^--no-/,"--");if(!this._findOption(n))this.setOptionValueWithSource(y,f.defaultValue===void 0?!0:f.defaultValue,"default")}else if(f.defaultValue!==void 0)this.setOptionValueWithSource(y,f.defaultValue,"default");let i=(n,b,S)=>{if(n==null&&f.presetArg!==void 0)n=f.presetArg;let D=this.getOptionValue(y);if(n!==null&&f.parseArg)n=this._callParseArg(f,n,D,b);else if(n!==null&&f.variadic)n=f._collectValue(n,D);if(n==null)if(f.negate)n=!1;else if(f.isBoolean()||f.optional)n=!0;else n="";this.setOptionValueWithSource(y,n,S)};if(this.on("option:"+r,(n)=>{let b=`error: option '${f.flags}' argument '${n}' is invalid.`;i(n,b,"cli")}),f.envVar)this.on("optionEnv:"+r,(n)=>{let b=`error: option '${f.flags}' value '${n}' from env '${f.envVar}' is invalid.`;i(n,b,"env")});return this}_optionEx(f,r,y,i,n){if(typeof r==="object"&&r instanceof Ay)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let b=this.createOption(r,y);if(b.makeOptionMandatory(!!f.mandatory),typeof i==="function")b.default(n).argParser(i);else if(i instanceof RegExp){let S=i;i=(D,$)=>{let l=S.exec(D);return l?l[0]:$},b.default(n).argParser(i)}else b.default(i);return this.addOption(b)}option(f,r,y,i){return this._optionEx({},f,r,y,i)}requiredOption(f,r,y,i){return this._optionEx({mandatory:!0},f,r,y,i)}combineFlagAndOptionalValue(f=!0){return this._combineFlagAndOptionalValue=!!f,this}allowUnknownOption(f=!0){return this._allowUnknownOption=!!f,this}allowExcessArguments(f=!0){return this._allowExcessArguments=!!f,this}enablePositionalOptions(f=!0){return this._enablePositionalOptions=!!f,this}passThroughOptions(f=!0){return this._passThroughOptions=!!f,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(f=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!f,this}getOptionValue(f){if(this._storeOptionsAsProperties)return this[f];return this._optionValues[f]}setOptionValue(f,r){return this.setOptionValueWithSource(f,r,void 0)}setOptionValueWithSource(f,r,y){if(this._storeOptionsAsProperties)this[f]=r;else this._optionValues[f]=r;return this._optionValueSources[f]=y,this}getOptionValueSource(f){return this._optionValueSources[f]}getOptionValueSourceWithGlobals(f){let r;return this._getCommandAndAncestors().forEach((y)=>{if(y.getOptionValueSource(f)!==void 0)r=y.getOptionValueSource(f)}),r}_prepareUserArgs(f,r){if(f!==void 0&&!Array.isArray(f))throw Error("first parameter to parse must be array or undefined");if(r=r||{},f===void 0&&r.from===void 0){if(G.versions?.electron)r.from="electron";let i=G.execArgv??[];if(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))r.from="eval"}if(f===void 0)f=G.argv;this.rawArgs=f.slice();let y;switch(r.from){case void 0:case"node":this._scriptPath=f[1],y=f.slice(2);break;case"electron":if(G.defaultApp)this._scriptPath=f[1],y=f.slice(2);else y=f.slice(1);break;case"user":y=f.slice(0);break;case"eval":y=f.slice(1);break;default:throw Error(`unexpected parse option { from: '${r.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",y}parse(f,r){this._prepareForParse();let y=this._prepareUserArgs(f,r);return this._parseCommand([],y),this}async parseAsync(f,r){this._prepareForParse();let y=this._prepareUserArgs(f,r);return await this._parseCommand([],y),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
18
- - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(f,r,y){if(Nf.existsSync(f))return;let i=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",n=`'${f}' does not exist
14
+ (Did you mean ${i[0]}?)`;return""}n1.suggestSimilar=i1});var ay=Df((o1)=>{var D1=Xf("node:events").EventEmitter,Vr=Xf("node:child_process"),Sf=Xf("node:path"),Ff=Xf("node:fs"),E=Xf("node:process"),{Argument:S1,humanReadableArgName:l1}=Cf(),{CommanderError:gr}=Mf(),{Help:$1,stripColor:T1}=Gr(),{Option:Ay,DualOptions:L1}=Wr(),{suggestSimilar:hy}=vy();class Cr extends D1{constructor(f){super();this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=f||"",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._savedState=null,this._outputConfiguration={writeOut:(r)=>E.stdout.write(r),writeErr:(r)=>E.stderr.write(r),outputError:(r,y)=>y(r),getOutHelpWidth:()=>E.stdout.isTTY?E.stdout.columns:void 0,getErrHelpWidth:()=>E.stderr.isTTY?E.stderr.columns:void 0,getOutHasColors:()=>Nr()??(E.stdout.isTTY&&E.stdout.hasColors?.()),getErrHasColors:()=>Nr()??(E.stderr.isTTY&&E.stderr.hasColors?.()),stripColor:(r)=>T1(r)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(f){return this._outputConfiguration=f._outputConfiguration,this._helpOption=f._helpOption,this._helpCommand=f._helpCommand,this._helpConfiguration=f._helpConfiguration,this._exitCallback=f._exitCallback,this._storeOptionsAsProperties=f._storeOptionsAsProperties,this._combineFlagAndOptionalValue=f._combineFlagAndOptionalValue,this._allowExcessArguments=f._allowExcessArguments,this._enablePositionalOptions=f._enablePositionalOptions,this._showHelpAfterError=f._showHelpAfterError,this._showSuggestionAfterError=f._showSuggestionAfterError,this}_getCommandAndAncestors(){let f=[];for(let r=this;r;r=r.parent)f.push(r);return f}command(f,r,y){let i=r,n=y;if(typeof i==="object"&&i!==null)n=i,i=null;n=n||{};let[,b,S]=f.match(/([^ ]+) *(.*)/),D=this.createCommand(b);if(i)D.description(i),D._executableHandler=!0;if(n.isDefault)this._defaultCommandName=D._name;if(D._hidden=!!(n.noHelp||n.hidden),D._executableFile=n.executableFile||null,S)D.arguments(S);if(this._registerCommand(D),D.parent=this,D.copyInheritedSettings(this),i)return this;return D}createCommand(f){return new Cr(f)}createHelp(){return Object.assign(new $1,this.configureHelp())}configureHelp(f){if(f===void 0)return this._helpConfiguration;return this._helpConfiguration=f,this}configureOutput(f){if(f===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...f},this}showHelpAfterError(f=!0){if(typeof f!=="string")f=!!f;return this._showHelpAfterError=f,this}showSuggestionAfterError(f=!0){return this._showSuggestionAfterError=!!f,this}addCommand(f,r){if(!f._name)throw Error(`Command passed to .addCommand() must have a name
15
+ - specify the name in Command constructor or using .name()`);if(r=r||{},r.isDefault)this._defaultCommandName=f._name;if(r.noHelp||r.hidden)f._hidden=!0;return this._registerCommand(f),f.parent=this,f._checkForBrokenPassThrough(),this}createArgument(f,r){return new S1(f,r)}argument(f,r,y,i){let n=this.createArgument(f,r);if(typeof y==="function")n.default(i).argParser(y);else n.default(y);return this.addArgument(n),this}arguments(f){return f.trim().split(/ +/).forEach((r)=>{this.argument(r)}),this}addArgument(f){let r=this.registeredArguments.slice(-1)[0];if(r?.variadic)throw Error(`only the last argument can be variadic '${r.name()}'`);if(f.required&&f.defaultValue!==void 0&&f.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${f.name()}'`);return this.registeredArguments.push(f),this}helpCommand(f,r){if(typeof f==="boolean"){if(this._addImplicitHelpCommand=f,f&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let y=f??"help [command]",[,i,n]=y.match(/([^ ]+) *(.*)/),b=r??"display help for command",S=this.createCommand(i);if(S.helpOption(!1),n)S.arguments(n);if(b)S.description(b);if(this._addImplicitHelpCommand=!0,this._helpCommand=S,f||r)this._initCommandGroup(S);return this}addHelpCommand(f,r){if(typeof f!=="object")return this.helpCommand(f,r),this;return this._addImplicitHelpCommand=!0,this._helpCommand=f,this._initCommandGroup(f),this}_getHelpCommand(){if(this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand("help"))){if(this._helpCommand===void 0)this.helpCommand(void 0,void 0);return this._helpCommand}return null}hook(f,r){let y=["preSubcommand","preAction","postAction"];if(!y.includes(f))throw Error(`Unexpected value for event passed to hook : '${f}'.
16
+ Expecting one of '${y.join("', '")}'`);if(this._lifeCycleHooks[f])this._lifeCycleHooks[f].push(r);else this._lifeCycleHooks[f]=[r];return this}exitOverride(f){if(f)this._exitCallback=f;else this._exitCallback=(r)=>{if(r.code!=="commander.executeSubCommandAsync")throw r};return this}_exit(f,r,y){if(this._exitCallback)this._exitCallback(new gr(f,r,y));E.exit(f)}action(f){let r=(y)=>{let i=this.registeredArguments.length,n=y.slice(0,i);if(this._storeOptionsAsProperties)n[i]=this;else n[i]=this.opts();return n.push(this),f.apply(this,n)};return this._actionHandler=r,this}createOption(f,r){return new Ay(f,r)}_callParseArg(f,r,y,i){try{return f.parseArg(r,y)}catch(n){if(n.code==="commander.invalidArgument"){let b=`${i} ${n.message}`;this.error(b,{exitCode:n.exitCode,code:n.code})}throw n}}_registerOption(f){let r=f.short&&this._findOption(f.short)||f.long&&this._findOption(f.long);if(r){let y=f.long&&this._findOption(f.long)?f.long:f.short;throw Error(`Cannot add option '${f.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${y}'
17
+ - already used by option '${r.flags}'`)}this._initOptionGroup(f),this.options.push(f)}_registerCommand(f){let r=(i)=>{return[i.name()].concat(i.aliases())},y=r(f).find((i)=>this._findCommand(i));if(y){let i=r(this._findCommand(y)).join("|"),n=r(f).join("|");throw Error(`cannot add command '${n}' as already have command '${i}'`)}this._initCommandGroup(f),this.commands.push(f)}addOption(f){this._registerOption(f);let r=f.name(),y=f.attributeName();if(f.negate){let n=f.long.replace(/^--no-/,"--");if(!this._findOption(n))this.setOptionValueWithSource(y,f.defaultValue===void 0?!0:f.defaultValue,"default")}else if(f.defaultValue!==void 0)this.setOptionValueWithSource(y,f.defaultValue,"default");let i=(n,b,S)=>{if(n==null&&f.presetArg!==void 0)n=f.presetArg;let D=this.getOptionValue(y);if(n!==null&&f.parseArg)n=this._callParseArg(f,n,D,b);else if(n!==null&&f.variadic)n=f._collectValue(n,D);if(n==null)if(f.negate)n=!1;else if(f.isBoolean()||f.optional)n=!0;else n="";this.setOptionValueWithSource(y,n,S)};if(this.on("option:"+r,(n)=>{let b=`error: option '${f.flags}' argument '${n}' is invalid.`;i(n,b,"cli")}),f.envVar)this.on("optionEnv:"+r,(n)=>{let b=`error: option '${f.flags}' value '${n}' from env '${f.envVar}' is invalid.`;i(n,b,"env")});return this}_optionEx(f,r,y,i,n){if(typeof r==="object"&&r instanceof Ay)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let b=this.createOption(r,y);if(b.makeOptionMandatory(!!f.mandatory),typeof i==="function")b.default(n).argParser(i);else if(i instanceof RegExp){let S=i;i=(D,l)=>{let $=S.exec(D);return $?$[0]:l},b.default(n).argParser(i)}else b.default(i);return this.addOption(b)}option(f,r,y,i){return this._optionEx({},f,r,y,i)}requiredOption(f,r,y,i){return this._optionEx({mandatory:!0},f,r,y,i)}combineFlagAndOptionalValue(f=!0){return this._combineFlagAndOptionalValue=!!f,this}allowUnknownOption(f=!0){return this._allowUnknownOption=!!f,this}allowExcessArguments(f=!0){return this._allowExcessArguments=!!f,this}enablePositionalOptions(f=!0){return this._enablePositionalOptions=!!f,this}passThroughOptions(f=!0){return this._passThroughOptions=!!f,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(f=!0){if(this.options.length)throw Error("call .storeOptionsAsProperties() before adding options");if(Object.keys(this._optionValues).length)throw Error("call .storeOptionsAsProperties() before setting option values");return this._storeOptionsAsProperties=!!f,this}getOptionValue(f){if(this._storeOptionsAsProperties)return this[f];return this._optionValues[f]}setOptionValue(f,r){return this.setOptionValueWithSource(f,r,void 0)}setOptionValueWithSource(f,r,y){if(this._storeOptionsAsProperties)this[f]=r;else this._optionValues[f]=r;return this._optionValueSources[f]=y,this}getOptionValueSource(f){return this._optionValueSources[f]}getOptionValueSourceWithGlobals(f){let r;return this._getCommandAndAncestors().forEach((y)=>{if(y.getOptionValueSource(f)!==void 0)r=y.getOptionValueSource(f)}),r}_prepareUserArgs(f,r){if(f!==void 0&&!Array.isArray(f))throw Error("first parameter to parse must be array or undefined");if(r=r||{},f===void 0&&r.from===void 0){if(E.versions?.electron)r.from="electron";let i=E.execArgv??[];if(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))r.from="eval"}if(f===void 0)f=E.argv;this.rawArgs=f.slice();let y;switch(r.from){case void 0:case"node":this._scriptPath=f[1],y=f.slice(2);break;case"electron":if(E.defaultApp)this._scriptPath=f[1],y=f.slice(2);else y=f.slice(1);break;case"user":y=f.slice(0);break;case"eval":y=f.slice(1);break;default:throw Error(`unexpected parse option { from: '${r.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",y}parse(f,r){this._prepareForParse();let y=this._prepareUserArgs(f,r);return this._parseCommand([],y),this}async parseAsync(f,r){this._prepareForParse();let y=this._prepareUserArgs(f,r);return await this._parseCommand([],y),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
18
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(f,r,y){if(Ff.existsSync(f))return;let i=r?`searched for local subcommand relative to directory '${r}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",n=`'${f}' does not exist
19
19
  - if '${y}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
20
20
  - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
21
- - ${i}`;throw Error(n)}_executeSubCommand(f,r){r=r.slice();let y=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function n(l,T){let o=Sf.resolve(l,T);if(Nf.existsSync(o))return o;if(i.includes(Sf.extname(T)))return;let _=i.find((I)=>Nf.existsSync(`${o}${I}`));if(_)return`${o}${_}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let b=f._executableFile||`${this._name}-${f._name}`,S=this._executableDir||"";if(this._scriptPath){let l;try{l=Nf.realpathSync(this._scriptPath)}catch{l=this._scriptPath}S=Sf.resolve(Sf.dirname(l),S)}if(S){let l=n(S,b);if(!l&&!f._executableFile&&this._scriptPath){let T=Sf.basename(this._scriptPath,Sf.extname(this._scriptPath));if(T!==this._name)l=n(S,`${T}-${f._name}`)}b=l||b}y=i.includes(Sf.extname(b));let D;if(G.platform!=="win32")if(y)r.unshift(b),r=my(G.execArgv).concat(r),D=cr.spawn(G.argv[0],r,{stdio:"inherit"});else D=cr.spawn(b,r,{stdio:"inherit"});else this._checkForMissingExecutable(b,S,f._name),r.unshift(b),r=my(G.execArgv).concat(r),D=cr.spawn(G.execPath,r,{stdio:"inherit"});if(!D.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((T)=>{G.on(T,()=>{if(D.killed===!1&&D.exitCode===null)D.kill(T)})});let $=this._exitCallback;D.on("close",(l)=>{if(l=l??1,!$)G.exit(l);else $(new Wr(l,"commander.executeSubCommandAsync","(close)"))}),D.on("error",(l)=>{if(l.code==="ENOENT")this._checkForMissingExecutable(b,S,f._name);else if(l.code==="EACCES")throw Error(`'${b}' not executable`);if(!$)G.exit(1);else{let T=new Wr(1,"commander.executeSubCommandAsync","(error)");T.nestedError=l,$(T)}}),this.runningCommand=D}_dispatchSubcommand(f,r,y){let i=this._findCommand(f);if(!i)this.help({error:!0});i._prepareForParse();let n;return n=this._chainOrCallSubCommandHook(n,i,"preSubcommand"),n=this._chainOrCall(n,()=>{if(i._executableHandler)this._executeSubCommand(i,r.concat(y));else return i._parseCommand(r,y)}),n}_dispatchHelpCommand(f){if(!f)this.help();let r=this._findCommand(f);if(r&&!r._executableHandler)r.help();return this._dispatchSubcommand(f,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((f,r)=>{if(f.required&&this.args[r]==null)this.missingArgument(f.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let f=(y,i,n)=>{let b=i;if(i!==null&&y.parseArg){let S=`error: command-argument value '${i}' is invalid for argument '${y.name()}'.`;b=this._callParseArg(y,i,n,S)}return b};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((y,i)=>{let n=y.defaultValue;if(y.variadic){if(i<this.args.length){if(n=this.args.slice(i),y.parseArg)n=n.reduce((b,S)=>{return f(y,S,b)},y.defaultValue)}else if(n===void 0)n=[]}else if(i<this.args.length){if(n=this.args[i],y.parseArg)n=f(y,n,y.defaultValue)}r[i]=n}),this.processedArgs=r}_chainOrCall(f,r){if(f?.then&&typeof f.then==="function")return f.then(()=>r());return r()}_chainOrCallHooks(f,r){let y=f,i=[];if(this._getCommandAndAncestors().reverse().filter((n)=>n._lifeCycleHooks[r]!==void 0).forEach((n)=>{n._lifeCycleHooks[r].forEach((b)=>{i.push({hookedCommand:n,callback:b})})}),r==="postAction")i.reverse();return i.forEach((n)=>{y=this._chainOrCall(y,()=>{return n.callback(n.hookedCommand,this)})}),y}_chainOrCallSubCommandHook(f,r,y){let i=f;if(this._lifeCycleHooks[y]!==void 0)this._lifeCycleHooks[y].forEach((n)=>{i=this._chainOrCall(i,()=>{return n(this,r)})});return i}_parseCommand(f,r){let y=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),f=f.concat(y.operands),r=y.unknown,this.args=f.concat(r),f&&this._findCommand(f[0]))return this._dispatchSubcommand(f[0],f.slice(1),r);if(this._getHelpCommand()&&f[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(f[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,f,r);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(y.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{if(y.unknown.length>0)this.unknownOption(y.unknown[0])},n=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let b;if(b=this._chainOrCallHooks(b,"preAction"),b=this._chainOrCall(b,()=>this._actionHandler(this.processedArgs)),this.parent)b=this._chainOrCall(b,()=>{this.parent.emit(n,f,r)});return b=this._chainOrCallHooks(b,"postAction"),b}if(this.parent?.listenerCount(n))i(),this._processArguments(),this.parent.emit(n,f,r);else if(f.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",f,r);if(this.listenerCount("command:*"))this.emit("command:*",f,r);else if(this.commands.length)this.unknownCommand();else i(),this._processArguments()}else if(this.commands.length)i(),this.help({error:!0});else i(),this._processArguments()}_findCommand(f){if(!f)return;return this.commands.find((r)=>r._name===f||r._aliases.includes(f))}_findOption(f){return this.options.find((r)=>r.is(f))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((f)=>{f.options.forEach((r)=>{if(r.mandatory&&f.getOptionValue(r.attributeName())===void 0)f.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let f=this.options.filter((y)=>{let i=y.attributeName();if(this.getOptionValue(i)===void 0)return!1;return this.getOptionValueSource(i)!=="default"});f.filter((y)=>y.conflictsWith.length>0).forEach((y)=>{let i=f.find((n)=>y.conflictsWith.includes(n.attributeName()));if(i)this._conflictingOption(y,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((f)=>{f._checkForConflictingLocalOptions()})}parseOptions(f){let r=[],y=[],i=r;function n(l){return l.length>1&&l[0]==="-"}let b=(l)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(l))return!1;return!this._getCommandAndAncestors().some((T)=>T.options.map((o)=>o.short).some((o)=>/^-\d$/.test(o)))},S=null,D=null,$=0;while($<f.length||D){let l=D??f[$++];if(D=null,l==="--"){if(i===y)i.push(l);i.push(...f.slice($));break}if(S&&(!n(l)||b(l))){this.emit(`option:${S.name()}`,l);continue}if(S=null,n(l)){let T=this._findOption(l);if(T){if(T.required){let o=f[$++];if(o===void 0)this.optionMissingArgument(T);this.emit(`option:${T.name()}`,o)}else if(T.optional){let o=null;if($<f.length&&(!n(f[$])||b(f[$])))o=f[$++];this.emit(`option:${T.name()}`,o)}else this.emit(`option:${T.name()}`);S=T.variadic?T:null;continue}}if(l.length>2&&l[0]==="-"&&l[1]!=="-"){let T=this._findOption(`-${l[1]}`);if(T){if(T.required||T.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${T.name()}`,l.slice(2));else this.emit(`option:${T.name()}`),D=`-${l.slice(2)}`;continue}}if(/^--[^=]+=/.test(l)){let T=l.indexOf("="),o=this._findOption(l.slice(0,T));if(o&&(o.required||o.optional)){this.emit(`option:${o.name()}`,l.slice(T+1));continue}}if(i===r&&n(l)&&!(this.commands.length===0&&b(l)))i=y;if((this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&y.length===0){if(this._findCommand(l)){r.push(l),y.push(...f.slice($));break}else if(this._getHelpCommand()&&l===this._getHelpCommand().name()){r.push(l,...f.slice($));break}else if(this._defaultCommandName){y.push(l,...f.slice($));break}}if(this._passThroughOptions){i.push(l,...f.slice($));break}i.push(l)}return{operands:r,unknown:y}}opts(){if(this._storeOptionsAsProperties){let f={},r=this.options.length;for(let y=0;y<r;y++){let i=this.options[y].attributeName();f[i]=i===this._versionOptionName?this._version:this[i]}return f}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((f,r)=>Object.assign(f,r.opts()),{})}error(f,r){if(this._outputConfiguration.outputError(`${f}
21
+ - ${i}`;throw Error(n)}_executeSubCommand(f,r){r=r.slice();let y=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function n($,T){let I=Sf.resolve($,T);if(Ff.existsSync(I))return I;if(i.includes(Sf.extname(T)))return;let _=i.find((R)=>Ff.existsSync(`${I}${R}`));if(_)return`${I}${_}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let b=f._executableFile||`${this._name}-${f._name}`,S=this._executableDir||"";if(this._scriptPath){let $;try{$=Ff.realpathSync(this._scriptPath)}catch{$=this._scriptPath}S=Sf.resolve(Sf.dirname($),S)}if(S){let $=n(S,b);if(!$&&!f._executableFile&&this._scriptPath){let T=Sf.basename(this._scriptPath,Sf.extname(this._scriptPath));if(T!==this._name)$=n(S,`${T}-${f._name}`)}b=$||b}y=i.includes(Sf.extname(b));let D;if(E.platform!=="win32")if(y)r.unshift(b),r=my(E.execArgv).concat(r),D=Vr.spawn(E.argv[0],r,{stdio:"inherit"});else D=Vr.spawn(b,r,{stdio:"inherit"});else this._checkForMissingExecutable(b,S,f._name),r.unshift(b),r=my(E.execArgv).concat(r),D=Vr.spawn(E.execPath,r,{stdio:"inherit"});if(!D.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((T)=>{E.on(T,()=>{if(D.killed===!1&&D.exitCode===null)D.kill(T)})});let l=this._exitCallback;D.on("close",($)=>{if($=$??1,!l)E.exit($);else l(new gr($,"commander.executeSubCommandAsync","(close)"))}),D.on("error",($)=>{if($.code==="ENOENT")this._checkForMissingExecutable(b,S,f._name);else if($.code==="EACCES")throw Error(`'${b}' not executable`);if(!l)E.exit(1);else{let T=new gr(1,"commander.executeSubCommandAsync","(error)");T.nestedError=$,l(T)}}),this.runningCommand=D}_dispatchSubcommand(f,r,y){let i=this._findCommand(f);if(!i)this.help({error:!0});i._prepareForParse();let n;return n=this._chainOrCallSubCommandHook(n,i,"preSubcommand"),n=this._chainOrCall(n,()=>{if(i._executableHandler)this._executeSubCommand(i,r.concat(y));else return i._parseCommand(r,y)}),n}_dispatchHelpCommand(f){if(!f)this.help();let r=this._findCommand(f);if(r&&!r._executableHandler)r.help();return this._dispatchSubcommand(f,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((f,r)=>{if(f.required&&this.args[r]==null)this.missingArgument(f.name())}),this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)return;if(this.args.length>this.registeredArguments.length)this._excessArguments(this.args)}_processArguments(){let f=(y,i,n)=>{let b=i;if(i!==null&&y.parseArg){let S=`error: command-argument value '${i}' is invalid for argument '${y.name()}'.`;b=this._callParseArg(y,i,n,S)}return b};this._checkNumberOfArguments();let r=[];this.registeredArguments.forEach((y,i)=>{let n=y.defaultValue;if(y.variadic){if(i<this.args.length){if(n=this.args.slice(i),y.parseArg)n=n.reduce((b,S)=>{return f(y,S,b)},y.defaultValue)}else if(n===void 0)n=[]}else if(i<this.args.length){if(n=this.args[i],y.parseArg)n=f(y,n,y.defaultValue)}r[i]=n}),this.processedArgs=r}_chainOrCall(f,r){if(f?.then&&typeof f.then==="function")return f.then(()=>r());return r()}_chainOrCallHooks(f,r){let y=f,i=[];if(this._getCommandAndAncestors().reverse().filter((n)=>n._lifeCycleHooks[r]!==void 0).forEach((n)=>{n._lifeCycleHooks[r].forEach((b)=>{i.push({hookedCommand:n,callback:b})})}),r==="postAction")i.reverse();return i.forEach((n)=>{y=this._chainOrCall(y,()=>{return n.callback(n.hookedCommand,this)})}),y}_chainOrCallSubCommandHook(f,r,y){let i=f;if(this._lifeCycleHooks[y]!==void 0)this._lifeCycleHooks[y].forEach((n)=>{i=this._chainOrCall(i,()=>{return n(this,r)})});return i}_parseCommand(f,r){let y=this.parseOptions(r);if(this._parseOptionsEnv(),this._parseOptionsImplied(),f=f.concat(y.operands),r=y.unknown,this.args=f.concat(r),f&&this._findCommand(f[0]))return this._dispatchSubcommand(f[0],f.slice(1),r);if(this._getHelpCommand()&&f[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(f[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(r),this._dispatchSubcommand(this._defaultCommandName,f,r);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(y.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{if(y.unknown.length>0)this.unknownOption(y.unknown[0])},n=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let b;if(b=this._chainOrCallHooks(b,"preAction"),b=this._chainOrCall(b,()=>this._actionHandler(this.processedArgs)),this.parent)b=this._chainOrCall(b,()=>{this.parent.emit(n,f,r)});return b=this._chainOrCallHooks(b,"postAction"),b}if(this.parent?.listenerCount(n))i(),this._processArguments(),this.parent.emit(n,f,r);else if(f.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",f,r);if(this.listenerCount("command:*"))this.emit("command:*",f,r);else if(this.commands.length)this.unknownCommand();else i(),this._processArguments()}else if(this.commands.length)i(),this.help({error:!0});else i(),this._processArguments()}_findCommand(f){if(!f)return;return this.commands.find((r)=>r._name===f||r._aliases.includes(f))}_findOption(f){return this.options.find((r)=>r.is(f))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((f)=>{f.options.forEach((r)=>{if(r.mandatory&&f.getOptionValue(r.attributeName())===void 0)f.missingMandatoryOptionValue(r)})})}_checkForConflictingLocalOptions(){let f=this.options.filter((y)=>{let i=y.attributeName();if(this.getOptionValue(i)===void 0)return!1;return this.getOptionValueSource(i)!=="default"});f.filter((y)=>y.conflictsWith.length>0).forEach((y)=>{let i=f.find((n)=>y.conflictsWith.includes(n.attributeName()));if(i)this._conflictingOption(y,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((f)=>{f._checkForConflictingLocalOptions()})}parseOptions(f){let r=[],y=[],i=r;function n($){return $.length>1&&$[0]==="-"}let b=($)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test($))return!1;return!this._getCommandAndAncestors().some((T)=>T.options.map((I)=>I.short).some((I)=>/^-\d$/.test(I)))},S=null,D=null,l=0;while(l<f.length||D){let $=D??f[l++];if(D=null,$==="--"){if(i===y)i.push($);i.push(...f.slice(l));break}if(S&&(!n($)||b($))){this.emit(`option:${S.name()}`,$);continue}if(S=null,n($)){let T=this._findOption($);if(T){if(T.required){let I=f[l++];if(I===void 0)this.optionMissingArgument(T);this.emit(`option:${T.name()}`,I)}else if(T.optional){let I=null;if(l<f.length&&(!n(f[l])||b(f[l])))I=f[l++];this.emit(`option:${T.name()}`,I)}else this.emit(`option:${T.name()}`);S=T.variadic?T:null;continue}}if($.length>2&&$[0]==="-"&&$[1]!=="-"){let T=this._findOption(`-${$[1]}`);if(T){if(T.required||T.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${T.name()}`,$.slice(2));else this.emit(`option:${T.name()}`),D=`-${$.slice(2)}`;continue}}if(/^--[^=]+=/.test($)){let T=$.indexOf("="),I=this._findOption($.slice(0,T));if(I&&(I.required||I.optional)){this.emit(`option:${I.name()}`,$.slice(T+1));continue}}if(i===r&&n($)&&!(this.commands.length===0&&b($)))i=y;if((this._enablePositionalOptions||this._passThroughOptions)&&r.length===0&&y.length===0){if(this._findCommand($)){r.push($),y.push(...f.slice(l));break}else if(this._getHelpCommand()&&$===this._getHelpCommand().name()){r.push($,...f.slice(l));break}else if(this._defaultCommandName){y.push($,...f.slice(l));break}}if(this._passThroughOptions){i.push($,...f.slice(l));break}i.push($)}return{operands:r,unknown:y}}opts(){if(this._storeOptionsAsProperties){let f={},r=this.options.length;for(let y=0;y<r;y++){let i=this.options[y].attributeName();f[i]=i===this._versionOptionName?this._version:this[i]}return f}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((f,r)=>Object.assign(f,r.opts()),{})}error(f,r){if(this._outputConfiguration.outputError(`${f}
22
22
  `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
23
23
  `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
24
- `),this.outputHelp({error:!0});let y=r||{},i=y.exitCode||1,n=y.code||"commander.error";this._exit(i,n,f)}_parseOptionsEnv(){this.options.forEach((f)=>{if(f.envVar&&f.envVar in G.env){let r=f.attributeName();if(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))if(f.required||f.optional)this.emit(`optionEnv:${f.name()}`,G.env[f.envVar]);else this.emit(`optionEnv:${f.name()}`)}})}_parseOptionsImplied(){let f=new ln(this.options),r=(y)=>{return this.getOptionValue(y)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(y))};this.options.filter((y)=>y.implied!==void 0&&r(y.attributeName())&&f.valueFromOption(this.getOptionValue(y.attributeName()),y)).forEach((y)=>{Object.keys(y.implied).filter((i)=>!r(i)).forEach((i)=>{this.setOptionValueWithSource(i,y.implied[i],"implied")})})}missingArgument(f){let r=`error: missing required argument '${f}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(f){let r=`error: option '${f.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(f){let r=`error: required option '${f.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(f,r){let y=(b)=>{let S=b.attributeName(),D=this.getOptionValue(S),$=this.options.find((T)=>T.negate&&S===T.attributeName()),l=this.options.find((T)=>!T.negate&&S===T.attributeName());if($&&($.presetArg===void 0&&D===!1||$.presetArg!==void 0&&D===$.presetArg))return $;return l||b},i=(b)=>{let S=y(b),D=S.attributeName();if(this.getOptionValueSource(D)==="env")return`environment variable '${S.envVar}'`;return`option '${S.flags}'`},n=`error: ${i(f)} cannot be used with ${i(r)}`;this.error(n,{code:"commander.conflictingOption"})}unknownOption(f){if(this._allowUnknownOption)return;let r="";if(f.startsWith("--")&&this._showSuggestionAfterError){let i=[],n=this;do{let b=n.createHelp().visibleOptions(n).filter((S)=>S.long).map((S)=>S.long);i=i.concat(b),n=n.parent}while(n&&!n._enablePositionalOptions);r=hy(f,i)}let y=`error: unknown option '${f}'${r}`;this.error(y,{code:"commander.unknownOption"})}_excessArguments(f){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,y=r===1?"":"s",n=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${y} but got ${f.length}.`;this.error(n,{code:"commander.excessArguments"})}unknownCommand(){let f=this.args[0],r="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach((n)=>{if(i.push(n.name()),n.alias())i.push(n.alias())}),r=hy(f,i)}let y=`error: unknown command '${f}'${r}`;this.error(y,{code:"commander.unknownCommand"})}version(f,r,y){if(f===void 0)return this._version;this._version=f,r=r||"-V, --version",y=y||"output the version number";let i=this.createOption(r,y);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${f}
25
- `),this._exit(0,"commander.version",f)}),this}description(f,r){if(f===void 0&&r===void 0)return this._description;if(this._description=f,r)this._argsDescription=r;return this}summary(f){if(f===void 0)return this._summary;return this._summary=f,this}alias(f){if(f===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)r=this.commands[this.commands.length-1];if(f===r._name)throw Error("Command alias can't be the same as its name");let y=this.parent?._findCommand(f);if(y){let i=[y.name()].concat(y.aliases()).join("|");throw Error(`cannot add alias '${f}' to command '${this.name()}' as already have command '${i}'`)}return r._aliases.push(f),this}aliases(f){if(f===void 0)return this._aliases;return f.forEach((r)=>this.alias(r)),this}usage(f){if(f===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map((y)=>{return Dn(y)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=f,this}name(f){if(f===void 0)return this._name;return this._name=f,this}helpGroup(f){if(f===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=f,this}commandsGroup(f){if(f===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=f,this}optionsGroup(f){if(f===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=f,this}_initOptionGroup(f){if(this._defaultOptionGroup&&!f.helpGroupHeading)f.helpGroup(this._defaultOptionGroup)}_initCommandGroup(f){if(this._defaultCommandGroup&&!f.helpGroup())f.helpGroup(this._defaultCommandGroup)}nameFromFilename(f){return this._name=Sf.basename(f,Sf.extname(f)),this}executableDir(f){if(f===void 0)return this._executableDir;return this._executableDir=f,this}helpInformation(f){let r=this.createHelp(),y=this._getOutputContext(f);r.prepareContext({error:y.error,helpWidth:y.helpWidth,outputHasColors:y.hasColors});let i=r.formatHelp(this,r);if(y.hasColors)return i;return this._outputConfiguration.stripColor(i)}_getOutputContext(f){f=f||{};let r=!!f.error,y,i,n;if(r)y=(S)=>this._outputConfiguration.writeErr(S),i=this._outputConfiguration.getErrHasColors(),n=this._outputConfiguration.getErrHelpWidth();else y=(S)=>this._outputConfiguration.writeOut(S),i=this._outputConfiguration.getOutHasColors(),n=this._outputConfiguration.getOutHelpWidth();return{error:r,write:(S)=>{if(!i)S=this._outputConfiguration.stripColor(S);return y(S)},hasColors:i,helpWidth:n}}outputHelp(f){let r;if(typeof f==="function")r=f,f=void 0;let y=this._getOutputContext(f),i={error:y.error,write:y.write,command:this};this._getCommandAndAncestors().reverse().forEach((b)=>b.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let n=this.helpInformation({error:y.error});if(r){if(n=r(n),typeof n!=="string"&&!Buffer.isBuffer(n))throw Error("outputHelp callback must return a string or a Buffer")}if(y.write(n),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",i),this._getCommandAndAncestors().forEach((b)=>b.emit("afterAllHelp",i))}helpOption(f,r){if(typeof f==="boolean"){if(f){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(f??"-h, --help",r??"display help for command"),f||r)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(f){return this._helpOption=f,this._initOptionGroup(f),this}help(f){this.outputHelp(f);let r=Number(G.exitCode??0);if(r===0&&f&&typeof f!=="function"&&f.error)r=1;this._exit(r,"commander.help","(outputHelp)")}addHelpText(f,r){let y=["beforeAll","before","after","afterAll"];if(!y.includes(f))throw Error(`Unexpected value for position to addHelpText.
24
+ `),this.outputHelp({error:!0});let y=r||{},i=y.exitCode||1,n=y.code||"commander.error";this._exit(i,n,f)}_parseOptionsEnv(){this.options.forEach((f)=>{if(f.envVar&&f.envVar in E.env){let r=f.attributeName();if(this.getOptionValue(r)===void 0||["default","config","env"].includes(this.getOptionValueSource(r)))if(f.required||f.optional)this.emit(`optionEnv:${f.name()}`,E.env[f.envVar]);else this.emit(`optionEnv:${f.name()}`)}})}_parseOptionsImplied(){let f=new L1(this.options),r=(y)=>{return this.getOptionValue(y)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(y))};this.options.filter((y)=>y.implied!==void 0&&r(y.attributeName())&&f.valueFromOption(this.getOptionValue(y.attributeName()),y)).forEach((y)=>{Object.keys(y.implied).filter((i)=>!r(i)).forEach((i)=>{this.setOptionValueWithSource(i,y.implied[i],"implied")})})}missingArgument(f){let r=`error: missing required argument '${f}'`;this.error(r,{code:"commander.missingArgument"})}optionMissingArgument(f){let r=`error: option '${f.flags}' argument missing`;this.error(r,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(f){let r=`error: required option '${f.flags}' not specified`;this.error(r,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(f,r){let y=(b)=>{let S=b.attributeName(),D=this.getOptionValue(S),l=this.options.find((T)=>T.negate&&S===T.attributeName()),$=this.options.find((T)=>!T.negate&&S===T.attributeName());if(l&&(l.presetArg===void 0&&D===!1||l.presetArg!==void 0&&D===l.presetArg))return l;return $||b},i=(b)=>{let S=y(b),D=S.attributeName();if(this.getOptionValueSource(D)==="env")return`environment variable '${S.envVar}'`;return`option '${S.flags}'`},n=`error: ${i(f)} cannot be used with ${i(r)}`;this.error(n,{code:"commander.conflictingOption"})}unknownOption(f){if(this._allowUnknownOption)return;let r="";if(f.startsWith("--")&&this._showSuggestionAfterError){let i=[],n=this;do{let b=n.createHelp().visibleOptions(n).filter((S)=>S.long).map((S)=>S.long);i=i.concat(b),n=n.parent}while(n&&!n._enablePositionalOptions);r=hy(f,i)}let y=`error: unknown option '${f}'${r}`;this.error(y,{code:"commander.unknownOption"})}_excessArguments(f){if(this._allowExcessArguments)return;let r=this.registeredArguments.length,y=r===1?"":"s",n=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${r} argument${y} but got ${f.length}.`;this.error(n,{code:"commander.excessArguments"})}unknownCommand(){let f=this.args[0],r="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach((n)=>{if(i.push(n.name()),n.alias())i.push(n.alias())}),r=hy(f,i)}let y=`error: unknown command '${f}'${r}`;this.error(y,{code:"commander.unknownCommand"})}version(f,r,y){if(f===void 0)return this._version;this._version=f,r=r||"-V, --version",y=y||"output the version number";let i=this.createOption(r,y);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${f}
25
+ `),this._exit(0,"commander.version",f)}),this}description(f,r){if(f===void 0&&r===void 0)return this._description;if(this._description=f,r)this._argsDescription=r;return this}summary(f){if(f===void 0)return this._summary;return this._summary=f,this}alias(f){if(f===void 0)return this._aliases[0];let r=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)r=this.commands[this.commands.length-1];if(f===r._name)throw Error("Command alias can't be the same as its name");let y=this.parent?._findCommand(f);if(y){let i=[y.name()].concat(y.aliases()).join("|");throw Error(`cannot add alias '${f}' to command '${this.name()}' as already have command '${i}'`)}return r._aliases.push(f),this}aliases(f){if(f===void 0)return this._aliases;return f.forEach((r)=>this.alias(r)),this}usage(f){if(f===void 0){if(this._usage)return this._usage;let r=this.registeredArguments.map((y)=>{return l1(y)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?r:[]).join(" ")}return this._usage=f,this}name(f){if(f===void 0)return this._name;return this._name=f,this}helpGroup(f){if(f===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=f,this}commandsGroup(f){if(f===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=f,this}optionsGroup(f){if(f===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=f,this}_initOptionGroup(f){if(this._defaultOptionGroup&&!f.helpGroupHeading)f.helpGroup(this._defaultOptionGroup)}_initCommandGroup(f){if(this._defaultCommandGroup&&!f.helpGroup())f.helpGroup(this._defaultCommandGroup)}nameFromFilename(f){return this._name=Sf.basename(f,Sf.extname(f)),this}executableDir(f){if(f===void 0)return this._executableDir;return this._executableDir=f,this}helpInformation(f){let r=this.createHelp(),y=this._getOutputContext(f);r.prepareContext({error:y.error,helpWidth:y.helpWidth,outputHasColors:y.hasColors});let i=r.formatHelp(this,r);if(y.hasColors)return i;return this._outputConfiguration.stripColor(i)}_getOutputContext(f){f=f||{};let r=!!f.error,y,i,n;if(r)y=(S)=>this._outputConfiguration.writeErr(S),i=this._outputConfiguration.getErrHasColors(),n=this._outputConfiguration.getErrHelpWidth();else y=(S)=>this._outputConfiguration.writeOut(S),i=this._outputConfiguration.getOutHasColors(),n=this._outputConfiguration.getOutHelpWidth();return{error:r,write:(S)=>{if(!i)S=this._outputConfiguration.stripColor(S);return y(S)},hasColors:i,helpWidth:n}}outputHelp(f){let r;if(typeof f==="function")r=f,f=void 0;let y=this._getOutputContext(f),i={error:y.error,write:y.write,command:this};this._getCommandAndAncestors().reverse().forEach((b)=>b.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let n=this.helpInformation({error:y.error});if(r){if(n=r(n),typeof n!=="string"&&!Buffer.isBuffer(n))throw Error("outputHelp callback must return a string or a Buffer")}if(y.write(n),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",i),this._getCommandAndAncestors().forEach((b)=>b.emit("afterAllHelp",i))}helpOption(f,r){if(typeof f==="boolean"){if(f){if(this._helpOption===null)this._helpOption=void 0;if(this._defaultOptionGroup)this._initOptionGroup(this._getHelpOption())}else this._helpOption=null;return this}if(this._helpOption=this.createOption(f??"-h, --help",r??"display help for command"),f||r)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(f){return this._helpOption=f,this._initOptionGroup(f),this}help(f){this.outputHelp(f);let r=Number(E.exitCode??0);if(r===0&&f&&typeof f!=="function"&&f.error)r=1;this._exit(r,"commander.help","(outputHelp)")}addHelpText(f,r){let y=["beforeAll","before","after","afterAll"];if(!y.includes(f))throw Error(`Unexpected value for position to addHelpText.
26
26
  Expecting one of '${y.join("', '")}'`);let i=`${f}Help`;return this.on(i,(n)=>{let b;if(typeof r==="function")b=r({error:n.error,command:n.command});else b=r;if(b)n.write(`${b}
27
- `)}),this}_outputHelpIfRequested(f){let r=this._getHelpOption();if(r&&f.find((i)=>r.is(i)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function my(f){return f.map((r)=>{if(!r.startsWith("--inspect"))return r;let y,i="127.0.0.1",n="9229",b;if((b=r.match(/^(--inspect(-brk)?)$/))!==null)y=b[1];else if((b=r.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(y=b[1],/^\d+$/.test(b[3]))n=b[3];else i=b[3];else if((b=r.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)y=b[1],i=b[3],n=b[4];if(y&&n!=="0")return`${y}=${i}:${parseInt(n)+1}`;return r})}function Vr(){if(G.env.NO_COLOR||G.env.FORCE_COLOR==="0"||G.env.FORCE_COLOR==="false")return!1;if(G.env.FORCE_COLOR||G.env.CLICOLOR_FORCE!==void 0)return!0;return}Tn.Command=gr;Tn.useColor=Vr});var ty=Df((on)=>{var{Argument:sy}=gf(),{Command:Nr}=ay(),{CommanderError:Rn,InvalidArgumentError:py}=Mf(),{Help:In}=Er(),{Option:dy}=Gr();on.program=new Nr;on.createCommand=(f)=>new Nr(f);on.createOption=(f,r)=>new dy(f,r);on.createArgument=(f,r)=>new sy(f,r);on.Command=Nr;on.Option=dy;on.Argument=sy;on.Help=In;on.CommanderError=Rn;on.InvalidArgumentError=py;on.InvalidOptionArgumentError=py});var h=Df((a0,Cr)=>{var Ff=process||{},ri=Ff.argv||[],Cf=Ff.env||{},Un=!(!!Cf.NO_COLOR||ri.includes("--no-color"))&&(!!Cf.FORCE_COLOR||ri.includes("--color")||Ff.platform==="win32"||(Ff.stdout||{}).isTTY&&Cf.TERM!=="dumb"||!!Cf.CI),Bn=(f,r,y=f)=>(i)=>{let n=""+i,b=n.indexOf(r,f.length);return~b?f+jn(n,r,y,b)+r:f+n+r},jn=(f,r,y,i)=>{let n="",b=0;do n+=f.substring(b,i)+y,b=i+r.length,i=f.indexOf(r,b);while(~i);return n+f.substring(b)},yi=(f=Un)=>{let r=f?Bn:()=>String;return{isColorSupported:f,reset:r("\x1B[0m","\x1B[0m"),bold:r("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:r("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:r("\x1B[3m","\x1B[23m"),underline:r("\x1B[4m","\x1B[24m"),inverse:r("\x1B[7m","\x1B[27m"),hidden:r("\x1B[8m","\x1B[28m"),strikethrough:r("\x1B[9m","\x1B[29m"),black:r("\x1B[30m","\x1B[39m"),red:r("\x1B[31m","\x1B[39m"),green:r("\x1B[32m","\x1B[39m"),yellow:r("\x1B[33m","\x1B[39m"),blue:r("\x1B[34m","\x1B[39m"),magenta:r("\x1B[35m","\x1B[39m"),cyan:r("\x1B[36m","\x1B[39m"),white:r("\x1B[37m","\x1B[39m"),gray:r("\x1B[90m","\x1B[39m"),bgBlack:r("\x1B[40m","\x1B[49m"),bgRed:r("\x1B[41m","\x1B[49m"),bgGreen:r("\x1B[42m","\x1B[49m"),bgYellow:r("\x1B[43m","\x1B[49m"),bgBlue:r("\x1B[44m","\x1B[49m"),bgMagenta:r("\x1B[45m","\x1B[49m"),bgCyan:r("\x1B[46m","\x1B[49m"),bgWhite:r("\x1B[47m","\x1B[49m"),blackBright:r("\x1B[90m","\x1B[39m"),redBright:r("\x1B[91m","\x1B[39m"),greenBright:r("\x1B[92m","\x1B[39m"),yellowBright:r("\x1B[93m","\x1B[39m"),blueBright:r("\x1B[94m","\x1B[39m"),magentaBright:r("\x1B[95m","\x1B[39m"),cyanBright:r("\x1B[96m","\x1B[39m"),whiteBright:r("\x1B[97m","\x1B[39m"),bgBlackBright:r("\x1B[100m","\x1B[49m"),bgRedBright:r("\x1B[101m","\x1B[49m"),bgGreenBright:r("\x1B[102m","\x1B[49m"),bgYellowBright:r("\x1B[103m","\x1B[49m"),bgBlueBright:r("\x1B[104m","\x1B[49m"),bgMagentaBright:r("\x1B[105m","\x1B[49m"),bgCyanBright:r("\x1B[106m","\x1B[49m"),bgWhiteBright:r("\x1B[107m","\x1B[49m")}};Cr.exports=yi();Cr.exports.createColors=yi});var Or=Df((s0,ii)=>{var Fr={to(f,r){if(!r)return`\x1B[${f+1}G`;return`\x1B[${r+1};${f+1}H`},move(f,r){let y="";if(f<0)y+=`\x1B[${-f}D`;else if(f>0)y+=`\x1B[${f}C`;if(r<0)y+=`\x1B[${-r}A`;else if(r>0)y+=`\x1B[${r}B`;return y},up:(f=1)=>`\x1B[${f}A`,down:(f=1)=>`\x1B[${f}B`,forward:(f=1)=>`\x1B[${f}C`,backward:(f=1)=>`\x1B[${f}D`,nextLine:(f=1)=>"\x1B[E".repeat(f),prevLine:(f=1)=>"\x1B[F".repeat(f),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},Kn={up:(f=1)=>"\x1B[S".repeat(f),down:(f=1)=>"\x1B[T".repeat(f)},Hn={screen:"\x1B[2J",up:(f=1)=>"\x1B[1J".repeat(f),down:(f=1)=>"\x1B[J".repeat(f),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(f){let r="";for(let y=0;y<f;y++)r+=this.line+(y<f-1?Fr.up():"");if(f)r+=Fr.left;return r}};ii.exports={cursor:Fr,scroll:Kn,erase:Hn,beep:"\x07"}});import{stdout as ar,stdin as $i}from"node:process";import*as wf from"node:readline";import En from"node:readline";import{ReadStream as ni}from"node:tty";function hr(f,r,y){return String(f).normalize().replaceAll(`\r
27
+ `)}),this}_outputHelpIfRequested(f){let r=this._getHelpOption();if(r&&f.find((i)=>r.is(i)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function my(f){return f.map((r)=>{if(!r.startsWith("--inspect"))return r;let y,i="127.0.0.1",n="9229",b;if((b=r.match(/^(--inspect(-brk)?)$/))!==null)y=b[1];else if((b=r.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(y=b[1],/^\d+$/.test(b[3]))n=b[3];else i=b[3];else if((b=r.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)y=b[1],i=b[3],n=b[4];if(y&&n!=="0")return`${y}=${i}:${parseInt(n)+1}`;return r})}function Nr(){if(E.env.NO_COLOR||E.env.FORCE_COLOR==="0"||E.env.FORCE_COLOR==="false")return!1;if(E.env.FORCE_COLOR||E.env.CLICOLOR_FORCE!==void 0)return!0;return}o1.Command=Cr;o1.useColor=Nr});var ty=Df((_1)=>{var{Argument:sy}=Cf(),{Command:Fr}=ay(),{CommanderError:I1,InvalidArgumentError:py}=Mf(),{Help:P1}=Gr(),{Option:dy}=Wr();_1.program=new Fr;_1.createCommand=(f)=>new Fr(f);_1.createOption=(f,r)=>new dy(f,r);_1.createArgument=(f,r)=>new sy(f,r);_1.Command=Fr;_1.Option=dy;_1.Argument=sy;_1.Help=P1;_1.CommanderError=I1;_1.InvalidArgumentError=py;_1.InvalidOptionArgumentError=py});var h=Df((s0,Or)=>{var uf=process||{},ri=uf.argv||[],Of=uf.env||{},B1=!(!!Of.NO_COLOR||ri.includes("--no-color"))&&(!!Of.FORCE_COLOR||ri.includes("--color")||uf.platform==="win32"||(uf.stdout||{}).isTTY&&Of.TERM!=="dumb"||!!Of.CI),c1=(f,r,y=f)=>(i)=>{let n=""+i,b=n.indexOf(r,f.length);return~b?f+K1(n,r,y,b)+r:f+n+r},K1=(f,r,y,i)=>{let n="",b=0;do n+=f.substring(b,i)+y,b=i+r.length,i=f.indexOf(r,b);while(~i);return n+f.substring(b)},yi=(f=B1)=>{let r=f?c1:()=>String;return{isColorSupported:f,reset:r("\x1B[0m","\x1B[0m"),bold:r("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:r("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:r("\x1B[3m","\x1B[23m"),underline:r("\x1B[4m","\x1B[24m"),inverse:r("\x1B[7m","\x1B[27m"),hidden:r("\x1B[8m","\x1B[28m"),strikethrough:r("\x1B[9m","\x1B[29m"),black:r("\x1B[30m","\x1B[39m"),red:r("\x1B[31m","\x1B[39m"),green:r("\x1B[32m","\x1B[39m"),yellow:r("\x1B[33m","\x1B[39m"),blue:r("\x1B[34m","\x1B[39m"),magenta:r("\x1B[35m","\x1B[39m"),cyan:r("\x1B[36m","\x1B[39m"),white:r("\x1B[37m","\x1B[39m"),gray:r("\x1B[90m","\x1B[39m"),bgBlack:r("\x1B[40m","\x1B[49m"),bgRed:r("\x1B[41m","\x1B[49m"),bgGreen:r("\x1B[42m","\x1B[49m"),bgYellow:r("\x1B[43m","\x1B[49m"),bgBlue:r("\x1B[44m","\x1B[49m"),bgMagenta:r("\x1B[45m","\x1B[49m"),bgCyan:r("\x1B[46m","\x1B[49m"),bgWhite:r("\x1B[47m","\x1B[49m"),blackBright:r("\x1B[90m","\x1B[39m"),redBright:r("\x1B[91m","\x1B[39m"),greenBright:r("\x1B[92m","\x1B[39m"),yellowBright:r("\x1B[93m","\x1B[39m"),blueBright:r("\x1B[94m","\x1B[39m"),magentaBright:r("\x1B[95m","\x1B[39m"),cyanBright:r("\x1B[96m","\x1B[39m"),whiteBright:r("\x1B[97m","\x1B[39m"),bgBlackBright:r("\x1B[100m","\x1B[49m"),bgRedBright:r("\x1B[101m","\x1B[49m"),bgGreenBright:r("\x1B[102m","\x1B[49m"),bgYellowBright:r("\x1B[103m","\x1B[49m"),bgBlueBright:r("\x1B[104m","\x1B[49m"),bgMagentaBright:r("\x1B[105m","\x1B[49m"),bgCyanBright:r("\x1B[106m","\x1B[49m"),bgWhiteBright:r("\x1B[107m","\x1B[49m")}};Or.exports=yi();Or.exports.createColors=yi});var vr=Df((p0,ii)=>{var ur={to(f,r){if(!r)return`\x1B[${f+1}G`;return`\x1B[${r+1};${f+1}H`},move(f,r){let y="";if(f<0)y+=`\x1B[${-f}D`;else if(f>0)y+=`\x1B[${f}C`;if(r<0)y+=`\x1B[${-r}A`;else if(r>0)y+=`\x1B[${r}B`;return y},up:(f=1)=>`\x1B[${f}A`,down:(f=1)=>`\x1B[${f}B`,forward:(f=1)=>`\x1B[${f}C`,backward:(f=1)=>`\x1B[${f}D`,nextLine:(f=1)=>"\x1B[E".repeat(f),prevLine:(f=1)=>"\x1B[F".repeat(f),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},H1={up:(f=1)=>"\x1B[S".repeat(f),down:(f=1)=>"\x1B[T".repeat(f)},E1={screen:"\x1B[2J",up:(f=1)=>"\x1B[1J".repeat(f),down:(f=1)=>"\x1B[J".repeat(f),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(f){let r="";for(let y=0;y<f;y++)r+=this.line+(y<f-1?ur.up():"");if(f)r+=ur.left;return r}};ii.exports={cursor:ur,scroll:H1,erase:E1,beep:"\x07"}});import{stdout as pr,stdin as li}from"node:process";import*as of from"node:readline";import G1 from"node:readline";import{ReadStream as ni}from"node:tty";function ar(f,r,y){return String(f).normalize().replaceAll(`\r
28
28
  `,`
29
29
  `).split(`
30
- `).map((i)=>An(i,r,y)).join(`
31
- `)}function dr(f,r){if(typeof f=="string")return $f.aliases.get(f)===r;for(let y of f)if(y!==void 0&&dr(y,r))return!0;return!1}function mn(f,r){if(f===r)return;let y=f.split(`
30
+ `).map((i)=>m1(i,r,y)).join(`
31
+ `)}function er(f,r){if(typeof f=="string")return lf.aliases.get(f)===r;for(let y of f)if(y!==void 0&&er(y,r))return!0;return!1}function s1(f,r){if(f===r)return;let y=f.split(`
32
32
  `),i=r.split(`
33
- `),n=Math.max(y.length,i.length),b=[];for(let S=0;S<n;S++)y[S]!==i[S]&&b.push(S);return{lines:b,numLinesBefore:y.length,numLinesAfter:i.length,numLines:n}}function V(f){return f===mr}function Af(f,r){let y=f;y.isTTY&&y.setRawMode(r)}function Ri({input:f=$i,output:r=ar,overwrite:y=!0,hideCursor:i=!0}={}){let n=wf.createInterface({input:f,output:r,prompt:"",tabSize:1});wf.emitKeypressEvents(f,n),f instanceof ni&&f.isTTY&&f.setRawMode(!0);let b=(S,{name:D,sequence:$})=>{let l=String(S);if(dr([l,D,$],"cancel")){i&&r.write(u.cursor.show),process.exit(0);return}if(!y)return;wf.moveCursor(r,D==="return"?0:-1,D==="return"?-1:0,()=>{wf.clearLine(r,1,()=>{f.once("keypress",b)})})};return i&&r.write(u.cursor.hide),f.once("keypress",b),()=>{f.off("keypress",b),i&&r.write(u.cursor.show),f instanceof ni&&f.isTTY&&!an&&f.setRawMode(!1),n.terminal=!1,n.close()}}function qf(f,r,y,i=y){let n=af(f??ar);return hr(r,n-y.length,{hard:!0,trim:!1}).split(`
33
+ `),n=Math.max(y.length,i.length),b=[];for(let S=0;S<n;S++)y[S]!==i[S]&&b.push(S);return{lines:b,numLinesBefore:y.length,numLinesAfter:i.length,numLines:n}}function V(f){return f===sr}function mf(f,r){let y=f;y.isTTY&&y.setRawMode(r)}function wi({input:f=li,output:r=pr,overwrite:y=!0,hideCursor:i=!0}={}){let n=of.createInterface({input:f,output:r,prompt:"",tabSize:1});of.emitKeypressEvents(f,n),f instanceof ni&&f.isTTY&&f.setRawMode(!0);let b=(S,{name:D,sequence:l})=>{let $=String(S);if(er([$,D,l],"cancel")){i&&r.write(u.cursor.show),process.exit(0);return}if(!y)return;of.moveCursor(r,D==="return"?0:-1,D==="return"?-1:0,()=>{of.clearLine(r,1,()=>{f.once("keypress",b)})})};return i&&r.write(u.cursor.hide),f.once("keypress",b),()=>{f.off("keypress",b),i&&r.write(u.cursor.show),f instanceof ni&&f.isTTY&&!p1&&f.setRawMode(!1),n.terminal=!1,n.close()}}function qf(f,r,y,i=y){let n=pf(f??pr);return ar(r,n-y.length,{hard:!0,trim:!1}).split(`
34
34
  `).map((b,S)=>`${S===0?i:y}${b}`).join(`
35
- `)}class kf{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(f,r=!0){let{input:y=$i,output:i=ar,render:n,signal:b,...S}=f;this.opts=S,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=r,this._abortSignal=b,this.input=y,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(f,r){let y=this._subscribers.get(f)??[];y.push(r),this._subscribers.set(f,y)}on(f,r){this.setSubscriber(f,{cb:r})}once(f,r){this.setSubscriber(f,{cb:r,once:!0})}emit(f,...r){let y=this._subscribers.get(f)??[],i=[];for(let n of y)n.cb(...r),n.once&&i.push(()=>y.splice(y.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise((f)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),f(mr);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=En.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),Af(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(u.cursor.show),this.output.off("resize",this.render),Af(this.input,!1),f(this.value)}),this.once("cancel",()=>{this.output.write(u.cursor.show),this.output.off("resize",this.render),Af(this.input,!1),f(mr)})})}_isActionKey(f,r){return f==="\t"}_setValue(f){this.value=f,this.emit("value",this.value)}_setUserInput(f,r){this.userInput=f??"",this.emit("userInput",this.userInput),r&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(f,r){if(this._track&&r.name!=="return"&&(r.name&&this._isActionKey(f,r)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),r?.name&&(!this._track&&$f.aliases.has(r.name)&&this.emit("cursor",$f.aliases.get(r.name)),$f.actions.has(r.name)&&this.emit("cursor",r.name)),f&&(f.toLowerCase()==="y"||f.toLowerCase()==="n")&&this.emit("confirm",f.toLowerCase()==="y"),this.emit("key",f?.toLowerCase(),r),r?.name==="return"){if(this.opts.validate){let y=this.opts.validate(this.value);y&&(this.error=y instanceof Error?y.message:y,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}dr([f,r?.name,r?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
36
- `),Af(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let f=hr(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
37
- `).length-1;this.output.write(u.cursor.move(-999,f*-1))}render(){let f=hr(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(f!==this._prevFrame){if(this.state==="initial")this.output.write(u.cursor.hide);else{let r=mn(this._prevFrame,f),y=tr(this.output);if(this.restoreCursor(),r){let i=Math.max(0,r.numLinesAfter-y),n=Math.max(0,r.numLinesBefore-y),b=r.lines.find((S)=>S>=i);if(b===void 0){this._prevFrame=f;return}if(r.lines.length===1){this.output.write(u.cursor.move(0,b-n)),this.output.write(u.erase.lines(1));let S=f.split(`
35
+ `)}class Yf{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(f,r=!0){let{input:y=li,output:i=pr,render:n,signal:b,...S}=f;this.opts=S,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=n.bind(this),this._track=r,this._abortSignal=b,this.input=y,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(f,r){let y=this._subscribers.get(f)??[];y.push(r),this._subscribers.set(f,y)}on(f,r){this.setSubscriber(f,{cb:r})}once(f,r){this.setSubscriber(f,{cb:r,once:!0})}emit(f,...r){let y=this._subscribers.get(f)??[],i=[];for(let n of y)n.cb(...r),n.once&&i.push(()=>y.splice(y.indexOf(n),1));for(let n of i)n()}prompt(){return new Promise((f)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),f(sr);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=G1.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0&&this._setUserInput(this.opts.initialUserInput,!0),this.input.on("keypress",this.onKeypress),mf(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(u.cursor.show),this.output.off("resize",this.render),mf(this.input,!1),f(this.value)}),this.once("cancel",()=>{this.output.write(u.cursor.show),this.output.off("resize",this.render),mf(this.input,!1),f(sr)})})}_isActionKey(f,r){return f==="\t"}_setValue(f){this.value=f,this.emit("value",this.value)}_setUserInput(f,r){this.userInput=f??"",this.emit("userInput",this.userInput),r&&this._track&&this.rl&&(this.rl.write(this.userInput),this._cursor=this.rl.cursor)}_clearUserInput(){this.rl?.write(null,{ctrl:!0,name:"u"}),this._setUserInput("")}onKeypress(f,r){if(this._track&&r.name!=="return"&&(r.name&&this._isActionKey(f,r)&&this.rl?.write(null,{ctrl:!0,name:"h"}),this._cursor=this.rl?.cursor??0,this._setUserInput(this.rl?.line)),this.state==="error"&&(this.state="active"),r?.name&&(!this._track&&lf.aliases.has(r.name)&&this.emit("cursor",lf.aliases.get(r.name)),lf.actions.has(r.name)&&this.emit("cursor",r.name)),f&&(f.toLowerCase()==="y"||f.toLowerCase()==="n")&&this.emit("confirm",f.toLowerCase()==="y"),this.emit("key",f?.toLowerCase(),r),r?.name==="return"){if(this.opts.validate){let y=this.opts.validate(this.value);y&&(this.error=y instanceof Error?y.message:y,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}er([f,r?.name,r?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
36
+ `),mf(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let f=ar(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
37
+ `).length-1;this.output.write(u.cursor.move(-999,f*-1))}render(){let f=ar(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(f!==this._prevFrame){if(this.state==="initial")this.output.write(u.cursor.hide);else{let r=s1(this._prevFrame,f),y=fy(this.output);if(this.restoreCursor(),r){let i=Math.max(0,r.numLinesAfter-y),n=Math.max(0,r.numLinesBefore-y),b=r.lines.find((S)=>S>=i);if(b===void 0){this._prevFrame=f;return}if(r.lines.length===1){this.output.write(u.cursor.move(0,b-n)),this.output.write(u.erase.lines(1));let S=f.split(`
38
38
  `);this.output.write(S[b]),this._prevFrame=f,this.output.write(u.cursor.move(0,S.length-b-1));return}else if(r.lines.length>1){if(i<n)b=i;else{let D=b-n;D>0&&this.output.write(u.cursor.move(0,D))}this.output.write(u.erase.down());let S=f.split(`
39
39
  `).slice(b);this.output.write(S.join(`
40
- `)),this._prevFrame=f;return}}this.output.write(u.erase.down())}this.output.write(f),this.state==="initial"&&(this.state="active"),this._prevFrame=f}}}function sn(f,r){if(f===void 0||r.length===0)return 0;let y=r.findIndex((i)=>i.value===f);return y!==-1?y:0}function pn(f,r){return(r.label??String(r.value)).toLowerCase().includes(f.toLowerCase())}function dn(f,r){if(r)return f?r:r[0]}function _f(f,r,y){let i=f+r,n=Math.max(y.length-1,0),b=i<0?n:i>n?0:i;return y[b].disabled?_f(b,r<0?-1:1,y):b}var hf,u,Gn=(f)=>f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109,cn=(f)=>f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510,Wn=(f)=>f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9800&&f<=9811||f===9855||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12771||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=19903||f>=19968&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f===94192||f===94193||f>=94208&&f<=100343||f>=100352&&f<=101589||f>=101632&&f<=101640||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128727||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129672||f>=129680&&f<=129725||f>=129727&&f<=129733||f>=129742&&f<=129755||f>=129760&&f<=129768||f>=129776&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141,ur,Of,uf,vr,vf,Vn,gn,li=(f,r={},y={})=>{let i=r.limit??1/0,n=r.ellipsis??"",b=r?.ellipsisWidth??(n?li(n,gn,y).width:0),S=y.ansiWidth??0,D=y.controlWidth??0,$=y.tabWidth??8,l=y.ambiguousWidth??1,T=y.emojiWidth??2,o=y.fullWidthWidth??2,_=y.regularWidth??1,I=y.wideWidth??2,L=0,R=0,q=f.length,J=0,x=!1,k=q,M=Math.max(0,i-b),U=0,H=0,Y=0,Z=0;f:for(;;){if(H>U||R>=q&&R>L){let F=f.slice(U,H)||f.slice(L,R);J=0;for(let C of F.replaceAll(Vn,"")){let g=C.codePointAt(0)||0;if(cn(g)?Z=o:Wn(g)?Z=I:l!==_&&Gn(g)?Z=l:Z=_,Y+Z>M&&(k=Math.min(k,Math.max(U,L)+J)),Y+Z>i){x=!0;break f}J+=C.length,Y+=Z}U=H=0}if(R>=q)break;if(vf.lastIndex=R,vf.test(f)){if(J=vf.lastIndex-R,Z=J*_,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/_))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=vf.lastIndex;continue}if(ur.lastIndex=R,ur.test(f)){if(Y+S>M&&(k=Math.min(k,R)),Y+S>i){x=!0;break}Y+=S,U=L,H=R,R=L=ur.lastIndex;continue}if(Of.lastIndex=R,Of.test(f)){if(J=Of.lastIndex-R,Z=J*D,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/D))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=Of.lastIndex;continue}if(uf.lastIndex=R,uf.test(f)){if(J=uf.lastIndex-R,Z=J*$,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/$))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=uf.lastIndex;continue}if(vr.lastIndex=R,vr.test(f)){if(Y+T>M&&(k=Math.min(k,R)),Y+T>i){x=!0;break}Y+=T,U=L,H=R,R=L=vr.lastIndex;continue}R+=1}return{width:x?M:Y,index:x?k:q,truncated:x,ellipsed:x&&i>=b}},Nn,zf=(f,r={})=>li(f,Nn,r).width,mf="\x1B",Ti="›",Cn=39,sr="\x07",Li="[",Fn="]",wi="m",pr,bi,On=(f)=>{if(f>=30&&f<=37||f>=90&&f<=97)return 39;if(f>=40&&f<=47||f>=100&&f<=107)return 49;if(f===1||f===2)return 22;if(f===3)return 23;if(f===4)return 24;if(f===7)return 27;if(f===8)return 28;if(f===9)return 29;if(f===0)return 0},Di=(f)=>`${mf}${Li}${f}${wi}`,Si=(f)=>`${mf}${pr}${f}${sr}`,un=(f)=>f.map((r)=>zf(r)),Ar=(f,r,y)=>{let i=r[Symbol.iterator](),n=!1,b=!1,S=f.at(-1),D=S===void 0?0:zf(S),$=i.next(),l=i.next(),T=0;for(;!$.done;){let o=$.value,_=zf(o);D+_<=y?f[f.length-1]+=o:(f.push(o),D=0),(o===mf||o===Ti)&&(n=!0,b=r.startsWith(pr,T+1)),n?b?o===sr&&(n=!1,b=!1):o===wi&&(n=!1):(D+=_,D===y&&!l.done&&(f.push(""),D=0)),$=l,l=i.next(),T+=o.length}S=f.at(-1),!D&&S!==void 0&&S.length>0&&f.length>1&&(f[f.length-2]+=f.pop())},vn=(f)=>{let r=f.split(" "),y=r.length;for(;y>0&&!(zf(r[y-1])>0);)y--;return y===r.length?f:r.slice(0,y).join(" ")+r.slice(y).join("")},An=(f,r,y={})=>{if(y.trim!==!1&&f.trim()==="")return"";let i="",n,b,S=f.split(" "),D=un(S),$=[""];for(let[L,R]of S.entries()){y.trim!==!1&&($[$.length-1]=($.at(-1)??"").trimStart());let q=zf($.at(-1)??"");if(L!==0&&(q>=r&&(y.wordWrap===!1||y.trim===!1)&&($.push(""),q=0),(q>0||y.trim===!1)&&($[$.length-1]+=" ",q++)),y.hard&&D[L]>r){let J=r-q,x=1+Math.floor((D[L]-J-1)/r);Math.floor((D[L]-1)/r)<x&&$.push(""),Ar($,R,r);continue}if(q+D[L]>r&&q>0&&D[L]>0){if(y.wordWrap===!1&&q<r){Ar($,R,r);continue}$.push("")}if(q+D[L]>r&&y.wordWrap===!1){Ar($,R,r);continue}$[$.length-1]+=R}y.trim!==!1&&($=$.map((L)=>vn(L)));let l=$.join(`
41
- `),T=l[Symbol.iterator](),o=T.next(),_=T.next(),I=0;for(;!o.done;){let L=o.value,R=_.value;if(i+=L,L===mf||L===Ti){bi.lastIndex=I+1;let J=bi.exec(l)?.groups;if(J?.code!==void 0){let x=Number.parseFloat(J.code);n=x===Cn?void 0:x}else J?.uri!==void 0&&(b=J.uri.length===0?void 0:J.uri)}let q=n?On(n):void 0;R===`
42
- `?(b&&(i+=Si("")),n&&q&&(i+=Di(q))):L===`
43
- `&&(n&&q&&(i+=Di(n)),b&&(i+=Si(b))),I+=L.length,o=_,_=T.next()}return i},hn,$f,an,mr,af=(f)=>("columns"in f)&&typeof f.columns=="number"?f.columns:80,tr=(f)=>("rows"in f)&&typeof f.rows=="number"?f.rows:20,er,Ii,oi,fy,ry;var yy=W(()=>{hf=O(h(),1),u=O(Or(),1),ur=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,Of=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,uf=/\t{1,1000}/y,vr=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,vf=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Vn=/\p{M}+/gu,gn={limit:1/0,ellipsis:""},Nn={limit:1/0,ellipsis:"",ellipsisWidth:0},pr=`${Fn}8;;`,bi=new RegExp(`(?:\\${Li}(?<code>\\d+)m|\\${pr}(?<uri>.*)${sr})`,"y");hn=["up","down","left","right","space","enter","cancel"],$f={actions:new Set(hn),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};an=globalThis.process.platform.startsWith("win"),mr=Symbol("clack:cancel");er=class er extends kf{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#f=0;#y="";#i;#r;get cursor(){return this.#f}get userInputWithCursor(){if(!this.userInput)return hf.default.inverse(hf.default.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let f=this.userInput.slice(0,this._cursor),[r,...y]=this.userInput.slice(this._cursor);return`${f}${hf.default.inverse(r)}${y.join("")}`}get options(){return typeof this.#r=="function"?this.#r():this.#r}constructor(f){super(f),this.#r=f.options;let r=this.options;this.filteredOptions=[...r],this.multiple=f.multiple===!0,this.#i=f.filter??pn;let y;if(f.initialValue&&Array.isArray(f.initialValue)?this.multiple?y=f.initialValue:y=f.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(y=[this.options[0].value]),y)for(let i of y){let n=r.findIndex((b)=>b.value===i);n!==-1&&(this.toggleSelected(i),this.#f=n)}this.focusedValue=this.options[this.#f]?.value,this.on("key",(i,n)=>this.#n(i,n)),this.on("userInput",(i)=>this.#b(i))}_isActionKey(f,r){return f==="\t"||this.multiple&&this.isNavigating&&r.name==="space"&&f!==void 0&&f!==""}#n(f,r){let y=r.name==="up",i=r.name==="down",n=r.name==="return";y||i?(this.#f=Math.max(0,Math.min(this.#f+(y?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#f]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):n?this.value=dn(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(r.name==="tab"||this.isNavigating&&r.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(f){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(f)?this.selectedValues=this.selectedValues.filter((r)=>r!==f):this.selectedValues=[...this.selectedValues,f]:this.selectedValues=[f])}#b(f){if(f!==this.#y){this.#y=f;let r=this.options;f?this.filteredOptions=r.filter((y)=>this.#i(f,y)):this.filteredOptions=[...r],this.#f=sn(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#f]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}};Ii=class extends kf{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(f){super(f,!1),this.value=!!f.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",(r)=>{this.output.write(u.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};oi=class oi extends kf{options;cursor=0;#f;getGroupItems(f){return this.options.filter((r)=>r.group===f)}isGroupSelected(f){let r=this.getGroupItems(f),y=this.value;return y===void 0?!1:r.every((i)=>y.includes(i.value))}toggleValue(){let f=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),f.group===!0){let r=f.value,y=this.getGroupItems(r);this.isGroupSelected(r)?this.value=this.value.filter((i)=>y.findIndex((n)=>n.value===i)===-1):this.value=[...this.value,...y.map((i)=>i.value)],this.value=Array.from(new Set(this.value))}else{let r=this.value.includes(f.value);this.value=r?this.value.filter((y)=>y!==f.value):[...this.value,f.value]}}constructor(f){super(f,!1);let{options:r}=f;this.#f=f.selectableGroups!==!1,this.options=Object.entries(r).flatMap(([y,i])=>[{value:y,group:!0,label:y},...i.map((n)=>({...n,group:y}))]),this.value=[...f.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:y})=>y===f.cursorAt),this.#f?0:1),this.on("cursor",(y)=>{switch(y){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let i=this.options[this.cursor]?.group===!0;!this.#f&&i&&(this.cursor=this.cursor===0?this.options.length-1:this.cursor-1);break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let i=this.options[this.cursor]?.group===!0;!this.#f&&i&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}};fy=class fy extends kf{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter((f)=>f.disabled!==!0)}toggleAll(){let f=this._enabledOptions,r=this.value!==void 0&&this.value.length===f.length;this.value=r?[]:f.map((y)=>y.value)}toggleInvert(){let f=this.value;if(!f)return;let r=this._enabledOptions.filter((y)=>!f.includes(y.value));this.value=r.map((y)=>y.value)}toggleValue(){this.value===void 0&&(this.value=[]);let f=this.value.includes(this._value);this.value=f?this.value.filter((r)=>r!==this._value):[...this.value,this._value]}constructor(f){super(f,!1),this.options=f.options,this.value=[...f.initialValues??[]];let r=Math.max(this.options.findIndex(({value:y})=>y===f.cursorAt),0);this.cursor=this.options[r].disabled?_f(r,1,this.options):r,this.on("key",(y)=>{y==="a"&&this.toggleAll(),y==="i"&&this.toggleInvert()}),this.on("cursor",(y)=>{switch(y){case"left":case"up":this.cursor=_f(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=_f(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}};ry=class ry extends kf{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(f){super(f,!1),this.options=f.options;let r=this.options.findIndex(({value:i})=>i===f.initialValue),y=r===-1?0:r;this.cursor=this.options[y].disabled?_f(y,1,this.options):y,this.changeValue(),this.on("cursor",(i)=>{switch(i){case"left":case"up":this.cursor=_f(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=_f(this.cursor,1,this.options);break}this.changeValue()})}}});import t from"node:process";function tn(){return t.platform!=="win32"?t.env.TERM!=="linux":!!t.env.CI||!!t.env.WT_SESSION||!!t.env.TERMINUS_SUBLIME||t.env.ConEmuTask==="{cmd::Cmder}"||t.env.TERM_PROGRAM==="Terminus-Sublime"||t.env.TERM_PROGRAM==="vscode"||t.env.TERM==="xterm-256color"||t.env.TERM==="alacritty"||t.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function Ty(f,r,y){return String(f).normalize().replaceAll(`\r
40
+ `)),this._prevFrame=f;return}}this.output.write(u.erase.down())}this.output.write(f),this.state==="initial"&&(this.state="active"),this._prevFrame=f}}}function d1(f,r){if(f===void 0||r.length===0)return 0;let y=r.findIndex((i)=>i.value===f);return y!==-1?y:0}function t1(f,r){return(r.label??String(r.value)).toLowerCase().includes(f.toLowerCase())}function e1(f,r){if(r)return f?r:r[0]}function kf(f,r,y){let i=f+r,n=Math.max(y.length-1,0),b=i<0?n:i>n?0:i;return y[b].disabled?kf(b,r<0?-1:1,y):b}var af,u,W1=(f)=>f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109,V1=(f)=>f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510,g1=(f)=>f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9800&&f<=9811||f===9855||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12771||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=19903||f>=19968&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f===94192||f===94193||f>=94208&&f<=100343||f>=100352&&f<=101589||f>=101632&&f<=101640||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128727||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129672||f>=129680&&f<=129725||f>=129727&&f<=129733||f>=129742&&f<=129755||f>=129760&&f<=129768||f>=129776&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141,Ar,vf,Af,hr,hf,N1,C1,$i=(f,r={},y={})=>{let i=r.limit??1/0,n=r.ellipsis??"",b=r?.ellipsisWidth??(n?$i(n,C1,y).width:0),S=y.ansiWidth??0,D=y.controlWidth??0,l=y.tabWidth??8,$=y.ambiguousWidth??1,T=y.emojiWidth??2,I=y.fullWidthWidth??2,_=y.regularWidth??1,R=y.wideWidth??2,L=0,w=0,k=f.length,q=0,J=!1,Y=k,M=Math.max(0,i-b),U=0,K=0,x=0,Z=0;f:for(;;){if(K>U||w>=k&&w>L){let F=f.slice(U,K)||f.slice(L,w);q=0;for(let C of F.replaceAll(N1,"")){let g=C.codePointAt(0)||0;if(V1(g)?Z=I:g1(g)?Z=R:$!==_&&W1(g)?Z=$:Z=_,x+Z>M&&(Y=Math.min(Y,Math.max(U,L)+q)),x+Z>i){J=!0;break f}q+=C.length,x+=Z}U=K=0}if(w>=k)break;if(hf.lastIndex=w,hf.test(f)){if(q=hf.lastIndex-w,Z=q*_,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/_))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=hf.lastIndex;continue}if(Ar.lastIndex=w,Ar.test(f)){if(x+S>M&&(Y=Math.min(Y,w)),x+S>i){J=!0;break}x+=S,U=L,K=w,w=L=Ar.lastIndex;continue}if(vf.lastIndex=w,vf.test(f)){if(q=vf.lastIndex-w,Z=q*D,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/D))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=vf.lastIndex;continue}if(Af.lastIndex=w,Af.test(f)){if(q=Af.lastIndex-w,Z=q*l,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/l))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=Af.lastIndex;continue}if(hr.lastIndex=w,hr.test(f)){if(x+T>M&&(Y=Math.min(Y,w)),x+T>i){J=!0;break}x+=T,U=L,K=w,w=L=hr.lastIndex;continue}w+=1}return{width:J?M:x,index:J?Y:k,truncated:J,ellipsed:J&&i>=b}},F1,zf=(f,r={})=>$i(f,F1,r).width,sf="\x1B",Ti="›",O1=39,dr="\x07",Li="[",u1="]",oi="m",tr,bi,v1=(f)=>{if(f>=30&&f<=37||f>=90&&f<=97)return 39;if(f>=40&&f<=47||f>=100&&f<=107)return 49;if(f===1||f===2)return 22;if(f===3)return 23;if(f===4)return 24;if(f===7)return 27;if(f===8)return 28;if(f===9)return 29;if(f===0)return 0},Di=(f)=>`${sf}${Li}${f}${oi}`,Si=(f)=>`${sf}${tr}${f}${dr}`,A1=(f)=>f.map((r)=>zf(r)),mr=(f,r,y)=>{let i=r[Symbol.iterator](),n=!1,b=!1,S=f.at(-1),D=S===void 0?0:zf(S),l=i.next(),$=i.next(),T=0;for(;!l.done;){let I=l.value,_=zf(I);D+_<=y?f[f.length-1]+=I:(f.push(I),D=0),(I===sf||I===Ti)&&(n=!0,b=r.startsWith(tr,T+1)),n?b?I===dr&&(n=!1,b=!1):I===oi&&(n=!1):(D+=_,D===y&&!$.done&&(f.push(""),D=0)),l=$,$=i.next(),T+=I.length}S=f.at(-1),!D&&S!==void 0&&S.length>0&&f.length>1&&(f[f.length-2]+=f.pop())},h1=(f)=>{let r=f.split(" "),y=r.length;for(;y>0&&!(zf(r[y-1])>0);)y--;return y===r.length?f:r.slice(0,y).join(" ")+r.slice(y).join("")},m1=(f,r,y={})=>{if(y.trim!==!1&&f.trim()==="")return"";let i="",n,b,S=f.split(" "),D=A1(S),l=[""];for(let[L,w]of S.entries()){y.trim!==!1&&(l[l.length-1]=(l.at(-1)??"").trimStart());let k=zf(l.at(-1)??"");if(L!==0&&(k>=r&&(y.wordWrap===!1||y.trim===!1)&&(l.push(""),k=0),(k>0||y.trim===!1)&&(l[l.length-1]+=" ",k++)),y.hard&&D[L]>r){let q=r-k,J=1+Math.floor((D[L]-q-1)/r);Math.floor((D[L]-1)/r)<J&&l.push(""),mr(l,w,r);continue}if(k+D[L]>r&&k>0&&D[L]>0){if(y.wordWrap===!1&&k<r){mr(l,w,r);continue}l.push("")}if(k+D[L]>r&&y.wordWrap===!1){mr(l,w,r);continue}l[l.length-1]+=w}y.trim!==!1&&(l=l.map((L)=>h1(L)));let $=l.join(`
41
+ `),T=$[Symbol.iterator](),I=T.next(),_=T.next(),R=0;for(;!I.done;){let L=I.value,w=_.value;if(i+=L,L===sf||L===Ti){bi.lastIndex=R+1;let q=bi.exec($)?.groups;if(q?.code!==void 0){let J=Number.parseFloat(q.code);n=J===O1?void 0:J}else q?.uri!==void 0&&(b=q.uri.length===0?void 0:q.uri)}let k=n?v1(n):void 0;w===`
42
+ `?(b&&(i+=Si("")),n&&k&&(i+=Di(k))):L===`
43
+ `&&(n&&k&&(i+=Di(n)),b&&(i+=Si(b))),R+=L.length,I=_,_=T.next()}return i},a1,lf,p1,sr,pf=(f)=>("columns"in f)&&typeof f.columns=="number"?f.columns:80,fy=(f)=>("rows"in f)&&typeof f.rows=="number"?f.rows:20,ry,Ri,Ii,yy,iy;var ny=W(()=>{af=O(h(),1),u=O(vr(),1),Ar=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,vf=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Af=/\t{1,1000}/y,hr=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,hf=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,N1=/\p{M}+/gu,C1={limit:1/0,ellipsis:""},F1={limit:1/0,ellipsis:"",ellipsisWidth:0},tr=`${u1}8;;`,bi=new RegExp(`(?:\\${Li}(?<code>\\d+)m|\\${tr}(?<uri>.*)${dr})`,"y");a1=["up","down","left","right","space","enter","cancel"],lf={actions:new Set(a1),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};p1=globalThis.process.platform.startsWith("win"),sr=Symbol("clack:cancel");ry=class ry extends Yf{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#f=0;#y="";#i;#r;get cursor(){return this.#f}get userInputWithCursor(){if(!this.userInput)return af.default.inverse(af.default.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let f=this.userInput.slice(0,this._cursor),[r,...y]=this.userInput.slice(this._cursor);return`${f}${af.default.inverse(r)}${y.join("")}`}get options(){return typeof this.#r=="function"?this.#r():this.#r}constructor(f){super(f),this.#r=f.options;let r=this.options;this.filteredOptions=[...r],this.multiple=f.multiple===!0,this.#i=f.filter??t1;let y;if(f.initialValue&&Array.isArray(f.initialValue)?this.multiple?y=f.initialValue:y=f.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(y=[this.options[0].value]),y)for(let i of y){let n=r.findIndex((b)=>b.value===i);n!==-1&&(this.toggleSelected(i),this.#f=n)}this.focusedValue=this.options[this.#f]?.value,this.on("key",(i,n)=>this.#n(i,n)),this.on("userInput",(i)=>this.#b(i))}_isActionKey(f,r){return f==="\t"||this.multiple&&this.isNavigating&&r.name==="space"&&f!==void 0&&f!==""}#n(f,r){let y=r.name==="up",i=r.name==="down",n=r.name==="return";y||i?(this.#f=Math.max(0,Math.min(this.#f+(y?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#f]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):n?this.value=e1(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(r.name==="tab"||this.isNavigating&&r.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(f){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(f)?this.selectedValues=this.selectedValues.filter((r)=>r!==f):this.selectedValues=[...this.selectedValues,f]:this.selectedValues=[f])}#b(f){if(f!==this.#y){this.#y=f;let r=this.options;f?this.filteredOptions=r.filter((y)=>this.#i(f,y)):this.filteredOptions=[...r],this.#f=d1(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#f]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}};Ri=class extends Yf{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(f){super(f,!1),this.value=!!f.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",(r)=>{this.output.write(u.cursor.move(0,-1)),this.value=r,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};Ii=class Ii extends Yf{options;cursor=0;#f;getGroupItems(f){return this.options.filter((r)=>r.group===f)}isGroupSelected(f){let r=this.getGroupItems(f),y=this.value;return y===void 0?!1:r.every((i)=>y.includes(i.value))}toggleValue(){let f=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),f.group===!0){let r=f.value,y=this.getGroupItems(r);this.isGroupSelected(r)?this.value=this.value.filter((i)=>y.findIndex((n)=>n.value===i)===-1):this.value=[...this.value,...y.map((i)=>i.value)],this.value=Array.from(new Set(this.value))}else{let r=this.value.includes(f.value);this.value=r?this.value.filter((y)=>y!==f.value):[...this.value,f.value]}}constructor(f){super(f,!1);let{options:r}=f;this.#f=f.selectableGroups!==!1,this.options=Object.entries(r).flatMap(([y,i])=>[{value:y,group:!0,label:y},...i.map((n)=>({...n,group:y}))]),this.value=[...f.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:y})=>y===f.cursorAt),this.#f?0:1),this.on("cursor",(y)=>{switch(y){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let i=this.options[this.cursor]?.group===!0;!this.#f&&i&&(this.cursor=this.cursor===0?this.options.length-1:this.cursor-1);break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let i=this.options[this.cursor]?.group===!0;!this.#f&&i&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}};yy=class yy extends Yf{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter((f)=>f.disabled!==!0)}toggleAll(){let f=this._enabledOptions,r=this.value!==void 0&&this.value.length===f.length;this.value=r?[]:f.map((y)=>y.value)}toggleInvert(){let f=this.value;if(!f)return;let r=this._enabledOptions.filter((y)=>!f.includes(y.value));this.value=r.map((y)=>y.value)}toggleValue(){this.value===void 0&&(this.value=[]);let f=this.value.includes(this._value);this.value=f?this.value.filter((r)=>r!==this._value):[...this.value,this._value]}constructor(f){super(f,!1),this.options=f.options,this.value=[...f.initialValues??[]];let r=Math.max(this.options.findIndex(({value:y})=>y===f.cursorAt),0);this.cursor=this.options[r].disabled?kf(r,1,this.options):r,this.on("key",(y)=>{y==="a"&&this.toggleAll(),y==="i"&&this.toggleInvert()}),this.on("cursor",(y)=>{switch(y){case"left":case"up":this.cursor=kf(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=kf(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}};iy=class iy extends Yf{options;cursor=0;get _selectedValue(){return this.options[this.cursor]}changeValue(){this.value=this._selectedValue.value}constructor(f){super(f,!1),this.options=f.options;let r=this.options.findIndex(({value:i})=>i===f.initialValue),y=r===-1?0:r;this.cursor=this.options[y].disabled?kf(y,1,this.options):y,this.changeValue(),this.on("cursor",(i)=>{switch(i){case"left":case"up":this.cursor=kf(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=kf(this.cursor,1,this.options);break}this.changeValue()})}}});import t from"node:process";function fb(){return t.platform!=="win32"?t.env.TERM!=="linux":!!t.env.CI||!!t.env.WT_SESSION||!!t.env.TERMINUS_SUBLIME||t.env.ConEmuTask==="{cmd::Cmder}"||t.env.TERM_PROGRAM==="Terminus-Sublime"||t.env.TERM_PROGRAM==="vscode"||t.env.TERM==="xterm-256color"||t.env.TERM==="alacritty"||t.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}function oy(f,r,y){return String(f).normalize().replaceAll(`\r
44
44
  `,`
45
45
  `).split(`
46
- `).map((i)=>qb(i,r,y)).join(`
47
- `)}function xb(f,r){if(!f)return!0;let y=(r.label??String(r.value??"")).toLowerCase(),i=(r.hint??"").toLowerCase(),n=String(r.value).toLowerCase(),b=f.toLowerCase();return y.includes(b)||i.includes(b)||n.includes(b)}var P,Bf,Dy,en=()=>process.env.CI==="true",c=(f,r)=>Dy?f:r,fb,Ji,xi,Ly,rb,j,Jf,SD,$D,Sy,ef,yb,$y,ly,lD,TD,LD,wD,RD,ID,oD,ib,nb,bb,Db,rr=(f)=>{switch(f){case"initial":case"active":return P.default.cyan(fb);case"cancel":return P.default.red(Ji);case"error":return P.default.yellow(xi);case"submit":return P.default.green(Ly)}},Yi=(f)=>{switch(f){case"initial":case"active":return P.default.cyan(j);case"cancel":return P.default.red(j);case"error":return P.default.yellow(j);case"submit":return P.default.green(j)}},Sb=(f)=>f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109,$b=(f)=>f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510,lb=(f)=>f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9800&&f<=9811||f===9855||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12771||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=19903||f>=19968&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f===94192||f===94193||f>=94208&&f<=100343||f>=100352&&f<=101589||f>=101632&&f<=101640||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128727||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129672||f>=129680&&f<=129725||f>=129727&&f<=129733||f>=129742&&f<=129755||f>=129760&&f<=129768||f>=129776&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141,iy,sf,pf,ny,df,Tb,Lb,ki=(f,r={},y={})=>{let i=r.limit??1/0,n=r.ellipsis??"",b=r?.ellipsisWidth??(n?ki(n,Lb,y).width:0),S=y.ansiWidth??0,D=y.controlWidth??0,$=y.tabWidth??8,l=y.ambiguousWidth??1,T=y.emojiWidth??2,o=y.fullWidthWidth??2,_=y.regularWidth??1,I=y.wideWidth??2,L=0,R=0,q=f.length,J=0,x=!1,k=q,M=Math.max(0,i-b),U=0,H=0,Y=0,Z=0;f:for(;;){if(H>U||R>=q&&R>L){let F=f.slice(U,H)||f.slice(L,R);J=0;for(let C of F.replaceAll(Tb,"")){let g=C.codePointAt(0)||0;if($b(g)?Z=o:lb(g)?Z=I:l!==_&&Sb(g)?Z=l:Z=_,Y+Z>M&&(k=Math.min(k,Math.max(U,L)+J)),Y+Z>i){x=!0;break f}J+=C.length,Y+=Z}U=H=0}if(R>=q)break;if(df.lastIndex=R,df.test(f)){if(J=df.lastIndex-R,Z=J*_,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/_))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=df.lastIndex;continue}if(iy.lastIndex=R,iy.test(f)){if(Y+S>M&&(k=Math.min(k,R)),Y+S>i){x=!0;break}Y+=S,U=L,H=R,R=L=iy.lastIndex;continue}if(sf.lastIndex=R,sf.test(f)){if(J=sf.lastIndex-R,Z=J*D,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/D))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=sf.lastIndex;continue}if(pf.lastIndex=R,pf.test(f)){if(J=pf.lastIndex-R,Z=J*$,Y+Z>M&&(k=Math.min(k,R+Math.floor((M-Y)/$))),Y+Z>i){x=!0;break}Y+=Z,U=L,H=R,R=L=pf.lastIndex;continue}if(ny.lastIndex=R,ny.test(f)){if(Y+T>M&&(k=Math.min(k,R)),Y+T>i){x=!0;break}Y+=T,U=L,H=R,R=L=ny.lastIndex;continue}R+=1}return{width:x?M:Y,index:x?k:q,truncated:x,ellipsed:x&&i>=b}},wb,jf=(f,r={})=>ki(f,wb,r).width,yr="\x1B",Zi="›",Rb=39,wy="\x07",Qi="[",Ib="]",Xi="m",Ry,Pi,ob=(f)=>{if(f>=30&&f<=37||f>=90&&f<=97)return 39;if(f>=40&&f<=47||f>=100&&f<=107)return 49;if(f===1||f===2)return 22;if(f===3)return 23;if(f===4)return 24;if(f===7)return 27;if(f===8)return 28;if(f===9)return 29;if(f===0)return 0},_i=(f)=>`${yr}${Qi}${f}${Xi}`,qi=(f)=>`${yr}${Ry}${f}${wy}`,Pb=(f)=>f.map((r)=>jf(r)),by=(f,r,y)=>{let i=r[Symbol.iterator](),n=!1,b=!1,S=f.at(-1),D=S===void 0?0:jf(S),$=i.next(),l=i.next(),T=0;for(;!$.done;){let o=$.value,_=jf(o);D+_<=y?f[f.length-1]+=o:(f.push(o),D=0),(o===yr||o===Zi)&&(n=!0,b=r.startsWith(Ry,T+1)),n?b?o===wy&&(n=!1,b=!1):o===Xi&&(n=!1):(D+=_,D===y&&!l.done&&(f.push(""),D=0)),$=l,l=i.next(),T+=o.length}S=f.at(-1),!D&&S!==void 0&&S.length>0&&f.length>1&&(f[f.length-2]+=f.pop())},_b=(f)=>{let r=f.split(" "),y=r.length;for(;y>0&&!(jf(r[y-1])>0);)y--;return y===r.length?f:r.slice(0,y).join(" ")+r.slice(y).join("")},qb=(f,r,y={})=>{if(y.trim!==!1&&f.trim()==="")return"";let i="",n,b,S=f.split(" "),D=Pb(S),$=[""];for(let[L,R]of S.entries()){y.trim!==!1&&($[$.length-1]=($.at(-1)??"").trimStart());let q=jf($.at(-1)??"");if(L!==0&&(q>=r&&(y.wordWrap===!1||y.trim===!1)&&($.push(""),q=0),(q>0||y.trim===!1)&&($[$.length-1]+=" ",q++)),y.hard&&D[L]>r){let J=r-q,x=1+Math.floor((D[L]-J-1)/r);Math.floor((D[L]-1)/r)<x&&$.push(""),by($,R,r);continue}if(q+D[L]>r&&q>0&&D[L]>0){if(y.wordWrap===!1&&q<r){by($,R,r);continue}$.push("")}if(q+D[L]>r&&y.wordWrap===!1){by($,R,r);continue}$[$.length-1]+=R}y.trim!==!1&&($=$.map((L)=>_b(L)));let l=$.join(`
48
- `),T=l[Symbol.iterator](),o=T.next(),_=T.next(),I=0;for(;!o.done;){let L=o.value,R=_.value;if(i+=L,L===yr||L===Zi){Pi.lastIndex=I+1;let J=Pi.exec(l)?.groups;if(J?.code!==void 0){let x=Number.parseFloat(J.code);n=x===Rb?void 0:x}else J?.uri!==void 0&&(b=J.uri.length===0?void 0:J.uri)}let q=n?ob(n):void 0;R===`
49
- `?(b&&(i+=qi("")),n&&q&&(i+=_i(q))):L===`
50
- `&&(n&&q&&(i+=_i(n)),b&&(i+=qi(b))),I+=L.length,o=_,_=T.next()}return i},Jb=(f,r,y,i,n)=>{let b=r,S=0;for(let D=y;D<i;D++){let $=f[D];if(b=b-$.length,S++,b<=n)break}return{lineCount:b,removals:S}},fr=(f)=>{let{cursor:r,options:y,style:i}=f,n=f.output??process.stdout,b=af(n),S=f.columnPadding??0,D=f.rowPadding??4,$=b-S,l=tr(n),T=P.default.dim("..."),o=f.maxItems??Number.POSITIVE_INFINITY,_=Math.max(l-D,0),I=Math.max(Math.min(o,_),5),L=0;r>=I-3&&(L=Math.max(Math.min(r-I+3,y.length-I),0));let R=I<y.length&&L>0,q=I<y.length&&L+I<y.length,J=Math.min(L+I,y.length),x=[],k=0;R&&k++,q&&k++;let M=L+(R?1:0),U=J-(q?1:0);for(let Y=M;Y<U;Y++){let Z=Ty(i(y[Y],Y===r),$,{hard:!0,trim:!1}).split(`
51
- `);x.push(Z),k+=Z.length}if(k>_){let Y=0,Z=0,F=k,C=r-M,g=(nf,B)=>Jb(x,F,nf,B,_);R?({lineCount:F,removals:Y}=g(0,C),F>_&&({lineCount:F,removals:Z}=g(C+1,x.length))):({lineCount:F,removals:Z}=g(C+1,x.length),F>_&&({lineCount:F,removals:Y}=g(0,C))),Y>0&&(R=!0,x.splice(0,Y)),Z>0&&(q=!0,x.splice(x.length-Z,Z))}let H=[];R&&H.push(T);for(let Y of x)for(let Z of Y)H.push(Z);return q&&H.push(T),H},Mi=(f)=>{let r=(i,n,b,S)=>{let D=b.includes(i.value),$=i.label??String(i.value??""),l=i.hint&&S!==void 0&&i.value===S?P.default.dim(` (${i.hint})`):"",T=D?P.default.green($y):P.default.dim(ly);return n?`${T} ${$}${l}`:`${T} ${P.default.dim($)}`},y=new er({options:f.options,multiple:!0,filter:(i,n)=>xb(i,n),validate:()=>{if(f.required&&y.selectedValues.length===0)return"Please select at least one item"},initialValue:f.initialValues,signal:f.signal,input:f.input,output:f.output,render(){let i=`${P.default.gray(j)}
52
- ${rr(this.state)} ${f.message}
53
- `,n=this.userInput,b=f.placeholder,S=n===""&&b!==void 0,D=this.isNavigating||S?P.default.dim(S?b:n):this.userInputWithCursor,$=this.options,l=this.filteredOptions.length!==$.length?P.default.dim(` (${this.filteredOptions.length} match${this.filteredOptions.length===1?"":"es"})`):"";switch(this.state){case"submit":return`${i}${P.default.gray(j)} ${P.default.dim(`${this.selectedValues.length} items selected`)}`;case"cancel":return`${i}${P.default.gray(j)} ${P.default.strikethrough(P.default.dim(n))}`;default:{let T=this.state==="error"?P.default.yellow:P.default.cyan,o=[`${P.default.dim("↑/↓")} to navigate`,`${P.default.dim(this.isNavigating?"Space/Tab:":"Tab:")} select`,`${P.default.dim("Enter:")} confirm`,`${P.default.dim("Type:")} to search`],_=this.filteredOptions.length===0&&n?[`${T(j)} ${P.default.yellow("No matches found")}`]:[],I=this.state==="error"?[`${T(j)} ${P.default.yellow(this.error)}`]:[],L=[...`${i}${T(j)}`.split(`
54
- `),`${T(j)} ${P.default.dim("Search:")} ${D}${l}`,..._,...I],R=[`${T(j)} ${P.default.dim(o.join(" • "))}`,`${T(Jf)}`],q=fr({cursor:this.cursor,options:this.filteredOptions,style:(J,x)=>r(J,x,this.selectedValues,this.focusedValue),maxItems:f.maxItems,output:f.output,rowPadding:L.length+R.length});return[...L,...q.map((J)=>`${T(j)} ${J}`),...R].join(`
55
- `)}}}});return y.prompt()},Rf=(f)=>{let r=f.active??"Yes",y=f.inactive??"No";return new Ii({active:r,inactive:y,signal:f.signal,input:f.input,output:f.output,initialValue:f.initialValue??!0,render(){let i=`${P.default.gray(j)}
56
- ${rr(this.state)} ${f.message}
57
- `,n=this.value?r:y;switch(this.state){case"submit":return`${i}${P.default.gray(j)} ${P.default.dim(n)}`;case"cancel":return`${i}${P.default.gray(j)} ${P.default.strikethrough(P.default.dim(n))}
58
- ${P.default.gray(j)}`;default:return`${i}${P.default.cyan(j)} ${this.value?`${P.default.green(Sy)} ${r}`:`${P.default.dim(ef)} ${P.default.dim(r)}`} ${P.default.dim("/")} ${this.value?`${P.default.dim(ef)} ${P.default.dim(y)}`:`${P.default.green(Sy)} ${y}`}
46
+ `).map((i)=>Jb(i,r,y)).join(`
47
+ `)}function Yb(f,r){if(!f)return!0;let y=(r.label??String(r.value??"")).toLowerCase(),i=(r.hint??"").toLowerCase(),n=String(r.value).toLowerCase(),b=f.toLowerCase();return y.includes(b)||i.includes(b)||n.includes(b)}var P,jf,ly,rb=()=>process.env.CI==="true",G=(f,r)=>ly?f:r,yb,qi,Ji,wy,ib,B,Jf,lD,$D,$y,rr,nb,Ty,Ly,TD,LD,oD,wD,RD,ID,PD,bb,Db,Sb,lb,ir=(f)=>{switch(f){case"initial":case"active":return P.default.cyan(yb);case"cancel":return P.default.red(qi);case"error":return P.default.yellow(Ji);case"submit":return P.default.green(wy)}},xi=(f)=>{switch(f){case"initial":case"active":return P.default.cyan(B);case"cancel":return P.default.red(B);case"error":return P.default.yellow(B);case"submit":return P.default.green(B)}},$b=(f)=>f===161||f===164||f===167||f===168||f===170||f===173||f===174||f>=176&&f<=180||f>=182&&f<=186||f>=188&&f<=191||f===198||f===208||f===215||f===216||f>=222&&f<=225||f===230||f>=232&&f<=234||f===236||f===237||f===240||f===242||f===243||f>=247&&f<=250||f===252||f===254||f===257||f===273||f===275||f===283||f===294||f===295||f===299||f>=305&&f<=307||f===312||f>=319&&f<=322||f===324||f>=328&&f<=331||f===333||f===338||f===339||f===358||f===359||f===363||f===462||f===464||f===466||f===468||f===470||f===472||f===474||f===476||f===593||f===609||f===708||f===711||f>=713&&f<=715||f===717||f===720||f>=728&&f<=731||f===733||f===735||f>=768&&f<=879||f>=913&&f<=929||f>=931&&f<=937||f>=945&&f<=961||f>=963&&f<=969||f===1025||f>=1040&&f<=1103||f===1105||f===8208||f>=8211&&f<=8214||f===8216||f===8217||f===8220||f===8221||f>=8224&&f<=8226||f>=8228&&f<=8231||f===8240||f===8242||f===8243||f===8245||f===8251||f===8254||f===8308||f===8319||f>=8321&&f<=8324||f===8364||f===8451||f===8453||f===8457||f===8467||f===8470||f===8481||f===8482||f===8486||f===8491||f===8531||f===8532||f>=8539&&f<=8542||f>=8544&&f<=8555||f>=8560&&f<=8569||f===8585||f>=8592&&f<=8601||f===8632||f===8633||f===8658||f===8660||f===8679||f===8704||f===8706||f===8707||f===8711||f===8712||f===8715||f===8719||f===8721||f===8725||f===8730||f>=8733&&f<=8736||f===8739||f===8741||f>=8743&&f<=8748||f===8750||f>=8756&&f<=8759||f===8764||f===8765||f===8776||f===8780||f===8786||f===8800||f===8801||f>=8804&&f<=8807||f===8810||f===8811||f===8814||f===8815||f===8834||f===8835||f===8838||f===8839||f===8853||f===8857||f===8869||f===8895||f===8978||f>=9312&&f<=9449||f>=9451&&f<=9547||f>=9552&&f<=9587||f>=9600&&f<=9615||f>=9618&&f<=9621||f===9632||f===9633||f>=9635&&f<=9641||f===9650||f===9651||f===9654||f===9655||f===9660||f===9661||f===9664||f===9665||f>=9670&&f<=9672||f===9675||f>=9678&&f<=9681||f>=9698&&f<=9701||f===9711||f===9733||f===9734||f===9737||f===9742||f===9743||f===9756||f===9758||f===9792||f===9794||f===9824||f===9825||f>=9827&&f<=9829||f>=9831&&f<=9834||f===9836||f===9837||f===9839||f===9886||f===9887||f===9919||f>=9926&&f<=9933||f>=9935&&f<=9939||f>=9941&&f<=9953||f===9955||f===9960||f===9961||f>=9963&&f<=9969||f===9972||f>=9974&&f<=9977||f===9979||f===9980||f===9982||f===9983||f===10045||f>=10102&&f<=10111||f>=11094&&f<=11097||f>=12872&&f<=12879||f>=57344&&f<=63743||f>=65024&&f<=65039||f===65533||f>=127232&&f<=127242||f>=127248&&f<=127277||f>=127280&&f<=127337||f>=127344&&f<=127373||f===127375||f===127376||f>=127387&&f<=127404||f>=917760&&f<=917999||f>=983040&&f<=1048573||f>=1048576&&f<=1114109,Tb=(f)=>f===12288||f>=65281&&f<=65376||f>=65504&&f<=65510,Lb=(f)=>f>=4352&&f<=4447||f===8986||f===8987||f===9001||f===9002||f>=9193&&f<=9196||f===9200||f===9203||f===9725||f===9726||f===9748||f===9749||f>=9800&&f<=9811||f===9855||f===9875||f===9889||f===9898||f===9899||f===9917||f===9918||f===9924||f===9925||f===9934||f===9940||f===9962||f===9970||f===9971||f===9973||f===9978||f===9981||f===9989||f===9994||f===9995||f===10024||f===10060||f===10062||f>=10067&&f<=10069||f===10071||f>=10133&&f<=10135||f===10160||f===10175||f===11035||f===11036||f===11088||f===11093||f>=11904&&f<=11929||f>=11931&&f<=12019||f>=12032&&f<=12245||f>=12272&&f<=12287||f>=12289&&f<=12350||f>=12353&&f<=12438||f>=12441&&f<=12543||f>=12549&&f<=12591||f>=12593&&f<=12686||f>=12688&&f<=12771||f>=12783&&f<=12830||f>=12832&&f<=12871||f>=12880&&f<=19903||f>=19968&&f<=42124||f>=42128&&f<=42182||f>=43360&&f<=43388||f>=44032&&f<=55203||f>=63744&&f<=64255||f>=65040&&f<=65049||f>=65072&&f<=65106||f>=65108&&f<=65126||f>=65128&&f<=65131||f>=94176&&f<=94180||f===94192||f===94193||f>=94208&&f<=100343||f>=100352&&f<=101589||f>=101632&&f<=101640||f>=110576&&f<=110579||f>=110581&&f<=110587||f===110589||f===110590||f>=110592&&f<=110882||f===110898||f>=110928&&f<=110930||f===110933||f>=110948&&f<=110951||f>=110960&&f<=111355||f===126980||f===127183||f===127374||f>=127377&&f<=127386||f>=127488&&f<=127490||f>=127504&&f<=127547||f>=127552&&f<=127560||f===127568||f===127569||f>=127584&&f<=127589||f>=127744&&f<=127776||f>=127789&&f<=127797||f>=127799&&f<=127868||f>=127870&&f<=127891||f>=127904&&f<=127946||f>=127951&&f<=127955||f>=127968&&f<=127984||f===127988||f>=127992&&f<=128062||f===128064||f>=128066&&f<=128252||f>=128255&&f<=128317||f>=128331&&f<=128334||f>=128336&&f<=128359||f===128378||f===128405||f===128406||f===128420||f>=128507&&f<=128591||f>=128640&&f<=128709||f===128716||f>=128720&&f<=128722||f>=128725&&f<=128727||f>=128732&&f<=128735||f===128747||f===128748||f>=128756&&f<=128764||f>=128992&&f<=129003||f===129008||f>=129292&&f<=129338||f>=129340&&f<=129349||f>=129351&&f<=129535||f>=129648&&f<=129660||f>=129664&&f<=129672||f>=129680&&f<=129725||f>=129727&&f<=129733||f>=129742&&f<=129755||f>=129760&&f<=129768||f>=129776&&f<=129784||f>=131072&&f<=196605||f>=196608&&f<=262141,by,df,tf,Dy,ef,ob,wb,Yi=(f,r={},y={})=>{let i=r.limit??1/0,n=r.ellipsis??"",b=r?.ellipsisWidth??(n?Yi(n,wb,y).width:0),S=y.ansiWidth??0,D=y.controlWidth??0,l=y.tabWidth??8,$=y.ambiguousWidth??1,T=y.emojiWidth??2,I=y.fullWidthWidth??2,_=y.regularWidth??1,R=y.wideWidth??2,L=0,w=0,k=f.length,q=0,J=!1,Y=k,M=Math.max(0,i-b),U=0,K=0,x=0,Z=0;f:for(;;){if(K>U||w>=k&&w>L){let F=f.slice(U,K)||f.slice(L,w);q=0;for(let C of F.replaceAll(ob,"")){let g=C.codePointAt(0)||0;if(Tb(g)?Z=I:Lb(g)?Z=R:$!==_&&$b(g)?Z=$:Z=_,x+Z>M&&(Y=Math.min(Y,Math.max(U,L)+q)),x+Z>i){J=!0;break f}q+=C.length,x+=Z}U=K=0}if(w>=k)break;if(ef.lastIndex=w,ef.test(f)){if(q=ef.lastIndex-w,Z=q*_,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/_))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=ef.lastIndex;continue}if(by.lastIndex=w,by.test(f)){if(x+S>M&&(Y=Math.min(Y,w)),x+S>i){J=!0;break}x+=S,U=L,K=w,w=L=by.lastIndex;continue}if(df.lastIndex=w,df.test(f)){if(q=df.lastIndex-w,Z=q*D,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/D))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=df.lastIndex;continue}if(tf.lastIndex=w,tf.test(f)){if(q=tf.lastIndex-w,Z=q*l,x+Z>M&&(Y=Math.min(Y,w+Math.floor((M-x)/l))),x+Z>i){J=!0;break}x+=Z,U=L,K=w,w=L=tf.lastIndex;continue}if(Dy.lastIndex=w,Dy.test(f)){if(x+T>M&&(Y=Math.min(Y,w)),x+T>i){J=!0;break}x+=T,U=L,K=w,w=L=Dy.lastIndex;continue}w+=1}return{width:J?M:x,index:J?Y:k,truncated:J,ellipsed:J&&i>=b}},Rb,Bf=(f,r={})=>Yi(f,Rb,r).width,nr="\x1B",Zi="›",Ib=39,Ry="\x07",Qi="[",Pb="]",Xi="m",Iy,Pi,_b=(f)=>{if(f>=30&&f<=37||f>=90&&f<=97)return 39;if(f>=40&&f<=47||f>=100&&f<=107)return 49;if(f===1||f===2)return 22;if(f===3)return 23;if(f===4)return 24;if(f===7)return 27;if(f===8)return 28;if(f===9)return 29;if(f===0)return 0},_i=(f)=>`${nr}${Qi}${f}${Xi}`,ki=(f)=>`${nr}${Iy}${f}${Ry}`,kb=(f)=>f.map((r)=>Bf(r)),Sy=(f,r,y)=>{let i=r[Symbol.iterator](),n=!1,b=!1,S=f.at(-1),D=S===void 0?0:Bf(S),l=i.next(),$=i.next(),T=0;for(;!l.done;){let I=l.value,_=Bf(I);D+_<=y?f[f.length-1]+=I:(f.push(I),D=0),(I===nr||I===Zi)&&(n=!0,b=r.startsWith(Iy,T+1)),n?b?I===Ry&&(n=!1,b=!1):I===Xi&&(n=!1):(D+=_,D===y&&!$.done&&(f.push(""),D=0)),l=$,$=i.next(),T+=I.length}S=f.at(-1),!D&&S!==void 0&&S.length>0&&f.length>1&&(f[f.length-2]+=f.pop())},qb=(f)=>{let r=f.split(" "),y=r.length;for(;y>0&&!(Bf(r[y-1])>0);)y--;return y===r.length?f:r.slice(0,y).join(" ")+r.slice(y).join("")},Jb=(f,r,y={})=>{if(y.trim!==!1&&f.trim()==="")return"";let i="",n,b,S=f.split(" "),D=kb(S),l=[""];for(let[L,w]of S.entries()){y.trim!==!1&&(l[l.length-1]=(l.at(-1)??"").trimStart());let k=Bf(l.at(-1)??"");if(L!==0&&(k>=r&&(y.wordWrap===!1||y.trim===!1)&&(l.push(""),k=0),(k>0||y.trim===!1)&&(l[l.length-1]+=" ",k++)),y.hard&&D[L]>r){let q=r-k,J=1+Math.floor((D[L]-q-1)/r);Math.floor((D[L]-1)/r)<J&&l.push(""),Sy(l,w,r);continue}if(k+D[L]>r&&k>0&&D[L]>0){if(y.wordWrap===!1&&k<r){Sy(l,w,r);continue}l.push("")}if(k+D[L]>r&&y.wordWrap===!1){Sy(l,w,r);continue}l[l.length-1]+=w}y.trim!==!1&&(l=l.map((L)=>qb(L)));let $=l.join(`
48
+ `),T=$[Symbol.iterator](),I=T.next(),_=T.next(),R=0;for(;!I.done;){let L=I.value,w=_.value;if(i+=L,L===nr||L===Zi){Pi.lastIndex=R+1;let q=Pi.exec($)?.groups;if(q?.code!==void 0){let J=Number.parseFloat(q.code);n=J===Ib?void 0:J}else q?.uri!==void 0&&(b=q.uri.length===0?void 0:q.uri)}let k=n?_b(n):void 0;w===`
49
+ `?(b&&(i+=ki("")),n&&k&&(i+=_i(k))):L===`
50
+ `&&(n&&k&&(i+=_i(n)),b&&(i+=ki(b))),R+=L.length,I=_,_=T.next()}return i},xb=(f,r,y,i,n)=>{let b=r,S=0;for(let D=y;D<i;D++){let l=f[D];if(b=b-l.length,S++,b<=n)break}return{lineCount:b,removals:S}},yr=(f)=>{let{cursor:r,options:y,style:i}=f,n=f.output??process.stdout,b=pf(n),S=f.columnPadding??0,D=f.rowPadding??4,l=b-S,$=fy(n),T=P.default.dim("..."),I=f.maxItems??Number.POSITIVE_INFINITY,_=Math.max($-D,0),R=Math.max(Math.min(I,_),5),L=0;r>=R-3&&(L=Math.max(Math.min(r-R+3,y.length-R),0));let w=R<y.length&&L>0,k=R<y.length&&L+R<y.length,q=Math.min(L+R,y.length),J=[],Y=0;w&&Y++,k&&Y++;let M=L+(w?1:0),U=q-(k?1:0);for(let x=M;x<U;x++){let Z=oy(i(y[x],x===r),l,{hard:!0,trim:!1}).split(`
51
+ `);J.push(Z),Y+=Z.length}if(Y>_){let x=0,Z=0,F=Y,C=r-M,g=(nf,j)=>xb(J,F,nf,j,_);w?({lineCount:F,removals:x}=g(0,C),F>_&&({lineCount:F,removals:Z}=g(C+1,J.length))):({lineCount:F,removals:Z}=g(C+1,J.length),F>_&&({lineCount:F,removals:x}=g(0,C))),x>0&&(w=!0,J.splice(0,x)),Z>0&&(k=!0,J.splice(J.length-Z,Z))}let K=[];w&&K.push(T);for(let x of J)for(let Z of x)K.push(Z);return k&&K.push(T),K},Mi=(f)=>{let r=(i,n,b,S)=>{let D=b.includes(i.value),l=i.label??String(i.value??""),$=i.hint&&S!==void 0&&i.value===S?P.default.dim(` (${i.hint})`):"",T=D?P.default.green(Ty):P.default.dim(Ly);return n?`${T} ${l}${$}`:`${T} ${P.default.dim(l)}`},y=new ry({options:f.options,multiple:!0,filter:(i,n)=>Yb(i,n),validate:()=>{if(f.required&&y.selectedValues.length===0)return"Please select at least one item"},initialValue:f.initialValues,signal:f.signal,input:f.input,output:f.output,render(){let i=`${P.default.gray(B)}
52
+ ${ir(this.state)} ${f.message}
53
+ `,n=this.userInput,b=f.placeholder,S=n===""&&b!==void 0,D=this.isNavigating||S?P.default.dim(S?b:n):this.userInputWithCursor,l=this.options,$=this.filteredOptions.length!==l.length?P.default.dim(` (${this.filteredOptions.length} match${this.filteredOptions.length===1?"":"es"})`):"";switch(this.state){case"submit":return`${i}${P.default.gray(B)} ${P.default.dim(`${this.selectedValues.length} items selected`)}`;case"cancel":return`${i}${P.default.gray(B)} ${P.default.strikethrough(P.default.dim(n))}`;default:{let T=this.state==="error"?P.default.yellow:P.default.cyan,I=[`${P.default.dim("↑/↓")} to navigate`,`${P.default.dim(this.isNavigating?"Space/Tab:":"Tab:")} select`,`${P.default.dim("Enter:")} confirm`,`${P.default.dim("Type:")} to search`],_=this.filteredOptions.length===0&&n?[`${T(B)} ${P.default.yellow("No matches found")}`]:[],R=this.state==="error"?[`${T(B)} ${P.default.yellow(this.error)}`]:[],L=[...`${i}${T(B)}`.split(`
54
+ `),`${T(B)} ${P.default.dim("Search:")} ${D}${$}`,..._,...R],w=[`${T(B)} ${P.default.dim(I.join(" • "))}`,`${T(Jf)}`],k=yr({cursor:this.cursor,options:this.filteredOptions,style:(q,J)=>r(q,J,this.selectedValues,this.focusedValue),maxItems:f.maxItems,output:f.output,rowPadding:L.length+w.length});return[...L,...k.map((q)=>`${T(B)} ${q}`),...w].join(`
55
+ `)}}}});return y.prompt()},wf=(f)=>{let r=f.active??"Yes",y=f.inactive??"No";return new Ri({active:r,inactive:y,signal:f.signal,input:f.input,output:f.output,initialValue:f.initialValue??!0,render(){let i=`${P.default.gray(B)}
56
+ ${ir(this.state)} ${f.message}
57
+ `,n=this.value?r:y;switch(this.state){case"submit":return`${i}${P.default.gray(B)} ${P.default.dim(n)}`;case"cancel":return`${i}${P.default.gray(B)} ${P.default.strikethrough(P.default.dim(n))}
58
+ ${P.default.gray(B)}`;default:return`${i}${P.default.cyan(B)} ${this.value?`${P.default.green($y)} ${r}`:`${P.default.dim(rr)} ${P.default.dim(r)}`} ${P.default.dim("/")} ${this.value?`${P.default.dim(rr)} ${P.default.dim(y)}`:`${P.default.green($y)} ${y}`}
59
59
  ${P.default.cyan(Jf)}
60
- `}}}).prompt()},w,N=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(Jf)} ${P.default.red(f)}
60
+ `}}}).prompt()},o,N=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(Jf)} ${P.default.red(f)}
61
61
 
62
- `)},m=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(rb)} ${f}
63
- `)},E=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(j)}
62
+ `)},m=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(ib)} ${f}
63
+ `)},H=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(B)}
64
64
  ${P.default.gray(Jf)} ${f}
65
65
 
66
66
  `)},Uf=(f,r)=>f.split(`
67
67
  `).map((y)=>r(y)).join(`
68
- `),e=(f)=>{let r=(i,n)=>{let b=i.label??String(i.value);return n==="disabled"?`${P.default.gray(ly)} ${Uf(b,(S)=>P.default.strikethrough(P.default.gray(S)))}${i.hint?` ${P.default.dim(`(${i.hint??"disabled"})`)}`:""}`:n==="active"?`${P.default.cyan(yb)} ${b}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="selected"?`${P.default.green($y)} ${Uf(b,P.default.dim)}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="cancelled"?`${Uf(b,(S)=>P.default.strikethrough(P.default.dim(S)))}`:n==="active-selected"?`${P.default.green($y)} ${b}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="submitted"?`${Uf(b,P.default.dim)}`:`${P.default.dim(ly)} ${Uf(b,P.default.dim)}`},y=f.required??!0;return new fy({options:f.options,signal:f.signal,input:f.input,output:f.output,initialValues:f.initialValues,required:y,cursorAt:f.cursorAt,validate(i){if(y&&(i===void 0||i.length===0))return`Please select at least one option.
69
- ${P.default.reset(P.default.dim(`Press ${P.default.gray(P.default.bgWhite(P.default.inverse(" space ")))} to select, ${P.default.gray(P.default.bgWhite(P.default.inverse(" enter ")))} to submit`))}`},render(){let i=qf(f.output,f.message,`${Yi(this.state)} `,`${rr(this.state)} `),n=`${P.default.gray(j)}
68
+ `),e=(f)=>{let r=(i,n)=>{let b=i.label??String(i.value);return n==="disabled"?`${P.default.gray(Ly)} ${Uf(b,(S)=>P.default.strikethrough(P.default.gray(S)))}${i.hint?` ${P.default.dim(`(${i.hint??"disabled"})`)}`:""}`:n==="active"?`${P.default.cyan(nb)} ${b}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="selected"?`${P.default.green(Ty)} ${Uf(b,P.default.dim)}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="cancelled"?`${Uf(b,(S)=>P.default.strikethrough(P.default.dim(S)))}`:n==="active-selected"?`${P.default.green(Ty)} ${b}${i.hint?` ${P.default.dim(`(${i.hint})`)}`:""}`:n==="submitted"?`${Uf(b,P.default.dim)}`:`${P.default.dim(Ly)} ${Uf(b,P.default.dim)}`},y=f.required??!0;return new yy({options:f.options,signal:f.signal,input:f.input,output:f.output,initialValues:f.initialValues,required:y,cursorAt:f.cursorAt,validate(i){if(y&&(i===void 0||i.length===0))return`Please select at least one option.
69
+ ${P.default.reset(P.default.dim(`Press ${P.default.gray(P.default.bgWhite(P.default.inverse(" space ")))} to select, ${P.default.gray(P.default.bgWhite(P.default.inverse(" enter ")))} to submit`))}`},render(){let i=qf(f.output,f.message,`${xi(this.state)} `,`${ir(this.state)} `),n=`${P.default.gray(B)}
70
70
  ${i}
71
- `,b=this.value??[],S=(D,$)=>{if(D.disabled)return r(D,"disabled");let l=b.includes(D.value);return $&&l?r(D,"active-selected"):l?r(D,"selected"):r(D,$?"active":"inactive")};switch(this.state){case"submit":{let D=this.options.filter(({value:l})=>b.includes(l)).map((l)=>r(l,"submitted")).join(P.default.dim(", "))||P.default.dim("none"),$=qf(f.output,D,`${P.default.gray(j)} `);return`${n}${$}`}case"cancel":{let D=this.options.filter(({value:l})=>b.includes(l)).map((l)=>r(l,"cancelled")).join(P.default.dim(", "));if(D.trim()==="")return`${n}${P.default.gray(j)}`;let $=qf(f.output,D,`${P.default.gray(j)} `);return`${n}${$}
72
- ${P.default.gray(j)}`}case"error":{let D=`${P.default.yellow(j)} `,$=this.error.split(`
73
- `).map((o,_)=>_===0?`${P.default.yellow(Jf)} ${P.default.yellow(o)}`:` ${o}`).join(`
74
- `),l=n.split(`
75
- `).length,T=$.split(`
76
- `).length+1;return`${n}${D}${fr({output:f.output,options:this.options,cursor:this.cursor,maxItems:f.maxItems,columnPadding:D.length,rowPadding:l+T,style:S}).join(`
71
+ `,b=this.value??[],S=(D,l)=>{if(D.disabled)return r(D,"disabled");let $=b.includes(D.value);return l&&$?r(D,"active-selected"):$?r(D,"selected"):r(D,l?"active":"inactive")};switch(this.state){case"submit":{let D=this.options.filter(({value:$})=>b.includes($)).map(($)=>r($,"submitted")).join(P.default.dim(", "))||P.default.dim("none"),l=qf(f.output,D,`${P.default.gray(B)} `);return`${n}${l}`}case"cancel":{let D=this.options.filter(({value:$})=>b.includes($)).map(($)=>r($,"cancelled")).join(P.default.dim(", "));if(D.trim()==="")return`${n}${P.default.gray(B)}`;let l=qf(f.output,D,`${P.default.gray(B)} `);return`${n}${l}
72
+ ${P.default.gray(B)}`}case"error":{let D=`${P.default.yellow(B)} `,l=this.error.split(`
73
+ `).map((I,_)=>_===0?`${P.default.yellow(Jf)} ${P.default.yellow(I)}`:` ${I}`).join(`
74
+ `),$=n.split(`
75
+ `).length,T=l.split(`
76
+ `).length+1;return`${n}${D}${yr({output:f.output,options:this.options,cursor:this.cursor,maxItems:f.maxItems,columnPadding:D.length,rowPadding:$+T,style:S}).join(`
77
77
  ${D}`)}
78
- ${$}
79
- `}default:{let D=`${P.default.cyan(j)} `,$=n.split(`
80
- `).length;return`${n}${D}${fr({output:f.output,options:this.options,cursor:this.cursor,maxItems:f.maxItems,columnPadding:D.length,rowPadding:$+2,style:S}).join(`
78
+ ${l}
79
+ `}default:{let D=`${P.default.cyan(B)} `,l=n.split(`
80
+ `).length;return`${n}${D}${yr({output:f.output,options:this.options,cursor:this.cursor,maxItems:f.maxItems,columnPadding:D.length,rowPadding:l+2,style:S}).join(`
81
81
  ${D}`)}
82
82
  ${P.default.cyan(Jf)}
83
- `}}}}).prompt()},Yb,rf=({indicator:f="dots",onCancel:r,output:y=process.stdout,cancelMessage:i,errorMessage:n,frames:b=Dy?["◒","◐","◓","◑"]:["•","o","O","0"],delay:S=Dy?80:120,signal:D,...$}={})=>{let l=en(),T,o,_=!1,I=!1,L="",R,q=performance.now(),J=af(y),x=$?.styleFrame??Yb,k=(B)=>{let A=B>1?n??$f.messages.error:i??$f.messages.cancel;I=B===1,_&&(nf(A,B),I&&typeof r=="function"&&r())},M=()=>k(2),U=()=>k(1),H=()=>{process.on("uncaughtExceptionMonitor",M),process.on("unhandledRejection",M),process.on("SIGINT",U),process.on("SIGTERM",U),process.on("exit",k),D&&D.addEventListener("abort",U)},Y=()=>{process.removeListener("uncaughtExceptionMonitor",M),process.removeListener("unhandledRejection",M),process.removeListener("SIGINT",U),process.removeListener("SIGTERM",U),process.removeListener("exit",k),D&&D.removeEventListener("abort",U)},Z=()=>{if(R===void 0)return;l&&y.write(`
84
- `);let B=Ty(R,J,{hard:!0,trim:!1}).split(`
85
- `);B.length>1&&y.write(Bf.cursor.up(B.length-1)),y.write(Bf.cursor.to(0)),y.write(Bf.erase.down())},F=(B)=>B.replace(/\.+$/,""),C=(B)=>{let A=(performance.now()-B)/1000,a=Math.floor(A/60),bf=Math.floor(A%60);return a>0?`[${a}m ${bf}s]`:`[${bf}s]`},g=(B="")=>{_=!0,T=Ri({output:y}),L=F(B),q=performance.now(),y.write(`${P.default.gray(j)}
86
- `);let A=0,a=0;H(),o=setInterval(()=>{if(l&&L===R)return;Z(),R=L;let bf=x(b[A]),Vf;if(l)Vf=`${bf} ${L}...`;else if(f==="timer")Vf=`${bf} ${L} ${C(q)}`;else{let B1=".".repeat(Math.floor(a)).slice(0,3);Vf=`${bf} ${L}${B1}`}let U1=Ty(Vf,J,{hard:!0,trim:!1});y.write(U1),A=A+1<b.length?A+1:0,a=a<4?a+0.125:0},S)},nf=(B="",A=0,a=!1)=>{if(!_)return;_=!1,clearInterval(o),Z();let bf=A===0?P.default.green(Ly):A===1?P.default.red(Ji):P.default.red(xi);L=B??L,a||(f==="timer"?y.write(`${bf} ${L} ${C(q)}
83
+ `}}}}).prompt()},Zb,rf=({indicator:f="dots",onCancel:r,output:y=process.stdout,cancelMessage:i,errorMessage:n,frames:b=ly?["◒","◐","◓","◑"]:["•","o","O","0"],delay:S=ly?80:120,signal:D,...l}={})=>{let $=rb(),T,I,_=!1,R=!1,L="",w,k=performance.now(),q=pf(y),J=l?.styleFrame??Zb,Y=(j)=>{let A=j>1?n??lf.messages.error:i??lf.messages.cancel;R=j===1,_&&(nf(A,j),R&&typeof r=="function"&&r())},M=()=>Y(2),U=()=>Y(1),K=()=>{process.on("uncaughtExceptionMonitor",M),process.on("unhandledRejection",M),process.on("SIGINT",U),process.on("SIGTERM",U),process.on("exit",Y),D&&D.addEventListener("abort",U)},x=()=>{process.removeListener("uncaughtExceptionMonitor",M),process.removeListener("unhandledRejection",M),process.removeListener("SIGINT",U),process.removeListener("SIGTERM",U),process.removeListener("exit",Y),D&&D.removeEventListener("abort",U)},Z=()=>{if(w===void 0)return;$&&y.write(`
84
+ `);let j=oy(w,q,{hard:!0,trim:!1}).split(`
85
+ `);j.length>1&&y.write(jf.cursor.up(j.length-1)),y.write(jf.cursor.to(0)),y.write(jf.erase.down())},F=(j)=>j.replace(/\.+$/,""),C=(j)=>{let A=(performance.now()-j)/1000,a=Math.floor(A/60),bf=Math.floor(A%60);return a>0?`[${a}m ${bf}s]`:`[${bf}s]`},g=(j="")=>{_=!0,T=wi({output:y}),L=F(j),k=performance.now(),y.write(`${P.default.gray(B)}
86
+ `);let A=0,a=0;K(),I=setInterval(()=>{if($&&L===w)return;Z(),w=L;let bf=J(b[A]),Nf;if($)Nf=`${bf} ${L}...`;else if(f==="timer")Nf=`${bf} ${L} ${C(k)}`;else{let Kn=".".repeat(Math.floor(a)).slice(0,3);Nf=`${bf} ${L}${Kn}`}let cn=oy(Nf,q,{hard:!0,trim:!1});y.write(cn),A=A+1<b.length?A+1:0,a=a<4?a+0.125:0},S)},nf=(j="",A=0,a=!1)=>{if(!_)return;_=!1,clearInterval(I),Z();let bf=A===0?P.default.green(wy):A===1?P.default.red(qi):P.default.red(Ji);L=j??L,a||(f==="timer"?y.write(`${bf} ${L} ${C(k)}
87
87
  `):y.write(`${bf} ${L}
88
- `)),Y(),T()};return{start:g,stop:(B="")=>nf(B,0),message:(B="")=>{L=F(B??L)},cancel:(B="")=>nf(B,1),error:(B="")=>nf(B,2),clear:()=>nf("",0,!0),get isCancelled(){return I}}},PD,tf=(f,r)=>f.includes(`
88
+ `)),x(),T()};return{start:g,stop:(j="")=>nf(j,0),message:(j="")=>{L=F(j??L)},cancel:(j="")=>nf(j,1),error:(j="")=>nf(j,2),clear:()=>nf("",0,!0),get isCancelled(){return R}}},_D,fr=(f,r)=>f.includes(`
89
89
  `)?f.split(`
90
90
  `).map((y)=>r(y)).join(`
91
- `):r(f),zi=(f)=>{let r=(y,i)=>{let n=y.label??String(y.value);switch(i){case"disabled":return`${P.default.gray(ef)} ${tf(n,P.default.gray)}${y.hint?` ${P.default.dim(`(${y.hint??"disabled"})`)}`:""}`;case"selected":return`${tf(n,P.default.dim)}`;case"active":return`${P.default.green(Sy)} ${n}${y.hint?` ${P.default.dim(`(${y.hint})`)}`:""}`;case"cancelled":return`${tf(n,(b)=>P.default.strikethrough(P.default.dim(b)))}`;default:return`${P.default.dim(ef)} ${tf(n,P.default.dim)}`}};return new ry({options:f.options,signal:f.signal,input:f.input,output:f.output,initialValue:f.initialValue,render(){let y=`${rr(this.state)} `,i=`${Yi(this.state)} `,n=qf(f.output,f.message,i,y),b=`${P.default.gray(j)}
91
+ `):r(f),zi=(f)=>{let r=(y,i)=>{let n=y.label??String(y.value);switch(i){case"disabled":return`${P.default.gray(rr)} ${fr(n,P.default.gray)}${y.hint?` ${P.default.dim(`(${y.hint??"disabled"})`)}`:""}`;case"selected":return`${fr(n,P.default.dim)}`;case"active":return`${P.default.green($y)} ${n}${y.hint?` ${P.default.dim(`(${y.hint})`)}`:""}`;case"cancelled":return`${fr(n,(b)=>P.default.strikethrough(P.default.dim(b)))}`;default:return`${P.default.dim(rr)} ${fr(n,P.default.dim)}`}};return new iy({options:f.options,signal:f.signal,input:f.input,output:f.output,initialValue:f.initialValue,render(){let y=`${ir(this.state)} `,i=`${xi(this.state)} `,n=qf(f.output,f.message,i,y),b=`${P.default.gray(B)}
92
92
  ${n}
93
- `;switch(this.state){case"submit":{let S=`${P.default.gray(j)} `,D=qf(f.output,r(this.options[this.cursor],"selected"),S);return`${b}${D}`}case"cancel":{let S=`${P.default.gray(j)} `,D=qf(f.output,r(this.options[this.cursor],"cancelled"),S);return`${b}${D}
94
- ${P.default.gray(j)}`}default:{let S=`${P.default.cyan(j)} `,D=b.split(`
95
- `).length;return`${b}${S}${fr({output:f.output,cursor:this.cursor,options:this.options,maxItems:f.maxItems,columnPadding:S.length,rowPadding:D+2,style:($,l)=>r($,$.disabled?"disabled":l?"active":"inactive")}).join(`
93
+ `;switch(this.state){case"submit":{let S=`${P.default.gray(B)} `,D=qf(f.output,r(this.options[this.cursor],"selected"),S);return`${b}${D}`}case"cancel":{let S=`${P.default.gray(B)} `,D=qf(f.output,r(this.options[this.cursor],"cancelled"),S);return`${b}${D}
94
+ ${P.default.gray(B)}`}default:{let S=`${P.default.cyan(B)} `,D=b.split(`
95
+ `).length;return`${b}${S}${yr({output:f.output,cursor:this.cursor,options:this.options,maxItems:f.maxItems,columnPadding:S.length,rowPadding:D+2,style:(l,$)=>r(l,l.disabled?"disabled":$?"active":"inactive")}).join(`
96
96
  ${S}`)}
97
97
  ${P.default.cyan(Jf)}
98
- `}}}}).prompt()},_D;var p=W(()=>{yy();yy();P=O(h(),1),Bf=O(Or(),1);Dy=tn(),fb=c("◆","*"),Ji=c("■","x"),xi=c("▲","x"),Ly=c("◇","o"),rb=c("┌","T"),j=c("│","|"),Jf=c("└","—"),SD=c("┐","T"),$D=c("┘","—"),Sy=c("●",">"),ef=c("○"," "),yb=c("◻","[•]"),$y=c("◼","[+]"),ly=c("◻","[ ]"),lD=c("▪","•"),TD=c("─","-"),LD=c("╮","+"),wD=c("├","+"),RD=c("╯","+"),ID=c("╰","+"),oD=c("╭","+"),ib=c("●","•"),nb=c("◆","*"),bb=c("▲","!"),Db=c("■","x"),iy=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,sf=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,pf=/\t{1,1000}/y,ny=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,df=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Tb=/\p{M}+/gu,Lb={limit:1/0,ellipsis:""},wb={limit:1/0,ellipsis:"",ellipsisWidth:0},Ry=`${Ib}8;;`,Pi=new RegExp(`(?:\\${Qi}(?<code>\\d+)m|\\${Ry}(?<uri>.*)${wy})`,"y");w={message:(f=[],{symbol:r=P.default.gray(j),secondarySymbol:y=P.default.gray(j),output:i=process.stdout,spacing:n=1,withGuide:b}={})=>{let S=[],D=(b??$f.withGuide)!==!1,$=D?y:"",l=D?`${r} `:"",T=D?`${y} `:"";for(let _=0;_<n;_++)S.push($);let o=Array.isArray(f)?f:f.split(`
99
- `);if(o.length>0){let[_,...I]=o;_.length>0?S.push(`${l}${_}`):S.push(D?r:"");for(let L of I)L.length>0?S.push(`${T}${L}`):S.push(D?y:"")}i.write(`${S.join(`
98
+ `}}}}).prompt()},kD;var p=W(()=>{ny();ny();P=O(h(),1),jf=O(vr(),1);ly=fb(),yb=G("◆","*"),qi=G("■","x"),Ji=G("▲","x"),wy=G("◇","o"),ib=G("┌","T"),B=G("│","|"),Jf=G("└","—"),lD=G("┐","T"),$D=G("┘","—"),$y=G("●",">"),rr=G("○"," "),nb=G("◻","[•]"),Ty=G("◼","[+]"),Ly=G("◻","[ ]"),TD=G("▪","•"),LD=G("─","-"),oD=G("╮","+"),wD=G("├","+"),RD=G("╯","+"),ID=G("╰","+"),PD=G("╭","+"),bb=G("●","•"),Db=G("◆","*"),Sb=G("▲","!"),lb=G("■","x"),by=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,df=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,tf=/\t{1,1000}/y,Dy=/[\u{1F1E6}-\u{1F1FF}]{2}|\u{1F3F4}[\u{E0061}-\u{E007A}]{2}[\u{E0030}-\u{E0039}\u{E0061}-\u{E007A}]{1,3}\u{E007F}|(?:\p{Emoji}\uFE0F\u20E3?|\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation})(?:\u200D(?:\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F\u20E3?))*/yu,ef=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,ob=/\p{M}+/gu,wb={limit:1/0,ellipsis:""},Rb={limit:1/0,ellipsis:"",ellipsisWidth:0},Iy=`${Pb}8;;`,Pi=new RegExp(`(?:\\${Qi}(?<code>\\d+)m|\\${Iy}(?<uri>.*)${Ry})`,"y");o={message:(f=[],{symbol:r=P.default.gray(B),secondarySymbol:y=P.default.gray(B),output:i=process.stdout,spacing:n=1,withGuide:b}={})=>{let S=[],D=(b??lf.withGuide)!==!1,l=D?y:"",$=D?`${r} `:"",T=D?`${y} `:"";for(let _=0;_<n;_++)S.push(l);let I=Array.isArray(f)?f:f.split(`
99
+ `);if(I.length>0){let[_,...R]=I;_.length>0?S.push(`${$}${_}`):S.push(D?r:"");for(let L of R)L.length>0?S.push(`${T}${L}`):S.push(D?y:"")}i.write(`${S.join(`
100
100
  `)}
101
- `)},info:(f,r)=>{w.message(f,{...r,symbol:P.default.blue(ib)})},success:(f,r)=>{w.message(f,{...r,symbol:P.default.green(nb)})},step:(f,r)=>{w.message(f,{...r,symbol:P.default.green(Ly)})},warn:(f,r)=>{w.message(f,{...r,symbol:P.default.yellow(bb)})},warning:(f,r)=>{w.warn(f,r)},error:(f,r)=>{w.message(f,{...r,symbol:P.default.red(Db)})}},Yb=P.default.magenta,PD={light:c("─","-"),heavy:c("━","="),block:c("█","#")},_D=`${P.default.gray(j)} `});function Ui(f){let r=f.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)(?:\/(.+))?$/);if(r){let[,S,D,$,l]=r;return{type:"github",url:`https://github.com/${S}/${D}.git`,branch:$,subpath:l}}let y=f.match(/github\.com\/([^/]+)\/([^/]+)/);if(y){let[,S,D]=y,$=D.replace(/\.git$/,"");return{type:"github",url:`https://github.com/${S}/${$}.git`}}let i=f.match(/gitlab\.com\/([^/]+)\/([^/]+)\/-\/tree\/([^/]+)(?:\/(.+))?$/);if(i){let[,S,D,$,l]=i;return{type:"gitlab",url:`https://gitlab.com/${S}/${D}.git`,branch:$,subpath:l}}let n=f.match(/gitlab\.com\/([^/]+)\/([^/]+)/);if(n){let[,S,D]=n,$=D.replace(/\.git$/,"");return{type:"gitlab",url:`https://gitlab.com/${S}/${$}.git`}}let b=f.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/);if(b&&!f.includes(":")){let[,S,D,$]=b;return{type:"github",url:`https://github.com/${S}/${D}.git`,subpath:$}}return{type:"git",url:f}}import{join as Zb}from"path";import{rmSync as Qb}from"fs";import{tmpdir as Xb}from"os";import{spawn as Iy}from"child_process";async function ir(f,r){let y=Zb(Xb(),`flins-${Date.now()}`),i=["clone","--depth","1"];if(r)i.push("--branch",r);return i.push(f,y),await new Promise((n,b)=>{let S=Iy("git",i,{stdio:"pipe"});S.on("close",(D)=>{if(D===0)n();else b(Error(`Failed to clone repository: ${f}`))}),S.on("error",b)}),y}async function Bi(f,r="main"){return await new Promise((i,n)=>{let b="",S=Iy("git",["ls-remote",f,`refs/heads/${r}`],{stdio:"pipe"});S.stdout?.on("data",(D)=>{b+=D.toString()}),S.on("close",(D)=>{if(D===0&&b.trim())i(b.trim().split(/\s+/)[0]??"");else n(Error(`Failed to get latest commit from ${f}`))}),S.on("error",n)})}async function nr(f){return await new Promise((y,i)=>{let n="",b=Iy("git",["rev-parse","HEAD"],{cwd:f,stdio:"pipe"});b.stdout?.on("data",(S)=>{n+=S.toString()}),b.on("close",(S)=>{if(S===0&&n.trim())y(n.trim());else i(Error("Failed to get commit hash"))}),b.on("error",i)})}async function br(f){Qb(f,{recursive:!0,force:!0})}var oy=()=>{};var Ki;var ji=W(()=>{Ki={opencode:{name:"opencode",displayName:"OpenCode",configDir:"~/.config/opencode",skillsDir:".opencode/skill",globalSkillsDir:"~/.config/opencode/skill",commandsDir:".opencode/command",globalCommandsDir:"~/.config/opencode/command"},"claude-code":{name:"claude-code",displayName:"Claude Code",configDir:"~/.claude",skillsDir:".claude/skills",globalSkillsDir:"~/.claude/skills",commandsDir:".claude/commands",globalCommandsDir:"~/.claude/commands"},codex:{name:"codex",displayName:"Codex",configDir:"~/.codex",skillsDir:".codex/skills",globalSkillsDir:"~/.codex/skills"},cursor:{name:"cursor",displayName:"Cursor",configDir:"~/.cursor",skillsDir:".cursor/skills",globalSkillsDir:"~/.cursor/skills"},amp:{name:"amp",displayName:"Amp",configDir:"~/.config/agents",skillsDir:".agents/skills",globalSkillsDir:"~/.config/agents/skills"},kilo:{name:"kilo",displayName:"Kilo Code",configDir:"~/.kilocode",skillsDir:".kilocode/skills",globalSkillsDir:"~/.kilocode/skills"},roo:{name:"roo",displayName:"Roo Code",configDir:"~/.roo",skillsDir:".roo/skills",globalSkillsDir:"~/.roo/skills"},goose:{name:"goose",displayName:"Goose",configDir:"~/.config/goose",skillsDir:".goose/skills",globalSkillsDir:"~/.config/goose/skills"},antigravity:{name:"antigravity",displayName:"Antigravity",configDir:"~/.gemini/antigravity",skillsDir:".agent/skills",globalSkillsDir:"~/.gemini/antigravity/skills"},copilot:{name:"copilot",displayName:"GitHub Copilot",configDir:"~/.copilot",skillsDir:".github/skills",globalSkillsDir:"~/.copilot/skills"},gemini:{name:"gemini",displayName:"Gemini CLI",configDir:"~/.gemini",skillsDir:".gemini/skills",globalSkillsDir:"~/.gemini/skills"},windsurf:{name:"windsurf",displayName:"Windsurf",configDir:"~/.codeium/windsurf",skillsDir:".windsurf/skills",globalSkillsDir:"~/.codeium/windsurf/skills"},trae:{name:"trae",displayName:"Trae",configDir:"~/.trae",skillsDir:".trae/skills",globalSkillsDir:"~/.trae/skills"},factory:{name:"factory",displayName:"Factory Droid",configDir:"~/.factory",skillsDir:".factory/skills",globalSkillsDir:"~/.factory/skills",commandsDir:".factory/commands",globalCommandsDir:"~/.factory/commands"},letta:{name:"letta",displayName:"Letta",configDir:"~/.letta",skillsDir:".skills",globalSkillsDir:"~/.letta/skills"},qoder:{name:"qoder",displayName:"Qoder",configDir:"~/.qoder",skillsDir:".qoder/skills",globalSkillsDir:"~/.qoder/skills"}}});import{homedir as zb}from"os";import{existsSync as Ub}from"fs";function Ei(){let f={},r=Ki;for(let[y,i]of Object.entries(r)){let n=y;f[n]={name:i.name,displayName:i.displayName,configDir:i.configDir.replace("~",Dr),skillsDir:i.skillsDir,globalSkillsDir:i.globalSkillsDir.replace("~",Dr),commandsDir:i.commandsDir,globalCommandsDir:i.globalCommandsDir?.replace("~",Dr),detectInstalled:async()=>{let b=i.configDir.replace("~",Dr);return Ub(b)}}}return f}var Dr,Hi;var Py=W(()=>{ji();Dr=zb(),Hi=process.env.DIRECTORY_URL||"https://flins.website/directory.json"});var z;var yf=W(()=>{Py();z=Ei()});import{basename as Bb,dirname as jb}from"path";function _y(f){let r=f.match(/^---\n([\s\S]+?)\n---\n([\s\S]*)$/);if(!r)return{data:{},content:f};let y=r[1],i=r[2],n={};for(let b of y.split(`
102
- `)){let S=b.indexOf(":");if(S===-1)continue;let D=b.slice(0,S).trim(),$=b.slice(S+1).trim();if($.startsWith('"')&&$.endsWith('"')||$.startsWith("'")&&$.endsWith("'"))n[D]=$.slice(1,-1);else if(D==="metadata")try{let l={},T=$.replace(/^\{|\}$/g,"").trim();if(T){for(let o of T.split(",")){let[_,I]=o.split("=").map((L)=>L.trim());if(_&&I)l[_]=I.replace(/^['"]|["']$/g,"")}n[D]=JSON.stringify(l)}}catch{n[D]=$}else n[D]=$}return{data:n,content:i}}function Sr(f,r){try{let{data:y}=_y(r);if(!y.name||!y.description)return null;return{name:y.name,description:y.description,path:jb(f),metadata:y.metadata?JSON.parse(y.metadata):void 0}}catch{return null}}function lf(f){return f.name||Bb(f.path)}var $r=()=>{};import{readdir as Gi,readFile as qy,stat as Kb}from"fs/promises";import{join as Tf}from"path";function Gb(f){let r=[f];for(let i of Eb)r.push(Tf(f,i));let y=new Set;for(let i of Object.values(z))y.add(Tf(f,i.skillsDir));return r.push(...y),r}async function Jy(f){try{let r=Tf(f,"SKILL.md");return(await Kb(r)).isFile()}catch{return!1}}async function ci(f,r=0,y=5){let i=[];if(r>y)return i;try{if(await Jy(f))i.push(f);let n=await Gi(f,{withFileTypes:!0});for(let b of n)if(b.isDirectory()&&!Hb.includes(b.name)){let S=await ci(Tf(f,b.name),r+1,y);i.push(...S)}}catch{}return i}async function lr(f,r){let y=[],i=new Set,n=r?Tf(f,r):f;if(await Jy(n)){let S=Tf(n,"SKILL.md"),D=await qy(S,"utf-8"),$=Sr(S,D);if($)return y.push($),y}let b=Gb(n);for(let S of b)try{let D=await Gi(S,{withFileTypes:!0});for(let $ of D)if($.isDirectory()){let l=Tf(S,$.name);if(await Jy(l)){let T=Tf(l,"SKILL.md"),o=await qy(T,"utf-8"),_=Sr(T,o);if(_&&!i.has(_.name))y.push(_),i.add(_.name)}}}catch{}if(y.length===0){let S=await ci(n);for(let D of S){let $=Tf(D,"SKILL.md"),l=await qy($,"utf-8"),T=Sr($,l);if(T&&!i.has(T.name))y.push(T),i.add(T.name)}}return y}var Hb,Eb;var xy=W(()=>{yf();$r();Hb=["node_modules",".git","dist","build","__pycache__"],Eb=["skills","skills/.curated","skills/.experimental","skills/.system"]});import{basename as cb}from"path";function Wi(f,r){try{let{data:y}=_y(r);return{name:y.name||cb(f,".md"),description:y.description,path:f,type:"markdown"}}catch{return null}}function xf(f){return f.name}var Yy=W(()=>{$r()});import{readdir as Vi,readFile as Wb}from"fs/promises";import{join as ky,extname as Vb}from"path";async function gi(f,r=0){let y=[];if(r>Cb)return y;try{let i=await Vi(f,{withFileTypes:!0});for(let n of i){if(gb.includes(n.name))continue;let b=ky(f,n.name);if(n.isDirectory())if(n.name==="commands")y.push(b);else{let S=await gi(b,r+1);y.push(...S)}}}catch{}return y}async function Fb(f){let r=[];try{let y=await Vi(f,{withFileTypes:!0});for(let i of y){if(Nb.has(i.name))continue;if(!i.isFile())continue;let n=ky(f,i.name);if(Vb(i.name).toLowerCase()!==".md")continue;try{let S=await Wb(n,"utf-8"),D=Wi(n,S);if(D)r.push(D)}catch{continue}}}catch{}return r}async function Tr(f,r){let y=[],i=new Set,n=r?ky(f,r):f,b=await gi(n);for(let S of b){let D=await Fb(S);for(let $ of D)if(!i.has($.name))y.push($),i.add($.name)}return y}var gb,Nb,Cb=5;var Zy=W(()=>{Yy();gb=["node_modules",".git","dist","build","__pycache__"],Nb=new Set(["README.md","readme.md",".DS_Store"])});import{mkdir as Ci,cp as Ob,access as ub,readdir as vb}from"fs/promises";import{join as Ni}from"path";async function Fi(f,r){await Ci(r,{recursive:!0});let y=await vb(f,{withFileTypes:!0});for(let i of y){if(hb(i.name))continue;let n=Ni(f,i.name),b=Ni(r,i.name);if(i.isDirectory())await Fi(n,b);else await Ob(n,b)}}async function Oi(f,r){try{return await Ci(r,{recursive:!0}),await Fi(f,r),{success:!0,path:r}}catch(y){return{success:!1,path:r,error:y instanceof Error?y.message:"Unknown error"}}}async function ui(f){try{return await ub(f),!0}catch{return!1}}var Ab,hb=(f)=>{if(Ab.has(f))return!0;if(f.startsWith("_"))return!0;return!1};var vi=W(()=>{Ab=new Set(["README.md","metadata.json"])});import{join as Ai}from"path";async function Lr(f,r,y){let i=z[r],n=y.global?i.globalSkillsDir:i.skillsDir,b=Ai(n,f.name);return{...await Oi(f.path,b),originalPath:f.path}}async function hi(f,r,y){let i=Qy(f,r,y);return ui(i)}function Qy(f,r,y){let i=z[r],n=y.global?i.globalSkillsDir:i.skillsDir;return Ai(n,f)}var Xy=W(()=>{yf();vi()});import{mkdir as mb,cp as ab}from"fs/promises";import{join as sb,dirname as pb}from"path";function wr(f){return mi.includes(f)}function ai(){return mi.filter((f)=>z[f]?.commandsDir)}async function db(f){await mb(f,{recursive:!0})}async function tb(f,r){try{return await db(pb(r)),await ab(f,r),{success:!0,path:r}}catch(y){return{success:!1,path:r,error:y instanceof Error?y.message:"Unknown error"}}}async function eb(f,r,y){let i=z[r],n=y.global?i.globalCommandsDir:i.commandsDir,b=sb(n,`${f.name}.md`);return tb(f.path,b)}async function Rr(f,r,y){if(!wr(r))return{success:!1,path:"",originalPath:f.path,error:`Agent ${r} does not support commands`};if(!z[r].commandsDir)return{success:!1,path:"",originalPath:f.path,error:`Agent ${r} has no commands directory configured`};return{...await eb(f,r,y),originalPath:f.path}}var mi;var My=W(()=>{yf();mi=["claude-code","opencode","factory"]});async function si(){let f=[];for(let[r,y]of Object.entries(z))if(await y.detectInstalled())f.push(r);return f}var pi=W(()=>{yf()});import{resolve as f0}from"path";import{homedir as r0}from"os";function Ir(f){if(f.startsWith("~"))return f.replace("~",r0());return f}function If(f){return f.type==="global"?Ir(f.path):f0(process.cwd(),f.path)}var or=()=>{};import{homedir as y0}from"os";import{join as _r}from"path";import{existsSync as qr,readFileSync as i0,writeFileSync as ti,mkdirSync as n0,readdirSync as di}from"fs";function ei(){if(!qr(zy))n0(zy,{recursive:!0})}function Kf(){if(ei(),!qr(Pr)){let f={lastUpdate:new Date().toISOString(),skills:{}};return ti(Pr,JSON.stringify(f,null,2)),f}try{let f=i0(Pr,"utf-8");return JSON.parse(f)}catch{return{lastUpdate:new Date().toISOString(),skills:{}}}}function Jr(f){ei(),f.lastUpdate=new Date().toISOString(),ti(Pr,JSON.stringify(f,null,2))}function Uy(f,r,y,i,n,b="skill"){let S=Kf(),D=b==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,$=!1,l;if(!S.skills[D])S.skills[D]={url:r,subpath:y,branch:i,commit:n};else{if(S.skills[D].branch!==i)l=S.skills[D].branch,S.skills[D].branch=i,S.skills[D].commit=n,$=!0;if(S.skills[D].url=r,y)S.skills[D].subpath=y}return Jr(S),{updated:$,previousBranch:l}}function xr(f,r){let y=Kf(),i=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;delete y.skills[i],Jr(y)}function f1(f,r,y){let i=Kf(),n=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;if(i.skills[n])i.skills[n].commit=y,Jr(i)}function Yr(){return Kf()}function of(f,r){let y=[];for(let[i,n]of Object.entries(z))if(r==="skill"){let b=Ir(n.globalSkillsDir);if(qr(b))try{let D=di(b,{withFileTypes:!0}).find(($)=>$.isDirectory()&&$.name.toLowerCase()===f.toLowerCase());if(D)y.push({agent:i,installableType:"skill",type:"global",path:_r(n.globalSkillsDir,D.name)})}catch{}}else{let b=n.globalCommandsDir;if(b){let S=Ir(b);if(qr(S))try{let $=di(S,{withFileTypes:!0}).find((l)=>{return l.name.replace(/\.md$/,"").toLowerCase()===f.toLowerCase()});if($)y.push({agent:i,installableType:"command",type:"global",path:_r(b,$.name)})}catch{}}}return y}async function r1(){let f=Kf(),r=[];for(let[y,i]of Object.entries(f.skills)){let n=y.split(":");if(n.length!==2)continue;let b=n[0]==="skill"?"skill":"command",S=n[1];if(of(S,b).length===0)r.push(y)}for(let y of r)delete f.skills[y];if(r.length>0)Jr(f)}var zy,Pr;var kr=W(()=>{or();yf();zy=_r(y0(),".flins"),Pr=_r(zy,"skills.lock")});import{join as Zr,resolve as b0}from"path";import{existsSync as Qr,readFileSync as D0,writeFileSync as S0,rmSync as $0,readdirSync as y1}from"fs";function By(f){let r=f||process.cwd();return b0(r,l0)}function Xr(f){let r=By(f);if(!Qr(r))return null;try{let y=D0(r,"utf-8"),i=JSON.parse(y);if(!i.version||!i.skills)return null;return i}catch{return null}}function jy(f,r){let y=By(r);f.version=i1,S0(y,JSON.stringify(f,null,2))}function Ky(f,r,y,i,n,b,S){let D=Xr(S);if(!D)D={version:i1,skills:{}};let $=b==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,l=!1,T;if(!D.skills[$])D.skills[$]={url:r,subpath:y,branch:i,commit:n};else{if(D.skills[$].branch!==i)T=D.skills[$].branch,D.skills[$].branch=i,D.skills[$].commit=n,l=!0;if(D.skills[$].url=r,D.skills[$].commit=n,y)D.skills[$].subpath=y}return jy(D,S),{updated:l,previousBranch:T}}function n1(f,r,y){let i=Xr(y);if(!i)return;let n=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;if(delete i.skills[n],Object.keys(i.skills).length>0)jy(i,y);else{let b=By(y);if(Qr(b))try{$0(b,{force:!0})}catch{}}}function b1(f,r,y,i){let n=Xr(i);if(!n)return;let b=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,S=n.skills[b];if(S)S.commit=y,jy(n,i)}function Mr(f){return Xr(f)}function Yf(f,r,y){let i=[],n=y||process.cwd();for(let[b,S]of Object.entries(z))if(r==="skill"){let D=Zr(n,S.skillsDir);if(Qr(D))try{let l=y1(D,{withFileTypes:!0}).find((T)=>T.isDirectory()&&T.name.toLowerCase()===f.toLowerCase());if(l)i.push({agent:b,installableType:"skill",type:"project",path:Zr(S.skillsDir,l.name)})}catch{}}else{let D=S.commandsDir;if(D){let $=Zr(n,D);if(Qr($))try{let T=y1($,{withFileTypes:!0}).find((o)=>{return o.name.replace(/\.md$/,"").toLowerCase()===f.toLowerCase()});if(T)i.push({agent:b,installableType:"command",type:"project",path:Zr(D,T.name)})}catch{}}}return i}var i1="1.0.0",l0="skills.lock";var zr=W(()=>{yf()});async function D1(f,r){let y={tempDir:null,spinner:rf()};try{y.spinner.start("Parsing source...");let i=Ui(f),n=i.branch??"main";y.spinner.stop(`Source: ${Q.default.cyan(i.url)}${i.subpath?` (${i.subpath})`:""}${i.branch?` @ ${Q.default.cyan(i.branch)}`:""}`),y.spinner.start("Cloning repository..."),y.tempDir=await ir(i.url,i.branch),y.spinner.stop("Repository cloned");let b=await nr(y.tempDir);y.spinner.start("Discovering skills and commands...");let S=await lr(y.tempDir,i.subpath),D=await Tr(y.tempDir,i.subpath);if(S.length===0&&D.length===0)return y.spinner.stop(Q.default.red("No skills or commands found")),E(Q.default.red("No valid skills found. Skills require a SKILL.md with name and description.")),{success:!1,installed:0,failed:0,results:[]};let $=D.length>0;if(y.spinner.stop(`Found ${Q.default.green(S.length)} skill${S.length!==1?"s":""}`+($?` and ${Q.default.yellow(D.length)} command${D.length!==1?"s":""}`:"")),r.list){if(S.length>0){w.step(Q.default.bold("Available Skills"));for(let q of S)w.message(` ${Q.default.cyan(lf(q))}`),w.message(` ${Q.default.dim(q.description)}`)}if(D.length>0){w.step(Q.default.bold("Available Commands"));for(let q of D)w.message(` ${Q.default.cyan(xf(q))}`),w.message(` ${Q.default.dim(q.description||`Command: ${q.name}`)}`)}return E("Use --skill <name> to install specific skills or commands"),{success:!0,installed:0,failed:0,results:[]}}let l=await T0(S,r),T=l?await w0(r,y):null,o=D.length>0?await L0(D,r):null,_=o?await R0(r,y):null;if(!l&&!o)return{success:!1,installed:0,failed:0,results:[]};if(l&&!T)return{success:!1,installed:0,failed:0,results:[]};if(o&&!_)return{success:!1,installed:0,failed:0,results:[]};let I=await I0(r);if(I===null)return{success:!1,installed:0,failed:0,results:[]};if(!await o0(r,l,T,o,_,I))return{success:!1,installed:0,failed:0,results:[]};if(o&&o.length>0)w.warn(Q.default.yellow("Commands may change significantly or be removed - your feedback helps shape future releases"));y.spinner.start("Installing...");let R=await P0(l||[],T||[],o||[],_||[],I,i,b,n);return y.spinner.stop("Installation complete"),R}finally{if(y.tempDir)await br(y.tempDir)}}async function T0(f,r){if(f.length===0)return null;let y=[];if(r.skill&&r.skill.length>0){if(y=f.filter((i)=>r.skill.some((n)=>i.name.toLowerCase()===n.toLowerCase()||lf(i).toLowerCase()===n.toLowerCase())),y.length===0){w.error(`No matching skills found for: ${r.skill.join(", ")}`),w.info("Available skills:");for(let i of f)w.message(` - ${lf(i)}`);return null}w.info(`Selected ${y.length} skill${y.length!==1?"s":""}: ${y.map((i)=>Q.default.cyan(lf(i))).join(", ")}`)}else if(f.length===1){y=f;let i=f[0];w.info(`Skill: ${Q.default.cyan(lf(i))}`),w.message(Q.default.dim(i.description))}else if(r.yes||r.force)y=f,w.info(`Installing all ${f.length} skills`);else{let i=f.map((b)=>({value:b,label:lf(b),hint:b.description.length>60?b.description.slice(0,57)+"...":b.description})),n=await e({message:"Select skills to install",options:i,required:!1});if(V(n))return N("Installation cancelled"),null;if(!n||n.length===0)return w.info("No skills selected"),null;y=n}return y}async function L0(f,r){if(f.length===0)return null;w.warn(Q.default.yellow("⚠ Commands may change significantly or be removed - your feedback helps shape future releases")),w.message(Q.default.dim("See: https://github.com/senahq/flins#commands-experimental"));let y=[];if(r.skill&&r.skill.length>0)y=f.filter((i)=>r.skill.some((n)=>i.name.toLowerCase()===n.toLowerCase()||xf(i).toLowerCase()===n.toLowerCase()));if(y.length===0&&!r.yes&&!r.force){let i=f.map((b)=>({value:b,label:xf(b),hint:(b.description||`Command: ${b.name}`).slice(0,55)})),n=await e({message:"Select commands to install",options:i,required:!1});if(V(n))return N("Installation cancelled"),null;if(!n||n.length===0)return w.info("No commands selected"),null;y=n}else if(r.yes||r.force)y=f,w.info(`Installing all ${f.length} commands`);if(y.length>0)w.info(`Selected ${y.length} command${y.length!==1?"s":""}: ${y.map((i)=>Q.default.yellow(xf(i))).join(", ")}`);return y.length>0?y:null}async function w0(f,r){if(f.agent&&f.agent.length>0){let i=Object.keys(z),n=f.agent.filter((b)=>!i.includes(b));if(n.length>0)return w.error(`Invalid agents: ${n.join(", ")}`),w.info(`Valid agents: ${i.join(", ")}`),null;return f.agent}r.spinner.start("Detecting installed agents...");let y=await si();if(r.spinner.stop(`Detected ${y.length} agent${y.length!==1?"s":""}`),y.length===0)if(f.yes||f.force){let n=Object.keys(z);return w.info("Installing to all agents (none detected)"),n}else{w.warn("No coding agents detected. You can still install skills.");let n=Object.entries(z).map(([S,D])=>({value:S,label:D.displayName})),b=await e({message:"Select agents to install skills to",options:n,required:!0});if(V(b))return N("Installation cancelled"),null;return b}else if(y.length===1||f.yes||f.force){if(y.length===1){let i=y[0];w.info(`Installing skills to: ${Q.default.cyan(z[i].displayName)}`)}else w.info(`Installing skills to: ${y.map((i)=>Q.default.cyan(z[i].displayName)).join(", ")}`);return y}else{let i=y.map((b)=>({value:b,label:z[b].displayName,hint:z[b].skillsDir})),n=await e({message:"Select agents to install skills to",options:i,required:!0,initialValues:y});if(V(n))return N("Installation cancelled"),null;return n}}async function R0(f,r){let y=ai();if(f.agent&&f.agent.length>0){let D=Object.keys(z),$=f.agent.filter((o)=>!D.includes(o));if($.length>0)return w.error(`Invalid agents: ${$.join(", ")}`),w.info(`Valid agents: ${D.join(", ")}`),null;let l=f.agent.filter((o)=>wr(o));if(l.length===0)return w.error("Commands are only supported by: "+y.map((o)=>z[o].displayName).join(", ")),null;let T=f.agent.filter((o)=>!wr(o));if(T.length>0)w.warn(`Filtering out agents that don't support commands: ${T.join(", ")}`);return l}let i=y.filter((D)=>z[D]?.commandsDir);if(i.length===0)return w.warn("No agents with command support detected"),[];if(f.yes||f.force)return w.info(`Installing commands to: ${i.map((D)=>Q.default.cyan(z[D].displayName)).join(", ")}`),i;w.warn(Q.default.yellow("⚠ Commands may work differently across agents or be removed - your feedback helps shape future releases")),w.message(Q.default.dim("https://github.com/senahq/flins#commands-experimental"));let b=i.map((D)=>({value:D,label:z[D].displayName,hint:z[D].commandsDir||""})),S=await e({message:"Select agents to install commands to",options:b,required:!0,initialValues:i});if(V(S))return N("Installation cancelled"),null;return w.info(`Installing commands to: ${S.map((D)=>Q.default.cyan(z[D].displayName)).join(", ")}`),S}async function I0(f){let r=f.global??!1;if(f.global===void 0&&!(f.yes||f.force)){let y=await zi({message:"Installation scope",options:[{value:!1,label:"Project",hint:"Install in current directory (committed with your project)"},{value:!0,label:"Global",hint:"Install in home directory (available across all projects)"}]});if(V(y))return N("Installation cancelled"),null;r=y}return r}async function o0(f,r,y,i,n,b){if(w.step(Q.default.bold("Installation Summary")),r&&r.length>0&&y){w.message(Q.default.bold(Q.default.cyan("Skills")));for(let D of r){w.message(` ${Q.default.cyan(lf(D))}`);for(let $ of y){let l=Qy(D.name,$,{global:b}),o=await hi(D.name,$,{global:b})?Q.default.yellow(" (will overwrite)"):"";w.message(` ${Q.default.dim("→")} ${z[$].displayName}: ${Q.default.dim(l)}${o}`)}}}if(i&&i.length>0&&n&&n.length>0){w.message(Q.default.bold(Q.default.yellow("Commands (Experimental)")));for(let D of i){w.message(` ${Q.default.yellow(xf(D))} ${Q.default.dim("[experimental]")}`);for(let $ of n){let l=`${z[$].commandsDir}/${D.name}.md`;w.message(` ${Q.default.dim("→")} ${z[$].displayName}: ${Q.default.dim(l)}`)}}}if(!(f.yes||f.force)){let D=await Rf({message:"Proceed with installation?"});if(V(D)||!D)return N("Installation cancelled"),!1}return!0}async function P0(f,r,y,i,n,b,S,D){let $=[...f.flatMap((L)=>r.map((R)=>Lr(L,R,{global:n}))),...y.flatMap((L)=>i.map((R)=>Rr(L,R,{global:n})))],l=await Promise.all($),T=l.map((L,R)=>{let q=Math.floor(R/Math.max(r.length,i.length)),J=R%Math.max(r.length,i.length),x=R<f.length*r.length,k=x?f[q%f.length]:y[q%y.length],M=x?r:i,U=M[J%M.length];return{skill:x?lf(k):xf(k),agent:z[U].displayName,...L,installableType:x?"skill":"command"}}),o=new Map;for(let[L,R]of l.entries()){if(!R.success)continue;let q=L<f.length*r.length;if(n)if(q){let J=Math.floor(L/r.length),x=f[J%f.length],k=Uy(x.name,b.url,b.subpath,D,S,"skill");if(k.updated&&k.previousBranch){let M=o.get(x.name);o.set(x.name,{previous:M?.previous??k.previousBranch,current:M?.current??D})}}else{let J=Math.floor((L-f.length*r.length)/i.length),x=y[J%y.length];Uy(x.name,b.url,b.subpath,D,S,"command")}}if(!n)for(let[L,R]of l.entries()){if(!R.success)continue;if(L<f.length*r.length){let J=Math.floor(L/r.length),x=f[J%f.length];Ky(x.name,b.url,b.subpath,D,S,"skill")}else{let J=Math.floor((L-f.length*r.length)/i.length),x=y[J%y.length];Ky(x.name,b.url,b.subpath,D,S,"command")}}let _=T.filter((L)=>L.success),I=T.filter((L)=>!L.success);if(o.size>0)for(let[L,{previous:R,current:q}]of o)w.warn(Q.default.yellow(` ${Q.default.cyan(L)}: ${Q.default.dim(R)} → ${Q.default.green(q)}`));if(_.length>0){let L=_.filter((J)=>J.installableType==="skill").length,R=_.filter((J)=>J.installableType==="command").length,q=[];if(L>0)q.push(`${L} skill${L!==1?"s":""}`);if(R>0)q.push(`${R} command${R!==1?"s":""}`);w.success(Q.default.green(`Successfully installed ${q.join(" and ")}`));for(let J of _){let x=J.installableType==="command"?Q.default.yellow("⚡"):Q.default.green("✓");w.message(` ${x} ${J.skill} → ${J.agent}`),w.message(` ${Q.default.dim(J.path)}`)}}if(I.length>0){w.error(Q.default.red(`Failed to install ${I.length} item${I.length!==1?"s":""}`));for(let L of I)w.message(` ${Q.default.red("✗")} ${L.skill} → ${L.agent}`),w.message(` ${Q.default.dim(L.error)}`)}if(_.length>0)E(Q.default.green("Installation complete"));else E(Q.default.yellow("No items were installed"));return{success:I.length===0,installed:_.length,failed:I.length,results:T}}var Q;var S1=W(()=>{p();oy();xy();Zy();$r();Yy();Xy();My();pi();yf();kr();zr();Q=O(h(),1)});async function $1(){let f=Date.now();if(Hf&&Hy&&f<Hy)return Hf;try{let r=await fetch(Hi,{signal:AbortSignal.timeout(5000)});if(!r.ok)throw Error(`Failed to fetch directory: ${r.status}`);let y=await r.json();return Hf=y,Hy=f+_0,y}catch(r){if(Hf)return Hf;throw r}}async function l1(f){return(await $1()).find((i)=>i.name.toLowerCase()===f.toLowerCase())?.source??null}function T1(f){return/^[a-z0-9-]+$/i.test(f)&&!f.includes("/")&&!f.includes(":")}async function Ur(){return $1()}var Hf=null,Hy=null,_0=300000;var Ey=W(()=>{Py()});var L1={};G1(L1,{installCommand:()=>Gy});async function Gy(f,r){if(!r.silent)m(Lf.default.bgCyan(Lf.default.black(" flins ")));try{let y=f;if(T1(f)){if(!r.silent)w.info(`Looking up "${Lf.default.cyan(f)}" in flins directory...`);let n=await l1(f);if(!n){w.error(`Skill "${Lf.default.cyan(f)}" not found in directory.`);let b=await Ur();if(b.length>0){w.info("Available skills:");for(let S of b)w.message(` ${Lf.default.cyan(S.name)} - ${Lf.default.dim(S.description)}`)}process.exit(1)}if(y=n,!r.silent)w.success(`Found: ${Lf.default.cyan(y)}`)}let i=await D1(y,r);if(!i.success&&i.installed===0&&i.failed===0)process.exit(1);if(i.failed>0)process.exit(1)}catch(y){if(w.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)E(Lf.default.red("Couldn't install skill"));process.exit(1)}}var Lf;var cy=W(()=>{p();S1();Ey();Lf=O(h(),1)});var ey=O(ty(),1),{program:d,createCommand:W0,createArgument:V0,createOption:g0,CommanderError:N0,InvalidArgumentError:C0,InvalidOptionArgumentError:F0,Command:O0,Argument:u0,Option:v0,Help:A0}=ey.default;var fi={name:"flins",version:"0.0.1",description:"Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",keywords:["agent-skills","ai-agents","claude","cli","coding-assistant","copilot","cursor","github-copilot","skills"],homepage:"https://github.com/flinstech/flins#readme",bugs:{url:"https://github.com/flinstech/flins/issues"},license:"MIT",author:"flins",repository:{type:"git",url:"git+https://github.com/flinstech/flins.git"},bin:{flins:"./dist/index.js"},files:["dist","README.md"],type:"module",module:"src/index.ts",scripts:{build:"bun build src/index.ts --outdir dist --target node --minify",dev:"bun src/index.ts",typecheck:"tsgo --noEmit",prepublishOnly:"bun run build",lint:"oxlint","lint:fix":"oxlint --fix",fmt:"oxfmt","fmt:check":"oxfmt --check"},dependencies:{"@clack/prompts":"^1.0.0-alpha.9",commander:"^14.0.2",picocolors:"^1.1.1"},devDependencies:{"@types/bun":"latest","@typescript/native-preview":"^7.0.0-dev.20260116.1","bun-types":"^1.3.6",oxfmt:"^0.24.0",oxlint:"^1.39.0"}};cy();p();var Br=O(h(),1);p();oy();xy();Zy();Xy();My();kr();zr();var X=O(h(),1);import{join as Y0}from"path";function Zf(f){if(f.startsWith("skill:"))return{type:"skill",name:f.slice(6),installableType:"skill"};if(f.startsWith("command:"))return{type:"command",name:f.slice(8),installableType:"command"};return null}yf();import{existsSync as w1,readdirSync as q0,statSync as R1}from"fs";function J0(f){if(!w1(f))return!1;try{if(!R1(f).isDirectory())return!1;let y=q0(f);if(y.length===0)return!1;return y.includes("SKILL.md")}catch{return!1}}function x0(f){if(!w1(f))return!1;try{if(!R1(f).isFile())return!1;return f.endsWith(".md")}catch{return!1}}function Pf(f,r){return r==="skill"?J0(f):x0(f)}or();p();var Qf=O(h(),1);function Ef(){w.warn("No skills installed yet. Get started by installing a skill:"),w.message(` ${Qf.default.cyan("npx flins@latest <repo>")} # Install in current project`),w.message(` ${Qf.default.cyan("npx flins@latest <repo> --global")} # Install globally for all projects`),w.message(` ${Qf.default.dim("Examples:")}`),w.message(` ${Qf.default.cyan("npx flins@latest expo")} # Install from flins directory`),w.message(` ${Qf.default.cyan("npx flins@latest search")} # Browse available skills`)}var s=(f,r,y)=>{return f===1?r:y??`${r}s`};function o1(){let f=[],r=new Set,y=Mr();if(y)for(let[n,b]of Object.entries(y.skills)){let S=Zf(n);if(S)f.push({skillName:S.name,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!0,installableType:S.installableType}),r.add(`${S.installableType}:${S.name.toLowerCase()}`)}let i=Yr();for(let[n,b]of Object.entries(i.skills)){let S=Zf(n),D=S?`${S.installableType}:${S.name.toLowerCase()}`:n.toLowerCase();if(!r.has(D))f.push({skillName:S?.name??n,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!1,installableType:S?.installableType??"skill"})}return f}async function I1(f,r,y,i,n,b){let D=(n?Yf(f,b):of(f,b)).map((l)=>{let T=If(l);return{agent:z[l.agent].displayName,path:T,exists:Pf(T,l.installableType)}});if(D.filter((l)=>l.exists).length===0)return{skillName:f,currentCommit:i,latestCommit:i,status:"orphaned",installableType:b,installations:D};try{let l=await Bi(r,y);return{skillName:f,currentCommit:i,latestCommit:l,status:l===i?"latest":"update-available",installableType:b,installations:D}}catch(l){return{skillName:f,currentCommit:i,latestCommit:i,status:"error",installableType:b,installations:D,error:l instanceof Error?l.message:"Unknown error"}}}async function Wy(f){let r=o1(),y=[],i;if(f&&f.length>0){let b=new Set(f.map((S)=>S.toLowerCase()));i=r.filter(({skillName:S})=>b.has(S.toLowerCase()))}else i=r;if(i.length===0)return[];let n=rf();if(i.length===1){let{skillName:b,url:S,branch:D,commit:$,isLocal:l,installableType:T}=i[0];n.start(`Checking ${X.default.cyan(b)}...`);let o=await I1(b,S,D,$,l,T);n.stop(o.status==="latest"?X.default.green("Up to date"):X.default.yellow("Update available")),y.push(o)}else{n.start(`Checking ${i.length} ${s(i.length,"skill")}...`);for(let{skillName:b,url:S,branch:D,commit:$,isLocal:l,installableType:T}of i){let o=await I1(b,S,D,$,l,T);y.push(o)}n.stop("Check complete")}return y}async function P1(f,r={}){let y=o1(),i=[],n;if(f&&f.length>0){let I=new Set(f.map((L)=>L.toLowerCase()));n=y.filter(({skillName:L})=>I.has(L.toLowerCase()))}else n=y;if(n.length===0)return w.warn("No skills found to update"),E(X.default.yellow("Nothing to update")),[];let b=await Wy(f),S=b.filter((I)=>I.status==="update-available");if(S.length===0){let I=b.filter((L)=>L.status==="orphaned");if(I.length>0){w.warn(`${I.length} skill${I.length>1?"s":""} ${I.length>1?"have":"has"} no valid installations`);for(let L of I)w.message(` ${X.default.yellow("○")} ${X.default.cyan(L.skillName)} - files were removed`)}return w.success(X.default.green("All skills are up to date")),E(X.default.green("Already up to date")),[]}w.step(X.default.bold("Updates Available"));let D=S.map((I)=>({value:I.skillName,label:I.skillName,hint:`${I.currentCommit.slice(0,7)} → ${I.latestCommit.slice(0,7)}`})),$,l=r.yes||r.force;if(l)$=S.map((I)=>I.skillName);else{let I=await e({message:"Select skills to update",options:D,required:!0,initialValues:S.map((L)=>L.skillName)});if(V(I))return N("Update cancelled"),[];$=I}w.step(X.default.bold("Will Update"));for(let I of $){let L=S.find((R)=>R.skillName===I);if(L)w.message(` ${X.default.cyan(L.skillName)}`),w.message(` ${X.default.dim("Current:")} ${X.default.yellow(L.currentCommit.slice(0,7))} ${X.default.dim("→")} ${X.default.green(L.latestCommit.slice(0,7))}`)}if(!l){let I=await Rf({message:"Proceed with update?"});if(V(I)||!I)return N("Update cancelled"),[]}let T=rf();T.start(`Updating ${$.length} ${s($.length,"skill")}...`);for(let{skillName:I,url:L,subpath:R,isLocal:q,installableType:J}of n){let x=b.find((H)=>H.skillName===I);if(!x||x.status!=="update-available"){if(x?.status==="latest")i.push({skillName:I,success:!0,updated:0,failed:0});else i.push({skillName:I,success:!1,updated:0,failed:0});continue}if(!$.includes(I))continue;let k=null,M=0,U=0;try{k=await ir(L);let H=await nr(k),Y=R?Y0(k,R):k,Z=await lr(Y),F=await Tr(Y),C=Z.find((B)=>B.name.toLowerCase()===I.toLowerCase()),g=F.find((B)=>B.name.toLowerCase()===I.toLowerCase());if(!C&&!g)throw Error("Skill or command not found in repository");let nf=q?Yf(I,J):of(I,J);for(let B of nf){let A=If(B);if(!Pf(A,B.installableType)){if(!q)xr(I,J);continue}let a;if(B.installableType==="command"&&g)a=await Rr(g,B.agent,{global:B.type==="global"});else if(C)a=await Lr(C,B.agent,{global:B.type==="global"});else{U++;continue}if(a.success)M++;else U++}if(q)b1(I,J,H);else f1(I,J,H);i.push({skillName:I,success:U===0,updated:M,failed:U})}catch(H){i.push({skillName:I,success:!1,updated:M,failed:U+1,error:H instanceof Error?H.message:"Unknown error"})}finally{if(k)await br(k)}}T.stop("Update complete");let o=i.filter((I)=>I.success&&I.updated>0),_=i.filter((I)=>!I.success||I.failed>0);if(o.length>0){w.success(X.default.green(`Updated ${o.length} ${s(o.length,"skill")}`));for(let I of o)w.message(` ${X.default.green("✓")} ${X.default.cyan(I.skillName)} (${I.updated} ${s(I.updated,"installation")})`)}if(_.length>0){w.error(X.default.red(`Failed to update ${_.length} ${s(_.length,"skill")}`));for(let I of _)if(w.message(` ${X.default.red("✗")} ${X.default.cyan(I.skillName)}`),I.error)w.message(` ${X.default.dim(I.error)}`)}if(o.length>0)E(X.default.green("Skills updated successfully"));else E(X.default.yellow("No skills were updated"));return i}async function _1(f,r=!1){if(f.length===0){Ef();return}w.step(X.default.bold("Skills Status"));for(let y of f){let i={latest:X.default.green("✓"),"update-available":X.default.yellow("↓"),error:X.default.red("✗"),orphaned:X.default.dim("○")}[y.status],n={latest:X.default.green("latest"),"update-available":X.default.yellow("update available"),error:X.default.red("error"),orphaned:X.default.dim("orphaned")}[y.status],b=y.installations.filter((D)=>D.exists),S=y.installations.filter((D)=>!D.exists);if(!r){let D=b.length,$=D>0?` (${D} ${s(D,"installation")})`:"";w.message(`${i} ${X.default.cyan(y.installableType+":"+y.skillName)}${X.default.dim($)} - ${n}`)}else{if(w.message(`${i} ${X.default.cyan(y.installableType+":"+y.skillName)}`),w.message(` Status: ${n}`),y.status==="update-available")w.message(` ${X.default.dim("Commit:")} ${X.default.yellow(y.currentCommit.slice(0,7))} ${X.default.dim("→")} ${X.default.green(y.latestCommit.slice(0,7))}`);else if(y.status==="latest")w.message(` ${X.default.dim("Commit:")} ${y.currentCommit.slice(0,7)}`);if(y.error)w.message(` ${X.default.red(y.error)}`);if(b.length>0){w.message(` ${X.default.dim("Installed in:")}`);for(let D of b)w.message(` ${X.default.dim("•")} ${D.agent}: ${X.default.dim(D.path)}`)}if(S.length>0){w.message(` ${X.default.yellow("Missing installations:")}`);for(let D of S)w.message(` ${X.default.dim("•")} ${D.agent}: ${X.default.dim(D.path)}`)}}}if(!r)w.info(`Use ${X.default.cyan("--verbose")} or ${X.default.cyan("-v")} for detailed information`)}async function q1(f={}){let r=rf();r.start("Checking for orphaned entries..."),await r1(),r.stop(X.default.green("State cleaned up"))}async function J1(f,r){if(!r.silent)m(Br.default.bgCyan(Br.default.black(" flins ")));try{await P1(f.length>0?f:void 0,r)}catch(y){if(w.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)E(Br.default.red("Couldn't update skill(s)"));process.exit(1)}}p();var Gf=O(h(),1);async function x1(f,r={}){if(!r.silent)m(Gf.default.bgCyan(Gf.default.black(" flins ")));try{let y=await Wy(f.length>0?f:void 0),i=r.verbose||f.length>0;if(await _1(y,i),!r.silent)E(Gf.default.green("All checks complete"))}catch(y){if(w.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)E(Gf.default.red("Couldn't check status"));process.exit(1)}}p();var jr=O(h(),1);p();kr();zr();var K=O(h(),1);import{existsSync as k0,rmSync as Z0}from"fs";yf();or();function Y1(){let f=[],r=new Set,y=Mr();if(y)for(let[n,b]of Object.entries(y.skills)){let S=Zf(n);if(S)f.push({skillName:S.name,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!0,installableType:S.installableType}),r.add(`${S.installableType}:${S.name.toLowerCase()}`)}let i=Yr();for(let[n,b]of Object.entries(i.skills)){let S=Zf(n),D=S?`${S.installableType}:${S.name.toLowerCase()}`:n.toLowerCase();if(!r.has(D))f.push({skillName:S?.name??n,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!1,installableType:S?.installableType??"skill"})}return f}async function Q0(f){try{if(k0(f))Z0(f,{recursive:!0,force:!0});return{success:!0}}catch(r){return{success:!1,error:r instanceof Error?r.message:"Unknown error"}}}async function k1(f=[],r={}){let y=Y1(),i=[];if(y.length===0)return Ef(),[];let n;if(f.length>0){let _=new Set(f.map((I)=>I.toLowerCase()));n=y.filter(({skillName:I})=>_.has(I.toLowerCase()))}else{let I=y.map(({skillName:R,isLocal:q,installableType:J})=>{let k=(q?Yf(R,J):of(R,J)).map((M)=>({installation:M,resolvedPath:If(M)})).filter(({installation:M,resolvedPath:U})=>Pf(U,M.installableType));return{value:R,label:R,hint:k.length>0?`${k.length} ${s(k.length,"installation")}`:"no valid installations"}}).filter((R)=>R.hint!=="no valid installations");if(I.length===0)return w.warn("No valid installations found"),[];if(r.yes||r.force)n=y.filter(({skillName:R})=>I.some((q)=>q.value===R));else{let R=await e({message:"Select skills to remove",options:I,required:!0,initialValues:I.map((J)=>J.value)});if(V(R))return N("Remove cancelled"),[];let q=R;n=y.filter(({skillName:J})=>q.includes(J))}}if(n.length===0){if(f.length>0){w.error(`No matching skills found for: ${f.join(", ")}`),w.info("Tracked skills:");for(let _ of y)w.message(` - ${K.default.cyan(_.skillName)}`)}return[]}w.step(K.default.bold("Skills to Remove"));let b=[];for(let{skillName:_,isLocal:I,installableType:L}of n){let q=(I?Yf(_,L):of(_,L)).map((J)=>({installation:J,resolvedPath:If(J)})).filter(({installation:J,resolvedPath:x})=>Pf(x,J.installableType));if(q.length>0){b.push({skillName:_,isLocal:I,installableType:L,installations:q}),w.message(` ${K.default.cyan(_)}`);for(let{resolvedPath:J}of q)w.message(` ${K.default.dim("→")} ${J}`)}}if(b.length===0)return w.warn("No installations match the specified criteria"),[];let S=f.length===0,D,$=r.yes||r.force;if($||S)D=b.map(({skillName:_})=>_);else{let _=b.map(({skillName:L,installations:R})=>({value:L,label:L,hint:`${R.length} ${s(R.length,"installation")}`})),I=await e({message:"Select skills to remove",options:_,required:!0,initialValues:b.map(({skillName:L})=>L)});if(V(I))return N("Remove cancelled"),[];D=I}w.step(K.default.bold("Will Remove"));for(let _ of D){let I=b.find((L)=>L.skillName===_);if(I){w.message(` ${K.default.cyan(I.skillName)}`);for(let{resolvedPath:L}of I.installations)w.message(` ${K.default.dim("→")} ${L}`)}}if(!$){let _=await Rf({message:"Remove these skills?"});if(V(_)||!_)return N("Remove cancelled"),[]}let l=rf();l.start(`Removing ${D.length} skill${D.length>1?"s":""}...`);for(let{skillName:_,isLocal:I,installableType:L,installations:R}of b){if(!D.includes(_))continue;let q={skillName:_,success:!0,removed:0,failed:0,installations:[]};for(let{installation:J,resolvedPath:x}of R){let k=await Q0(x);if(q.installations.push({agent:z[J.agent].displayName,path:x,removed:k.success,error:k.error}),k.success)q.removed++;else q.failed++,q.success=!1}if(q.removed>0)if(I)n1(_,L);else xr(_,L);i.push(q)}l.stop("Remove complete");let T=i.filter((_)=>_.success&&_.removed>0),o=i.filter((_)=>!_.success||_.failed>0);if(T.length>0){w.success(K.default.green(`Removed ${T.length} ${s(T.length,"skill")}`));for(let _ of T)w.message(` ${K.default.green("✓")} ${K.default.cyan(_.skillName)}`),w.message(` ${K.default.dim(`${_.removed} ${s(_.removed,"installation")} removed`)}`)}if(o.length>0){w.error(K.default.red(`Failed to remove ${o.length} ${s(o.length,"skill")}`));for(let _ of o){w.message(` ${K.default.red("✗")} ${K.default.cyan(_.skillName)}`);for(let I of _.installations.filter((L)=>!L.removed))if(I.error)w.message(` ${K.default.dim(I.error)}`)}}if(T.length>0)E(K.default.green("Skills removed successfully"));else E(K.default.yellow("No skills were removed"));return i}async function Z1(){let f=Y1();if(f.length===0){Ef();return}w.step(K.default.bold("Installed Skills and Commands"));let r=[],y=[];for(let{skillName:i,isLocal:n,installableType:b}of f)if(n)r.push({skillName:i,installableType:b});else y.push({skillName:i,installableType:b});if(r.length>0){if(y.length>0)w.message(K.default.bold(K.default.cyan("Local (from ./skills.lock)")));for(let{skillName:i,installableType:n}of r){w.message(`${K.default.green("✓")} ${K.default.cyan(n+":"+i)} ${n==="command"?K.default.yellow("(experimental)"):""}`);let S=Yf(i,n).map((D)=>({installation:D,resolvedPath:If(D)})).filter(({installation:D,resolvedPath:$})=>Pf($,D.installableType));if(S.length>0){w.message(` ${K.default.dim("Installed in:")}`);for(let{installation:D,resolvedPath:$}of S)w.message(` ${K.default.dim("•")} ${z[D.agent].displayName}: ${K.default.dim($)}`)}}}if(y.length>0){if(r.length>0)w.message(K.default.bold(K.default.cyan("Global (from ~/.flins/skills.lock)")));for(let{skillName:i,installableType:n}of y){let b=n==="command"?K.default.yellow("⚡"):K.default.green("✓");w.message(`${b} ${K.default.cyan(i)}`);let D=of(i,n).map(($)=>({installation:$,resolvedPath:If($)})).filter(({installation:$,resolvedPath:l})=>Pf(l,$.installableType));if(D.length>0){w.message(` ${K.default.dim("Installed in:")}`);for(let{installation:$,resolvedPath:l}of D)w.message(` ${K.default.dim("•")} ${z[$.agent].displayName}: ${K.default.dim(l)}`)}}}}async function Q1(f,r){if(!r.silent)m(jr.default.bgCyan(jr.default.black(" flins ")));try{await k1(f,r)}catch(y){if(w.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)E(jr.default.red("Couldn't remove skill(s)"));process.exit(1)}}p();var cf=O(h(),1);async function X1(){m(cf.default.bgCyan(cf.default.black(" flins ")));try{await Z1(),E(cf.default.green("Showing all installed skills"))}catch(f){w.error(f instanceof Error?f.message:"Unknown error occurred"),E(cf.default.red("Couldn't list skills")),process.exit(1)}}p();Ey();var v=O(h(),1);async function M1(){m(v.default.bgCyan(v.default.black(" flins ")));try{let f=rf();f.start("Loading skill directory...");let r=await Ur();if(f.stop("Directory loaded"),r.length===0){w.warn("No skills found in directory"),E("Check back later for new skills");return}let y=await Mi({message:"Select a skill to view details:",options:r.map((D)=>({value:D.name,label:D.name,hint:`${D.author} - ${D.description.slice(0,50)}${D.description.length>50?"...":""}`})),placeholder:"Type to search..."});if(V(y)){N("Search cancelled");return}let i=Array.isArray(y)&&y.length>0?y[0]:y;if(!i){N("No selection made");return}let n=r.find((D)=>D.name===i);if(!n)return;X0(n);let b=await Rf({message:"Install this skill?"});if(V(b)||!b){E("Install anytime with "+v.default.green(`flins add ${n.name}`));return}let{installCommand:S}=await Promise.resolve().then(() => (cy(),L1));await S(n.name,{})}catch(f){w.error(f instanceof Error?f.message:"Failed to fetch directory"),E(v.default.red("Couldn't load directory")),process.exit(1)}}function X0(f){if(w.step(v.default.bold("Skill Details")),w.message(`${v.default.cyan(f.name)}`),w.message(` ${v.default.dim(f.description)}`),f.tags.length>0)w.message(` ${v.default.bold("Tags:")} ${f.tags.map((r)=>v.default.green(r)).join(", ")}`);w.message(` ${v.default.bold("Author:")} ${v.default.yellow(f.author)}`),w.message(` ${v.default.bold("Source:")} ${v.default.dim(f.source)}`),w.message(` ${v.default.dim("Install with:")} ${v.default.green(`flins add ${f.name}`)}`)}p();var Wf=O(h(),1);async function z1(f={}){if(!f.silent)m(Wf.default.bgCyan(Wf.default.black(" flins ")));try{if(await q1(f),!f.silent)E(Wf.default.green("State cleaned up"))}catch(r){if(w.error(r instanceof Error?r.message:"Unknown error occurred"),!f.silent)E(Wf.default.red("Cleanup failed"));process.exit(1)}}var M0=fi.version;d.name("flins").description("Universal skill package manager for AI coding agents. Install, manage, and update custom skills across Claude Code, Cursor, Copilot, Gemini, Windsurf, Trae, Factory, Letta, OpenCode, Codex, and 8+ more AI development tools from a single unified interface.").version(M0).action(()=>{d.help()});d.command("add <source>",{isDefault:!1}).description("Install skills from git repository").alias("a").option("-g, --global","Install skill globally (user-level) instead of project-level").option("-a, --agent <agents...>","Specify target agents (auto-detects if omitted). Supports: claude-code, cursor, copilot, gemini, windsurf, trae, factory, letta, opencode, codex, antigravity, amp, kilo, roo, goose, qoder").option("-s, --skill <skills...>","Install specific skills by name (skip interactive selection)").option("-l, --list","List all available skills in the source repository without installing").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await Gy(f,r)});d.command("update [skills...]").description("Update installed skills to their latest versions from git sources").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await J1(f,r)});d.command("outdated [skills...]").description("Check installation status, available updates, and orphaned skills").option("-v, --verbose","Show detailed information including installation paths").action(async(f,r)=>{await x1(f,r)});d.command("remove [skills...]").description("Uninstall skills from your AI coding agents").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await Q1(f,r)});d.command("list").description("List all installed skills across your AI coding agents").action(async()=>{await X1()});d.command("search").description("Browse and discover available skills from the flins directory").action(async()=>{await M1()});d.command("clean").description("Remove orphaned skill entries from state tracking").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f)=>{await z1(f)});d.parse();
101
+ `)},info:(f,r)=>{o.message(f,{...r,symbol:P.default.blue(bb)})},success:(f,r)=>{o.message(f,{...r,symbol:P.default.green(Db)})},step:(f,r)=>{o.message(f,{...r,symbol:P.default.green(wy)})},warn:(f,r)=>{o.message(f,{...r,symbol:P.default.yellow(Sb)})},warning:(f,r)=>{o.warn(f,r)},error:(f,r)=>{o.message(f,{...r,symbol:P.default.red(lb)})}},Zb=P.default.magenta,_D={light:G("─","-"),heavy:G("━","="),block:G("█","#")},kD=`${P.default.gray(B)} `});function Ui(f){let r=f.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)(?:\/(.+))?$/);if(r){let[,S,D,l,$]=r;return{type:"github",url:`https://github.com/${S}/${D}.git`,branch:l,subpath:$}}let y=f.match(/github\.com\/([^/]+)\/([^/]+)/);if(y){let[,S,D]=y,l=D.replace(/\.git$/,"");return{type:"github",url:`https://github.com/${S}/${l}.git`}}let i=f.match(/gitlab\.com\/([^/]+)\/([^/]+)\/-\/tree\/([^/]+)(?:\/(.+))?$/);if(i){let[,S,D,l,$]=i;return{type:"gitlab",url:`https://gitlab.com/${S}/${D}.git`,branch:l,subpath:$}}let n=f.match(/gitlab\.com\/([^/]+)\/([^/]+)/);if(n){let[,S,D]=n,l=D.replace(/\.git$/,"");return{type:"gitlab",url:`https://gitlab.com/${S}/${l}.git`}}let b=f.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/);if(b&&!f.includes(":")){let[,S,D,l]=b;return{type:"github",url:`https://github.com/${S}/${D}.git`,subpath:l}}return{type:"git",url:f}}import{join as Xb}from"path";import{rmSync as Mb}from"fs";import{tmpdir as zb}from"os";import{spawn as Py}from"child_process";async function br(f,r){let y=Xb(zb(),`flins-${Date.now()}`),i=["clone","--depth","1"];if(r)i.push("--branch",r);return i.push(f,y),await new Promise((n,b)=>{let S=Py("git",i,{stdio:"pipe"});S.on("close",(D)=>{if(D===0)n();else b(Error(`Failed to clone repository: ${f}`))}),S.on("error",b)}),y}async function ji(f,r="main"){return await new Promise((i,n)=>{let b="",S=Py("git",["ls-remote",f,`refs/heads/${r}`],{stdio:"pipe"});S.stdout?.on("data",(D)=>{b+=D.toString()}),S.on("close",(D)=>{if(D===0&&b.trim())i(b.trim().split(/\s+/)[0]??"");else n(Error(`Failed to get latest commit from ${f}`))}),S.on("error",n)})}async function Dr(f){return await new Promise((y,i)=>{let n="",b=Py("git",["rev-parse","HEAD"],{cwd:f,stdio:"pipe"});b.stdout?.on("data",(S)=>{n+=S.toString()}),b.on("close",(S)=>{if(S===0&&n.trim())y(n.trim());else i(Error("Failed to get commit hash"))}),b.on("error",i)})}async function Sr(f){Mb(f,{recursive:!0,force:!0})}var _y=()=>{};var ci;var Bi=W(()=>{ci={opencode:{name:"opencode",displayName:"OpenCode",configDir:"~/.config/opencode",skillsDir:".opencode/skill",globalSkillsDir:"~/.config/opencode/skill",commandsDir:".opencode/command",globalCommandsDir:"~/.config/opencode/command"},"claude-code":{name:"claude-code",displayName:"Claude Code",configDir:"~/.claude",skillsDir:".claude/skills",globalSkillsDir:"~/.claude/skills",commandsDir:".claude/commands",globalCommandsDir:"~/.claude/commands"},codex:{name:"codex",displayName:"Codex",configDir:"~/.codex",skillsDir:".codex/skills",globalSkillsDir:"~/.codex/skills"},cursor:{name:"cursor",displayName:"Cursor",configDir:"~/.cursor",skillsDir:".cursor/skills",globalSkillsDir:"~/.cursor/skills"},amp:{name:"amp",displayName:"Amp",configDir:"~/.config/agents",skillsDir:".agents/skills",globalSkillsDir:"~/.config/agents/skills"},kilo:{name:"kilo",displayName:"Kilo Code",configDir:"~/.kilocode",skillsDir:".kilocode/skills",globalSkillsDir:"~/.kilocode/skills"},roo:{name:"roo",displayName:"Roo Code",configDir:"~/.roo",skillsDir:".roo/skills",globalSkillsDir:"~/.roo/skills"},goose:{name:"goose",displayName:"Goose",configDir:"~/.config/goose",skillsDir:".goose/skills",globalSkillsDir:"~/.config/goose/skills"},antigravity:{name:"antigravity",displayName:"Antigravity",configDir:"~/.gemini/antigravity",skillsDir:".agent/skills",globalSkillsDir:"~/.gemini/antigravity/skills"},copilot:{name:"copilot",displayName:"GitHub Copilot",configDir:"~/.copilot",skillsDir:".github/skills",globalSkillsDir:"~/.copilot/skills"},gemini:{name:"gemini",displayName:"Gemini CLI",configDir:"~/.gemini",skillsDir:".gemini/skills",globalSkillsDir:"~/.gemini/skills"},windsurf:{name:"windsurf",displayName:"Windsurf",configDir:"~/.codeium/windsurf",skillsDir:".windsurf/skills",globalSkillsDir:"~/.codeium/windsurf/skills"},trae:{name:"trae",displayName:"Trae",configDir:"~/.trae",skillsDir:".trae/skills",globalSkillsDir:"~/.trae/skills"},factory:{name:"factory",displayName:"Factory Droid",configDir:"~/.factory",skillsDir:".factory/skills",globalSkillsDir:"~/.factory/skills",commandsDir:".factory/commands",globalCommandsDir:"~/.factory/commands"},letta:{name:"letta",displayName:"Letta",configDir:"~/.letta",skillsDir:".skills",globalSkillsDir:"~/.letta/skills"},qoder:{name:"qoder",displayName:"Qoder",configDir:"~/.qoder",skillsDir:".qoder/skills",globalSkillsDir:"~/.qoder/skills"}}});import{homedir as jb}from"os";import{existsSync as Bb}from"fs";function Hi(){let f={},r=ci;for(let[y,i]of Object.entries(r)){let n=y;f[n]={name:i.name,displayName:i.displayName,configDir:i.configDir.replace("~",lr),skillsDir:i.skillsDir,globalSkillsDir:i.globalSkillsDir.replace("~",lr),commandsDir:i.commandsDir,globalCommandsDir:i.globalCommandsDir?.replace("~",lr),detectInstalled:async()=>{let b=i.configDir.replace("~",lr);return Bb(b)}}}return f}var lr,Ki;var ky=W(()=>{Bi();lr=jb(),Ki=process.env.DIRECTORY_URL||"https://flins.tech/directory.json"});var z;var yf=W(()=>{ky();z=Hi()});import{basename as cb,dirname as Kb}from"path";function qy(f){let r=f.match(/^---\n([\s\S]+?)\n---\n([\s\S]*)$/);if(!r)return{data:{},content:f};let y=r[1],i=r[2],n={};for(let b of y.split(`
102
+ `)){let S=b.indexOf(":");if(S===-1)continue;let D=b.slice(0,S).trim(),l=b.slice(S+1).trim();if(l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'"))n[D]=l.slice(1,-1);else if(D==="metadata")try{let $={},T=l.replace(/^\{|\}$/g,"").trim();if(T){for(let I of T.split(",")){let[_,R]=I.split("=").map((L)=>L.trim());if(_&&R)$[_]=R.replace(/^['"]|["']$/g,"")}n[D]=JSON.stringify($)}}catch{n[D]=l}else n[D]=l}return{data:n,content:i}}function $r(f,r){try{let{data:y}=qy(r);if(!y.name||!y.description)return null;return{name:y.name,description:y.description,path:Kb(f),metadata:y.metadata?JSON.parse(y.metadata):void 0}}catch{return null}}function $f(f){return f.name||cb(f.path)}var Tr=()=>{};import{readdir as Ei,readFile as Jy,stat as Hb}from"fs/promises";import{join as Tf}from"path";function Wb(f){let r=[f];for(let i of Gb)r.push(Tf(f,i));let y=new Set;for(let i of Object.values(z))y.add(Tf(f,i.skillsDir));return r.push(...y),r}async function xy(f){try{let r=Tf(f,"SKILL.md");return(await Hb(r)).isFile()}catch{return!1}}async function Gi(f,r=0,y=5){let i=[];if(r>y)return i;try{if(await xy(f))i.push(f);let n=await Ei(f,{withFileTypes:!0});for(let b of n)if(b.isDirectory()&&!Eb.includes(b.name)){let S=await Gi(Tf(f,b.name),r+1,y);i.push(...S)}}catch{}return i}async function Lr(f,r){let y=[],i=new Set,n=r?Tf(f,r):f;if(await xy(n)){let S=Tf(n,"SKILL.md"),D=await Jy(S,"utf-8"),l=$r(S,D);if(l)return y.push(l),y}let b=Wb(n);for(let S of b)try{let D=await Ei(S,{withFileTypes:!0});for(let l of D)if(l.isDirectory()){let $=Tf(S,l.name);if(await xy($)){let T=Tf($,"SKILL.md"),I=await Jy(T,"utf-8"),_=$r(T,I);if(_&&!i.has(_.name))y.push(_),i.add(_.name)}}}catch{}if(y.length===0){let S=await Gi(n);for(let D of S){let l=Tf(D,"SKILL.md"),$=await Jy(l,"utf-8"),T=$r(l,$);if(T&&!i.has(T.name))y.push(T),i.add(T.name)}}return y}var Eb,Gb;var Yy=W(()=>{yf();Tr();Eb=["node_modules",".git","dist","build","__pycache__"],Gb=["skills","skills/.curated","skills/.experimental","skills/.system"]});import{basename as Vb}from"path";function Wi(f,r){try{let{data:y}=qy(r);return{name:y.name||Vb(f,".md"),description:y.description,path:f,type:"markdown"}}catch{return null}}function xf(f){return f.name}var Zy=W(()=>{Tr()});import{readdir as Vi,readFile as gb}from"fs/promises";import{join as Qy,extname as Nb}from"path";async function gi(f,r=0){let y=[];if(r>Ob)return y;try{let i=await Vi(f,{withFileTypes:!0});for(let n of i){if(Cb.includes(n.name))continue;let b=Qy(f,n.name);if(n.isDirectory())if(n.name==="commands")y.push(b);else{let S=await gi(b,r+1);y.push(...S)}}}catch{}return y}async function ub(f){let r=[];try{let y=await Vi(f,{withFileTypes:!0});for(let i of y){if(Fb.has(i.name))continue;if(!i.isFile())continue;let n=Qy(f,i.name);if(Nb(i.name).toLowerCase()!==".md")continue;try{let S=await gb(n,"utf-8"),D=Wi(n,S);if(D)r.push(D)}catch{continue}}}catch{}return r}async function or(f,r){let y=[],i=new Set,n=r?Qy(f,r):f,b=await gi(n);for(let S of b){let D=await ub(S);for(let l of D)if(!i.has(l.name))y.push(l),i.add(l.name)}return y}var Cb,Fb,Ob=5;var Xy=W(()=>{Zy();Cb=["node_modules",".git","dist","build","__pycache__"],Fb=new Set(["README.md","readme.md",".DS_Store"])});import{mkdir as Ci,cp as vb,access as Ab,readdir as hb}from"fs/promises";import{join as Ni}from"path";async function Fi(f,r){await Ci(r,{recursive:!0});let y=await hb(f,{withFileTypes:!0});for(let i of y){if(ab(i.name))continue;let n=Ni(f,i.name),b=Ni(r,i.name);if(i.isDirectory())await Fi(n,b);else await vb(n,b)}}async function Oi(f,r){try{return await Ci(r,{recursive:!0}),await Fi(f,r),{success:!0,path:r}}catch(y){return{success:!1,path:r,error:y instanceof Error?y.message:"Unknown error"}}}async function ui(f){try{return await Ab(f),!0}catch{return!1}}var mb,ab=(f)=>{if(mb.has(f))return!0;if(f.startsWith("_"))return!0;return!1};var vi=W(()=>{mb=new Set(["README.md","metadata.json"])});import{join as Ai}from"path";async function wr(f,r,y){let i=z[r],n=y.global?i.globalSkillsDir:i.skillsDir,b=Ai(n,f.name);return{...await Oi(f.path,b),originalPath:f.path}}async function hi(f,r,y){let i=My(f,r,y);return ui(i)}function My(f,r,y){let i=z[r],n=y.global?i.globalSkillsDir:i.skillsDir;return Ai(n,f)}var zy=W(()=>{yf();vi()});import{mkdir as sb,cp as pb}from"fs/promises";import{join as db,dirname as tb}from"path";function Rr(f){return mi.includes(f)}function ai(){return mi.filter((f)=>z[f]?.commandsDir)}async function eb(f){await sb(f,{recursive:!0})}async function f0(f,r){try{return await eb(tb(r)),await pb(f,r),{success:!0,path:r}}catch(y){return{success:!1,path:r,error:y instanceof Error?y.message:"Unknown error"}}}async function r0(f,r,y){let i=z[r],n=y.global?i.globalCommandsDir:i.commandsDir,b=db(n,`${f.name}.md`);return f0(f.path,b)}async function Ir(f,r,y){if(!Rr(r))return{success:!1,path:"",originalPath:f.path,error:`Agent ${r} does not support commands`};if(!z[r].commandsDir)return{success:!1,path:"",originalPath:f.path,error:`Agent ${r} has no commands directory configured`};return{...await r0(f,r,y),originalPath:f.path}}var mi;var Uy=W(()=>{yf();mi=["claude-code","opencode","factory"]});async function si(){let f=[];for(let[r,y]of Object.entries(z))if(await y.detectInstalled())f.push(r);return f}var pi=W(()=>{yf()});import{resolve as y0}from"path";import{homedir as i0}from"os";function Pr(f){if(f.startsWith("~"))return f.replace("~",i0());return f}function Rf(f){return f.type==="global"?Pr(f.path):y0(process.cwd(),f.path)}var _r=()=>{};import{homedir as n0}from"os";import{join as qr}from"path";import{existsSync as Jr,readFileSync as b0,writeFileSync as ti,mkdirSync as D0,readdirSync as di}from"fs";function ei(){if(!Jr(jy))D0(jy,{recursive:!0})}function cf(){if(ei(),!Jr(kr)){let f={lastUpdate:new Date().toISOString(),skills:{}};return ti(kr,JSON.stringify(f,null,2)),f}try{let f=b0(kr,"utf-8");return JSON.parse(f)}catch{return{lastUpdate:new Date().toISOString(),skills:{}}}}function xr(f){ei(),f.lastUpdate=new Date().toISOString(),ti(kr,JSON.stringify(f,null,2))}function By(f,r,y,i,n,b="skill"){let S=cf(),D=b==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,l=!1,$;if(!S.skills[D])S.skills[D]={url:r,subpath:y,branch:i,commit:n};else{if(S.skills[D].branch!==i)$=S.skills[D].branch,S.skills[D].branch=i,S.skills[D].commit=n,l=!0;if(S.skills[D].url=r,y)S.skills[D].subpath=y}return xr(S),{updated:l,previousBranch:$}}function Yr(f,r){let y=cf(),i=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;delete y.skills[i],xr(y)}function fn(f,r,y){let i=cf(),n=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;if(i.skills[n])i.skills[n].commit=y,xr(i)}function Zr(){return cf()}function If(f,r){let y=[];for(let[i,n]of Object.entries(z))if(r==="skill"){let b=Pr(n.globalSkillsDir);if(Jr(b))try{let D=di(b,{withFileTypes:!0}).find((l)=>l.isDirectory()&&l.name.toLowerCase()===f.toLowerCase());if(D)y.push({agent:i,installableType:"skill",type:"global",path:qr(n.globalSkillsDir,D.name)})}catch{}}else{let b=n.globalCommandsDir;if(b){let S=Pr(b);if(Jr(S))try{let l=di(S,{withFileTypes:!0}).find(($)=>{return $.name.replace(/\.md$/,"").toLowerCase()===f.toLowerCase()});if(l)y.push({agent:i,installableType:"command",type:"global",path:qr(b,l.name)})}catch{}}}return y}async function rn(){let f=cf(),r=[];for(let[y,i]of Object.entries(f.skills)){let n=y.split(":");if(n.length!==2)continue;let b=n[0]==="skill"?"skill":"command",S=n[1];if(If(S,b).length===0)r.push(y)}for(let y of r)delete f.skills[y];if(r.length>0)xr(f)}var jy,kr;var Qr=W(()=>{_r();yf();jy=qr(n0(),".flins"),kr=qr(jy,"skills.lock")});import{join as Xr,resolve as S0}from"path";import{existsSync as Kf,readFileSync as l0,writeFileSync as $0,rmSync as nn,readdirSync as yn}from"fs";function Mr(f){let r=f||process.cwd();return S0(r,T0)}function Hf(f){let r=Mr(f);if(!Kf(r))return null;try{let y=l0(r,"utf-8"),i=JSON.parse(y);if(!i.version||!i.skills)return null;return i}catch{return null}}function zr(f,r){let y=Mr(r);f.version=bn,$0(y,JSON.stringify(f,null,2))}function cy(f,r,y,i,n,b,S){let D=Hf(S);if(!D)D={version:bn,skills:{}};let l=b==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,$=!1,T;if(!D.skills[l])D.skills[l]={url:r,subpath:y,branch:i,commit:n};else{if(D.skills[l].branch!==i)T=D.skills[l].branch,D.skills[l].branch=i,D.skills[l].commit=n,$=!0;if(D.skills[l].url=r,D.skills[l].commit=n,y)D.skills[l].subpath=y}return zr(D,S),{updated:$,previousBranch:T}}function Dn(f,r,y){let i=Hf(y);if(!i)return;let n=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`;if(delete i.skills[n],Object.keys(i.skills).length>0)zr(i,y);else{let b=Mr(y);if(Kf(b))try{nn(b,{force:!0})}catch{}}}function Sn(f,r,y,i){let n=Hf(i);if(!n)return;let b=r==="skill"?`skill:${f.toLowerCase()}`:`command:${f.toLowerCase()}`,S=n.skills[b];if(S)S.commit=y,zr(n,i)}function Ur(f){return Hf(f)}function Pf(f,r,y){let i=[],n=y||process.cwd();for(let[b,S]of Object.entries(z))if(r==="skill"){let D=Xr(n,S.skillsDir);if(Kf(D))try{let $=yn(D,{withFileTypes:!0}).find((T)=>T.isDirectory()&&T.name.toLowerCase()===f.toLowerCase());if($)i.push({agent:b,installableType:"skill",type:"project",path:Xr(S.skillsDir,$.name)})}catch{}}else{let D=S.commandsDir;if(D){let l=Xr(n,D);if(Kf(l))try{let T=yn(l,{withFileTypes:!0}).find((I)=>{return I.name.replace(/\.md$/,"").toLowerCase()===f.toLowerCase()});if(T)i.push({agent:b,installableType:"command",type:"project",path:Xr(D,T.name)})}catch{}}}return i}async function ln(f){let r=Hf(f);if(!r)return;let y=[];for(let[i,n]of Object.entries(r.skills)){let b=i.split(":");if(b.length!==2)continue;let S=b[0]==="skill"?"skill":"command",D=b[1];if(Pf(D,S,f).length===0)y.push(i)}for(let i of y)delete r.skills[i];if(y.length>0)if(Object.keys(r.skills).length>0)zr(r,f);else{let i=Mr(f);if(Kf(i))nn(i,{force:!0})}}var bn="1.0.0",T0="skills.lock";var jr=W(()=>{yf()});async function $n(f,r){let y={tempDir:null,spinner:rf()};try{y.spinner.start("Parsing source...");let i=Ui(f),n=i.branch??"main";y.spinner.stop(`Source: ${Q.default.cyan(i.url)}${i.subpath?` (${i.subpath})`:""}${i.branch?` @ ${Q.default.cyan(i.branch)}`:""}`),y.spinner.start("Cloning repository..."),y.tempDir=await br(i.url,i.branch),y.spinner.stop("Repository cloned");let b=await Dr(y.tempDir);y.spinner.start("Discovering skills and commands...");let S=await Lr(y.tempDir,i.subpath),D=await or(y.tempDir,i.subpath);if(S.length===0&&D.length===0)return y.spinner.stop(Q.default.red("No skills or commands found")),H(Q.default.red("No valid skills found. Skills require a SKILL.md with name and description.")),{success:!1,installed:0,failed:0,results:[]};let l=D.length>0;if(y.spinner.stop(`Found ${Q.default.green(S.length)} skill${S.length!==1?"s":""}`+(l?` and ${Q.default.yellow(D.length)} command${D.length!==1?"s":""}`:"")),r.list){if(S.length>0){o.step(Q.default.bold("Available Skills"));for(let k of S)o.message(` ${Q.default.cyan($f(k))}`),o.message(` ${Q.default.dim(k.description)}`)}if(D.length>0){o.step(Q.default.bold("Available Commands"));for(let k of D)o.message(` ${Q.default.cyan(xf(k))}`),o.message(` ${Q.default.dim(k.description||`Command: ${k.name}`)}`)}return H("Use --skill <name> to install specific skills or commands"),{success:!0,installed:0,failed:0,results:[]}}let $=await L0(S,r),T=$?await w0(r,y):null,I=D.length>0?await o0(D,r):null,_=I?await R0(r,y):null;if(!$&&!I)return{success:!1,installed:0,failed:0,results:[]};if($&&!T)return{success:!1,installed:0,failed:0,results:[]};if(I&&!_)return{success:!1,installed:0,failed:0,results:[]};let R=await I0(r);if(R===null)return{success:!1,installed:0,failed:0,results:[]};if(!await P0(r,$,T,I,_,R))return{success:!1,installed:0,failed:0,results:[]};if(I&&I.length>0)o.warn(Q.default.yellow("Commands may change significantly or be removed - your feedback helps shape future releases"));y.spinner.start("Installing...");let w=await _0($||[],T||[],I||[],_||[],R,i,b,n);return y.spinner.stop("Installation complete"),w}finally{if(y.tempDir)await Sr(y.tempDir)}}async function L0(f,r){if(f.length===0)return null;let y=[];if(r.skill&&r.skill.length>0){if(y=f.filter((i)=>r.skill.some((n)=>i.name.toLowerCase()===n.toLowerCase()||$f(i).toLowerCase()===n.toLowerCase())),y.length===0){o.error(`No matching skills found for: ${r.skill.join(", ")}`),o.info("Available skills:");for(let i of f)o.message(` - ${$f(i)}`);return null}o.info(`Selected ${y.length} skill${y.length!==1?"s":""}: ${y.map((i)=>Q.default.cyan($f(i))).join(", ")}`)}else if(f.length===1){y=f;let i=f[0];o.info(`Skill: ${Q.default.cyan($f(i))}`),o.message(Q.default.dim(i.description))}else if(r.yes||r.force)y=f,o.info(`Installing all ${f.length} skills`);else{let i=f.map((b)=>({value:b,label:$f(b),hint:b.description.length>60?b.description.slice(0,57)+"...":b.description})),n=await e({message:"Select skills to install",options:i,required:!1});if(V(n))return N("Installation cancelled"),null;if(!n||n.length===0)return o.info("No skills selected"),null;y=n}return y}async function o0(f,r){if(f.length===0)return null;o.warn(Q.default.yellow("⚠ Commands may change significantly or be removed - your feedback helps shape future releases")),o.message(Q.default.dim("See: https://github.com/senahq/flins#commands-experimental"));let y=[];if(r.skill&&r.skill.length>0)y=f.filter((i)=>r.skill.some((n)=>i.name.toLowerCase()===n.toLowerCase()||xf(i).toLowerCase()===n.toLowerCase()));if(y.length===0&&!r.yes&&!r.force){let i=f.map((b)=>({value:b,label:xf(b),hint:(b.description||`Command: ${b.name}`).slice(0,55)})),n=await e({message:"Select commands to install",options:i,required:!1});if(V(n))return N("Installation cancelled"),null;if(!n||n.length===0)return o.info("No commands selected"),null;y=n}else if(r.yes||r.force)y=f,o.info(`Installing all ${f.length} commands`);if(y.length>0)o.info(`Selected ${y.length} command${y.length!==1?"s":""}: ${y.map((i)=>Q.default.yellow(xf(i))).join(", ")}`);return y.length>0?y:null}async function w0(f,r){if(f.agent&&f.agent.length>0){let i=Object.keys(z),n=f.agent.filter((b)=>!i.includes(b));if(n.length>0)return o.error(`Invalid agents: ${n.join(", ")}`),o.info(`Valid agents: ${i.join(", ")}`),null;return f.agent}r.spinner.start("Detecting installed agents...");let y=await si();if(r.spinner.stop(`Detected ${y.length} agent${y.length!==1?"s":""}`),y.length===0)if(f.yes||f.force){let n=Object.keys(z);return o.info("Installing to all agents (none detected)"),n}else{o.warn("No coding agents detected. You can still install skills.");let n=Object.entries(z).map(([S,D])=>({value:S,label:D.displayName})),b=await e({message:"Select agents to install skills to",options:n,required:!0});if(V(b))return N("Installation cancelled"),null;return b}else if(y.length===1||f.yes||f.force){if(y.length===1){let i=y[0];o.info(`Installing skills to: ${Q.default.cyan(z[i].displayName)}`)}else o.info(`Installing skills to: ${y.map((i)=>Q.default.cyan(z[i].displayName)).join(", ")}`);return y}else{let i=y.map((b)=>({value:b,label:z[b].displayName,hint:z[b].skillsDir})),n=await e({message:"Select agents to install skills to",options:i,required:!0,initialValues:y});if(V(n))return N("Installation cancelled"),null;return n}}async function R0(f,r){let y=ai();if(f.agent&&f.agent.length>0){let D=Object.keys(z),l=f.agent.filter((I)=>!D.includes(I));if(l.length>0)return o.error(`Invalid agents: ${l.join(", ")}`),o.info(`Valid agents: ${D.join(", ")}`),null;let $=f.agent.filter((I)=>Rr(I));if($.length===0)return o.error("Commands are only supported by: "+y.map((I)=>z[I].displayName).join(", ")),null;let T=f.agent.filter((I)=>!Rr(I));if(T.length>0)o.warn(`Filtering out agents that don't support commands: ${T.join(", ")}`);return $}let i=y.filter((D)=>z[D]?.commandsDir);if(i.length===0)return o.warn("No agents with command support detected"),[];if(f.yes||f.force)return o.info(`Installing commands to: ${i.map((D)=>Q.default.cyan(z[D].displayName)).join(", ")}`),i;o.warn(Q.default.yellow("⚠ Commands may work differently across agents or be removed - your feedback helps shape future releases")),o.message(Q.default.dim("https://github.com/senahq/flins#commands-experimental"));let b=i.map((D)=>({value:D,label:z[D].displayName,hint:z[D].commandsDir||""})),S=await e({message:"Select agents to install commands to",options:b,required:!0,initialValues:i});if(V(S))return N("Installation cancelled"),null;return o.info(`Installing commands to: ${S.map((D)=>Q.default.cyan(z[D].displayName)).join(", ")}`),S}async function I0(f){let r=f.global??!1;if(f.global===void 0&&!(f.yes||f.force)){let y=await zi({message:"Installation scope",options:[{value:!1,label:"Project",hint:"Install in current directory (committed with your project)"},{value:!0,label:"Global",hint:"Install in home directory (available across all projects)"}]});if(V(y))return N("Installation cancelled"),null;r=y}return r}async function P0(f,r,y,i,n,b){if(o.step(Q.default.bold("Installation Summary")),r&&r.length>0&&y){o.message(Q.default.bold(Q.default.cyan("Skills")));for(let D of r){o.message(` ${Q.default.cyan($f(D))}`);for(let l of y){let $=My(D.name,l,{global:b}),I=await hi(D.name,l,{global:b})?Q.default.yellow(" (will overwrite)"):"";o.message(` ${Q.default.dim("→")} ${z[l].displayName}: ${Q.default.dim($)}${I}`)}}}if(i&&i.length>0&&n&&n.length>0){o.message(Q.default.bold(Q.default.yellow("Commands (Experimental)")));for(let D of i){o.message(` ${Q.default.yellow(xf(D))} ${Q.default.dim("[experimental]")}`);for(let l of n){let $=`${z[l].commandsDir}/${D.name}.md`;o.message(` ${Q.default.dim("→")} ${z[l].displayName}: ${Q.default.dim($)}`)}}}if(!(f.yes||f.force)){let D=await wf({message:"Proceed with installation?"});if(V(D)||!D)return N("Installation cancelled"),!1}return!0}async function _0(f,r,y,i,n,b,S,D){let l=[...f.flatMap((L)=>r.map((w)=>wr(L,w,{global:n}))),...y.flatMap((L)=>i.map((w)=>Ir(L,w,{global:n})))],$=await Promise.all(l),T=$.map((L,w)=>{let k=Math.floor(w/Math.max(r.length,i.length)),q=w%Math.max(r.length,i.length),J=w<f.length*r.length,Y=J?f[k%f.length]:y[k%y.length],M=J?r:i,U=M[q%M.length];return{skill:J?$f(Y):xf(Y),agent:z[U].displayName,...L,installableType:J?"skill":"command"}}),I=new Map;for(let[L,w]of $.entries()){if(!w.success)continue;let k=L<f.length*r.length;if(n)if(k){let q=Math.floor(L/r.length),J=f[q%f.length],Y=By(J.name,b.url,b.subpath,D,S,"skill");if(Y.updated&&Y.previousBranch){let M=I.get(J.name);I.set(J.name,{previous:M?.previous??Y.previousBranch,current:M?.current??D})}}else{let q=Math.floor((L-f.length*r.length)/i.length),J=y[q%y.length];By(J.name,b.url,b.subpath,D,S,"command")}}if(!n)for(let[L,w]of $.entries()){if(!w.success)continue;if(L<f.length*r.length){let q=Math.floor(L/r.length),J=f[q%f.length];cy(J.name,b.url,b.subpath,D,S,"skill")}else{let q=Math.floor((L-f.length*r.length)/i.length),J=y[q%y.length];cy(J.name,b.url,b.subpath,D,S,"command")}}let _=T.filter((L)=>L.success),R=T.filter((L)=>!L.success);if(I.size>0)for(let[L,{previous:w,current:k}]of I)o.warn(Q.default.yellow(` ${Q.default.cyan(L)}: ${Q.default.dim(w)} → ${Q.default.green(k)}`));if(_.length>0){let L=_.filter((q)=>q.installableType==="skill").length,w=_.filter((q)=>q.installableType==="command").length,k=[];if(L>0)k.push(`${L} skill${L!==1?"s":""}`);if(w>0)k.push(`${w} command${w!==1?"s":""}`);o.success(Q.default.green(`Successfully installed ${k.join(" and ")}`));for(let q of _){let J=q.installableType==="command"?Q.default.yellow("⚡"):Q.default.green("✓");o.message(` ${J} ${q.skill} → ${q.agent}`),o.message(` ${Q.default.dim(q.path)}`)}}if(R.length>0){o.error(Q.default.red(`Failed to install ${R.length} item${R.length!==1?"s":""}`));for(let L of R)o.message(` ${Q.default.red("✗")} ${L.skill} → ${L.agent}`),o.message(` ${Q.default.dim(L.error)}`)}if(_.length>0)H(Q.default.green("Installation complete"));else H(Q.default.yellow("No items were installed"));return{success:R.length===0,installed:_.length,failed:R.length,results:T}}var Q;var Tn=W(()=>{p();_y();Yy();Xy();Tr();Zy();zy();Uy();pi();yf();Qr();jr();Q=O(h(),1)});async function Ln(){let f=Date.now();if(Ef&&Ky&&f<Ky)return Ef;try{let r=await fetch(Ki,{signal:AbortSignal.timeout(5000)});if(!r.ok)throw Error(`Failed to fetch directory: ${r.status}`);let y=await r.json();return Ef=y,Ky=f+k0,y}catch(r){if(Ef)return Ef;throw r}}async function on(f){return(await Ln()).find((i)=>i.name.toLowerCase()===f.toLowerCase())?.source??null}function wn(f){return/^[a-z0-9-]+$/i.test(f)&&!f.includes("/")&&!f.includes(":")}async function Br(){return Ln()}var Ef=null,Ky=null,k0=300000;var Hy=W(()=>{ky()});var Rn={};Vn(Rn,{installCommand:()=>Ey});async function Ey(f,r){if(!r.silent)m(Lf.default.bgCyan(Lf.default.black(" flins ")));try{let y=f;if(wn(f)){if(!r.silent)o.info(`Looking up "${Lf.default.cyan(f)}" in flins directory...`);let n=await on(f);if(!n){o.error(`Skill "${Lf.default.cyan(f)}" not found in directory.`);let b=await Br();if(b.length>0){o.info("Available skills:");for(let S of b)o.message(` ${Lf.default.cyan(S.name)} - ${Lf.default.dim(S.description)}`)}process.exit(1)}if(y=n,!r.silent)o.success(`Found: ${Lf.default.cyan(y)}`)}let i=await $n(y,r);if(!i.success&&i.installed===0&&i.failed===0)process.exit(1);if(i.failed>0)process.exit(1)}catch(y){if(o.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)H(Lf.default.red("Couldn't install skill"));process.exit(1)}}var Lf;var Gy=W(()=>{p();Tn();Hy();Lf=O(h(),1)});var ey=O(ty(),1),{program:d,createCommand:V0,createArgument:g0,createOption:N0,CommanderError:C0,InvalidArgumentError:F0,InvalidOptionArgumentError:O0,Command:u0,Argument:v0,Option:A0,Help:h0}=ey.default;var fi={name:"flins",version:"0.0.3",description:"Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",keywords:["agent-skills","ai-agents","claude","cli","coding-assistant","copilot","cursor","github-copilot","skills"],homepage:"https://github.com/flinstech/flins#readme",bugs:{url:"https://github.com/flinstech/flins/issues"},license:"MIT",author:"flins",repository:{type:"git",url:"git+https://github.com/flinstech/flins.git"},bin:{flins:"./dist/index.js"},files:["dist","README.md"],type:"module",module:"src/index.ts",scripts:{build:"bun build src/index.ts --outdir dist --target node --minify",dev:"bun src/index.ts",typecheck:"tsgo --noEmit",prepublishOnly:"bun run build",lint:"oxlint","lint:fix":"oxlint --fix",fmt:"oxfmt","fmt:check":"oxfmt --check"},dependencies:{"@clack/prompts":"^1.0.0-alpha.9",commander:"^14.0.2",picocolors:"^1.1.1"},devDependencies:{"@types/bun":"latest","@typescript/native-preview":"^7.0.0-dev.20260116.1","bun-types":"^1.3.6",oxfmt:"^0.24.0",oxlint:"^1.39.0"}};Gy();p();var cr=O(h(),1);p();_y();Yy();Xy();zy();Uy();Qr();jr();var X=O(h(),1);import{join as Y0}from"path";function Zf(f){if(f.startsWith("skill:"))return{type:"skill",name:f.slice(6),installableType:"skill"};if(f.startsWith("command:"))return{type:"command",name:f.slice(8),installableType:"command"};return null}yf();import{existsSync as In,readdirSync as q0,statSync as Pn}from"fs";function J0(f){if(!In(f))return!1;try{if(!Pn(f).isDirectory())return!1;let y=q0(f);if(y.length===0)return!1;return y.includes("SKILL.md")}catch{return!1}}function x0(f){if(!In(f))return!1;try{if(!Pn(f).isFile())return!1;return f.endsWith(".md")}catch{return!1}}function _f(f,r){return r==="skill"?J0(f):x0(f)}_r();p();var Qf=O(h(),1);function Gf(){o.warn("No skills installed yet. Get started by installing a skill:"),o.message(` ${Qf.default.cyan("npx flins@latest <repo>")} # Install in current project`),o.message(` ${Qf.default.cyan("npx flins@latest <repo> --global")} # Install globally for all projects`),o.message(` ${Qf.default.dim("Examples:")}`),o.message(` ${Qf.default.cyan("npx flins@latest expo")} # Install from flins directory`),o.message(` ${Qf.default.cyan("npx flins@latest search")} # Browse available skills`)}var s=(f,r,y)=>{return f===1?r:y??`${r}s`};function kn(){let f=[],r=new Set,y=Ur();if(y)for(let[n,b]of Object.entries(y.skills)){let S=Zf(n);if(S)f.push({skillName:S.name,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!0,installableType:S.installableType}),r.add(`${S.installableType}:${S.name.toLowerCase()}`)}let i=Zr();for(let[n,b]of Object.entries(i.skills)){let S=Zf(n),D=S?`${S.installableType}:${S.name.toLowerCase()}`:n.toLowerCase();if(!r.has(D))f.push({skillName:S?.name??n,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!1,installableType:S?.installableType??"skill"})}return f}async function _n(f,r,y,i,n,b){let D=(n?Pf(f,b):If(f,b)).map(($)=>{let T=Rf($);return{agent:z[$.agent].displayName,path:T,exists:_f(T,$.installableType)}});if(D.filter(($)=>$.exists).length===0)return{skillName:f,currentCommit:i,latestCommit:i,status:"orphaned",installableType:b,installations:D};try{let $=await ji(r,y);return{skillName:f,currentCommit:i,latestCommit:$,status:$===i?"latest":"update-available",installableType:b,installations:D}}catch($){return{skillName:f,currentCommit:i,latestCommit:i,status:"error",installableType:b,installations:D,error:$ instanceof Error?$.message:"Unknown error"}}}async function Wy(f){let r=kn(),y=[],i;if(f&&f.length>0){let b=new Set(f.map((S)=>S.toLowerCase()));i=r.filter(({skillName:S})=>b.has(S.toLowerCase()))}else i=r;if(i.length===0)return[];let n=rf();if(i.length===1){let{skillName:b,url:S,branch:D,commit:l,isLocal:$,installableType:T}=i[0];n.start(`Checking ${X.default.cyan(b)}...`);let I=await _n(b,S,D,l,$,T);n.stop(I.status==="latest"?X.default.green("Up to date"):X.default.yellow("Update available")),y.push(I)}else{n.start(`Checking ${i.length} ${s(i.length,"skill")}...`);for(let{skillName:b,url:S,branch:D,commit:l,isLocal:$,installableType:T}of i){let I=await _n(b,S,D,l,$,T);y.push(I)}n.stop("Check complete")}return y}async function qn(f,r={}){let y=kn(),i=[],n;if(f&&f.length>0){let R=new Set(f.map((L)=>L.toLowerCase()));n=y.filter(({skillName:L})=>R.has(L.toLowerCase()))}else n=y;if(n.length===0)return o.warn("No skills found to update"),H(X.default.yellow("Nothing to update")),[];let b=await Wy(f),S=b.filter((R)=>R.status==="update-available");if(S.length===0){let R=b.filter((L)=>L.status==="orphaned");if(R.length>0){o.warn(`${R.length} skill${R.length>1?"s":""} ${R.length>1?"have":"has"} no valid installations`);for(let L of R)o.message(` ${X.default.yellow("○")} ${X.default.cyan(L.skillName)} - files were removed`)}return o.success(X.default.green("All skills are up to date")),H(X.default.green("Already up to date")),[]}o.step(X.default.bold("Updates Available"));let D=S.map((R)=>({value:R.skillName,label:R.skillName,hint:`${R.currentCommit.slice(0,7)} → ${R.latestCommit.slice(0,7)}`})),l,$=r.yes||r.force;if($)l=S.map((R)=>R.skillName);else{let R=await e({message:"Select skills to update",options:D,required:!0,initialValues:S.map((L)=>L.skillName)});if(V(R))return N("Update cancelled"),[];l=R}o.step(X.default.bold("Will Update"));for(let R of l){let L=S.find((w)=>w.skillName===R);if(L)o.message(` ${X.default.cyan(L.skillName)}`),o.message(` ${X.default.dim("Current:")} ${X.default.yellow(L.currentCommit.slice(0,7))} ${X.default.dim("→")} ${X.default.green(L.latestCommit.slice(0,7))}`)}if(!$){let R=await wf({message:"Proceed with update?"});if(V(R)||!R)return N("Update cancelled"),[]}let T=rf();T.start(`Updating ${l.length} ${s(l.length,"skill")}...`);for(let{skillName:R,url:L,subpath:w,isLocal:k,installableType:q}of n){let J=b.find((K)=>K.skillName===R);if(!J||J.status!=="update-available"){if(J?.status==="latest")i.push({skillName:R,success:!0,updated:0,failed:0});else i.push({skillName:R,success:!1,updated:0,failed:0});continue}if(!l.includes(R))continue;let Y=null,M=0,U=0;try{Y=await br(L);let K=await Dr(Y),x=w?Y0(Y,w):Y,Z=await Lr(x),F=await or(x),C=Z.find((j)=>j.name.toLowerCase()===R.toLowerCase()),g=F.find((j)=>j.name.toLowerCase()===R.toLowerCase());if(!C&&!g)throw Error("Skill or command not found in repository");let nf=k?Pf(R,q):If(R,q);for(let j of nf){let A=Rf(j);if(!_f(A,j.installableType)){if(!k)Yr(R,q);continue}let a;if(j.installableType==="command"&&g)a=await Ir(g,j.agent,{global:j.type==="global"});else if(C)a=await wr(C,j.agent,{global:j.type==="global"});else{U++;continue}if(a.success)M++;else U++}if(k)Sn(R,q,K);else fn(R,q,K);i.push({skillName:R,success:U===0,updated:M,failed:U})}catch(K){i.push({skillName:R,success:!1,updated:M,failed:U+1,error:K instanceof Error?K.message:"Unknown error"})}finally{if(Y)await Sr(Y)}}T.stop("Update complete");let I=i.filter((R)=>R.success&&R.updated>0),_=i.filter((R)=>!R.success||R.failed>0);if(I.length>0){o.success(X.default.green(`Updated ${I.length} ${s(I.length,"skill")}`));for(let R of I)o.message(` ${X.default.green("✓")} ${X.default.cyan(R.skillName)} (${R.updated} ${s(R.updated,"installation")})`)}if(_.length>0){o.error(X.default.red(`Failed to update ${_.length} ${s(_.length,"skill")}`));for(let R of _)if(o.message(` ${X.default.red("✗")} ${X.default.cyan(R.skillName)}`),R.error)o.message(` ${X.default.dim(R.error)}`)}if(I.length>0)H(X.default.green("Skills updated successfully"));else H(X.default.yellow("No skills were updated"));return i}async function Jn(f,r=!1){if(f.length===0){Gf();return}o.step(X.default.bold("Skills Status"));for(let y of f){let i={latest:X.default.green("✓"),"update-available":X.default.yellow("↓"),error:X.default.red("✗"),orphaned:X.default.dim("○")}[y.status],n={latest:X.default.green("latest"),"update-available":X.default.yellow("update available"),error:X.default.red("error"),orphaned:X.default.dim("orphaned")}[y.status],b=y.installations.filter((D)=>D.exists),S=y.installations.filter((D)=>!D.exists);if(!r){let D=b.length,l=D>0?` (${D} ${s(D,"installation")})`:"";o.message(`${i} ${X.default.cyan(y.installableType+":"+y.skillName)}${X.default.dim(l)} - ${n}`)}else{if(o.message(`${i} ${X.default.cyan(y.installableType+":"+y.skillName)}`),o.message(` Status: ${n}`),y.status==="update-available")o.message(` ${X.default.dim("Commit:")} ${X.default.yellow(y.currentCommit.slice(0,7))} ${X.default.dim("→")} ${X.default.green(y.latestCommit.slice(0,7))}`);else if(y.status==="latest")o.message(` ${X.default.dim("Commit:")} ${y.currentCommit.slice(0,7)}`);if(y.error)o.message(` ${X.default.red(y.error)}`);if(b.length>0){o.message(` ${X.default.dim("Installed in:")}`);for(let D of b)o.message(` ${X.default.dim("•")} ${D.agent}: ${X.default.dim(D.path)}`)}if(S.length>0){o.message(` ${X.default.yellow("Missing installations:")}`);for(let D of S)o.message(` ${X.default.dim("•")} ${D.agent}: ${X.default.dim(D.path)}`)}}}if(!r)o.info(`Use ${X.default.cyan("--verbose")} or ${X.default.cyan("-v")} for detailed information`)}async function xn(f={}){let r=rf();r.start("Checking for orphaned entries..."),await Promise.all([rn(),ln()]),r.stop(X.default.green("State cleaned up"))}async function Yn(f,r){if(!r.silent)m(cr.default.bgCyan(cr.default.black(" flins ")));try{await qn(f.length>0?f:void 0,r)}catch(y){if(o.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)H(cr.default.red("Couldn't update skill(s)"));process.exit(1)}}p();var Wf=O(h(),1);async function Zn(f,r={}){if(!r.silent)m(Wf.default.bgCyan(Wf.default.black(" flins ")));try{let y=await Wy(f.length>0?f:void 0),i=r.verbose||f.length>0;if(await Jn(y,i),!r.silent)H(Wf.default.green("All checks complete"))}catch(y){if(o.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)H(Wf.default.red("Couldn't check status"));process.exit(1)}}p();var Kr=O(h(),1);p();Qr();jr();var c=O(h(),1);import{existsSync as Z0,rmSync as Q0}from"fs";yf();_r();function Qn(){let f=[],r=new Set,y=Ur();if(y)for(let[n,b]of Object.entries(y.skills)){let S=Zf(n);if(S)f.push({skillName:S.name,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!0,installableType:S.installableType}),r.add(`${S.installableType}:${S.name.toLowerCase()}`)}let i=Zr();for(let[n,b]of Object.entries(i.skills)){let S=Zf(n),D=S?`${S.installableType}:${S.name.toLowerCase()}`:n.toLowerCase();if(!r.has(D))f.push({skillName:S?.name??n,url:b.url,subpath:b.subpath,branch:b.branch,commit:b.commit,isLocal:!1,installableType:S?.installableType??"skill"})}return f}async function X0(f){try{if(Z0(f))Q0(f,{recursive:!0,force:!0});return{success:!0}}catch(r){return{success:!1,error:r instanceof Error?r.message:"Unknown error"}}}async function Xn(f=[],r={}){let y=Qn(),i=[];if(y.length===0)return Gf(),[];let n;if(f.length>0){let _=new Set(f.map((R)=>R.toLowerCase()));n=y.filter(({skillName:R})=>_.has(R.toLowerCase()))}else{let R=y.map(({skillName:w,isLocal:k,installableType:q})=>{let Y=(k?Pf(w,q):If(w,q)).map((M)=>({installation:M,resolvedPath:Rf(M)})).filter(({installation:M,resolvedPath:U})=>_f(U,M.installableType));return{value:w,label:w,hint:Y.length>0?`${Y.length} ${s(Y.length,"installation")}`:"no valid installations"}}).filter((w)=>w.hint!=="no valid installations");if(R.length===0)return o.warn("No valid installations found"),[];if(r.yes||r.force)n=y.filter(({skillName:w})=>R.some((k)=>k.value===w));else{let w=await e({message:"Select skills to remove",options:R,required:!0,initialValues:R.map((q)=>q.value)});if(V(w))return N("Remove cancelled"),[];let k=w;n=y.filter(({skillName:q})=>k.includes(q))}}if(n.length===0){if(f.length>0){o.error(`No matching skills found for: ${f.join(", ")}`),o.info("Tracked skills:");for(let _ of y)o.message(` - ${c.default.cyan(_.skillName)}`)}return[]}o.step(c.default.bold("Skills to Remove"));let b=[];for(let{skillName:_,isLocal:R,installableType:L}of n){let k=(R?Pf(_,L):If(_,L)).map((q)=>({installation:q,resolvedPath:Rf(q)})).filter(({installation:q,resolvedPath:J})=>_f(J,q.installableType));if(k.length>0){b.push({skillName:_,isLocal:R,installableType:L,installations:k}),o.message(` ${c.default.cyan(_)}`);for(let{resolvedPath:q}of k)o.message(` ${c.default.dim("→")} ${q}`)}}if(b.length===0)return o.warn("No installations match the specified criteria"),[];let S=f.length===0,D,l=r.yes||r.force;if(l||S)D=b.map(({skillName:_})=>_);else{let _=b.map(({skillName:L,installations:w})=>({value:L,label:L,hint:`${w.length} ${s(w.length,"installation")}`})),R=await e({message:"Select skills to remove",options:_,required:!0,initialValues:b.map(({skillName:L})=>L)});if(V(R))return N("Remove cancelled"),[];D=R}o.step(c.default.bold("Will Remove"));for(let _ of D){let R=b.find((L)=>L.skillName===_);if(R){o.message(` ${c.default.cyan(R.skillName)}`);for(let{resolvedPath:L}of R.installations)o.message(` ${c.default.dim("→")} ${L}`)}}if(!l){let _=await wf({message:"Remove these skills?"});if(V(_)||!_)return N("Remove cancelled"),[]}let $=rf();$.start(`Removing ${D.length} skill${D.length>1?"s":""}...`);for(let{skillName:_,isLocal:R,installableType:L,installations:w}of b){if(!D.includes(_))continue;let k={skillName:_,success:!0,removed:0,failed:0,installations:[]};for(let{installation:q,resolvedPath:J}of w){let Y=await X0(J);if(k.installations.push({agent:z[q.agent].displayName,path:J,removed:Y.success,error:Y.error}),Y.success)k.removed++;else k.failed++,k.success=!1}if(k.removed>0)if(R)Dn(_,L);else Yr(_,L);i.push(k)}$.stop("Remove complete");let T=i.filter((_)=>_.success&&_.removed>0),I=i.filter((_)=>!_.success||_.failed>0);if(T.length>0){o.success(c.default.green(`Removed ${T.length} ${s(T.length,"skill")}`));for(let _ of T)o.message(` ${c.default.green("✓")} ${c.default.cyan(_.skillName)}`),o.message(` ${c.default.dim(`${_.removed} ${s(_.removed,"installation")} removed`)}`)}if(I.length>0){o.error(c.default.red(`Failed to remove ${I.length} ${s(I.length,"skill")}`));for(let _ of I){o.message(` ${c.default.red("✗")} ${c.default.cyan(_.skillName)}`);for(let R of _.installations.filter((L)=>!L.removed))if(R.error)o.message(` ${c.default.dim(R.error)}`)}}if(T.length>0)H(c.default.green("Skills removed successfully"));else H(c.default.yellow("No skills were removed"));return i}async function Mn(){let f=Qn();if(f.length===0){Gf();return}o.step(c.default.bold("Installed Skills and Commands"));let r=[],y=[];for(let{skillName:i,isLocal:n,installableType:b}of f)if(n)r.push({skillName:i,installableType:b});else y.push({skillName:i,installableType:b});if(r.length>0){if(y.length>0)o.message(c.default.bold(c.default.cyan("Local (from ./skills.lock)")));for(let{skillName:i,installableType:n}of r){o.message(`${c.default.green("✓")} ${c.default.cyan(n+":"+i)} ${n==="command"?c.default.yellow("(experimental)"):""}`);let S=Pf(i,n).map((D)=>({installation:D,resolvedPath:Rf(D)})).filter(({installation:D,resolvedPath:l})=>_f(l,D.installableType));if(S.length>0){o.message(` ${c.default.dim("Installed in:")}`);for(let{installation:D,resolvedPath:l}of S)o.message(` ${c.default.dim("•")} ${z[D.agent].displayName}: ${c.default.dim(l)}`)}}}if(y.length>0){if(r.length>0)o.message(c.default.bold(c.default.cyan("Global (from ~/.flins/skills.lock)")));for(let{skillName:i,installableType:n}of y){let b=n==="command"?c.default.yellow("⚡"):c.default.green("✓");o.message(`${b} ${c.default.cyan(i)}`);let D=If(i,n).map((l)=>({installation:l,resolvedPath:Rf(l)})).filter(({installation:l,resolvedPath:$})=>_f($,l.installableType));if(D.length>0){o.message(` ${c.default.dim("Installed in:")}`);for(let{installation:l,resolvedPath:$}of D)o.message(` ${c.default.dim("•")} ${z[l.agent].displayName}: ${c.default.dim($)}`)}}}}async function zn(f,r){if(!r.silent)m(Kr.default.bgCyan(Kr.default.black(" flins ")));try{await Xn(f,r)}catch(y){if(o.error(y instanceof Error?y.message:"Unknown error occurred"),!r.silent)H(Kr.default.red("Couldn't remove skill(s)"));process.exit(1)}}p();var Vf=O(h(),1);async function Un(){m(Vf.default.bgCyan(Vf.default.black(" flins ")));try{await Mn(),H(Vf.default.green("Showing all installed skills"))}catch(f){o.error(f instanceof Error?f.message:"Unknown error occurred"),H(Vf.default.red("Couldn't list skills")),process.exit(1)}}p();Hy();var v=O(h(),1);async function jn(){m(v.default.bgCyan(v.default.black(" flins ")));try{let f=rf();f.start("Loading skill directory...");let r=await Br();if(f.stop("Directory loaded"),r.length===0){o.warn("No skills found in directory"),H("Check back later for new skills");return}let y=await Mi({message:"Select a skill to view details:",options:r.map((D)=>({value:D.name,label:D.name,hint:`${D.author} - ${D.description.slice(0,50)}${D.description.length>50?"...":""}`})),placeholder:"Type to search..."});if(V(y)){N("Search cancelled");return}let i=Array.isArray(y)&&y.length>0?y[0]:y;if(!i){N("No selection made");return}let n=r.find((D)=>D.name===i);if(!n)return;M0(n);let b=await wf({message:"Install this skill?"});if(V(b)||!b){H("Install anytime with "+v.default.green(`flins add ${n.name}`));return}let{installCommand:S}=await Promise.resolve().then(() => (Gy(),Rn));await S(n.name,{})}catch(f){o.error(f instanceof Error?f.message:"Failed to fetch directory"),H(v.default.red("Couldn't load directory")),process.exit(1)}}function M0(f){if(o.step(v.default.bold("Skill Details")),o.message(`${v.default.cyan(f.name)}`),o.message(` ${v.default.dim(f.description)}`),f.tags.length>0)o.message(` ${v.default.bold("Tags:")} ${f.tags.map((r)=>v.default.green(r)).join(", ")}`);o.message(` ${v.default.bold("Author:")} ${v.default.yellow(f.author)}`),o.message(` ${v.default.bold("Source:")} ${v.default.dim(f.source)}`),o.message(` ${v.default.dim("Install with:")} ${v.default.green(`flins add ${f.name}`)}`)}p();var gf=O(h(),1);async function Bn(f={}){if(!f.silent)m(gf.default.bgCyan(gf.default.black(" flins ")));try{if(await xn(f),!f.silent)H(gf.default.green("State cleaned up"))}catch(r){if(o.error(r instanceof Error?r.message:"Unknown error occurred"),!f.silent)H(gf.default.red("Cleanup failed"));process.exit(1)}}var z0=fi.version;d.name("flins").description("Universal skill package manager for AI coding agents. Install, manage, and update custom skills across Claude Code, Cursor, Copilot, Gemini, Windsurf, Trae, Factory, Letta, OpenCode, Codex, and 8+ more AI development tools from a single unified interface.").version(z0).action(()=>{d.help()});d.command("add <source>",{isDefault:!1}).description("Install skills from git repository").alias("a").option("-g, --global","Install skill globally (user-level) instead of project-level").option("-a, --agent <agents...>","Specify target agents (auto-detects if omitted). Supports: claude-code, cursor, copilot, gemini, windsurf, trae, factory, letta, opencode, codex, antigravity, amp, kilo, roo, goose, qoder").option("-s, --skill <skills...>","Install specific skills by name (skip interactive selection)").option("-l, --list","List all available skills in the source repository without installing").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await Ey(f,r)});d.command("update [skills...]").description("Update installed skills to their latest versions from git sources").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await Yn(f,r)});d.command("outdated [skills...]").description("Check installation status, available updates, and orphaned skills").option("-v, --verbose","Show detailed information including installation paths").action(async(f,r)=>{await Zn(f,r)});d.command("remove [skills...]").description("Uninstall skills from your AI coding agents").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f,r)=>{await zn(f,r)});d.command("list").description("List all installed skills across your AI coding agents").action(async()=>{await Un()});d.command("search").description("Browse and discover available skills from the flins directory").action(async()=>{await jn()});d.command("clean").description("Remove orphaned skill entries from state tracking").option("-y, --yes","Auto-confirm all prompts (non-interactive mode)").option("-f, --force","Skip all confirmations").option("--silent","Suppress banner and non-error output").action(async(f)=>{await Bn(f)});d.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flins",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",
5
5
  "keywords": [
6
6
  "agent-skills",