agent-skills-cli 1.0.8 → 1.1.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 (178) hide show
  1. package/README.md +44 -19
  2. package/dist/adapters/adapter.d.ts +51 -0
  3. package/dist/adapters/adapter.d.ts.map +1 -0
  4. package/dist/adapters/adapter.js +51 -0
  5. package/dist/adapters/adapter.js.map +1 -0
  6. package/dist/adapters/claude.d.ts +16 -0
  7. package/dist/adapters/claude.d.ts.map +1 -0
  8. package/dist/adapters/claude.js +30 -0
  9. package/dist/adapters/claude.js.map +1 -0
  10. package/dist/adapters/copilot.d.ts +16 -0
  11. package/dist/adapters/copilot.d.ts.map +1 -0
  12. package/dist/adapters/copilot.js +32 -0
  13. package/dist/adapters/copilot.js.map +1 -0
  14. package/dist/adapters/cursor.d.ts +17 -0
  15. package/dist/adapters/cursor.d.ts.map +1 -0
  16. package/dist/adapters/cursor.js +34 -0
  17. package/dist/adapters/cursor.js.map +1 -0
  18. package/dist/adapters/index.d.ts +11 -0
  19. package/dist/adapters/index.d.ts.map +1 -0
  20. package/dist/adapters/index.js +10 -0
  21. package/dist/adapters/index.js.map +1 -0
  22. package/dist/adapters/universal.d.ts +12 -0
  23. package/dist/adapters/universal.d.ts.map +1 -0
  24. package/dist/adapters/universal.js +16 -0
  25. package/dist/adapters/universal.js.map +1 -0
  26. package/dist/cli/agents.d.ts +21 -0
  27. package/dist/cli/agents.d.ts.map +1 -0
  28. package/dist/cli/agents.js +317 -0
  29. package/dist/cli/agents.js.map +1 -0
  30. package/dist/cli/commands/audit.d.ts +11 -0
  31. package/dist/cli/commands/audit.d.ts.map +1 -0
  32. package/dist/cli/commands/audit.js +168 -0
  33. package/dist/cli/commands/audit.js.map +1 -0
  34. package/dist/cli/commands/blueprint.d.ts +11 -0
  35. package/dist/cli/commands/blueprint.d.ts.map +1 -0
  36. package/dist/cli/commands/blueprint.js +210 -0
  37. package/dist/cli/commands/blueprint.js.map +1 -0
  38. package/dist/cli/commands/bootstrap.d.ts +11 -0
  39. package/dist/cli/commands/bootstrap.d.ts.map +1 -0
  40. package/dist/cli/commands/bootstrap.js +267 -0
  41. package/dist/cli/commands/bootstrap.js.map +1 -0
  42. package/dist/cli/commands/capture.d.ts +11 -0
  43. package/dist/cli/commands/capture.d.ts.map +1 -0
  44. package/dist/cli/commands/capture.js +109 -0
  45. package/dist/cli/commands/capture.js.map +1 -0
  46. package/dist/cli/commands/ci.d.ts +11 -0
  47. package/dist/cli/commands/ci.d.ts.map +1 -0
  48. package/dist/cli/commands/ci.js +144 -0
  49. package/dist/cli/commands/ci.js.map +1 -0
  50. package/dist/cli/commands/collab.d.ts +11 -0
  51. package/dist/cli/commands/collab.d.ts.map +1 -0
  52. package/dist/cli/commands/collab.js +196 -0
  53. package/dist/cli/commands/collab.js.map +1 -0
  54. package/dist/cli/commands/convert.d.ts +11 -0
  55. package/dist/cli/commands/convert.d.ts.map +1 -0
  56. package/dist/cli/commands/convert.js +170 -0
  57. package/dist/cli/commands/convert.js.map +1 -0
  58. package/dist/cli/commands/craft.d.ts +18 -0
  59. package/dist/cli/commands/craft.d.ts.map +1 -0
  60. package/dist/cli/commands/craft.js +205 -0
  61. package/dist/cli/commands/craft.js.map +1 -0
  62. package/dist/cli/commands/export.d.ts +9 -0
  63. package/dist/cli/commands/export.d.ts.map +1 -0
  64. package/dist/cli/commands/export.js +111 -0
  65. package/dist/cli/commands/export.js.map +1 -0
  66. package/dist/cli/commands/forge.d.ts +11 -0
  67. package/dist/cli/commands/forge.d.ts.map +1 -0
  68. package/dist/cli/commands/forge.js +152 -0
  69. package/dist/cli/commands/forge.js.map +1 -0
  70. package/dist/cli/commands/grid.d.ts +11 -0
  71. package/dist/cli/commands/grid.d.ts.map +1 -0
  72. package/dist/cli/commands/grid.js +217 -0
  73. package/dist/cli/commands/grid.js.map +1 -0
  74. package/dist/cli/commands/insight.d.ts +7 -0
  75. package/dist/cli/commands/insight.d.ts.map +1 -0
  76. package/dist/cli/commands/insight.js +71 -0
  77. package/dist/cli/commands/insight.js.map +1 -0
  78. package/dist/cli/commands/install.d.ts +6 -0
  79. package/dist/cli/commands/install.d.ts.map +1 -0
  80. package/dist/cli/commands/install.js +359 -0
  81. package/dist/cli/commands/install.js.map +1 -0
  82. package/dist/cli/commands/interactive.d.ts +7 -0
  83. package/dist/cli/commands/interactive.d.ts.map +1 -0
  84. package/dist/cli/commands/interactive.js +535 -0
  85. package/dist/cli/commands/interactive.js.map +1 -0
  86. package/dist/cli/commands/list.d.ts +6 -0
  87. package/dist/cli/commands/list.d.ts.map +1 -0
  88. package/dist/cli/commands/list.js +77 -0
  89. package/dist/cli/commands/list.js.map +1 -0
  90. package/dist/cli/commands/lockspec.d.ts +11 -0
  91. package/dist/cli/commands/lockspec.d.ts.map +1 -0
  92. package/dist/cli/commands/lockspec.js +179 -0
  93. package/dist/cli/commands/lockspec.js.map +1 -0
  94. package/dist/cli/commands/marketplace.d.ts +7 -0
  95. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  96. package/dist/cli/commands/marketplace.js +417 -0
  97. package/dist/cli/commands/marketplace.js.map +1 -0
  98. package/dist/cli/commands/method.d.ts +7 -0
  99. package/dist/cli/commands/method.d.ts.map +1 -0
  100. package/dist/cli/commands/method.js +140 -0
  101. package/dist/cli/commands/method.js.map +1 -0
  102. package/dist/cli/commands/mine.d.ts +11 -0
  103. package/dist/cli/commands/mine.d.ts.map +1 -0
  104. package/dist/cli/commands/mine.js +254 -0
  105. package/dist/cli/commands/mine.js.map +1 -0
  106. package/dist/cli/commands/recall.d.ts +11 -0
  107. package/dist/cli/commands/recall.d.ts.map +1 -0
  108. package/dist/cli/commands/recall.js +201 -0
  109. package/dist/cli/commands/recall.js.map +1 -0
  110. package/dist/cli/commands/rule.d.ts +11 -0
  111. package/dist/cli/commands/rule.d.ts.map +1 -0
  112. package/dist/cli/commands/rule.js +230 -0
  113. package/dist/cli/commands/rule.js.map +1 -0
  114. package/dist/cli/commands/score.d.ts +10 -0
  115. package/dist/cli/commands/score.d.ts.map +1 -0
  116. package/dist/cli/commands/score.js +91 -0
  117. package/dist/cli/commands/score.js.map +1 -0
  118. package/dist/cli/commands/search.d.ts +6 -0
  119. package/dist/cli/commands/search.d.ts.map +1 -0
  120. package/dist/cli/commands/search.js +173 -0
  121. package/dist/cli/commands/search.js.map +1 -0
  122. package/dist/cli/commands/show.d.ts +6 -0
  123. package/dist/cli/commands/show.d.ts.map +1 -0
  124. package/dist/cli/commands/show.js +158 -0
  125. package/dist/cli/commands/show.js.map +1 -0
  126. package/dist/cli/commands/submit-repo.d.ts +11 -0
  127. package/dist/cli/commands/submit-repo.d.ts.map +1 -0
  128. package/dist/cli/commands/submit-repo.js +133 -0
  129. package/dist/cli/commands/submit-repo.js.map +1 -0
  130. package/dist/cli/commands/submit.d.ts +15 -0
  131. package/dist/cli/commands/submit.d.ts.map +1 -0
  132. package/dist/cli/commands/submit.js +161 -0
  133. package/dist/cli/commands/submit.js.map +1 -0
  134. package/dist/cli/commands/suggest.d.ts +11 -0
  135. package/dist/cli/commands/suggest.d.ts.map +1 -0
  136. package/dist/cli/commands/suggest.js +164 -0
  137. package/dist/cli/commands/suggest.js.map +1 -0
  138. package/dist/cli/commands/track.d.ts +11 -0
  139. package/dist/cli/commands/track.d.ts.map +1 -0
  140. package/dist/cli/commands/track.js +199 -0
  141. package/dist/cli/commands/track.js.map +1 -0
  142. package/dist/cli/commands/trigger.d.ts +11 -0
  143. package/dist/cli/commands/trigger.d.ts.map +1 -0
  144. package/dist/cli/commands/trigger.js +157 -0
  145. package/dist/cli/commands/trigger.js.map +1 -0
  146. package/dist/cli/commands/utils-commands.d.ts +9 -0
  147. package/dist/cli/commands/utils-commands.d.ts.map +1 -0
  148. package/dist/cli/commands/utils-commands.js +389 -0
  149. package/dist/cli/commands/utils-commands.js.map +1 -0
  150. package/dist/cli/commands/validate.d.ts +6 -0
  151. package/dist/cli/commands/validate.d.ts.map +1 -0
  152. package/dist/cli/commands/validate.js +40 -0
  153. package/dist/cli/commands/validate.js.map +1 -0
  154. package/dist/cli/index.d.ts +3 -0
  155. package/dist/cli/index.d.ts.map +1 -1
  156. package/dist/cli/index.js +88 -2743
  157. package/dist/cli/index.js.map +1 -1
  158. package/dist/core/audit.d.ts +24 -0
  159. package/dist/core/audit.d.ts.map +1 -0
  160. package/dist/core/audit.js +195 -0
  161. package/dist/core/audit.js.map +1 -0
  162. package/dist/core/index.d.ts +8 -0
  163. package/dist/core/index.d.ts.map +1 -1
  164. package/dist/core/index.js +8 -0
  165. package/dist/core/index.js.map +1 -1
  166. package/dist/core/quality.d.ts +48 -0
  167. package/dist/core/quality.d.ts.map +1 -0
  168. package/dist/core/quality.js +241 -0
  169. package/dist/core/quality.js.map +1 -0
  170. package/dist/core/scanner-rules.d.ts +58 -0
  171. package/dist/core/scanner-rules.d.ts.map +1 -0
  172. package/dist/core/scanner-rules.js +335 -0
  173. package/dist/core/scanner-rules.js.map +1 -0
  174. package/dist/core/suggest.d.ts +51 -0
  175. package/dist/core/suggest.d.ts.map +1 -0
  176. package/dist/core/suggest.js +241 -0
  177. package/dist/core/suggest.js.map +1 -0
  178. package/package.json +1 -1
