flins 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/index.js +102 -0
- package/package.json +57 -0
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# flins cli
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
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,`
|
|
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}
|
|
7
|
+
- a short flag is a single dash and a single character
|
|
8
|
+
- either use a single dash and a single character (for a short flag)
|
|
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
|
+
- too many short flags`);if(n.test(S))throw Error(`${D}
|
|
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`
|
|
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
|
|
19
|
+
- if '${y}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
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}
|
|
22
|
+
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
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.
|
|
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
|
|
28
|
+
`,`
|
|
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(`
|
|
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(`
|
|
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(`
|
|
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
|
+
`).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
|
|
44
|
+
`,`
|
|
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}`}
|
|
59
|
+
${P.default.cyan(Jf)}
|
|
60
|
+
`}}}).prompt()},w,N=(f="",r)=>{(r?.output??process.stdout).write(`${P.default.gray(Jf)} ${P.default.red(f)}
|
|
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)}
|
|
64
|
+
${P.default.gray(Jf)} ${f}
|
|
65
|
+
|
|
66
|
+
`)},Uf=(f,r)=>f.split(`
|
|
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)}
|
|
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(`
|
|
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(`
|
|
81
|
+
${D}`)}
|
|
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)}
|
|
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(`
|
|
89
|
+
`)?f.split(`
|
|
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)}
|
|
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(`
|
|
96
|
+
${S}`)}
|
|
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(`
|
|
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();
|
package/package.json
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "flins",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"agent-skills",
|
|
7
|
+
"ai-agents",
|
|
8
|
+
"claude",
|
|
9
|
+
"cli",
|
|
10
|
+
"coding-assistant",
|
|
11
|
+
"copilot",
|
|
12
|
+
"cursor",
|
|
13
|
+
"github-copilot",
|
|
14
|
+
"skills"
|
|
15
|
+
],
|
|
16
|
+
"homepage": "https://github.com/flinstech/flins#readme",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/flinstech/flins/issues"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"author": "flins",
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/flinstech/flins.git"
|
|
25
|
+
},
|
|
26
|
+
"bin": {
|
|
27
|
+
"flins": "./dist/index.js"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist",
|
|
31
|
+
"README.md"
|
|
32
|
+
],
|
|
33
|
+
"type": "module",
|
|
34
|
+
"module": "src/index.ts",
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "bun build src/index.ts --outdir dist --target node --minify",
|
|
37
|
+
"dev": "bun src/index.ts",
|
|
38
|
+
"typecheck": "tsgo --noEmit",
|
|
39
|
+
"prepublishOnly": "bun run build",
|
|
40
|
+
"lint": "oxlint",
|
|
41
|
+
"lint:fix": "oxlint --fix",
|
|
42
|
+
"fmt": "oxfmt",
|
|
43
|
+
"fmt:check": "oxfmt --check"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@clack/prompts": "^1.0.0-alpha.9",
|
|
47
|
+
"commander": "^14.0.2",
|
|
48
|
+
"picocolors": "^1.1.1"
|
|
49
|
+
},
|
|
50
|
+
"devDependencies": {
|
|
51
|
+
"@types/bun": "latest",
|
|
52
|
+
"@typescript/native-preview": "^7.0.0-dev.20260116.1",
|
|
53
|
+
"bun-types": "^1.3.6",
|
|
54
|
+
"oxfmt": "^0.24.0",
|
|
55
|
+
"oxlint": "^1.39.0"
|
|
56
|
+
}
|
|
57
|
+
}
|