give-skill 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +241 -0
  3. package/dist/index.js +78 -0
  4. package/package.json +48 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Compile Café
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,241 @@
1
+ <div align="center">
2
+
3
+ # give-skill
4
+
5
+ **Universal skill installer for AI coding agents**
6
+
7
+ One CLI to install agent skills across all your coding assistants.
8
+
9
+ [![npm version](https://badge.fury.io/js/give-skill.svg)](https://www.npmjs.org/package/give-skill)
10
+ [![Agent Skills](https://img.shields.io/badge/Agent_Skills-standard-blue)](https://agentskills.io)
11
+
12
+ </div>
13
+
14
+ ## Why give-skill?
15
+
16
+ The [Agent Skills](https://agentskills.io) format is an open standard for extending AI agents with new capabilities. `give-skill` lets you install skills from any git repository to all your skill-compatible agents in one command.
17
+
18
+ ### Supported Agents
19
+
20
+ All agents support the [Agent Skills](https://agentskills.io) open standard:
21
+
22
+ | Agent | Status |
23
+ | ------------------------------------------------------- | ------ |
24
+ | [Claude Code](https://claude.ai/code) | ✅ |
25
+ | [Cursor](https://cursor.sh) | ✅ |
26
+ | [GitHub Copilot](https://github.com/features/copilot) | ✅ |
27
+ | [OpenCode](https://opencode.ai) | ✅ |
28
+ | [Codex](https://openai.com) | ✅ |
29
+ | [Antigravity](https://antigravity.google) | ✅ |
30
+ | [Amp](https://github.com/stochastic-technologies/amp) | ✅ |
31
+ | [Kilo Code](https://kilocode.ai) | ✅ |
32
+ | [Roo Code](https://roocode.dev) | ✅ |
33
+ | [Goose](https://github.com/goose-dev/goose) | ✅ |
34
+
35
+ Missing an agent? [Create an issue](https://github.com/compilecafe/give-skill/issues)
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ # Using npx
41
+ npx give-skill <repo>
42
+
43
+ # Using bunx
44
+ bunx give-skill <repo>
45
+
46
+ # Or install globally
47
+ npm install -g give-skill
48
+ give-skill <repo>
49
+ ```
50
+
51
+ ## Quick Start
52
+
53
+ Install skills from any git repository:
54
+
55
+ ```bash
56
+ # Install from GitHub (shorthand)
57
+ npx give-skill expo/skills
58
+
59
+ # Install from full URL
60
+ npx give-skill https://github.com/expo/skills
61
+
62
+ # Install to specific agent
63
+ npx give-skill expo/skills -a copilot
64
+
65
+ # Install globally (available in all projects)
66
+ npx give-skill expo/skills --global
67
+
68
+ # List available skills first
69
+ npx give-skill expo/skills --list
70
+ ```
71
+
72
+ ## Command Reference
73
+
74
+ ```
75
+ give-skill <source> [options]
76
+
77
+ Arguments:
78
+ source Git repo URL or GitHub shorthand (owner/repo)
79
+
80
+ Options:
81
+ -g, --global Install to home directory instead of project
82
+ -a, --agent <...> Target specific agents (claude-code, cursor, copilot, etc.)
83
+ -s, --skill <...> Install specific skills by name
84
+ -l, --list List skills without installing
85
+ -y, --yes Skip all prompts (CI-friendly)
86
+ -V, --version Show version
87
+ -h, --help Show help
88
+ ```
89
+
90
+ ## Examples
91
+
92
+ ### Install specific skills
93
+
94
+ ```bash
95
+ npx give-skill expo/skills -s pr-reviewer -s test-generator
96
+ ```
97
+
98
+ ### Target multiple agents
99
+
100
+ ```bash
101
+ npx give-skill expo/skills -a claude-code -a copilot -a cursor
102
+ ```
103
+
104
+ ### CI/CD automation
105
+
106
+ ```bash
107
+ npx give-skill expo/skills -s pr-reviewer -g -a copilot -y
108
+ ```
109
+
110
+ ### Install from subdirectory
111
+
112
+ ```bash
113
+ npx give-skill https://github.com/org/repo/tree/main/skills/custom
114
+ ```
115
+
116
+ ## Where Skills Go
117
+
118
+ ### Project Level (default)
119
+
120
+ | Agent | Path |
121
+ | ----------- | -------------------------- |
122
+ | Claude Code | `.claude/skills/<name>/` |
123
+ | Cursor | `.cursor/skills/<name>/` |
124
+ | Copilot | `.github/skills/<name>/` |
125
+ | OpenCode | `.opencode/skill/<name>/` |
126
+ | Codex | `.codex/skills/<name>/` |
127
+ | Antigravity | `.agent/skills/<name>/` |
128
+ | Amp | `.agents/skills/<name>/` |
129
+ | Kilo Code | `.kilocode/skills/<name>/` |
130
+ | Roo Code | `.roo/skills/<name>/` |
131
+ | Goose | `.goose/skills/<name>/` |
132
+
133
+ ### Global Level (`--global`)
134
+
135
+ | Agent | Path |
136
+ | ----------- | --------------------------------------- |
137
+ | Claude Code | `~/.claude/skills/<name>/` |
138
+ | Cursor | `~/.cursor/skills/<name>/` |
139
+ | Copilot | `~/.copilot/skills/<name>/` |
140
+ | OpenCode | `~/.config/opencode/skill/<name>/` |
141
+ | Codex | `~/.codex/skills/<name>/` |
142
+ | Antigravity | `~/.gemini/antigravity/skills/<name>/` |
143
+ | Amp | `~/.config/agents/skills/<name>/` |
144
+ | Kilo Code | `~/.kilocode/skills/<name>/` |
145
+ | Roo Code | `~/.roo/skills/<name>/` |
146
+ | Goose | `~/.config/goose/skills/<name>/` |
147
+
148
+ ## Creating Skills
149
+
150
+ Skills follow the [Agent Skills](https://agentskills.io) open standard. A skill is a folder with a `SKILL.md` file:
151
+
152
+ ```markdown
153
+ ---
154
+ name: pr-reviewer
155
+ description: Reviews pull requests against team guidelines
156
+ ---
157
+
158
+ # PR Reviewer
159
+
160
+ Reviews pull requests for:
161
+
162
+ - Code style consistency
163
+ - Security vulnerabilities
164
+ - Performance issues
165
+
166
+ ## Usage
167
+
168
+ Activate when reviewing a pull request.
169
+ ```
170
+
171
+ For complete skill authoring guidance, see [agentskills.io](https://agentskills.io).
172
+
173
+ ### Skill Locations
174
+
175
+ The CLI automatically searches these paths in a repository:
176
+
177
+ **Common locations:**
178
+ - `SKILL.md` (root)
179
+ - `skills/`
180
+ - `skills/.curated/`
181
+ - `skills/.experimental/`
182
+ - `skills/.system/`
183
+
184
+ **Agent-specific locations** (auto-detected from agent configs):
185
+ - `.claude/skills/`
186
+ - `.cursor/skills/`
187
+ - `.github/skills/`
188
+ - `.opencode/skill/`
189
+ - `.codex/skills/`
190
+ - `.agent/skills/`
191
+ - `.agents/skills/`
192
+ - `.kilocode/skills/`
193
+ - `.roo/skills/`
194
+ - `.goose/skills/`
195
+
196
+ If a folder matches an agent's skill directory, the CLI will find it.
197
+
198
+ ## How It Works
199
+
200
+ ```
201
+ ┌─────────────┐ ┌─────────────┐ ┌──────────────────┐
202
+ │ Source │────▶│ give-skill │────▶│ Agent Folders │
203
+ │ (git repo) │ │ (CLI) │ │ (installed) │
204
+ └─────────────┘ └─────────────┘ └──────────────────┘
205
+
206
+
207
+ ┌──────────────┐
208
+ │ Auto-detect │
209
+ │ agents │
210
+ └──────────────┘
211
+ ```
212
+
213
+ 1. **Clone** the source repository
214
+ 2. **Discover** all `SKILL.md` files
215
+ 3. **Detect** installed agents on your system
216
+ 4. **Install** skills to agent-specific directories
217
+
218
+ ## Troubleshooting
219
+
220
+ ### No skills found
221
+
222
+ Make sure your `SKILL.md` follows the [Agent Skills](https://agentskills.io) format:
223
+
224
+ ```markdown
225
+ ---
226
+ name: my-skill
227
+ description: This describes what the skill does
228
+ ---
229
+ ```
230
+
231
+ ### Permission denied
232
+
233
+ Check you have write permissions for the target directory.
234
+
235
+ ### Agent not detected
236
+
237
+ The CLI checks default agent directories. Manually specify with `-a` if needed.
238
+
239
+ ## License
240
+
241
+ MIT © [Compile Café](https://github.com/compilecafe)
package/dist/index.js ADDED
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env node
2
+ import{createRequire as p1}from"node:module";var n1=Object.create;var{getPrototypeOf:t1,defineProperty:vl,getOwnPropertyNames:d1}=Object;var r1=Object.prototype.hasOwnProperty;var c=(l,S,y)=>{y=l!=null?n1(t1(l)):{};let $=S||!l||!l.__esModule?vl(y,"default",{value:l,enumerable:!0}):y;for(let b of d1(l))if(!r1.call($,b))vl($,b,{get:()=>l[b],enumerable:!0});return $};var V=(l,S)=>()=>(S||l((S={exports:{}}).exports,S),S.exports);var D=p1(import.meta.url);var u=V((a1)=>{class Il extends Error{constructor(l,S,y){super(y);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=S,this.exitCode=l,this.nestedError=void 0}}class gl extends Il{constructor(l){super(1,"commander.invalidArgument",l);Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}}a1.CommanderError=Il;a1.InvalidArgumentError=gl});var t=V((fS)=>{var{InvalidArgumentError:lS}=u();class cl{constructor(l,S){switch(this.description=S||"",this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,l[0]){case"<":this.required=!0,this._name=l.slice(1,-1);break;case"[":this.required=!1,this._name=l.slice(1,-1);break;default:this.required=!0,this._name=l;break}if(this._name.endsWith("..."))this.variadic=!0,this._name=this._name.slice(0,-3)}name(){return this._name}_collectValue(l,S){if(S===this.defaultValue||!Array.isArray(S))return[l];return S.push(l),S}default(l,S){return this.defaultValue=l,this.defaultValueDescription=S,this}argParser(l){return this.parseArg=l,this}choices(l){return this.argChoices=l.slice(),this.parseArg=(S,y)=>{if(!this.argChoices.includes(S))throw new lS(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(S,y);return S},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}}function SS(l){let S=l.name()+(l.variadic===!0?"...":"");return l.required?"<"+S+">":"["+S+"]"}fS.Argument=cl;fS.humanReadableArgName=SS});var kl=V((IS)=>{var{humanReadableArgName:bS}=t();class hl{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(l){this.helpWidth=this.helpWidth??l.helpWidth??80}visibleCommands(l){let S=l.commands.filter(($)=>!$._hidden),y=l._getHelpCommand();if(y&&!y._hidden)S.push(y);if(this.sortSubcommands)S.sort(($,b)=>{return $.name().localeCompare(b.name())});return S}compareOptions(l,S){let y=($)=>{return $.short?$.short.replace(/^-/,""):$.long.replace(/^--/,"")};return y(l).localeCompare(y(S))}visibleOptions(l){let S=l.options.filter(($)=>!$.hidden),y=l._getHelpOption();if(y&&!y.hidden){let $=y.short&&l._findOption(y.short),b=y.long&&l._findOption(y.long);if(!$&&!b)S.push(y);else if(y.long&&!b)S.push(l.createOption(y.long,y.description));else if(y.short&&!$)S.push(l.createOption(y.short,y.description))}if(this.sortOptions)S.sort(this.compareOptions);return S}visibleGlobalOptions(l){if(!this.showGlobalOptions)return[];let S=[];for(let y=l.parent;y;y=y.parent){let $=y.options.filter((b)=>!b.hidden);S.push(...$)}if(this.sortOptions)S.sort(this.compareOptions);return S}visibleArguments(l){if(l._argsDescription)l.registeredArguments.forEach((S)=>{S.description=S.description||l._argsDescription[S.name()]||""});if(l.registeredArguments.find((S)=>S.description))return l.registeredArguments;return[]}subcommandTerm(l){let S=l.registeredArguments.map((y)=>bS(y)).join(" ");return l._name+(l._aliases[0]?"|"+l._aliases[0]:"")+(l.options.length?" [options]":"")+(S?" "+S:"")}optionTerm(l){return l.flags}argumentTerm(l){return l.name()}longestSubcommandTermLength(l,S){return S.visibleCommands(l).reduce((y,$)=>{return Math.max(y,this.displayWidth(S.styleSubcommandTerm(S.subcommandTerm($))))},0)}longestOptionTermLength(l,S){return S.visibleOptions(l).reduce((y,$)=>{return Math.max(y,this.displayWidth(S.styleOptionTerm(S.optionTerm($))))},0)}longestGlobalOptionTermLength(l,S){return S.visibleGlobalOptions(l).reduce((y,$)=>{return Math.max(y,this.displayWidth(S.styleOptionTerm(S.optionTerm($))))},0)}longestArgumentTermLength(l,S){return S.visibleArguments(l).reduce((y,$)=>{return Math.max(y,this.displayWidth(S.styleArgumentTerm(S.argumentTerm($))))},0)}commandUsage(l){let S=l._name;if(l._aliases[0])S=S+"|"+l._aliases[0];let y="";for(let $=l.parent;$;$=$.parent)y=$.name()+" "+y;return y+S+" "+l.usage()}commandDescription(l){return l.description()}subcommandDescription(l){return l.summary()||l.description()}optionDescription(l){let S=[];if(l.argChoices)S.push(`choices: ${l.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(l.defaultValue!==void 0){if(l.required||l.optional||l.isBoolean()&&typeof l.defaultValue==="boolean")S.push(`default: ${l.defaultValueDescription||JSON.stringify(l.defaultValue)}`)}if(l.presetArg!==void 0&&l.optional)S.push(`preset: ${JSON.stringify(l.presetArg)}`);if(l.envVar!==void 0)S.push(`env: ${l.envVar}`);if(S.length>0){let y=`(${S.join(", ")})`;if(l.description)return`${l.description} ${y}`;return y}return l.description}argumentDescription(l){let S=[];if(l.argChoices)S.push(`choices: ${l.argChoices.map((y)=>JSON.stringify(y)).join(", ")}`);if(l.defaultValue!==void 0)S.push(`default: ${l.defaultValueDescription||JSON.stringify(l.defaultValue)}`);if(S.length>0){let y=`(${S.join(", ")})`;if(l.description)return`${l.description} ${y}`;return y}return l.description}formatItemList(l,S,y){if(S.length===0)return[];return[y.styleTitle(l),...S,""]}groupItems(l,S,y){let $=new Map;return l.forEach((b)=>{let I=y(b);if(!$.has(I))$.set(I,[])}),S.forEach((b)=>{let I=y(b);if(!$.has(I))$.set(I,[]);$.get(I).push(b)}),$}formatHelp(l,S){let y=S.padWidth(l,S),$=S.helpWidth??80;function b(B,_){return S.formatItem(B,y,_,S)}let I=[`${S.styleTitle("Usage:")} ${S.styleUsage(S.commandUsage(l))}`,""],f=S.commandDescription(l);if(f.length>0)I=I.concat([S.boxWrap(S.styleCommandDescription(f),$),""]);let k=S.visibleArguments(l).map((B)=>{return b(S.styleArgumentTerm(S.argumentTerm(B)),S.styleArgumentDescription(S.argumentDescription(B)))});if(I=I.concat(this.formatItemList("Arguments:",k,S)),this.groupItems(l.options,S.visibleOptions(l),(B)=>B.helpGroupHeading??"Options:").forEach((B,_)=>{let Y=B.map((Q)=>{return b(S.styleOptionTerm(S.optionTerm(Q)),S.styleOptionDescription(S.optionDescription(Q)))});I=I.concat(this.formatItemList(_,Y,S))}),S.showGlobalOptions){let B=S.visibleGlobalOptions(l).map((_)=>{return b(S.styleOptionTerm(S.optionTerm(_)),S.styleOptionDescription(S.optionDescription(_)))});I=I.concat(this.formatItemList("Global Options:",B,S))}return this.groupItems(l.commands,S.visibleCommands(l),(B)=>B.helpGroup()||"Commands:").forEach((B,_)=>{let Y=B.map((Q)=>{return b(S.styleSubcommandTerm(S.subcommandTerm(Q)),S.styleSubcommandDescription(S.subcommandDescription(Q)))});I=I.concat(this.formatItemList(_,Y,S))}),I.join(`
3
+ `)}displayWidth(l){return sl(l).length}styleTitle(l){return l}styleUsage(l){return l.split(" ").map((S)=>{if(S==="[options]")return this.styleOptionText(S);if(S==="[command]")return this.styleSubcommandText(S);if(S[0]==="["||S[0]==="<")return this.styleArgumentText(S);return this.styleCommandText(S)}).join(" ")}styleCommandDescription(l){return this.styleDescriptionText(l)}styleOptionDescription(l){return this.styleDescriptionText(l)}styleSubcommandDescription(l){return this.styleDescriptionText(l)}styleArgumentDescription(l){return this.styleDescriptionText(l)}styleDescriptionText(l){return l}styleOptionTerm(l){return this.styleOptionText(l)}styleSubcommandTerm(l){return l.split(" ").map((S)=>{if(S==="[options]")return this.styleOptionText(S);if(S[0]==="["||S[0]==="<")return this.styleArgumentText(S);return this.styleSubcommandText(S)}).join(" ")}styleArgumentTerm(l){return this.styleArgumentText(l)}styleOptionText(l){return l}styleArgumentText(l){return l}styleSubcommandText(l){return l}styleCommandText(l){return l}padWidth(l,S){return Math.max(S.longestOptionTermLength(l,S),S.longestGlobalOptionTermLength(l,S),S.longestSubcommandTermLength(l,S),S.longestArgumentTermLength(l,S))}preformatted(l){return/\n[^\S\r\n]/.test(l)}formatItem(l,S,y,$){let I=" ".repeat(2);if(!y)return I+l;let f=l.padEnd(S+l.length-$.displayWidth(l)),k=2,R=(this.helpWidth??80)-S-k-2,B;if(R<this.minWidthToWrap||$.preformatted(y))B=y;else B=$.boxWrap(y,R).replace(/\n/g,`
4
+ `+" ".repeat(S+k));return I+f+" ".repeat(k)+B.replace(/\n/g,`
5
+ ${I}`)}boxWrap(l,S){if(S<this.minWidthToWrap)return l;let y=l.split(/\r\n|\n/),$=/[\s]*[^\s]+/g,b=[];return y.forEach((I)=>{let f=I.match($);if(f===null){b.push("");return}let k=[f.shift()],T=this.displayWidth(k[0]);f.forEach((R)=>{let B=this.displayWidth(R);if(T+B<=S){k.push(R),T+=B;return}b.push(k.join(""));let _=R.trimStart();k=[_],T=this.displayWidth(_)}),b.push(k.join(""))}),b.join(`
6
+ `)}}function sl(l){let S=/\x1b\[\d*(;\d*)*m/g;return l.replace(S,"")}IS.Help=hl;IS.stripColor=sl});var Rl=V((qS)=>{var{InvalidArgumentError:TS}=u();class ml{constructor(l,S){this.flags=l,this.description=S||"",this.required=l.includes("<"),this.optional=l.includes("["),this.variadic=/\w\.\.\.[>\]]$/.test(l),this.mandatory=!1;let y=BS(l);if(this.short=y.shortFlag,this.long=y.longFlag,this.negate=!1,this.long)this.negate=this.long.startsWith("--no-");this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(l,S){return this.defaultValue=l,this.defaultValueDescription=S,this}preset(l){return this.presetArg=l,this}conflicts(l){return this.conflictsWith=this.conflictsWith.concat(l),this}implies(l){let S=l;if(typeof l==="string")S={[l]:!0};return this.implied=Object.assign(this.implied||{},S),this}env(l){return this.envVar=l,this}argParser(l){return this.parseArg=l,this}makeOptionMandatory(l=!0){return this.mandatory=!!l,this}hideHelp(l=!0){return this.hidden=!!l,this}_collectValue(l,S){if(S===this.defaultValue||!Array.isArray(S))return[l];return S.push(l),S}choices(l){return this.argChoices=l.slice(),this.parseArg=(S,y)=>{if(!this.argChoices.includes(S))throw new TS(`Allowed choices are ${this.argChoices.join(", ")}.`);if(this.variadic)return this._collectValue(S,y);return S},this}name(){if(this.long)return this.long.replace(/^--/,"");return this.short.replace(/^-/,"")}attributeName(){if(this.negate)return il(this.name().replace(/^no-/,""));return il(this.name())}helpGroup(l){return this.helpGroupHeading=l,this}is(l){return this.short===l||this.long===l}isBoolean(){return!this.required&&!this.optional&&!this.negate}}class Dl{constructor(l){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,l.forEach((S)=>{if(S.negate)this.negativeOptions.set(S.attributeName(),S);else this.positiveOptions.set(S.attributeName(),S)}),this.negativeOptions.forEach((S,y)=>{if(this.positiveOptions.has(y))this.dualOptions.add(y)})}valueFromOption(l,S){let y=S.attributeName();if(!this.dualOptions.has(y))return!0;let $=this.negativeOptions.get(y).presetArg,b=$!==void 0?$:!1;return S.negate===(b===l)}}function il(l){return l.split("-").reduce((S,y)=>{return S+y[0].toUpperCase()+y.slice(1)})}function BS(l){let S,y,$=/^-[^-]$/,b=/^--[^-]/,I=l.split(/[ |,]+/).concat("guard");if($.test(I[0]))S=I.shift();if(b.test(I[0]))y=I.shift();if(!S&&$.test(I[0]))S=I.shift();if(!S&&b.test(I[0]))S=y,y=I.shift();if(I[0].startsWith("-")){let f=I[0],k=`option creation failed due to '${f}' in option flags '${l}'`;if(/^-[^-][^-]/.test(f))throw Error(`${k}
7
+ - a short flag is a single dash and a single character
8
+ - either use a single dash and a single character (for a short flag)
9
+ - or use a double dash for a long option (and can have two, like '--ws, --workspace')`);if($.test(f))throw Error(`${k}
10
+ - too many short flags`);if(b.test(f))throw Error(`${k}
11
+ - too many long flags`);throw Error(`${k}
12
+ - unrecognised flag format`)}if(S===void 0&&y===void 0)throw Error(`option creation failed due to no flags found in '${l}'.`);return{shortFlag:S,longFlag:y}}qS.Option=ml;qS.DualOptions=Dl});var ul=V((XS)=>{function JS(l,S){if(Math.abs(l.length-S.length)>3)return Math.max(l.length,S.length);let y=[];for(let $=0;$<=l.length;$++)y[$]=[$];for(let $=0;$<=S.length;$++)y[0][$]=$;for(let $=1;$<=S.length;$++)for(let b=1;b<=l.length;b++){let I=1;if(l[b-1]===S[$-1])I=0;else I=1;if(y[b][$]=Math.min(y[b-1][$]+1,y[b][$-1]+1,y[b-1][$-1]+I),b>1&&$>1&&l[b-1]===S[$-2]&&l[b-2]===S[$-1])y[b][$]=Math.min(y[b][$],y[b-2][$-2]+1)}return y[l.length][S.length]}function YS(l,S){if(!S||S.length===0)return"";S=Array.from(new Set(S));let y=l.startsWith("--");if(y)l=l.slice(2),S=S.map((f)=>f.slice(2));let $=[],b=3,I=0.4;if(S.forEach((f)=>{if(f.length<=1)return;let k=JS(l,f),T=Math.max(l.length,f.length);if((T-k)/T>I){if(k<b)b=k,$=[f];else if(k===b)$.push(f)}}),$.sort((f,k)=>f.localeCompare(k)),y)$=$.map((f)=>`--${f}`);if($.length>1)return`
13
+ (Did you mean one of ${$.join(", ")}?)`;if($.length===1)return`
14
+ (Did you mean ${$[0]}?)`;return""}XS.suggestSimilar=YS});var rl=V((MS)=>{var zS=D("node:events").EventEmitter,Tl=D("node:child_process"),x=D("node:path"),d=D("node:fs"),J=D("node:process"),{Argument:QS,humanReadableArgName:ZS}=t(),{CommanderError:Bl}=u(),{Help:PS,stripColor:US}=kl(),{Option:nl,DualOptions:jS}=Rl(),{suggestSimilar:tl}=ul();class _l extends zS{constructor(l){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=l||"",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:(S)=>J.stdout.write(S),writeErr:(S)=>J.stderr.write(S),outputError:(S,y)=>y(S),getOutHelpWidth:()=>J.stdout.isTTY?J.stdout.columns:void 0,getErrHelpWidth:()=>J.stderr.isTTY?J.stderr.columns:void 0,getOutHasColors:()=>ql()??(J.stdout.isTTY&&J.stdout.hasColors?.()),getErrHasColors:()=>ql()??(J.stderr.isTTY&&J.stderr.hasColors?.()),stripColor:(S)=>US(S)},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(l){return this._outputConfiguration=l._outputConfiguration,this._helpOption=l._helpOption,this._helpCommand=l._helpCommand,this._helpConfiguration=l._helpConfiguration,this._exitCallback=l._exitCallback,this._storeOptionsAsProperties=l._storeOptionsAsProperties,this._combineFlagAndOptionalValue=l._combineFlagAndOptionalValue,this._allowExcessArguments=l._allowExcessArguments,this._enablePositionalOptions=l._enablePositionalOptions,this._showHelpAfterError=l._showHelpAfterError,this._showSuggestionAfterError=l._showSuggestionAfterError,this}_getCommandAndAncestors(){let l=[];for(let S=this;S;S=S.parent)l.push(S);return l}command(l,S,y){let $=S,b=y;if(typeof $==="object"&&$!==null)b=$,$=null;b=b||{};let[,I,f]=l.match(/([^ ]+) *(.*)/),k=this.createCommand(I);if($)k.description($),k._executableHandler=!0;if(b.isDefault)this._defaultCommandName=k._name;if(k._hidden=!!(b.noHelp||b.hidden),k._executableFile=b.executableFile||null,f)k.arguments(f);if(this._registerCommand(k),k.parent=this,k.copyInheritedSettings(this),$)return this;return k}createCommand(l){return new _l(l)}createHelp(){return Object.assign(new PS,this.configureHelp())}configureHelp(l){if(l===void 0)return this._helpConfiguration;return this._helpConfiguration=l,this}configureOutput(l){if(l===void 0)return this._outputConfiguration;return this._outputConfiguration={...this._outputConfiguration,...l},this}showHelpAfterError(l=!0){if(typeof l!=="string")l=!!l;return this._showHelpAfterError=l,this}showSuggestionAfterError(l=!0){return this._showSuggestionAfterError=!!l,this}addCommand(l,S){if(!l._name)throw Error(`Command passed to .addCommand() must have a name
15
+ - specify the name in Command constructor or using .name()`);if(S=S||{},S.isDefault)this._defaultCommandName=l._name;if(S.noHelp||S.hidden)l._hidden=!0;return this._registerCommand(l),l.parent=this,l._checkForBrokenPassThrough(),this}createArgument(l,S){return new QS(l,S)}argument(l,S,y,$){let b=this.createArgument(l,S);if(typeof y==="function")b.default($).argParser(y);else b.default(y);return this.addArgument(b),this}arguments(l){return l.trim().split(/ +/).forEach((S)=>{this.argument(S)}),this}addArgument(l){let S=this.registeredArguments.slice(-1)[0];if(S?.variadic)throw Error(`only the last argument can be variadic '${S.name()}'`);if(l.required&&l.defaultValue!==void 0&&l.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${l.name()}'`);return this.registeredArguments.push(l),this}helpCommand(l,S){if(typeof l==="boolean"){if(this._addImplicitHelpCommand=l,l&&this._defaultCommandGroup)this._initCommandGroup(this._getHelpCommand());return this}let y=l??"help [command]",[,$,b]=y.match(/([^ ]+) *(.*)/),I=S??"display help for command",f=this.createCommand($);if(f.helpOption(!1),b)f.arguments(b);if(I)f.description(I);if(this._addImplicitHelpCommand=!0,this._helpCommand=f,l||S)this._initCommandGroup(f);return this}addHelpCommand(l,S){if(typeof l!=="object")return this.helpCommand(l,S),this;return this._addImplicitHelpCommand=!0,this._helpCommand=l,this._initCommandGroup(l),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(l,S){let y=["preSubcommand","preAction","postAction"];if(!y.includes(l))throw Error(`Unexpected value for event passed to hook : '${l}'.
16
+ Expecting one of '${y.join("', '")}'`);if(this._lifeCycleHooks[l])this._lifeCycleHooks[l].push(S);else this._lifeCycleHooks[l]=[S];return this}exitOverride(l){if(l)this._exitCallback=l;else this._exitCallback=(S)=>{if(S.code!=="commander.executeSubCommandAsync")throw S};return this}_exit(l,S,y){if(this._exitCallback)this._exitCallback(new Bl(l,S,y));J.exit(l)}action(l){let S=(y)=>{let $=this.registeredArguments.length,b=y.slice(0,$);if(this._storeOptionsAsProperties)b[$]=this;else b[$]=this.opts();return b.push(this),l.apply(this,b)};return this._actionHandler=S,this}createOption(l,S){return new nl(l,S)}_callParseArg(l,S,y,$){try{return l.parseArg(S,y)}catch(b){if(b.code==="commander.invalidArgument"){let I=`${$} ${b.message}`;this.error(I,{exitCode:b.exitCode,code:b.code})}throw b}}_registerOption(l){let S=l.short&&this._findOption(l.short)||l.long&&this._findOption(l.long);if(S){let y=l.long&&this._findOption(l.long)?l.long:l.short;throw Error(`Cannot add option '${l.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${y}'
17
+ - already used by option '${S.flags}'`)}this._initOptionGroup(l),this.options.push(l)}_registerCommand(l){let S=($)=>{return[$.name()].concat($.aliases())},y=S(l).find(($)=>this._findCommand($));if(y){let $=S(this._findCommand(y)).join("|"),b=S(l).join("|");throw Error(`cannot add command '${b}' as already have command '${$}'`)}this._initCommandGroup(l),this.commands.push(l)}addOption(l){this._registerOption(l);let S=l.name(),y=l.attributeName();if(l.negate){let b=l.long.replace(/^--no-/,"--");if(!this._findOption(b))this.setOptionValueWithSource(y,l.defaultValue===void 0?!0:l.defaultValue,"default")}else if(l.defaultValue!==void 0)this.setOptionValueWithSource(y,l.defaultValue,"default");let $=(b,I,f)=>{if(b==null&&l.presetArg!==void 0)b=l.presetArg;let k=this.getOptionValue(y);if(b!==null&&l.parseArg)b=this._callParseArg(l,b,k,I);else if(b!==null&&l.variadic)b=l._collectValue(b,k);if(b==null)if(l.negate)b=!1;else if(l.isBoolean()||l.optional)b=!0;else b="";this.setOptionValueWithSource(y,b,f)};if(this.on("option:"+S,(b)=>{let I=`error: option '${l.flags}' argument '${b}' is invalid.`;$(b,I,"cli")}),l.envVar)this.on("optionEnv:"+S,(b)=>{let I=`error: option '${l.flags}' value '${b}' from env '${l.envVar}' is invalid.`;$(b,I,"env")});return this}_optionEx(l,S,y,$,b){if(typeof S==="object"&&S instanceof nl)throw Error("To add an Option object use addOption() instead of option() or requiredOption()");let I=this.createOption(S,y);if(I.makeOptionMandatory(!!l.mandatory),typeof $==="function")I.default(b).argParser($);else if($ instanceof RegExp){let f=$;$=(k,T)=>{let R=f.exec(k);return R?R[0]:T},I.default(b).argParser($)}else I.default($);return this.addOption(I)}option(l,S,y,$){return this._optionEx({},l,S,y,$)}requiredOption(l,S,y,$){return this._optionEx({mandatory:!0},l,S,y,$)}combineFlagAndOptionalValue(l=!0){return this._combineFlagAndOptionalValue=!!l,this}allowUnknownOption(l=!0){return this._allowUnknownOption=!!l,this}allowExcessArguments(l=!0){return this._allowExcessArguments=!!l,this}enablePositionalOptions(l=!0){return this._enablePositionalOptions=!!l,this}passThroughOptions(l=!0){return this._passThroughOptions=!!l,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(l=!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=!!l,this}getOptionValue(l){if(this._storeOptionsAsProperties)return this[l];return this._optionValues[l]}setOptionValue(l,S){return this.setOptionValueWithSource(l,S,void 0)}setOptionValueWithSource(l,S,y){if(this._storeOptionsAsProperties)this[l]=S;else this._optionValues[l]=S;return this._optionValueSources[l]=y,this}getOptionValueSource(l){return this._optionValueSources[l]}getOptionValueSourceWithGlobals(l){let S;return this._getCommandAndAncestors().forEach((y)=>{if(y.getOptionValueSource(l)!==void 0)S=y.getOptionValueSource(l)}),S}_prepareUserArgs(l,S){if(l!==void 0&&!Array.isArray(l))throw Error("first parameter to parse must be array or undefined");if(S=S||{},l===void 0&&S.from===void 0){if(J.versions?.electron)S.from="electron";let $=J.execArgv??[];if($.includes("-e")||$.includes("--eval")||$.includes("-p")||$.includes("--print"))S.from="eval"}if(l===void 0)l=J.argv;this.rawArgs=l.slice();let y;switch(S.from){case void 0:case"node":this._scriptPath=l[1],y=l.slice(2);break;case"electron":if(J.defaultApp)this._scriptPath=l[1],y=l.slice(2);else y=l.slice(1);break;case"user":y=l.slice(0);break;case"eval":y=l.slice(1);break;default:throw Error(`unexpected parse option { from: '${S.from}' }`)}if(!this._name&&this._scriptPath)this.nameFromFilename(this._scriptPath);return this._name=this._name||"program",y}parse(l,S){this._prepareForParse();let y=this._prepareUserArgs(l,S);return this._parseCommand([],y),this}async parseAsync(l,S){this._prepareForParse();let y=this._prepareUserArgs(l,S);return await this._parseCommand([],y),this}_prepareForParse(){if(this._savedState===null)this.saveStateBeforeParse();else this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
18
+ - either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(l,S,y){if(d.existsSync(l))return;let $=S?`searched for local subcommand relative to directory '${S}'`:"no directory for search for local subcommand, use .executableDir() to supply a custom directory",b=`'${l}' does not exist
19
+ - if '${y}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
20
+ - if the default executable name is not suitable, use the executableFile option to supply a custom name or path
21
+ - ${$}`;throw Error(b)}_executeSubCommand(l,S){S=S.slice();let y=!1,$=[".js",".ts",".tsx",".mjs",".cjs"];function b(R,B){let _=x.resolve(R,B);if(d.existsSync(_))return _;if($.includes(x.extname(B)))return;let Y=$.find((Q)=>d.existsSync(`${_}${Q}`));if(Y)return`${_}${Y}`;return}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let I=l._executableFile||`${this._name}-${l._name}`,f=this._executableDir||"";if(this._scriptPath){let R;try{R=d.realpathSync(this._scriptPath)}catch{R=this._scriptPath}f=x.resolve(x.dirname(R),f)}if(f){let R=b(f,I);if(!R&&!l._executableFile&&this._scriptPath){let B=x.basename(this._scriptPath,x.extname(this._scriptPath));if(B!==this._name)R=b(f,`${B}-${l._name}`)}I=R||I}y=$.includes(x.extname(I));let k;if(J.platform!=="win32")if(y)S.unshift(I),S=dl(J.execArgv).concat(S),k=Tl.spawn(J.argv[0],S,{stdio:"inherit"});else k=Tl.spawn(I,S,{stdio:"inherit"});else this._checkForMissingExecutable(I,f,l._name),S.unshift(I),S=dl(J.execArgv).concat(S),k=Tl.spawn(J.execPath,S,{stdio:"inherit"});if(!k.killed)["SIGUSR1","SIGUSR2","SIGTERM","SIGINT","SIGHUP"].forEach((B)=>{J.on(B,()=>{if(k.killed===!1&&k.exitCode===null)k.kill(B)})});let T=this._exitCallback;k.on("close",(R)=>{if(R=R??1,!T)J.exit(R);else T(new Bl(R,"commander.executeSubCommandAsync","(close)"))}),k.on("error",(R)=>{if(R.code==="ENOENT")this._checkForMissingExecutable(I,f,l._name);else if(R.code==="EACCES")throw Error(`'${I}' not executable`);if(!T)J.exit(1);else{let B=new Bl(1,"commander.executeSubCommandAsync","(error)");B.nestedError=R,T(B)}}),this.runningCommand=k}_dispatchSubcommand(l,S,y){let $=this._findCommand(l);if(!$)this.help({error:!0});$._prepareForParse();let b;return b=this._chainOrCallSubCommandHook(b,$,"preSubcommand"),b=this._chainOrCall(b,()=>{if($._executableHandler)this._executeSubCommand($,S.concat(y));else return $._parseCommand(S,y)}),b}_dispatchHelpCommand(l){if(!l)this.help();let S=this._findCommand(l);if(S&&!S._executableHandler)S.help();return this._dispatchSubcommand(l,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??"--help"])}_checkNumberOfArguments(){if(this.registeredArguments.forEach((l,S)=>{if(l.required&&this.args[S]==null)this.missingArgument(l.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 l=(y,$,b)=>{let I=$;if($!==null&&y.parseArg){let f=`error: command-argument value '${$}' is invalid for argument '${y.name()}'.`;I=this._callParseArg(y,$,b,f)}return I};this._checkNumberOfArguments();let S=[];this.registeredArguments.forEach((y,$)=>{let b=y.defaultValue;if(y.variadic){if($<this.args.length){if(b=this.args.slice($),y.parseArg)b=b.reduce((I,f)=>{return l(y,f,I)},y.defaultValue)}else if(b===void 0)b=[]}else if($<this.args.length){if(b=this.args[$],y.parseArg)b=l(y,b,y.defaultValue)}S[$]=b}),this.processedArgs=S}_chainOrCall(l,S){if(l?.then&&typeof l.then==="function")return l.then(()=>S());return S()}_chainOrCallHooks(l,S){let y=l,$=[];if(this._getCommandAndAncestors().reverse().filter((b)=>b._lifeCycleHooks[S]!==void 0).forEach((b)=>{b._lifeCycleHooks[S].forEach((I)=>{$.push({hookedCommand:b,callback:I})})}),S==="postAction")$.reverse();return $.forEach((b)=>{y=this._chainOrCall(y,()=>{return b.callback(b.hookedCommand,this)})}),y}_chainOrCallSubCommandHook(l,S,y){let $=l;if(this._lifeCycleHooks[y]!==void 0)this._lifeCycleHooks[y].forEach((b)=>{$=this._chainOrCall($,()=>{return b(this,S)})});return $}_parseCommand(l,S){let y=this.parseOptions(S);if(this._parseOptionsEnv(),this._parseOptionsImplied(),l=l.concat(y.operands),S=y.unknown,this.args=l.concat(S),l&&this._findCommand(l[0]))return this._dispatchSubcommand(l[0],l.slice(1),S);if(this._getHelpCommand()&&l[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(l[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(S),this._dispatchSubcommand(this._defaultCommandName,l,S);if(this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName)this.help({error:!0});this._outputHelpIfRequested(y.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let $=()=>{if(y.unknown.length>0)this.unknownOption(y.unknown[0])},b=`command:${this.name()}`;if(this._actionHandler){$(),this._processArguments();let I;if(I=this._chainOrCallHooks(I,"preAction"),I=this._chainOrCall(I,()=>this._actionHandler(this.processedArgs)),this.parent)I=this._chainOrCall(I,()=>{this.parent.emit(b,l,S)});return I=this._chainOrCallHooks(I,"postAction"),I}if(this.parent?.listenerCount(b))$(),this._processArguments(),this.parent.emit(b,l,S);else if(l.length){if(this._findCommand("*"))return this._dispatchSubcommand("*",l,S);if(this.listenerCount("command:*"))this.emit("command:*",l,S);else if(this.commands.length)this.unknownCommand();else $(),this._processArguments()}else if(this.commands.length)$(),this.help({error:!0});else $(),this._processArguments()}_findCommand(l){if(!l)return;return this.commands.find((S)=>S._name===l||S._aliases.includes(l))}_findOption(l){return this.options.find((S)=>S.is(l))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach((l)=>{l.options.forEach((S)=>{if(S.mandatory&&l.getOptionValue(S.attributeName())===void 0)l.missingMandatoryOptionValue(S)})})}_checkForConflictingLocalOptions(){let l=this.options.filter((y)=>{let $=y.attributeName();if(this.getOptionValue($)===void 0)return!1;return this.getOptionValueSource($)!=="default"});l.filter((y)=>y.conflictsWith.length>0).forEach((y)=>{let $=l.find((b)=>y.conflictsWith.includes(b.attributeName()));if($)this._conflictingOption(y,$)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach((l)=>{l._checkForConflictingLocalOptions()})}parseOptions(l){let S=[],y=[],$=S;function b(R){return R.length>1&&R[0]==="-"}let I=(R)=>{if(!/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(R))return!1;return!this._getCommandAndAncestors().some((B)=>B.options.map((_)=>_.short).some((_)=>/^-\d$/.test(_)))},f=null,k=null,T=0;while(T<l.length||k){let R=k??l[T++];if(k=null,R==="--"){if($===y)$.push(R);$.push(...l.slice(T));break}if(f&&(!b(R)||I(R))){this.emit(`option:${f.name()}`,R);continue}if(f=null,b(R)){let B=this._findOption(R);if(B){if(B.required){let _=l[T++];if(_===void 0)this.optionMissingArgument(B);this.emit(`option:${B.name()}`,_)}else if(B.optional){let _=null;if(T<l.length&&(!b(l[T])||I(l[T])))_=l[T++];this.emit(`option:${B.name()}`,_)}else this.emit(`option:${B.name()}`);f=B.variadic?B:null;continue}}if(R.length>2&&R[0]==="-"&&R[1]!=="-"){let B=this._findOption(`-${R[1]}`);if(B){if(B.required||B.optional&&this._combineFlagAndOptionalValue)this.emit(`option:${B.name()}`,R.slice(2));else this.emit(`option:${B.name()}`),k=`-${R.slice(2)}`;continue}}if(/^--[^=]+=/.test(R)){let B=R.indexOf("="),_=this._findOption(R.slice(0,B));if(_&&(_.required||_.optional)){this.emit(`option:${_.name()}`,R.slice(B+1));continue}}if($===S&&b(R)&&!(this.commands.length===0&&I(R)))$=y;if((this._enablePositionalOptions||this._passThroughOptions)&&S.length===0&&y.length===0){if(this._findCommand(R)){S.push(R),y.push(...l.slice(T));break}else if(this._getHelpCommand()&&R===this._getHelpCommand().name()){S.push(R,...l.slice(T));break}else if(this._defaultCommandName){y.push(R,...l.slice(T));break}}if(this._passThroughOptions){$.push(R,...l.slice(T));break}$.push(R)}return{operands:S,unknown:y}}opts(){if(this._storeOptionsAsProperties){let l={},S=this.options.length;for(let y=0;y<S;y++){let $=this.options[y].attributeName();l[$]=$===this._versionOptionName?this._version:this[$]}return l}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((l,S)=>Object.assign(l,S.opts()),{})}error(l,S){if(this._outputConfiguration.outputError(`${l}
22
+ `,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==="string")this._outputConfiguration.writeErr(`${this._showHelpAfterError}
23
+ `);else if(this._showHelpAfterError)this._outputConfiguration.writeErr(`
24
+ `),this.outputHelp({error:!0});let y=S||{},$=y.exitCode||1,b=y.code||"commander.error";this._exit($,b,l)}_parseOptionsEnv(){this.options.forEach((l)=>{if(l.envVar&&l.envVar in J.env){let S=l.attributeName();if(this.getOptionValue(S)===void 0||["default","config","env"].includes(this.getOptionValueSource(S)))if(l.required||l.optional)this.emit(`optionEnv:${l.name()}`,J.env[l.envVar]);else this.emit(`optionEnv:${l.name()}`)}})}_parseOptionsImplied(){let l=new jS(this.options),S=(y)=>{return this.getOptionValue(y)!==void 0&&!["default","implied"].includes(this.getOptionValueSource(y))};this.options.filter((y)=>y.implied!==void 0&&S(y.attributeName())&&l.valueFromOption(this.getOptionValue(y.attributeName()),y)).forEach((y)=>{Object.keys(y.implied).filter(($)=>!S($)).forEach(($)=>{this.setOptionValueWithSource($,y.implied[$],"implied")})})}missingArgument(l){let S=`error: missing required argument '${l}'`;this.error(S,{code:"commander.missingArgument"})}optionMissingArgument(l){let S=`error: option '${l.flags}' argument missing`;this.error(S,{code:"commander.optionMissingArgument"})}missingMandatoryOptionValue(l){let S=`error: required option '${l.flags}' not specified`;this.error(S,{code:"commander.missingMandatoryOptionValue"})}_conflictingOption(l,S){let y=(I)=>{let f=I.attributeName(),k=this.getOptionValue(f),T=this.options.find((B)=>B.negate&&f===B.attributeName()),R=this.options.find((B)=>!B.negate&&f===B.attributeName());if(T&&(T.presetArg===void 0&&k===!1||T.presetArg!==void 0&&k===T.presetArg))return T;return R||I},$=(I)=>{let f=y(I),k=f.attributeName();if(this.getOptionValueSource(k)==="env")return`environment variable '${f.envVar}'`;return`option '${f.flags}'`},b=`error: ${$(l)} cannot be used with ${$(S)}`;this.error(b,{code:"commander.conflictingOption"})}unknownOption(l){if(this._allowUnknownOption)return;let S="";if(l.startsWith("--")&&this._showSuggestionAfterError){let $=[],b=this;do{let I=b.createHelp().visibleOptions(b).filter((f)=>f.long).map((f)=>f.long);$=$.concat(I),b=b.parent}while(b&&!b._enablePositionalOptions);S=tl(l,$)}let y=`error: unknown option '${l}'${S}`;this.error(y,{code:"commander.unknownOption"})}_excessArguments(l){if(this._allowExcessArguments)return;let S=this.registeredArguments.length,y=S===1?"":"s",b=`error: too many arguments${this.parent?` for '${this.name()}'`:""}. Expected ${S} argument${y} but got ${l.length}.`;this.error(b,{code:"commander.excessArguments"})}unknownCommand(){let l=this.args[0],S="";if(this._showSuggestionAfterError){let $=[];this.createHelp().visibleCommands(this).forEach((b)=>{if($.push(b.name()),b.alias())$.push(b.alias())}),S=tl(l,$)}let y=`error: unknown command '${l}'${S}`;this.error(y,{code:"commander.unknownCommand"})}version(l,S,y){if(l===void 0)return this._version;this._version=l,S=S||"-V, --version",y=y||"output the version number";let $=this.createOption(S,y);return this._versionOptionName=$.attributeName(),this._registerOption($),this.on("option:"+$.name(),()=>{this._outputConfiguration.writeOut(`${l}
25
+ `),this._exit(0,"commander.version",l)}),this}description(l,S){if(l===void 0&&S===void 0)return this._description;if(this._description=l,S)this._argsDescription=S;return this}summary(l){if(l===void 0)return this._summary;return this._summary=l,this}alias(l){if(l===void 0)return this._aliases[0];let S=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler)S=this.commands[this.commands.length-1];if(l===S._name)throw Error("Command alias can't be the same as its name");let y=this.parent?._findCommand(l);if(y){let $=[y.name()].concat(y.aliases()).join("|");throw Error(`cannot add alias '${l}' to command '${this.name()}' as already have command '${$}'`)}return S._aliases.push(l),this}aliases(l){if(l===void 0)return this._aliases;return l.forEach((S)=>this.alias(S)),this}usage(l){if(l===void 0){if(this._usage)return this._usage;let S=this.registeredArguments.map((y)=>{return ZS(y)});return[].concat(this.options.length||this._helpOption!==null?"[options]":[],this.commands.length?"[command]":[],this.registeredArguments.length?S:[]).join(" ")}return this._usage=l,this}name(l){if(l===void 0)return this._name;return this._name=l,this}helpGroup(l){if(l===void 0)return this._helpGroupHeading??"";return this._helpGroupHeading=l,this}commandsGroup(l){if(l===void 0)return this._defaultCommandGroup??"";return this._defaultCommandGroup=l,this}optionsGroup(l){if(l===void 0)return this._defaultOptionGroup??"";return this._defaultOptionGroup=l,this}_initOptionGroup(l){if(this._defaultOptionGroup&&!l.helpGroupHeading)l.helpGroup(this._defaultOptionGroup)}_initCommandGroup(l){if(this._defaultCommandGroup&&!l.helpGroup())l.helpGroup(this._defaultCommandGroup)}nameFromFilename(l){return this._name=x.basename(l,x.extname(l)),this}executableDir(l){if(l===void 0)return this._executableDir;return this._executableDir=l,this}helpInformation(l){let S=this.createHelp(),y=this._getOutputContext(l);S.prepareContext({error:y.error,helpWidth:y.helpWidth,outputHasColors:y.hasColors});let $=S.formatHelp(this,S);if(y.hasColors)return $;return this._outputConfiguration.stripColor($)}_getOutputContext(l){l=l||{};let S=!!l.error,y,$,b;if(S)y=(f)=>this._outputConfiguration.writeErr(f),$=this._outputConfiguration.getErrHasColors(),b=this._outputConfiguration.getErrHelpWidth();else y=(f)=>this._outputConfiguration.writeOut(f),$=this._outputConfiguration.getOutHasColors(),b=this._outputConfiguration.getOutHelpWidth();return{error:S,write:(f)=>{if(!$)f=this._outputConfiguration.stripColor(f);return y(f)},hasColors:$,helpWidth:b}}outputHelp(l){let S;if(typeof l==="function")S=l,l=void 0;let y=this._getOutputContext(l),$={error:y.error,write:y.write,command:this};this._getCommandAndAncestors().reverse().forEach((I)=>I.emit("beforeAllHelp",$)),this.emit("beforeHelp",$);let b=this.helpInformation({error:y.error});if(S){if(b=S(b),typeof b!=="string"&&!Buffer.isBuffer(b))throw Error("outputHelp callback must return a string or a Buffer")}if(y.write(b),this._getHelpOption()?.long)this.emit(this._getHelpOption().long);this.emit("afterHelp",$),this._getCommandAndAncestors().forEach((I)=>I.emit("afterAllHelp",$))}helpOption(l,S){if(typeof l==="boolean"){if(l){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(l??"-h, --help",S??"display help for command"),l||S)this._initOptionGroup(this._helpOption);return this}_getHelpOption(){if(this._helpOption===void 0)this.helpOption(void 0,void 0);return this._helpOption}addHelpOption(l){return this._helpOption=l,this._initOptionGroup(l),this}help(l){this.outputHelp(l);let S=Number(J.exitCode??0);if(S===0&&l&&typeof l!=="function"&&l.error)S=1;this._exit(S,"commander.help","(outputHelp)")}addHelpText(l,S){let y=["beforeAll","before","after","afterAll"];if(!y.includes(l))throw Error(`Unexpected value for position to addHelpText.
26
+ Expecting one of '${y.join("', '")}'`);let $=`${l}Help`;return this.on($,(b)=>{let I;if(typeof S==="function")I=S({error:b.error,command:b.command});else I=S;if(I)b.write(`${I}
27
+ `)}),this}_outputHelpIfRequested(l){let S=this._getHelpOption();if(S&&l.find(($)=>S.is($)))this.outputHelp(),this._exit(0,"commander.helpDisplayed","(outputHelp)")}}function dl(l){return l.map((S)=>{if(!S.startsWith("--inspect"))return S;let y,$="127.0.0.1",b="9229",I;if((I=S.match(/^(--inspect(-brk)?)$/))!==null)y=I[1];else if((I=S.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))!==null)if(y=I[1],/^\d+$/.test(I[3]))b=I[3];else $=I[3];else if((I=S.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null)y=I[1],$=I[3],b=I[4];if(y&&b!=="0")return`${y}=${$}:${parseInt(b)+1}`;return S})}function ql(){if(J.env.NO_COLOR||J.env.FORCE_COLOR==="0"||J.env.FORCE_COLOR==="false")return!1;if(J.env.FORCE_COLOR||J.env.CLICOLOR_FORCE!==void 0)return!0;return}MS.Command=_l;MS.useColor=ql});var el=V((NS)=>{var{Argument:pl}=t(),{Command:Ll}=rl(),{CommanderError:WS,InvalidArgumentError:al}=u(),{Help:wS}=kl(),{Option:ol}=Rl();NS.program=new Ll;NS.createCommand=(l)=>new Ll(l);NS.createOption=(l,S)=>new ol(l,S);NS.createArgument=(l,S)=>new pl(l,S);NS.Command=Ll;NS.Option=ol;NS.Argument=pl;NS.Help=wS;NS.CommanderError=WS;NS.InvalidArgumentError=al;NS.InvalidOptionArgumentError=al});var Xl=V((Py,S1)=>{var Yl={to(l,S){if(!S)return`\x1B[${l+1}G`;return`\x1B[${S+1};${l+1}H`},move(l,S){let y="";if(l<0)y+=`\x1B[${-l}D`;else if(l>0)y+=`\x1B[${l}C`;if(S<0)y+=`\x1B[${-S}A`;else if(S>0)y+=`\x1B[${S}B`;return y},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"},sS={up:(l=1)=>"\x1B[S".repeat(l),down:(l=1)=>"\x1B[T".repeat(l)},iS={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 S="";for(let y=0;y<l;y++)S+=this.line+(y<l-1?Yl.up():"");if(l)S+=Yl.left;return S}};S1.exports={cursor:Yl,scroll:sS,erase:iS,beep:"\x07"}});var a=V((Uy,Gl)=>{var p=process||{},f1=p.argv||[],r=p.env||{},mS=!(!!r.NO_COLOR||f1.includes("--no-color"))&&(!!r.FORCE_COLOR||f1.includes("--color")||p.platform==="win32"||(p.stdout||{}).isTTY&&r.TERM!=="dumb"||!!r.CI),DS=(l,S,y=l)=>($)=>{let b=""+$,I=b.indexOf(S,l.length);return~I?l+uS(b,S,y,I)+S:l+b+S},uS=(l,S,y,$)=>{let b="",I=0;do b+=l.substring(I,$)+y,I=$+S.length,$=l.indexOf(S,I);while(~$);return b+l.substring(I)},y1=(l=mS)=>{let S=l?DS:()=>String;return{isColorSupported:l,reset:S("\x1B[0m","\x1B[0m"),bold:S("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:S("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:S("\x1B[3m","\x1B[23m"),underline:S("\x1B[4m","\x1B[24m"),inverse:S("\x1B[7m","\x1B[27m"),hidden:S("\x1B[8m","\x1B[28m"),strikethrough:S("\x1B[9m","\x1B[29m"),black:S("\x1B[30m","\x1B[39m"),red:S("\x1B[31m","\x1B[39m"),green:S("\x1B[32m","\x1B[39m"),yellow:S("\x1B[33m","\x1B[39m"),blue:S("\x1B[34m","\x1B[39m"),magenta:S("\x1B[35m","\x1B[39m"),cyan:S("\x1B[36m","\x1B[39m"),white:S("\x1B[37m","\x1B[39m"),gray:S("\x1B[90m","\x1B[39m"),bgBlack:S("\x1B[40m","\x1B[49m"),bgRed:S("\x1B[41m","\x1B[49m"),bgGreen:S("\x1B[42m","\x1B[49m"),bgYellow:S("\x1B[43m","\x1B[49m"),bgBlue:S("\x1B[44m","\x1B[49m"),bgMagenta:S("\x1B[45m","\x1B[49m"),bgCyan:S("\x1B[46m","\x1B[49m"),bgWhite:S("\x1B[47m","\x1B[49m"),blackBright:S("\x1B[90m","\x1B[39m"),redBright:S("\x1B[91m","\x1B[39m"),greenBright:S("\x1B[92m","\x1B[39m"),yellowBright:S("\x1B[93m","\x1B[39m"),blueBright:S("\x1B[94m","\x1B[39m"),magentaBright:S("\x1B[95m","\x1B[39m"),cyanBright:S("\x1B[96m","\x1B[39m"),whiteBright:S("\x1B[97m","\x1B[39m"),bgBlackBright:S("\x1B[100m","\x1B[49m"),bgRedBright:S("\x1B[101m","\x1B[49m"),bgGreenBright:S("\x1B[102m","\x1B[49m"),bgYellowBright:S("\x1B[103m","\x1B[49m"),bgBlueBright:S("\x1B[104m","\x1B[49m"),bgMagentaBright:S("\x1B[105m","\x1B[49m"),bgCyanBright:S("\x1B[106m","\x1B[49m"),bgWhiteBright:S("\x1B[107m","\x1B[49m")}};Gl.exports=y1();Gl.exports.createColors=y1});var l1=c(el(),1),{program:Jl,createCommand:By,createArgument:qy,createOption:_y,CommanderError:Ly,InvalidArgumentError:Jy,InvalidOptionArgumentError:Yy,Command:Xy,Argument:Gy,Option:zy,Help:Qy}=l1.default;var M=c(Xl(),1);import{stdin as L1,stdout as J1}from"node:process";import*as O from"node:readline";import $1 from"node:readline";import{Writable as nS}from"node:stream";function tS({onlyFirst:l=!1}={}){let S=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(S,l?void 0:"g")}var dS=tS();function Y1(l){if(typeof l!="string")throw TypeError(`Expected a \`string\`, got \`${typeof l}\``);return l.replace(dS,"")}function X1(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var G1={exports:{}};(function(l){var S={};l.exports=S,S.eastAsianWidth=function($){var b=$.charCodeAt(0),I=$.length==2?$.charCodeAt(1):0,f=b;return 55296<=b&&b<=56319&&56320<=I&&I<=57343&&(b&=1023,I&=1023,f=b<<10|I,f+=65536),f==12288||65281<=f&&f<=65376||65504<=f&&f<=65510?"F":f==8361||65377<=f&&f<=65470||65474<=f&&f<=65479||65482<=f&&f<=65487||65490<=f&&f<=65495||65498<=f&&f<=65500||65512<=f&&f<=65518?"H":4352<=f&&f<=4447||4515<=f&&f<=4519||4602<=f&&f<=4607||9001<=f&&f<=9002||11904<=f&&f<=11929||11931<=f&&f<=12019||12032<=f&&f<=12245||12272<=f&&f<=12283||12289<=f&&f<=12350||12353<=f&&f<=12438||12441<=f&&f<=12543||12549<=f&&f<=12589||12593<=f&&f<=12686||12688<=f&&f<=12730||12736<=f&&f<=12771||12784<=f&&f<=12830||12832<=f&&f<=12871||12880<=f&&f<=13054||13056<=f&&f<=19903||19968<=f&&f<=42124||42128<=f&&f<=42182||43360<=f&&f<=43388||44032<=f&&f<=55203||55216<=f&&f<=55238||55243<=f&&f<=55291||63744<=f&&f<=64255||65040<=f&&f<=65049||65072<=f&&f<=65106||65108<=f&&f<=65126||65128<=f&&f<=65131||110592<=f&&f<=110593||127488<=f&&f<=127490||127504<=f&&f<=127546||127552<=f&&f<=127560||127568<=f&&f<=127569||131072<=f&&f<=194367||177984<=f&&f<=196605||196608<=f&&f<=262141?"W":32<=f&&f<=126||162<=f&&f<=163||165<=f&&f<=166||f==172||f==175||10214<=f&&f<=10221||10629<=f&&f<=10630?"Na":f==161||f==164||167<=f&&f<=168||f==170||173<=f&&f<=174||176<=f&&f<=180||182<=f&&f<=186||188<=f&&f<=191||f==198||f==208||215<=f&&f<=216||222<=f&&f<=225||f==230||232<=f&&f<=234||236<=f&&f<=237||f==240||242<=f&&f<=243||247<=f&&f<=250||f==252||f==254||f==257||f==273||f==275||f==283||294<=f&&f<=295||f==299||305<=f&&f<=307||f==312||319<=f&&f<=322||f==324||328<=f&&f<=331||f==333||338<=f&&f<=339||358<=f&&f<=359||f==363||f==462||f==464||f==466||f==468||f==470||f==472||f==474||f==476||f==593||f==609||f==708||f==711||713<=f&&f<=715||f==717||f==720||728<=f&&f<=731||f==733||f==735||768<=f&&f<=879||913<=f&&f<=929||931<=f&&f<=937||945<=f&&f<=961||963<=f&&f<=969||f==1025||1040<=f&&f<=1103||f==1105||f==8208||8211<=f&&f<=8214||8216<=f&&f<=8217||8220<=f&&f<=8221||8224<=f&&f<=8226||8228<=f&&f<=8231||f==8240||8242<=f&&f<=8243||f==8245||f==8251||f==8254||f==8308||f==8319||8321<=f&&f<=8324||f==8364||f==8451||f==8453||f==8457||f==8467||f==8470||8481<=f&&f<=8482||f==8486||f==8491||8531<=f&&f<=8532||8539<=f&&f<=8542||8544<=f&&f<=8555||8560<=f&&f<=8569||f==8585||8592<=f&&f<=8601||8632<=f&&f<=8633||f==8658||f==8660||f==8679||f==8704||8706<=f&&f<=8707||8711<=f&&f<=8712||f==8715||f==8719||f==8721||f==8725||f==8730||8733<=f&&f<=8736||f==8739||f==8741||8743<=f&&f<=8748||f==8750||8756<=f&&f<=8759||8764<=f&&f<=8765||f==8776||f==8780||f==8786||8800<=f&&f<=8801||8804<=f&&f<=8807||8810<=f&&f<=8811||8814<=f&&f<=8815||8834<=f&&f<=8835||8838<=f&&f<=8839||f==8853||f==8857||f==8869||f==8895||f==8978||9312<=f&&f<=9449||9451<=f&&f<=9547||9552<=f&&f<=9587||9600<=f&&f<=9615||9618<=f&&f<=9621||9632<=f&&f<=9633||9635<=f&&f<=9641||9650<=f&&f<=9651||9654<=f&&f<=9655||9660<=f&&f<=9661||9664<=f&&f<=9665||9670<=f&&f<=9672||f==9675||9678<=f&&f<=9681||9698<=f&&f<=9701||f==9711||9733<=f&&f<=9734||f==9737||9742<=f&&f<=9743||9748<=f&&f<=9749||f==9756||f==9758||f==9792||f==9794||9824<=f&&f<=9825||9827<=f&&f<=9829||9831<=f&&f<=9834||9836<=f&&f<=9837||f==9839||9886<=f&&f<=9887||9918<=f&&f<=9919||9924<=f&&f<=9933||9935<=f&&f<=9953||f==9955||9960<=f&&f<=9983||f==10045||f==10071||10102<=f&&f<=10111||11093<=f&&f<=11097||12872<=f&&f<=12879||57344<=f&&f<=63743||65024<=f&&f<=65039||f==65533||127232<=f&&f<=127242||127248<=f&&f<=127277||127280<=f&&f<=127337||127344<=f&&f<=127386||917760<=f&&f<=917999||983040<=f&&f<=1048573||1048576<=f&&f<=1114109?"A":"N"},S.characterLength=function($){var b=this.eastAsianWidth($);return b=="F"||b=="W"||b=="A"?2:1};function y($){return $.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}S.length=function($){for(var b=y($),I=0,f=0;f<b.length;f++)I=I+this.characterLength(b[f]);return I},S.slice=function($,b,I){textLen=S.length($),b=b||0,I=I||1,b<0&&(b=textLen+b),I<0&&(I=textLen+I);for(var f="",k=0,T=y($),R=0;R<T.length;R++){var B=T[R],_=S.length(B);if(k>=b-(_==2?1:0))if(k+_<=I)f+=B;else break;k+=_}return f}})(G1);var rS=G1.exports,pS=X1(rS),aS=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},oS=X1(aS);function n(l,S={}){if(typeof l!="string"||l.length===0||(S={ambiguousIsNarrow:!0,...S},l=Y1(l),l.length===0))return 0;l=l.replace(oS()," ");let y=S.ambiguousIsNarrow?1:2,$=0;for(let b of l){let I=b.codePointAt(0);if(I<=31||I>=127&&I<=159||I>=768&&I<=879)continue;switch(pS.eastAsianWidth(b)){case"F":case"W":$+=2;break;case"A":$+=y;break;default:$+=1}}return $}var zl=10,b1=(l=0)=>(S)=>`\x1B[${S+l}m`,I1=(l=0)=>(S)=>`\x1B[${38+l};5;${S}m`,k1=(l=0)=>(S,y,$)=>`\x1B[${38+l};2;${S};${y};${$}m`,z={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(z.modifier);var eS=Object.keys(z.color),lf=Object.keys(z.bgColor);[...eS,...lf];function Sf(){let l=new Map;for(let[S,y]of Object.entries(z)){for(let[$,b]of Object.entries(y))z[$]={open:`\x1B[${b[0]}m`,close:`\x1B[${b[1]}m`},y[$]=z[$],l.set(b[0],b[1]);Object.defineProperty(z,S,{value:y,enumerable:!1})}return Object.defineProperty(z,"codes",{value:l,enumerable:!1}),z.color.close="\x1B[39m",z.bgColor.close="\x1B[49m",z.color.ansi=b1(),z.color.ansi256=I1(),z.color.ansi16m=k1(),z.bgColor.ansi=b1(zl),z.bgColor.ansi256=I1(zl),z.bgColor.ansi16m=k1(zl),Object.defineProperties(z,{rgbToAnsi256:{value:(S,y,$)=>S===y&&y===$?S<8?16:S>248?231:Math.round((S-8)/247*24)+232:16+36*Math.round(S/255*5)+6*Math.round(y/255*5)+Math.round($/255*5),enumerable:!1},hexToRgb:{value:(S)=>{let y=/[a-f\d]{6}|[a-f\d]{3}/i.exec(S.toString(16));if(!y)return[0,0,0];let[$]=y;$.length===3&&($=[...$].map((I)=>I+I).join(""));let b=Number.parseInt($,16);return[b>>16&255,b>>8&255,b&255]},enumerable:!1},hexToAnsi256:{value:(S)=>z.rgbToAnsi256(...z.hexToRgb(S)),enumerable:!1},ansi256ToAnsi:{value:(S)=>{if(S<8)return 30+S;if(S<16)return 90+(S-8);let y,$,b;if(S>=232)y=((S-232)*10+8)/255,$=y,b=y;else{S-=16;let k=S%36;y=Math.floor(S/36)/5,$=Math.floor(k/6)/5,b=k%6/5}let I=Math.max(y,$,b)*2;if(I===0)return 30;let f=30+(Math.round(b)<<2|Math.round($)<<1|Math.round(y));return I===2&&(f+=60),f},enumerable:!1},rgbToAnsi:{value:(S,y,$)=>z.ansi256ToAnsi(z.rgbToAnsi256(S,y,$)),enumerable:!1},hexToAnsi:{value:(S)=>z.ansi256ToAnsi(z.hexToAnsi256(S)),enumerable:!1}}),z}var ff=Sf(),ll=new Set(["\x1B","›"]),yf=39,Pl="\x07",z1="[",$f="]",Q1="m",Ul=`${$f}8;;`,R1=(l)=>`${ll.values().next().value}${z1}${l}${Q1}`,T1=(l)=>`${ll.values().next().value}${Ul}${l}${Pl}`,bf=(l)=>l.split(" ").map((S)=>n(S)),Ql=(l,S,y)=>{let $=[...S],b=!1,I=!1,f=n(Y1(l[l.length-1]));for(let[k,T]of $.entries()){let R=n(T);if(f+R<=y?l[l.length-1]+=T:(l.push(T),f=0),ll.has(T)&&(b=!0,I=$.slice(k+1).join("").startsWith(Ul)),b){I?T===Pl&&(b=!1,I=!1):T===Q1&&(b=!1);continue}f+=R,f===y&&k<$.length-1&&(l.push(""),f=0)}!f&&l[l.length-1].length>0&&l.length>1&&(l[l.length-2]+=l.pop())},If=(l)=>{let S=l.split(" "),y=S.length;for(;y>0&&!(n(S[y-1])>0);)y--;return y===S.length?l:S.slice(0,y).join(" ")+S.slice(y).join("")},kf=(l,S,y={})=>{if(y.trim!==!1&&l.trim()==="")return"";let $="",b,I,f=bf(l),k=[""];for(let[R,B]of l.split(" ").entries()){y.trim!==!1&&(k[k.length-1]=k[k.length-1].trimStart());let _=n(k[k.length-1]);if(R!==0&&(_>=S&&(y.wordWrap===!1||y.trim===!1)&&(k.push(""),_=0),(_>0||y.trim===!1)&&(k[k.length-1]+=" ",_++)),y.hard&&f[R]>S){let Y=S-_,Q=1+Math.floor((f[R]-Y-1)/S);Math.floor((f[R]-1)/S)<Q&&k.push(""),Ql(k,B,S);continue}if(_+f[R]>S&&_>0&&f[R]>0){if(y.wordWrap===!1&&_<S){Ql(k,B,S);continue}k.push("")}if(_+f[R]>S&&y.wordWrap===!1){Ql(k,B,S);continue}k[k.length-1]+=B}y.trim!==!1&&(k=k.map((R)=>If(R)));let T=[...k.join(`
28
+ `)];for(let[R,B]of T.entries()){if($+=B,ll.has(B)){let{groups:Y}=new RegExp(`(?:\\${z1}(?<code>\\d+)m|\\${Ul}(?<uri>.*)${Pl})`).exec(T.slice(R).join(""))||{groups:{}};if(Y.code!==void 0){let Q=Number.parseFloat(Y.code);b=Q===yf?void 0:Q}else Y.uri!==void 0&&(I=Y.uri.length===0?void 0:Y.uri)}let _=ff.codes.get(Number(b));T[R+1]===`
29
+ `?(I&&($+=T1("")),b&&_&&($+=R1(_))):B===`
30
+ `&&(b&&_&&($+=R1(b)),I&&($+=T1(I)))}return $};function B1(l,S,y){return String(l).normalize().replace(/\r\n/g,`
31
+ `).split(`
32
+ `).map(($)=>kf($,S,y)).join(`
33
+ `)}var Rf=["up","down","left","right","space","enter","cancel"],e={actions:new Set(Rf),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function jl(l,S){if(typeof l=="string")return e.aliases.get(l)===S;for(let y of l)if(y!==void 0&&jl(y,S))return!0;return!1}function Tf(l,S){if(l===S)return;let y=l.split(`
34
+ `),$=S.split(`
35
+ `),b=[];for(let I=0;I<Math.max(y.length,$.length);I++)y[I]!==$[I]&&b.push(I);return b}var Bf=globalThis.process.platform.startsWith("win"),Zl=Symbol("clack:cancel");function F(l){return l===Zl}function o(l,S){let y=l;y.isTTY&&y.setRawMode(S)}function Z1({input:l=L1,output:S=J1,overwrite:y=!0,hideCursor:$=!0}={}){let b=O.createInterface({input:l,output:S,prompt:"",tabSize:1});O.emitKeypressEvents(l,b),l.isTTY&&l.setRawMode(!0);let I=(f,{name:k,sequence:T})=>{let R=String(f);if(jl([R,k,T],"cancel")){$&&S.write(M.cursor.show),process.exit(0);return}if(!y)return;O.moveCursor(S,k==="return"?0:-1,k==="return"?-1:0,()=>{O.clearLine(S,1,()=>{l.once("keypress",I)})})};return $&&S.write(M.cursor.hide),l.once("keypress",I),()=>{l.off("keypress",I),$&&S.write(M.cursor.show),l.isTTY&&!Bf&&l.setRawMode(!1),b.terminal=!1,b.close()}}var qf=Object.defineProperty,_f=(l,S,y)=>(S in l)?qf(l,S,{enumerable:!0,configurable:!0,writable:!0,value:y}):l[S]=y,K=(l,S,y)=>(_f(l,typeof S!="symbol"?S+"":S,y),y);class Sl{constructor(l,S=!0){K(this,"input"),K(this,"output"),K(this,"_abortSignal"),K(this,"rl"),K(this,"opts"),K(this,"_render"),K(this,"_track",!1),K(this,"_prevFrame",""),K(this,"_subscribers",new Map),K(this,"_cursor",0),K(this,"state","initial"),K(this,"error",""),K(this,"value");let{input:y=L1,output:$=J1,render:b,signal:I,...f}=l;this.opts=f,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=b.bind(this),this._track=S,this._abortSignal=I,this.input=y,this.output=$}unsubscribe(){this._subscribers.clear()}setSubscriber(l,S){let y=this._subscribers.get(l)??[];y.push(S),this._subscribers.set(l,y)}on(l,S){this.setSubscriber(l,{cb:S})}once(l,S){this.setSubscriber(l,{cb:S,once:!0})}emit(l,...S){let y=this._subscribers.get(l)??[],$=[];for(let b of y)b.cb(...S),b.once&&$.push(()=>y.splice(y.indexOf(b),1));for(let b of $)b()}prompt(){return new Promise((l,S)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),l(Zl);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let y=new nS;y._write=($,b,I)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),I()},this.input.pipe(y),this.rl=$1.createInterface({input:this.input,output:y,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),$1.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),o(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(M.cursor.show),this.output.off("resize",this.render),o(this.input,!1),l(this.value)}),this.once("cancel",()=>{this.output.write(M.cursor.show),this.output.off("resize",this.render),o(this.input,!1),l(Zl)})})}onKeypress(l,S){if(this.state==="error"&&(this.state="active"),S?.name&&(!this._track&&e.aliases.has(S.name)&&this.emit("cursor",e.aliases.get(S.name)),e.actions.has(S.name)&&this.emit("cursor",S.name)),l&&(l.toLowerCase()==="y"||l.toLowerCase()==="n")&&this.emit("confirm",l.toLowerCase()==="y"),l==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),l&&this.emit("key",l.toLowerCase()),S?.name==="return"){if(this.opts.validate){let y=this.opts.validate(this.value);y&&(this.error=y instanceof Error?y.message:y,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}jl([l,S?.name,S?.sequence],"cancel")&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
36
+ `),o(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let l=B1(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
37
+ `).length-1;this.output.write(M.cursor.move(-999,l*-1))}render(){let l=B1(this._render(this)??"",process.stdout.columns,{hard:!0});if(l!==this._prevFrame){if(this.state==="initial")this.output.write(M.cursor.hide);else{let S=Tf(this._prevFrame,l);if(this.restoreCursor(),S&&S?.length===1){let y=S[0];this.output.write(M.cursor.move(0,y)),this.output.write(M.erase.lines(1));let $=l.split(`
38
+ `);this.output.write($[y]),this._prevFrame=l,this.output.write(M.cursor.move(0,$.length-y-1));return}if(S&&S?.length>1){let y=S[0];this.output.write(M.cursor.move(0,y)),this.output.write(M.erase.down());let $=l.split(`
39
+ `).slice(y);this.output.write($.join(`
40
+ `)),this._prevFrame=l;return}this.output.write(M.erase.down())}this.output.write(l),this.state==="initial"&&(this.state="active"),this._prevFrame=l}}}class Ml extends Sl{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(l){super(l,!1),this.value=!!l.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(S)=>{this.output.write(M.cursor.move(0,-1)),this.value=S,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var Lf;Lf=new WeakMap;var Jf=Object.defineProperty,Yf=(l,S,y)=>(S in l)?Jf(l,S,{enumerable:!0,configurable:!0,writable:!0,value:y}):l[S]=y,q1=(l,S,y)=>(Yf(l,typeof S!="symbol"?S+"":S,y),y),P1=class extends Sl{constructor(l){super(l,!1),q1(this,"options"),q1(this,"cursor",0),this.options=l.options,this.value=[...l.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:S})=>S===l.cursorAt),0),this.on("key",(S)=>{S==="a"&&this.toggleAll()}),this.on("cursor",(S)=>{switch(S){case"left":case"up":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;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let l=this.value.length===this.options.length;this.value=l?[]:this.options.map((S)=>S.value)}toggleValue(){let l=this.value.includes(this._value);this.value=l?this.value.filter((S)=>S!==this._value):[...this.value,this._value]}};var Xf=Object.defineProperty,Gf=(l,S,y)=>(S in l)?Xf(l,S,{enumerable:!0,configurable:!0,writable:!0,value:y}):l[S]=y,_1=(l,S,y)=>(Gf(l,typeof S!="symbol"?S+"":S,y),y);class Hl extends Sl{constructor(l){super(l,!1),_1(this,"options"),_1(this,"cursor",0),this.options=l.options,this.cursor=this.options.findIndex(({value:S})=>S===l.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(S)=>{switch(S){case"left":case"up":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;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}}var q=c(a(),1),fl=c(Xl(),1);import w from"node:process";function zf(){return w.platform!=="win32"?w.env.TERM!=="linux":!!w.env.CI||!!w.env.WT_SESSION||!!w.env.TERMINUS_SUBLIME||w.env.ConEmuTask==="{cmd::Cmder}"||w.env.TERM_PROGRAM==="Terminus-Sublime"||w.env.TERM_PROGRAM==="vscode"||w.env.TERM==="xterm-256color"||w.env.TERM==="alacritty"||w.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var Kl=zf(),Z=(l,S)=>Kl?l:S,Qf=Z("◆","*"),j1=Z("■","x"),M1=Z("▲","x"),El=Z("◇","o"),Zf=Z("┌","T"),G=Z("│","|"),h=Z("└","—"),Wl=Z("●",">"),wl=Z("○"," "),Pf=Z("◻","[•]"),U1=Z("◼","[+]"),Uf=Z("◻","[ ]"),Oy=Z("▪","•"),Fy=Z("─","-"),vy=Z("╮","+"),gy=Z("├","+"),cy=Z("╯","+"),jf=Z("●","•"),Mf=Z("◆","*"),Hf=Z("▲","!"),Kf=Z("■","x"),Vl=(l)=>{switch(l){case"initial":case"active":return q.default.cyan(Qf);case"cancel":return q.default.red(j1);case"error":return q.default.yellow(M1);case"submit":return q.default.green(El)}},Nl=(l)=>{let{cursor:S,options:y,style:$}=l,b=l.maxItems??Number.POSITIVE_INFINITY,I=Math.max(process.stdout.rows-4,0),f=Math.min(I,Math.max(b,5)),k=0;S>=k+f-3?k=Math.max(Math.min(S-f+3,y.length-f),0):S<k+2&&(k=Math.max(S-2,0));let T=f<y.length&&k>0,R=f<y.length&&k+f<y.length;return y.slice(k,k+f).map((B,_,Y)=>{let Q=_===0&&T,m=_===Y.length-1&&R;return Q||m?q.default.dim("..."):$(B,_+k===S)})};var H1=(l)=>{let S=l.active??"Yes",y=l.inactive??"No";return new Ml({active:S,inactive:y,initialValue:l.initialValue??!0,render(){let $=`${q.default.gray(G)}
41
+ ${Vl(this.state)} ${l.message}
42
+ `,b=this.value?S:y;switch(this.state){case"submit":return`${$}${q.default.gray(G)} ${q.default.dim(b)}`;case"cancel":return`${$}${q.default.gray(G)} ${q.default.strikethrough(q.default.dim(b))}
43
+ ${q.default.gray(G)}`;default:return`${$}${q.default.cyan(G)} ${this.value?`${q.default.green(Wl)} ${S}`:`${q.default.dim(wl)} ${q.default.dim(S)}`} ${q.default.dim("/")} ${this.value?`${q.default.dim(wl)} ${q.default.dim(y)}`:`${q.default.green(Wl)} ${y}`}
44
+ ${q.default.cyan(h)}
45
+ `}}}).prompt()},K1=(l)=>{let S=(y,$)=>{let b=y.label??String(y.value);switch($){case"selected":return`${q.default.dim(b)}`;case"active":return`${q.default.green(Wl)} ${b} ${y.hint?q.default.dim(`(${y.hint})`):""}`;case"cancelled":return`${q.default.strikethrough(q.default.dim(b))}`;default:return`${q.default.dim(wl)} ${q.default.dim(b)}`}};return new Hl({options:l.options,initialValue:l.initialValue,render(){let y=`${q.default.gray(G)}
46
+ ${Vl(this.state)} ${l.message}
47
+ `;switch(this.state){case"submit":return`${y}${q.default.gray(G)} ${S(this.options[this.cursor],"selected")}`;case"cancel":return`${y}${q.default.gray(G)} ${S(this.options[this.cursor],"cancelled")}
48
+ ${q.default.gray(G)}`;default:return`${y}${q.default.cyan(G)} ${Nl({cursor:this.cursor,options:this.options,maxItems:l.maxItems,style:($,b)=>S($,b?"active":"inactive")}).join(`
49
+ ${q.default.cyan(G)} `)}
50
+ ${q.default.cyan(h)}
51
+ `}}}).prompt()};var yl=(l)=>{let S=(y,$)=>{let b=y.label??String(y.value);return $==="active"?`${q.default.cyan(Pf)} ${b} ${y.hint?q.default.dim(`(${y.hint})`):""}`:$==="selected"?`${q.default.green(U1)} ${q.default.dim(b)} ${y.hint?q.default.dim(`(${y.hint})`):""}`:$==="cancelled"?`${q.default.strikethrough(q.default.dim(b))}`:$==="active-selected"?`${q.default.green(U1)} ${b} ${y.hint?q.default.dim(`(${y.hint})`):""}`:$==="submitted"?`${q.default.dim(b)}`:`${q.default.dim(Uf)} ${q.default.dim(b)}`};return new P1({options:l.options,initialValues:l.initialValues,required:l.required??!0,cursorAt:l.cursorAt,validate(y){if(this.required&&y.length===0)return`Please select at least one option.
52
+ ${q.default.reset(q.default.dim(`Press ${q.default.gray(q.default.bgWhite(q.default.inverse(" space ")))} to select, ${q.default.gray(q.default.bgWhite(q.default.inverse(" enter ")))} to submit`))}`},render(){let y=`${q.default.gray(G)}
53
+ ${Vl(this.state)} ${l.message}
54
+ `,$=(b,I)=>{let f=this.value.includes(b.value);return I&&f?S(b,"active-selected"):f?S(b,"selected"):S(b,I?"active":"inactive")};switch(this.state){case"submit":return`${y}${q.default.gray(G)} ${this.options.filter(({value:b})=>this.value.includes(b)).map((b)=>S(b,"submitted")).join(q.default.dim(", "))||q.default.dim("none")}`;case"cancel":{let b=this.options.filter(({value:I})=>this.value.includes(I)).map((I)=>S(I,"cancelled")).join(q.default.dim(", "));return`${y}${q.default.gray(G)} ${b.trim()?`${b}
55
+ ${q.default.gray(G)}`:""}`}case"error":{let b=this.error.split(`
56
+ `).map((I,f)=>f===0?`${q.default.yellow(h)} ${q.default.yellow(I)}`:` ${I}`).join(`
57
+ `);return`${y+q.default.yellow(G)} ${Nl({options:this.options,cursor:this.cursor,maxItems:l.maxItems,style:$}).join(`
58
+ ${q.default.yellow(G)} `)}
59
+ ${b}
60
+ `}default:return`${y}${q.default.cyan(G)} ${Nl({options:this.options,cursor:this.cursor,maxItems:l.maxItems,style:$}).join(`
61
+ ${q.default.cyan(G)} `)}
62
+ ${q.default.cyan(h)}
63
+ `}}}).prompt()};var s=(l="")=>{process.stdout.write(`${q.default.gray(h)} ${q.default.red(l)}
64
+
65
+ `)},W1=(l="")=>{process.stdout.write(`${q.default.gray(Zf)} ${l}
66
+ `)},i=(l="")=>{process.stdout.write(`${q.default.gray(G)}
67
+ ${q.default.gray(h)} ${l}
68
+
69
+ `)},L={message:(l="",{symbol:S=q.default.gray(G)}={})=>{let y=[`${q.default.gray(G)}`];if(l){let[$,...b]=l.split(`
70
+ `);y.push(`${S} ${$}`,...b.map((I)=>`${q.default.gray(G)} ${I}`))}process.stdout.write(`${y.join(`
71
+ `)}
72
+ `)},info:(l)=>{L.message(l,{symbol:q.default.blue(jf)})},success:(l)=>{L.message(l,{symbol:q.default.green(Mf)})},step:(l)=>{L.message(l,{symbol:q.default.green(El)})},warn:(l)=>{L.message(l,{symbol:q.default.yellow(Hf)})},warning:(l)=>{L.warn(l)},error:(l)=>{L.message(l,{symbol:q.default.red(Kf)})}},hy=`${q.default.gray(G)} `;var w1=({indicator:l="dots"}={})=>{let S=Kl?["◒","◐","◓","◑"]:["•","o","O","0"],y=Kl?80:120,$=process.env.CI==="true",b,I,f=!1,k="",T,R=performance.now(),B=(H)=>{let W=H>1?"Something went wrong":"Canceled";f&&Fl(W,H)},_=()=>B(2),Y=()=>B(1),Q=()=>{process.on("uncaughtExceptionMonitor",_),process.on("unhandledRejection",_),process.on("SIGINT",Y),process.on("SIGTERM",Y),process.on("exit",B)},m=()=>{process.removeListener("uncaughtExceptionMonitor",_),process.removeListener("unhandledRejection",_),process.removeListener("SIGINT",Y),process.removeListener("SIGTERM",Y),process.removeListener("exit",B)},Cl=()=>{if(T===void 0)return;$&&process.stdout.write(`
73
+ `);let H=T.split(`
74
+ `);process.stdout.write(fl.cursor.move(-999,H.length-1)),process.stdout.write(fl.erase.down(H.length))},bl=(H)=>H.replace(/\.+$/,""),Ol=(H)=>{let W=(performance.now()-H)/1000,N=Math.floor(W/60),g=Math.floor(W%60);return N>0?`[${N}m ${g}s]`:`[${g}s]`},D1=(H="")=>{f=!0,b=Z1(),k=bl(H),R=performance.now(),process.stdout.write(`${q.default.gray(G)}
75
+ `);let W=0,N=0;Q(),I=setInterval(()=>{if($&&k===T)return;Cl(),T=k;let g=q.default.magenta(S[W]);if($)process.stdout.write(`${g} ${k}...`);else if(l==="timer")process.stdout.write(`${g} ${k} ${Ol(R)}`);else{let u1=".".repeat(Math.floor(N)).slice(0,3);process.stdout.write(`${g} ${k}${u1}`)}W=W+1<S.length?W+1:0,N=N<S.length?N+0.125:0},y)},Fl=(H="",W=0)=>{f=!1,clearInterval(I),Cl();let N=W===0?q.default.green(El):W===1?q.default.red(j1):q.default.red(M1);k=bl(H??k),l==="timer"?process.stdout.write(`${N} ${k} ${Ol(R)}
76
+ `):process.stdout.write(`${N} ${k}
77
+ `),m(),b()};return{start:D1,stop:Fl,message:(H="")=>{k=bl(H??k)}}};var $l=c(a(),1);var X=c(a(),1);import{join as Wf}from"path";import{rmSync as wf}from"fs";import{tmpdir as Nf}from"os";import{spawn as Ef}from"child_process";function E1(l){let S=l.match(/github\.com\/([^/]+)\/([^/]+)\/tree\/([^/]+)\/(.+)/);if(S){let[,f,k,,T]=S;return{type:"github",url:`https://github.com/${f}/${k}.git`,subpath:T}}let y=l.match(/github\.com\/([^/]+)\/([^/]+)/);if(y){let[,f,k]=y,T=k.replace(/\.git$/,"");return{type:"github",url:`https://github.com/${f}/${T}.git`}}let $=l.match(/gitlab\.com\/([^/]+)\/([^/]+)\/-\/tree\/([^/]+)\/(.+)/);if($){let[,f,k,,T]=$;return{type:"gitlab",url:`https://gitlab.com/${f}/${k}.git`,subpath:T}}let b=l.match(/gitlab\.com\/([^/]+)\/([^/]+)/);if(b){let[,f,k]=b,T=k.replace(/\.git$/,"");return{type:"gitlab",url:`https://gitlab.com/${f}/${T}.git`}}let I=l.match(/^([^/]+)\/([^/]+)(?:\/(.+))?$/);if(I&&!l.includes(":")){let[,f,k,T]=I;return{type:"github",url:`https://github.com/${f}/${k}.git`,subpath:T}}return{type:"git",url:l}}async function V1(l){let S=Wf(Nf(),`give-skill-${Date.now()}`);return await new Promise((y,$)=>{let b=Ef("git",["clone","--depth","1",l,S],{stdio:"pipe"});b.on("close",(I)=>{if(I===0)y();else $(Error(`Failed to clone repository: ${l}`))}),b.on("error",$)}),S}async function x1(l){wf(l,{recursive:!0,force:!0})}import{readdir as C1,readFile as xf,stat as Af}from"fs/promises";import{join as A,basename as Cf,dirname as Of}from"path";import{homedir as Vf}from"os";import{join as P}from"path";import{existsSync as E}from"fs";var U=Vf(),j={opencode:{name:"opencode",displayName:"OpenCode",skillsDir:".opencode/skill",globalSkillsDir:P(U,".config/opencode/skill"),detectInstalled:async()=>{return E(P(U,".config/opencode"))}},"claude-code":{name:"claude-code",displayName:"Claude Code",skillsDir:".claude/skills",globalSkillsDir:P(U,".claude/skills"),detectInstalled:async()=>{return E(P(U,".claude"))}},codex:{name:"codex",displayName:"Codex",skillsDir:".codex/skills",globalSkillsDir:P(U,".codex/skills"),detectInstalled:async()=>{return E(P(U,".codex"))}},cursor:{name:"cursor",displayName:"Cursor",skillsDir:".cursor/skills",globalSkillsDir:P(U,".cursor/skills"),detectInstalled:async()=>{return E(P(U,".cursor"))}},amp:{name:"amp",displayName:"Amp",skillsDir:".agents/skills",globalSkillsDir:P(U,".config/agents/skills"),detectInstalled:async()=>{return E(P(U,".config/amp"))}},kilo:{name:"kilo",displayName:"Kilo Code",skillsDir:".kilocode/skills",globalSkillsDir:P(U,".kilocode/skills"),detectInstalled:async()=>{return E(P(U,".kilocode"))}},roo:{name:"roo",displayName:"Roo Code",skillsDir:".roo/skills",globalSkillsDir:P(U,".roo/skills"),detectInstalled:async()=>{return E(P(U,".roo"))}},goose:{name:"goose",displayName:"Goose",skillsDir:".goose/skills",globalSkillsDir:P(U,".config/goose/skills"),detectInstalled:async()=>{return E(P(U,".config/goose"))}},antigravity:{name:"antigravity",displayName:"Antigravity",skillsDir:".agent/skills",globalSkillsDir:P(U,".gemini/antigravity/skills"),detectInstalled:async()=>{return E(P(U,".gemini/antigravity"))}},copilot:{name:"copilot",displayName:"GitHub Copilot",skillsDir:".github/skills",globalSkillsDir:P(U,".copilot/skills"),detectInstalled:async()=>{return E(P(U,".copilot"))}}};async function A1(){let l=[];for(let[S,y]of Object.entries(j))if(await y.detectInstalled())l.push(S);return l}var Ff=["node_modules",".git","dist","build","__pycache__"],vf=["skills","skills/.curated","skills/.experimental","skills/.system"];function gf(l){let S=[l];for(let $ of vf)S.push(A(l,$));let y=new Set;for(let $ of Object.values(j))y.add(A(l,$.skillsDir));return S.push(...y),S}function cf(l){let S=l.match(/^---\n([\s\S]+?)\n---\n([\s\S]*)$/);if(!S)return{data:{},content:l};let y=S[1],$=S[2],b={};for(let I of y.split(`
78
+ `)){let f=I.indexOf(":");if(f===-1)continue;let k=I.slice(0,f).trim(),T=I.slice(f+1).trim();if(T.startsWith('"')&&T.endsWith('"')||T.startsWith("'")&&T.endsWith("'"))b[k]=T.slice(1,-1);else if(k==="metadata")try{let R={},B=T.replace(/^\{|\}$/g,"").trim();if(B){for(let _ of B.split(",")){let[Y,Q]=_.split("=").map((m)=>m.trim());if(Y&&Q)R[Y]=Q.replace(/^['"]|['"]$/g,"")}b[k]=JSON.stringify(R)}}catch{b[k]=T}else b[k]=T}return{data:b,content:$}}async function Al(l){try{let S=A(l,"SKILL.md");return(await Af(S)).isFile()}catch{return!1}}async function xl(l){try{let S=await xf(l,"utf-8"),{data:y}=cf(S);if(!y.name||!y.description)return null;return{name:y.name,description:y.description,path:Of(l),metadata:y.metadata?JSON.parse(y.metadata):void 0}}catch{return null}}async function O1(l,S=0,y=5){let $=[];if(S>y)return $;try{if(await Al(l))$.push(l);let b=await C1(l,{withFileTypes:!0});for(let I of b)if(I.isDirectory()&&!Ff.includes(I.name)){let f=await O1(A(l,I.name),S+1,y);$.push(...f)}}catch{}return $}async function F1(l,S){let y=[],$=new Set,b=S?A(l,S):l;if(await Al(b)){let f=await xl(A(b,"SKILL.md"));if(f)return y.push(f),y}let I=gf(b);for(let f of I)try{let k=await C1(f,{withFileTypes:!0});for(let T of k)if(T.isDirectory()){let R=A(f,T.name);if(await Al(R)){let B=await xl(A(R,"SKILL.md"));if(B&&!$.has(B.name))y.push(B),$.add(B.name)}}}catch{}if(y.length===0){let f=await O1(b);for(let k of f){let T=await xl(A(k,"SKILL.md"));if(T&&!$.has(T.name))y.push(T),$.add(T.name)}}return y}function C(l){return l.name||Cf(l.path)}import{mkdir as v1,cp as hf,access as sf,readdir as mf}from"fs/promises";import{join as v,basename as Df}from"path";async function g1(l,S,y={}){let $=j[S],b=l.name||Df(l.path),I=y.global?$.globalSkillsDir:v(y.cwd||process.cwd(),$.skillsDir),f=v(I,b);try{return await v1(f,{recursive:!0}),await c1(l.path,f),{success:!0,path:f}}catch(k){return{success:!1,path:f,error:k instanceof Error?k.message:"Unknown error"}}}var uf=new Set(["README.md","metadata.json"]),nf=(l)=>{if(uf.has(l))return!0;if(l.startsWith("_"))return!0;return!1};async function c1(l,S){await v1(S,{recursive:!0});let y=await mf(l,{withFileTypes:!0});for(let $ of y){if(nf($.name))continue;let b=v(l,$.name),I=v(S,$.name);if($.isDirectory())await c1(b,I);else await hf(b,I)}}async function h1(l,S,y={}){let $=j[S],b=y.global?$.globalSkillsDir:v(y.cwd||process.cwd(),$.skillsDir),I=v(b,l);try{return await sf(I),!0}catch{return!1}}function s1(l,S,y={}){let $=j[S],b=y.global?$.globalSkillsDir:v(y.cwd||process.cwd(),$.skillsDir);return v(b,l)}async function i1(l,S){let y={tempDir:null,spinner:w1()};try{y.spinner.start("Parsing source...");let $=E1(l);y.spinner.stop(`Source: ${X.default.cyan($.url)}${$.subpath?` (${$.subpath})`:""}`),y.spinner.start("Cloning repository..."),y.tempDir=await V1($.url),y.spinner.stop("Repository cloned"),y.spinner.start("Discovering skills...");let b=await F1(y.tempDir,$.subpath);if(b.length===0)return y.spinner.stop(X.default.red("No skills found")),i(X.default.red("No valid skills found. Skills require a SKILL.md with name and description.")),{success:!1,installed:0,failed:0,results:[]};if(y.spinner.stop(`Found ${X.default.green(b.length)} skill${b.length>1?"s":""}`),S.list){console.log(),L.step(X.default.bold("Available Skills"));for(let B of b)L.message(` ${X.default.cyan(C(B))}`),L.message(` ${X.default.dim(B.description)}`);return console.log(),i("Use --skill <name> to install specific skills"),{success:!0,installed:0,failed:0,results:[]}}let I=await tf(b,S);if(!I)return{success:!1,installed:0,failed:0,results:[]};let f=await df(S,y);if(!f)return{success:!1,installed:0,failed:0,results:[]};let k=await rf(S);if(k===null)return{success:!1,installed:0,failed:0,results:[]};if(!await pf(S,I,f,k))return{success:!1,installed:0,failed:0,results:[]};y.spinner.start("Installing skills...");let R=await af(I,f,k);return y.spinner.stop("Installation complete"),R}finally{if(y.tempDir)await x1(y.tempDir)}}async function tf(l,S){let y;if(S.skill&&S.skill.length>0){if(y=l.filter(($)=>S.skill.some((b)=>$.name.toLowerCase()===b.toLowerCase()||C($).toLowerCase()===b.toLowerCase())),y.length===0){L.error(`No matching skills found for: ${S.skill.join(", ")}`),L.info("Available skills:");for(let $ of l)L.message(` - ${C($)}`);return null}L.info(`Selected ${y.length} skill${y.length!==1?"s":""}: ${y.map(($)=>X.default.cyan(C($))).join(", ")}`)}else if(l.length===1){y=l;let $=l[0];L.info(`Skill: ${X.default.cyan(C($))}`),L.message(X.default.dim($.description))}else if(S.yes)y=l,L.info(`Installing all ${l.length} skills`);else{let $=l.map((I)=>({value:I,label:C(I),hint:I.description.length>60?I.description.slice(0,57)+"...":I.description})),b=await yl({message:"Select skills to install",options:$,required:!0});if(F(b))return s("Installation cancelled"),null;y=b}return y}async function df(l,S){if(l.agent&&l.agent.length>0){let $=Object.keys(j),b=l.agent.filter((I)=>!$.includes(I));if(b.length>0)return L.error(`Invalid agents: ${b.join(", ")}`),L.info(`Valid agents: ${$.join(", ")}`),null;return l.agent}S.spinner.start("Detecting installed agents...");let y=await A1();if(S.spinner.stop(`Detected ${y.length} agent${y.length!==1?"s":""}`),y.length===0)if(l.yes){let $=Object.keys(j);return L.info("Installing to all agents (none detected)"),$}else{L.warn("No coding agents detected. You can still install skills.");let $=Object.entries(j).map(([I,f])=>({value:I,label:f.displayName})),b=await yl({message:"Select agents to install skills to",options:$,required:!0});if(F(b))return s("Installation cancelled"),null;return b}else if(y.length===1||l.yes){if(y.length===1){let $=y[0];L.info(`Installing to: ${X.default.cyan(j[$].displayName)}`)}else L.info(`Installing to: ${y.map(($)=>X.default.cyan(j[$].displayName)).join(", ")}`);return y}else{let $=y.map((I)=>({value:I,label:j[I].displayName,hint:j[I].skillsDir})),b=await yl({message:"Select agents to install skills to",options:$,required:!0,initialValues:y});if(F(b))return s("Installation cancelled"),null;return b}}async function rf(l){let S=l.global??!1;if(l.global===void 0&&!l.yes){let y=await K1({message:"Installation scope",options:[{value:!1,label:"Project",hint:"Install in current directory (committed with your project)"},{value:!0,label:"Global",hint:"Install in home directory (available across all projects)"}]});if(F(y))return s("Installation cancelled"),null;S=y}return S}async function pf(l,S,y,$){console.log(),L.step(X.default.bold("Installation Summary"));for(let b of S){L.message(` ${X.default.cyan(C(b))}`);for(let I of y){let f=s1(b.name,I,{global:$}),T=await h1(b.name,I,{global:$})?X.default.yellow(" (will overwrite)"):"";L.message(` ${X.default.dim("→")} ${j[I].displayName}: ${X.default.dim(f)}${T}`)}}if(console.log(),!l.yes){let b=await H1({message:"Proceed with installation?"});if(F(b)||!b)return s("Installation cancelled"),!1}return!0}async function af(l,S,y){let $=l.flatMap((T)=>S.map((R)=>g1(T,R,{global:y}))),I=(await Promise.all($)).map((T,R)=>{let B=Math.floor(R/S.length),_=R%S.length,Y=l[B],Q=S[_];return{skill:C(Y),agent:j[Q].displayName,...T}});console.log();let f=I.filter((T)=>T.success),k=I.filter((T)=>!T.success);if(f.length>0){L.success(X.default.green(`Successfully installed ${f.length} skill${f.length!==1?"s":""}`));for(let T of f)L.message(` ${X.default.green("✓")} ${T.skill} → ${T.agent}`),L.message(` ${X.default.dim(T.path)}`)}if(k.length>0){console.log(),L.error(X.default.red(`Failed to install ${k.length} skill${k.length!==1?"s":""}`));for(let T of k)L.message(` ${X.default.red("✗")} ${T.skill} → ${T.agent}`),L.message(` ${X.default.dim(T.error)}`)}return console.log(),i(X.default.green("Done!")),{success:k.length===0,installed:f.length,failed:k.length,results:I}}var m1={name:"give-skill",version:"1.0.0",description:"Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",type:"module",bin:{"give-skill":"./dist/index.js"},files:["dist","README.md"],scripts:{build:"bun build src/index.ts --outdir dist --target node --minify",dev:"bun src/index.ts",prepublishOnly:"bun run build"},keywords:["cli","skills","claude","cursor","copilot","github-copilot","ai-agents","agent-skills","coding-assistant"],repository:{type:"git",url:"git+https://github.com/compilecafe/give-skill.git"},homepage:"https://github.com/compilecafe/give-skill#readme",bugs:{url:"https://github.com/compilecafe/give-skill/issues"},author:"Compile Café",license:"MIT",dependencies:{"@clack/prompts":"^0.11.0",commander:"^14.0.2",picocolors:"^1.1.1"},devDependencies:{"@types/bun":"latest"},module:"src/index.ts"};var ef=m1.version;Jl.name("give-skill").description("Install skills onto coding agents (OpenCode, Claude Code, Codex, Cursor, Antigravity, GitHub Copilot)").version(ef).argument("<source>","Git repo URL, GitHub shorthand (owner/repo), or direct path to skill").option("-g, --global","Install skill globally (user-level) instead of project-level").option("-a, --agent <agents...>","Specify agents to install to (opencode, claude-code, codex, cursor, copilot)").option("-s, --skill <skills...>","Specify skill names to install (skip selection prompt)").option("-l, --list","List available skills in the repository without installing").option("-y, --yes","Skip confirmation prompts").action(async(l,S)=>{await ly(l,S)});Jl.parse();async function ly(l,S){console.log(),W1($l.default.bgCyan($l.default.black(" give-skill ")));try{let y=await i1(l,S);if(!y.success&&y.installed===0&&y.failed===0)process.exit(1);if(y.failed>0)process.exit(1)}catch(y){L.error(y instanceof Error?y.message:"Unknown error occurred"),i($l.default.red("Installation failed")),process.exit(1)}}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "give-skill",
3
+ "version": "1.0.0",
4
+ "description": "Universal skill installer for AI coding agents - Claude, Cursor, Copilot, and more",
5
+ "type": "module",
6
+ "bin": {
7
+ "give-skill": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist",
11
+ "README.md"
12
+ ],
13
+ "scripts": {
14
+ "build": "bun build src/index.ts --outdir dist --target node --minify",
15
+ "dev": "bun src/index.ts",
16
+ "prepublishOnly": "bun run build"
17
+ },
18
+ "keywords": [
19
+ "cli",
20
+ "skills",
21
+ "claude",
22
+ "cursor",
23
+ "copilot",
24
+ "github-copilot",
25
+ "ai-agents",
26
+ "agent-skills",
27
+ "coding-assistant"
28
+ ],
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/compilecafe/give-skill.git"
32
+ },
33
+ "homepage": "https://github.com/compilecafe/give-skill#readme",
34
+ "bugs": {
35
+ "url": "https://github.com/compilecafe/give-skill/issues"
36
+ },
37
+ "author": "Compile Café",
38
+ "license": "MIT",
39
+ "dependencies": {
40
+ "@clack/prompts": "^0.11.0",
41
+ "commander": "^14.0.2",
42
+ "picocolors": "^1.1.1"
43
+ },
44
+ "devDependencies": {
45
+ "@types/bun": "latest"
46
+ },
47
+ "module": "src/index.ts"
48
+ }