flins 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.js +90 -87
- package/package.json +8 -3
package/dist/index.js
CHANGED
|
@@ -1,106 +1,109 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as
|
|
3
|
-
`)}displayWidth(
|
|
4
|
-
`+" ".repeat(
|
|
5
|
-
${
|
|
6
|
-
`)}}function
|
|
2
|
+
import{createRequire as sg}from"node:module";var yg=Object.create;var{getPrototypeOf:_g,defineProperty:Gc,getOwnPropertyNames:Dg}=Object;var Lg=Object.prototype.hasOwnProperty;var cn=(n,l,c)=>{c=n!=null?yg(_g(n)):{};let i=l||!n||!n.__esModule?Gc(c,"default",{value:n,enumerable:!0}):c;for(let g of Dg(n))if(!Lg.call(i,g))Gc(i,g,{get:()=>n[g],enumerable:!0});return i};var E=(n,l)=>()=>(l||n((l={exports:{}}).exports,l),l.exports);var b=sg(import.meta.url);var mn=E((Ug)=>{class i0 extends Error{constructor(n,l,c){super(c);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=l,this.exitCode=n,this.nestedError=void 0}}class Sc extends i0{constructor(n){super(1,"commander.invalidArgument",n);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}Ug.CommanderError=i0;Ug.InvalidArgumentError=Sc});var sl=E((Gg)=>{var{InvalidArgumentError:Tg}=mn();class Jc{constructor(n,l){switch(this.description=l||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,n[0]){case"<":this.required=!0,this._name=n.slice(1,-1);break;case"[":this.required=!1,this._name=n.slice(1,-1);break;default:this.required=!0,this._name=n;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(n,l){if(l===this.defaultValue||!Array.isArray(l))return[n];return l.push(n),l}default(n,l){return this.defaultValue=n,this.defaultValueDescription=l,this}argParser(n){return this.parseArg=n,this}choices(n){return this.argChoices=n.slice(),this.parseArg=(l,c)=>{if(!this.argChoices.includes(l))throw new Tg(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(l,c);return l},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function Bg(n){let l=n.name()+(n.variadic===!0?"...":"");return n.required?"<"+l+">":"["+l+"]"}Gg.Argument=Jc;Gg.humanReadableArgName=Bg});var g0=E((Xg)=>{var{humanReadableArgName:jg}=sl();class jc{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(n){this.helpWidth=this.helpWidth??n.helpWidth??80}visibleCommands(n){let l=n.commands.filter((i)=>!i._hidden),c=n._getHelpCommand();if(c&&!c._hidden)l.push(c);if(this.sortSubcommands)l.sort((i,g)=>{return i.name().localeCompare(g.name())});return l}compareOptions(n,l){let c=(i)=>{return i.short?i.short.replace(/^-/,""):i.long.replace(/^--/,"")};return c(n).localeCompare(c(l))}visibleOptions(n){let l=n.options.filter((i)=>!i.hidden),c=n._getHelpOption();if(c&&!c.hidden){let i=c.short&&n._findOption(c.short),g=c.long&&n._findOption(c.long);if(!i&&!g)l.push(c);else if(c.long&&!g)l.push(n.createOption(c.long,c.description));else if(c.short&&!i)l.push(n.createOption(c.short,c.description))}if(this.sortOptions)l.sort(this.compareOptions);return l}visibleGlobalOptions(n){if(!this.showGlobalOptions)return[];let l=[];for(let c=n.parent;c;c=c.parent){let i=c.options.filter((g)=>!g.hidden);l.push(...i)}if(this.sortOptions)l.sort(this.compareOptions);return l}visibleArguments(n){if(n._argsDescription)n.registeredArguments.forEach((l)=>{l.description=l.description||n._argsDescription[l.name()]||""});if(n.registeredArguments.find((l)=>l.description))return n.registeredArguments;return[]}subcommandTerm(n){let l=n.registeredArguments.map((c)=>jg(c)).join(" ");return n._name+(n._aliases[0]?"|"+n._aliases[0]:"")+(n.options.length?" [options]":"")+(l?" "+l:"")}optionTerm(n){return n.flags}argumentTerm(n){return n.name()}longestSubcommandTermLength(n,l){return l.visibleCommands(n).reduce((c,i)=>{return Math.max(c,this.displayWidth(l.styleSubcommandTerm(l.subcommandTerm(i))))},0)}longestOptionTermLength(n,l){return l.visibleOptions(n).reduce((c,i)=>{return Math.max(c,this.displayWidth(l.styleOptionTerm(l.optionTerm(i))))},0)}longestGlobalOptionTermLength(n,l){return l.visibleGlobalOptions(n).reduce((c,i)=>{return Math.max(c,this.displayWidth(l.styleOptionTerm(l.optionTerm(i))))},0)}longestArgumentTermLength(n,l){return l.visibleArguments(n).reduce((c,i)=>{return Math.max(c,this.displayWidth(l.styleArgumentTerm(l.argumentTerm(i))))},0)}commandUsage(n){let l=n._name;if(n._aliases[0])l=l+"|"+n._aliases[0];let c="";for(let i=n.parent;i;i=i.parent)c=i.name()+" "+c;return c+l+" "+n.usage()}commandDescription(n){return n.description()}subcommandDescription(n){return n.summary()||n.description()}optionDescription(n){let l=[];if(n.argChoices)l.push(`choices: ${n.argChoices.map((c)=>JSON.stringify(c)).join(", ")}`);if(n.defaultValue!==void 0){if(n.required||n.optional||n.isBoolean()&&typeof n.defaultValue==="boolean")l.push(`default: ${n.defaultValueDescription||JSON.stringify(n.defaultValue)}`)}if(n.presetArg!==void 0&&n.optional)l.push(`preset: ${JSON.stringify(n.presetArg)}`);if(n.envVar!==void 0)l.push(`env: ${n.envVar}`);if(l.length>0){let c=`(${l.join(", ")})`;if(n.description)return`${n.description} ${c}`;return c}return n.description}argumentDescription(n){let l=[];if(n.argChoices)l.push(`choices: ${n.argChoices.map((c)=>JSON.stringify(c)).join(", ")}`);if(n.defaultValue!==void 0)l.push(`default: ${n.defaultValueDescription||JSON.stringify(n.defaultValue)}`);if(l.length>0){let c=`(${l.join(", ")})`;if(n.description)return`${n.description} ${c}`;return c}return n.description}formatItemList(n,l,c){if(l.length===0)return[];return[c.styleTitle(n),...l,""]}groupItems(n,l,c){let i=new Map;return n.forEach((g)=>{let k=c(g);if(!i.has(k))i.set(k,[])}),l.forEach((g)=>{let k=c(g);if(!i.has(k))i.set(k,[]);i.get(k).push(g)}),i}formatHelp(n,l){let c=l.padWidth(n,l),i=l.helpWidth??80;function g(h,y){return l.formatItem(h,c,y,l)}let k=[`${l.styleTitle("Usage:")} ${l.styleUsage(l.commandUsage(n))}`,""],w=l.commandDescription(n);if(w.length>0)k=k.concat([l.boxWrap(l.styleCommandDescription(w),i),""]);let I=l.visibleArguments(n).map((h)=>{return g(l.styleArgumentTerm(l.argumentTerm(h)),l.styleArgumentDescription(l.argumentDescription(h)))});if(k=k.concat(this.formatItemList("Arguments:",I,l)),this.groupItems(n.options,l.visibleOptions(n),(h)=>h.helpGroupHeading??"Options:").forEach((h,y)=>{let _=h.map((K)=>{return g(l.styleOptionTerm(l.optionTerm(K)),l.styleOptionDescription(l.optionDescription(K)))});k=k.concat(this.formatItemList(y,_,l))}),l.showGlobalOptions){let h=l.visibleGlobalOptions(n).map((y)=>{return g(l.styleOptionTerm(l.optionTerm(y)),l.styleOptionDescription(l.optionDescription(y)))});k=k.concat(this.formatItemList("Global Options:",h,l))}return this.groupItems(n.commands,l.visibleCommands(n),(h)=>h.helpGroup()||"Commands:").forEach((h,y)=>{let _=h.map((K)=>{return g(l.styleSubcommandTerm(l.subcommandTerm(K)),l.styleSubcommandDescription(l.subcommandDescription(K)))});k=k.concat(this.formatItemList(y,_,l))}),k.join(`
|
|
3
|
+
`)}displayWidth(n){return Xc(n).length}styleTitle(n){return n}styleUsage(n){return n.split(" ").map((l)=>{if(l==="[options]")return this.styleOptionText(l);if(l==="[command]")return this.styleSubcommandText(l);if(l[0]==="["||l[0]==="<")return this.styleArgumentText(l);return this.styleCommandText(l)}).join(" ")}styleCommandDescription(n){return this.styleDescriptionText(n)}styleOptionDescription(n){return this.styleDescriptionText(n)}styleSubcommandDescription(n){return this.styleDescriptionText(n)}styleArgumentDescription(n){return this.styleDescriptionText(n)}styleDescriptionText(n){return n}styleOptionTerm(n){return this.styleOptionText(n)}styleSubcommandTerm(n){return n.split(" ").map((l)=>{if(l==="[options]")return this.styleOptionText(l);if(l[0]==="["||l[0]==="<")return this.styleArgumentText(l);return this.styleSubcommandText(l)}).join(" ")}styleArgumentTerm(n){return this.styleArgumentText(n)}styleOptionText(n){return n}styleArgumentText(n){return n}styleSubcommandText(n){return n}styleCommandText(n){return n}padWidth(n,l){return Math.max(l.longestOptionTermLength(n,l),l.longestGlobalOptionTermLength(n,l),l.longestSubcommandTermLength(n,l),l.longestArgumentTermLength(n,l))}preformatted(n){return/\n[^\S\r\n]/.test(n)}formatItem(n,l,c,i){let k=" ".repeat(2);if(!c)return k+n;let w=n.padEnd(l+n.length-i.displayWidth(n)),I=2,$=(this.helpWidth??80)-l-I-2,h;if($<this.minWidthToWrap||i.preformatted(c))h=c;else h=i.boxWrap(c,$).replace(/\n/g,`
|
|
4
|
+
`+" ".repeat(l+I));return k+w+" ".repeat(I)+h.replace(/\n/g,`
|
|
5
|
+
${k}`)}boxWrap(n,l){if(l<this.minWidthToWrap)return n;let c=n.split(/\r\n|\n/),i=/[\s]*[^\s]+/g,g=[];return c.forEach((k)=>{let w=k.match(i);if(w===null){g.push("");return}let I=[w.shift()],x=this.displayWidth(I[0]);w.forEach(($)=>{let h=this.displayWidth($);if(x+h<=l){I.push($),x+=h;return}g.push(I.join(""));let y=$.trimStart();I=[y],x=this.displayWidth(y)}),g.push(I.join(""))}),g.join(`
|
|
6
|
+
`)}}function Xc(n){let l=/\x1b\[\d*(;\d*)*m/g;return n.replace(l,"")}Xg.Help=jc;Xg.stripColor=Xc});var k0=E((Wg)=>{var{InvalidArgumentError:Zg}=mn();class Yc{constructor(n,l){this.flags=n,this.description=l||"",this.required=n.includes("<"),this.optional=n.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(n),this.mandatory=!1;let c=Pg(n);if(this.short=c.shortFlag,this.long=c.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(n,l){return this.defaultValue=n,this.defaultValueDescription=l,this}preset(n){return this.presetArg=n,this}conflicts(n){return this.conflictsWith=this.conflictsWith.concat(n),this}implies(n){let l=n;if(typeof n==="string")l={[n]:!0};return this.implied=Object.assign(this.implied||{},l),this}env(n){return this.envVar=n,this}argParser(n){return this.parseArg=n,this}makeOptionMandatory(n=!0){return this.mandatory=!!n,this}hideHelp(n=!0){return this.hidden=!!n,this}_collectValue(n,l){if(l===this.defaultValue||!Array.isArray(l))return[n];return l.push(n),l}choices(n){return this.argChoices=n.slice(),this.parseArg=(l,c)=>{if(!this.argChoices.includes(l))throw new Zg(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(l,c);return l},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return Qc(this.name().replace(/^no-/,""));return Qc(this.name())}helpGroup(n){return this.helpGroupHeading=n,this}is(n){return this.short===n||this.long===n}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class Zc{constructor(n){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,n.forEach((l)=>{if(l.negate)this.negativeOptions.set(l.attributeName(),l);else this.positiveOptions.set(l.attributeName(),l)}),this.negativeOptions.forEach((l,c)=>{if(this.positiveOptions.has(c))this.dualOptions.add(c)})}valueFromOption(n,l){let c=l.attributeName();if(!this.dualOptions.has(c))return!0;let i=this.negativeOptions.get(c).presetArg,g=i!==void 0?i:!1;return l.negate===(g===n)}}function Qc(n){return n.split("-").reduce((l,c)=>{return l+c[0].toUpperCase()+c.slice(1)})}function Pg(n){let l,c,i=/^-[^-]$/,g=/^--[^-]/,k=n.split(/[ |,]+/).concat("guard");if(i.test(k[0]))l=k.shift();if(g.test(k[0]))c=k.shift();if(!l&&i.test(k[0]))l=k.shift();if(!l&&g.test(k[0]))l=c,c=k.shift();if(k[0].startsWith("-")){let w=k[0],I=`option creation failed due to '${w}' in option flags '${n}'`;if(/^-[^-][^-]/.test(w))throw Error(`${I}
|
|
7
7
|
- a short flag is a single dash and a single character
|
|
8
8
|
- either use a single dash and a single character (for a short flag)
|
|
9
|
-
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(
|
|
10
|
-
- too many short flags`);if(
|
|
11
|
-
- too many long flags`);throw Error(`${
|
|
12
|
-
- unrecognised flag format`)}if(
|
|
13
|
-
(Did you mean one of ${
|
|
14
|
-
(Did you mean ${
|
|
15
|
-
- specify the name in Command constructor or using .name()`);if(
|
|
16
|
-
Expecting one of '${
|
|
17
|
-
- already used by option '${
|
|
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(l,
|
|
19
|
-
- if '${
|
|
9
|
+
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if(i.test(w))throw Error(`${I}
|
|
10
|
+
- too many short flags`);if(g.test(w))throw Error(`${I}
|
|
11
|
+
- too many long flags`);throw Error(`${I}
|
|
12
|
+
- unrecognised flag format`)}if(l===void 0&&c===void 0)throw Error(`option creation failed due to no flags found in '${n}'.`);return{shortFlag:l,longFlag:c}}Wg.Option=Yc;Wg.DualOptions=Zc});var Pc=E((Ng)=>{function Mg(n,l){if(Math.abs(n.length-l.length)>3)return Math.max(n.length,l.length);let c=[];for(let i=0;i<=n.length;i++)c[i]=[i];for(let i=0;i<=l.length;i++)c[0][i]=i;for(let i=1;i<=l.length;i++)for(let g=1;g<=n.length;g++){let k=1;if(n[g-1]===l[i-1])k=0;else k=1;if(c[g][i]=Math.min(c[g-1][i]+1,c[g][i-1]+1,c[g-1][i-1]+k),g>1&&i>1&&n[g-1]===l[i-2]&&n[g-2]===l[i-1])c[g][i]=Math.min(c[g][i],c[g-2][i-2]+1)}return c[n.length][l.length]}function Vg(n,l){if(!l||l.length===0)return"";l=Array.from(new Set(l));let c=n.startsWith("--");if(c)n=n.slice(2),l=l.map((w)=>w.slice(2));let i=[],g=3,k=0.4;if(l.forEach((w)=>{if(w.length<=1)return;let I=Mg(n,w),x=Math.max(n.length,w.length);if((x-I)/x>k){if(I<g)g=I,i=[w];else if(I===g)i.push(w)}}),i.sort((w,I)=>w.localeCompare(I)),c)i=i.map((w)=>`--${w}`);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""}Ng.suggestSimilar=Vg});var Mc=E((vg)=>{var Rg=b("node:events").EventEmitter,w0=b("node:child_process"),_n=b("node:path"),Ul=b("node:fs"),V=b("node:process"),{Argument:zg,humanReadableArgName:Eg}=sl(),{CommanderError:I0}=mn(),{Help:bg,stripColor:Og}=g0(),{Option:Wc,DualOptions:fg}=k0(),{suggestSimilar:Hc}=Pc();class x0 extends Rg{constructor(n){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=n||"",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:(l)=>V.stdout.write(l),writeErr:(l)=>V.stderr.write(l),outputError:(l,c)=>c(l),getOutHelpWidth:()=>V.stdout.isTTY?V.stdout.columns:void 0,getErrHelpWidth:()=>V.stderr.isTTY?V.stderr.columns:void 0,getOutHasColors:()=>$0()??(V.stdout.isTTY&&V.stdout.hasColors?.()),getErrHasColors:()=>$0()??(V.stderr.isTTY&&V.stderr.hasColors?.()),stripColor:(l)=>Og(l)},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(n){return this._outputConfiguration=n._outputConfiguration,this._helpOption=n._helpOption,this._helpCommand=n._helpCommand,this._helpConfiguration=n._helpConfiguration,this._exitCallback=n._exitCallback,this._storeOptionsAsProperties=n._storeOptionsAsProperties,this._combineFlagAndOptionalValue=n._combineFlagAndOptionalValue,this._allowExcessArguments=n._allowExcessArguments,this._enablePositionalOptions=n._enablePositionalOptions,this._showHelpAfterError=n._showHelpAfterError,this._showSuggestionAfterError=n._showSuggestionAfterError,this}_getCommandAndAncestors(){let n=[];for(let l=this;l;l=l.parent)n.push(l);return n}command(n,l,c){let i=l,g=c;if(typeof i==="object"&&i!==null)g=i,i=null;g=g||{};let[,k,w]=n.match(/([^ ]+) *(.*)/),I=this.createCommand(k);if(i)I.description(i),I._executableHandler=!0;if(g.isDefault)this._defaultCommandName=I._name;if(I._hidden=!!(g.noHelp||g.hidden),I._executableFile=g.executableFile||null,w)I.arguments(w);if(this._registerCommand(I),I.parent=this,I.copyInheritedSettings(this),i)return this;return I}createCommand(n){return new x0(n)}createHelp(){return Object.assign(new bg,this.configureHelp())}configureHelp(n){if(n===void 0)return this._helpConfiguration;return this._helpConfiguration=n,this}configureOutput(n){if(n===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...n},this}showHelpAfterError(n=!0){if(typeof n!=="string")n=!!n;return this._showHelpAfterError=n,this}showSuggestionAfterError(n=!0){return this._showSuggestionAfterError=!!n,this}addCommand(n,l){if(!n._name)throw Error(`Command passed to .addCommand() must have a name
|
|
15
|
+
- specify the name in Command constructor or using .name()`);if(l=l||{},l.isDefault)this._defaultCommandName=n._name;if(l.noHelp||l.hidden)n._hidden=!0;return this._registerCommand(n),n.parent=this,n._checkForBrokenPassThrough(),this}createArgument(n,l){return new zg(n,l)}argument(n,l,c,i){let g=this.createArgument(n,l);if(typeof c==="function")g.default(i).argParser(c);else g.default(c);return this.addArgument(g),this}arguments(n){return n.trim().split(/ +/).forEach((l)=>{this.argument(l)}),this}addArgument(n){let l=this.registeredArguments.slice(-1)[0];if(l?.variadic)throw Error(`only the last argument can be variadic '${l.name()}'`);if(n.required&&n.defaultValue!==void 0&&n.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${n.name()}'`);return this.registeredArguments.push(n),this}helpCommand(n,l){if(typeof n==="boolean"){if(this._addImplicitHelpCommand=n,n&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let c=n??"help [command]",[,i,g]=c.match(/([^ ]+) *(.*)/),k=l??"display help for command",w=this.createCommand(i);if(w.helpOption(!1),g)w.arguments(g);if(k)w.description(k);if(this._addImplicitHelpCommand=!0,this._helpCommand=w,n||l)this._initCommandGroup(w);return this}addHelpCommand(n,l){if(typeof n!=="object")return this.helpCommand(n,l),this;return this._addImplicitHelpCommand=!0,this._helpCommand=n,this._initCommandGroup(n),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(n,l){let c=["preSubcommand","preAction","postAction"];if(!c.includes(n))throw Error(`Unexpected value for event passed to hook : '${n}'.
|
|
16
|
+
Expecting one of '${c.join("', '")}'`);if(this._lifeCycleHooks[n])this._lifeCycleHooks[n].push(l);else this._lifeCycleHooks[n]=[l];return this}exitOverride(n){if(n)this._exitCallback=n;else this._exitCallback=(l)=>{if(l.code!=="commander.executeSubCommandAsync")throw l};return this}_exit(n,l,c){if(this._exitCallback)this._exitCallback(new I0(n,l,c));V.exit(n)}action(n){let l=(c)=>{let i=this.registeredArguments.length,g=c.slice(0,i);if(this._storeOptionsAsProperties)g[i]=this;else g[i]=this.opts();return g.push(this),n.apply(this,g)};return this._actionHandler=l,this}createOption(n,l){return new Wc(n,l)}_callParseArg(n,l,c,i){try{return n.parseArg(l,c)}catch(g){if(g.code==="commander.invalidArgument"){let k=`${i} ${g.message}`;this.error(k,{exitCode:g.exitCode,code:g.code})}throw g}}_registerOption(n){let l=n.short&&this._findOption(n.short)||n.long&&this._findOption(n.long);if(l){let c=n.long&&this._findOption(n.long)?n.long:n.short;throw Error(`Cannot add option '${n.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${c}'
|
|
17
|
+
- already used by option '${l.flags}'`)}this._initOptionGroup(n),this.options.push(n)}_registerCommand(n){let l=(i)=>{return[i.name()].concat(i.aliases())},c=l(n).find((i)=>this._findCommand(i));if(c){let i=l(this._findCommand(c)).join("|"),g=l(n).join("|");throw Error(`cannot add command '${g}' as already have command '${i}'`)}this._initCommandGroup(n),this.commands.push(n)}addOption(n){this._registerOption(n);let l=n.name(),c=n.attributeName();if(n.negate){let g=n.long.replace(/^--no-/,"--");if(!this._findOption(g))this.setOptionValueWithSource(c,n.defaultValue===void 0?!0:n.defaultValue,"default")}else if(n.defaultValue!==void 0)this.setOptionValueWithSource(c,n.defaultValue,"default");let i=(g,k,w)=>{if(g==null&&n.presetArg!==void 0)g=n.presetArg;let I=this.getOptionValue(c);if(g!==null&&n.parseArg)g=this._callParseArg(n,g,I,k);else if(g!==null&&n.variadic)g=n._collectValue(g,I);if(g==null)if(n.negate)g=!1;else if(n.isBoolean()||n.optional)g=!0;else g="";this.setOptionValueWithSource(c,g,w)};if(this.on("option:"+l,(g)=>{let k=`error: option '${n.flags}' argument '${g}' is invalid.`;i(g,k,"cli")}),n.envVar)this.on("optionEnv:"+l,(g)=>{let k=`error: option '${n.flags}' value '${g}' from env '${n.envVar}' is invalid.`;i(g,k,"env")});return this}_optionEx(n,l,c,i,g){if(typeof l==="object"&&l instanceof Wc)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let k=this.createOption(l,c);if(k.makeOptionMandatory(!!n.mandatory),typeof i==="function")k.default(g).argParser(i);else if(i instanceof RegExp){let w=i;i=(I,x)=>{let $=w.exec(I);return $?$[0]:x},k.default(g).argParser(i)}else k.default(i);return this.addOption(k)}option(n,l,c,i){return this._optionEx({},n,l,c,i)}requiredOption(n,l,c,i){return this._optionEx({mandatory:!0},n,l,c,i)}combineFlagAndOptionalValue(n=!0){return this._combineFlagAndOptionalValue=!!n,this}allowUnknownOption(n=!0){return this._allowUnknownOption=!!n,this}allowExcessArguments(n=!0){return this._allowExcessArguments=!!n,this}enablePositionalOptions(n=!0){return this._enablePositionalOptions=!!n,this}passThroughOptions(n=!0){return this._passThroughOptions=!!n,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(n=!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=!!n,this}getOptionValue(n){if(this._storeOptionsAsProperties)return this[n];return this._optionValues[n]}setOptionValue(n,l){return this.setOptionValueWithSource(n,l,void 0)}setOptionValueWithSource(n,l,c){if(this._storeOptionsAsProperties)this[n]=l;else this._optionValues[n]=l;return this._optionValueSources[n]=c,this}getOptionValueSource(n){return this._optionValueSources[n]}getOptionValueSourceWithGlobals(n){let l;return this._getCommandAndAncestors().forEach((c)=>{if(c.getOptionValueSource(n)!==void 0)l=c.getOptionValueSource(n)}),l}_prepareUserArgs(n,l){if(n!==void 0&&!Array.isArray(n))throw Error("first parameter to parse must be array or undefined");if(l=l||{},n===void 0&&l.from===void 0){if(V.versions?.electron)l.from="electron";let i=V.execArgv??[];if(i.includes("-e")||i.includes("--eval")||i.includes("-p")||i.includes("--print"))l.from="eval"}if(n===void 0)n=V.argv;this.rawArgs=n.slice();let c;switch(l.from){case void 0:case"node":this._scriptPath=n[1],c=n.slice(2);break;case"electron":if(V.defaultApp)this._scriptPath=n[1],c=n.slice(2);else c=n.slice(1);break;case"user":c=n.slice(0);break;case"eval":c=n.slice(1);break;default:throw Error(`unexpected parse option { from: '${l.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",c}parse(n,l){this._prepareForParse();let c=this._prepareUserArgs(n,l);return this._parseCommand([],c),this}async parseAsync(n,l){this._prepareForParse();let c=this._prepareUserArgs(n,l);return await this._parseCommand([],c),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(n,l,c){if(Ul.existsSync(n))return;let i=l?`searched for local subcommand relative to directory '${l}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",g=`'${n}' does not exist
|
|
19
|
+
- if '${c}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
20
20
|
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
21
|
-
- ${
|
|
21
|
+
- ${i}`;throw Error(g)}_executeSubCommand(n,l){l=l.slice();let c=!1,i=[".js",".ts",".tsx",".mjs",".cjs"];function g($,h){let y=_n.resolve($,h);if(Ul.existsSync(y))return y;if(i.includes(_n.extname(h)))return;let _=i.find((K)=>Ul.existsSync(`${y}${K}`));if(_)return`${y}${_}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let k=n._executableFile||`${this._name}-${n._name}`,w=this._executableDir||"";if(this._scriptPath){let $;try{$=Ul.realpathSync(this._scriptPath)}catch{$=this._scriptPath}w=_n.resolve(_n.dirname($),w)}if(w){let $=g(w,k);if(!$&&!n._executableFile&&this._scriptPath){let h=_n.basename(this._scriptPath,_n.extname(this._scriptPath));if(h!==this._name)$=g(w,`${h}-${n._name}`)}k=$||k}c=i.includes(_n.extname(k));let I;if(V.platform!=="win32")if(c)l.unshift(k),l=Cc(V.execArgv).concat(l),I=w0.spawn(V.argv[0],l,{stdio:"inherit"});else I=w0.spawn(k,l,{stdio:"inherit"});else this._checkForMissingExecutable(k,w,n._name),l.unshift(k),l=Cc(V.execArgv).concat(l),I=w0.spawn(V.execPath,l,{stdio:"inherit"});if(!I.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((h)=>{V.on(h,()=>{if(I.killed===!1&&I.exitCode===null)I.kill(h)})});let x=this._exitCallback;I.on("close",($)=>{if($=$??1,!x)V.exit($);else x(new I0($,"commander.executeSubCommandAsync","(close)"))}),I.on("error",($)=>{if($.code==="ENOENT")this._checkForMissingExecutable(k,w,n._name);else if($.code==="EACCES")throw Error(`'${k}' not executable`);if(!x)V.exit(1);else{let h=new I0(1,"commander.executeSubCommandAsync","(error)");h.nestedError=$,x(h)}}),this.runningCommand=I}_dispatchSubcommand(n,l,c){let i=this._findCommand(n);if(!i)this.help({error:!0});i._prepareForParse();let g;return g=this._chainOrCallSubCommandHook(g,i,"preSubcommand"),g=this._chainOrCall(g,()=>{if(i._executableHandler)this._executeSubCommand(i,l.concat(c));else return i._parseCommand(l,c)}),g}_dispatchHelpCommand(n){if(!n)this.help();let l=this._findCommand(n);if(l&&!l._executableHandler)l.help();return this._dispatchSubcommand(n,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((n,l)=>{if(n.required&&this.args[l]==null)this.missingArgument(n.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 n=(c,i,g)=>{let k=i;if(i!==null&&c.parseArg){let w=`error: command-argument value '${i}' is invalid for argument '${c.name()}'.`;k=this._callParseArg(c,i,g,w)}return k};this._checkNumberOfArguments();let l=[];this.registeredArguments.forEach((c,i)=>{let g=c.defaultValue;if(c.variadic){if(i<this.args.length){if(g=this.args.slice(i),c.parseArg)g=g.reduce((k,w)=>{return n(c,w,k)},c.defaultValue)}else if(g===void 0)g=[]}else if(i<this.args.length){if(g=this.args[i],c.parseArg)g=n(c,g,c.defaultValue)}l[i]=g}),this.processedArgs=l}_chainOrCall(n,l){if(n?.then&&typeof n.then==="function")return n.then(()=>l());return l()}_chainOrCallHooks(n,l){let c=n,i=[];if(this._getCommandAndAncestors().reverse().filter((g)=>g._lifeCycleHooks[l]!==void 0).forEach((g)=>{g._lifeCycleHooks[l].forEach((k)=>{i.push({hookedCommand:g,callback:k})})}),l==="postAction")i.reverse();return i.forEach((g)=>{c=this._chainOrCall(c,()=>{return g.callback(g.hookedCommand,this)})}),c}_chainOrCallSubCommandHook(n,l,c){let i=n;if(this._lifeCycleHooks[c]!==void 0)this._lifeCycleHooks[c].forEach((g)=>{i=this._chainOrCall(i,()=>{return g(this,l)})});return i}_parseCommand(n,l){let c=this.parseOptions(l);if(this._parseOptionsEnv(),this._parseOptionsImplied(),n=n.concat(c.operands),l=c.unknown,this.args=n.concat(l),n&&this._findCommand(n[0]))return this._dispatchSubcommand(n[0],n.slice(1),l);if(this._getHelpCommand()&&n[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(n[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(l),this._dispatchSubcommand(this._defaultCommandName,n,l);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(c.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=()=>{if(c.unknown.length>0)this.unknownOption(c.unknown[0])},g=`command:${this.name()}`;if(this._actionHandler){i(),this._processArguments();let k;if(k=this._chainOrCallHooks(k,"preAction"),k=this._chainOrCall(k,()=>this._actionHandler(this.processedArgs)),this.parent)k=this._chainOrCall(k,()=>{this.parent.emit(g,n,l)});return k=this._chainOrCallHooks(k,"postAction"),k}if(this.parent?.listenerCount(g))i(),this._processArguments(),this.parent.emit(g,n,l);else if(n.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",n,l);if(this.listenerCount("command:*"))this.emit("command:*",n,l);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(n){if(!n)return;return this.commands.find((l)=>l._name===n||l._aliases.includes(n))}_findOption(n){return this.options.find((l)=>l.is(n))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((n)=>{n.options.forEach((l)=>{if(l.mandatory&&n.getOptionValue(l.attributeName())===void 0)n.missingMandatoryOptionValue(l)})})}_checkForConflictingLocalOptions(){let n=this.options.filter((c)=>{let i=c.attributeName();if(this.getOptionValue(i)===void 0)return!1;return this.getOptionValueSource(i)!=="default"});n.filter((c)=>c.conflictsWith.length>0).forEach((c)=>{let i=n.find((g)=>c.conflictsWith.includes(g.attributeName()));if(i)this._conflictingOption(c,i)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((n)=>{n._checkForConflictingLocalOptions()})}parseOptions(n){let l=[],c=[],i=l;function g($){return $.length>1&&$[0]==="-"}let k=($)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test($))return!1;return!this._getCommandAndAncestors().some((h)=>h.options.map((y)=>y.short).some((y)=>/^-\d$/.test(y)))},w=null,I=null,x=0;while(x<n.length||I){let $=I??n[x++];if(I=null,$==="--"){if(i===c)i.push($);i.push(...n.slice(x));break}if(w&&(!g($)||k($))){this.emit(`option:${w.name()}`,$);continue}if(w=null,g($)){let h=this._findOption($);if(h){if(h.required){let y=n[x++];if(y===void 0)this.optionMissingArgument(h);this.emit(`option:${h.name()}`,y)}else if(h.optional){let y=null;if(x<n.length&&(!g(n[x])||k(n[x])))y=n[x++];this.emit(`option:${h.name()}`,y)}else this.emit(`option:${h.name()}`);w=h.variadic?h:null;continue}}if($.length>2&&$[0]==="-"&&$[1]!=="-"){let h=this._findOption(`-${$[1]}`);if(h){if(h.required||h.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${h.name()}`,$.slice(2));else this.emit(`option:${h.name()}`),I=`-${$.slice(2)}`;continue}}if(/^--[^=]+=/.test($)){let h=$.indexOf("="),y=this._findOption($.slice(0,h));if(y&&(y.required||y.optional)){this.emit(`option:${y.name()}`,$.slice(h+1));continue}}if(i===l&&g($)&&!(this.commands.length===0&&k($)))i=c;if((this._enablePositionalOptions||this._passThroughOptions)&&l.length===0&&c.length===0){if(this._findCommand($)){l.push($),c.push(...n.slice(x));break}else if(this._getHelpCommand()&&$===this._getHelpCommand().name()){l.push($,...n.slice(x));break}else if(this._defaultCommandName){c.push($,...n.slice(x));break}}if(this._passThroughOptions){i.push($,...n.slice(x));break}i.push($)}return{operands:l,unknown:c}}opts(){if(this._storeOptionsAsProperties){let n={},l=this.options.length;for(let c=0;c<l;c++){let i=this.options[c].attributeName();n[i]=i===this._versionOptionName?this._version:this[i]}return n}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((n,l)=>Object.assign(n,l.opts()),{})}error(n,l){if(this._outputConfiguration.outputError(`${n}
|
|
22
22
|
`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
23
23
|
`);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
|
|
24
|
-
`),this.outputHelp({error:!0});let
|
|
25
|
-
`),this._exit(0,"commander.version",
|
|
26
|
-
Expecting one of '${
|
|
27
|
-
`)}),this}_outputHelpIfRequested(l){let n=this._getHelpOption();if(n&&l.find((r)=>n.is(r)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function xs(l){return l.map((n)=>{if(!n.startsWith("--inspect"))return n;let s,r="127.0.0.1",i="9229",o;if((o=n.match(/^(--inspect(-brk)?)$/))!==null)s=o[1];else if((o=n.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(s=o[1],/^\d+$/.test(o[3]))i=o[3];else r=o[3];else if((o=n.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)s=o[1],r=o[3],i=o[4];if(s&&i!=="0")return`${s}=${r}:${parseInt(i)+1}`;return n})}function Ln(){if(q.env.NO_COLOR||q.env.FORCE_COLOR==="0"||q.env.FORCE_COLOR==="false")return!1;if(q.env.FORCE_COLOR||q.env.CLICOLOR_FORCE!==void 0)return!0;return}Ni.Command=Bn;Ni.useColor=Ln});var qs=al((zi)=>{var{Argument:Ns}=Pl(),{Command:Rn}=js(),{CommanderError:qi,InvalidArgumentError:Cs}=Ul(),{Help:hi}=wn(),{Option:Gs}=dn();zi.program=new Rn;zi.createCommand=(l)=>new Rn(l);zi.createOption=(l,n)=>new Gs(l,n);zi.createArgument=(l,n)=>new Ns(l,n);zi.Command=Rn;zi.Option=Gs;zi.Argument=Ns;zi.Help=hi;zi.CommanderError=qi;zi.InvalidArgumentError=Cs;zi.InvalidOptionArgumentError=Cs});var kl=al(($a,Cn)=>{var vl=process||{},Xs=vl.argv||[],Fl=vl.env||{},Fi=!(!!Fl.NO_COLOR||Xs.includes("--no-color"))&&(!!Fl.FORCE_COLOR||Xs.includes("--color")||vl.platform==="win32"||(vl.stdout||{}).isTTY&&Fl.TERM!=="dumb"||!!Fl.CI),vi=(l,n,s=l)=>(r)=>{let i=""+r,o=i.indexOf(n,l.length);return~o?l+pi(i,n,s,o)+n:l+i+n},pi=(l,n,s,r)=>{let i="",o=0;do i+=l.substring(o,r)+s,o=r+n.length,r=l.indexOf(n,o);while(~r);return i+l.substring(o)},Ys=(l=Fi)=>{let n=l?vi:()=>String;return{isColorSupported:l,reset:n("\x1B[0m","\x1B[0m"),bold:n("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:n("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:n("\x1B[3m","\x1B[23m"),underline:n("\x1B[4m","\x1B[24m"),inverse:n("\x1B[7m","\x1B[27m"),hidden:n("\x1B[8m","\x1B[28m"),strikethrough:n("\x1B[9m","\x1B[29m"),black:n("\x1B[30m","\x1B[39m"),red:n("\x1B[31m","\x1B[39m"),green:n("\x1B[32m","\x1B[39m"),yellow:n("\x1B[33m","\x1B[39m"),blue:n("\x1B[34m","\x1B[39m"),magenta:n("\x1B[35m","\x1B[39m"),cyan:n("\x1B[36m","\x1B[39m"),white:n("\x1B[37m","\x1B[39m"),gray:n("\x1B[90m","\x1B[39m"),bgBlack:n("\x1B[40m","\x1B[49m"),bgRed:n("\x1B[41m","\x1B[49m"),bgGreen:n("\x1B[42m","\x1B[49m"),bgYellow:n("\x1B[43m","\x1B[49m"),bgBlue:n("\x1B[44m","\x1B[49m"),bgMagenta:n("\x1B[45m","\x1B[49m"),bgCyan:n("\x1B[46m","\x1B[49m"),bgWhite:n("\x1B[47m","\x1B[49m"),blackBright:n("\x1B[90m","\x1B[39m"),redBright:n("\x1B[91m","\x1B[39m"),greenBright:n("\x1B[92m","\x1B[39m"),yellowBright:n("\x1B[93m","\x1B[39m"),blueBright:n("\x1B[94m","\x1B[39m"),magentaBright:n("\x1B[95m","\x1B[39m"),cyanBright:n("\x1B[96m","\x1B[39m"),whiteBright:n("\x1B[97m","\x1B[39m"),bgBlackBright:n("\x1B[100m","\x1B[49m"),bgRedBright:n("\x1B[101m","\x1B[49m"),bgGreenBright:n("\x1B[102m","\x1B[49m"),bgYellowBright:n("\x1B[103m","\x1B[49m"),bgBlueBright:n("\x1B[104m","\x1B[49m"),bgMagentaBright:n("\x1B[105m","\x1B[49m"),bgCyanBright:n("\x1B[106m","\x1B[49m"),bgWhiteBright:n("\x1B[107m","\x1B[49m")}};Cn.exports=Ys();Cn.exports.createColors=Ys});var qn=al((Ia,Zs)=>{var Gn={to(l,n){if(!n)return`\x1B[${l+1}G`;return`\x1B[${n+1};${l+1}H`},move(l,n){let s="";if(l<0)s+=`\x1B[${-l}D`;else if(l>0)s+=`\x1B[${l}C`;if(n<0)s+=`\x1B[${-n}A`;else if(n>0)s+=`\x1B[${n}B`;return s},up:(l=1)=>`\x1B[${l}A`,down:(l=1)=>`\x1B[${l}B`,forward:(l=1)=>`\x1B[${l}C`,backward:(l=1)=>`\x1B[${l}D`,nextLine:(l=1)=>"\x1B[E".repeat(l),prevLine:(l=1)=>"\x1B[F".repeat(l),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},ei={up:(l=1)=>"\x1B[S".repeat(l),down:(l=1)=>"\x1B[T".repeat(l)},lo={screen:"\x1B[2J",up:(l=1)=>"\x1B[1J".repeat(l),down:(l=1)=>"\x1B[J".repeat(l),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(l){let n="";for(let s=0;s<l;s++)n+=this.line+(s<l-1?Gn.up():"");if(l)n+=Gn.left;return n}};Zs.exports={cursor:Gn,scroll:ei,erase:lo,beep:"\x07"}});var hs=p(qs(),1),{program:e,createCommand:la,createArgument:na,createOption:sa,CommanderError:ra,InvalidArgumentError:ia,InvalidOptionArgumentError:oa,Command:ca,Argument:aa,Option:fa,Help:ka}=hs.default;var El={name:"flins",version:"0.3.0",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/powroom/flins#readme",bugs:{url:"https://github.com/powroom/flins/issues"},license:"MIT",author:"flins",repository:{type:"git",url:"git+https://github.com/powroom/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":"catalog:","bun-types":"^1.3.6",oxfmt:"^0.24.0",oxlint:"^1.39.0"}};import{existsSync as R}from"node:fs";import{homedir as Ei,platform as Vi}from"node:os";import{join as u}from"node:path";var I=Ei(),V=process.env.XDG_CONFIG_HOME?.trim()||u(I,".config"),ll=".agents/skills";function Oi(l){return l}var U=Oi({amp:{label:"Amp",skillsDir:ll,globalSkillsDir:u(V,"agents/skills"),detectInstalled:()=>R(u(V,"amp"))||R(u(I,".amp"))},antigravity:{label:"Antigravity",skillsDir:".agent/skills",globalSkillsDir:u(I,".gemini/antigravity/skills"),detectInstalled:()=>R(u(I,".gemini/antigravity"))},augment:{label:"Augment",skillsDir:".augment/skills",globalSkillsDir:u(I,".augment/skills"),detectInstalled:()=>R(u(I,".augment"))},"claude-code":{label:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:u(process.env.CLAUDE_CONFIG_DIR?.trim()||u(I,".claude"),"skills"),commandsDir:".claude/commands",globalCommandsDir:u(process.env.CLAUDE_CONFIG_DIR?.trim()||u(I,".claude"),"commands"),detectInstalled:()=>R(process.env.CLAUDE_CONFIG_DIR?.trim()||u(I,".claude"))},openclaw:{label:"OpenClaw",skillsDir:"skills",globalSkillsDir:u(I,".openclaw/skills"),detectInstalled:()=>R(u(I,".openclaw"))},cline:{label:"Cline",skillsDir:ll,globalSkillsDir:u(I,".agents/skills"),detectInstalled:()=>R(u(I,".cline"))},codebuddy:{label:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:u(I,".codebuddy/skills"),detectInstalled:()=>R(u(process.cwd(),".codebuddy"))||R(u(I,".codebuddy"))},codex:{label:"Codex",skillsDir:ll,globalSkillsDir:u(process.env.CODEX_HOME?.trim()||u(I,".codex"),"skills"),detectInstalled:()=>R(process.env.CODEX_HOME?.trim()||u(I,".codex"))||R("/etc/codex")},"command-code":{label:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:u(I,".commandcode/skills"),detectInstalled:()=>R(u(I,".commandcode"))},continue:{label:"Continue",skillsDir:".continue/skills",globalSkillsDir:u(I,".continue/skills"),detectInstalled:()=>R(u(process.cwd(),".continue"))||R(u(I,".continue"))},cortex:{label:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:u(I,".snowflake/cortex/skills"),detectInstalled:()=>R(u(I,".snowflake/cortex"))},crush:{label:"Crush",skillsDir:".crush/skills",globalSkillsDir:u(V,"crush/skills"),detectInstalled:()=>R(u(V,"crush"))},cursor:{label:"Cursor",skillsDir:ll,globalSkillsDir:u(I,".cursor/skills"),detectInstalled:()=>R(u(I,".cursor"))},droid:{label:"Droid",skillsDir:".factory/skills",globalSkillsDir:u(I,".factory/skills"),commandsDir:".factory/commands",globalCommandsDir:u(I,".factory/commands"),detectInstalled:()=>R(u(I,".factory"))},"gemini-cli":{label:"Gemini CLI",skillsDir:ll,globalSkillsDir:u(I,".gemini/skills"),detectInstalled:()=>R(u(I,".gemini"))},"github-copilot":{label:"GitHub Copilot",skillsDir:ll,globalSkillsDir:u(I,".copilot/skills"),detectInstalled:()=>R(u(I,".copilot"))},goose:{label:"Goose",skillsDir:".goose/skills",globalSkillsDir:u(V,"goose/skills"),detectInstalled:()=>R(u(V,"goose"))||R(u(I,".goose"))},junie:{label:"Junie",skillsDir:".junie/skills",globalSkillsDir:u(I,".junie/skills"),detectInstalled:()=>R(u(I,".junie"))},"iflow-cli":{label:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:u(I,".iflow/skills"),detectInstalled:()=>R(u(I,".iflow"))},kilo:{label:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:u(I,".kilocode/skills"),detectInstalled:()=>R(u(I,".kilocode"))},"kimi-cli":{label:"Kimi Code CLI",skillsDir:ll,globalSkillsDir:u(V,"agents/skills"),detectInstalled:()=>R(u(I,".kimi"))},"kiro-cli":{label:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:u(I,".kiro/skills"),detectInstalled:()=>R(u(I,".kiro"))},kode:{label:"Kode",skillsDir:".kode/skills",globalSkillsDir:u(I,".kode/skills"),detectInstalled:()=>R(u(I,".kode"))},letta:{label:"Letta",skillsDir:".skills",globalSkillsDir:u(I,".letta/skills"),detectInstalled:()=>R(u(I,".letta"))},mcpjam:{label:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:u(I,".mcpjam/skills"),detectInstalled:()=>R(u(I,".mcpjam"))},"mistral-vibe":{label:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:u(I,".vibe/skills"),detectInstalled:()=>R(u(I,".vibe"))},mux:{label:"Mux",skillsDir:".mux/skills",globalSkillsDir:u(I,".mux/skills"),detectInstalled:()=>R(u(I,".mux"))},opencode:{label:"OpenCode",skillsDir:ll,globalSkillsDir:u(V,"opencode/skills"),commandsDir:".opencode/commands",globalCommandsDir:u(V,"opencode/commands"),detectInstalled:()=>R(u(V,"opencode"))},openhands:{label:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:u(I,".openhands/skills"),detectInstalled:()=>R(u(I,".openhands"))},pi:{label:"Pi",skillsDir:".pi/skills",globalSkillsDir:u(I,".pi/agent/skills"),detectInstalled:()=>R(u(I,".pi/agent"))},qoder:{label:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:u(I,".qoder/skills"),detectInstalled:()=>R(u(I,".qoder"))},"qwen-code":{label:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:u(I,".qwen/skills"),detectInstalled:()=>R(u(I,".qwen"))},replit:{label:"Replit",skillsDir:ll,globalSkillsDir:u(V,"agents/skills"),detectInstalled:()=>R(u(process.cwd(),".replit"))},roo:{label:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:u(I,".roo/skills"),detectInstalled:()=>R(u(I,".roo"))},trae:{label:"Trae",skillsDir:".trae/skills",globalSkillsDir:u(I,".trae/skills"),detectInstalled:()=>R(u(I,".trae"))},"trae-cn":{label:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:u(I,".trae-cn/skills"),detectInstalled:()=>R(u(I,".trae-cn"))},windsurf:{label:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:u(I,".codeium/windsurf/skills"),detectInstalled:()=>R(u(I,".codeium/windsurf"))||R(u(I,".windsurf"))},zencoder:{label:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:u(I,".zencoder/skills"),detectInstalled:()=>R(u(I,".zencoder"))},neovate:{label:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:u(I,".neovate/skills"),detectInstalled:()=>R(u(I,".neovate"))},pochi:{label:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:u(I,".pochi/skills"),detectInstalled:()=>R(u(I,".pochi"))},adal:{label:"AdaL",skillsDir:".adal/skills",globalSkillsDir:u(I,".adal/skills"),detectInstalled:()=>R(u(I,".adal"))},universal:{label:"Universal",skillsDir:ll,globalSkillsDir:u(V,"agents/skills"),detectInstalled:()=>!1}});function nl(){return Object.keys(U)}function zs(){return nl().filter((l)=>{let n=U[l];return Boolean(n.commandsDir)})}function Dl(){return nl().filter((l)=>U[l].skillsDir===ll)}function Vl(){let l=new Set(Dl());return nl().filter((n)=>!l.has(n))}function Js(){return`OpenCode, Claude Code, Codex, Cursor, and ${nl().length-4} more`}function Sl(l){return l.replace(I,"~")}function Un(l){let n=[],s=[],r=new Set;for(let i of l){let o=i.trim().toLowerCase();if(!(o in U)){s.push(i);continue}if(r.has(o))continue;r.add(o),n.push(o)}return{agents:n,invalid:s}}function Ol(l){let n=U[l];return Boolean(n.commandsDir)}function xn(){return nl().filter((l)=>U[l].detectInstalled())}function _s(l){if(l.startsWith("~"))return l.replace("~",I);if(Vi()==="win32"&&l.startsWith("%USERPROFILE%"))return l.replace("%USERPROFILE%",I);return l}function jn(l,n,s=process.cwd()){let r=n==="global"?U[l].globalSkillsDir:U[l].skillsDir;return n==="global"?_s(r):u(s,r)}function Nn(l,n,s=process.cwd()){let r=U[l],i=n==="global"?r.globalCommandsDir:r.commandsDir;if(!i)return null;return n==="global"?_s(i):u(s,i)}function Hs(l,n){let s=new Set(l),r=new Map;for(let i of nl()){let o=n==="global"?U[i].globalSkillsDir:U[i].skillsDir,c=r.get(o)??[];c.push(i),r.set(o,c)}return Array.from(r.entries()).filter(([,i])=>i.length>1&&i.some((o)=>s.has(o))).map(([i,o])=>`${Sl(i)} is shared by ${o.map((c)=>U[c].label).join(", ")}`)}var sn=p(kl(),1),Y=p(qn(),1);import{stdout as Xn,stdin as Ps}from"node:process";import*as gl from"node:readline";import no from"node:readline";import{ReadStream as As}from"node:tty";var so=(l)=>l===161||l===164||l===167||l===168||l===170||l===173||l===174||l>=176&&l<=180||l>=182&&l<=186||l>=188&&l<=191||l===198||l===208||l===215||l===216||l>=222&&l<=225||l===230||l>=232&&l<=234||l===236||l===237||l===240||l===242||l===243||l>=247&&l<=250||l===252||l===254||l===257||l===273||l===275||l===283||l===294||l===295||l===299||l>=305&&l<=307||l===312||l>=319&&l<=322||l===324||l>=328&&l<=331||l===333||l===338||l===339||l===358||l===359||l===363||l===462||l===464||l===466||l===468||l===470||l===472||l===474||l===476||l===593||l===609||l===708||l===711||l>=713&&l<=715||l===717||l===720||l>=728&&l<=731||l===733||l===735||l>=768&&l<=879||l>=913&&l<=929||l>=931&&l<=937||l>=945&&l<=961||l>=963&&l<=969||l===1025||l>=1040&&l<=1103||l===1105||l===8208||l>=8211&&l<=8214||l===8216||l===8217||l===8220||l===8221||l>=8224&&l<=8226||l>=8228&&l<=8231||l===8240||l===8242||l===8243||l===8245||l===8251||l===8254||l===8308||l===8319||l>=8321&&l<=8324||l===8364||l===8451||l===8453||l===8457||l===8467||l===8470||l===8481||l===8482||l===8486||l===8491||l===8531||l===8532||l>=8539&&l<=8542||l>=8544&&l<=8555||l>=8560&&l<=8569||l===8585||l>=8592&&l<=8601||l===8632||l===8633||l===8658||l===8660||l===8679||l===8704||l===8706||l===8707||l===8711||l===8712||l===8715||l===8719||l===8721||l===8725||l===8730||l>=8733&&l<=8736||l===8739||l===8741||l>=8743&&l<=8748||l===8750||l>=8756&&l<=8759||l===8764||l===8765||l===8776||l===8780||l===8786||l===8800||l===8801||l>=8804&&l<=8807||l===8810||l===8811||l===8814||l===8815||l===8834||l===8835||l===8838||l===8839||l===8853||l===8857||l===8869||l===8895||l===8978||l>=9312&&l<=9449||l>=9451&&l<=9547||l>=9552&&l<=9587||l>=9600&&l<=9615||l>=9618&&l<=9621||l===9632||l===9633||l>=9635&&l<=9641||l===9650||l===9651||l===9654||l===9655||l===9660||l===9661||l===9664||l===9665||l>=9670&&l<=9672||l===9675||l>=9678&&l<=9681||l>=9698&&l<=9701||l===9711||l===9733||l===9734||l===9737||l===9742||l===9743||l===9756||l===9758||l===9792||l===9794||l===9824||l===9825||l>=9827&&l<=9829||l>=9831&&l<=9834||l===9836||l===9837||l===9839||l===9886||l===9887||l===9919||l>=9926&&l<=9933||l>=9935&&l<=9939||l>=9941&&l<=9953||l===9955||l===9960||l===9961||l>=9963&&l<=9969||l===9972||l>=9974&&l<=9977||l===9979||l===9980||l===9982||l===9983||l===10045||l>=10102&&l<=10111||l>=11094&&l<=11097||l>=12872&&l<=12879||l>=57344&&l<=63743||l>=65024&&l<=65039||l===65533||l>=127232&&l<=127242||l>=127248&&l<=127277||l>=127280&&l<=127337||l>=127344&&l<=127373||l===127375||l===127376||l>=127387&&l<=127404||l>=917760&&l<=917999||l>=983040&&l<=1048573||l>=1048576&&l<=1114109,ro=(l)=>l===12288||l>=65281&&l<=65376||l>=65504&&l<=65510,io=(l)=>l>=4352&&l<=4447||l===8986||l===8987||l===9001||l===9002||l>=9193&&l<=9196||l===9200||l===9203||l===9725||l===9726||l===9748||l===9749||l>=9800&&l<=9811||l===9855||l===9875||l===9889||l===9898||l===9899||l===9917||l===9918||l===9924||l===9925||l===9934||l===9940||l===9962||l===9970||l===9971||l===9973||l===9978||l===9981||l===9989||l===9994||l===9995||l===10024||l===10060||l===10062||l>=10067&&l<=10069||l===10071||l>=10133&&l<=10135||l===10160||l===10175||l===11035||l===11036||l===11088||l===11093||l>=11904&&l<=11929||l>=11931&&l<=12019||l>=12032&&l<=12245||l>=12272&&l<=12287||l>=12289&&l<=12350||l>=12353&&l<=12438||l>=12441&&l<=12543||l>=12549&&l<=12591||l>=12593&&l<=12686||l>=12688&&l<=12771||l>=12783&&l<=12830||l>=12832&&l<=12871||l>=12880&&l<=19903||l>=19968&&l<=42124||l>=42128&&l<=42182||l>=43360&&l<=43388||l>=44032&&l<=55203||l>=63744&&l<=64255||l>=65040&&l<=65049||l>=65072&&l<=65106||l>=65108&&l<=65126||l>=65128&&l<=65131||l>=94176&&l<=94180||l===94192||l===94193||l>=94208&&l<=100343||l>=100352&&l<=101589||l>=101632&&l<=101640||l>=110576&&l<=110579||l>=110581&&l<=110587||l===110589||l===110590||l>=110592&&l<=110882||l===110898||l>=110928&&l<=110930||l===110933||l>=110948&&l<=110951||l>=110960&&l<=111355||l===126980||l===127183||l===127374||l>=127377&&l<=127386||l>=127488&&l<=127490||l>=127504&&l<=127547||l>=127552&&l<=127560||l===127568||l===127569||l>=127584&&l<=127589||l>=127744&&l<=127776||l>=127789&&l<=127797||l>=127799&&l<=127868||l>=127870&&l<=127891||l>=127904&&l<=127946||l>=127951&&l<=127955||l>=127968&&l<=127984||l===127988||l>=127992&&l<=128062||l===128064||l>=128066&&l<=128252||l>=128255&&l<=128317||l>=128331&&l<=128334||l>=128336&&l<=128359||l===128378||l===128405||l===128406||l===128420||l>=128507&&l<=128591||l>=128640&&l<=128709||l===128716||l>=128720&&l<=128722||l>=128725&&l<=128727||l>=128732&&l<=128735||l===128747||l===128748||l>=128756&&l<=128764||l>=128992&&l<=129003||l===129008||l>=129292&&l<=129338||l>=129340&&l<=129349||l>=129351&&l<=129535||l>=129648&&l<=129660||l>=129664&&l<=129672||l>=129680&&l<=129725||l>=129727&&l<=129733||l>=129742&&l<=129755||l>=129760&&l<=129768||l>=129776&&l<=129784||l>=131072&&l<=196605||l>=196608&&l<=262141,hn=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,pl=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,el=/\t{1,1000}/y,zn=/[\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,ln=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,oo=/\p{M}+/gu,co={limit:1/0,ellipsis:""},Ws=(l,n={},s={})=>{let r=n.limit??1/0,i=n.ellipsis??"",o=n?.ellipsisWidth??(i?Ws(i,co,s).width:0),c=s.ansiWidth??0,a=s.controlWidth??0,k=s.tabWidth??8,f=s.ambiguousWidth??1,b=s.emojiWidth??2,m=s.fullWidthWidth??2,t=s.regularWidth??1,L=s.wideWidth??2,y=0,$=0,d=l.length,B=0,T=!1,N=d,h=Math.max(0,r-o),z=0,_=0,w=0,D=0;l:for(;;){if(_>z||$>=d&&$>y){let Q=l.slice(z,_)||l.slice(y,$);B=0;for(let W of Q.replaceAll(oo,"")){let K=W.codePointAt(0)||0;if(ro(K)?D=m:io(K)?D=L:f!==t&&so(K)?D=f:D=t,w+D>h&&(N=Math.min(N,Math.max(z,y)+B)),w+D>r){T=!0;break l}B+=W.length,w+=D}z=_=0}if($>=d)break;if(ln.lastIndex=$,ln.test(l)){if(B=ln.lastIndex-$,D=B*t,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/t))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=ln.lastIndex;continue}if(hn.lastIndex=$,hn.test(l)){if(w+c>h&&(N=Math.min(N,$)),w+c>r){T=!0;break}w+=c,z=y,_=$,$=y=hn.lastIndex;continue}if(pl.lastIndex=$,pl.test(l)){if(B=pl.lastIndex-$,D=B*a,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/a))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=pl.lastIndex;continue}if(el.lastIndex=$,el.test(l)){if(B=el.lastIndex-$,D=B*k,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/k))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=el.lastIndex;continue}if(zn.lastIndex=$,zn.test(l)){if(w+b>h&&(N=Math.min(N,$)),w+b>r){T=!0;break}w+=b,z=y,_=$,$=y=zn.lastIndex;continue}$+=1}return{width:T?h:w,index:T?N:d,truncated:T,ellipsed:T&&r>=o}},ao={limit:1/0,ellipsis:"",ellipsisWidth:0},xl=(l,n={})=>Ws(l,ao,n).width,on="\x1B",Es="",fo=39,Yn="\x07",Vs="[",ko="]",Os="m",Zn=`${ko}8;;`,Qs=new RegExp(`(?:\\${Vs}(?<code>\\d+)m|\\${Zn}(?<uri>.*)${Yn})`,"y"),bo=(l)=>{if(l>=30&&l<=37||l>=90&&l<=97)return 39;if(l>=40&&l<=47||l>=100&&l<=107)return 49;if(l===1||l===2)return 22;if(l===3)return 23;if(l===4)return 24;if(l===7)return 27;if(l===8)return 28;if(l===9)return 29;if(l===0)return 0},Ks=(l)=>`${on}${Vs}${l}${Os}`,Ms=(l)=>`${on}${Zn}${l}${Yn}`,yo=(l)=>l.map((n)=>xl(n)),Jn=(l,n,s)=>{let r=n[Symbol.iterator](),i=!1,o=!1,c=l.at(-1),a=c===void 0?0:xl(c),k=r.next(),f=r.next(),b=0;for(;!k.done;){let m=k.value,t=xl(m);a+t<=s?l[l.length-1]+=m:(l.push(m),a=0),(m===on||m===Es)&&(i=!0,o=n.startsWith(Zn,b+1)),i?o?m===Yn&&(i=!1,o=!1):m===Os&&(i=!1):(a+=t,a===s&&!f.done&&(l.push(""),a=0)),k=f,f=r.next(),b+=m.length}c=l.at(-1),!a&&c!==void 0&&c.length>0&&l.length>1&&(l[l.length-2]+=l.pop())},go=(l)=>{let n=l.split(" "),s=n.length;for(;s>0&&!(xl(n[s-1])>0);)s--;return s===n.length?l:n.slice(0,s).join(" ")+n.slice(s).join("")},uo=(l,n,s={})=>{if(s.trim!==!1&&l.trim()==="")return"";let r="",i,o,c=l.split(" "),a=yo(c),k=[""];for(let[y,$]of c.entries()){s.trim!==!1&&(k[k.length-1]=(k.at(-1)??"").trimStart());let d=xl(k.at(-1)??"");if(y!==0&&(d>=n&&(s.wordWrap===!1||s.trim===!1)&&(k.push(""),d=0),(d>0||s.trim===!1)&&(k[k.length-1]+=" ",d++)),s.hard&&a[y]>n){let B=n-d,T=1+Math.floor((a[y]-B-1)/n);Math.floor((a[y]-1)/n)<T&&k.push(""),Jn(k,$,n);continue}if(d+a[y]>n&&d>0&&a[y]>0){if(s.wordWrap===!1&&d<n){Jn(k,$,n);continue}k.push("")}if(d+a[y]>n&&s.wordWrap===!1){Jn(k,$,n);continue}k[k.length-1]+=$}s.trim!==!1&&(k=k.map((y)=>go(y)));let f=k.join(`
|
|
28
|
-
`)
|
|
29
|
-
|
|
30
|
-
`&&(i&&d&&(r+=Ks(i)),o&&(r+=Ms(o))),L+=y.length,m=t,t=b.next()}return r};function _n(l,n,s){return String(l).normalize().replaceAll(`\r
|
|
24
|
+
`),this.outputHelp({error:!0});let c=l||{},i=c.exitCode||1,g=c.code||"commander.error";this._exit(i,g,n)}_parseOptionsEnv(){this.options.forEach((n)=>{if(n.envVar&&n.envVar in V.env){let l=n.attributeName();if(this.getOptionValue(l)===void 0||["default","config","env"].includes(this.getOptionValueSource(l)))if(n.required||n.optional)this.emit(`optionEnv:${n.name()}`,V.env[n.envVar]);else this.emit(`optionEnv:${n.name()}`)}})}_parseOptionsImplied(){let n=new fg(this.options),l=(c)=>{return this.getOptionValue(c)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(c))};this.options.filter((c)=>c.implied!==void 0&&l(c.attributeName())&&n.valueFromOption(this.getOptionValue(c.attributeName()),c)).forEach((c)=>{Object.keys(c.implied).filter((i)=>!l(i)).forEach((i)=>{this.setOptionValueWithSource(i,c.implied[i],"implied")})})}missingArgument(n){let l=`error: missing required argument '${n}'`;this.error(l,{code:"commander.missingArgument"})}optionMissingArgument(n){let l=`error: option '${n.flags}' argument missing`;this.error(l,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(n){let l=`error: required option '${n.flags}' not specified`;this.error(l,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(n,l){let c=(k)=>{let w=k.attributeName(),I=this.getOptionValue(w),x=this.options.find((h)=>h.negate&&w===h.attributeName()),$=this.options.find((h)=>!h.negate&&w===h.attributeName());if(x&&(x.presetArg===void 0&&I===!1||x.presetArg!==void 0&&I===x.presetArg))return x;return $||k},i=(k)=>{let w=c(k),I=w.attributeName();if(this.getOptionValueSource(I)==="env")return`environment variable '${w.envVar}'`;return`option '${w.flags}'`},g=`error: ${i(n)} cannot be used with ${i(l)}`;this.error(g,{code:"commander.conflictingOption"})}unknownOption(n){if(this._allowUnknownOption)return;let l="";if(n.startsWith("--")&&this._showSuggestionAfterError){let i=[],g=this;do{let k=g.createHelp().visibleOptions(g).filter((w)=>w.long).map((w)=>w.long);i=i.concat(k),g=g.parent}while(g&&!g._enablePositionalOptions);l=Hc(n,i)}let c=`error: unknown option '${n}'${l}`;this.error(c,{code:"commander.unknownOption"})}_excessArguments(n){if(this._allowExcessArguments)return;let l=this.registeredArguments.length,c=l===1?"":"s",g=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${l} argument${c} but got ${n.length}.`;this.error(g,{code:"commander.excessArguments"})}unknownCommand(){let n=this.args[0],l="";if(this._showSuggestionAfterError){let i=[];this.createHelp().visibleCommands(this).forEach((g)=>{if(i.push(g.name()),g.alias())i.push(g.alias())}),l=Hc(n,i)}let c=`error: unknown command '${n}'${l}`;this.error(c,{code:"commander.unknownCommand"})}version(n,l,c){if(n===void 0)return this._version;this._version=n,l=l||"-V, --version",c=c||"output the version number";let i=this.createOption(l,c);return this._versionOptionName=i.attributeName(),this._registerOption(i),this.on("option:"+i.name(),()=>{this._outputConfiguration.writeOut(`${n}
|
|
25
|
+
`),this._exit(0,"commander.version",n)}),this}description(n,l){if(n===void 0&&l===void 0)return this._description;if(this._description=n,l)this._argsDescription=l;return this}summary(n){if(n===void 0)return this._summary;return this._summary=n,this}alias(n){if(n===void 0)return this._aliases[0];let l=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)l=this.commands[this.commands.length-1];if(n===l._name)throw Error("Command alias can't be the same as its name");let c=this.parent?._findCommand(n);if(c){let i=[c.name()].concat(c.aliases()).join("|");throw Error(`cannot add alias '${n}' to command '${this.name()}' as already have command '${i}'`)}return l._aliases.push(n),this}aliases(n){if(n===void 0)return this._aliases;return n.forEach((l)=>this.alias(l)),this}usage(n){if(n===void 0){if(this._usage)return this._usage;let l=this.registeredArguments.map((c)=>{return Eg(c)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?l:[]).join(" ")}return this._usage=n,this}name(n){if(n===void 0)return this._name;return this._name=n,this}helpGroup(n){if(n===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=n,this}commandsGroup(n){if(n===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=n,this}optionsGroup(n){if(n===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=n,this}_initOptionGroup(n){if(this._defaultOptionGroup&&!n.helpGroupHeading)n.helpGroup(this._defaultOptionGroup)}_initCommandGroup(n){if(this._defaultCommandGroup&&!n.helpGroup())n.helpGroup(this._defaultCommandGroup)}nameFromFilename(n){return this._name=_n.basename(n,_n.extname(n)),this}executableDir(n){if(n===void 0)return this._executableDir;return this._executableDir=n,this}helpInformation(n){let l=this.createHelp(),c=this._getOutputContext(n);l.prepareContext({error:c.error,helpWidth:c.helpWidth,outputHasColors:c.hasColors});let i=l.formatHelp(this,l);if(c.hasColors)return i;return this._outputConfiguration.stripColor(i)}_getOutputContext(n){n=n||{};let l=!!n.error,c,i,g;if(l)c=(w)=>this._outputConfiguration.writeErr(w),i=this._outputConfiguration.getErrHasColors(),g=this._outputConfiguration.getErrHelpWidth();else c=(w)=>this._outputConfiguration.writeOut(w),i=this._outputConfiguration.getOutHasColors(),g=this._outputConfiguration.getOutHelpWidth();return{error:l,write:(w)=>{if(!i)w=this._outputConfiguration.stripColor(w);return c(w)},hasColors:i,helpWidth:g}}outputHelp(n){let l;if(typeof n==="function")l=n,n=void 0;let c=this._getOutputContext(n),i={error:c.error,write:c.write,command:this};this._getCommandAndAncestors().reverse().forEach((k)=>k.emit("beforeAllHelp",i)),this.emit("beforeHelp",i);let g=this.helpInformation({error:c.error});if(l){if(g=l(g),typeof g!=="string"&&!Buffer.isBuffer(g))throw Error("outputHelp callback must return a string or a Buffer")}if(c.write(g),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",i),this._getCommandAndAncestors().forEach((k)=>k.emit("afterAllHelp",i))}helpOption(n,l){if(typeof n==="boolean"){if(n){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(n??"-h, --help",l??"display help for command"),n||l)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(n){return this._helpOption=n,this._initOptionGroup(n),this}help(n){this.outputHelp(n);let l=Number(V.exitCode??0);if(l===0&&n&&typeof n!=="function"&&n.error)l=1;this._exit(l,"commander.help","(outputHelp)")}addHelpText(n,l){let c=["beforeAll","before","after","afterAll"];if(!c.includes(n))throw Error(`Unexpected value for position to addHelpText.
|
|
26
|
+
Expecting one of '${c.join("', '")}'`);let i=`${n}Help`;return this.on(i,(g)=>{let k;if(typeof l==="function")k=l({error:g.error,command:g.command});else k=l;if(k)g.write(`${k}
|
|
27
|
+
`)}),this}_outputHelpIfRequested(n){let l=this._getHelpOption();if(l&&n.find((i)=>l.is(i)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function Cc(n){return n.map((l)=>{if(!l.startsWith("--inspect"))return l;let c,i="127.0.0.1",g="9229",k;if((k=l.match(/^(--inspect(-brk)?)$/))!==null)c=k[1];else if((k=l.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(c=k[1],/^\d+$/.test(k[3]))g=k[3];else i=k[3];else if((k=l.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)c=k[1],i=k[3],g=k[4];if(c&&g!=="0")return`${c}=${i}:${parseInt(g)+1}`;return l})}function $0(){if(V.env.NO_COLOR||V.env.FORCE_COLOR==="0"||V.env.FORCE_COLOR==="false")return!1;if(V.env.FORCE_COLOR||V.env.CLICOLOR_FORCE!==void 0)return!0;return}vg.Command=x0;vg.useColor=$0});var Rc=E((dg)=>{var{Argument:Vc}=sl(),{Command:h0}=Mc(),{CommanderError:Fg,InvalidArgumentError:Nc}=mn(),{Help:rg}=g0(),{Option:Ac}=k0();dg.program=new h0;dg.createCommand=(n)=>new h0(n);dg.createOption=(n,l)=>new Ac(n,l);dg.createArgument=(n,l)=>new Vc(n,l);dg.Command=h0;dg.Option=Ac;dg.Argument=Vc;dg.Help=rg;dg.CommanderError=Fg;dg.InvalidArgumentError=Nc;dg.InvalidOptionArgumentError=Nc});var Dn=E((r$,L0)=>{var Gl=process||{},vc=Gl.argv||[],Bl=Gl.env||{},uk=!(!!Bl.NO_COLOR||vc.includes("--no-color"))&&(!!Bl.FORCE_COLOR||vc.includes("--color")||Gl.platform==="win32"||(Gl.stdout||{}).isTTY&&Bl.TERM!=="dumb"||!!Bl.CI),yk=(n,l,c=n)=>(i)=>{let g=""+i,k=g.indexOf(l,n.length);return~k?n+_k(g,l,c,k)+l:n+g+l},_k=(n,l,c,i)=>{let g="",k=0;do g+=n.substring(k,i)+c,k=i+l.length,i=n.indexOf(l,k);while(~i);return g+n.substring(k)},oc=(n=uk)=>{let l=n?yk:()=>String;return{isColorSupported:n,reset:l("\x1B[0m","\x1B[0m"),bold:l("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:l("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:l("\x1B[3m","\x1B[23m"),underline:l("\x1B[4m","\x1B[24m"),inverse:l("\x1B[7m","\x1B[27m"),hidden:l("\x1B[8m","\x1B[28m"),strikethrough:l("\x1B[9m","\x1B[29m"),black:l("\x1B[30m","\x1B[39m"),red:l("\x1B[31m","\x1B[39m"),green:l("\x1B[32m","\x1B[39m"),yellow:l("\x1B[33m","\x1B[39m"),blue:l("\x1B[34m","\x1B[39m"),magenta:l("\x1B[35m","\x1B[39m"),cyan:l("\x1B[36m","\x1B[39m"),white:l("\x1B[37m","\x1B[39m"),gray:l("\x1B[90m","\x1B[39m"),bgBlack:l("\x1B[40m","\x1B[49m"),bgRed:l("\x1B[41m","\x1B[49m"),bgGreen:l("\x1B[42m","\x1B[49m"),bgYellow:l("\x1B[43m","\x1B[49m"),bgBlue:l("\x1B[44m","\x1B[49m"),bgMagenta:l("\x1B[45m","\x1B[49m"),bgCyan:l("\x1B[46m","\x1B[49m"),bgWhite:l("\x1B[47m","\x1B[49m"),blackBright:l("\x1B[90m","\x1B[39m"),redBright:l("\x1B[91m","\x1B[39m"),greenBright:l("\x1B[92m","\x1B[39m"),yellowBright:l("\x1B[93m","\x1B[39m"),blueBright:l("\x1B[94m","\x1B[39m"),magentaBright:l("\x1B[95m","\x1B[39m"),cyanBright:l("\x1B[96m","\x1B[39m"),whiteBright:l("\x1B[97m","\x1B[39m"),bgBlackBright:l("\x1B[100m","\x1B[49m"),bgRedBright:l("\x1B[101m","\x1B[49m"),bgGreenBright:l("\x1B[102m","\x1B[49m"),bgYellowBright:l("\x1B[103m","\x1B[49m"),bgBlueBright:l("\x1B[104m","\x1B[49m"),bgMagentaBright:l("\x1B[105m","\x1B[49m"),bgCyanBright:l("\x1B[106m","\x1B[49m"),bgWhiteBright:l("\x1B[107m","\x1B[49m")}};L0.exports=oc();L0.exports.createColors=oc});var U0=E((d$,mc)=>{var s0={to(n,l){if(!l)return`\x1B[${n+1}G`;return`\x1B[${l+1};${n+1}H`},move(n,l){let c="";if(n<0)c+=`\x1B[${-n}D`;else if(n>0)c+=`\x1B[${n}C`;if(l<0)c+=`\x1B[${-l}A`;else if(l>0)c+=`\x1B[${l}B`;return c},up:(n=1)=>`\x1B[${n}A`,down:(n=1)=>`\x1B[${n}B`,forward:(n=1)=>`\x1B[${n}C`,backward:(n=1)=>`\x1B[${n}D`,nextLine:(n=1)=>"\x1B[E".repeat(n),prevLine:(n=1)=>"\x1B[F".repeat(n),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},Dk={up:(n=1)=>"\x1B[S".repeat(n),down:(n=1)=>"\x1B[T".repeat(n)},Lk={screen:"\x1B[2J",up:(n=1)=>"\x1B[1J".repeat(n),down:(n=1)=>"\x1B[J".repeat(n),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines(n){let l="";for(let c=0;c<n;c++)l+=this.line+(c<n-1?s0.up():"");if(n)l+=s0.left;return l}};mc.exports={cursor:s0,scroll:Dk,erase:Lk,beep:"\x07"}});var Wi=E((Jx,Pi)=>{Pi.exports=class{constructor(l){if(!(l>0)||(l-1&l)!==0)throw Error("Max size for a FixedFIFO should be a power of two");this.buffer=Array(l),this.mask=l-1,this.top=0,this.btm=0,this.next=null}clear(){this.top=this.btm=0,this.next=null,this.buffer.fill(void 0)}push(l){if(this.buffer[this.top]!==void 0)return!1;return this.buffer[this.top]=l,this.top=this.top+1&this.mask,!0}shift(){let l=this.buffer[this.btm];if(l===void 0)return;return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,l}peek(){return this.buffer[this.btm]}isEmpty(){return this.buffer[this.btm]===void 0}}});var m0=E((jx,Ci)=>{var Hi=Wi();Ci.exports=class{constructor(l){this.hwm=l||16,this.head=new Hi(this.hwm),this.tail=this.head,this.length=0}clear(){this.head=this.tail,this.head.clear(),this.length=0}push(l){if(this.length++,!this.head.push(l)){let c=this.head;this.head=c.next=new Hi(2*this.head.buffer.length),this.head.push(l)}}shift(){if(this.length!==0)this.length--;let l=this.tail.shift();if(l===void 0&&this.tail.next){let c=this.tail.next;return this.tail.next=null,this.tail=c,this.tail.shift()}return l}peek(){let l=this.tail.peek();if(l===void 0&&this.tail.next)return this.tail.next.peek();return l}isEmpty(){return this.length===0}}});var En=E((Xx,Mi)=>{function Yw(n){return Buffer.isBuffer(n)||n instanceof Uint8Array}function Zw(n){return Buffer.isEncoding(n)}function Pw(n,l,c){return Buffer.alloc(n,l,c)}function Ww(n){return Buffer.allocUnsafe(n)}function Hw(n){return Buffer.allocUnsafeSlow(n)}function Cw(n,l){return Buffer.byteLength(n,l)}function Mw(n,l){return Buffer.compare(n,l)}function Vw(n,l){return Buffer.concat(n,l)}function Nw(n,l,c,i,g){return R(n).copy(l,c,i,g)}function Aw(n,l){return R(n).equals(l)}function Rw(n,l,c,i,g){return R(n).fill(l,c,i,g)}function zw(n,l,c){return Buffer.from(n,l,c)}function Ew(n,l,c,i){return R(n).includes(l,c,i)}function bw(n,l,c,i){return R(n).indexOf(l,c,i)}function Ow(n,l,c,i){return R(n).lastIndexOf(l,c,i)}function fw(n){return R(n).swap16()}function vw(n){return R(n).swap32()}function ow(n){return R(n).swap64()}function R(n){if(Buffer.isBuffer(n))return n;return Buffer.from(n.buffer,n.byteOffset,n.byteLength)}function mw(n,l,c,i){return R(n).toString(l,c,i)}function Fw(n,l,c,i,g){return R(n).write(l,c,i,g)}function rw(n,l){return R(n).readDoubleBE(l)}function dw(n,l){return R(n).readDoubleLE(l)}function aw(n,l){return R(n).readFloatBE(l)}function pw(n,l){return R(n).readFloatLE(l)}function tw(n,l){return R(n).readInt32BE(l)}function ew(n,l){return R(n).readInt32LE(l)}function n6(n,l){return R(n).readUInt32BE(l)}function l6(n,l){return R(n).readUInt32LE(l)}function c6(n,l,c){return R(n).writeDoubleBE(l,c)}function i6(n,l,c){return R(n).writeDoubleLE(l,c)}function g6(n,l,c){return R(n).writeFloatBE(l,c)}function k6(n,l,c){return R(n).writeFloatLE(l,c)}function w6(n,l,c){return R(n).writeInt32BE(l,c)}function I6(n,l,c){return R(n).writeInt32LE(l,c)}function $6(n,l,c){return R(n).writeUInt32BE(l,c)}function x6(n,l,c){return R(n).writeUInt32LE(l,c)}Mi.exports={isBuffer:Yw,isEncoding:Zw,alloc:Pw,allocUnsafe:Ww,allocUnsafeSlow:Hw,byteLength:Cw,compare:Mw,concat:Vw,copy:Nw,equals:Aw,fill:Rw,from:zw,includes:Ew,indexOf:bw,lastIndexOf:Ow,swap16:fw,swap32:vw,swap64:ow,toBuffer:R,toString:mw,write:Fw,readDoubleBE:rw,readDoubleLE:dw,readFloatBE:aw,readFloatLE:pw,readInt32BE:tw,readInt32LE:ew,readUInt32BE:n6,readUInt32LE:l6,writeDoubleBE:c6,writeDoubleLE:i6,writeFloatBE:g6,writeFloatLE:k6,writeInt32BE:w6,writeInt32LE:I6,writeUInt32BE:$6,writeUInt32LE:x6}});var Ni=E((Qx,Vi)=>{var h6=En();Vi.exports=class{constructor(l){this.encoding=l}get remaining(){return 0}decode(l){return h6.toString(l,this.encoding)}flush(){return""}}});var Ei=E((Yx,zi)=>{var Ai=En();zi.exports=class{constructor(){this._reset()}get remaining(){return this.bytesSeen}decode(l){if(l.byteLength===0)return"";if(this.bytesNeeded===0&&Ri(l,0)===0)return this.bytesSeen=u6(l),Ai.toString(l,"utf8");let c="",i=0;if(this.bytesNeeded>0){while(i<l.byteLength){let w=l[i];if(w<this.lowerBoundary||w>this.upperBoundary){c+="�",this._reset();break}if(this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|w&63,this.bytesSeen++,i++,this.bytesSeen===this.bytesNeeded){c+=String.fromCodePoint(this.codePoint),this._reset();break}}if(this.bytesNeeded>0)return c}let g=Ri(l,i),k=l.byteLength-g;if(k>i)c+=Ai.toString(l,"utf8",i,k);for(let w=k;w<l.byteLength;w++){let I=l[w];if(this.bytesNeeded===0){if(I<=127)this.bytesSeen=0,c+=String.fromCharCode(I);else if(I>=194&&I<=223)this.bytesNeeded=2,this.bytesSeen=1,this.codePoint=I&31;else if(I>=224&&I<=239){if(I===224)this.lowerBoundary=160;else if(I===237)this.upperBoundary=159;this.bytesNeeded=3,this.bytesSeen=1,this.codePoint=I&15}else if(I>=240&&I<=244){if(I===240)this.lowerBoundary=144;else if(I===244)this.upperBoundary=143;this.bytesNeeded=4,this.bytesSeen=1,this.codePoint=I&7}else this.bytesSeen=1,c+="�";continue}if(I<this.lowerBoundary||I>this.upperBoundary){c+="�",w--,this._reset();continue}if(this.lowerBoundary=128,this.upperBoundary=191,this.codePoint=this.codePoint<<6|I&63,this.bytesSeen++,this.bytesSeen===this.bytesNeeded)c+=String.fromCodePoint(this.codePoint),this._reset()}return c}flush(){let l=this.bytesNeeded>0?"�":"";return this._reset(),l}_reset(){this.codePoint=0,this.bytesNeeded=0,this.bytesSeen=0,this.lowerBoundary=128,this.upperBoundary=191}};function Ri(n,l){let c=n.byteLength;if(c<=l)return 0;let i=Math.max(l,c-4),g=c-1;while(g>i&&(n[g]&192)===128)g--;if(g<l)return 0;let k=n[g],w;if(k<=127)return 0;if(k>=194&&k<=223)w=2;else if(k>=224&&k<=239)w=3;else if(k>=240&&k<=244)w=4;else return 0;let I=c-g;return I<w?I:0}function u6(n){let l=n.byteLength;if(l===0)return 0;let c=n[l-1];if(c<=127)return 0;if((c&192)!==128)return 1;let i=Math.max(0,l-4),g=l-2;while(g>=i&&(n[g]&192)===128)g--;if(g<0)return 1;let k=n[g],w;if(k>=194&&k<=223)w=2;else if(k>=224&&k<=239)w=3;else if(k>=240&&k<=244)w=4;else return 1;if(l-g!==w)return 1;if(w>=3){let I=n[g+1];if(k===224&&I<160)return 1;if(k===237&&I>159)return 1;if(k===240&&I<144)return 1;if(k===244&&I>143)return 1}return 0}});var Oi=E((Zx,bi)=>{var y6=Ni(),_6=Ei();bi.exports=class{constructor(l="utf8"){switch(this.encoding=D6(l),this.encoding){case"utf8":this.decoder=new _6;break;case"utf16le":case"base64":throw Error("Unsupported encoding: "+this.encoding);default:this.decoder=new y6(this.encoding)}}get remaining(){return this.decoder.remaining}push(l){if(typeof l==="string")return l;return this.decoder.decode(l)}write(l){return this.push(l)}end(l){let c="";if(l)c=this.push(l);return c+=this.decoder.flush(),c}};function D6(n){switch(n=n.toLowerCase(),n){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return n;default:throw Error("Unknown encoding: "+n)}}});var t0=E((Px,n1)=>{var{EventEmitter:L6}=b("events"),El=Error("Stream was destroyed"),F0=Error("Premature close"),vi=m0(),s6=Oi(),r0=typeof queueMicrotask>"u"?(n)=>global.process.nextTick(n):queueMicrotask,zl=Symbol.asyncIterator||Symbol("asyncIterator");class d0{constructor(n,{highWaterMark:l=16384,map:c=null,mapWritable:i,byteLength:g,byteLengthWritable:k}={}){this.stream=n,this.queue=new vi,this.highWaterMark=l,this.buffered=0,this.error=null,this.pipeline=null,this.drains=null,this.byteLength=k||g||ei,this.map=i||c,this.afterWrite=K6.bind(this),this.afterUpdateNextTick=G6.bind(this)}get ending(){return(this.stream._duplexState&134217728)!==0}get ended(){return(this.stream._duplexState&8388608)!==0}push(n){if((this.stream._duplexState&142606350)!==0)return!1;if(this.map!==null)n=this.map(n);if(this.buffered+=this.byteLength(n),this.queue.push(n),this.buffered<this.highWaterMark)return this.stream._duplexState|=2097152,!0;return this.stream._duplexState|=6291456,!1}shift(){let n=this.queue.shift();if(this.buffered-=this.byteLength(n),this.buffered===0)this.stream._duplexState&=534773759;return n}end(n){if(typeof n==="function")this.stream.once("finish",n);else if(n!==void 0&&n!==null)this.push(n);this.stream._duplexState=(this.stream._duplexState|134217728)&535822335}autoBatch(n,l){let c=[],i=this.stream;c.push(n);while((i._duplexState&270794767)===2359296)c.push(i._writableState.shift());if((i._duplexState&15)!==0)return l(null);i._writev(c,l)}update(){let n=this.stream;n._duplexState|=524288;do{while((n._duplexState&270794767)===2097152){let l=this.shift();n._duplexState|=67371008,n._write(l,this.afterWrite)}if((n._duplexState&1310720)===0)this.updateNonPrimary()}while(this.continueUpdate()===!0);n._duplexState&=536346623}updateNonPrimary(){let n=this.stream;if((n._duplexState&144965647)===134217728){n._duplexState=n._duplexState|262144,n._final(q6.bind(this));return}if((n._duplexState&14)===4){if((n._duplexState&33587200)===0)n._duplexState|=262160,n._destroy(ri.bind(this));return}if((n._duplexState&33587215)===1)n._duplexState=(n._duplexState|262160)&536870910,n._open(di.bind(this))}continueUpdate(){if((this.stream._duplexState&33554432)===0)return!1;return this.stream._duplexState&=503316479,!0}updateCallback(){if((this.stream._duplexState&35127311)===1048576)this.update();else this.updateNextTick()}updateNextTick(){if((this.stream._duplexState&33554432)!==0)return;if(this.stream._duplexState|=33554432,(this.stream._duplexState&524288)===0)r0(this.afterUpdateNextTick)}}class oi{constructor(n,{highWaterMark:l=16384,map:c=null,mapReadable:i,byteLength:g,byteLengthReadable:k}={}){this.stream=n,this.queue=new vi,this.highWaterMark=l===0?1:l,this.buffered=0,this.readAhead=l>0,this.error=null,this.pipeline=null,this.byteLength=k||g||ei,this.map=i||c,this.pipeTo=null,this.afterRead=T6.bind(this),this.afterUpdateNextTick=B6.bind(this)}get ending(){return(this.stream._duplexState&1024)!==0}get ended(){return(this.stream._duplexState&16384)!==0}pipe(n,l){if(this.pipeTo!==null)throw Error("Can only pipe to one destination");if(typeof l!=="function")l=null;if(this.stream._duplexState|=512,this.pipeTo=n,this.pipeline=new Fi(this.stream,n,l),l)this.stream.on("error",fi);if(gl(n)){if(n._writableState.pipeline=this.pipeline,l)n.on("error",fi);n.on("finish",this.pipeline.finished.bind(this.pipeline))}else{let c=this.pipeline.done.bind(this.pipeline,n),i=this.pipeline.done.bind(this.pipeline,n,null);n.on("error",c),n.on("close",i),n.on("finish",this.pipeline.finished.bind(this.pipeline))}n.on("drain",U6.bind(this)),this.stream.emit("piping",n),n.emit("pipe",this.stream)}push(n){let l=this.stream;if(n===null)return this.highWaterMark=0,l._duplexState=(l._duplexState|1024)&536805311,!1;if(this.map!==null){if(n=this.map(n),n===null)return l._duplexState&=536805375,this.buffered<this.highWaterMark}return this.buffered+=this.byteLength(n),this.queue.push(n),l._duplexState=(l._duplexState|128)&536805375,this.buffered<this.highWaterMark}shift(){let n=this.queue.shift();if(this.buffered-=this.byteLength(n),this.buffered===0)this.stream._duplexState&=536862591;return n}unshift(n){let l=[this.map!==null?this.map(n):n];while(this.buffered>0)l.push(this.shift());for(let c=0;c<l.length-1;c++){let i=l[c];this.buffered+=this.byteLength(i),this.queue.push(i)}this.push(l[l.length-1])}read(){let n=this.stream;if((n._duplexState&16527)===128){let l=this.shift();if(this.pipeTo!==null&&this.pipeTo.write(l)===!1)n._duplexState&=536870143;if((n._duplexState&2048)!==0)n.emit("data",l);return l}if(this.readAhead===!1)n._duplexState|=131072,this.updateNextTick();return null}drain(){let n=this.stream;while((n._duplexState&16527)===128&&(n._duplexState&768)!==0){let l=this.shift();if(this.pipeTo!==null&&this.pipeTo.write(l)===!1)n._duplexState&=536870143;if((n._duplexState&2048)!==0)n.emit("data",l)}}update(){let n=this.stream;n._duplexState|=32;do{this.drain();while(this.buffered<this.highWaterMark&&(n._duplexState&214047)===131072)n._duplexState|=65552,n._read(this.afterRead),this.drain();if((n._duplexState&12431)===4224)n._duplexState|=8192,n.emit("readable");if((n._duplexState&80)===0)this.updateNonPrimary()}while(this.continueUpdate()===!0);n._duplexState&=536870879}updateNonPrimary(){let n=this.stream;if((n._duplexState&1167)===1024){if(n._duplexState=(n._duplexState|16384)&536869887,n.emit("end"),(n._duplexState&8405006)===8404992)n._duplexState|=4;if(this.pipeTo!==null)this.pipeTo.end()}if((n._duplexState&14)===4){if((n._duplexState&33587200)===0)n._duplexState|=262160,n._destroy(ri.bind(this));return}if((n._duplexState&33587215)===1)n._duplexState=(n._duplexState|262160)&536870910,n._open(di.bind(this))}continueUpdate(){if((this.stream._duplexState&32768)===0)return!1;return this.stream._duplexState&=536838143,!0}updateCallback(){if((this.stream._duplexState&32879)===64)this.update();else this.updateNextTick()}updateNextTickIfOpen(){if((this.stream._duplexState&32769)!==0)return;if(this.stream._duplexState|=32768,(this.stream._duplexState&32)===0)r0(this.afterUpdateNextTick)}updateNextTick(){if((this.stream._duplexState&32768)!==0)return;if(this.stream._duplexState|=32768,(this.stream._duplexState&32)===0)r0(this.afterUpdateNextTick)}}class mi{constructor(n){this.data=null,this.afterTransform=J6.bind(n),this.afterFinal=null}}class Fi{constructor(n,l,c){this.from=n,this.to=l,this.afterPipe=c,this.error=null,this.pipeToFinished=!1}finished(){this.pipeToFinished=!0}done(n,l){if(l)this.error=l;if(n===this.to){if(this.to=null,this.from!==null){if((this.from._duplexState&16384)===0||!this.pipeToFinished)this.from.destroy(this.error||Error("Writable stream closed prematurely"));return}}if(n===this.from){if(this.from=null,this.to!==null){if((n._duplexState&16384)===0)this.to.destroy(this.error||Error("Readable stream closed before ending"));return}}if(this.afterPipe!==null)this.afterPipe(this.error);this.to=this.from=this.afterPipe=null}}function U6(){this.stream._duplexState|=512,this.updateCallback()}function q6(n){let l=this.stream;if(n)l.destroy(n);if((l._duplexState&14)===0)l._duplexState|=8388608,l.emit("finish");if((l._duplexState&8405006)===8404992)l._duplexState|=4;if(l._duplexState&=402391039,(l._duplexState&524288)===0)this.update();else this.updateNextTick()}function ri(n){let l=this.stream;if(!n&&this.error!==El)n=this.error;if(n)l.emit("error",n);l._duplexState|=8,l.emit("close");let{_readableState:c,_writableState:i}=l;if(c!==null&&c.pipeline!==null)c.pipeline.done(l,n);if(i!==null){while(i.drains!==null&&i.drains.length>0)i.drains.shift().resolve(!1);if(i.pipeline!==null)i.pipeline.done(l,n)}}function K6(n){let l=this.stream;if(n)l.destroy(n);if(l._duplexState&=469499903,this.drains!==null)S6(this.drains);if((l._duplexState&6553615)===4194304){if(l._duplexState&=532676607,(l._duplexState&16777216)===16777216)l.emit("drain")}this.updateCallback()}function T6(n){if(n)this.stream.destroy(n);if(this.stream._duplexState&=536870895,this.readAhead===!1&&(this.stream._duplexState&256)===0)this.stream._duplexState&=536739839;this.updateCallback()}function B6(){if((this.stream._duplexState&32)===0)this.stream._duplexState&=536838143,this.update()}function G6(){if((this.stream._duplexState&524288)===0)this.stream._duplexState&=503316479,this.update()}function S6(n){for(let l=0;l<n.length;l++)if(--n[l].writes===0)n.shift().resolve(!0),l--}function di(n){let l=this.stream;if(n)l.destroy(n);if((l._duplexState&4)===0){if((l._duplexState&17423)===0)l._duplexState|=64;if((l._duplexState&142606351)===0)l._duplexState|=1048576;l.emit("open")}if(l._duplexState&=536608751,l._writableState!==null)l._writableState.updateCallback();if(l._readableState!==null)l._readableState.updateCallback()}function J6(n,l){if(l!==void 0&&l!==null)this.push(l);this._writableState.afterWrite(n)}function j6(n){if(this._readableState!==null){if(n==="data")this._duplexState|=133376,this._readableState.updateNextTick();if(n==="readable")this._duplexState|=4096,this._readableState.updateNextTick()}if(this._writableState!==null){if(n==="drain")this._duplexState|=16777216,this._writableState.updateNextTick()}}class bl extends L6{constructor(n){super();if(this._duplexState=0,this._readableState=null,this._writableState=null,n){if(n.open)this._open=n.open;if(n.destroy)this._destroy=n.destroy;if(n.predestroy)this._predestroy=n.predestroy;if(n.signal)n.signal.addEventListener("abort",A6.bind(this))}this.on("newListener",j6)}_open(n){n(null)}_destroy(n){n(null)}_predestroy(){}get readable(){return this._readableState!==null?!0:void 0}get writable(){return this._writableState!==null?!0:void 0}get destroyed(){return(this._duplexState&8)!==0}get destroying(){return(this._duplexState&14)!==0}destroy(n){if((this._duplexState&14)===0){if(!n)n=El;if(this._duplexState=(this._duplexState|4)&535822271,this._readableState!==null)this._readableState.highWaterMark=0,this._readableState.error=n;if(this._writableState!==null)this._writableState.highWaterMark=0,this._writableState.error=n;if(this._duplexState|=2,this._predestroy(),this._duplexState&=536870909,this._readableState!==null)this._readableState.updateNextTick();if(this._writableState!==null)this._writableState.updateNextTick()}}}class il extends bl{constructor(n){super(n);if(this._duplexState|=8519681,this._readableState=new oi(this,n),n){if(this._readableState.readAhead===!1)this._duplexState&=536739839;if(n.read)this._read=n.read;if(n.eagerOpen)this._readableState.updateNextTick();if(n.encoding)this.setEncoding(n.encoding)}}setEncoding(n){let l=new s6(n),c=this._readableState.map||Y6;return this._readableState.map=i,this;function i(g){let k=l.push(g);return k===""&&(g.byteLength!==0||l.remaining>0)?null:c(k)}}_read(n){n(null)}pipe(n,l){return this._readableState.updateNextTick(),this._readableState.pipe(n,l),n}read(){return this._readableState.updateNextTick(),this._readableState.read()}push(n){return this._readableState.updateNextTickIfOpen(),this._readableState.push(n)}unshift(n){return this._readableState.updateNextTickIfOpen(),this._readableState.unshift(n)}resume(){return this._duplexState|=131328,this._readableState.updateNextTick(),this}pause(){return this._duplexState&=this._readableState.readAhead===!1?536739583:536870655,this}static _fromAsyncIterator(n,l){let c,i=new il({...l,read(k){n.next().then(g).then(k.bind(null,null)).catch(k)},predestroy(){c=n.return()},destroy(k){if(!c)return k(null);c.then(k.bind(null,null)).catch(k)}});return i;function g(k){if(k.done)i.push(null);else i.push(k.value)}}static from(n,l){if(M6(n))return n;if(n[zl])return this._fromAsyncIterator(n[zl](),l);if(!Array.isArray(n))n=n===void 0?[]:[n];let c=0;return new il({...l,read(i){this.push(c===n.length?null:n[c++]),i(null)}})}static isBackpressured(n){return(n._duplexState&17422)!==0||n._readableState.buffered>=n._readableState.highWaterMark}static isPaused(n){return(n._duplexState&256)===0}[zl](){let n=this,l=null,c=null,i=null;return this.on("error",(x)=>{l=x}),this.on("readable",g),this.on("close",k),{[zl](){return this},next(){return new Promise(function(x,$){c=x,i=$;let h=n.read();if(h!==null)w(h);else if((n._duplexState&8)!==0)w(null)})},return(){return I(null)},throw(x){return I(x)}};function g(){if(c!==null)w(n.read())}function k(){if(c!==null)w(null)}function w(x){if(i===null)return;if(l)i(l);else if(x===null&&(n._duplexState&16384)===0)i(El);else c({value:x,done:x===null});i=c=null}function I(x){return n.destroy(x),new Promise(($,h)=>{if(n._duplexState&8)return $({value:void 0,done:!0});n.once("close",function(){if(x)h(x);else $({value:void 0,done:!0})})})}}}class a0 extends bl{constructor(n){super(n);if(this._duplexState|=16385,this._writableState=new d0(this,n),n){if(n.writev)this._writev=n.writev;if(n.write)this._write=n.write;if(n.final)this._final=n.final;if(n.eagerOpen)this._writableState.updateNextTick()}}cork(){this._duplexState|=268435456}uncork(){this._duplexState&=268435455,this._writableState.updateNextTick()}_writev(n,l){l(null)}_write(n,l){this._writableState.autoBatch(n,l)}_final(n){n(null)}static isBackpressured(n){return(n._duplexState&146800654)!==0}static drained(n){if(n.destroyed)return Promise.resolve(!1);let l=n._writableState,i=(R6(n)?Math.min(1,l.queue.length):l.queue.length)+(n._duplexState&67108864?1:0);if(i===0)return Promise.resolve(!0);if(l.drains===null)l.drains=[];return new Promise((g)=>{l.drains.push({writes:i,resolve:g})})}write(n){return this._writableState.updateNextTick(),this._writableState.push(n)}end(n){return this._writableState.updateNextTick(),this._writableState.end(n),this}}class Ol extends il{constructor(n){super(n);if(this._duplexState=1|this._duplexState&131072,this._writableState=new d0(this,n),n){if(n.writev)this._writev=n.writev;if(n.write)this._write=n.write;if(n.final)this._final=n.final}}cork(){this._duplexState|=268435456}uncork(){this._duplexState&=268435455,this._writableState.updateNextTick()}_writev(n,l){l(null)}_write(n,l){this._writableState.autoBatch(n,l)}_final(n){n(null)}write(n){return this._writableState.updateNextTick(),this._writableState.push(n)}end(n){return this._writableState.updateNextTick(),this._writableState.end(n),this}}class p0 extends Ol{constructor(n){super(n);if(this._transformState=new mi(this),n){if(n.transform)this._transform=n.transform;if(n.flush)this._flush=n.flush}}_write(n,l){if(this._readableState.buffered>=this._readableState.highWaterMark)this._transformState.data=n;else this._transform(n,this._transformState.afterTransform)}_read(n){if(this._transformState.data!==null){let l=this._transformState.data;this._transformState.data=null,n(null),this._transform(l,this._transformState.afterTransform)}else n(null)}destroy(n){if(super.destroy(n),this._transformState.data!==null)this._transformState.data=null,this._transformState.afterTransform()}_transform(n,l){l(null,n)}_flush(n){n(null)}_final(n){this._transformState.afterFinal=n,this._flush(X6.bind(this))}}class ai extends p0{}function X6(n,l){let c=this._transformState.afterFinal;if(n)return c(n);if(l!==null&&l!==void 0)this.push(l);this.push(null),c(null)}function Q6(...n){return new Promise((l,c)=>{return pi(...n,(i)=>{if(i)return c(i);l()})})}function pi(n,...l){let c=Array.isArray(n)?[...n,...l]:[n,...l],i=c.length&&typeof c[c.length-1]==="function"?c.pop():null;if(c.length<2)throw Error("Pipeline requires at least 2 streams");let g=c[0],k=null,w=null;for(let $=1;$<c.length;$++){if(k=c[$],gl(g))g.pipe(k,x);else I(g,!0,$>1,x),g.pipe(k);g=k}if(i){let $=!1,h=gl(k)||!!(k._writableState&&k._writableState.autoDestroy);if(k.on("error",(y)=>{if(w===null)w=y}),k.on("finish",()=>{if($=!0,!h)i(w)}),h)k.on("close",()=>i(w||($?null:F0)))}return k;function I($,h,y,_){$.on("error",_),$.on("close",K);function K(){if(h&&$._readableState&&!$._readableState.ended)return _(F0);if(y&&$._writableState&&!$._writableState.ended)return _(F0)}}function x($){if(!$||w)return;w=$;for(let h of c)h.destroy($)}}function Y6(n){return n}function ti(n){return!!n._readableState||!!n._writableState}function gl(n){return typeof n._duplexState==="number"&&ti(n)}function Z6(n){return!!n._readableState&&n._readableState.ending}function P6(n){return!!n._readableState&&n._readableState.ended}function W6(n){return!!n._writableState&&n._writableState.ending}function H6(n){return!!n._writableState&&n._writableState.ended}function C6(n,l={}){let c=n._readableState&&n._readableState.error||n._writableState&&n._writableState.error;return!l.all&&c===El?null:c}function M6(n){return gl(n)&&n.readable}function V6(n){return(n._duplexState&1)!==1||(n._duplexState&4)===4||(n._duplexState&33587200)!==0}function N6(n){return typeof n==="object"&&n!==null&&typeof n.byteLength==="number"}function ei(n){return N6(n)?n.byteLength:1024}function fi(){}function A6(){this.destroy(Error("Stream aborted."))}function R6(n){return n._writev!==a0.prototype._writev&&n._writev!==Ol.prototype._writev}n1.exports={pipeline:pi,pipelinePromise:Q6,isStream:ti,isStreamx:gl,isEnding:Z6,isEnded:P6,isFinishing:W6,isFinished:H6,isDisturbed:V6,getStreamError:C6,Stream:bl,Writable:a0,Readable:il,Duplex:Ol,Transform:p0,PassThrough:ai}});var nc=E((a6)=>{var W=En(),l1=W.from([117,115,116,97,114,0]),z6=W.from([48,48]),E6=W.from([117,115,116,97,114,32]),b6=W.from([32,0]);a6.decodeLongPath=function(l,c){return bn(l,0,l.length,c)};a6.encodePax=function(l){let c="";if(l.name)c+=e0(" path="+l.name+`
|
|
28
|
+
`);if(l.linkname)c+=e0(" linkpath="+l.linkname+`
|
|
29
|
+
`);let i=l.pax;if(i)for(let g in i)c+=e0(" "+g+"="+i[g]+`
|
|
30
|
+
`);return W.from(c)};a6.decodePax=function(l){let c={};while(l.length){let i=0;while(i<l.length&&l[i]!==32)i++;let g=parseInt(W.toString(l.subarray(0,i)),10);if(!g)return c;let k=W.toString(l.subarray(i+1,g-1)),w=k.indexOf("=");if(w===-1)return c;c[k.slice(0,w)]=k.slice(w+1),l=l.subarray(g)}return c};a6.encode=function(l){let c=W.alloc(512),i=l.name,g="";if(l.typeflag===5&&i[i.length-1]!=="/")i+="/";if(W.byteLength(i)!==i.length)return null;while(W.byteLength(i)>100){let k=i.indexOf("/");if(k===-1)return null;g+=g?"/"+i.slice(0,k):i.slice(0,k),i=i.slice(k+1)}if(W.byteLength(i)>100||W.byteLength(g)>155)return null;if(l.linkname&&W.byteLength(l.linkname)>100)return null;if(W.write(c,i),W.write(c,Sn(l.mode&4095,6),100),W.write(c,Sn(l.uid,6),108),W.write(c,Sn(l.gid,6),116),r6(l.size,c,124),W.write(c,Sn(l.mtime.getTime()/1000|0,11),136),c[156]=48+m6(l.type),l.linkname)W.write(c,l.linkname,157);if(W.copy(l1,c,257),W.copy(z6,c,263),l.uname)W.write(c,l.uname,265);if(l.gname)W.write(c,l.gname,297);if(W.write(c,Sn(l.devmajor||0,6),329),W.write(c,Sn(l.devminor||0,6),337),g)W.write(c,g,345);return W.write(c,Sn(i1(c),6),148),c};a6.decode=function(l,c,i){let g=l[156]===0?0:l[156]-48,k=bn(l,0,100,c),w=Gn(l,100,8),I=Gn(l,108,8),x=Gn(l,116,8),$=Gn(l,124,12),h=Gn(l,136,12),y=o6(g),_=l[157]===0?null:bn(l,157,100,c),K=bn(l,265,32),u=bn(l,297,32),L=Gn(l,329,8),T=Gn(l,337,8),G=i1(l);if(G===256)return null;if(G!==Gn(l,148,8))throw Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(O6(l)){if(l[345])k=bn(l,345,155,c)+"/"+k}else if(f6(l));else if(!i)throw Error("Invalid tar header: unknown format.");if(g===0&&k&&k[k.length-1]==="/")g=5;return{name:k,mode:w,uid:I,gid:x,size:$,mtime:new Date(1000*h),type:y,linkname:_,uname:K,gname:u,devmajor:L,devminor:T,pax:null}};function O6(n){return W.equals(l1,n.subarray(257,263))}function f6(n){return W.equals(E6,n.subarray(257,263))&&W.equals(b6,n.subarray(263,265))}function v6(n,l,c){if(typeof n!=="number")return c;if(n=~~n,n>=l)return l;if(n>=0)return n;if(n+=l,n>=0)return n;return 0}function o6(n){switch(n){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null}function m6(n){switch(n){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0}function c1(n,l,c,i){for(;c<i;c++)if(n[c]===l)return c;return i}function i1(n){let l=256;for(let c=0;c<148;c++)l+=n[c];for(let c=156;c<512;c++)l+=n[c];return l}function Sn(n,l){if(n=n.toString(8),n.length>l)return"7777777777777777777".slice(0,l)+" ";return"0000000000000000000".slice(0,l-n.length)+n+" "}function F6(n,l,c){l[c]=128;for(let i=11;i>0;i--)l[c+i]=n&255,n=Math.floor(n/256)}function r6(n,l,c){if(n.toString(8).length>11)F6(n,l,c);else W.write(l,Sn(n,11),c)}function d6(n){let l;if(n[0]===128)l=!0;else if(n[0]===255)l=!1;else return null;let c=[],i;for(i=n.length-1;i>0;i--){let w=n[i];if(l)c.push(w);else c.push(255-w)}let g=0,k=c.length;for(i=0;i<k;i++)g+=c[i]*Math.pow(256,i);return l?g:-1*g}function Gn(n,l,c){if(n=n.subarray(l,l+c),l=0,n[l]&128)return d6(n);else{while(l<n.length&&n[l]===32)l++;let i=v6(c1(n,32,l,n.length),n.length,n.length);while(l<i&&n[l]===0)l++;if(i===l)return 0;return parseInt(W.toString(n.subarray(l,i)),8)}}function bn(n,l,c,i){return W.toString(n.subarray(l,c1(n,0,l,l+c)),i)}function e0(n){let l=W.byteLength(n),c=Math.floor(Math.log(l)/Math.log(10))+1;if(l+c>=Math.pow(10,c))c++;return l+c+n}});var u1=E((Hx,h1)=>{var{Writable:cI,Readable:iI,getStreamError:g1}=t0(),gI=m0(),k1=En(),On=nc(),kI=k1.alloc(0);class w1{constructor(){this.buffered=0,this.shifted=0,this.queue=new gI,this._offset=0}push(n){this.buffered+=n.byteLength,this.queue.push(n)}shiftFirst(n){return this._buffered===0?null:this._next(n)}shift(n){if(n>this.buffered)return null;if(n===0)return kI;let l=this._next(n);if(n===l.byteLength)return l;let c=[l];while((n-=l.byteLength)>0)l=this._next(n),c.push(l);return k1.concat(c)}_next(n){let l=this.queue.peek(),c=l.byteLength-this._offset;if(n>=c){let i=this._offset?l.subarray(this._offset,l.byteLength):l;return this.queue.shift(),this._offset=0,this.buffered-=c,this.shifted+=c,i}return this.buffered-=n,this.shifted+=n,l.subarray(this._offset,this._offset+=n)}}class I1 extends iI{constructor(n,l,c){super();this.header=l,this.offset=c,this._parent=n}_read(n){if(this.header.size===0)this.push(null);if(this._parent._stream===this)this._parent._update();n(null)}_predestroy(){this._parent.destroy(g1(this))}_detach(){if(this._parent._stream===this)this._parent._stream=null,this._parent._missing=x1(this.header.size),this._parent._update()}_destroy(n){this._detach(),n(null)}}class $1 extends cI{constructor(n){super(n);if(!n)n={};this._buffer=new w1,this._offset=0,this._header=null,this._stream=null,this._missing=0,this._longHeader=!1,this._callback=lc,this._locked=!1,this._finished=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null,this._filenameEncoding=n.filenameEncoding||"utf-8",this._allowUnknownFormat=!!n.allowUnknownFormat,this._unlockBound=this._unlock.bind(this)}_unlock(n){if(this._locked=!1,n){this.destroy(n),this._continueWrite(n);return}this._update()}_consumeHeader(){if(this._locked)return!1;this._offset=this._buffer.shifted;try{this._header=On.decode(this._buffer.shift(512),this._filenameEncoding,this._allowUnknownFormat)}catch(n){return this._continueWrite(n),!1}if(!this._header)return!0;switch(this._header.type){case"gnu-long-path":case"gnu-long-link-path":case"pax-global-header":case"pax-header":return this._longHeader=!0,this._missing=this._header.size,!0}if(this._locked=!0,this._applyLongHeaders(),this._header.size===0||this._header.type==="directory")return this.emit("entry",this._header,this._createStream(),this._unlockBound),!0;return this._stream=this._createStream(),this._missing=this._header.size,this.emit("entry",this._header,this._stream,this._unlockBound),!0}_applyLongHeaders(){if(this._gnuLongPath)this._header.name=this._gnuLongPath,this._gnuLongPath=null;if(this._gnuLongLinkPath)this._header.linkname=this._gnuLongLinkPath,this._gnuLongLinkPath=null;if(this._pax){if(this._pax.path)this._header.name=this._pax.path;if(this._pax.linkpath)this._header.linkname=this._pax.linkpath;if(this._pax.size)this._header.size=parseInt(this._pax.size,10);this._header.pax=this._pax,this._pax=null}}_decodeLongHeader(n){switch(this._header.type){case"gnu-long-path":this._gnuLongPath=On.decodeLongPath(n,this._filenameEncoding);break;case"gnu-long-link-path":this._gnuLongLinkPath=On.decodeLongPath(n,this._filenameEncoding);break;case"pax-global-header":this._paxGlobal=On.decodePax(n);break;case"pax-header":this._pax=this._paxGlobal===null?On.decodePax(n):Object.assign({},this._paxGlobal,On.decodePax(n));break}}_consumeLongHeader(){this._longHeader=!1,this._missing=x1(this._header.size);let n=this._buffer.shift(this._header.size);try{this._decodeLongHeader(n)}catch(l){return this._continueWrite(l),!1}return!0}_consumeStream(){let n=this._buffer.shiftFirst(this._missing);if(n===null)return!1;this._missing-=n.byteLength;let l=this._stream.push(n);if(this._missing===0){if(this._stream.push(null),l)this._stream._detach();return l&&this._locked===!1}return l}_createStream(){return new I1(this,this._header,this._offset)}_update(){while(this._buffer.buffered>0&&!this.destroying){if(this._missing>0){if(this._stream!==null){if(this._consumeStream()===!1)return;continue}if(this._longHeader===!0){if(this._missing>this._buffer.buffered)break;if(this._consumeLongHeader()===!1)return!1;continue}let n=this._buffer.shiftFirst(this._missing);if(n!==null)this._missing-=n.byteLength;continue}if(this._buffer.buffered<512)break;if(this._stream!==null||this._consumeHeader()===!1)return}this._continueWrite(null)}_continueWrite(n){let l=this._callback;this._callback=lc,l(n)}_write(n,l){this._callback=l,this._buffer.push(n),this._update()}_final(n){this._finished=this._missing===0&&this._buffer.buffered===0,n(this._finished?null:Error("Unexpected end of data"))}_predestroy(){this._continueWrite(null)}_destroy(n){if(this._stream)this._stream.destroy(g1(this));n(null)}[Symbol.asyncIterator](){let n=null,l=null,c=null,i=null,g=null,k=this;return this.on("entry",x),this.on("error",(y)=>{n=y}),this.on("close",$),{[Symbol.asyncIterator](){return this},next(){return new Promise(I)},return(){return h(null)},throw(y){return h(y)}};function w(y){if(!g)return;let _=g;g=null,_(y)}function I(y,_){if(n)return _(n);if(i){y({value:i,done:!1}),i=null;return}if(l=y,c=_,w(null),k._finished&&l)l({value:void 0,done:!0}),l=c=null}function x(y,_,K){if(g=K,_.on("error",lc),l)l({value:_,done:!1}),l=c=null;else i=_}function $(){if(w(n),!l)return;if(n)c(n);else l({value:void 0,done:!0});l=c=null}function h(y){return k.destroy(y),w(y),new Promise((_,K)=>{if(k.destroyed)return _({value:void 0,done:!0});k.once("close",function(){if(y)K(y);else _({value:void 0,done:!0})})})}}}h1.exports=function(l){return new $1(l)};function lc(){}function x1(n){return n&=511,n&&512-n}});var _1=E((Cx,cc)=>{var y1={S_IFMT:61440,S_IFDIR:16384,S_IFCHR:8192,S_IFBLK:24576,S_IFIFO:4096,S_IFLNK:40960};try{cc.exports=b("fs").constants||y1}catch{cc.exports=y1}});var T1=E((Mx,K1)=>{var{Readable:wI,Writable:II,getStreamError:D1}=t0(),Cn=En(),fn=_1(),fl=nc(),L1=Cn.alloc(1024);class s1 extends II{constructor(n,l,c){super({mapWritable:xI,eagerOpen:!0});if(this.written=0,this.header=l,this._callback=c,this._linkname=null,this._isLinkname=l.type==="symlink"&&!l.linkname,this._isVoid=l.type!=="file"&&l.type!=="contiguous-file",this._finished=!1,this._pack=n,this._openCallback=null,this._pack._stream===null)this._pack._stream=this;else this._pack._pending.push(this)}_open(n){if(this._openCallback=n,this._pack._stream===this)this._continueOpen()}_continuePack(n){if(this._callback===null)return;let l=this._callback;this._callback=null,l(n)}_continueOpen(){if(this._pack._stream===null)this._pack._stream=this;let n=this._openCallback;if(this._openCallback=null,n===null)return;if(this._pack.destroying)return n(Error("pack stream destroyed"));if(this._pack._finalized)return n(Error("pack stream is already finalized"));if(this._pack._stream=this,!this._isLinkname)this._pack._encode(this.header);if(this._isVoid)this._finish(),this._continuePack(null);n(null)}_write(n,l){if(this._isLinkname)return this._linkname=this._linkname?Cn.concat([this._linkname,n]):n,l(null);if(this._isVoid){if(n.byteLength>0)return l(Error("No body allowed for this entry"));return l()}if(this.written+=n.byteLength,this._pack.push(n))return l();this._pack._drain=l}_finish(){if(this._finished)return;if(this._finished=!0,this._isLinkname)this.header.linkname=this._linkname?Cn.toString(this._linkname,"utf-8"):"",this._pack._encode(this.header);q1(this._pack,this.header.size),this._pack._done(this)}_final(n){if(this.written!==this.header.size)return n(Error("Size mismatch"));this._finish(),n(null)}_getError(){return D1(this)||Error("tar entry destroyed")}_predestroy(){this._pack.destroy(this._getError())}_destroy(n){this._pack._done(this),this._continuePack(this._finished?null:this._getError()),n()}}class U1 extends wI{constructor(n){super(n);this._drain=ic,this._finalized=!1,this._finalizing=!1,this._pending=[],this._stream=null}entry(n,l,c){if(this._finalized||this.destroying)throw Error("already finalized or destroyed");if(typeof l==="function")c=l,l=null;if(!c)c=ic;if(!n.size||n.type==="symlink")n.size=0;if(!n.type)n.type=$I(n.mode);if(!n.mode)n.mode=n.type==="directory"?493:420;if(!n.uid)n.uid=0;if(!n.gid)n.gid=0;if(!n.mtime)n.mtime=new Date;if(typeof l==="string")l=Cn.from(l);let i=new s1(this,n,c);if(Cn.isBuffer(l))return n.size=l.byteLength,i.write(l),i.end(),i;if(i._isVoid)return i;return i}finalize(){if(this._stream||this._pending.length>0){this._finalizing=!0;return}if(this._finalized)return;this._finalized=!0,this.push(L1),this.push(null)}_done(n){if(n!==this._stream)return;if(this._stream=null,this._finalizing)this.finalize();if(this._pending.length)this._pending.shift()._continueOpen()}_encode(n){if(!n.pax){let l=fl.encode(n);if(l){this.push(l);return}}this._encodePax(n)}_encodePax(n){let l=fl.encodePax({name:n.name,linkname:n.linkname,pax:n.pax}),c={name:"PaxHeader",mode:n.mode,uid:n.uid,gid:n.gid,size:l.byteLength,mtime:n.mtime,type:"pax-header",linkname:n.linkname&&"PaxHeader",uname:n.uname,gname:n.gname,devmajor:n.devmajor,devminor:n.devminor};this.push(fl.encode(c)),this.push(l),q1(this,l.byteLength),c.size=n.size,c.type=n.type,this.push(fl.encode(c))}_doDrain(){let n=this._drain;this._drain=ic,n()}_predestroy(){let n=D1(this);if(this._stream)this._stream.destroy(n);while(this._pending.length){let l=this._pending.shift();l.destroy(n),l._continueOpen()}this._doDrain()}_read(n){this._doDrain(),n()}}K1.exports=function(l){return new U1(l)};function $I(n){switch(n&fn.S_IFMT){case fn.S_IFBLK:return"block-device";case fn.S_IFCHR:return"character-device";case fn.S_IFDIR:return"directory";case fn.S_IFIFO:return"fifo";case fn.S_IFLNK:return"symlink"}return"file"}function ic(){}function q1(n,l){if(l&=511,l)n.push(L1.subarray(0,512-l))}function xI(n){return Cn.isBuffer(n)?n:Cn.from(n)}});var J1=E((Vx,S1)=>{S1.exports=vl;function vl(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}vl.prototype.go=function(n){if(this.pending<this.max)G1(this,n);else this.waiting.push(n)};vl.prototype.wait=function(n){if(this.pending===0)n(this.error);else this.listeners.push(n)};vl.prototype.hold=function(){return B1(this)};function B1(n){n.pending+=1;var l=!1;return c;function c(g){if(l)throw Error("callback called twice");if(l=!0,n.error=n.error||g,n.pending-=1,n.waiting.length>0&&n.pending<n.max)G1(n,n.waiting.shift());else if(n.pending===0){var k=n.listeners;n.listeners=[],k.forEach(i)}}function i(g){g(n.error)}}function G1(n,l){l(B1(n))}});var X1=E((sI)=>{var kl=b("fs"),ol=b("util"),kc=b("stream"),j1=kc.Readable,wc=kc.Writable,yI=kc.PassThrough,_I=J1(),ml=b("events").EventEmitter;sI.createFromBuffer=DI;sI.createFromFd=LI;sI.BufferSlicer=qn;sI.FdSlicer=Un;ol.inherits(Un,ml);function Un(n,l){l=l||{},ml.call(this),this.fd=n,this.pend=new _I,this.pend.max=1,this.refCount=0,this.autoClose=!!l.autoClose}Un.prototype.read=function(n,l,c,i,g){var k=this;k.pend.go(function(w){kl.read(k.fd,n,l,c,i,function(I,x,$){w(),g(I,x,$)})})};Un.prototype.write=function(n,l,c,i,g){var k=this;k.pend.go(function(w){kl.write(k.fd,n,l,c,i,function(I,x,$){w(),g(I,x,$)})})};Un.prototype.createReadStream=function(n){return new Fl(this,n)};Un.prototype.createWriteStream=function(n){return new rl(this,n)};Un.prototype.ref=function(){this.refCount+=1};Un.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");if(n.autoClose)kl.close(n.fd,l);function l(c){if(c)n.emit("error",c);else n.emit("close")}};ol.inherits(Fl,j1);function Fl(n,l){l=l||{},j1.call(this,l),this.context=n,this.context.ref(),this.start=l.start||0,this.endOffset=l.end,this.pos=this.start,this.destroyed=!1}Fl.prototype._read=function(n){var l=this;if(l.destroyed)return;var c=Math.min(l._readableState.highWaterMark,n);if(l.endOffset!=null)c=Math.min(c,l.endOffset-l.pos);if(c<=0){l.destroyed=!0,l.push(null),l.context.unref();return}l.context.pend.go(function(i){if(l.destroyed)return i();var g=Buffer.allocUnsafe(c);kl.read(l.context.fd,g,0,c,l.pos,function(k,w){if(k)l.destroy(k);else if(w===0)l.destroyed=!0,l.push(null),l.context.unref();else l.pos+=w,l.push(g.slice(0,w));i()})})};Fl.prototype.destroy=function(n){if(this.destroyed)return;n=n||Error("stream destroyed"),this.destroyed=!0,this.emit("error",n),this.context.unref()};ol.inherits(rl,wc);function rl(n,l){l=l||{},wc.call(this,l),this.context=n,this.context.ref(),this.start=l.start||0,this.endOffset=l.end==null?1/0:+l.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}rl.prototype._write=function(n,l,c){var i=this;if(i.destroyed)return;if(i.pos+n.length>i.endOffset){var g=Error("maximum file length exceeded");g.code="ETOOBIG",i.destroy(),c(g);return}i.context.pend.go(function(k){if(i.destroyed)return k();kl.write(i.context.fd,n,0,n.length,i.pos,function(w,I){if(w)i.destroy(),k(),c(w);else i.bytesWritten+=I,i.pos+=I,i.emit("progress"),k(),c()})})};rl.prototype.destroy=function(){if(this.destroyed)return;this.destroyed=!0,this.context.unref()};ol.inherits(qn,ml);function qn(n,l){ml.call(this),l=l||{},this.refCount=0,this.buffer=n,this.maxChunkSize=l.maxChunkSize||Number.MAX_SAFE_INTEGER}qn.prototype.read=function(n,l,c,i,g){if(!(0<=l&&l<=n.length))throw RangeError("offset outside buffer: 0 <= "+l+" <= "+n.length);if(i<0)throw RangeError("position is negative: "+i);if(l+c>n.length)c=n.length-l;if(i+c>this.buffer.length)c=this.buffer.length-i;if(c<=0){setImmediate(function(){g(null,0)});return}this.buffer.copy(n,l,i,i+c),setImmediate(function(){g(null,c)})};qn.prototype.write=function(n,l,c,i,g){n.copy(this.buffer,i,l,l+c),setImmediate(function(){g(null,c,n)})};qn.prototype.createReadStream=function(n){n=n||{};var l=new yI(n);l.destroyed=!1,l.start=n.start||0,l.endOffset=n.end,l.pos=l.endOffset||this.buffer.length;var c=this.buffer.slice(l.start,l.pos),i=0;while(!0){var g=i+this.maxChunkSize;if(g>=c.length){if(i<c.length)l.write(c.slice(i,c.length));break}l.write(c.slice(i,g)),i=g}return l.end(),l.destroy=function(){l.destroyed=!0},l};qn.prototype.createWriteStream=function(n){var l=this;n=n||{};var c=new wc(n);return c.start=n.start||0,c.endOffset=n.end==null?this.buffer.length:+n.end,c.bytesWritten=0,c.pos=c.start,c.destroyed=!1,c._write=function(i,g,k){if(c.destroyed)return;var w=c.pos+i.length;if(w>c.endOffset){var I=Error("maximum file length exceeded");I.code="ETOOBIG",c.destroyed=!0,k(I);return}i.copy(l.buffer,c.pos,0,i.length),c.bytesWritten+=i.length,c.pos=w,c.emit("progress"),k()},c.destroy=function(){c.destroyed=!0},c};qn.prototype.ref=function(){this.refCount+=1};qn.prototype.unref=function(){if(this.refCount-=1,this.refCount<0)throw Error("invalid unref")};function DI(n,l){return new qn(n,l)}function LI(n,l){return new Un(n,l)}});var Z1=E((Ax,Y1)=>{var Jn=b("buffer").Buffer,Ic=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918000,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];if(typeof Int32Array<"u")Ic=new Int32Array(Ic);function Q1(n){if(Jn.isBuffer(n))return n;var l=typeof Jn.alloc==="function"&&typeof Jn.from==="function";if(typeof n==="number")return l?Jn.alloc(n):new Jn(n);else if(typeof n==="string")return l?Jn.from(n):new Jn(n);else throw Error("input must be buffer, number, or string, received "+typeof n)}function BI(n){var l=Q1(4);return l.writeInt32BE(n,0),l}function $c(n,l){if(n=Q1(n),Jn.isBuffer(l))l=l.readUInt32BE(0);var c=~~l^-1;for(var i=0;i<n.length;i++)c=Ic[(c^n[i])&255]^c>>>8;return c^-1}function xc(){return BI($c.apply(null,arguments))}xc.signed=function(){return $c.apply(null,arguments)};xc.unsigned=function(){return $c.apply(null,arguments)>>>0};Y1.exports=xc});var zc=cn(Rc(),1),{program:gn,createCommand:H$,createArgument:C$,createOption:M$,CommanderError:V$,InvalidArgumentError:N$,InvalidOptionArgumentError:A$,Command:R$,Argument:z$,Option:E$,Help:b$}=zc.default;var ql={name:"flins",version:"0.3.2",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/powroom/flins#readme",bugs:{url:"https://github.com/powroom/flins/issues"},license:"MIT",author:"flins",repository:{type:"git",url:"git+https://github.com/powroom/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","tar-stream":"^3.1.8",yauzl:"^3.3.0"},devDependencies:{"@types/bun":"latest","@types/tar-stream":"^3.1.4","@types/yauzl":"^2.10.3","@typescript/native-preview":"catalog:","bun-types":"^1.3.6",fflate:"^0.8.2",oxfmt:"^0.24.0",oxlint:"^1.39.0"}};import{existsSync as j}from"node:fs";import{homedir as $k,platform as xk}from"node:os";import{join as s}from"node:path";var q=$k(),t=process.env.XDG_CONFIG_HOME?.trim()||s(q,".config"),kn=".agents/skills";function hk(n){return n}var Q=hk({amp:{label:"Amp",skillsDir:kn,globalSkillsDir:s(t,"agents/skills"),detectInstalled:()=>j(s(t,"amp"))||j(s(q,".amp"))},antigravity:{label:"Antigravity",skillsDir:".agent/skills",globalSkillsDir:s(q,".gemini/antigravity/skills"),detectInstalled:()=>j(s(q,".gemini/antigravity"))},augment:{label:"Augment",skillsDir:".augment/skills",globalSkillsDir:s(q,".augment/skills"),detectInstalled:()=>j(s(q,".augment"))},"claude-code":{label:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:s(process.env.CLAUDE_CONFIG_DIR?.trim()||s(q,".claude"),"skills"),commandsDir:".claude/commands",globalCommandsDir:s(process.env.CLAUDE_CONFIG_DIR?.trim()||s(q,".claude"),"commands"),detectInstalled:()=>j(process.env.CLAUDE_CONFIG_DIR?.trim()||s(q,".claude"))},openclaw:{label:"OpenClaw",skillsDir:"skills",globalSkillsDir:s(q,".openclaw/skills"),detectInstalled:()=>j(s(q,".openclaw"))},cline:{label:"Cline",skillsDir:kn,globalSkillsDir:s(q,".agents/skills"),detectInstalled:()=>j(s(q,".cline"))},codebuddy:{label:"CodeBuddy",skillsDir:".codebuddy/skills",globalSkillsDir:s(q,".codebuddy/skills"),detectInstalled:()=>j(s(process.cwd(),".codebuddy"))||j(s(q,".codebuddy"))},codex:{label:"Codex",skillsDir:kn,globalSkillsDir:s(process.env.CODEX_HOME?.trim()||s(q,".codex"),"skills"),detectInstalled:()=>j(process.env.CODEX_HOME?.trim()||s(q,".codex"))||j("/etc/codex")},"command-code":{label:"Command Code",skillsDir:".commandcode/skills",globalSkillsDir:s(q,".commandcode/skills"),detectInstalled:()=>j(s(q,".commandcode"))},continue:{label:"Continue",skillsDir:".continue/skills",globalSkillsDir:s(q,".continue/skills"),detectInstalled:()=>j(s(process.cwd(),".continue"))||j(s(q,".continue"))},cortex:{label:"Cortex Code",skillsDir:".cortex/skills",globalSkillsDir:s(q,".snowflake/cortex/skills"),detectInstalled:()=>j(s(q,".snowflake/cortex"))},crush:{label:"Crush",skillsDir:".crush/skills",globalSkillsDir:s(t,"crush/skills"),detectInstalled:()=>j(s(t,"crush"))},cursor:{label:"Cursor",skillsDir:kn,globalSkillsDir:s(q,".cursor/skills"),detectInstalled:()=>j(s(q,".cursor"))},droid:{label:"Droid",skillsDir:".factory/skills",globalSkillsDir:s(q,".factory/skills"),commandsDir:".factory/commands",globalCommandsDir:s(q,".factory/commands"),detectInstalled:()=>j(s(q,".factory"))},"gemini-cli":{label:"Gemini CLI",skillsDir:kn,globalSkillsDir:s(q,".gemini/skills"),detectInstalled:()=>j(s(q,".gemini"))},"github-copilot":{label:"GitHub Copilot",skillsDir:kn,globalSkillsDir:s(q,".copilot/skills"),detectInstalled:()=>j(s(q,".copilot"))},goose:{label:"Goose",skillsDir:".goose/skills",globalSkillsDir:s(t,"goose/skills"),detectInstalled:()=>j(s(t,"goose"))||j(s(q,".goose"))},junie:{label:"Junie",skillsDir:".junie/skills",globalSkillsDir:s(q,".junie/skills"),detectInstalled:()=>j(s(q,".junie"))},"iflow-cli":{label:"iFlow CLI",skillsDir:".iflow/skills",globalSkillsDir:s(q,".iflow/skills"),detectInstalled:()=>j(s(q,".iflow"))},kilo:{label:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:s(q,".kilocode/skills"),detectInstalled:()=>j(s(q,".kilocode"))},"kimi-cli":{label:"Kimi Code CLI",skillsDir:kn,globalSkillsDir:s(t,"agents/skills"),detectInstalled:()=>j(s(q,".kimi"))},"kiro-cli":{label:"Kiro CLI",skillsDir:".kiro/skills",globalSkillsDir:s(q,".kiro/skills"),detectInstalled:()=>j(s(q,".kiro"))},kode:{label:"Kode",skillsDir:".kode/skills",globalSkillsDir:s(q,".kode/skills"),detectInstalled:()=>j(s(q,".kode"))},letta:{label:"Letta",skillsDir:".skills",globalSkillsDir:s(q,".letta/skills"),detectInstalled:()=>j(s(q,".letta"))},mcpjam:{label:"MCPJam",skillsDir:".mcpjam/skills",globalSkillsDir:s(q,".mcpjam/skills"),detectInstalled:()=>j(s(q,".mcpjam"))},"mistral-vibe":{label:"Mistral Vibe",skillsDir:".vibe/skills",globalSkillsDir:s(q,".vibe/skills"),detectInstalled:()=>j(s(q,".vibe"))},mux:{label:"Mux",skillsDir:".mux/skills",globalSkillsDir:s(q,".mux/skills"),detectInstalled:()=>j(s(q,".mux"))},opencode:{label:"OpenCode",skillsDir:kn,globalSkillsDir:s(t,"opencode/skills"),commandsDir:".opencode/commands",globalCommandsDir:s(t,"opencode/commands"),detectInstalled:()=>j(s(t,"opencode"))},openhands:{label:"OpenHands",skillsDir:".openhands/skills",globalSkillsDir:s(q,".openhands/skills"),detectInstalled:()=>j(s(q,".openhands"))},pi:{label:"Pi",skillsDir:".pi/skills",globalSkillsDir:s(q,".pi/agent/skills"),detectInstalled:()=>j(s(q,".pi/agent"))},qoder:{label:"Qoder",skillsDir:".qoder/skills",globalSkillsDir:s(q,".qoder/skills"),detectInstalled:()=>j(s(q,".qoder"))},"qwen-code":{label:"Qwen Code",skillsDir:".qwen/skills",globalSkillsDir:s(q,".qwen/skills"),detectInstalled:()=>j(s(q,".qwen"))},replit:{label:"Replit",skillsDir:kn,globalSkillsDir:s(t,"agents/skills"),detectInstalled:()=>j(s(process.cwd(),".replit"))},roo:{label:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:s(q,".roo/skills"),detectInstalled:()=>j(s(q,".roo"))},trae:{label:"Trae",skillsDir:".trae/skills",globalSkillsDir:s(q,".trae/skills"),detectInstalled:()=>j(s(q,".trae"))},"trae-cn":{label:"Trae CN",skillsDir:".trae/skills",globalSkillsDir:s(q,".trae-cn/skills"),detectInstalled:()=>j(s(q,".trae-cn"))},windsurf:{label:"Windsurf",skillsDir:".windsurf/skills",globalSkillsDir:s(q,".codeium/windsurf/skills"),detectInstalled:()=>j(s(q,".codeium/windsurf"))||j(s(q,".windsurf"))},zencoder:{label:"Zencoder",skillsDir:".zencoder/skills",globalSkillsDir:s(q,".zencoder/skills"),detectInstalled:()=>j(s(q,".zencoder"))},neovate:{label:"Neovate",skillsDir:".neovate/skills",globalSkillsDir:s(q,".neovate/skills"),detectInstalled:()=>j(s(q,".neovate"))},pochi:{label:"Pochi",skillsDir:".pochi/skills",globalSkillsDir:s(q,".pochi/skills"),detectInstalled:()=>j(s(q,".pochi"))},adal:{label:"AdaL",skillsDir:".adal/skills",globalSkillsDir:s(q,".adal/skills"),detectInstalled:()=>j(s(q,".adal"))},universal:{label:"Universal",skillsDir:kn,globalSkillsDir:s(t,"agents/skills"),detectInstalled:()=>!1}});function wn(){return Object.keys(Q)}function Ec(){return wn().filter((n)=>{let l=Q[n];return Boolean(l.commandsDir)})}function Nn(){return wn().filter((n)=>Q[n].skillsDir===kn)}function Kl(){let n=new Set(Nn());return wn().filter((l)=>!n.has(l))}function bc(){return`OpenCode, Claude Code, Codex, Cursor, and ${wn().length-4} more`}function Qn(n){return n.replace(q,"~")}function u0(n){let l=[],c=[],i=new Set;for(let g of n){let k=g.trim().toLowerCase();if(!(k in Q)){c.push(g);continue}if(i.has(k))continue;i.add(k),l.push(k)}return{agents:l,invalid:c}}function Tl(n){let l=Q[n];return Boolean(l.commandsDir)}function y0(){return wn().filter((n)=>Q[n].detectInstalled())}function Oc(n){if(n.startsWith("~"))return n.replace("~",q);if(xk()==="win32"&&n.startsWith("%USERPROFILE%"))return n.replace("%USERPROFILE%",q);return n}function _0(n,l,c=process.cwd()){let i=l==="global"?Q[n].globalSkillsDir:Q[n].skillsDir;return l==="global"?Oc(i):s(c,i)}function D0(n,l,c=process.cwd()){let i=Q[n],g=l==="global"?i.globalCommandsDir:i.commandsDir;if(!g)return null;return l==="global"?Oc(g):s(c,g)}function fc(n,l){let c=new Set(n),i=new Map;for(let g of wn()){let k=l==="global"?Q[g].globalSkillsDir:Q[g].skillsDir,w=i.get(k)??[];w.push(g),i.set(k,w)}return Array.from(i.entries()).filter(([,g])=>g.length>1&&g.some((k)=>c.has(k))).map(([g,k])=>`${Qn(g)} is shared by ${k.map((w)=>Q[w].label).join(", ")}`)}var Ql=cn(Dn(),1),f=cn(U0(),1);import{stdout as S0,stdin as pc}from"node:process";import*as Bn from"node:readline";import sk from"node:readline";import{ReadStream as Fc}from"node:tty";var Uk=(n)=>n===161||n===164||n===167||n===168||n===170||n===173||n===174||n>=176&&n<=180||n>=182&&n<=186||n>=188&&n<=191||n===198||n===208||n===215||n===216||n>=222&&n<=225||n===230||n>=232&&n<=234||n===236||n===237||n===240||n===242||n===243||n>=247&&n<=250||n===252||n===254||n===257||n===273||n===275||n===283||n===294||n===295||n===299||n>=305&&n<=307||n===312||n>=319&&n<=322||n===324||n>=328&&n<=331||n===333||n===338||n===339||n===358||n===359||n===363||n===462||n===464||n===466||n===468||n===470||n===472||n===474||n===476||n===593||n===609||n===708||n===711||n>=713&&n<=715||n===717||n===720||n>=728&&n<=731||n===733||n===735||n>=768&&n<=879||n>=913&&n<=929||n>=931&&n<=937||n>=945&&n<=961||n>=963&&n<=969||n===1025||n>=1040&&n<=1103||n===1105||n===8208||n>=8211&&n<=8214||n===8216||n===8217||n===8220||n===8221||n>=8224&&n<=8226||n>=8228&&n<=8231||n===8240||n===8242||n===8243||n===8245||n===8251||n===8254||n===8308||n===8319||n>=8321&&n<=8324||n===8364||n===8451||n===8453||n===8457||n===8467||n===8470||n===8481||n===8482||n===8486||n===8491||n===8531||n===8532||n>=8539&&n<=8542||n>=8544&&n<=8555||n>=8560&&n<=8569||n===8585||n>=8592&&n<=8601||n===8632||n===8633||n===8658||n===8660||n===8679||n===8704||n===8706||n===8707||n===8711||n===8712||n===8715||n===8719||n===8721||n===8725||n===8730||n>=8733&&n<=8736||n===8739||n===8741||n>=8743&&n<=8748||n===8750||n>=8756&&n<=8759||n===8764||n===8765||n===8776||n===8780||n===8786||n===8800||n===8801||n>=8804&&n<=8807||n===8810||n===8811||n===8814||n===8815||n===8834||n===8835||n===8838||n===8839||n===8853||n===8857||n===8869||n===8895||n===8978||n>=9312&&n<=9449||n>=9451&&n<=9547||n>=9552&&n<=9587||n>=9600&&n<=9615||n>=9618&&n<=9621||n===9632||n===9633||n>=9635&&n<=9641||n===9650||n===9651||n===9654||n===9655||n===9660||n===9661||n===9664||n===9665||n>=9670&&n<=9672||n===9675||n>=9678&&n<=9681||n>=9698&&n<=9701||n===9711||n===9733||n===9734||n===9737||n===9742||n===9743||n===9756||n===9758||n===9792||n===9794||n===9824||n===9825||n>=9827&&n<=9829||n>=9831&&n<=9834||n===9836||n===9837||n===9839||n===9886||n===9887||n===9919||n>=9926&&n<=9933||n>=9935&&n<=9939||n>=9941&&n<=9953||n===9955||n===9960||n===9961||n>=9963&&n<=9969||n===9972||n>=9974&&n<=9977||n===9979||n===9980||n===9982||n===9983||n===10045||n>=10102&&n<=10111||n>=11094&&n<=11097||n>=12872&&n<=12879||n>=57344&&n<=63743||n>=65024&&n<=65039||n===65533||n>=127232&&n<=127242||n>=127248&&n<=127277||n>=127280&&n<=127337||n>=127344&&n<=127373||n===127375||n===127376||n>=127387&&n<=127404||n>=917760&&n<=917999||n>=983040&&n<=1048573||n>=1048576&&n<=1114109,qk=(n)=>n===12288||n>=65281&&n<=65376||n>=65504&&n<=65510,Kk=(n)=>n>=4352&&n<=4447||n===8986||n===8987||n===9001||n===9002||n>=9193&&n<=9196||n===9200||n===9203||n===9725||n===9726||n===9748||n===9749||n>=9800&&n<=9811||n===9855||n===9875||n===9889||n===9898||n===9899||n===9917||n===9918||n===9924||n===9925||n===9934||n===9940||n===9962||n===9970||n===9971||n===9973||n===9978||n===9981||n===9989||n===9994||n===9995||n===10024||n===10060||n===10062||n>=10067&&n<=10069||n===10071||n>=10133&&n<=10135||n===10160||n===10175||n===11035||n===11036||n===11088||n===11093||n>=11904&&n<=11929||n>=11931&&n<=12019||n>=12032&&n<=12245||n>=12272&&n<=12287||n>=12289&&n<=12350||n>=12353&&n<=12438||n>=12441&&n<=12543||n>=12549&&n<=12591||n>=12593&&n<=12686||n>=12688&&n<=12771||n>=12783&&n<=12830||n>=12832&&n<=12871||n>=12880&&n<=19903||n>=19968&&n<=42124||n>=42128&&n<=42182||n>=43360&&n<=43388||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65040&&n<=65049||n>=65072&&n<=65106||n>=65108&&n<=65126||n>=65128&&n<=65131||n>=94176&&n<=94180||n===94192||n===94193||n>=94208&&n<=100343||n>=100352&&n<=101589||n>=101632&&n<=101640||n>=110576&&n<=110579||n>=110581&&n<=110587||n===110589||n===110590||n>=110592&&n<=110882||n===110898||n>=110928&&n<=110930||n===110933||n>=110948&&n<=110951||n>=110960&&n<=111355||n===126980||n===127183||n===127374||n>=127377&&n<=127386||n>=127488&&n<=127490||n>=127504&&n<=127547||n>=127552&&n<=127560||n===127568||n===127569||n>=127584&&n<=127589||n>=127744&&n<=127776||n>=127789&&n<=127797||n>=127799&&n<=127868||n>=127870&&n<=127891||n>=127904&&n<=127946||n>=127951&&n<=127955||n>=127968&&n<=127984||n===127988||n>=127992&&n<=128062||n===128064||n>=128066&&n<=128252||n>=128255&&n<=128317||n>=128331&&n<=128334||n>=128336&&n<=128359||n===128378||n===128405||n===128406||n===128420||n>=128507&&n<=128591||n>=128640&&n<=128709||n===128716||n>=128720&&n<=128722||n>=128725&&n<=128727||n>=128732&&n<=128735||n===128747||n===128748||n>=128756&&n<=128764||n>=128992&&n<=129003||n===129008||n>=129292&&n<=129338||n>=129340&&n<=129349||n>=129351&&n<=129535||n>=129648&&n<=129660||n>=129664&&n<=129672||n>=129680&&n<=129725||n>=129727&&n<=129733||n>=129742&&n<=129755||n>=129760&&n<=129768||n>=129776&&n<=129784||n>=131072&&n<=196605||n>=196608&&n<=262141,q0=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,Sl=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Jl=/\t{1,1000}/y,K0=/[\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,jl=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Tk=/\p{M}+/gu,Bk={limit:1/0,ellipsis:""},tc=(n,l={},c={})=>{let i=l.limit??1/0,g=l.ellipsis??"",k=l?.ellipsisWidth??(g?tc(g,Bk,c).width:0),w=c.ansiWidth??0,I=c.controlWidth??0,x=c.tabWidth??8,$=c.ambiguousWidth??1,h=c.emojiWidth??2,y=c.fullWidthWidth??2,_=c.regularWidth??1,K=c.wideWidth??2,u=0,L=0,T=n.length,G=0,J=!1,X=T,C=Math.max(0,i-k),N=0,M=0,B=0,S=0;n:for(;;){if(M>N||L>=T&&L>u){let m=n.slice(N,M)||n.slice(u,L);G=0;for(let a of m.replaceAll(Tk,"")){let F=a.codePointAt(0)||0;if(qk(F)?S=y:Kk(F)?S=K:$!==_&&Uk(F)?S=$:S=_,B+S>C&&(X=Math.min(X,Math.max(N,u)+G)),B+S>i){J=!0;break n}G+=a.length,B+=S}N=M=0}if(L>=T)break;if(jl.lastIndex=L,jl.test(n)){if(G=jl.lastIndex-L,S=G*_,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/_))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=jl.lastIndex;continue}if(q0.lastIndex=L,q0.test(n)){if(B+w>C&&(X=Math.min(X,L)),B+w>i){J=!0;break}B+=w,N=u,M=L,L=u=q0.lastIndex;continue}if(Sl.lastIndex=L,Sl.test(n)){if(G=Sl.lastIndex-L,S=G*I,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/I))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=Sl.lastIndex;continue}if(Jl.lastIndex=L,Jl.test(n)){if(G=Jl.lastIndex-L,S=G*x,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/x))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=Jl.lastIndex;continue}if(K0.lastIndex=L,K0.test(n)){if(B+h>C&&(X=Math.min(X,L)),B+h>i){J=!0;break}B+=h,N=u,M=L,L=u=K0.lastIndex;continue}L+=1}return{width:J?C:B,index:J?X:T,truncated:J,ellipsed:J&&i>=k}},Gk={limit:1/0,ellipsis:"",ellipsisWidth:0},Fn=(n,l={})=>tc(n,Gk,l).width,Zl="\x1B",ec="",Sk=39,J0="\x07",ni="[",Jk="]",li="m",j0=`${Jk}8;;`,rc=new RegExp(`(?:\\${ni}(?<code>\\d+)m|\\${j0}(?<uri>.*)${J0})`,"y"),jk=(n)=>{if(n>=30&&n<=37||n>=90&&n<=97)return 39;if(n>=40&&n<=47||n>=100&&n<=107)return 49;if(n===1||n===2)return 22;if(n===3)return 23;if(n===4)return 24;if(n===7)return 27;if(n===8)return 28;if(n===9)return 29;if(n===0)return 0},dc=(n)=>`${Zl}${ni}${n}${li}`,ac=(n)=>`${Zl}${j0}${n}${J0}`,Xk=(n)=>n.map((l)=>Fn(l)),T0=(n,l,c)=>{let i=l[Symbol.iterator](),g=!1,k=!1,w=n.at(-1),I=w===void 0?0:Fn(w),x=i.next(),$=i.next(),h=0;for(;!x.done;){let y=x.value,_=Fn(y);I+_<=c?n[n.length-1]+=y:(n.push(y),I=0),(y===Zl||y===ec)&&(g=!0,k=l.startsWith(j0,h+1)),g?k?y===J0&&(g=!1,k=!1):y===li&&(g=!1):(I+=_,I===c&&!$.done&&(n.push(""),I=0)),x=$,$=i.next(),h+=y.length}w=n.at(-1),!I&&w!==void 0&&w.length>0&&n.length>1&&(n[n.length-2]+=n.pop())},Qk=(n)=>{let l=n.split(" "),c=l.length;for(;c>0&&!(Fn(l[c-1])>0);)c--;return c===l.length?n:l.slice(0,c).join(" ")+l.slice(c).join("")},Yk=(n,l,c={})=>{if(c.trim!==!1&&n.trim()==="")return"";let i="",g,k,w=n.split(" "),I=Xk(w),x=[""];for(let[u,L]of w.entries()){c.trim!==!1&&(x[x.length-1]=(x.at(-1)??"").trimStart());let T=Fn(x.at(-1)??"");if(u!==0&&(T>=l&&(c.wordWrap===!1||c.trim===!1)&&(x.push(""),T=0),(T>0||c.trim===!1)&&(x[x.length-1]+=" ",T++)),c.hard&&I[u]>l){let G=l-T,J=1+Math.floor((I[u]-G-1)/l);Math.floor((I[u]-1)/l)<J&&x.push(""),T0(x,L,l);continue}if(T+I[u]>l&&T>0&&I[u]>0){if(c.wordWrap===!1&&T<l){T0(x,L,l);continue}x.push("")}if(T+I[u]>l&&c.wordWrap===!1){T0(x,L,l);continue}x[x.length-1]+=L}c.trim!==!1&&(x=x.map((u)=>Qk(u)));let $=x.join(`
|
|
31
|
+
`),h=$[Symbol.iterator](),y=h.next(),_=h.next(),K=0;for(;!y.done;){let u=y.value,L=_.value;if(i+=u,u===Zl||u===ec){rc.lastIndex=K+1;let G=rc.exec($)?.groups;if(G?.code!==void 0){let J=Number.parseFloat(G.code);g=J===Sk?void 0:J}else G?.uri!==void 0&&(k=G.uri.length===0?void 0:G.uri)}let T=g?jk(g):void 0;L===`
|
|
32
|
+
`?(k&&(i+=ac("")),g&&T&&(i+=dc(T))):u===`
|
|
33
|
+
`&&(g&&T&&(i+=dc(g)),k&&(i+=ac(k))),K+=u.length,y=_,_=h.next()}return i};function B0(n,l,c){return String(n).normalize().replaceAll(`\r
|
|
31
34
|
`,`
|
|
32
35
|
`).split(`
|
|
33
|
-
`).map((
|
|
34
|
-
`)}var
|
|
35
|
-
`),
|
|
36
|
-
`),
|
|
37
|
-
`).map((
|
|
38
|
-
`)}class
|
|
39
|
-
`),
|
|
40
|
-
`).length-1;this.output.write(
|
|
41
|
-
`);this.output.write(
|
|
42
|
-
`).slice(
|
|
43
|
-
`)),this._prevFrame=l;return}}this.output.write(Y.erase.down())}this.output.write(l),this.state==="initial"&&(this.state="active"),this._prevFrame=l}}}function Io(l,n){if(l===void 0||n.length===0)return 0;let s=n.findIndex((r)=>r.value===l);return s!==-1?s:0}function to(l,n){return(n.label??String(n.value)).toLowerCase().includes(l.toLowerCase())}function wo(l,n){if(n)return l?n:n[0]}class Kn extends Nl{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#l=0;#s="";#r;#n;get cursor(){return this.#l}get userInputWithCursor(){if(!this.userInput)return sn.default.inverse(sn.default.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let l=this.userInput.slice(0,this._cursor),[n,...s]=this.userInput.slice(this._cursor);return`${l}${sn.default.inverse(n)}${s.join("")}`}get options(){return typeof this.#n=="function"?this.#n():this.#n}constructor(l){super(l),this.#n=l.options;let n=this.options;this.filteredOptions=[...n],this.multiple=l.multiple===!0,this.#r=l.filter??to;let s;if(l.initialValue&&Array.isArray(l.initialValue)?this.multiple?s=l.initialValue:s=l.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(s=[this.options[0].value]),s)for(let r of s){let i=n.findIndex((o)=>o.value===r);i!==-1&&(this.toggleSelected(r),this.#l=i)}this.focusedValue=this.options[this.#l]?.value,this.on("key",(r,i)=>this.#i(r,i)),this.on("userInput",(r)=>this.#o(r))}_isActionKey(l,n){return l==="\t"||this.multiple&&this.isNavigating&&n.name==="space"&&l!==void 0&&l!==""}#i(l,n){let s=n.name==="up",r=n.name==="down",i=n.name==="return";s||r?(this.#l=Math.max(0,Math.min(this.#l+(s?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#l]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):i?this.value=wo(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(n.name==="tab"||this.isNavigating&&n.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(l){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(l)?this.selectedValues=this.selectedValues.filter((n)=>n!==l):this.selectedValues=[...this.selectedValues,l]:this.selectedValues=[l])}#o(l){if(l!==this.#s){this.#s=l;let n=this.options;l?this.filteredOptions=n.filter((s)=>this.#r(l,s)):this.filteredOptions=[...n],this.#l=Io(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#l]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}var vs=class extends Nl{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(l){super(l,!1),this.value=!!l.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",(n)=>{this.output.write(Y.cursor.move(0,-1)),this.value=n,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};class ps extends Nl{options;cursor=0;#l;getGroupItems(l){return this.options.filter((n)=>n.group===l)}isGroupSelected(l){let n=this.getGroupItems(l),s=this.value;return s===void 0?!1:n.every((r)=>s.includes(r.value))}toggleValue(){let l=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),l.group===!0){let n=l.value,s=this.getGroupItems(n);this.isGroupSelected(n)?this.value=this.value.filter((r)=>s.findIndex((i)=>i.value===r)===-1):this.value=[...this.value,...s.map((r)=>r.value)],this.value=Array.from(new Set(this.value))}else{let n=this.value.includes(l.value);this.value=n?this.value.filter((s)=>s!==l.value):[...this.value,l.value]}}constructor(l){super(l,!1);let{options:n}=l;this.#l=l.selectableGroups!==!1,this.options=Object.entries(n).flatMap(([s,r])=>[{value:s,group:!0,label:s},...r.map((i)=>({...i,group:s}))]),this.value=[...l.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:s})=>s===l.cursorAt),this.#l?0:1),this.on("cursor",(s)=>{switch(s){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let r=this.options[this.cursor]?.group===!0;!this.#l&&r&&(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 r=this.options[this.cursor]?.group===!0;!this.#l&&r&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}}function rn(l,n,s){let r=l+n,i=Math.max(s.length-1,0),o=r<0?i:r>i?0:r;return s[o].disabled?rn(o,n<0?-1:1,s):o}class Mn extends Nl{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter((l)=>l.disabled!==!0)}toggleAll(){let l=this._enabledOptions,n=this.value!==void 0&&this.value.length===l.length;this.value=n?[]:l.map((s)=>s.value)}toggleInvert(){let l=this.value;if(!l)return;let n=this._enabledOptions.filter((s)=>!l.includes(s.value));this.value=n.map((s)=>s.value)}toggleValue(){this.value===void 0&&(this.value=[]);let l=this.value.includes(this._value);this.value=l?this.value.filter((n)=>n!==this._value):[...this.value,this._value]}constructor(l){super(l,!1),this.options=l.options,this.value=[...l.initialValues??[]];let n=Math.max(this.options.findIndex(({value:s})=>s===l.cursorAt),0);this.cursor=this.options[n].disabled?rn(n,1,this.options):n,this.on("key",(s)=>{s==="a"&&this.toggleAll(),s==="i"&&this.toggleInvert()}),this.on("cursor",(s)=>{switch(s){case"left":case"up":this.cursor=rn(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=rn(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}}var g=p(kl(),1);import O from"node:process";var Gl=p(qn(),1);function Do(){return O.platform!=="win32"?O.env.TERM!=="linux":!!O.env.CI||!!O.env.WT_SESSION||!!O.env.TERMINUS_SUBLIME||O.env.ConEmuTask==="{cmd::Cmder}"||O.env.TERM_PROGRAM==="Terminus-Sublime"||O.env.TERM_PROGRAM==="vscode"||O.env.TERM==="xterm-256color"||O.env.TERM==="alacritty"||O.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Vn=Do(),To=()=>process.env.CI==="true";var J=(l,n)=>Vn?l:n,Lo=J("◆","*"),or=J("■","x"),cr=J("▲","x"),bn=J("◇","o"),Bo=J("┌","T"),G=J("│","|"),Tl=J("└","—"),Ca=J("┐","T"),Ga=J("┘","—"),es=J("●",">"),lr=J("○"," "),Ro=J("◻","[•]"),On=J("◼","[+]"),Fn=J("◻","[ ]"),qa=J("▪","•"),nr=J("─","-"),Uo=J("╮","+"),xo=J("├","+"),jo=J("╯","+"),No=J("╰","+"),ha=J("╭","+"),Co=J("●","•"),Go=J("◆","*"),qo=J("▲","!"),ho=J("■","x"),pn=(l)=>{switch(l){case"initial":case"active":return g.default.cyan(Lo);case"cancel":return g.default.red(or);case"error":return g.default.yellow(cr);case"submit":return g.default.green(bn)}},zo=(l)=>{switch(l){case"initial":case"active":return g.default.cyan(G);case"cancel":return g.default.red(G);case"error":return g.default.yellow(G);case"submit":return g.default.green(G)}},Jo=(l)=>l===161||l===164||l===167||l===168||l===170||l===173||l===174||l>=176&&l<=180||l>=182&&l<=186||l>=188&&l<=191||l===198||l===208||l===215||l===216||l>=222&&l<=225||l===230||l>=232&&l<=234||l===236||l===237||l===240||l===242||l===243||l>=247&&l<=250||l===252||l===254||l===257||l===273||l===275||l===283||l===294||l===295||l===299||l>=305&&l<=307||l===312||l>=319&&l<=322||l===324||l>=328&&l<=331||l===333||l===338||l===339||l===358||l===359||l===363||l===462||l===464||l===466||l===468||l===470||l===472||l===474||l===476||l===593||l===609||l===708||l===711||l>=713&&l<=715||l===717||l===720||l>=728&&l<=731||l===733||l===735||l>=768&&l<=879||l>=913&&l<=929||l>=931&&l<=937||l>=945&&l<=961||l>=963&&l<=969||l===1025||l>=1040&&l<=1103||l===1105||l===8208||l>=8211&&l<=8214||l===8216||l===8217||l===8220||l===8221||l>=8224&&l<=8226||l>=8228&&l<=8231||l===8240||l===8242||l===8243||l===8245||l===8251||l===8254||l===8308||l===8319||l>=8321&&l<=8324||l===8364||l===8451||l===8453||l===8457||l===8467||l===8470||l===8481||l===8482||l===8486||l===8491||l===8531||l===8532||l>=8539&&l<=8542||l>=8544&&l<=8555||l>=8560&&l<=8569||l===8585||l>=8592&&l<=8601||l===8632||l===8633||l===8658||l===8660||l===8679||l===8704||l===8706||l===8707||l===8711||l===8712||l===8715||l===8719||l===8721||l===8725||l===8730||l>=8733&&l<=8736||l===8739||l===8741||l>=8743&&l<=8748||l===8750||l>=8756&&l<=8759||l===8764||l===8765||l===8776||l===8780||l===8786||l===8800||l===8801||l>=8804&&l<=8807||l===8810||l===8811||l===8814||l===8815||l===8834||l===8835||l===8838||l===8839||l===8853||l===8857||l===8869||l===8895||l===8978||l>=9312&&l<=9449||l>=9451&&l<=9547||l>=9552&&l<=9587||l>=9600&&l<=9615||l>=9618&&l<=9621||l===9632||l===9633||l>=9635&&l<=9641||l===9650||l===9651||l===9654||l===9655||l===9660||l===9661||l===9664||l===9665||l>=9670&&l<=9672||l===9675||l>=9678&&l<=9681||l>=9698&&l<=9701||l===9711||l===9733||l===9734||l===9737||l===9742||l===9743||l===9756||l===9758||l===9792||l===9794||l===9824||l===9825||l>=9827&&l<=9829||l>=9831&&l<=9834||l===9836||l===9837||l===9839||l===9886||l===9887||l===9919||l>=9926&&l<=9933||l>=9935&&l<=9939||l>=9941&&l<=9953||l===9955||l===9960||l===9961||l>=9963&&l<=9969||l===9972||l>=9974&&l<=9977||l===9979||l===9980||l===9982||l===9983||l===10045||l>=10102&&l<=10111||l>=11094&&l<=11097||l>=12872&&l<=12879||l>=57344&&l<=63743||l>=65024&&l<=65039||l===65533||l>=127232&&l<=127242||l>=127248&&l<=127277||l>=127280&&l<=127337||l>=127344&&l<=127373||l===127375||l===127376||l>=127387&&l<=127404||l>=917760&&l<=917999||l>=983040&&l<=1048573||l>=1048576&&l<=1114109,_o=(l)=>l===12288||l>=65281&&l<=65376||l>=65504&&l<=65510,Ho=(l)=>l>=4352&&l<=4447||l===8986||l===8987||l===9001||l===9002||l>=9193&&l<=9196||l===9200||l===9203||l===9725||l===9726||l===9748||l===9749||l>=9800&&l<=9811||l===9855||l===9875||l===9889||l===9898||l===9899||l===9917||l===9918||l===9924||l===9925||l===9934||l===9940||l===9962||l===9970||l===9971||l===9973||l===9978||l===9981||l===9989||l===9994||l===9995||l===10024||l===10060||l===10062||l>=10067&&l<=10069||l===10071||l>=10133&&l<=10135||l===10160||l===10175||l===11035||l===11036||l===11088||l===11093||l>=11904&&l<=11929||l>=11931&&l<=12019||l>=12032&&l<=12245||l>=12272&&l<=12287||l>=12289&&l<=12350||l>=12353&&l<=12438||l>=12441&&l<=12543||l>=12549&&l<=12591||l>=12593&&l<=12686||l>=12688&&l<=12771||l>=12783&&l<=12830||l>=12832&&l<=12871||l>=12880&&l<=19903||l>=19968&&l<=42124||l>=42128&&l<=42182||l>=43360&&l<=43388||l>=44032&&l<=55203||l>=63744&&l<=64255||l>=65040&&l<=65049||l>=65072&&l<=65106||l>=65108&&l<=65126||l>=65128&&l<=65131||l>=94176&&l<=94180||l===94192||l===94193||l>=94208&&l<=100343||l>=100352&&l<=101589||l>=101632&&l<=101640||l>=110576&&l<=110579||l>=110581&&l<=110587||l===110589||l===110590||l>=110592&&l<=110882||l===110898||l>=110928&&l<=110930||l===110933||l>=110948&&l<=110951||l>=110960&&l<=111355||l===126980||l===127183||l===127374||l>=127377&&l<=127386||l>=127488&&l<=127490||l>=127504&&l<=127547||l>=127552&&l<=127560||l===127568||l===127569||l>=127584&&l<=127589||l>=127744&&l<=127776||l>=127789&&l<=127797||l>=127799&&l<=127868||l>=127870&&l<=127891||l>=127904&&l<=127946||l>=127951&&l<=127955||l>=127968&&l<=127984||l===127988||l>=127992&&l<=128062||l===128064||l>=128066&&l<=128252||l>=128255&&l<=128317||l>=128331&&l<=128334||l>=128336&&l<=128359||l===128378||l===128405||l===128406||l===128420||l>=128507&&l<=128591||l>=128640&&l<=128709||l===128716||l>=128720&&l<=128722||l>=128725&&l<=128727||l>=128732&&l<=128735||l===128747||l===128748||l>=128756&&l<=128764||l>=128992&&l<=129003||l===129008||l>=129292&&l<=129338||l>=129340&&l<=129349||l>=129351&&l<=129535||l>=129648&&l<=129660||l>=129664&&l<=129672||l>=129680&&l<=129725||l>=129727&&l<=129733||l>=129742&&l<=129755||l>=129760&&l<=129768||l>=129776&&l<=129784||l>=131072&&l<=196605||l>=196608&&l<=262141,Pn=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,an=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,fn=/\t{1,1000}/y,Wn=/[\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,kn=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,Xo=/\p{M}+/gu,Yo={limit:1/0,ellipsis:""},ar=(l,n={},s={})=>{let r=n.limit??1/0,i=n.ellipsis??"",o=n?.ellipsisWidth??(i?ar(i,Yo,s).width:0),c=s.ansiWidth??0,a=s.controlWidth??0,k=s.tabWidth??8,f=s.ambiguousWidth??1,b=s.emojiWidth??2,m=s.fullWidthWidth??2,t=s.regularWidth??1,L=s.wideWidth??2,y=0,$=0,d=l.length,B=0,T=!1,N=d,h=Math.max(0,r-o),z=0,_=0,w=0,D=0;l:for(;;){if(_>z||$>=d&&$>y){let Q=l.slice(z,_)||l.slice(y,$);B=0;for(let W of Q.replaceAll(Xo,"")){let K=W.codePointAt(0)||0;if(_o(K)?D=m:Ho(K)?D=L:f!==t&&Jo(K)?D=f:D=t,w+D>h&&(N=Math.min(N,Math.max(z,y)+B)),w+D>r){T=!0;break l}B+=W.length,w+=D}z=_=0}if($>=d)break;if(kn.lastIndex=$,kn.test(l)){if(B=kn.lastIndex-$,D=B*t,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/t))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=kn.lastIndex;continue}if(Pn.lastIndex=$,Pn.test(l)){if(w+c>h&&(N=Math.min(N,$)),w+c>r){T=!0;break}w+=c,z=y,_=$,$=y=Pn.lastIndex;continue}if(an.lastIndex=$,an.test(l)){if(B=an.lastIndex-$,D=B*a,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/a))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=an.lastIndex;continue}if(fn.lastIndex=$,fn.test(l)){if(B=fn.lastIndex-$,D=B*k,w+D>h&&(N=Math.min(N,$+Math.floor((h-w)/k))),w+D>r){T=!0;break}w+=D,z=y,_=$,$=y=fn.lastIndex;continue}if(Wn.lastIndex=$,Wn.test(l)){if(w+b>h&&(N=Math.min(N,$)),w+b>r){T=!0;break}w+=b,z=y,_=$,$=y=Wn.lastIndex;continue}$+=1}return{width:T?h:w,index:T?N:d,truncated:T,ellipsed:T&&r>=o}},Zo={limit:1/0,ellipsis:"",ellipsisWidth:0},il=(l,n={})=>ar(l,Zo,n).width,yn="\x1B",fr="",Ao=39,en="\x07",kr="[",Qo="]",br="m",ls=`${Qo}8;;`,sr=new RegExp(`(?:\\${kr}(?<code>\\d+)m|\\${ls}(?<uri>.*)${en})`,"y"),Ko=(l)=>{if(l>=30&&l<=37||l>=90&&l<=97)return 39;if(l>=40&&l<=47||l>=100&&l<=107)return 49;if(l===1||l===2)return 22;if(l===3)return 23;if(l===4)return 24;if(l===7)return 27;if(l===8)return 28;if(l===9)return 29;if(l===0)return 0},rr=(l)=>`${yn}${kr}${l}${br}`,ir=(l)=>`${yn}${ls}${l}${en}`,Mo=(l)=>l.map((n)=>il(n)),En=(l,n,s)=>{let r=n[Symbol.iterator](),i=!1,o=!1,c=l.at(-1),a=c===void 0?0:il(c),k=r.next(),f=r.next(),b=0;for(;!k.done;){let m=k.value,t=il(m);a+t<=s?l[l.length-1]+=m:(l.push(m),a=0),(m===yn||m===fr)&&(i=!0,o=n.startsWith(ls,b+1)),i?o?m===en&&(i=!1,o=!1):m===br&&(i=!1):(a+=t,a===s&&!f.done&&(l.push(""),a=0)),k=f,f=r.next(),b+=m.length}c=l.at(-1),!a&&c!==void 0&&c.length>0&&l.length>1&&(l[l.length-2]+=l.pop())},Po=(l)=>{let n=l.split(" "),s=n.length;for(;s>0&&!(il(n[s-1])>0);)s--;return s===n.length?l:n.slice(0,s).join(" ")+n.slice(s).join("")},Wo=(l,n,s={})=>{if(s.trim!==!1&&l.trim()==="")return"";let r="",i,o,c=l.split(" "),a=Mo(c),k=[""];for(let[y,$]of c.entries()){s.trim!==!1&&(k[k.length-1]=(k.at(-1)??"").trimStart());let d=il(k.at(-1)??"");if(y!==0&&(d>=n&&(s.wordWrap===!1||s.trim===!1)&&(k.push(""),d=0),(d>0||s.trim===!1)&&(k[k.length-1]+=" ",d++)),s.hard&&a[y]>n){let B=n-d,T=1+Math.floor((a[y]-B-1)/n);Math.floor((a[y]-1)/n)<T&&k.push(""),En(k,$,n);continue}if(d+a[y]>n&&d>0&&a[y]>0){if(s.wordWrap===!1&&d<n){En(k,$,n);continue}k.push("")}if(d+a[y]>n&&s.wordWrap===!1){En(k,$,n);continue}k[k.length-1]+=$}s.trim!==!1&&(k=k.map((y)=>Po(y)));let f=k.join(`
|
|
44
|
-
`),
|
|
45
|
-
`?(
|
|
46
|
-
`&&(
|
|
36
|
+
`).map((i)=>Yk(i,l,c)).join(`
|
|
37
|
+
`)}var Zk=["up","down","left","right","space","enter","cancel"],$n={actions:new Set(Zk),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"},withGuide:!0};function X0(n,l){if(typeof n=="string")return $n.aliases.get(n)===l;for(let c of n)if(c!==void 0&&X0(c,l))return!0;return!1}function Pk(n,l){if(n===l)return;let c=n.split(`
|
|
38
|
+
`),i=l.split(`
|
|
39
|
+
`),g=Math.max(c.length,i.length),k=[];for(let w=0;w<g;w++)c[w]!==i[w]&&k.push(w);return{lines:k,numLinesBefore:c.length,numLinesAfter:i.length,numLines:g}}var Wk=globalThis.process.platform.startsWith("win"),G0=Symbol("clack:cancel");function O(n){return n===G0}function Xl(n,l){let c=n;c.isTTY&&c.setRawMode(l)}function ci({input:n=pc,output:l=S0,overwrite:c=!0,hideCursor:i=!0}={}){let g=Bn.createInterface({input:n,output:l,prompt:"",tabSize:1});Bn.emitKeypressEvents(n,g),n instanceof Fc&&n.isTTY&&n.setRawMode(!0);let k=(w,{name:I,sequence:x})=>{let $=String(w);if(X0([$,I,x],"cancel")){i&&l.write(f.cursor.show),process.exit(0);return}if(!c)return;Bn.moveCursor(l,I==="return"?0:-1,I==="return"?-1:0,()=>{Bn.clearLine(l,1,()=>{n.once("keypress",k)})})};return i&&l.write(f.cursor.hide),n.once("keypress",k),()=>{n.off("keypress",k),i&&l.write(f.cursor.show),n instanceof Fc&&n.isTTY&&!Wk&&n.setRawMode(!1),g.terminal=!1,g.close()}}var rn=(n)=>("columns"in n)&&typeof n.columns=="number"?n.columns:80,Q0=(n)=>("rows"in n)&&typeof n.rows=="number"?n.rows:20;function Pl(n,l,c,i=c){let g=rn(n??S0);return B0(l,g-c.length,{hard:!0,trim:!1}).split(`
|
|
40
|
+
`).map((k,w)=>`${w===0?i:c}${k}`).join(`
|
|
41
|
+
`)}class dn{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;state="initial";error="";value;userInput="";constructor(n,l=!0){let{input:c=pc,output:i=S0,render:g,signal:k,...w}=n;this.opts=w,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=g.bind(this),this._track=l,this._abortSignal=k,this.input=c,this.output=i}unsubscribe(){this._subscribers.clear()}setSubscriber(n,l){let c=this._subscribers.get(n)??[];c.push(l),this._subscribers.set(n,c)}on(n,l){this.setSubscriber(n,{cb:l})}once(n,l){this.setSubscriber(n,{cb:l,once:!0})}emit(n,...l){let c=this._subscribers.get(n)??[],i=[];for(let g of c)g.cb(...l),g.once&&i.push(()=>c.splice(c.indexOf(g),1));for(let g of i)g()}prompt(){return new Promise((n)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),n(G0);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}this.rl=sk.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),Xl(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(f.cursor.show),this.output.off("resize",this.render),Xl(this.input,!1),n(this.value)}),this.once("cancel",()=>{this.output.write(f.cursor.show),this.output.off("resize",this.render),Xl(this.input,!1),n(G0)})})}_isActionKey(n,l){return n==="\t"}_setValue(n){this.value=n,this.emit("value",this.value)}_setUserInput(n,l){this.userInput=n??"",this.emit("userInput",this.userInput),l&&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(n,l){if(this._track&&l.name!=="return"&&(l.name&&this._isActionKey(n,l)&&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"),l?.name&&(!this._track&&$n.aliases.has(l.name)&&this.emit("cursor",$n.aliases.get(l.name)),$n.actions.has(l.name)&&this.emit("cursor",l.name)),n&&(n.toLowerCase()==="y"||n.toLowerCase()==="n")&&this.emit("confirm",n.toLowerCase()==="y"),this.emit("key",n?.toLowerCase(),l),l?.name==="return"){if(this.opts.validate){let c=this.opts.validate(this.value);c&&(this.error=c instanceof Error?c.message:c,this.state="error",this.rl?.write(this.userInput))}this.state!=="error"&&(this.state="submit")}X0([n,l?.name,l?.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(`
|
|
42
|
+
`),Xl(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let n=B0(this._prevFrame,process.stdout.columns,{hard:!0,trim:!1}).split(`
|
|
43
|
+
`).length-1;this.output.write(f.cursor.move(-999,n*-1))}render(){let n=B0(this._render(this)??"",process.stdout.columns,{hard:!0,trim:!1});if(n!==this._prevFrame){if(this.state==="initial")this.output.write(f.cursor.hide);else{let l=Pk(this._prevFrame,n),c=Q0(this.output);if(this.restoreCursor(),l){let i=Math.max(0,l.numLinesAfter-c),g=Math.max(0,l.numLinesBefore-c),k=l.lines.find((w)=>w>=i);if(k===void 0){this._prevFrame=n;return}if(l.lines.length===1){this.output.write(f.cursor.move(0,k-g)),this.output.write(f.erase.lines(1));let w=n.split(`
|
|
44
|
+
`);this.output.write(w[k]),this._prevFrame=n,this.output.write(f.cursor.move(0,w.length-k-1));return}else if(l.lines.length>1){if(i<g)k=i;else{let I=k-g;I>0&&this.output.write(f.cursor.move(0,I))}this.output.write(f.erase.down());let w=n.split(`
|
|
45
|
+
`).slice(k);this.output.write(w.join(`
|
|
46
|
+
`)),this._prevFrame=n;return}}this.output.write(f.erase.down())}this.output.write(n),this.state==="initial"&&(this.state="active"),this._prevFrame=n}}}function Hk(n,l){if(n===void 0||l.length===0)return 0;let c=l.findIndex((i)=>i.value===n);return c!==-1?c:0}function Ck(n,l){return(l.label??String(l.value)).toLowerCase().includes(n.toLowerCase())}function Mk(n,l){if(l)return n?l:l[0]}class Y0 extends dn{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#n=0;#c="";#i;#l;get cursor(){return this.#n}get userInputWithCursor(){if(!this.userInput)return Ql.default.inverse(Ql.default.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let n=this.userInput.slice(0,this._cursor),[l,...c]=this.userInput.slice(this._cursor);return`${n}${Ql.default.inverse(l)}${c.join("")}`}get options(){return typeof this.#l=="function"?this.#l():this.#l}constructor(n){super(n),this.#l=n.options;let l=this.options;this.filteredOptions=[...l],this.multiple=n.multiple===!0,this.#i=n.filter??Ck;let c;if(n.initialValue&&Array.isArray(n.initialValue)?this.multiple?c=n.initialValue:c=n.initialValue.slice(0,1):!this.multiple&&this.options.length>0&&(c=[this.options[0].value]),c)for(let i of c){let g=l.findIndex((k)=>k.value===i);g!==-1&&(this.toggleSelected(i),this.#n=g)}this.focusedValue=this.options[this.#n]?.value,this.on("key",(i,g)=>this.#g(i,g)),this.on("userInput",(i)=>this.#k(i))}_isActionKey(n,l){return n==="\t"||this.multiple&&this.isNavigating&&l.name==="space"&&n!==void 0&&n!==""}#g(n,l){let c=l.name==="up",i=l.name==="down",g=l.name==="return";c||i?(this.#n=Math.max(0,Math.min(this.#n+(c?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#n]?.value,this.multiple||(this.selectedValues=[this.focusedValue]),this.isNavigating=!0):g?this.value=Mk(this.multiple,this.selectedValues):this.multiple?this.focusedValue!==void 0&&(l.name==="tab"||this.isNavigating&&l.name==="space")?this.toggleSelected(this.focusedValue):this.isNavigating=!1:(this.focusedValue&&(this.selectedValues=[this.focusedValue]),this.isNavigating=!1)}deselectAll(){this.selectedValues=[]}toggleSelected(n){this.filteredOptions.length!==0&&(this.multiple?this.selectedValues.includes(n)?this.selectedValues=this.selectedValues.filter((l)=>l!==n):this.selectedValues=[...this.selectedValues,n]:this.selectedValues=[n])}#k(n){if(n!==this.#c){this.#c=n;let l=this.options;n?this.filteredOptions=l.filter((c)=>this.#i(n,c)):this.filteredOptions=[...l],this.#n=Hk(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#n]?.value,this.multiple||(this.focusedValue!==void 0?this.toggleSelected(this.focusedValue):this.deselectAll())}}}var ii=class extends dn{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(n){super(n,!1),this.value=!!n.initialValue,this.on("userInput",()=>{this.value=this._value}),this.on("confirm",(l)=>{this.output.write(f.cursor.move(0,-1)),this.value=l,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}};class gi extends dn{options;cursor=0;#n;getGroupItems(n){return this.options.filter((l)=>l.group===n)}isGroupSelected(n){let l=this.getGroupItems(n),c=this.value;return c===void 0?!1:l.every((i)=>c.includes(i.value))}toggleValue(){let n=this.options[this.cursor];if(this.value===void 0&&(this.value=[]),n.group===!0){let l=n.value,c=this.getGroupItems(l);this.isGroupSelected(l)?this.value=this.value.filter((i)=>c.findIndex((g)=>g.value===i)===-1):this.value=[...this.value,...c.map((i)=>i.value)],this.value=Array.from(new Set(this.value))}else{let l=this.value.includes(n.value);this.value=l?this.value.filter((c)=>c!==n.value):[...this.value,n.value]}}constructor(n){super(n,!1);let{options:l}=n;this.#n=n.selectableGroups!==!1,this.options=Object.entries(l).flatMap(([c,i])=>[{value:c,group:!0,label:c},...i.map((g)=>({...g,group:c}))]),this.value=[...n.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:c})=>c===n.cursorAt),this.#n?0:1),this.on("cursor",(c)=>{switch(c){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.#n&&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.#n&&i&&(this.cursor=this.cursor===this.options.length-1?0:this.cursor+1);break}case"space":this.toggleValue();break}})}}function Yl(n,l,c){let i=n+l,g=Math.max(c.length-1,0),k=i<0?g:i>g?0:i;return c[k].disabled?Yl(k,l<0?-1:1,c):k}class Z0 extends dn{options;cursor=0;get _value(){return this.options[this.cursor].value}get _enabledOptions(){return this.options.filter((n)=>n.disabled!==!0)}toggleAll(){let n=this._enabledOptions,l=this.value!==void 0&&this.value.length===n.length;this.value=l?[]:n.map((c)=>c.value)}toggleInvert(){let n=this.value;if(!n)return;let l=this._enabledOptions.filter((c)=>!n.includes(c.value));this.value=l.map((c)=>c.value)}toggleValue(){this.value===void 0&&(this.value=[]);let n=this.value.includes(this._value);this.value=n?this.value.filter((l)=>l!==this._value):[...this.value,this._value]}constructor(n){super(n,!1),this.options=n.options,this.value=[...n.initialValues??[]];let l=Math.max(this.options.findIndex(({value:c})=>c===n.cursorAt),0);this.cursor=this.options[l].disabled?Yl(l,1,this.options):l,this.on("key",(c)=>{c==="a"&&this.toggleAll(),c==="i"&&this.toggleInvert()}),this.on("cursor",(c)=>{switch(c){case"left":case"up":this.cursor=Yl(this.cursor,-1,this.options);break;case"down":case"right":this.cursor=Yl(this.cursor,1,this.options);break;case"space":this.toggleValue();break}})}}var D=cn(Dn(),1);import e from"node:process";var pn=cn(U0(),1);function Vk(){return e.platform!=="win32"?e.env.TERM!=="linux":!!e.env.CI||!!e.env.WT_SESSION||!!e.env.TERMINUS_SUBLIME||e.env.ConEmuTask==="{cmd::Cmder}"||e.env.TERM_PROGRAM==="Terminus-Sublime"||e.env.TERM_PROGRAM==="vscode"||e.env.TERM==="xterm-256color"||e.env.TERM==="alacritty"||e.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var C0=Vk(),Nk=()=>process.env.CI==="true";var A=(n,l)=>C0?n:l,Ak=A("◆","*"),ui=A("■","x"),yi=A("▲","x"),Ml=A("◇","o"),Rk=A("┌","T"),H=A("│","|"),An=A("└","—"),$x=A("┐","T"),xx=A("┘","—"),ki=A("●",">"),wi=A("○"," "),zk=A("◻","[•]"),M0=A("◼","[+]"),V0=A("◻","[ ]"),hx=A("▪","•"),Ii=A("─","-"),Ek=A("╮","+"),bk=A("├","+"),Ok=A("╯","+"),fk=A("╰","+"),ux=A("╭","+"),vk=A("●","•"),ok=A("◆","*"),mk=A("▲","!"),Fk=A("■","x"),A0=(n)=>{switch(n){case"initial":case"active":return D.default.cyan(Ak);case"cancel":return D.default.red(ui);case"error":return D.default.yellow(yi);case"submit":return D.default.green(Ml)}},rk=(n)=>{switch(n){case"initial":case"active":return D.default.cyan(H);case"cancel":return D.default.red(H);case"error":return D.default.yellow(H);case"submit":return D.default.green(H)}},dk=(n)=>n===161||n===164||n===167||n===168||n===170||n===173||n===174||n>=176&&n<=180||n>=182&&n<=186||n>=188&&n<=191||n===198||n===208||n===215||n===216||n>=222&&n<=225||n===230||n>=232&&n<=234||n===236||n===237||n===240||n===242||n===243||n>=247&&n<=250||n===252||n===254||n===257||n===273||n===275||n===283||n===294||n===295||n===299||n>=305&&n<=307||n===312||n>=319&&n<=322||n===324||n>=328&&n<=331||n===333||n===338||n===339||n===358||n===359||n===363||n===462||n===464||n===466||n===468||n===470||n===472||n===474||n===476||n===593||n===609||n===708||n===711||n>=713&&n<=715||n===717||n===720||n>=728&&n<=731||n===733||n===735||n>=768&&n<=879||n>=913&&n<=929||n>=931&&n<=937||n>=945&&n<=961||n>=963&&n<=969||n===1025||n>=1040&&n<=1103||n===1105||n===8208||n>=8211&&n<=8214||n===8216||n===8217||n===8220||n===8221||n>=8224&&n<=8226||n>=8228&&n<=8231||n===8240||n===8242||n===8243||n===8245||n===8251||n===8254||n===8308||n===8319||n>=8321&&n<=8324||n===8364||n===8451||n===8453||n===8457||n===8467||n===8470||n===8481||n===8482||n===8486||n===8491||n===8531||n===8532||n>=8539&&n<=8542||n>=8544&&n<=8555||n>=8560&&n<=8569||n===8585||n>=8592&&n<=8601||n===8632||n===8633||n===8658||n===8660||n===8679||n===8704||n===8706||n===8707||n===8711||n===8712||n===8715||n===8719||n===8721||n===8725||n===8730||n>=8733&&n<=8736||n===8739||n===8741||n>=8743&&n<=8748||n===8750||n>=8756&&n<=8759||n===8764||n===8765||n===8776||n===8780||n===8786||n===8800||n===8801||n>=8804&&n<=8807||n===8810||n===8811||n===8814||n===8815||n===8834||n===8835||n===8838||n===8839||n===8853||n===8857||n===8869||n===8895||n===8978||n>=9312&&n<=9449||n>=9451&&n<=9547||n>=9552&&n<=9587||n>=9600&&n<=9615||n>=9618&&n<=9621||n===9632||n===9633||n>=9635&&n<=9641||n===9650||n===9651||n===9654||n===9655||n===9660||n===9661||n===9664||n===9665||n>=9670&&n<=9672||n===9675||n>=9678&&n<=9681||n>=9698&&n<=9701||n===9711||n===9733||n===9734||n===9737||n===9742||n===9743||n===9756||n===9758||n===9792||n===9794||n===9824||n===9825||n>=9827&&n<=9829||n>=9831&&n<=9834||n===9836||n===9837||n===9839||n===9886||n===9887||n===9919||n>=9926&&n<=9933||n>=9935&&n<=9939||n>=9941&&n<=9953||n===9955||n===9960||n===9961||n>=9963&&n<=9969||n===9972||n>=9974&&n<=9977||n===9979||n===9980||n===9982||n===9983||n===10045||n>=10102&&n<=10111||n>=11094&&n<=11097||n>=12872&&n<=12879||n>=57344&&n<=63743||n>=65024&&n<=65039||n===65533||n>=127232&&n<=127242||n>=127248&&n<=127277||n>=127280&&n<=127337||n>=127344&&n<=127373||n===127375||n===127376||n>=127387&&n<=127404||n>=917760&&n<=917999||n>=983040&&n<=1048573||n>=1048576&&n<=1114109,ak=(n)=>n===12288||n>=65281&&n<=65376||n>=65504&&n<=65510,pk=(n)=>n>=4352&&n<=4447||n===8986||n===8987||n===9001||n===9002||n>=9193&&n<=9196||n===9200||n===9203||n===9725||n===9726||n===9748||n===9749||n>=9800&&n<=9811||n===9855||n===9875||n===9889||n===9898||n===9899||n===9917||n===9918||n===9924||n===9925||n===9934||n===9940||n===9962||n===9970||n===9971||n===9973||n===9978||n===9981||n===9989||n===9994||n===9995||n===10024||n===10060||n===10062||n>=10067&&n<=10069||n===10071||n>=10133&&n<=10135||n===10160||n===10175||n===11035||n===11036||n===11088||n===11093||n>=11904&&n<=11929||n>=11931&&n<=12019||n>=12032&&n<=12245||n>=12272&&n<=12287||n>=12289&&n<=12350||n>=12353&&n<=12438||n>=12441&&n<=12543||n>=12549&&n<=12591||n>=12593&&n<=12686||n>=12688&&n<=12771||n>=12783&&n<=12830||n>=12832&&n<=12871||n>=12880&&n<=19903||n>=19968&&n<=42124||n>=42128&&n<=42182||n>=43360&&n<=43388||n>=44032&&n<=55203||n>=63744&&n<=64255||n>=65040&&n<=65049||n>=65072&&n<=65106||n>=65108&&n<=65126||n>=65128&&n<=65131||n>=94176&&n<=94180||n===94192||n===94193||n>=94208&&n<=100343||n>=100352&&n<=101589||n>=101632&&n<=101640||n>=110576&&n<=110579||n>=110581&&n<=110587||n===110589||n===110590||n>=110592&&n<=110882||n===110898||n>=110928&&n<=110930||n===110933||n>=110948&&n<=110951||n>=110960&&n<=111355||n===126980||n===127183||n===127374||n>=127377&&n<=127386||n>=127488&&n<=127490||n>=127504&&n<=127547||n>=127552&&n<=127560||n===127568||n===127569||n>=127584&&n<=127589||n>=127744&&n<=127776||n>=127789&&n<=127797||n>=127799&&n<=127868||n>=127870&&n<=127891||n>=127904&&n<=127946||n>=127951&&n<=127955||n>=127968&&n<=127984||n===127988||n>=127992&&n<=128062||n===128064||n>=128066&&n<=128252||n>=128255&&n<=128317||n>=128331&&n<=128334||n>=128336&&n<=128359||n===128378||n===128405||n===128406||n===128420||n>=128507&&n<=128591||n>=128640&&n<=128709||n===128716||n>=128720&&n<=128722||n>=128725&&n<=128727||n>=128732&&n<=128735||n===128747||n===128748||n>=128756&&n<=128764||n>=128992&&n<=129003||n===129008||n>=129292&&n<=129338||n>=129340&&n<=129349||n>=129351&&n<=129535||n>=129648&&n<=129660||n>=129664&&n<=129672||n>=129680&&n<=129725||n>=129727&&n<=129733||n>=129742&&n<=129755||n>=129760&&n<=129768||n>=129776&&n<=129784||n>=131072&&n<=196605||n>=196608&&n<=262141,P0=/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/y,Wl=/[\x00-\x08\x0A-\x1F\x7F-\x9F]{1,1000}/y,Hl=/\t{1,1000}/y,W0=/[\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,Cl=/(?:[\x20-\x7E\xA0-\xFF](?!\uFE0F)){1,1000}/y,tk=/\p{M}+/gu,ek={limit:1/0,ellipsis:""},_i=(n,l={},c={})=>{let i=l.limit??1/0,g=l.ellipsis??"",k=l?.ellipsisWidth??(g?_i(g,ek,c).width:0),w=c.ansiWidth??0,I=c.controlWidth??0,x=c.tabWidth??8,$=c.ambiguousWidth??1,h=c.emojiWidth??2,y=c.fullWidthWidth??2,_=c.regularWidth??1,K=c.wideWidth??2,u=0,L=0,T=n.length,G=0,J=!1,X=T,C=Math.max(0,i-k),N=0,M=0,B=0,S=0;n:for(;;){if(M>N||L>=T&&L>u){let m=n.slice(N,M)||n.slice(u,L);G=0;for(let a of m.replaceAll(tk,"")){let F=a.codePointAt(0)||0;if(ak(F)?S=y:pk(F)?S=K:$!==_&&dk(F)?S=$:S=_,B+S>C&&(X=Math.min(X,Math.max(N,u)+G)),B+S>i){J=!0;break n}G+=a.length,B+=S}N=M=0}if(L>=T)break;if(Cl.lastIndex=L,Cl.test(n)){if(G=Cl.lastIndex-L,S=G*_,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/_))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=Cl.lastIndex;continue}if(P0.lastIndex=L,P0.test(n)){if(B+w>C&&(X=Math.min(X,L)),B+w>i){J=!0;break}B+=w,N=u,M=L,L=u=P0.lastIndex;continue}if(Wl.lastIndex=L,Wl.test(n)){if(G=Wl.lastIndex-L,S=G*I,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/I))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=Wl.lastIndex;continue}if(Hl.lastIndex=L,Hl.test(n)){if(G=Hl.lastIndex-L,S=G*x,B+S>C&&(X=Math.min(X,L+Math.floor((C-B)/x))),B+S>i){J=!0;break}B+=S,N=u,M=L,L=u=Hl.lastIndex;continue}if(W0.lastIndex=L,W0.test(n)){if(B+h>C&&(X=Math.min(X,L)),B+h>i){J=!0;break}B+=h,N=u,M=L,L=u=W0.lastIndex;continue}L+=1}return{width:J?C:B,index:J?X:T,truncated:J,ellipsed:J&&i>=k}},nw={limit:1/0,ellipsis:"",ellipsisWidth:0},xn=(n,l={})=>_i(n,nw,l).width,Vl="\x1B",Di="",lw=39,R0="\x07",Li="[",cw="]",si="m",z0=`${cw}8;;`,$i=new RegExp(`(?:\\${Li}(?<code>\\d+)m|\\${z0}(?<uri>.*)${R0})`,"y"),iw=(n)=>{if(n>=30&&n<=37||n>=90&&n<=97)return 39;if(n>=40&&n<=47||n>=100&&n<=107)return 49;if(n===1||n===2)return 22;if(n===3)return 23;if(n===4)return 24;if(n===7)return 27;if(n===8)return 28;if(n===9)return 29;if(n===0)return 0},xi=(n)=>`${Vl}${Li}${n}${si}`,hi=(n)=>`${Vl}${z0}${n}${R0}`,gw=(n)=>n.map((l)=>xn(l)),H0=(n,l,c)=>{let i=l[Symbol.iterator](),g=!1,k=!1,w=n.at(-1),I=w===void 0?0:xn(w),x=i.next(),$=i.next(),h=0;for(;!x.done;){let y=x.value,_=xn(y);I+_<=c?n[n.length-1]+=y:(n.push(y),I=0),(y===Vl||y===Di)&&(g=!0,k=l.startsWith(z0,h+1)),g?k?y===R0&&(g=!1,k=!1):y===si&&(g=!1):(I+=_,I===c&&!$.done&&(n.push(""),I=0)),x=$,$=i.next(),h+=y.length}w=n.at(-1),!I&&w!==void 0&&w.length>0&&n.length>1&&(n[n.length-2]+=n.pop())},kw=(n)=>{let l=n.split(" "),c=l.length;for(;c>0&&!(xn(l[c-1])>0);)c--;return c===l.length?n:l.slice(0,c).join(" ")+l.slice(c).join("")},ww=(n,l,c={})=>{if(c.trim!==!1&&n.trim()==="")return"";let i="",g,k,w=n.split(" "),I=gw(w),x=[""];for(let[u,L]of w.entries()){c.trim!==!1&&(x[x.length-1]=(x.at(-1)??"").trimStart());let T=xn(x.at(-1)??"");if(u!==0&&(T>=l&&(c.wordWrap===!1||c.trim===!1)&&(x.push(""),T=0),(T>0||c.trim===!1)&&(x[x.length-1]+=" ",T++)),c.hard&&I[u]>l){let G=l-T,J=1+Math.floor((I[u]-G-1)/l);Math.floor((I[u]-1)/l)<J&&x.push(""),H0(x,L,l);continue}if(T+I[u]>l&&T>0&&I[u]>0){if(c.wordWrap===!1&&T<l){H0(x,L,l);continue}x.push("")}if(T+I[u]>l&&c.wordWrap===!1){H0(x,L,l);continue}x[x.length-1]+=L}c.trim!==!1&&(x=x.map((u)=>kw(u)));let $=x.join(`
|
|
47
|
+
`),h=$[Symbol.iterator](),y=h.next(),_=h.next(),K=0;for(;!y.done;){let u=y.value,L=_.value;if(i+=u,u===Vl||u===Di){$i.lastIndex=K+1;let G=$i.exec($)?.groups;if(G?.code!==void 0){let J=Number.parseFloat(G.code);g=J===lw?void 0:J}else G?.uri!==void 0&&(k=G.uri.length===0?void 0:G.uri)}let T=g?iw(g):void 0;L===`
|
|
48
|
+
`?(k&&(i+=hi("")),g&&T&&(i+=xi(T))):u===`
|
|
49
|
+
`&&(g&&T&&(i+=xi(g)),k&&(i+=hi(k))),K+=u.length,y=_,_=h.next()}return i};function tn(n,l,c){return String(n).normalize().replaceAll(`\r
|
|
47
50
|
`,`
|
|
48
51
|
`).split(`
|
|
49
|
-
`).map((
|
|
50
|
-
`)}var
|
|
51
|
-
`);
|
|
52
|
-
${
|
|
53
|
-
`,
|
|
54
|
-
`),`${
|
|
55
|
-
`)}}}});return
|
|
56
|
-
${
|
|
57
|
-
`,
|
|
58
|
-
${
|
|
59
|
-
${
|
|
60
|
-
`}}}).prompt()};var
|
|
61
|
-
`);if(
|
|
52
|
+
`).map((i)=>ww(i,l,c)).join(`
|
|
53
|
+
`)}var Iw=(n,l,c,i,g)=>{let k=l,w=0;for(let I=c;I<i;I++){let x=n[I];if(k=k-x.length,w++,k<=g)break}return{lineCount:k,removals:w}},N0=(n)=>{let{cursor:l,options:c,style:i}=n,g=n.output??process.stdout,k=rn(g),w=n.columnPadding??0,I=n.rowPadding??4,x=k-w,$=Q0(g),h=D.default.dim("..."),y=n.maxItems??Number.POSITIVE_INFINITY,_=Math.max($-I,0),K=Math.max(Math.min(y,_),5),u=0;l>=K-3&&(u=Math.max(Math.min(l-K+3,c.length-K),0));let L=K<c.length&&u>0,T=K<c.length&&u+K<c.length,G=Math.min(u+K,c.length),J=[],X=0;L&&X++,T&&X++;let C=u+(L?1:0),N=G-(T?1:0);for(let B=C;B<N;B++){let S=tn(i(c[B],B===l),x,{hard:!0,trim:!1}).split(`
|
|
54
|
+
`);J.push(S),X+=S.length}if(X>_){let B=0,S=0,m=X,a=l-C,F=(Xn,z)=>Iw(J,m,Xn,z,_);L?({lineCount:m,removals:B}=F(0,a),m>_&&({lineCount:m,removals:S}=F(a+1,J.length))):({lineCount:m,removals:S}=F(a+1,J.length),m>_&&({lineCount:m,removals:B}=F(0,a))),B>0&&(L=!0,J.splice(0,B)),S>0&&(T=!0,J.splice(J.length-S,S))}let M=[];L&&M.push(h);for(let B of J)for(let S of B)M.push(S);return T&&M.push(h),M};function $w(n,l){if(!n)return!0;let c=(l.label??String(l.value??"")).toLowerCase(),i=(l.hint??"").toLowerCase(),g=String(l.value).toLowerCase(),k=n.toLowerCase();return c.includes(k)||i.includes(k)||g.includes(k)}var Ui=(n)=>{let l=(i,g,k,w)=>{let I=k.includes(i.value),x=i.label??String(i.value??""),$=i.hint&&w!==void 0&&i.value===w?D.default.dim(` (${i.hint})`):"",h=I?D.default.green(M0):D.default.dim(V0);return g?`${h} ${x}${$}`:`${h} ${D.default.dim(x)}`},c=new Y0({options:n.options,multiple:!0,filter:(i,g)=>$w(i,g),validate:()=>{if(n.required&&c.selectedValues.length===0)return"Please select at least one item"},initialValue:n.initialValues,signal:n.signal,input:n.input,output:n.output,render(){let i=`${D.default.gray(H)}
|
|
55
|
+
${A0(this.state)} ${n.message}
|
|
56
|
+
`,g=this.userInput,k=n.placeholder,w=g===""&&k!==void 0,I=this.isNavigating||w?D.default.dim(w?k:g):this.userInputWithCursor,x=this.options,$=this.filteredOptions.length!==x.length?D.default.dim(` (${this.filteredOptions.length} match${this.filteredOptions.length===1?"":"es"})`):"";switch(this.state){case"submit":return`${i}${D.default.gray(H)} ${D.default.dim(`${this.selectedValues.length} items selected`)}`;case"cancel":return`${i}${D.default.gray(H)} ${D.default.strikethrough(D.default.dim(g))}`;default:{let h=this.state==="error"?D.default.yellow:D.default.cyan,y=[`${D.default.dim("↑/↓")} to navigate`,`${D.default.dim(this.isNavigating?"Space/Tab:":"Tab:")} select`,`${D.default.dim("Enter:")} confirm`,`${D.default.dim("Type:")} to search`],_=this.filteredOptions.length===0&&g?[`${h(H)} ${D.default.yellow("No matches found")}`]:[],K=this.state==="error"?[`${h(H)} ${D.default.yellow(this.error)}`]:[],u=[...`${i}${h(H)}`.split(`
|
|
57
|
+
`),`${h(H)} ${D.default.dim("Search:")} ${I}${$}`,..._,...K],L=[`${h(H)} ${D.default.dim(y.join(" • "))}`,`${h(An)}`],T=N0({cursor:this.cursor,options:this.filteredOptions,style:(G,J)=>l(G,J,this.selectedValues,this.focusedValue),maxItems:n.maxItems,output:n.output,rowPadding:u.length+L.length});return[...u,...T.map((G)=>`${h(H)} ${G}`),...L].join(`
|
|
58
|
+
`)}}}});return c.prompt()};var Yn=(n)=>{let l=n.active??"Yes",c=n.inactive??"No";return new ii({active:l,inactive:c,signal:n.signal,input:n.input,output:n.output,initialValue:n.initialValue??!0,render(){let i=`${D.default.gray(H)}
|
|
59
|
+
${A0(this.state)} ${n.message}
|
|
60
|
+
`,g=this.value?l:c;switch(this.state){case"submit":return`${i}${D.default.gray(H)} ${D.default.dim(g)}`;case"cancel":return`${i}${D.default.gray(H)} ${D.default.strikethrough(D.default.dim(g))}
|
|
61
|
+
${D.default.gray(H)}`;default:return`${i}${D.default.cyan(H)} ${this.value?`${D.default.green(ki)} ${l}`:`${D.default.dim(wi)} ${D.default.dim(l)}`} ${D.default.dim("/")} ${this.value?`${D.default.dim(wi)} ${D.default.dim(c)}`:`${D.default.green(ki)} ${c}`}
|
|
62
|
+
${D.default.cyan(An)}
|
|
63
|
+
`}}}).prompt()};var U={message:(n=[],{symbol:l=D.default.gray(H),secondarySymbol:c=D.default.gray(H),output:i=process.stdout,spacing:g=1,withGuide:k}={})=>{let w=[],I=(k??$n.withGuide)!==!1,x=I?c:"",$=I?`${l} `:"",h=I?`${c} `:"";for(let _=0;_<g;_++)w.push(x);let y=Array.isArray(n)?n:n.split(`
|
|
64
|
+
`);if(y.length>0){let[_,...K]=y;_.length>0?w.push(`${$}${_}`):w.push(I?l:"");for(let u of K)u.length>0?w.push(`${h}${u}`):w.push(I?c:"")}i.write(`${w.join(`
|
|
62
65
|
`)}
|
|
63
|
-
`)},info:(l
|
|
66
|
+
`)},info:(n,l)=>{U.message(n,{...l,symbol:D.default.blue(vk)})},success:(n,l)=>{U.message(n,{...l,symbol:D.default.green(ok)})},step:(n,l)=>{U.message(n,{...l,symbol:D.default.green(Ml)})},warn:(n,l)=>{U.message(n,{...l,symbol:D.default.yellow(mk)})},warning:(n,l)=>{U.warn(n,l)},error:(n,l)=>{U.message(n,{...l,symbol:D.default.red(Fk)})}},o=(n="",l)=>{(l?.output??process.stdout).write(`${D.default.gray(An)} ${D.default.red(n)}
|
|
64
67
|
|
|
65
|
-
`)},
|
|
66
|
-
`)},
|
|
67
|
-
${
|
|
68
|
+
`)},qi=(n="",l)=>{(l?.output??process.stdout).write(`${D.default.gray(Rk)} ${n}
|
|
69
|
+
`)},Ki=(n="",l)=>{(l?.output??process.stdout).write(`${D.default.gray(H)}
|
|
70
|
+
${D.default.gray(An)} ${n}
|
|
68
71
|
|
|
69
|
-
`)},
|
|
70
|
-
`).map((
|
|
71
|
-
`),
|
|
72
|
-
${
|
|
73
|
-
${
|
|
74
|
-
`,
|
|
75
|
-
${
|
|
76
|
-
`).map((
|
|
77
|
-
`)
|
|
78
|
-
`).length,
|
|
79
|
-
`).length+1;return`${
|
|
80
|
-
${
|
|
81
|
-
${
|
|
82
|
-
`}default:{let
|
|
83
|
-
`).length;return`${
|
|
84
|
-
${
|
|
85
|
-
${
|
|
86
|
-
`}}}}).prompt()},
|
|
87
|
-
`),
|
|
88
|
-
`).map(
|
|
89
|
-
`),
|
|
90
|
-
`:"",
|
|
91
|
-
${
|
|
92
|
-
${
|
|
93
|
-
`)};var
|
|
94
|
-
`);let
|
|
95
|
-
`);
|
|
96
|
-
`);let
|
|
97
|
-
`):
|
|
98
|
-
`)),w(),b()};return{start:K,stop:(H="")=>ml(H,0),message:(H="")=>{y=Q(H??y)},cancel:(H="")=>ml(H,1),error:(H="")=>ml(H,2),clear:()=>ml("",0,!0),get isCancelled(){return L}}},za={light:J("─","-"),heavy:J("━","="),block:J("█","#")};var Ja=`${g.default.gray(G)} `;var x=p(kl(),1);import{basename as ss,dirname as po,extname as eo,join as gn}from"node:path";import{readdirSync as lc,readFileSync as nc}from"node:fs";var sc=new Set(["node_modules",".git","dist","build","__pycache__"]);function rc(l){try{return nc(l,"utf-8")}catch{return null}}function mr(l){try{return lc(l,{withFileTypes:!0})}catch{return[]}}function Sr(l){let n=rc(l);if(!n)return null;let s=n.match(/^---\n([\s\S]+?)\n---/)?.[1]||n;return{name:s.match(/^name:\s*(.+)$/m)?.[1]?.replace(/^['"]|['"]$/g,"").trim(),description:s.match(/^description:\s*(.+)$/m)?.[1]?.replace(/^['"]|['"]$/g,"").trim()}}function ic(l){let n=Sr(l);if(!n?.name||!n.description)return null;return{type:"skill",name:n.name,description:n.description,path:po(l)}}function oc(l){let n=Sr(l);if(!n)return null;return{type:"command",name:n.name||ss(l,".md"),description:n.description||`Command: ${ss(l,".md")}`,path:l}}function $r(l,n,s,r,i){if(n>5)return;let o=ic(gn(l,"SKILL.md"));if(o&&!r.has(o.name.toLowerCase()))r.add(o.name.toLowerCase()),s.push(o);for(let c of mr(l)){if(!c.isDirectory())continue;if(sc.has(c.name))continue;let a=gn(l,c.name);if(c.name==="commands"){for(let k of mr(a)){if(!k.isFile()||eo(k.name).toLowerCase()!==".md")continue;if(ss(k.name,".md").toLowerCase()==="readme"||k.name===".DS_Store")continue;let b=oc(gn(a,k.name));if(!b||i.has(b.name.toLowerCase()))continue;i.add(b.name.toLowerCase()),s.push(b)}continue}$r(a,n+1,s,r,i)}}function hl(l,n){let s=[],r=new Set,i=new Set;return $r(n?gn(l,n):l,0,s,r,i),s.sort((o,c)=>{if(o.type!==c.type)return o.type==="skill"?-1:1;return o.name.localeCompare(c.name)})}import{cpSync as rs,existsSync as un,lstatSync as cs,mkdirSync as Bl,readdirSync as Dr,readlinkSync as cc,rmSync as tl,symlinkSync as Ir}from"node:fs";import{homedir as ac,platform as fc}from"node:os";import{dirname as Il,join as F,relative as tr,resolve as zl}from"node:path";var kc=F(ac(),".flins"),bc=new Set(["README.md","metadata.json"]);function is(l){return l instanceof Error?l.message:"Unknown error"}function yc(l,n,s){let r=l==="global"?F(kc,".agents"):F(s,".agents");return F(r,n==="skill"?"skills":"commands")}function gc(l,n,s){try{for(let r of Dr(l,{withFileTypes:!0})){if((s==="command"?r.name.replace(/\.md$/i,""):r.name).toLowerCase()!==n.toLowerCase())continue;let o=F(l,r.name),c=cs(o);if(s==="skill"&&(c.isDirectory()||c.isSymbolicLink()))return o;if(s==="command"&&(c.isFile()||c.isSymbolicLink()))return o}}catch{return null}return null}function uc(l,n){if(!un(l))return!1;try{let s=cs(l);if(n==="skill")return(s.isDirectory()||s.isSymbolicLink())&&un(F(l,"SKILL.md"));return(s.isFile()||s.isSymbolicLink())&&l.toLowerCase().endsWith(".md")}catch{return!1}}function os(l,n){tl(n,{recursive:!0,force:!0}),Bl(n,{recursive:!0});for(let s of Dr(l,{withFileTypes:!0})){if(bc.has(s.name)||s.name.startsWith("_"))continue;let r=F(l,s.name),i=F(n,s.name);if(s.isDirectory()){os(r,i);continue}Bl(Il(i),{recursive:!0}),rs(r,i,{recursive:!0})}}function wr(l,n,s){let r=yc(n,l.type,s);return Bl(r,{recursive:!0}),l.type==="skill"?F(r,l.name):F(r,`${l.name}.md`)}function dr(l){if(fc()!=="win32")return;return l==="skill"?"junction":"file"}function Jl(l,n,s,r=process.cwd()){let i=[];for(let o of nl()){let c=n==="skill"?jn(o,s,r):Nn(o,s,r);if(!c||!un(c))continue;let a=gc(c,l,n);if(!a)continue;i.push({agent:o,scope:s,path:a})}return i}function Tr(l,n=process.cwd()){return Jl(l.name,l.type,l.scope,n).filter((s)=>uc(s.path,l.type))}function wl(l){let n=new Map;for(let s of l){let r=n.get(s.path);if(r){r.agents.push(s.agent);continue}n.set(s.path,{agent:s.agent,scope:s.scope,path:s.path,agents:[s.agent]})}return Array.from(n.values())}function mn(l,n,s,r){let i=r.cwd??process.cwd();if(l.type==="command"){let c=Nn(n,s,i);if(!c)return{success:!1,path:"",error:`Agent ${U[n].label} does not support commands`};let a=F(c,`${l.name}.md`);try{if(!r.symlink)return Bl(Il(a),{recursive:!0}),tl(a,{force:!0}),rs(l.path,a),{success:!0,path:a};let k=wr(l,s,i);if(tl(k,{force:!0}),rs(l.path,k),zl(k)===zl(a))return{success:!0,path:a};return Bl(Il(a),{recursive:!0}),tl(a,{recursive:!0,force:!0}),Ir(tr(Il(a),k),a,dr(l.type)),{success:!0,path:a}}catch(k){return{success:!1,path:a,error:is(k)}}}let o=F(jn(n,s,i),l.name);try{if(!r.symlink)return os(l.path,o),{success:!0,path:o};let c=wr(l,s,i);if(os(l.path,c),zl(c)===zl(o))return{success:!0,path:o};return Bl(Il(o),{recursive:!0}),tl(o,{recursive:!0,force:!0}),Ir(tr(Il(o),c),o,dr(l.type)),{success:!0,path:o}}catch(c){return{success:!1,path:o,error:is(c)}}}function Lr(l){try{if(un(l)&&cs(l).isSymbolicLink()){let n=zl(Il(l),cc(l));tl(n,{recursive:!0,force:!0})}return tl(l,{recursive:!0,force:!0}),{success:!0}}catch(n){return{success:!1,error:is(n)}}}var _l=p(kl(),1);function v(l=!1){if(!l)gr(_l.default.bgCyan(_l.default.black(" flins ")))}function C(l,n=!1){if(!n)ur(l)}function M(l,n,s){return l===1?n:s??`${n}s`}function P(l,n){return l instanceof Error?l.message:n}function dl(){S.warn("No skills yet. Install your first skill:"),S.message(` ${_l.default.cyan("npx flins@latest add <repo>")}`),S.message(` ${_l.default.cyan("npx flins@latest search")}`)}import{spawn as mc}from"node:child_process";import{mkdtempSync as Br,mkdirSync as Sc,rmSync as $c,writeFileSync as Ic}from"node:fs";import{tmpdir as Rr}from"node:os";import{dirname as tc,join as as}from"node:path";var wc="https://flins.tech/directory.json",Ur="/.well-known/skills";function Hl(l){return l.replace(/^https?:\/\//,"").replace(/\/$/,"")}function dc(l){return`https://${Hl(l)}${Ur}/index.json`}function Dc(l,n,s){return`https://${Hl(l)}${Ur}/${n}/${s}`}function fs(l,n){return new Promise((s,r)=>{let i="",o="",c=mc("git",l,{cwd:n,stdio:["ignore","pipe","pipe"]});c.stdout.on("data",(a)=>{i+=a.toString()}),c.stderr.on("data",(a)=>{o+=a.toString()}),c.on("error",r),c.on("close",(a)=>{if(a===0){s(i.trim());return}r(Error(o.trim()||`git ${l.join(" ")} failed`))})})}async function xr(l,n){let s=await fetch(l,{signal:AbortSignal.timeout(n),headers:{Accept:"application/json"}});if(!s.ok)throw Error(`Failed to fetch ${l}: ${s.status}`);return await s.json()}async function jr(l){let n=await xr(dc(l),1e4);if(!Array.isArray(n.skills))throw Error(`Invalid skill index format from ${Hl(l)}`);return n.skills}async function Tc(l){let n=Hl(l),s=await jr(n),r=Br(as(Rr(),"flins-wellknown-"));for(let i of s)for(let o of i.files){let c=as(r,i.name,o);Sc(tc(c),{recursive:!0});let a=await fetch(Dc(n,i.name,o),{signal:AbortSignal.timeout(30000)});if(!a.ok)throw Error(`Failed to download ${i.name}/${o}: ${a.status}`);Ic(c,await a.text(),"utf-8")}return{kind:"well-known",label:n,url:`well-known:${n}`,branch:"main",commit:"well-known",root:r}}async function Lc(l){let n=Bc(l),s=Br(as(Rr(),"flins-git-")),r=n.branch??"main",i=["clone","--depth","1"];if(n.branch)i.push("--branch",n.branch);return i.push(n.url,s),await fs(i),{kind:"git",label:n.url,url:n.url,branch:r,commit:await fs(["rev-parse","HEAD"],s),root:s,subpath:n.subpath}}function Nr(l){return/^[a-z0-9-]+$/i.test(l)&&!l.includes("/")&&!l.includes(":")}function Cr(l){if(l.includes("/")&&!l.includes("://"))return!1;if(l.includes("github.com")||l.includes("gitlab.com")||l.endsWith(".git"))return!1;return/^(?:https?:\/\/)?([a-z0-9][-a-z0-9]*\.)+[a-z]{2,}$/i.test(l)}function Bc(l){let n=l.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)(?:\/(.+))?$/);if(n)return{url:`https://github.com/${n[1]}/${n[2]}.git`,branch:n[3],subpath:n[4]};let s=l.match(/github\.com\/([^/]+)\/([^/]+)/);if(s)return{url:`https://github.com/${s[1]}/${s[2].replace(/\.git$/,"")}.git`};let r=l.match(/gitlab\.com\/([^/]+)\/([^/]+)\/-\/tree\/([^/]+)(?:\/(.+))?$/);if(r)return{url:`https://gitlab.com/${r[1]}/${r[2]}.git`,branch:r[3],subpath:r[4]};let i=l.match(/gitlab\.com\/([^/]+)\/([^/]+)/);if(i)return{url:`https://gitlab.com/${i[1]}/${i[2].replace(/\.git$/,"")}.git`};let o=l.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/);if(o&&!l.includes(":"))return{url:`https://github.com/${o[1]}/${o[2]}.git`,subpath:o[3]};return{url:l}}async function Xl(){return xr(wc,5000)}async function Gr(l){return(await Xl()).find((s)=>s.name.toLowerCase()===l.toLowerCase())?.source??null}async function qr(l){let n=l.startsWith("well-known:")?l.slice(11):l;if(!Cr(n))return null;return{host:Hl(n),skills:await jr(n)}}async function Yl(l){let n=l.startsWith("well-known:")?l.slice(11):l;return Cr(n)?Tc(n):Lc(n)}async function hr(l,n="main"){if(l.startsWith("well-known:"))return"well-known";return(await fs(["ls-remote",l,`refs/heads/${n}`])).split(/\s+/)[0]??""}async function Zl(l){$c(l.root,{recursive:!0,force:!0})}import{homedir as Rc}from"node:os";import{dirname as Uc,join as ks}from"node:path";import{mkdirSync as xc,readFileSync as jc,rmSync as Nc,writeFileSync as Cc}from"node:fs";var Gc=ks(Rc(),".flins"),zr="skills.lock";function _r(l,n){return l==="global"?ks(Gc,zr):ks(n,zr)}function bs(l,n){return`${n}:${l.toLowerCase()}`}function Jr(l){if(l.startsWith("skill:"))return{name:l.slice(6),type:"skill"};if(l.startsWith("command:"))return{name:l.slice(8),type:"command"};return null}function Al(l,n){try{let s=JSON.parse(jc(_r(l,n),"utf-8"));return typeof s==="object"&&s&&typeof s.skills==="object"&&s.skills?s.skills:{}}catch{return{}}}function ys(l,n,s){let r=_r(l,s);if(Object.keys(n).length===0){Nc(r,{force:!0});return}xc(Uc(r),{recursive:!0}),Cc(r,JSON.stringify({skills:n},null,2))}function Hr(l=process.cwd()){let n=Al("project",l),s=Al("global",l),r=[],i=new Set;for(let[o,c]of Object.entries(n)){let a=Jr(o);if(!a)continue;r.push({name:c.name||a.name,type:a.type,scope:"project",url:c.url,subpath:c.subpath,branch:c.branch,commit:c.commit}),i.add(o)}for(let[o,c]of Object.entries(s)){if(i.has(o))continue;let a=Jr(o);if(!a)continue;r.push({name:c.name||a.name,type:a.type,scope:"global",url:c.url,subpath:c.subpath,branch:c.branch,commit:c.commit})}return r}function Xr(l,n=process.cwd()){let s=Al(l.scope,n),r=bs(l.name,l.type);s[r]={name:l.name,url:l.url,subpath:l.subpath,branch:l.branch,commit:l.commit},ys(l.scope,s,n)}function Yr(l,n,s,r,i=process.cwd()){let o=Al(l,i),c=bs(n,s);if(!o[c])return;o[c].commit=r,ys(l,o,i)}function Sn(l,n,s,r=process.cwd()){let i=Al(l,r);delete i[bs(n,s)],ys(l,i,r)}import{spawn as qc}from"node:child_process";import{arch as hc,platform as zc}from"node:os";var Jc="https://tidy-oriole-956.convex.site/telemetry",Zr=!process.env.CI&&!process.env.CONTINUOUS_INTEGRATION&&!process.env.GITHUB_ACTIONS&&!process.env.GITLAB_CI&&!process.env.TRAVIS&&!process.env.JENKINS_URL&&!process.env.BITBUCKET_BUILD_NUMBER&&!process.env.CODEBUILD_BUILD_ID&&process.env.FLINS_TELEMETRY!=="0"&&!0,$n=[];function _c(l){let n=l.match(/github\.com[/:]([^/]+\/[^/]+?)(?:\.git)?(?:\/tree\/[^/]+\/(.+?))?(?:\/)?(?:[#]|$)/i);if(n)return n[2]?`${n[1]}/${n[2]}`:n[1];let s=l.match(/gitlab\.com[/:]([^/]+\/[^/]+?)(?:\.git)?(?:\/-\/tree\/[^/]+\/(.+?))?(?:\/)?(?:[#]|$)/i);if(s)return s[2]?`${s[1]}/${s[2]}`:s[1];let r=l.match(/^([^/]+\/[^/]+?)(?:\/(.+?))?(?:\/)?$/);if(r)return r[2]?`${r[1]}/${r[2]}`:r[1];return l.replace(/\.git$/,"").replace(/\/$/,"")}function Ar(l){if(!Zr)return;$n.push({...l,repo:l.repo?_c(l.repo):void 0,timestamp:Date.now(),osPlatform:zc(),osArch:hc(),nodeVersion:process.version,cliVersion:El.version})}function gs(){if(!Zr||$n.length===0)return;let l=$n;$n=[],qc("curl",["-s","-X","POST",Jc,"-H","Content-Type: application/json","-d",JSON.stringify(l),"--max-time","10"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}function Ql(l){return Boolean(l.yes||l.force)}async function Hc(l,n){if(!Nr(l))return l;if(!n)S.info(`Looking up ${x.default.cyan(l)} in the flins directory...`);let s=await Gr(l);if(s)return s;S.error(`Skill ${x.default.cyan(l)} was not found in the flins directory.`);let r=await Xl();if(r.length>0){S.info("Available skills:");for(let i of r)S.message(` ${x.default.cyan(i.name)} ${x.default.dim(`- ${i.description}`)}`)}process.exit(1)}function us(l,n){S.step(x.default.bold(l));for(let s of n)S.message(` ${x.default.cyan(`${s.type}:${s.name}`)}`),S.message(` ${x.default.dim(s.description)}`)}async function Xc(l,n){if(n.skill&&n.skill.length>0){let i=l.filter((o)=>n.skill.some((c)=>o.name.toLowerCase()===c.toLowerCase()));if(i.length===0)return S.error(`No matching installables found for: ${n.skill.join(", ")}`),us("Available Installables",l),null;return i}if(Ql(n))return l;let s=new Map(l.map((i)=>[`${i.type}:${i.name.toLowerCase()}`,i])),r=await bl({message:"Choose items to add",required:!1,initialValues:l.length===1?[`${l[0].type}:${l[0].name.toLowerCase()}`]:void 0,options:l.map((i)=>({value:`${i.type}:${i.name.toLowerCase()}`,label:`${i.type==="skill"?"Skill":"Command"}: ${i.name}`,hint:i.description.length>70?`${i.description.slice(0,67)}...`:i.description}))});if(X(r))return A("Installation cancelled"),null;return r.map((i)=>s.get(i)).filter(Boolean)}async function Yc(l,n){if(n.agent&&n.agent.length>0){let i=Un(n.agent);if(i.invalid.length>0)return S.error(`Invalid agents: ${i.invalid.join(", ")}`),S.info(`Supported agents: ${nl().join(", ")}`),null;if(l==="project"){let c=i.agents.some((k)=>k==="universal"||Dl().includes(k))?["universal",...Vl().filter((k)=>i.agents.includes(k))]:Vl().filter((k)=>i.agents.includes(k)),a=i.agents.filter((k)=>k!=="universal"&&Dl().includes(k));if(a.length>0)S.info(`Local installs for ${a.map((k)=>x.default.cyan(U[k].label)).join(", ")} use ${x.default.cyan("universal")} (${x.default.cyan(".agents/skills")}).`);return c}return i.agents}let s=xn();if(l==="project"){if(ns(`${x.default.cyan(".agents/skills")} is always included locally.
|
|
99
|
-
Used by: ${Dl().map((o)=>U[o].label).join(", ")}`,"Universal Folder"),Ql(n))return["universal"];let i=await bl({message:"Add skills to extra local agent folders?",required:!1,options:Vl().map((o)=>({value:o,label:U[o].label,hint:s.includes(o)?`installed • ${Sl(U[o].skillsDir)}`:Sl(U[o].skillsDir)}))});if(X(i))return A("Installation cancelled"),null;return["universal",...i]}if(Ql(n)){if(s.length===0)return S.info("No installed agents detected. Use --agent to target a global folder."),null;return s}ns("Global installs write to user-level folders. The shared local .agents/skills folder does not apply with --global.","Global Install");let r=await bl({message:"Choose global skill targets",required:!0,initialValues:s,options:Object.keys(U).map((i)=>{let o=i;return{value:o,label:U[o].label,hint:s.includes(o)?`installed • ${Sl(U[o].globalSkillsDir)}`:Sl(U[o].globalSkillsDir)}})});if(X(r))return A("Installation cancelled"),null;return r}async function Zc(l){let n=zs();if(l.agent&&l.agent.length>0){let i=Un(l.agent);if(i.invalid.length>0)return S.error(`Invalid agents: ${i.invalid.join(", ")}`),S.info(`Supported agents: ${nl().join(", ")}`),null;let o=i.agents.filter((a)=>Ol(a)),c=i.agents.filter((a)=>!Ol(a));if(c.length>0)S.warn(`Ignoring agents without command folders: ${c.map((a)=>U[a].label).join(", ")}`);if(o.length===0)return S.error(`Commands are supported by ${n.map((a)=>U[a].label).join(", ")}.`),null;return o}let s=xn().filter((i)=>Ol(i));if(Ql(l)){if(s.length===0)S.warn(`No command-capable agents detected. Commands will be skipped. Use --agent with ${n.join(", ")} to install them.`);return s}let r=await bl({message:"Choose command targets",required:!0,initialValues:s,options:n.map((i)=>{let o=U[i];return{value:i,label:U[i].label,hint:Sl(o.commandsDir||"")+(s.includes(i)?" • installed":"")}})});if(X(r))return A("Installation cancelled"),null;return r}async function Ac(l,n,s,r,i,o){S.step(x.default.bold("Install Summary")),S.message(`${x.default.bold("Source:")} ${l}`),S.message(`${x.default.bold("Scope:")} ${n==="global"?"Global":"Local"}`),S.message(`${x.default.bold("Items:")} ${s.map((f)=>`${f.type}:${f.name}`).join(", ")}`);let c=s.some((f)=>f.type==="skill"),a=s.some((f)=>f.type==="command");if(c&&r){if(n==="project"&&r.includes("universal")){S.message(`${x.default.bold("Included local folder:")} ${x.default.cyan(".agents/skills")}`),S.message(`${x.default.bold("Universal agents:")} ${Dl().map((m)=>U[m].label).join(", ")}`);let b=r.filter((m)=>m!=="universal");if(b.length>0)S.message(`${x.default.bold("Extra local folders:")} ${b.map((m)=>U[m].label).join(", ")}`)}else S.message(`${x.default.bold("Skill targets:")} ${r.map((b)=>U[b].label).join(", ")}`);let f=Hs(r,n);if(f.length>0){S.message(x.default.bold("Shared folders:"));for(let b of f)S.message(` ${x.default.dim("•")} ${b}`)}}if(a)S.message(`${x.default.bold("Command targets:")} ${i&&i.length>0?i.map((f)=>U[f].label).join(", "):x.default.yellow("none")}`);if(Ql(o))return!0;let k=await $l({message:"Ready to install?"});if(X(k)||!k)return A("Installation cancelled"),!1;return!0}async function In(l,n){v(Boolean(n.silent));try{let s=n.global?"global":"project",r=await Hc(l,Boolean(n.silent));if(n.list){let c=await qr(r);if(c){us(`Available Installables from ${c.host}`,c.skills.map((k)=>({type:"skill",name:k.name,description:k.description,path:k.name}))),C(`Use ${x.default.cyan(`flins add ${c.host} --skill <name>`)} to install`,Boolean(n.silent));return}let a=await Yl(r);try{let k=hl(a.root,a.subpath);if(k.length===0){S.warn("No installables found in this source."),C(x.default.yellow("Nothing to list"),Boolean(n.silent));return}us(`Available Installables from ${a.label}`,k),C(`Use ${x.default.cyan("--skill <name>")} to skip the picker`,Boolean(n.silent))}finally{await Zl(a)}return}let i=await Yl(r),o=[];try{let c=hl(i.root,i.subpath);if(c.length===0)S.error("No skills or commands found. The source must contain SKILL.md files or command markdown files."),C(x.default.red("Installation failed"),Boolean(n.silent)),process.exit(1);if(!n.silent){let y=c.filter((d)=>d.type==="skill").length,$=c.filter((d)=>d.type==="command").length;S.info(`Found ${x.default.green(y.toString())} ${M(y,"skill")}${$>0?` and ${x.default.yellow($.toString())} ${M($,"command")}`:""}`)}let a=await Xc(c,n);if(!a||a.length===0){S.info("Nothing selected."),C(x.default.yellow("Nothing installed"),Boolean(n.silent));return}let k=a.some((y)=>y.type==="skill")?await Yc(s,n):[],f=a.some((y)=>y.type==="command")?await Zc(n):[];if(a.some((y)=>y.type==="skill")&&!k||a.some((y)=>y.type==="command")&&f===null)process.exit(1);if(!await Ac(i.label,s,a,k,f,n))return;let b=yl();b.start("Installing...");let m=n.symlink??!0;for(let y of a){let $=y.type==="skill"?k||[]:f||[],d=0;for(let B of $){let T=mn(y,B,s,{symlink:m});if(o.push({name:y.name,type:y.type,label:`${y.type}:${y.name}`,agent:U[B].label,success:T.success,error:T.error}),T.success)d+=1}if(d>0)Xr({name:y.name,type:y.type,scope:s,url:i.url,subpath:i.subpath,branch:i.branch,commit:i.commit})}b.stop("Install complete");let t=o.filter((y)=>y.success).length,L=o.filter((y)=>!y.success).length;if(t>0)S.success(x.default.green(`Installed ${t} ${M(t,"item")}.`));if(L>0){S.error(x.default.red(`Failed to install ${L} ${M(L,"item")}.`));for(let y of o.filter(($)=>!$.success))if(S.message(` ${x.default.red("✗")} ${y.label} ${x.default.dim(`→ ${y.agent}`)}`),y.error)S.message(` ${x.default.dim(y.error)}`)}if(a.some((y)=>y.type==="command")&&(f||[]).length===0)S.warn("Commands were selected but no command-capable agents were targeted.");for(let y of o)Ar({command:"add",type:y.type,repo:r,sourceUrl:i.url,name:y.name,agent:y.agent,scope:s,success:y.success});if(L>0)C(x.default.red("Installation finished with errors"),Boolean(n.silent)),process.exit(1);C(t>0?x.default.green("Done! Skills ready to use."):x.default.yellow("Nothing installed"),Boolean(n.silent))}finally{await Zl(i)}}catch(s){S.error(P(s,"Something went wrong. Try again or check your connection.")),C(x.default.red("Installation failed"),Boolean(n.silent)),process.exit(1)}}var Z=p(kl(),1);function ul(l){let n=Hr(),s=l&&l.length>0?new Set(l.map((r)=>r.toLowerCase())):null;return n.filter((r)=>!s||s.has(r.name.toLowerCase())).map((r)=>{let i=Jl(r.name,r.type,r.scope),o=Tr(r),c=new Set(o.map((a)=>a.path));return{id:`${r.scope}:${r.type}:${r.name.toLowerCase()}`,tracked:r,validInstallations:o,missingInstallations:i.filter((a)=>!c.has(a.path)),status:o.length===0?"orphaned":"latest",latestCommit:r.commit}})}async function ms(l){let n=[];for(let s of l){if(s.validInstallations.length===0){n.push(s);continue}try{let r=await hr(s.tracked.url,s.tracked.branch);n.push({...s,latestCommit:r,status:r===s.tracked.commit?"latest":"update-available"})}catch(r){n.push({...s,status:"error",error:P(r,"Failed to check for updates")})}}return n}async function Qr(){v(!1);try{let l=ul();if(l.length===0){dl();return}let n=l.filter((r)=>r.tracked.scope==="project"),s=l.filter((r)=>r.tracked.scope==="global");if(S.step(Z.default.bold("Installed Skills and Commands")),n.length>0){S.message(Z.default.bold(Z.default.cyan("Local (./skills.lock)")));for(let r of n){let i=r.validInstallations.map((c)=>U[c.agent].label).join(", "),o=r.tracked.type==="command"?Z.default.yellow("⚡"):Z.default.green("✓");S.message(` ${o} ${Z.default.cyan(`${r.tracked.type}:${r.tracked.name}`)} ${Z.default.dim(`(${i||"missing files"})`)}`)}}if(s.length>0){S.message(Z.default.bold(Z.default.cyan("Global (~/.flins/skills.lock)")));for(let r of s){let i=r.validInstallations.map((c)=>U[c.agent].label).join(", "),o=r.tracked.type==="command"?Z.default.yellow("⚡"):Z.default.green("✓");S.message(` ${o} ${Z.default.cyan(`${r.tracked.type}:${r.tracked.name}`)} ${Z.default.dim(`(${i||"missing files"})`)}`)}}C(Z.default.green("Showing installed items"))}catch(l){S.error(P(l,"Failed to load installed items.")),C(Z.default.red("List failed")),process.exit(1)}}var sl=p(kl(),1);function Kr(l){return Boolean(l.yes||l.force)}async function Mr(l,n){v(Boolean(n.silent));try{let s=ul(l.length>0?l:void 0),r=s.filter((f)=>f.validInstallations.length>0);if(s.length===0){if(l.length>0)S.error(`No matching tracked items found for: ${l.join(", ")}`);else dl();C(sl.default.yellow("Nothing to remove"),Boolean(n.silent));return}if(r.length===0){S.warn("No valid installations found to remove."),C(sl.default.yellow("Nothing to remove"),Boolean(n.silent));return}let i=r.map((f)=>f.id);if(!Kr(n)&&l.length===0){let f=await bl({message:"Choose items to remove",required:!0,initialValues:i,options:r.map((b)=>{let m=wl(b.validInstallations).length;return{value:b.id,label:`${b.tracked.type}:${b.tracked.name}`,hint:`${m} ${M(m,"installation")} • ${b.tracked.scope}`}})});if(X(f)){A("Remove cancelled");return}i=f}let o=r.filter((f)=>i.includes(f.id));if(o.length===0){S.info("Nothing selected."),C(sl.default.yellow("Nothing removed"),Boolean(n.silent));return}S.step(sl.default.bold("Will Remove"));for(let f of o)S.message(` ${sl.default.cyan(`${f.tracked.type}:${f.tracked.name}`)} ${sl.default.dim(`(${f.validInstallations.map((b)=>U[b.agent].label).join(", ")})`)}`);if(!Kr(n)){let f=await $l({message:"Remove selected items?"});if(X(f)||!f){A("Remove cancelled");return}}let c=yl();c.start("Removing...");let a=0,k=0;for(let f of o){for(let b of wl(f.validInstallations)){let m=Lr(b.path);if(m.success)a+=1;else k+=1,S.error(`${f.tracked.type}:${f.tracked.name} → ${m.error}`)}if(Jl(f.tracked.name,f.tracked.type,f.tracked.scope).length===0)Sn(f.tracked.scope,f.tracked.name,f.tracked.type)}if(c.stop("Remove complete"),a>0)S.success(sl.default.green(`Removed ${a} ${M(a,"installation")}.`));if(k>0)C(sl.default.red("Remove finished with errors"),Boolean(n.silent)),process.exit(1);C(sl.default.green("Done! Items removed."),Boolean(n.silent))}catch(s){S.error(P(s,"Something went wrong. Try again or check your connection.")),C(sl.default.red("Remove failed"),Boolean(n.silent)),process.exit(1)}}var Kl=p(kl(),1);async function Pr(){v(!1);try{let l=yl();l.start("Loading directory...");let n=await Xl();if(l.stop("Directory loaded"),n.length===0){S.warn("The flins directory is empty."),C(Kl.default.yellow("Nothing to browse"));return}let s=await yr({message:"Choose skills from the flins directory",placeholder:"Type to search...",options:n.map((i)=>({value:i.name,label:i.name,hint:i.author?`${i.author} • ${i.description}`:i.description}))});if(X(s)){A("Search cancelled");return}let r=Array.isArray(s)?s:[s];if(r.length===0){S.info("Nothing selected."),C(Kl.default.yellow("Nothing installed"));return}for(let i of r)await In(i,{silent:!0});C(Kl.default.green(`Installed ${r.length} ${M(r.length,"directory entry")}.`))}catch(l){S.error(P(l,"Something went wrong. Try again or check your connection.")),C(Kl.default.red("Search failed")),process.exit(1)}}var j=p(kl(),1);import{lstatSync as Qc}from"node:fs";function Ss(l){return Boolean(l.yes||l.force)}function Kc(l,n){if(l.length===0){dl();return}S.step(j.default.bold("Installed Items"));for(let s of l){let r={latest:j.default.green("✓"),"update-available":j.default.yellow("↓"),error:j.default.red("✗"),orphaned:j.default.dim("○")}[s.status],i={latest:j.default.green("Up to date"),"update-available":j.default.yellow("Update available"),error:j.default.red("Check failed"),orphaned:j.default.dim("Missing files")}[s.status];if(!n){S.message(`${r} ${j.default.cyan(`${s.tracked.type}:${s.tracked.name}`)} ${j.default.dim(`- ${i}`)}`);continue}if(S.message(`${r} ${j.default.cyan(`${s.tracked.type}:${s.tracked.name}`)}`),S.message(` Status: ${i}`),s.status==="update-available")S.message(` Commit: ${j.default.yellow(s.tracked.commit.slice(0,7))} ${j.default.dim("→")} ${j.default.green(s.latestCommit.slice(0,7))}`);else if(s.tracked.commit)S.message(` Commit: ${s.tracked.commit.slice(0,7)}`);if(s.error)S.message(` ${j.default.red(s.error)}`);let o=wl(s.validInstallations),c=wl(s.missingInstallations);if(o.length>0){S.message(" Installed in:");for(let a of o)S.message(` ${a.agents.map((k)=>U[k].label).join(", ")}: ${j.default.dim(a.path)}`)}if(c.length>0){S.message(` ${j.default.yellow("Missing installations:")}`);for(let a of c)S.message(` ${a.agents.map((k)=>U[k].label).join(", ")}: ${j.default.dim(a.path)}`)}}}async function Wr(l,n={}){v(Boolean(n.silent));try{let s=yl();s.start("Checking installation status...");let r=await ms(ul(l.length>0?l:void 0));s.stop("Check complete"),Kc(r,Boolean(n.verbose||l.length>0)),C(j.default.green("Done"),Boolean(n.silent))}catch(s){S.error(P(s,"Something went wrong. Try again or check your connection.")),C(j.default.red("Failed to check status"),Boolean(n.silent)),process.exit(1)}}async function Er(l,n={}){v(Boolean(n.silent));try{let s=await ms(ul(l.length>0?l:void 0)),r=s.filter((f)=>f.status==="update-available");if(s.length===0){dl(),C(j.default.yellow("Nothing to update"),Boolean(n.silent));return}if(r.length===0){let f=s.filter((b)=>b.status==="orphaned");if(f.length>0)S.warn(`${f.length} ${M(f.length,"item")} ${f.length===1?"has":"have"} missing files.`);S.success(j.default.green("All tracked items are up to date.")),C(j.default.green("Everything is current"),Boolean(n.silent));return}let i=r.map((f)=>f.id);if(!Ss(n)){let f=await bl({message:"Choose items to update",required:!0,initialValues:i,options:r.map((b)=>({value:b.id,label:`${b.tracked.type}:${b.tracked.name}`,hint:`${b.tracked.commit.slice(0,7)} → ${b.latestCommit.slice(0,7)}`}))});if(X(f)){A("Update cancelled");return}i=f}let o=r.filter((f)=>i.includes(f.id));if(o.length===0){S.info("Nothing selected."),C(j.default.yellow("Nothing updated"),Boolean(n.silent));return}S.step(j.default.bold("Will Update"));for(let f of o)S.message(` ${j.default.cyan(`${f.tracked.type}:${f.tracked.name}`)} ${j.default.dim(`${f.tracked.commit.slice(0,7)} → ${f.latestCommit.slice(0,7)}`)}`);if(!Ss(n)){let f=await $l({message:"Ready to update?"});if(X(f)||!f){A("Update cancelled");return}}let c=yl();c.start("Updating...");let a=0,k=0;for(let f of o){let b=await Yl(f.tracked.url),m=0;try{let t=hl(b.root,f.tracked.subpath||b.subpath).find((L)=>L.type===f.tracked.type&&L.name.toLowerCase()===f.tracked.name.toLowerCase());if(!t){k+=1,S.error(`Could not find ${f.tracked.type}:${f.tracked.name} in ${f.tracked.url}`);continue}for(let L of wl(f.validInstallations)){let y=mn(t,L.agent,L.scope,{symlink:Qc(L.path).isSymbolicLink()});if(y.success)a+=1,m+=1;else k+=1,S.error(`${f.tracked.type}:${f.tracked.name} → ${y.error}`)}if(m>0)Yr(f.tracked.scope,f.tracked.name,f.tracked.type,b.commit)}finally{await Zl(b)}}if(c.stop("Update complete"),a>0)S.success(j.default.green(`Updated ${a} ${M(a,"installation")}.`));if(k>0)C(j.default.red("Update finished with errors"),Boolean(n.silent)),process.exit(1);C(j.default.green("Done! Items updated."),Boolean(n.silent))}catch(s){S.error(P(s,"Something went wrong. Try again or check your connection.")),C(j.default.red("Update failed"),Boolean(n.silent)),process.exit(1)}}async function Vr(l={}){v(Boolean(l.silent));try{let n=ul().filter((s)=>s.validInstallations.length===0);if(n.length===0){S.success(j.default.green("No orphaned state entries found.")),C(j.default.green("Nothing to clean"),Boolean(l.silent));return}S.step(j.default.bold("Orphaned State Entries"));for(let s of n)S.message(` ${j.default.cyan(`${s.tracked.type}:${s.tracked.name}`)} ${j.default.dim(`(${s.tracked.scope})`)}`);if(!Ss(l)){let s=await $l({message:`Remove ${n.length} orphaned ${M(n.length,"entry")} from skills.lock?`});if(X(s)||!s){A("Clean cancelled");return}}for(let s of n)Sn(s.tracked.scope,s.tracked.name,s.tracked.type);C(j.default.green("State cleaned up"),Boolean(l.silent))}catch(n){S.error(P(n,"Something went wrong. Try again or check your connection.")),C(j.default.red("Clean failed"),Boolean(l.silent)),process.exit(1)}}var Mc=`
|
|
72
|
+
`)},an=(n,l)=>n.split(`
|
|
73
|
+
`).map((c)=>l(c)).join(`
|
|
74
|
+
`),Ln=(n)=>{let l=(i,g)=>{let k=i.label??String(i.value);return g==="disabled"?`${D.default.gray(V0)} ${an(k,(w)=>D.default.strikethrough(D.default.gray(w)))}${i.hint?` ${D.default.dim(`(${i.hint??"disabled"})`)}`:""}`:g==="active"?`${D.default.cyan(zk)} ${k}${i.hint?` ${D.default.dim(`(${i.hint})`)}`:""}`:g==="selected"?`${D.default.green(M0)} ${an(k,D.default.dim)}${i.hint?` ${D.default.dim(`(${i.hint})`)}`:""}`:g==="cancelled"?`${an(k,(w)=>D.default.strikethrough(D.default.dim(w)))}`:g==="active-selected"?`${D.default.green(M0)} ${k}${i.hint?` ${D.default.dim(`(${i.hint})`)}`:""}`:g==="submitted"?`${an(k,D.default.dim)}`:`${D.default.dim(V0)} ${an(k,D.default.dim)}`},c=n.required??!0;return new Z0({options:n.options,signal:n.signal,input:n.input,output:n.output,initialValues:n.initialValues,required:c,cursorAt:n.cursorAt,validate(i){if(c&&(i===void 0||i.length===0))return`Please select at least one option.
|
|
75
|
+
${D.default.reset(D.default.dim(`Press ${D.default.gray(D.default.bgWhite(D.default.inverse(" space ")))} to select, ${D.default.gray(D.default.bgWhite(D.default.inverse(" enter ")))} to submit`))}`},render(){let i=Pl(n.output,n.message,`${rk(this.state)} `,`${A0(this.state)} `),g=`${D.default.gray(H)}
|
|
76
|
+
${i}
|
|
77
|
+
`,k=this.value??[],w=(I,x)=>{if(I.disabled)return l(I,"disabled");let $=k.includes(I.value);return x&&$?l(I,"active-selected"):$?l(I,"selected"):l(I,x?"active":"inactive")};switch(this.state){case"submit":{let I=this.options.filter(({value:$})=>k.includes($)).map(($)=>l($,"submitted")).join(D.default.dim(", "))||D.default.dim("none"),x=Pl(n.output,I,`${D.default.gray(H)} `);return`${g}${x}`}case"cancel":{let I=this.options.filter(({value:$})=>k.includes($)).map(($)=>l($,"cancelled")).join(D.default.dim(", "));if(I.trim()==="")return`${g}${D.default.gray(H)}`;let x=Pl(n.output,I,`${D.default.gray(H)} `);return`${g}${x}
|
|
78
|
+
${D.default.gray(H)}`}case"error":{let I=`${D.default.yellow(H)} `,x=this.error.split(`
|
|
79
|
+
`).map((y,_)=>_===0?`${D.default.yellow(An)} ${D.default.yellow(y)}`:` ${y}`).join(`
|
|
80
|
+
`),$=g.split(`
|
|
81
|
+
`).length,h=x.split(`
|
|
82
|
+
`).length+1;return`${g}${I}${N0({output:n.output,options:this.options,cursor:this.cursor,maxItems:n.maxItems,columnPadding:I.length,rowPadding:$+h,style:w}).join(`
|
|
83
|
+
${I}`)}
|
|
84
|
+
${x}
|
|
85
|
+
`}default:{let I=`${D.default.cyan(H)} `,x=g.split(`
|
|
86
|
+
`).length;return`${g}${I}${N0({output:n.output,options:this.options,cursor:this.cursor,maxItems:n.maxItems,columnPadding:I.length,rowPadding:x+2,style:w}).join(`
|
|
87
|
+
${I}`)}
|
|
88
|
+
${D.default.cyan(An)}
|
|
89
|
+
`}}}}).prompt()},xw=(n)=>D.default.dim(n),hw=(n,l,c)=>{let i={hard:!0,trim:!1},g=tn(n,l,i).split(`
|
|
90
|
+
`),k=g.reduce((x,$)=>Math.max(xn($),x),0),w=g.map(c).reduce((x,$)=>Math.max(xn($),x),0),I=l-(w-k);return tn(n,I,i)},E0=(n="",l="",c)=>{let i=c?.output??e.stdout,g=(c?.withGuide??$n.withGuide)!==!1,k=c?.format??xw,w=["",...hw(n,rn(i)-6,k).split(`
|
|
91
|
+
`).map(k),""],I=xn(l),x=Math.max(w.reduce((_,K)=>{let u=xn(K);return u>_?u:_},0),I)+2,$=w.map((_)=>`${D.default.gray(H)} ${_}${" ".repeat(x-xn(_))}${D.default.gray(H)}`).join(`
|
|
92
|
+
`),h=g?`${D.default.gray(H)}
|
|
93
|
+
`:"",y=g?bk:fk;i.write(`${h}${D.default.green(Ml)} ${D.default.reset(l)} ${D.default.gray(Ii.repeat(Math.max(x-I-1,1))+Ek)}
|
|
94
|
+
${$}
|
|
95
|
+
${D.default.gray(y+Ii.repeat(x+2)+Ok)}
|
|
96
|
+
`)};var uw=D.default.magenta,sn=({indicator:n="dots",onCancel:l,output:c=process.stdout,cancelMessage:i,errorMessage:g,frames:k=C0?["◒","◐","◓","◑"]:["•","o","O","0"],delay:w=C0?80:120,signal:I,...x}={})=>{let $=Nk(),h,y,_=!1,K=!1,u="",L,T=performance.now(),G=rn(c),J=x?.styleFrame??uw,X=(z)=>{let p=z>1?g??$n.messages.error:i??$n.messages.cancel;K=z===1,_&&(Xn(p,z),K&&typeof l=="function"&&l())},C=()=>X(2),N=()=>X(1),M=()=>{process.on("uncaughtExceptionMonitor",C),process.on("unhandledRejection",C),process.on("SIGINT",N),process.on("SIGTERM",N),process.on("exit",X),I&&I.addEventListener("abort",N)},B=()=>{process.removeListener("uncaughtExceptionMonitor",C),process.removeListener("unhandledRejection",C),process.removeListener("SIGINT",N),process.removeListener("SIGTERM",N),process.removeListener("exit",X),I&&I.removeEventListener("abort",N)},S=()=>{if(L===void 0)return;$&&c.write(`
|
|
97
|
+
`);let z=tn(L,G,{hard:!0,trim:!1}).split(`
|
|
98
|
+
`);z.length>1&&c.write(pn.cursor.up(z.length-1)),c.write(pn.cursor.to(0)),c.write(pn.erase.down())},m=(z)=>z.replace(/\.+$/,""),a=(z)=>{let p=(performance.now()-z)/1000,un=Math.floor(p/60),yn=Math.floor(p%60);return un>0?`[${un}m ${yn}s]`:`[${yn}s]`},F=(z="")=>{_=!0,h=ci({output:c}),u=m(z),T=performance.now(),c.write(`${D.default.gray(H)}
|
|
99
|
+
`);let p=0,un=0;M(),y=setInterval(()=>{if($&&u===L)return;S(),L=u;let yn=J(k[p]),Ll;if($)Ll=`${yn} ${u}...`;else if(n==="timer")Ll=`${yn} ${u} ${a(T)}`;else{let ug=".".repeat(Math.floor(un)).slice(0,3);Ll=`${yn} ${u}${ug}`}let hg=tn(Ll,G,{hard:!0,trim:!1});c.write(hg),p=p+1<k.length?p+1:0,un=un<4?un+0.125:0},w)},Xn=(z="",p=0,un=!1)=>{if(!_)return;_=!1,clearInterval(y),S();let yn=p===0?D.default.green(Ml):p===1?D.default.red(ui):D.default.red(yi);u=z??u,un||(n==="timer"?c.write(`${yn} ${u} ${a(T)}
|
|
100
|
+
`):c.write(`${yn} ${u}
|
|
101
|
+
`)),B(),h()};return{start:F,stop:(z="")=>Xn(z,0),message:(z="")=>{u=m(z??u)},cancel:(z="")=>Xn(z,1),error:(z="")=>Xn(z,2),clear:()=>Xn("",0,!0),get isCancelled(){return K}}},yx={light:A("─","-"),heavy:A("━","="),block:A("█","#")};var _x=`${D.default.gray(H)} `;var Y=cn(Dn(),1);import{basename as b0,dirname as yw,extname as _w,join as Nl}from"node:path";import{readdirSync as Dw,readFileSync as Lw}from"node:fs";var sw=new Set(["node_modules",".git","dist","build","__pycache__"]);function Uw(n){try{return Lw(n,"utf-8")}catch{return null}}function Ti(n){try{return Dw(n,{withFileTypes:!0})}catch{return[]}}function Bi(n){let l=Uw(n);if(!l)return null;let c=l.match(/^---\n([\s\S]+?)\n---/)?.[1]||l;return{name:c.match(/^name:\s*(.+)$/m)?.[1]?.replace(/^['"]|['"]$/g,"").trim(),description:c.match(/^description:\s*(.+)$/m)?.[1]?.replace(/^['"]|['"]$/g,"").trim()}}function qw(n){let l=Bi(n);if(!l?.name||!l.description)return null;return{type:"skill",name:l.name,description:l.description,path:yw(n)}}function Kw(n){let l=Bi(n);if(!l)return null;return{type:"command",name:l.name||b0(n,".md"),description:l.description||`Command: ${b0(n,".md")}`,path:n}}function Gi(n,l,c,i,g){if(l>5)return;let k=qw(Nl(n,"SKILL.md"));if(k&&!i.has(k.name.toLowerCase()))i.add(k.name.toLowerCase()),c.push(k);for(let w of Ti(n)){if(!w.isDirectory())continue;if(sw.has(w.name))continue;let I=Nl(n,w.name);if(w.name==="commands"){for(let x of Ti(I)){if(!x.isFile()||_w(x.name).toLowerCase()!==".md")continue;if(b0(x.name,".md").toLowerCase()==="readme"||x.name===".DS_Store")continue;let h=Kw(Nl(I,x.name));if(!h||g.has(h.name.toLowerCase()))continue;g.add(h.name.toLowerCase()),c.push(h)}continue}Gi(I,l+1,c,i,g)}}function en(n,l){let c=[],i=new Set,g=new Set;return Gi(l?Nl(n,l):n,0,c,i,g),c.sort((k,w)=>{if(k.type!==w.type)return k.type==="skill"?-1:1;return k.name.localeCompare(w.name)})}import{cpSync as O0,existsSync as Al,lstatSync as o0,mkdirSync as zn,readdirSync as Qi,readlinkSync as Tw,rmSync as Pn,symlinkSync as Si}from"node:fs";import{homedir as Bw,platform as Gw}from"node:os";import{dirname as Zn,join as nn,relative as Ji,resolve as nl}from"node:path";var Sw=nn(Bw(),".flins"),Jw=new Set(["README.md","metadata.json"]);function f0(n){return n instanceof Error?n.message:"Unknown error"}function jw(n,l,c){let i=n==="global"?nn(Sw,".agents"):nn(c,".agents");return nn(i,l==="skill"?"skills":"commands")}function Xw(n,l,c){try{for(let i of Qi(n,{withFileTypes:!0})){if((c==="command"?i.name.replace(/\.md$/i,""):i.name).toLowerCase()!==l.toLowerCase())continue;let k=nn(n,i.name),w=o0(k);if(c==="skill"&&(w.isDirectory()||w.isSymbolicLink()))return k;if(c==="command"&&(w.isFile()||w.isSymbolicLink()))return k}}catch{return null}return null}function Qw(n,l){if(!Al(n))return!1;try{let c=o0(n);if(l==="skill")return(c.isDirectory()||c.isSymbolicLink())&&Al(nn(n,"SKILL.md"));return(c.isFile()||c.isSymbolicLink())&&n.toLowerCase().endsWith(".md")}catch{return!1}}function v0(n,l){Pn(l,{recursive:!0,force:!0}),zn(l,{recursive:!0});for(let c of Qi(n,{withFileTypes:!0})){if(Jw.has(c.name)||c.name.startsWith("_"))continue;let i=nn(n,c.name),g=nn(l,c.name);if(c.isDirectory()){v0(i,g);continue}zn(Zn(g),{recursive:!0}),O0(i,g,{recursive:!0})}}function ji(n,l,c){let i=jw(l,n.type,c);return zn(i,{recursive:!0}),n.type==="skill"?nn(i,n.name):nn(i,`${n.name}.md`)}function Xi(n){if(Gw()!=="win32")return;return n==="skill"?"junction":"file"}function ll(n,l,c,i=process.cwd()){let g=[];for(let k of wn()){let w=l==="skill"?_0(k,c,i):D0(k,c,i);if(!w||!Al(w))continue;let I=Xw(w,n,l);if(!I)continue;g.push({agent:k,scope:c,path:I})}return g}function Yi(n,l=process.cwd()){return ll(n.name,n.type,n.scope,l).filter((c)=>Qw(c.path,n.type))}function Wn(n){let l=new Map;for(let c of n){let i=l.get(c.path);if(i){i.agents.push(c.agent);continue}l.set(c.path,{agent:c.agent,scope:c.scope,path:c.path,agents:[c.agent]})}return Array.from(l.values())}function Rl(n,l,c,i){let g=i.cwd??process.cwd();if(n.type==="command"){let w=D0(l,c,g);if(!w)return{success:!1,path:"",error:`Agent ${Q[l].label} does not support commands`};let I=nn(w,`${n.name}.md`);try{if(!i.symlink)return zn(Zn(I),{recursive:!0}),Pn(I,{force:!0}),O0(n.path,I),{success:!0,path:I};let x=ji(n,c,g);if(Pn(x,{force:!0}),O0(n.path,x),nl(x)===nl(I))return{success:!0,path:I};return zn(Zn(I),{recursive:!0}),Pn(I,{recursive:!0,force:!0}),Si(Ji(Zn(I),x),I,Xi(n.type)),{success:!0,path:I}}catch(x){return{success:!1,path:I,error:f0(x)}}}let k=nn(_0(l,c,g),n.name);try{if(!i.symlink)return v0(n.path,k),{success:!0,path:k};let w=ji(n,c,g);if(v0(n.path,w),nl(w)===nl(k))return{success:!0,path:k};return zn(Zn(k),{recursive:!0}),Pn(k,{recursive:!0,force:!0}),Si(Ji(Zn(k),w),k,Xi(n.type)),{success:!0,path:k}}catch(w){return{success:!1,path:k,error:f0(w)}}}function Zi(n){try{if(Al(n)&&o0(n).isSymbolicLink()){let l=nl(Zn(n),Tw(n));Pn(l,{recursive:!0,force:!0})}return Pn(n,{recursive:!0,force:!0}),{success:!0}}catch(l){return{success:!1,error:f0(l)}}}var cl=cn(Dn(),1);function ln(n=!1){if(!n)qi(cl.default.bgCyan(cl.default.black(" flins ")))}function P(n,l=!1){if(!l)Ki(n)}function r(n,l,c){return n===1?l:c??`${l}s`}function d(n,l){return n instanceof Error?n.message:l}function Hn(){U.warn("No skills yet. Install your first skill:"),U.message(` ${cl.default.cyan("npx flins@latest add <repo>")}`),U.message(` ${cl.default.cyan("npx flins@latest search")}`)}import{spawn as NI}from"node:child_process";import{createHash as AI}from"node:crypto";import{existsSync as RI,mkdtempSync as M1,mkdirSync as $l,rmSync as zI,writeFileSync as Dc}from"node:fs";import{tmpdir as V1}from"node:os";import{basename as N1,dirname as A1,join as Vn,posix as EI}from"node:path";import{Readable as bI}from"node:stream";import{gunzipSync as OI}from"node:zlib";var gc=u1(),uI=T1();var Rx=b("fs"),GI=b("zlib"),SI=X1(),JI=Z1(),al=b("util"),pl=b("events").EventEmitter,P1=b("stream").Transform,uc=b("stream").PassThrough,jI=b("stream").Writable;var yc=XI;function XI(n,l,c){if(typeof l==="function")c=l,l=null;if(l==null)l={};if(l.autoClose=!1,l.lazyEntries==null)l.lazyEntries=!1;if(l.decodeStrings==null)l.decodeStrings=!0;if(l.validateEntrySizes==null)l.validateEntrySizes=!0;if(l.strictFileNames==null)l.strictFileNames=!1;var i=SI.createFromBuffer(n,{maxChunkSize:65536});QI(i,n.length,l,c)}function QI(n,l,c,i){if(typeof c==="function")i=c,c=null;if(c==null)c={};if(c.autoClose==null)c.autoClose=!0;if(c.lazyEntries==null)c.lazyEntries=!1;if(c.decodeStrings==null)c.decodeStrings=!0;var g=!!c.decodeStrings;if(c.validateEntrySizes==null)c.validateEntrySizes=!0;if(c.strictFileNames==null)c.strictFileNames=!1;if(i==null)i=MI;if(typeof l!=="number")throw Error("expected totalSize parameter to be a number");if(l>Number.MAX_SAFE_INTEGER)throw Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");n.ref();var k=22,w=20,I=65535,x=Math.min(w+k+I,l),$=Tn(x),h=l-$.length;on(n,$,0,x,h,function(y){if(y)return i(y);for(var _=x-k;_>=0;_-=1){if($.readUInt32LE(_)!==101010256)continue;var K=$.subarray(_),u=K.readUInt16LE(4),L=K.readUInt16LE(10),T=K.readUInt32LE(16),G=K.readUInt16LE(20),J=K.length-k;if(G!==J)return i(Error("Invalid comment length. Expected: "+J+". Found: "+G+". Are there extra bytes at the end of the file? Or is the end of central dir signature `PK☺☻` in the comment?"));var X=g?dl(K.subarray(22),!1):K.subarray(22);if(_-w>=0&&$.readUInt32LE(_-w)===117853008){var C=$.subarray(_-w,_-w+w),N=vn(C,8),M=Tn(56);return on(n,M,0,M.length,N,function(B){if(B)return i(B);if(M.readUInt32LE(0)!==101075792)return i(Error("invalid zip64 end of central directory record signature"));if(u=M.readUInt32LE(16),u!==0)return i(Error("multi-disk zip files are not supported: found disk number: "+u));return L=vn(M,32),T=vn(M,48),i(null,new Kn(n,T,l,L,X,c.autoClose,c.lazyEntries,g,c.validateEntrySizes,c.strictFileNames))})}if(u!==0)return i(Error("multi-disk zip files are not supported: found disk number: "+u));return i(null,new Kn(n,T,l,L,X,c.autoClose,c.lazyEntries,g,c.validateEntrySizes,c.strictFileNames))}i(Error("End of central directory record signature not found. Either not a zip file, or file is truncated."))})}al.inherits(Kn,pl);function Kn(n,l,c,i,g,k,w,I,x,$){var h=this;if(pl.call(h),h.reader=n,h.reader.on("error",function(y){W1(h,y)}),h.reader.once("close",function(){h.emit("close")}),h.readEntryCursor=l,h.fileSize=c,h.entryCount=i,h.comment=g,h.entriesRead=0,h.autoClose=!!k,h.lazyEntries=!!w,h.decodeStrings=!!I,h.validateEntrySizes=!!x,h.strictFileNames=!!$,h.isOpen=!0,h.emittedError=!1,!h.lazyEntries)h._readEntry()}Kn.prototype.close=function(){if(!this.isOpen)return;this.isOpen=!1,this.reader.unref()};function hn(n,l){if(n.autoClose)n.close();W1(n,l)}function W1(n,l){if(n.emittedError)return;n.emittedError=!0,n.emit("error",l)}Kn.prototype.readEntry=function(){if(!this.lazyEntries)throw Error("readEntry() called without lazyEntries:true");this._readEntry()};Kn.prototype._readEntry=function(){var n=this;if(n.entryCount===n.entriesRead){setImmediate(function(){if(n.autoClose)n.close();if(n.emittedError)return;n.emit("end")});return}if(n.emittedError)return;var l=Tn(46);on(n.reader,l,0,l.length,n.readEntryCursor,function(c){if(c)return hn(n,c);if(n.emittedError)return;var i=new wl,g=l.readUInt32LE(0);if(g!==33639248)return hn(n,Error("invalid central directory file header signature: 0x"+g.toString(16)));if(i.versionMadeBy=l.readUInt16LE(4),i.versionNeededToExtract=l.readUInt16LE(6),i.generalPurposeBitFlag=l.readUInt16LE(8),i.compressionMethod=l.readUInt16LE(10),i.lastModFileTime=l.readUInt16LE(12),i.lastModFileDate=l.readUInt16LE(14),i.crc32=l.readUInt32LE(16),i.compressedSize=l.readUInt32LE(20),i.uncompressedSize=l.readUInt32LE(24),i.fileNameLength=l.readUInt16LE(28),i.extraFieldLength=l.readUInt16LE(30),i.fileCommentLength=l.readUInt16LE(32),i.internalFileAttributes=l.readUInt16LE(36),i.externalFileAttributes=l.readUInt32LE(38),i.relativeOffsetOfLocalHeader=l.readUInt32LE(42),i.generalPurposeBitFlag&64)return hn(n,Error("strong encryption is not supported"));n.readEntryCursor+=46,l=Tn(i.fileNameLength+i.extraFieldLength+i.fileCommentLength),on(n.reader,l,0,l.length,n.readEntryCursor,function(k){if(k)return hn(n,k);if(n.emittedError)return;i.fileNameRaw=l.subarray(0,i.fileNameLength);var w=i.fileNameLength+i.extraFieldLength;i.extraFieldRaw=l.subarray(i.fileNameLength,w),i.fileCommentRaw=l.subarray(w,w+i.fileCommentLength);try{i.extraFields=HI(i.extraFieldRaw)}catch(L){return hn(n,L)}if(n.decodeStrings){var I=(i.generalPurposeBitFlag&2048)!==0;i.fileComment=dl(i.fileCommentRaw,I),i.fileName=PI(i.generalPurposeBitFlag,i.fileNameRaw,i.extraFields,n.strictFileNames);var x=WI(i.fileName);if(x!=null)return hn(n,Error(x))}else i.fileComment=i.fileCommentRaw,i.fileName=i.fileNameRaw;i.comment=i.fileComment,n.readEntryCursor+=l.length,n.entriesRead+=1;for(var $=0;$<i.extraFields.length;$++){var h=i.extraFields[$];if(h.id!==1)continue;var y=h.data,_=0;if(i.uncompressedSize===4294967295){if(_+8>y.length)return hn(n,Error("zip64 extended information extra field does not include uncompressed size"));i.uncompressedSize=vn(y,_),_+=8}if(i.compressedSize===4294967295){if(_+8>y.length)return hn(n,Error("zip64 extended information extra field does not include compressed size"));i.compressedSize=vn(y,_),_+=8}if(i.relativeOffsetOfLocalHeader===4294967295){if(_+8>y.length)return hn(n,Error("zip64 extended information extra field does not include relative header offset"));i.relativeOffsetOfLocalHeader=vn(y,_),_+=8}break}if(n.validateEntrySizes&&i.compressionMethod===0){var K=i.uncompressedSize;if(i.isEncrypted())K+=12;if(i.compressedSize!==K){var u="compressed/uncompressed size mismatch for stored file: "+i.compressedSize+" != "+i.uncompressedSize;return hn(n,Error(u))}}if(n.emit("entry",i),!n.lazyEntries)n._readEntry()})})};Kn.prototype.openReadStream=function(n,l,c){var i=this,g=0,k=n.compressedSize;if(c==null)c=l,l=null;if(l==null)l={};else{if(l.decodeFileData===!1){if(l.decrypt!=null)throw Error("cannot use options.decrypt when options.decodeFileData === false");if(l.decompress!=null)throw Error("cannot use options.decompress when options.decodeFileData === false")}else{if(l.decrypt!=null){if(!n.isEncrypted())throw Error("options.decrypt can only be specified for encrypted entries. See also option decodeFileData.");if(l.decrypt!==!1)throw Error("invalid options.decrypt value: "+l.decrypt);if(n.isCompressed()){if(l.decompress!==!1)throw Error("entry is encrypted and compressed, and options.decompress !== false. See also option decodeFileData.")}}if(l.decompress!=null){if(!n.isCompressed())throw Error("options.decompress can only be specified for compressed entries. See also option decodeFileData.");if(!(l.decompress===!1||l.decompress===!0))throw Error("invalid options.decompress value: "+l.decompress);I=l.decompress}}if(l.start!=null){if(g=l.start,g<0)throw Error("options.start < 0");if(g>n.compressedSize)throw Error("options.start > entry.compressedSize")}if(l.end!=null){if(k=l.end,k<0)throw Error("options.end < 0");if(k>n.compressedSize)throw Error("options.end > entry.compressedSize");if(k<g)throw Error("options.end < options.start")}}var w=l.decodeFileData===!1||(n.compressionMethod===0||n.compressionMethod===8&&l.decompress===!1)&&(!n.isEncrypted()||l.decrypt===!1);if(l.start!=null||l.end!=null){if(!w)throw Error("start/end range require options.decodeFileData === false for non-trivial encoded entries.")}if(!i.isOpen)return c(Error("closed"));if(n.isEncrypted()&&!w){if(l.decrypt!==!1)return c(Error("entry is encrypted, and options.decodeFileData !== false"))}var I;if(w)I=!1;else if(n.compressionMethod===8)I=l.decodeFileData!==!0;else return c(Error("unsupported compression method: "+n.compressionMethod));i.readLocalFileHeader(n,{minimal:!0},function(x,$){if(x)return c(x);i.openReadStreamLowLevel($.fileDataStart,n.compressedSize,g,k,I,n.uncompressedSize,c)})};Kn.prototype.openReadStreamLowLevel=function(n,l,c,i,g,k,w){var I=this,x=n+l,$=I.reader.createReadStream({start:n+c,end:n+i}),h=$;if(g){var y=!1,_=GI.createInflateRaw();if($.on("error",function(K){setImmediate(function(){if(!y)_.emit("error",K)})}),$.pipe(_),I.validateEntrySizes)h=new Il(k),_.on("error",function(K){setImmediate(function(){if(!y)h.emit("error",K)})}),_.pipe(h);else h=_;hc(h,function(){if(y=!0,_!==h)_.unpipe(h);$.unpipe(_),$.destroy()})}w(null,h)};Kn.prototype.readLocalFileHeader=function(n,l,c){var i=this;if(c==null)c=l,l=null;if(l==null)l={};i.reader.ref();var g=Tn(30);on(i.reader,g,0,g.length,n.relativeOffsetOfLocalHeader,function(k){try{if(k)return c(k);var w=g.readUInt32LE(0);if(w!==67324752)return c(Error("invalid local file header signature: 0x"+w.toString(16)));var I=g.readUInt16LE(26),x=g.readUInt16LE(28),$=n.relativeOffsetOfLocalHeader+30+I+x;if($+n.compressedSize>i.fileSize)return c(Error("file data overflows file bounds: "+$+" + "+n.compressedSize+" > "+i.fileSize));if(l.minimal)return c(null,{fileDataStart:$});var h=new YI;h.fileDataStart=$,h.versionNeededToExtract=g.readUInt16LE(4),h.generalPurposeBitFlag=g.readUInt16LE(6),h.compressionMethod=g.readUInt16LE(8),h.lastModFileTime=g.readUInt16LE(10),h.lastModFileDate=g.readUInt16LE(12),h.crc32=g.readUInt32LE(14),h.compressedSize=g.readUInt32LE(18),h.uncompressedSize=g.readUInt32LE(22),h.fileNameLength=I,h.extraFieldLength=x,g=Tn(I+x),i.reader.ref(),on(i.reader,g,0,g.length,n.relativeOffsetOfLocalHeader+30,function(y){try{if(y)return c(y);return h.fileName=g.subarray(0,I),h.extraField=g.subarray(I),c(null,h)}finally{i.reader.unref()}})}finally{i.reader.unref()}})};function wl(){}wl.prototype.getLastModDate=function(n){if(n==null)n={};if(!n.forceDosFormat)for(var l=0;l<this.extraFields.length;l++){var c=this.extraFields[l];if(c.id===21589){var i=c.data;if(i.length<5)continue;var g=i[0],k=1;if(!(g&k))continue;var w=i.readInt32LE(1);return new Date(w*1000)}else if(c.id===10){var i=c.data;if(i.length!==32)continue;if(i.readUInt16LE(4)!==1)continue;if(i.readUInt16LE(6)!==24)continue;var I=i.readUInt32LE(8)+4294967296*i.readInt32LE(12),x=I/1e4-11644473600000;return new Date(x)}}return ZI(this.lastModFileDate,this.lastModFileTime,n.timezone)};wl.prototype.canDecodeFileData=function(){return!this.isEncrypted()&&(this.compressionMethod===0||this.compressionMethod===8)};wl.prototype.isEncrypted=function(){return(this.generalPurposeBitFlag&1)!==0};wl.prototype.isCompressed=function(){return this.compressionMethod===8};function YI(){}function ZI(n,l,c){var i=n&31,g=(n>>5&15)-1,k=(n>>9&127)+1980,w=0,I=(l&31)*2,x=l>>5&63,$=l>>11&31;if(c==null||c==="local")return new Date(k,g,i,$,x,I,w);else if(c==="UTC")return new Date(Date.UTC(k,g,i,$,x,I,w));else throw Error("unrecognized options.timezone: "+options.timezone)}function PI(n,l,c,i){var g=null;for(var k=0;k<c.length;k++){var w=c[k];if(w.id===28789){if(w.data.length<6)continue;if(w.data.readUInt8(0)!==1)continue;var I=w.data.readUInt32LE(1);if(JI.unsigned(l)!==I)continue;g=dl(w.data.subarray(5),!0);break}}if(g==null){var x=(n&2048)!==0;g=dl(l,x)}if(!i)g=g.replace(/\\/g,"/");return g}function WI(n){if(n.indexOf("\\")!==-1)return"invalid characters in fileName: "+n;if(/^[a-zA-Z]:/.test(n)||/^\//.test(n))return"absolute path: "+n;if(n.split("/").indexOf("..")!==-1)return"invalid relative path: "+n;return null}function HI(n){var l=[],c=0;while(c<n.length-3){var i=n.readUInt16LE(c+0),g=n.readUInt16LE(c+2),k=c+4,w=k+g;if(w>n.length)throw Error("extra field length exceeds extra field buffer size");var I=n.subarray(k,w);l.push({id:i,data:I}),c=w}return l}function on(n,l,c,i,g,k){if(i===0)return setImmediate(function(){k(null,Tn(0))});n.read(l,c,i,g,function(w,I){if(w)return k(w);if(I<i)return k(Error("unexpected EOF"));k()})}al.inherits(Il,P1);function Il(n){P1.call(this),this.actualByteCount=0,this.expectedByteCount=n}Il.prototype._transform=function(n,l,c){if(this.actualByteCount+=n.length,this.actualByteCount>this.expectedByteCount){var i="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return c(Error(i))}c(null,n)};Il.prototype._flush=function(n){if(this.actualByteCount<this.expectedByteCount){var l="not enough bytes in the stream. expected "+this.expectedByteCount+". got only "+this.actualByteCount;return n(Error(l))}n()};al.inherits(Mn,pl);function Mn(){pl.call(this),this.refCount=0}Mn.prototype.ref=function(){this.refCount+=1};Mn.prototype.unref=function(){var n=this;if(n.refCount-=1,n.refCount>0)return;if(n.refCount<0)throw Error("invalid unref");n.close(l);function l(c){if(c)return n.emit("error",c);n.emit("close")}};Mn.prototype.createReadStream=function(n){if(n==null)n={};var{start:l,end:c}=n;if(l===c){var i=new uc;return setImmediate(function(){i.end()}),i}var g=this._readStreamForRange(l,c),k=!1,w=new tl(this);g.on("error",function(x){setImmediate(function(){if(!k)w.emit("error",x)})}),hc(w,function(){g.unpipe(w),w.unref(),g.destroy()});var I=new Il(c-l);return w.on("error",function(x){setImmediate(function(){if(!k)I.emit("error",x)})}),hc(I,function(){k=!0,w.unpipe(I),w.destroy()}),g.pipe(w).pipe(I)};Mn.prototype._readStreamForRange=function(n,l){throw Error("not implemented")};Mn.prototype.read=function(n,l,c,i,g){var k=this.createReadStream({start:i,end:i+c}),w=new jI,I=0;w._write=function(x,$,h){x.copy(n,l+I,0,x.length),I+=x.length,h()},w.on("finish",g),k.on("error",function(x){g(x)}),k.pipe(w)};Mn.prototype.close=function(n){setImmediate(n)};al.inherits(tl,uc);function tl(n){uc.call(this),this.context=n,this.context.ref(),this.unreffedYet=!1}tl.prototype._flush=function(n){this.unref(),n()};tl.prototype.unref=function(n){if(this.unreffedYet)return;this.unreffedYet=!0,this.context.unref()};var CI="\x00☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ";function dl(n,l){if(l)return n.toString("utf8");else{var c="";for(var i=0;i<n.length;i++)c+=CI[n[i]];return c}}function vn(n,l){var c=n.readUInt32LE(l),i=n.readUInt32LE(l+4);return i*4294967296+c}var Tn;if(typeof Buffer.allocUnsafe==="function")Tn=function(n){return Buffer.allocUnsafe(n)};else Tn=function(n){return new Buffer(n)};function hc(n,l){if(typeof n.destroy==="function")n._destroy=function(c,i){if(l(),i!=null)i(c)};else n.destroy=l}function MI(n){if(n)throw n}var fI="https://flins.tech/directory.json",vI="/.well-known/agent-skills",oI="https://schemas.agentskills.io/discovery/0.2.0/schema.json",el=52428800,H1=new Set(["bitbucket.org","dev.azure.com","codeberg.org","framagit.org","gitea.com","git.sr.ht","git.disroot.org","github.com","git.launchpad.net","gitlab.com","hg.sr.ht","launchpad.net","notabug.org","pagure.io","repo.or.cz","sourcehut.org"]);function R1(n){return n.startsWith("well-known:")}function z1(n){return R1(n)?n.slice(11):n}function mI(n){try{let l=new URL(n);return l.protocol==="http:"||l.protocol==="https:"?l:null}catch{return null}}function C1(n){return/^(?:[a-z0-9][-a-z0-9]*\.)+[a-z]{2,}$/i.test(n)}function E1(n){let l=z1(n).trim().replace(/\/+$/,"");if(!l||l.endsWith(".git"))return null;let c=R1(n),i=mI(l);if(i){let k=i.hostname.toLowerCase();if(!C1(k))return null;if(!c&&H1.has(k))return null;return{host:k,origin:i.origin}}let g=l.split("/")[0].replace(/\/$/,"").toLowerCase();if(!C1(g))return null;if(!c&&H1.has(g))return null;return{host:g,origin:`https://${g}`}}function FI(n){return`${n.origin}${vI}/index.json`}function _c(n,l){return new Promise((c,i)=>{let g="",k="",w=NI("git",n,{cwd:l,stdio:["ignore","pipe","pipe"]});w.stdout.on("data",(I)=>{g+=I.toString()}),w.stderr.on("data",(I)=>{k+=I.toString()}),w.on("error",i),w.on("close",(I)=>{if(I===0){c(g.trim());return}i(Error(k.trim()||`git ${n.join(" ")} failed`))})})}async function b1(n,l){let c=await fetch(n,{signal:AbortSignal.timeout(l),headers:{Accept:"application/json"}});if(!c.ok)throw Error(`Failed to fetch ${n}: ${c.status}`);return await c.json()}function O1(n){let l=n.trim().toLowerCase();if(!/^sha256:[0-9a-f]{64}$/.test(l))throw Error(`Invalid digest format: ${n}`);return l.slice(7)}function rI(n){return AI("sha256").update(n).digest("hex")}function f1(n){if(!n)throw Error("Archive entry path is empty");if(n.startsWith("/")||/^[a-z]:\//i.test(n)||n.includes("\x00"))throw Error(`Unsafe archive entry path: ${n}`);let l=EI.normalize(n.replace(/\\/g,"/")),c=l.split("/");if(l==="."||l.startsWith("../")||l.includes("/../")||c.includes(".."))throw Error(`Unsafe archive entry path: ${n}`);return l.replace(/^\.\/+/,"").replace(/\/$/,"")}function dI(n,l){let c=l?.split(";")[0]?.trim().toLowerCase()??"";if(c==="application/gzip"||c==="application/x-gzip")return"tar.gz";if(c==="application/zip")return"zip";let i=new URL(n).pathname.toLowerCase();if(i.endsWith(".tar.gz")||i.endsWith(".tgz"))return"tar.gz";if(i.endsWith(".zip"))return"zip";throw Error(`Unsupported archive format for ${n}`)}function aI(n,l){if(!n||typeof n!=="object"||!Array.isArray(n.skills))throw Error(`Invalid skill index format from ${new URL(l).host}`);let c=new URL(l);if((typeof n.$schema==="string"?n.$schema:null)!==oI)throw Error(`Unsupported discovery schema from ${c.host}`);let g=n.skills,k=[];for(let w of g){if(!w||typeof w!=="object")throw Error(`Invalid skill entry from ${c.host}`);let{name:I,description:x,type:$,url:h,digest:y}=w;if(typeof I!=="string"||typeof x!=="string")throw Error(`Invalid skill entry from ${c.host}`);if(!/^(?!-)(?!.*--)[a-z0-9-]{1,64}(?<!-)$/.test(I))throw Error(`Invalid skill name from ${c.host}: ${I}`);if($!=="skill-md"&&$!=="archive")continue;if(typeof h!=="string"||typeof y!=="string")throw Error(`Invalid skill entry from ${c.host}`);O1(y),k.push({name:I,description:x,type:$,url:new URL(h,c).toString(),digest:y})}return k}async function v1(n){let l=FI(n),c=await b1(l,1e4);return{host:n.host,origin:n.origin,skills:aI(c,l)}}async function pI(n,l){await new Promise((c,i)=>{let g=gc(),k=bI.from(Buffer.from(OI(l))),w=0,I=!1,x=($)=>{if(I)return;I=!0,i($ instanceof Error?$:Error(String($)))};g.on("entry",($,h,y)=>{(async()=>{if($.type==="symlink"||$.type==="link")throw Error(`Unsafe archive entry in ${N1(n)}: ${$.name}`);let _=f1($.name),K=Vn(n,_);if($.type==="directory"){$l(K,{recursive:!0}),h.resume();return}if($.type!=="file"){h.resume();return}let u=[];for await(let L of h){let T=Buffer.isBuffer(L)?L:Buffer.from(L);if(w+=T.length,w>el)throw Error(`Archive exceeds ${el} bytes after extraction`);u.push(T)}$l(A1(K),{recursive:!0}),Dc(K,Buffer.concat(u))})().then(()=>y()).catch((_)=>{h.resume(),x(_)})}),g.on("finish",()=>{if(!I)I=!0,c()}),g.on("error",x),k.on("error",x),k.pipe(g)})}async function tI(n,l){await new Promise((c,i)=>{yc(Buffer.from(l),{decodeStrings:!0,lazyEntries:!0,strictFileNames:!0,validateEntrySizes:!0},(g,k)=>{if(g||!k){i(g instanceof Error?g:Error("Unable to open zip archive"));return}let w=0,I=!1,x=($)=>{if(I)return;I=!0,k.close(),i($ instanceof Error?$:Error(String($)))};k.on("entry",($)=>{try{let h=$.versionMadeBy>>8===3?$.externalFileAttributes>>>16:0;if((h&61440)===40960){x(Error(`Unsafe archive entry in ${N1(n)}: ${$.fileName}`));return}let y=f1($.fileName),_=Vn(n,y);if($.fileName.endsWith("/")||(h&61440)===16384){$l(_,{recursive:!0}),k.readEntry();return}if(w+=$.uncompressedSize,w>el){x(Error(`Archive exceeds ${el} bytes after extraction`));return}k.openReadStream($,(K,u)=>{if(K||!u){x(K instanceof Error?K:Error("Unable to read zip entry"));return}let L=[];u.on("data",(T)=>{L.push(Buffer.isBuffer(T)?T:Buffer.from(T))}),u.on("end",()=>{$l(A1(_),{recursive:!0}),Dc(_,Buffer.concat(L)),k.readEntry()}),u.on("error",x)})}catch(h){x(h)}}),k.once("end",()=>{if(!I)I=!0,c()}),k.once("error",x),k.readEntry()})})}async function eI(n,l){let c=Vn(n,l.name);$l(c,{recursive:!0});let i=await fetch(l.url,{signal:AbortSignal.timeout(30000)});if(!i.ok)throw Error(`Failed to download ${l.url}: ${i.status}`);let g=new Uint8Array(await i.arrayBuffer());if(rI(g)!==O1(l.digest))throw Error(`Digest mismatch for ${l.name}`);if(l.type==="skill-md"){Dc(Vn(c,"SKILL.md"),Buffer.from(g));return}if(dI(l.url,i.headers.get("content-type"))==="tar.gz")await pI(c,g);else await tI(c,g);if(!RI(Vn(c,"SKILL.md")))throw Error(`Archive for ${l.name} must contain SKILL.md at the root`)}async function n$(n){let l=M1(Vn(V1(),"flins-wellknown-"));for(let c of n.skills)await eI(l,c);return{kind:"well-known",label:n.host,url:`well-known:${n.origin}`,branch:"main",commit:"well-known",root:l}}async function l$(n){let l=c$(n),c=M1(Vn(V1(),"flins-git-")),i=l.branch??"main",g=["clone","--depth","1"];if(l.branch)g.push("--branch",l.branch);return g.push(l.url,c),await _c(g),{kind:"git",label:l.url,url:l.url,branch:i,commit:await _c(["rev-parse","HEAD"],c),root:c,subpath:l.subpath}}function o1(n){return/^[a-z0-9-]+$/i.test(n)&&!n.includes("/")&&!n.includes(":")}function c$(n){let l=n.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)(?:\/(.+))?$/);if(l)return{url:`https://github.com/${l[1]}/${l[2]}.git`,branch:l[3],subpath:l[4]};let c=n.match(/github\.com\/([^/]+)\/([^/]+)/);if(c)return{url:`https://github.com/${c[1]}/${c[2].replace(/\.git$/,"")}.git`};let i=n.match(/gitlab\.com\/([^/]+)\/([^/]+)\/-\/tree\/([^/]+)(?:\/(.+))?$/);if(i)return{url:`https://gitlab.com/${i[1]}/${i[2]}.git`,branch:i[3],subpath:i[4]};let g=n.match(/gitlab\.com\/([^/]+)\/([^/]+)/);if(g)return{url:`https://gitlab.com/${g[1]}/${g[2].replace(/\.git$/,"")}.git`};let k=n.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/),w=k?.[1];if(w&&k[2]&&!n.includes(":")&&!w.includes("."))return{url:`https://github.com/${w}/${k[2]}.git`,subpath:k[3]};return{url:n}}async function xl(){return b1(fI,5000)}async function m1(n){return(await xl()).find((c)=>c.name.toLowerCase()===n.toLowerCase())?.source??null}async function F1(n){let l=E1(n);if(!l)return null;return await v1(l)}async function hl(n){let l=E1(n);if(!l)return l$(z1(n));return n$(await v1(l))}async function r1(n,l="main"){if(n.startsWith("well-known:"))return"well-known";return(await _c(["ls-remote",n,`refs/heads/${l}`])).split(/\s+/)[0]??""}async function ul(n){zI(n.root,{recursive:!0,force:!0})}import{homedir as i$}from"node:os";import{dirname as g$,join as Lc}from"node:path";import{mkdirSync as k$,readFileSync as w$,rmSync as I$,writeFileSync as $$}from"node:fs";var x$=Lc(i$(),".flins"),d1="skills.lock";function p1(n,l){return n==="global"?Lc(x$,d1):Lc(l,d1)}function sc(n,l){return`${l}:${n.toLowerCase()}`}function a1(n){if(n.startsWith("skill:"))return{name:n.slice(6),type:"skill"};if(n.startsWith("command:"))return{name:n.slice(8),type:"command"};return null}function yl(n,l){try{let c=JSON.parse(w$(p1(n,l),"utf-8"));return typeof c==="object"&&c&&typeof c.skills==="object"&&c.skills?c.skills:{}}catch{return{}}}function Uc(n,l,c){let i=p1(n,c);if(Object.keys(l).length===0){I$(i,{force:!0});return}k$(g$(i),{recursive:!0}),$$(i,JSON.stringify({skills:l},null,2))}function t1(n=process.cwd()){let l=yl("project",n),c=yl("global",n),i=[],g=new Set;for(let[k,w]of Object.entries(l)){let I=a1(k);if(!I)continue;i.push({name:w.name||I.name,type:I.type,scope:"project",url:w.url,subpath:w.subpath,branch:w.branch,commit:w.commit}),g.add(k)}for(let[k,w]of Object.entries(c)){if(g.has(k))continue;let I=a1(k);if(!I)continue;i.push({name:w.name||I.name,type:I.type,scope:"global",url:w.url,subpath:w.subpath,branch:w.branch,commit:w.commit})}return i}function e1(n,l=process.cwd()){let c=yl(n.scope,l),i=sc(n.name,n.type);c[i]={name:n.name,url:n.url,subpath:n.subpath,branch:n.branch,commit:n.commit},Uc(n.scope,c,l)}function ng(n,l,c,i,g=process.cwd()){let k=yl(n,g),w=sc(l,c);if(!k[w])return;k[w].commit=i,Uc(n,k,g)}function n0(n,l,c,i=process.cwd()){let g=yl(n,i);delete g[sc(l,c)],Uc(n,g,i)}import{spawn as h$}from"node:child_process";import{arch as u$,platform as y$}from"node:os";var _$="https://tidy-oriole-956.convex.site/telemetry",lg=!process.env.CI&&!process.env.CONTINUOUS_INTEGRATION&&!process.env.GITHUB_ACTIONS&&!process.env.GITLAB_CI&&!process.env.TRAVIS&&!process.env.JENKINS_URL&&!process.env.BITBUCKET_BUILD_NUMBER&&!process.env.CODEBUILD_BUILD_ID&&process.env.FLINS_TELEMETRY!=="0"&&!0,l0=[];function D$(n){let l=n.match(/github\.com[/:]([^/]+\/[^/]+?)(?:\.git)?(?:\/tree\/[^/]+\/(.+?))?(?:\/)?(?:[#]|$)/i);if(l)return l[2]?`${l[1]}/${l[2]}`:l[1];let c=n.match(/gitlab\.com[/:]([^/]+\/[^/]+?)(?:\.git)?(?:\/-\/tree\/[^/]+\/(.+?))?(?:\/)?(?:[#]|$)/i);if(c)return c[2]?`${c[1]}/${c[2]}`:c[1];let i=n.match(/^([^/]+\/[^/]+?)(?:\/(.+?))?(?:\/)?$/);if(i)return i[2]?`${i[1]}/${i[2]}`:i[1];return n.replace(/\.git$/,"").replace(/\/$/,"")}function cg(n){if(!lg)return;l0.push({...n,repo:n.repo?D$(n.repo):void 0,timestamp:Date.now(),osPlatform:y$(),osArch:u$(),nodeVersion:process.version,cliVersion:ql.version})}function qc(){if(!lg||l0.length===0)return;let n=l0;l0=[],h$("curl",["-s","-X","POST",_$,"-H","Content-Type: application/json","-d",JSON.stringify(n),"--max-time","10"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}function _l(n){return Boolean(n.yes||n.force)}async function L$(n,l){if(!o1(n))return n;if(!l)U.info(`Looking up ${Y.default.cyan(n)} in the flins directory...`);let c=await m1(n);if(c)return c;U.error(`Skill ${Y.default.cyan(n)} was not found in the flins directory.`);let i=await xl();if(i.length>0){U.info("Available skills:");for(let g of i)U.message(` ${Y.default.cyan(g.name)} ${Y.default.dim(`- ${g.description}`)}`)}process.exit(1)}function Kc(n,l){U.step(Y.default.bold(n));for(let c of l)U.message(` ${Y.default.cyan(`${c.type}:${c.name}`)}`),U.message(` ${Y.default.dim(c.description)}`)}async function s$(n,l){if(l.skill&&l.skill.length>0){let g=n.filter((k)=>l.skill.some((w)=>k.name.toLowerCase()===w.toLowerCase()));if(g.length===0)return U.error(`No matching installables found for: ${l.skill.join(", ")}`),Kc("Available Installables",n),null;return g}if(_l(l))return n;let c=new Map(n.map((g)=>[`${g.type}:${g.name.toLowerCase()}`,g])),i=await Ln({message:"Choose items to add",required:!1,initialValues:n.length===1?[`${n[0].type}:${n[0].name.toLowerCase()}`]:void 0,options:n.map((g)=>({value:`${g.type}:${g.name.toLowerCase()}`,label:`${g.type==="skill"?"Skill":"Command"}: ${g.name}`,hint:g.description.length>70?`${g.description.slice(0,67)}...`:g.description}))});if(O(i))return o("Installation cancelled"),null;return i.map((g)=>c.get(g)).filter(Boolean)}async function U$(n,l){if(l.agent&&l.agent.length>0){let g=u0(l.agent);if(g.invalid.length>0)return U.error(`Invalid agents: ${g.invalid.join(", ")}`),U.info(`Supported agents: ${wn().join(", ")}`),null;if(n==="project"){let w=g.agents.some((x)=>x==="universal"||Nn().includes(x))?["universal",...Kl().filter((x)=>g.agents.includes(x))]:Kl().filter((x)=>g.agents.includes(x)),I=g.agents.filter((x)=>x!=="universal"&&Nn().includes(x));if(I.length>0)U.info(`Local installs for ${I.map((x)=>Y.default.cyan(Q[x].label)).join(", ")} use ${Y.default.cyan("universal")} (${Y.default.cyan(".agents/skills")}).`);return w}return g.agents}let c=y0();if(n==="project"){if(E0(`${Y.default.cyan(".agents/skills")} is always included locally.
|
|
102
|
+
Used by: ${Nn().map((k)=>Q[k].label).join(", ")}`,"Universal Folder"),_l(l))return["universal"];let g=await Ln({message:"Add skills to extra local agent folders?",required:!1,options:Kl().map((k)=>({value:k,label:Q[k].label,hint:c.includes(k)?`installed • ${Qn(Q[k].skillsDir)}`:Qn(Q[k].skillsDir)}))});if(O(g))return o("Installation cancelled"),null;return["universal",...g]}if(_l(l)){if(c.length===0)return U.info("No installed agents detected. Use --agent to target a global folder."),null;return c}E0("Global installs write to user-level folders. The shared local .agents/skills folder does not apply with --global.","Global Install");let i=await Ln({message:"Choose global skill targets",required:!0,initialValues:c,options:Object.keys(Q).map((g)=>{let k=g;return{value:k,label:Q[k].label,hint:c.includes(k)?`installed • ${Qn(Q[k].globalSkillsDir)}`:Qn(Q[k].globalSkillsDir)}})});if(O(i))return o("Installation cancelled"),null;return i}async function q$(n){let l=Ec();if(n.agent&&n.agent.length>0){let g=u0(n.agent);if(g.invalid.length>0)return U.error(`Invalid agents: ${g.invalid.join(", ")}`),U.info(`Supported agents: ${wn().join(", ")}`),null;let k=g.agents.filter((I)=>Tl(I)),w=g.agents.filter((I)=>!Tl(I));if(w.length>0)U.warn(`Ignoring agents without command folders: ${w.map((I)=>Q[I].label).join(", ")}`);if(k.length===0)return U.error(`Commands are supported by ${l.map((I)=>Q[I].label).join(", ")}.`),null;return k}let c=y0().filter((g)=>Tl(g));if(_l(n)){if(c.length===0)U.warn(`No command-capable agents detected. Commands will be skipped. Use --agent with ${l.join(", ")} to install them.`);return c}let i=await Ln({message:"Choose command targets",required:!0,initialValues:c,options:l.map((g)=>{let k=Q[g];return{value:g,label:Q[g].label,hint:Qn(k.commandsDir||"")+(c.includes(g)?" • installed":"")}})});if(O(i))return o("Installation cancelled"),null;return i}async function K$(n,l,c,i,g,k){U.step(Y.default.bold("Install Summary")),U.message(`${Y.default.bold("Source:")} ${n}`),U.message(`${Y.default.bold("Scope:")} ${l==="global"?"Global":"Local"}`),U.message(`${Y.default.bold("Items:")} ${c.map(($)=>`${$.type}:${$.name}`).join(", ")}`);let w=c.some(($)=>$.type==="skill"),I=c.some(($)=>$.type==="command");if(w&&i){if(l==="project"&&i.includes("universal")){U.message(`${Y.default.bold("Included local folder:")} ${Y.default.cyan(".agents/skills")}`),U.message(`${Y.default.bold("Universal agents:")} ${Nn().map((y)=>Q[y].label).join(", ")}`);let h=i.filter((y)=>y!=="universal");if(h.length>0)U.message(`${Y.default.bold("Extra local folders:")} ${h.map((y)=>Q[y].label).join(", ")}`)}else U.message(`${Y.default.bold("Skill targets:")} ${i.map((h)=>Q[h].label).join(", ")}`);let $=fc(i,l);if($.length>0){U.message(Y.default.bold("Shared folders:"));for(let h of $)U.message(` ${Y.default.dim("•")} ${h}`)}}if(I)U.message(`${Y.default.bold("Command targets:")} ${g&&g.length>0?g.map(($)=>Q[$].label).join(", "):Y.default.yellow("none")}`);if(_l(k))return!0;let x=await Yn({message:"Ready to install?"});if(O(x)||!x)return o("Installation cancelled"),!1;return!0}async function c0(n,l){ln(Boolean(l.silent));try{let c=l.global?"global":"project",i=await L$(n,Boolean(l.silent));if(l.list){let w=await F1(i);if(w){Kc(`Available Installables from ${w.host}`,w.skills.map((x)=>({type:"skill",name:x.name,description:x.description,path:x.name}))),P(`Use ${Y.default.cyan(`flins add ${w.host} --skill <name>`)} to install`,Boolean(l.silent));return}let I=await hl(i);try{let x=en(I.root,I.subpath);if(x.length===0){U.warn("No installables found in this source."),P(Y.default.yellow("Nothing to list"),Boolean(l.silent));return}Kc(`Available Installables from ${I.label}`,x),P(`Use ${Y.default.cyan("--skill <name>")} to skip the picker`,Boolean(l.silent))}finally{await ul(I)}return}let g=await hl(i),k=[];try{let w=en(g.root,g.subpath);if(w.length===0)U.error("No skills or commands found. The source must contain SKILL.md files or command markdown files."),P(Y.default.red("Installation failed"),Boolean(l.silent)),process.exit(1);if(!l.silent){let u=w.filter((T)=>T.type==="skill").length,L=w.filter((T)=>T.type==="command").length;U.info(`Found ${Y.default.green(u.toString())} ${r(u,"skill")}${L>0?` and ${Y.default.yellow(L.toString())} ${r(L,"command")}`:""}`)}let I=await s$(w,l);if(!I||I.length===0){U.info("Nothing selected."),P(Y.default.yellow("Nothing installed"),Boolean(l.silent));return}let x=I.some((u)=>u.type==="skill")?await U$(c,l):[],$=I.some((u)=>u.type==="command")?await q$(l):[];if(I.some((u)=>u.type==="skill")&&!x||I.some((u)=>u.type==="command")&&$===null)process.exit(1);if(!await K$(g.label,c,I,x,$,l))return;let h=sn();h.start("Installing...");let y=l.symlink??!0;for(let u of I){let L=u.type==="skill"?x||[]:$||[],T=0;for(let G of L){let J=Rl(u,G,c,{symlink:y});if(k.push({name:u.name,type:u.type,label:`${u.type}:${u.name}`,agent:Q[G].label,success:J.success,error:J.error}),J.success)T+=1}if(T>0)e1({name:u.name,type:u.type,scope:c,url:g.url,subpath:g.subpath,branch:g.branch,commit:g.commit})}h.stop("Install complete");let _=k.filter((u)=>u.success).length,K=k.filter((u)=>!u.success).length;if(_>0)U.success(Y.default.green(`Installed ${_} ${r(_,"item")}.`));if(K>0){U.error(Y.default.red(`Failed to install ${K} ${r(K,"item")}.`));for(let u of k.filter((L)=>!L.success))if(U.message(` ${Y.default.red("✗")} ${u.label} ${Y.default.dim(`→ ${u.agent}`)}`),u.error)U.message(` ${Y.default.dim(u.error)}`)}if(I.some((u)=>u.type==="command")&&($||[]).length===0)U.warn("Commands were selected but no command-capable agents were targeted.");for(let u of k)cg({command:"add",type:u.type,repo:i,sourceUrl:g.url,name:u.name,agent:u.agent,scope:c,success:u.success});if(K>0)P(Y.default.red("Installation finished with errors"),Boolean(l.silent)),process.exit(1);P(_>0?Y.default.green("Done! Skills ready to use."):Y.default.yellow("Nothing installed"),Boolean(l.silent))}finally{await ul(g)}}catch(c){U.error(d(c,"Something went wrong. Try again or check your connection.")),P(Y.default.red("Installation failed"),Boolean(l.silent)),process.exit(1)}}var v=cn(Dn(),1);function jn(n){let l=t1(),c=n&&n.length>0?new Set(n.map((i)=>i.toLowerCase())):null;return l.filter((i)=>!c||c.has(i.name.toLowerCase())).map((i)=>{let g=ll(i.name,i.type,i.scope),k=Yi(i),w=new Set(k.map((I)=>I.path));return{id:`${i.scope}:${i.type}:${i.name.toLowerCase()}`,tracked:i,validInstallations:k,missingInstallations:g.filter((I)=>!w.has(I.path)),status:k.length===0?"orphaned":"latest",latestCommit:i.commit}})}async function Tc(n){let l=[];for(let c of n){if(c.validInstallations.length===0){l.push(c);continue}try{let i=await r1(c.tracked.url,c.tracked.branch);l.push({...c,latestCommit:i,status:i===c.tracked.commit?"latest":"update-available"})}catch(i){l.push({...c,status:"error",error:d(i,"Failed to check for updates")})}}return l}async function ig(){ln(!1);try{let n=jn();if(n.length===0){Hn();return}let l=n.filter((i)=>i.tracked.scope==="project"),c=n.filter((i)=>i.tracked.scope==="global");if(U.step(v.default.bold("Installed Skills and Commands")),l.length>0){U.message(v.default.bold(v.default.cyan("Local (./skills.lock)")));for(let i of l){let g=i.validInstallations.map((w)=>Q[w.agent].label).join(", "),k=i.tracked.type==="command"?v.default.yellow("⚡"):v.default.green("✓");U.message(` ${k} ${v.default.cyan(`${i.tracked.type}:${i.tracked.name}`)} ${v.default.dim(`(${g||"missing files"})`)}`)}}if(c.length>0){U.message(v.default.bold(v.default.cyan("Global (~/.flins/skills.lock)")));for(let i of c){let g=i.validInstallations.map((w)=>Q[w.agent].label).join(", "),k=i.tracked.type==="command"?v.default.yellow("⚡"):v.default.green("✓");U.message(` ${k} ${v.default.cyan(`${i.tracked.type}:${i.tracked.name}`)} ${v.default.dim(`(${g||"missing files"})`)}`)}}P(v.default.green("Showing installed items"))}catch(n){U.error(d(n,"Failed to load installed items.")),P(v.default.red("List failed")),process.exit(1)}}var In=cn(Dn(),1);function gg(n){return Boolean(n.yes||n.force)}async function kg(n,l){ln(Boolean(l.silent));try{let c=jn(n.length>0?n:void 0),i=c.filter(($)=>$.validInstallations.length>0);if(c.length===0){if(n.length>0)U.error(`No matching tracked items found for: ${n.join(", ")}`);else Hn();P(In.default.yellow("Nothing to remove"),Boolean(l.silent));return}if(i.length===0){U.warn("No valid installations found to remove."),P(In.default.yellow("Nothing to remove"),Boolean(l.silent));return}let g=i.map(($)=>$.id);if(!gg(l)&&n.length===0){let $=await Ln({message:"Choose items to remove",required:!0,initialValues:g,options:i.map((h)=>{let y=Wn(h.validInstallations).length;return{value:h.id,label:`${h.tracked.type}:${h.tracked.name}`,hint:`${y} ${r(y,"installation")} • ${h.tracked.scope}`}})});if(O($)){o("Remove cancelled");return}g=$}let k=i.filter(($)=>g.includes($.id));if(k.length===0){U.info("Nothing selected."),P(In.default.yellow("Nothing removed"),Boolean(l.silent));return}U.step(In.default.bold("Will Remove"));for(let $ of k)U.message(` ${In.default.cyan(`${$.tracked.type}:${$.tracked.name}`)} ${In.default.dim(`(${$.validInstallations.map((h)=>Q[h.agent].label).join(", ")})`)}`);if(!gg(l)){let $=await Yn({message:"Remove selected items?"});if(O($)||!$){o("Remove cancelled");return}}let w=sn();w.start("Removing...");let I=0,x=0;for(let $ of k){for(let h of Wn($.validInstallations)){let y=Zi(h.path);if(y.success)I+=1;else x+=1,U.error(`${$.tracked.type}:${$.tracked.name} → ${y.error}`)}if(ll($.tracked.name,$.tracked.type,$.tracked.scope).length===0)n0($.tracked.scope,$.tracked.name,$.tracked.type)}if(w.stop("Remove complete"),I>0)U.success(In.default.green(`Removed ${I} ${r(I,"installation")}.`));if(x>0)P(In.default.red("Remove finished with errors"),Boolean(l.silent)),process.exit(1);P(In.default.green("Done! Items removed."),Boolean(l.silent))}catch(c){U.error(d(c,"Something went wrong. Try again or check your connection.")),P(In.default.red("Remove failed"),Boolean(l.silent)),process.exit(1)}}var Dl=cn(Dn(),1);async function wg(){ln(!1);try{let n=sn();n.start("Loading directory...");let l=await xl();if(n.stop("Directory loaded"),l.length===0){U.warn("The flins directory is empty."),P(Dl.default.yellow("Nothing to browse"));return}let c=await Ui({message:"Choose skills from the flins directory",placeholder:"Type to search...",options:l.map((g)=>({value:g.name,label:g.name,hint:g.author?`${g.author} • ${g.description}`:g.description}))});if(O(c)){o("Search cancelled");return}let i=Array.isArray(c)?c:[c];if(i.length===0){U.info("Nothing selected."),P(Dl.default.yellow("Nothing installed"));return}for(let g of i)await c0(g,{silent:!0});P(Dl.default.green(`Installed ${i.length} ${r(i.length,"directory entry")}.`))}catch(n){U.error(d(n,"Something went wrong. Try again or check your connection.")),P(Dl.default.red("Search failed")),process.exit(1)}}var Z=cn(Dn(),1);import{lstatSync as T$}from"node:fs";function Bc(n){return Boolean(n.yes||n.force)}function B$(n,l){if(n.length===0){Hn();return}U.step(Z.default.bold("Installed Items"));for(let c of n){let i={latest:Z.default.green("✓"),"update-available":Z.default.yellow("↓"),error:Z.default.red("✗"),orphaned:Z.default.dim("○")}[c.status],g={latest:Z.default.green("Up to date"),"update-available":Z.default.yellow("Update available"),error:Z.default.red("Check failed"),orphaned:Z.default.dim("Missing files")}[c.status];if(!l){U.message(`${i} ${Z.default.cyan(`${c.tracked.type}:${c.tracked.name}`)} ${Z.default.dim(`- ${g}`)}`);continue}if(U.message(`${i} ${Z.default.cyan(`${c.tracked.type}:${c.tracked.name}`)}`),U.message(` Status: ${g}`),c.status==="update-available")U.message(` Commit: ${Z.default.yellow(c.tracked.commit.slice(0,7))} ${Z.default.dim("→")} ${Z.default.green(c.latestCommit.slice(0,7))}`);else if(c.tracked.commit)U.message(` Commit: ${c.tracked.commit.slice(0,7)}`);if(c.error)U.message(` ${Z.default.red(c.error)}`);let k=Wn(c.validInstallations),w=Wn(c.missingInstallations);if(k.length>0){U.message(" Installed in:");for(let I of k)U.message(` ${I.agents.map((x)=>Q[x].label).join(", ")}: ${Z.default.dim(I.path)}`)}if(w.length>0){U.message(` ${Z.default.yellow("Missing installations:")}`);for(let I of w)U.message(` ${I.agents.map((x)=>Q[x].label).join(", ")}: ${Z.default.dim(I.path)}`)}}}async function Ig(n,l={}){ln(Boolean(l.silent));try{let c=sn();c.start("Checking installation status...");let i=await Tc(jn(n.length>0?n:void 0));c.stop("Check complete"),B$(i,Boolean(l.verbose||n.length>0)),P(Z.default.green("Done"),Boolean(l.silent))}catch(c){U.error(d(c,"Something went wrong. Try again or check your connection.")),P(Z.default.red("Failed to check status"),Boolean(l.silent)),process.exit(1)}}async function $g(n,l={}){ln(Boolean(l.silent));try{let c=await Tc(jn(n.length>0?n:void 0)),i=c.filter(($)=>$.status==="update-available");if(c.length===0){Hn(),P(Z.default.yellow("Nothing to update"),Boolean(l.silent));return}if(i.length===0){let $=c.filter((h)=>h.status==="orphaned");if($.length>0)U.warn(`${$.length} ${r($.length,"item")} ${$.length===1?"has":"have"} missing files.`);U.success(Z.default.green("All tracked items are up to date.")),P(Z.default.green("Everything is current"),Boolean(l.silent));return}let g=i.map(($)=>$.id);if(!Bc(l)){let $=await Ln({message:"Choose items to update",required:!0,initialValues:g,options:i.map((h)=>({value:h.id,label:`${h.tracked.type}:${h.tracked.name}`,hint:`${h.tracked.commit.slice(0,7)} → ${h.latestCommit.slice(0,7)}`}))});if(O($)){o("Update cancelled");return}g=$}let k=i.filter(($)=>g.includes($.id));if(k.length===0){U.info("Nothing selected."),P(Z.default.yellow("Nothing updated"),Boolean(l.silent));return}U.step(Z.default.bold("Will Update"));for(let $ of k)U.message(` ${Z.default.cyan(`${$.tracked.type}:${$.tracked.name}`)} ${Z.default.dim(`${$.tracked.commit.slice(0,7)} → ${$.latestCommit.slice(0,7)}`)}`);if(!Bc(l)){let $=await Yn({message:"Ready to update?"});if(O($)||!$){o("Update cancelled");return}}let w=sn();w.start("Updating...");let I=0,x=0;for(let $ of k){let h=await hl($.tracked.url),y=0;try{let _=en(h.root,$.tracked.subpath||h.subpath).find((K)=>K.type===$.tracked.type&&K.name.toLowerCase()===$.tracked.name.toLowerCase());if(!_){x+=1,U.error(`Could not find ${$.tracked.type}:${$.tracked.name} in ${$.tracked.url}`);continue}for(let K of Wn($.validInstallations)){let u=Rl(_,K.agent,K.scope,{symlink:T$(K.path).isSymbolicLink()});if(u.success)I+=1,y+=1;else x+=1,U.error(`${$.tracked.type}:${$.tracked.name} → ${u.error}`)}if(y>0)ng($.tracked.scope,$.tracked.name,$.tracked.type,h.commit)}finally{await ul(h)}}if(w.stop("Update complete"),I>0)U.success(Z.default.green(`Updated ${I} ${r(I,"installation")}.`));if(x>0)P(Z.default.red("Update finished with errors"),Boolean(l.silent)),process.exit(1);P(Z.default.green("Done! Items updated."),Boolean(l.silent))}catch(c){U.error(d(c,"Something went wrong. Try again or check your connection.")),P(Z.default.red("Update failed"),Boolean(l.silent)),process.exit(1)}}async function xg(n={}){ln(Boolean(n.silent));try{let l=jn().filter((c)=>c.validInstallations.length===0);if(l.length===0){U.success(Z.default.green("No orphaned state entries found.")),P(Z.default.green("Nothing to clean"),Boolean(n.silent));return}U.step(Z.default.bold("Orphaned State Entries"));for(let c of l)U.message(` ${Z.default.cyan(`${c.tracked.type}:${c.tracked.name}`)} ${Z.default.dim(`(${c.tracked.scope})`)}`);if(!Bc(n)){let c=await Yn({message:`Remove ${l.length} orphaned ${r(l.length,"entry")} from skills.lock?`});if(O(c)||!c){o("Clean cancelled");return}}for(let c of l)n0(c.tracked.scope,c.tracked.name,c.tracked.type);P(Z.default.green("State cleaned up"),Boolean(n.silent))}catch(l){U.error(d(l,"Something went wrong. Try again or check your connection.")),P(Z.default.red("Clean failed"),Boolean(n.silent)),process.exit(1)}}var G$=`
|
|
100
103
|
███████╗██╗ ██╗███╗ ██╗ ██████╗
|
|
101
104
|
██╔════╝██║ ██║████╗ ██║██╔════╝
|
|
102
105
|
█████╗ ██║ ██║██╔██╗██║╚█████╗
|
|
103
106
|
██╔══╝ ██║ ██║██║╚████║ ╚═══██╗
|
|
104
107
|
██║ ███████╗██║██║ ╚███║██████╔╝
|
|
105
108
|
╚═╝ ╚══════╝╚═╝╚═╝ ╚══╝╚═════╝
|
|
106
|
-
`;process.on("exit",
|
|
109
|
+
`;process.on("exit",qc);process.on("SIGINT",()=>{qc(),process.exit(0)});gn.name("flins").description(`Universal skill package manager for AI coding agents. Install, manage, and update custom skills across ${bc()} AI development tools from one CLI.`).version(ql.version).addHelpText("beforeAll",G$).showHelpAfterError().showSuggestionAfterError().action(()=>{gn.help()});gn.command("add <source>").alias("a").alias("install").alias("i").description("Install skills from a source. Local installation is the default.").option("-g, --global","Install globally into user-level folders").option("-a, --agent <agents...>","Target specific agents").option("-s, --skill <skills...>","Install specific skills or commands by name").option("-l, --list","List available installables in the source without installing").option("-y, --yes","Auto-confirm prompts").option("-f, --force","Skip confirmations").option("--silent","Suppress banner and non-error output").option("--no-symlink","Copy files directly instead of using symlinks").action(async(n,l)=>{await c0(n,l)});gn.command("update [skills...]").alias("u").description("Update installed skills and commands to their latest versions").option("-y, --yes","Auto-confirm prompts").option("-f, --force","Skip confirmations").option("--silent","Suppress banner and non-error output").action(async(n,l)=>{await $g(n,l)});gn.command("outdated [skills...]").alias("o").alias("status").description("Check installation status, updates, and missing files").option("-v, --verbose","Show detailed installation paths").option("--silent","Suppress banner and non-error output").action(async(n,l)=>{await Ig(n,l)});gn.command("remove [skills...]").alias("r").alias("rm").alias("uninstall").description("Remove installed skills and commands").option("-y, --yes","Auto-confirm prompts").option("-f, --force","Skip confirmations").option("--silent","Suppress banner and non-error output").action(async(n,l)=>{await kg(n,l)});gn.command("list").alias("l").description("List installed skills and commands").action(async()=>{await ig()});gn.command("search").alias("s").description("Browse the flins directory and install from it").action(async()=>{await wg()});gn.command("clean").alias("c").description("Remove orphaned entries from skills.lock").option("-y, --yes","Auto-confirm prompts").option("-f, --force","Skip confirmations").option("--silent","Suppress banner and non-error output").action(async(n)=>{await xg(n)});gn.parse();
|