@@ -0,0 +1,359 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import inquirer from 'inquirer';
4
+ import * as p from '@clack/prompts';
5
+ import { AGENTS } from '../agents.js';
6
+ import { addSkillToLock, createLockEntry, installFromGitHubUrl, getSkillByScoped, fetchSkillsForCLI, } from '../../core/index.js';
7
+ import { trackCommand } from '../../core/telemetry.js';
8
+ /** Install a skill from its database record into a target directory */
9
+ async function installSkillFromDatabase(skill, targetDir) {
10
+ const githubUrl = skill.github_url || skill.githubUrl;
11
+ if (githubUrl) {
12
+ const result = await installFromGitHubUrl(githubUrl, targetDir);
13
+ return result.path;
14
+ }
15
+ throw new Error(`No GitHub URL found for skill ${skill.name}`);
16
+ }
17
+ export function registerInstallCommand(program) {
18
+ program
19
+ .command('install [source]')
20
+ .alias('i')
21
+ .alias('add')
22
+ .description('Install skill(s) from marketplace, GitHub URL, or local directory')
23
+ .option('-g, --global', 'Install globally (user-wide)')
24
+ .option('-s, --skill <skills...>', 'Specify skill names to install')
25
+ .option('-a, --agent <agents...>', 'Specify agents to install to')
26
+ .option('--all', 'Install to all agents')
27
+ .option('-y, --yes', 'Skip confirmation prompts')
28
+ .action(async (source, options) => {
29
+ try {
30
+ const { mkdir, cp, rm, readdir, readFile } = await import('fs/promises');
31
+ const { existsSync, statSync } = await import('fs');
32
+ const { join, basename, dirname } = await import('path');
33
+ const { tmpdir } = await import('os');
34
+ const { exec } = await import('child_process');
35
+ const { promisify } = await import('util');
36
+ const execAsync = promisify(exec);
37
+ const isGlobal = options.global || false;
38
+ // Determine agents
39
+ let agents = options.agent || [];
40
+ // --all flag: install to all agents
41
+ if (options.all) {
42
+ agents = Object.keys(AGENTS);
43
+ }
44
+ if (agents.length === 0) {
45
+ const agentChoices = Object.entries(AGENTS).map(([key, config]) => ({
46
+ label: config.displayName,
47
+ value: key,
48
+ hint: config.projectDir,
49
+ }));
50
+ const selected = await p.multiselect({
51
+ message: 'Install to which agents?',
52
+ options: agentChoices,
53
+ initialValues: ['cursor', 'claude'],
54
+ required: true,
55
+ });
56
+ if (p.isCancel(selected)) {
57
+ p.cancel('Installation cancelled');
58
+ return;
59
+ }
60
+ agents = selected;
61
+ }
62
+ // If no source, try to detect or prompt
63
+ if (!source) {
64
+ // Check if there's a skills.lock for reinstalling
65
+ const { readLock } = await import('../../core/index.js');
66
+ const lock = await readLock();
67
+ const lockSkills = Object.values(lock.skills);
68
+ if (lockSkills.length > 0 && !options.skill) {
69
+ const { reinstall } = await inquirer.prompt([{
70
+ type: 'confirm',
71
+ name: 'reinstall',
72
+ message: `Found ${lockSkills.length} skills in lock file. Reinstall all?`,
73
+ default: true
74
+ }]);
75
+ if (reinstall) {
76
+ source = 'lock';
77
+ }
78
+ }
79
+ if (!source && !options.skill) {
80
+ console.log(chalk.yellow('\nUsage:'));
81
+ console.log(chalk.gray(' skills install <owner/repo> Install from GitHub'));
82
+ console.log(chalk.gray(' skills install <url> Install from URL'));
83
+ console.log(chalk.gray(' skills install . Install from current directory'));
84
+ console.log(chalk.gray(' skills install -s <name> Install from marketplace by name'));
85
+ console.log(chalk.gray(' skills install Reinstall from lock file'));
86
+ return;
87
+ }
88
+ }
89
+ // Install from lock file
90
+ if (source === 'lock') {
91
+ const { readLock } = await import('../../core/index.js');
92
+ const lock = await readLock();
93
+ const lockSkills = Object.values(lock.skills);
94
+ console.log(chalk.bold(`\nšŸ“¦ Reinstalling ${lockSkills.length} skills from lock file...\n`));
95
+ let successCount = 0;
96
+ for (const lockSkill of lockSkills) {
97
+ const spinner = ora(`Installing ${lockSkill.scopedName}...`).start();
98
+ try {
99
+ for (const agent of lockSkill.agents) {
100
+ const config = AGENTS[agent];
101
+ if (!config)
102
+ continue;
103
+ const targetDir = lockSkill.isGlobal ? config.globalDir : config.projectDir;
104
+ if (lockSkill.sourceType === 'github' || lockSkill.sourceType === 'gitlab') {
105
+ const tempDir = join(tmpdir(), `skill-install-${Date.now()}`);
106
+ await mkdir(tempDir, { recursive: true });
107
+ await execAsync(`git clone --depth 1 ${lockSkill.source} .`, { cwd: tempDir });
108
+ const skillDir = join(targetDir, lockSkill.name);
109
+ await mkdir(skillDir, { recursive: true });
110
+ await cp(tempDir, skillDir, { recursive: true });
111
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
112
+ }
113
+ }
114
+ spinner.succeed(`${lockSkill.scopedName}`);
115
+ successCount++;
116
+ }
117
+ catch (err) {
118
+ spinner.fail(`${lockSkill.scopedName}: ${err.message}`);
119
+ }
120
+ }
121
+ console.log(chalk.bold.green(`\n✨ Reinstalled ${successCount}/${lockSkills.length} skills\n`));
122
+ return;
123
+ }
124
+ // Install by marketplace name(s) using -s flag
125
+ if (options.skill && options.skill.length > 0) {
126
+ const skillNames = options.skill;
127
+ for (const skillName of skillNames) {
128
+ const spinner = ora(`Searching for ${skillName}...`).start();
129
+ try {
130
+ // Try exact match first
131
+ let skill = await getSkillByScoped(skillName);
132
+ if (!skill) {
133
+ // Search by name
134
+ const result = await fetchSkillsForCLI({ search: skillName, limit: 1, sortBy: 'stars' });
135
+ if (result.skills.length > 0) {
136
+ skill = result.skills[0];
137
+ }
138
+ }
139
+ if (!skill) {
140
+ spinner.fail(`Skill not found: ${skillName}`);
141
+ continue;
142
+ }
143
+ spinner.text = `Installing ${skill.scoped_name || skill.name}...`;
144
+ for (const agent of agents) {
145
+ const config = AGENTS[agent];
146
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
147
+ await installSkillFromDatabase(skill, targetDir);
148
+ }
149
+ // Add to lock
150
+ const lockEntry = createLockEntry({
151
+ name: skill.name,
152
+ scopedName: skill.scoped_name || skill.name,
153
+ source: skill.github_url || `database:${skill.name}`,
154
+ sourceType: skill.github_url ? 'github' : 'database',
155
+ version: skill.version,
156
+ agents,
157
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
158
+ isGlobal,
159
+ });
160
+ await addSkillToLock(lockEntry);
161
+ spinner.succeed(`Installed ${skill.scoped_name || skill.name}`);
162
+ }
163
+ catch (err) {
164
+ spinner.fail(`${skillName}: ${err.message}`);
165
+ }
166
+ }
167
+ console.log('');
168
+ return;
169
+ }
170
+ // Install from local directory
171
+ if (source === '.' || existsSync(source)) {
172
+ const sourcePath = source === '.' ? process.cwd() : source;
173
+ const stat = statSync(sourcePath);
174
+ if (!stat.isDirectory()) {
175
+ console.error(chalk.red('Source must be a directory'));
176
+ return;
177
+ }
178
+ const skillName = basename(sourcePath);
179
+ console.log(chalk.bold(`\nšŸ“¦ Installing from local directory: ${skillName}\n`));
180
+ for (const agent of agents) {
181
+ const config = AGENTS[agent];
182
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
183
+ const skillDir = join(targetDir, skillName);
184
+ const spinner = ora(`Installing to ${config.displayName}...`).start();
185
+ await mkdir(skillDir, { recursive: true });
186
+ await cp(sourcePath, skillDir, { recursive: true });
187
+ spinner.succeed(`${config.displayName}: ${skillDir}`);
188
+ }
189
+ // Add to lock
190
+ const lockEntry = createLockEntry({
191
+ name: skillName,
192
+ scopedName: skillName,
193
+ source: sourcePath,
194
+ sourceType: 'local',
195
+ agents,
196
+ canonicalPath: sourcePath,
197
+ isGlobal,
198
+ });
199
+ await addSkillToLock(lockEntry);
200
+ console.log(chalk.bold.green(`\n✨ Installed ${skillName}\n`));
201
+ return;
202
+ }
203
+ // Install from GitHub URL or owner/repo
204
+ let githubUrl = source;
205
+ // Handle @scoped/name format — try marketplace first
206
+ if (source.startsWith('@')) {
207
+ const spinner = ora(`Looking up "${source}" in marketplace...`).start();
208
+ try {
209
+ const skill = await getSkillByScoped(source);
210
+ if (skill) {
211
+ spinner.text = `Installing ${skill.scoped_name || skill.name}...`;
212
+ for (const agent of agents) {
213
+ const config = AGENTS[agent];
214
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
215
+ await installSkillFromDatabase(skill, targetDir);
216
+ }
217
+ const lockEntry = createLockEntry({
218
+ name: skill.name,
219
+ scopedName: skill.scoped_name || skill.name,
220
+ source: skill.github_url || `database:${skill.name}`,
221
+ sourceType: skill.github_url ? 'github' : 'database',
222
+ version: skill.version,
223
+ agents,
224
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
225
+ isGlobal,
226
+ });
227
+ await addSkillToLock(lockEntry);
228
+ spinner.succeed(`Installed ${skill.scoped_name || skill.name}`);
229
+ console.log('');
230
+ return;
231
+ }
232
+ else {
233
+ spinner.fail(`Could not find "${source}" in marketplace`);
234
+ return;
235
+ }
236
+ }
237
+ catch (err) {
238
+ spinner.fail(`Error: ${err.message}`);
239
+ return;
240
+ }
241
+ }
242
+ // Convert owner/repo to full URL
243
+ if (source.match(/^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/)) {
244
+ githubUrl = `https://github.com/${source}`;
245
+ }
246
+ // Validate it's a git URL
247
+ if (!githubUrl.includes('github.com') && !githubUrl.includes('gitlab.com')) {
248
+ // Maybe it's a marketplace ID?
249
+ const spinner = ora(`Looking up "${source}" in marketplace...`).start();
250
+ try {
251
+ let skill = await getSkillByScoped(source);
252
+ if (!skill) {
253
+ const result = await fetchSkillsForCLI({ search: source, limit: 1, sortBy: 'stars' });
254
+ if (result.skills.length > 0) {
255
+ skill = result.skills[0];
256
+ }
257
+ }
258
+ if (skill) {
259
+ spinner.text = `Installing ${skill.scoped_name || skill.name}...`;
260
+ for (const agent of agents) {
261
+ const config = AGENTS[agent];
262
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
263
+ await installSkillFromDatabase(skill, targetDir);
264
+ }
265
+ const lockEntry = createLockEntry({
266
+ name: skill.name,
267
+ scopedName: skill.scoped_name || skill.name,
268
+ source: skill.github_url || `database:${skill.name}`,
269
+ sourceType: skill.github_url ? 'github' : 'database',
270
+ version: skill.version,
271
+ agents,
272
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
273
+ isGlobal,
274
+ });
275
+ await addSkillToLock(lockEntry);
276
+ spinner.succeed(`Installed ${skill.scoped_name || skill.name}`);
277
+ console.log('');
278
+ return;
279
+ }
280
+ else {
281
+ spinner.fail(`Could not find "${source}" in marketplace or as a URL`);
282
+ return;
283
+ }
284
+ }
285
+ catch (err) {
286
+ spinner.fail(`Error: ${err.message}`);
287
+ return;
288
+ }
289
+ }
290
+ // Git clone install
291
+ console.log(chalk.bold(`\nšŸ“¦ Installing from ${githubUrl}\n`));
292
+ const tempDir = join(tmpdir(), `skill-install-${Date.now()}`);
293
+ await mkdir(tempDir, { recursive: true });
294
+ const cloneSpinner = ora('Cloning repository...').start();
295
+ await execAsync(`git clone --depth 1 ${githubUrl} .`, { cwd: tempDir });
296
+ cloneSpinner.succeed('Cloned');
297
+ // Detect skills in repo
298
+ const entries = await readdir(tempDir, { withFileTypes: true });
299
+ let skillDirs = [];
300
+ // Check if root is a skill
301
+ if (existsSync(join(tempDir, 'SKILL.md'))) {
302
+ skillDirs.push(tempDir);
303
+ }
304
+ // Check subdirectories
305
+ for (const entry of entries) {
306
+ if (entry.isDirectory() && !entry.name.startsWith('.')) {
307
+ if (existsSync(join(tempDir, entry.name, 'SKILL.md'))) {
308
+ skillDirs.push(join(tempDir, entry.name));
309
+ }
310
+ }
311
+ }
312
+ if (skillDirs.length === 0) {
313
+ // Treat entire repo as a skill
314
+ skillDirs.push(tempDir);
315
+ }
316
+ const repoName = githubUrl.split('/').pop()?.replace('.git', '') || 'skill';
317
+ for (const skillSourceDir of skillDirs) {
318
+ const skillName = skillSourceDir === tempDir ? repoName : basename(skillSourceDir);
319
+ for (const agent of agents) {
320
+ const config = AGENTS[agent];
321
+ const targetDir = isGlobal ? config.globalDir : config.projectDir;
322
+ const skillDir = join(targetDir, skillName);
323
+ const spinner = ora(`Installing ${skillName} to ${config.displayName}...`).start();
324
+ await mkdir(skillDir, { recursive: true });
325
+ await cp(skillSourceDir, skillDir, { recursive: true });
326
+ spinner.succeed(`${config.displayName}: ${skillDir}`);
327
+ }
328
+ // Get version
329
+ let version;
330
+ try {
331
+ const { stdout } = await execAsync('git rev-parse HEAD', { cwd: tempDir });
332
+ version = stdout.trim();
333
+ }
334
+ catch { }
335
+ // Add to lock
336
+ const lockEntry = createLockEntry({
337
+ name: skillName,
338
+ scopedName: `${githubUrl.split('/').slice(-2).join('/')}/${skillName}`,
339
+ source: githubUrl,
340
+ sourceType: githubUrl.includes('gitlab') ? 'gitlab' : 'github',
341
+ version,
342
+ agents,
343
+ canonicalPath: isGlobal ? AGENTS[agents[0]].globalDir : AGENTS[agents[0]].projectDir,
344
+ isGlobal,
345
+ });
346
+ await addSkillToLock(lockEntry);
347
+ }
348
+ // Cleanup
349
+ await rm(tempDir, { recursive: true, force: true }).catch(() => { });
350
+ console.log(chalk.bold.green(`\n✨ Installed ${skillDirs.length} skill(s)\n`));
351
+ trackCommand('install', `source=${githubUrl} count=${skillDirs.length}`);
352
+ }
353
+ catch (error) {
354
+ console.error(chalk.red('Error installing skill:'), error.message || error);
355
+ process.exit(1);
356
+ }
357
+ });
358
+ }
359
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,MAAM,EAAe,MAAM,cAAc,CAAC;AACnD,OAAO,EACH,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,uEAAuE;AACvE,KAAK,UAAU,wBAAwB,CAAC,KAAU,EAAE,SAAiB;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC;IACtD,IAAI,SAAS,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,CAAC;IACvB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACnD,OAAO;SACF,OAAO,CAAC,kBAAkB,CAAC;SAC3B,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,KAAK,CAAC;SACZ,WAAW,CAAC,mEAAmE,CAAC;SAChF,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;SACnE,MAAM,CAAC,yBAAyB,EAAE,8BAA8B,CAAC;SACjE,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC;SACxC,MAAM,CAAC,WAAW,EAAE,2BAA2B,CAAC;SAChD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QAC9B,IAAI,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;YACzE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YACzD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAElC,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;YAEzC,mBAAmB;YACnB,IAAI,MAAM,GAAa,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAE3C,oCAAoC;YACpC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC;YAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAwB,EAAE,EAAE,CAAC,CAAC;oBACvF,KAAK,EAAE,MAAM,CAAC,WAAW;oBACzB,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,MAAM,CAAC,UAAU;iBAC1B,CAAC,CAAC,CAAC;gBAEJ,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC;oBACjC,OAAO,EAAE,0BAA0B;oBACnC,OAAO,EAAE,YAAY;oBACrB,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBACnC,QAAQ,EAAE,IAAI;iBACjB,CAAC,CAAC;gBAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;oBACnC,OAAO;gBACX,CAAC;gBACD,MAAM,GAAG,QAAoB,CAAC;YAClC,CAAC;YAED,wCAAwC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,kDAAkD;gBAClD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE9C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;4BACzC,IAAI,EAAE,SAAS;4BACf,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,SAAS,UAAU,CAAC,MAAM,sCAAsC;4BACzE,OAAO,EAAE,IAAI;yBAChB,CAAC,CAAC,CAAC;oBAEJ,IAAI,SAAS,EAAE,CAAC;wBACZ,MAAM,GAAG,MAAM,CAAC;oBACpB,CAAC;gBACL,CAAC;gBAED,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;oBAC/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC,CAAC;oBAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC,CAAC;oBACvF,OAAO;gBACX,CAAC;YACL,CAAC;YAED,yBAAyB;YACzB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,MAAM,QAAQ,EAAE,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAE9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,qBAAqB,UAAU,CAAC,MAAM,6BAA6B,CAAC,CAAC,CAAC;gBAE7F,IAAI,YAAY,GAAG,CAAC,CAAC;gBACrB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,SAAS,CAAC,UAAU,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBACrE,IAAI,CAAC;wBACD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;4BACnC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,IAAI,CAAC,MAAM;gCAAE,SAAS;4BAEtB,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BAE5E,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,IAAI,SAAS,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gCACzE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gCAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gCAC1C,MAAM,SAAS,CAAC,uBAAuB,SAAS,CAAC,MAAM,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gCAE/E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gCACjD,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gCAC3C,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gCACjD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;4BACzE,CAAC;wBACL,CAAC;wBACD,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;wBAC3C,YAAY,EAAE,CAAC;oBACnB,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,UAAU,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5D,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,YAAY,IAAI,UAAU,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC;gBAC/F,OAAO;YACX,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC;gBAEjC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,SAAS,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBAC7D,IAAI,CAAC;wBACD,wBAAwB;wBACxB,IAAI,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;wBAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;4BACT,iBAAiB;4BACjB,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;4BACzF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;4BACpC,CAAC;wBACL,CAAC;wBAED,IAAI,CAAC,KAAK,EAAE,CAAC;4BACT,OAAO,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;4BAC9C,SAAS;wBACb,CAAC;wBAED,OAAO,CAAC,IAAI,GAAG,cAAe,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;wBAE3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BAClE,MAAM,wBAAwB,CAAC,KAAY,EAAE,SAAS,CAAC,CAAC;wBAC5D,CAAC;wBAED,cAAc;wBACd,MAAM,SAAS,GAAG,eAAe,CAAC;4BAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,UAAU,EAAG,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;4BACpD,MAAM,EAAG,KAAa,CAAC,UAAU,IAAI,YAAY,KAAK,CAAC,IAAI,EAAE;4BAC7D,UAAU,EAAG,KAAa,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;4BAC7D,OAAO,EAAG,KAAa,CAAC,OAAO;4BAC/B,MAAM;4BACN,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;4BACpF,QAAQ;yBACX,CAAC,CAAC;wBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;wBAEhC,OAAO,CAAC,OAAO,CAAC,aAAc,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC7E,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBAChB,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjD,CAAC;gBACL,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO;YACX,CAAC;YAED,+BAA+B;YAC/B,IAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAElC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;oBACvD,OAAO;gBACX,CAAC;gBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yCAAyC,SAAS,IAAI,CAAC,CAAC,CAAC;gBAEhF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;oBAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAE5C,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBACtE,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACpD,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAED,cAAc;gBACd,MAAM,SAAS,GAAG,eAAe,CAAC;oBAC9B,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,SAAS;oBACrB,MAAM,EAAE,UAAU;oBAClB,UAAU,EAAE,OAAO;oBACnB,MAAM;oBACN,aAAa,EAAE,UAAU;oBACzB,QAAQ;iBACX,CAAC,CAAC;gBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;gBAEhC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,SAAS,IAAI,CAAC,CAAC,CAAC;gBAC9D,OAAO;YACX,CAAC;YAED,wCAAwC;YACxC,IAAI,SAAS,GAAG,MAAM,CAAC;YAEvB,qDAAqD;YACrD,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,MAAM,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxE,IAAI,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAE7C,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,CAAC,IAAI,GAAG,cAAe,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;wBAE3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BAClE,MAAM,wBAAwB,CAAC,KAAY,EAAE,SAAS,CAAC,CAAC;wBAC5D,CAAC;wBAED,MAAM,SAAS,GAAG,eAAe,CAAC;4BAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,UAAU,EAAG,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;4BACpD,MAAM,EAAG,KAAa,CAAC,UAAU,IAAI,YAAY,KAAK,CAAC,IAAI,EAAE;4BAC7D,UAAU,EAAG,KAAa,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;4BAC7D,OAAO,EAAG,KAAa,CAAC,OAAO;4BAC/B,MAAM;4BACN,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;4BACpF,QAAQ;yBACX,CAAC,CAAC;wBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;wBAEhC,OAAO,CAAC,OAAO,CAAC,aAAc,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO;oBACX,CAAC;yBAAM,CAAC;wBACJ,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,kBAAkB,CAAC,CAAC;wBAC1D,OAAO;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtC,OAAO;gBACX,CAAC;YACL,CAAC;YAED,iCAAiC;YACjC,IAAI,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,EAAE,CAAC;gBACpD,SAAS,GAAG,sBAAsB,MAAM,EAAE,CAAC;YAC/C,CAAC;YAED,0BAA0B;YAC1B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACzE,+BAA+B;gBAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,MAAM,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;gBACxE,IAAI,CAAC;oBACD,IAAI,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;wBACT,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;wBACtF,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC3B,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAQ,CAAC;wBACpC,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACR,OAAO,CAAC,IAAI,GAAG,cAAe,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC;wBAE3E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;4BACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BAClE,MAAM,wBAAwB,CAAC,KAAY,EAAE,SAAS,CAAC,CAAC;wBAC5D,CAAC;wBAED,MAAM,SAAS,GAAG,eAAe,CAAC;4BAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,UAAU,EAAG,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI;4BACpD,MAAM,EAAG,KAAa,CAAC,UAAU,IAAI,YAAY,KAAK,CAAC,IAAI,EAAE;4BAC7D,UAAU,EAAG,KAAa,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU;4BAC7D,OAAO,EAAG,KAAa,CAAC,OAAO;4BAC/B,MAAM;4BACN,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;4BACpF,QAAQ;yBACX,CAAC,CAAC;wBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;wBAEhC,OAAO,CAAC,OAAO,CAAC,aAAc,KAAa,CAAC,WAAW,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;wBACzE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBAChB,OAAO;oBACX,CAAC;yBAAM,CAAC;wBACJ,OAAO,CAAC,IAAI,CAAC,mBAAmB,MAAM,8BAA8B,CAAC,CAAC;wBACtE,OAAO;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAChB,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtC,OAAO;gBACX,CAAC;YACL,CAAC;YAED,oBAAoB;YACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wBAAwB,SAAS,IAAI,CAAC,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,iBAAiB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE1C,MAAM,YAAY,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC1D,MAAM,SAAS,CAAC,uBAAuB,SAAS,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACxE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE/B,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,SAAS,GAAa,EAAE,CAAC;YAE7B,2BAA2B;YAC3B,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrD,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;wBACpD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,+BAA+B;gBAC/B,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;YAE5E,KAAK,MAAM,cAAc,IAAI,SAAS,EAAE,CAAC;gBACrC,MAAM,SAAS,GAAG,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAEnF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;oBAC7B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;oBAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAE5C,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,SAAS,OAAO,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC;oBACnF,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,MAAM,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACxD,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAED,cAAc;gBACd,IAAI,OAA2B,CAAC;gBAChC,IAAI,CAAC;oBACD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBAC3E,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,CAAC;gBAAC,MAAM,CAAC,CAAC,CAAC;gBAEX,cAAc;gBACd,MAAM,SAAS,GAAG,eAAe,CAAC;oBAC9B,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,EAAE;oBACtE,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;oBAC9D,OAAO;oBACP,MAAM;oBACN,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;oBACpF,QAAQ;iBACX,CAAC,CAAC;gBACH,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;YAED,UAAU;YACV,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAErE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC,CAAC;YAE9E,YAAY,CAAC,SAAS,EAAE,UAAU,SAAS,UAAU,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;IACL,CAAC,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Interactive wizard commands — install-wizard, export-interactive, setup
3
+ * Also: run, context, preview, scripts, completion, info
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare function registerInteractiveCommands(program: Command): void;
7
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/interactive.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqGpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,QA8f3D"}