agent-skills-cli 1.0.8 → 1.0.9

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 (142) hide show
  1. package/README.md +18 -17
  2. package/dist/cli/agents.d.ts +10 -0
  3. package/dist/cli/agents.d.ts.map +1 -0
  4. package/dist/cli/agents.js +270 -0
  5. package/dist/cli/agents.js.map +1 -0
  6. package/dist/cli/commands/audit.d.ts +11 -0
  7. package/dist/cli/commands/audit.d.ts.map +1 -0
  8. package/dist/cli/commands/audit.js +168 -0
  9. package/dist/cli/commands/audit.js.map +1 -0
  10. package/dist/cli/commands/blueprint.d.ts +11 -0
  11. package/dist/cli/commands/blueprint.d.ts.map +1 -0
  12. package/dist/cli/commands/blueprint.js +210 -0
  13. package/dist/cli/commands/blueprint.js.map +1 -0
  14. package/dist/cli/commands/bootstrap.d.ts +11 -0
  15. package/dist/cli/commands/bootstrap.d.ts.map +1 -0
  16. package/dist/cli/commands/bootstrap.js +267 -0
  17. package/dist/cli/commands/bootstrap.js.map +1 -0
  18. package/dist/cli/commands/capture.d.ts +11 -0
  19. package/dist/cli/commands/capture.d.ts.map +1 -0
  20. package/dist/cli/commands/capture.js +109 -0
  21. package/dist/cli/commands/capture.js.map +1 -0
  22. package/dist/cli/commands/ci.d.ts +11 -0
  23. package/dist/cli/commands/ci.d.ts.map +1 -0
  24. package/dist/cli/commands/ci.js +144 -0
  25. package/dist/cli/commands/ci.js.map +1 -0
  26. package/dist/cli/commands/collab.d.ts +11 -0
  27. package/dist/cli/commands/collab.d.ts.map +1 -0
  28. package/dist/cli/commands/collab.js +196 -0
  29. package/dist/cli/commands/collab.js.map +1 -0
  30. package/dist/cli/commands/convert.d.ts +11 -0
  31. package/dist/cli/commands/convert.d.ts.map +1 -0
  32. package/dist/cli/commands/convert.js +219 -0
  33. package/dist/cli/commands/convert.js.map +1 -0
  34. package/dist/cli/commands/craft.d.ts +18 -0
  35. package/dist/cli/commands/craft.d.ts.map +1 -0
  36. package/dist/cli/commands/craft.js +205 -0
  37. package/dist/cli/commands/craft.js.map +1 -0
  38. package/dist/cli/commands/export.d.ts +9 -0
  39. package/dist/cli/commands/export.d.ts.map +1 -0
  40. package/dist/cli/commands/export.js +103 -0
  41. package/dist/cli/commands/export.js.map +1 -0
  42. package/dist/cli/commands/forge.d.ts +11 -0
  43. package/dist/cli/commands/forge.d.ts.map +1 -0
  44. package/dist/cli/commands/forge.js +152 -0
  45. package/dist/cli/commands/forge.js.map +1 -0
  46. package/dist/cli/commands/grid.d.ts +11 -0
  47. package/dist/cli/commands/grid.d.ts.map +1 -0
  48. package/dist/cli/commands/grid.js +217 -0
  49. package/dist/cli/commands/grid.js.map +1 -0
  50. package/dist/cli/commands/insight.d.ts +7 -0
  51. package/dist/cli/commands/insight.d.ts.map +1 -0
  52. package/dist/cli/commands/insight.js +71 -0
  53. package/dist/cli/commands/insight.js.map +1 -0
  54. package/dist/cli/commands/install.d.ts +6 -0
  55. package/dist/cli/commands/install.d.ts.map +1 -0
  56. package/dist/cli/commands/install.js +359 -0
  57. package/dist/cli/commands/install.js.map +1 -0
  58. package/dist/cli/commands/interactive.d.ts +7 -0
  59. package/dist/cli/commands/interactive.d.ts.map +1 -0
  60. package/dist/cli/commands/interactive.js +535 -0
  61. package/dist/cli/commands/interactive.js.map +1 -0
  62. package/dist/cli/commands/list.d.ts +6 -0
  63. package/dist/cli/commands/list.d.ts.map +1 -0
  64. package/dist/cli/commands/list.js +77 -0
  65. package/dist/cli/commands/list.js.map +1 -0
  66. package/dist/cli/commands/lockspec.d.ts +11 -0
  67. package/dist/cli/commands/lockspec.d.ts.map +1 -0
  68. package/dist/cli/commands/lockspec.js +179 -0
  69. package/dist/cli/commands/lockspec.js.map +1 -0
  70. package/dist/cli/commands/marketplace.d.ts +7 -0
  71. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  72. package/dist/cli/commands/marketplace.js +417 -0
  73. package/dist/cli/commands/marketplace.js.map +1 -0
  74. package/dist/cli/commands/method.d.ts +7 -0
  75. package/dist/cli/commands/method.d.ts.map +1 -0
  76. package/dist/cli/commands/method.js +140 -0
  77. package/dist/cli/commands/method.js.map +1 -0
  78. package/dist/cli/commands/mine.d.ts +11 -0
  79. package/dist/cli/commands/mine.d.ts.map +1 -0
  80. package/dist/cli/commands/mine.js +254 -0
  81. package/dist/cli/commands/mine.js.map +1 -0
  82. package/dist/cli/commands/recall.d.ts +11 -0
  83. package/dist/cli/commands/recall.d.ts.map +1 -0
  84. package/dist/cli/commands/recall.js +201 -0
  85. package/dist/cli/commands/recall.js.map +1 -0
  86. package/dist/cli/commands/rule.d.ts +11 -0
  87. package/dist/cli/commands/rule.d.ts.map +1 -0
  88. package/dist/cli/commands/rule.js +230 -0
  89. package/dist/cli/commands/rule.js.map +1 -0
  90. package/dist/cli/commands/search.d.ts +6 -0
  91. package/dist/cli/commands/search.d.ts.map +1 -0
  92. package/dist/cli/commands/search.js +173 -0
  93. package/dist/cli/commands/search.js.map +1 -0
  94. package/dist/cli/commands/show.d.ts +6 -0
  95. package/dist/cli/commands/show.d.ts.map +1 -0
  96. package/dist/cli/commands/show.js +150 -0
  97. package/dist/cli/commands/show.js.map +1 -0
  98. package/dist/cli/commands/submit.d.ts +15 -0
  99. package/dist/cli/commands/submit.d.ts.map +1 -0
  100. package/dist/cli/commands/submit.js +151 -0
  101. package/dist/cli/commands/submit.js.map +1 -0
  102. package/dist/cli/commands/suggest.d.ts +11 -0
  103. package/dist/cli/commands/suggest.d.ts.map +1 -0
  104. package/dist/cli/commands/suggest.js +164 -0
  105. package/dist/cli/commands/suggest.js.map +1 -0
  106. package/dist/cli/commands/track.d.ts +11 -0
  107. package/dist/cli/commands/track.d.ts.map +1 -0
  108. package/dist/cli/commands/track.js +199 -0
  109. package/dist/cli/commands/track.js.map +1 -0
  110. package/dist/cli/commands/trigger.d.ts +11 -0
  111. package/dist/cli/commands/trigger.d.ts.map +1 -0
  112. package/dist/cli/commands/trigger.js +157 -0
  113. package/dist/cli/commands/trigger.js.map +1 -0
  114. package/dist/cli/commands/utils-commands.d.ts +9 -0
  115. package/dist/cli/commands/utils-commands.d.ts.map +1 -0
  116. package/dist/cli/commands/utils-commands.js +389 -0
  117. package/dist/cli/commands/utils-commands.js.map +1 -0
  118. package/dist/cli/commands/validate.d.ts +6 -0
  119. package/dist/cli/commands/validate.d.ts.map +1 -0
  120. package/dist/cli/commands/validate.js +40 -0
  121. package/dist/cli/commands/validate.js.map +1 -0
  122. package/dist/cli/index.d.ts +3 -0
  123. package/dist/cli/index.d.ts.map +1 -1
  124. package/dist/cli/index.js +84 -2743
  125. package/dist/cli/index.js.map +1 -1
  126. package/dist/core/audit.d.ts +24 -0
  127. package/dist/core/audit.d.ts.map +1 -0
  128. package/dist/core/audit.js +195 -0
  129. package/dist/core/audit.js.map +1 -0
  130. package/dist/core/index.d.ts +6 -0
  131. package/dist/core/index.d.ts.map +1 -1
  132. package/dist/core/index.js +6 -0
  133. package/dist/core/index.js.map +1 -1
  134. package/dist/core/scanner-rules.d.ts +58 -0
  135. package/dist/core/scanner-rules.d.ts.map +1 -0
  136. package/dist/core/scanner-rules.js +335 -0
  137. package/dist/core/scanner-rules.js.map +1 -0
  138. package/dist/core/suggest.d.ts +51 -0
  139. package/dist/core/suggest.d.ts.map +1 -0
  140. package/dist/core/suggest.js +241 -0
  141. package/dist/core/suggest.js.map +1 -0
  142. package/package.json +1 -1
@@ -0,0 +1,417 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { listMarketplaceSkills, searchSkills, uninstallSkill, getInstalledSkills, listMarketplaces, addMarketplace, checkUpdates, installFromGitHubUrl, getSkillByScoped, getSkillBaseUrl, fetchAssetManifest, getAssetUrl, fetchAsset, fetchSkillsForCLI, } from '../../core/index.js';
4
+ export function registerMarketplaceCommands(program) {
5
+ // ============================================
6
+ // ASSETS COMMAND - On-demand asset fetching
7
+ // ============================================
8
+ program
9
+ .command('assets <skill-name>')
10
+ .description('List and fetch assets for a skill on-demand from GitHub')
11
+ .option('-l, --list', 'List available assets')
12
+ .option('-m, --manifest', 'Show asset manifest if available')
13
+ .option('-g, --get <path>', 'Fetch and display specific asset content')
14
+ .option('--json', 'Output in JSON format')
15
+ .action(async (skillName, options) => {
16
+ try {
17
+ const spinner = ora('Fetching skill info...').start();
18
+ // Fetch skill from database
19
+ const skill = await getSkillByScoped(skillName);
20
+ if (!skill) {
21
+ spinner.fail(`Skill not found: ${skillName}`);
22
+ process.exit(1);
23
+ }
24
+ if (!skill.raw_url) {
25
+ spinner.fail('Skill has no raw_url - cannot fetch assets');
26
+ process.exit(1);
27
+ }
28
+ const baseUrl = getSkillBaseUrl(skill.raw_url);
29
+ spinner.succeed(`Found skill: ${skill.scoped_name || skill.name}`);
30
+ if (options.manifest) {
31
+ // Show asset manifest
32
+ const manifestSpinner = ora('Fetching manifest...').start();
33
+ const manifest = await fetchAssetManifest(baseUrl);
34
+ if (!manifest) {
35
+ manifestSpinner.fail('No asset manifest found (index.jsonl)');
36
+ return;
37
+ }
38
+ manifestSpinner.succeed(`Found ${manifest.length} components`);
39
+ if (options.json) {
40
+ console.log(JSON.stringify(manifest, null, 2));
41
+ }
42
+ else {
43
+ console.log('');
44
+ // Group by category
45
+ const byCategory = new Map();
46
+ for (const entry of manifest) {
47
+ const cat = entry.category || 'other';
48
+ if (!byCategory.has(cat))
49
+ byCategory.set(cat, []);
50
+ byCategory.get(cat).push(entry);
51
+ }
52
+ for (const [category, entries] of byCategory) {
53
+ console.log(chalk.bold.cyan(`\n${category}:`));
54
+ for (const entry of entries.slice(0, 5)) {
55
+ console.log(chalk.white(` ${entry.id}`));
56
+ if (entry.name)
57
+ console.log(chalk.gray(` ${entry.name}`));
58
+ }
59
+ if (entries.length > 5) {
60
+ console.log(chalk.gray(` ... and ${entries.length - 5} more`));
61
+ }
62
+ }
63
+ }
64
+ }
65
+ else if (options.get) {
66
+ // Fetch specific asset
67
+ const assetPath = options.get;
68
+ const assetUrl = getAssetUrl(baseUrl, assetPath);
69
+ const fetchSpinner = ora(`Fetching ${assetPath}...`).start();
70
+ const content = await fetchAsset(assetUrl);
71
+ if (!content) {
72
+ fetchSpinner.fail(`Asset not found: ${assetPath}`);
73
+ process.exit(1);
74
+ }
75
+ fetchSpinner.succeed(`Fetched ${content.length} chars`);
76
+ console.log('');
77
+ console.log(content);
78
+ }
79
+ else {
80
+ // Default: show info about assets
81
+ console.log(chalk.gray(`\nBase URL: ${baseUrl}`));
82
+ console.log('');
83
+ console.log(chalk.bold('Usage:'));
84
+ console.log(chalk.gray(` skills assets "${skillName}" --manifest`));
85
+ console.log(chalk.gray(' Show component manifest'));
86
+ console.log('');
87
+ console.log(chalk.gray(` skills assets "${skillName}" --get "assets/code/v3/html/buttons/primary.html"`));
88
+ console.log(chalk.gray(' Fetch specific asset content'));
89
+ }
90
+ }
91
+ catch (error) {
92
+ console.error(chalk.red('Error:'), error);
93
+ process.exit(1);
94
+ }
95
+ });
96
+ // ============================================
97
+ // MARKETPLACE COMMANDS
98
+ // ============================================
99
+ // Market list - list skills from SkillsMP (40k+ skills)
100
+ program
101
+ .command('market-list')
102
+ .alias('ml')
103
+ .description('List skills from SkillsMP marketplace (40k+ skills)')
104
+ .option('-l, --limit <number>', 'Number of skills to show', '50')
105
+ .option('-p, --page <number>', 'Page number', '1')
106
+ .option('--legacy', 'Use legacy GitHub sources instead of SkillsMP')
107
+ .action(async (options) => {
108
+ try {
109
+ if (options.legacy) {
110
+ // Legacy mode: fetch from configured GitHub sources
111
+ console.log(chalk.bold('\nFetching skills from GitHub sources...\n'));
112
+ const skills = await listMarketplaceSkills();
113
+ if (skills.length === 0) {
114
+ console.log(chalk.yellow('No skills found.'));
115
+ return;
116
+ }
117
+ const bySource = new Map();
118
+ for (const skill of skills) {
119
+ const sourceId = skill.source.id;
120
+ if (!bySource.has(sourceId)) {
121
+ bySource.set(sourceId, []);
122
+ }
123
+ bySource.get(sourceId).push(skill);
124
+ }
125
+ for (const [sourceId, sourceSkills] of bySource) {
126
+ const source = sourceSkills[0].source;
127
+ console.log(chalk.bold.cyan(`\n📦 ${source.name}`));
128
+ console.log(chalk.gray(` ${source.owner}/${source.repo}`));
129
+ if (source.verified) {
130
+ console.log(chalk.green(' ✓ Verified'));
131
+ }
132
+ console.log('');
133
+ for (const skill of sourceSkills) {
134
+ console.log(chalk.white(` ${skill.name}`));
135
+ if (skill.description) {
136
+ const desc = skill.description.length > 60
137
+ ? skill.description.slice(0, 60) + '...'
138
+ : skill.description;
139
+ console.log(chalk.gray(` ${desc}`));
140
+ }
141
+ }
142
+ }
143
+ console.log(chalk.gray(`\nTotal: ${skills.length} skills from ${bySource.size} sources`));
144
+ }
145
+ else {
146
+ // Database mode (primary): fetch from our API
147
+ console.log(chalk.bold('\n🌐 Skills Marketplace\n'));
148
+ const limit = parseInt(options.limit) || 50;
149
+ const page = parseInt(options.page) || 1;
150
+ let result;
151
+ try {
152
+ result = await fetchSkillsForCLI({ limit, page, sortBy: 'stars' });
153
+ }
154
+ catch {
155
+ console.log(chalk.gray('Falling back to GitHub sources...'));
156
+ const skills = await listMarketplaceSkills();
157
+ result = { skills: skills.slice(0, limit), total: skills.length, hasNext: false };
158
+ }
159
+ console.log(chalk.gray(`Showing ${result.skills.length} of ${result.total.toLocaleString()} skills (page ${page})\n`));
160
+ for (const skill of result.skills) {
161
+ const stars = skill.stars ? chalk.yellow(`⭐${skill.stars.toLocaleString()}`) : '';
162
+ console.log(chalk.white(` ${skill.name} ${stars}`));
163
+ if (skill.description) {
164
+ const desc = skill.description.length > 55
165
+ ? skill.description.slice(0, 55) + '...'
166
+ : skill.description;
167
+ console.log(chalk.gray(` ${desc}`));
168
+ }
169
+ console.log(chalk.dim(` by ${skill.author || 'unknown'}`));
170
+ }
171
+ console.log(chalk.gray(`\nTotal: ${result.total.toLocaleString()} skills`));
172
+ if (result.hasNext) {
173
+ console.log(chalk.gray(`Next page: skills market-list --page ${page + 1}`));
174
+ }
175
+ }
176
+ console.log(chalk.gray('\nUse: skills (interactive) to install\n'));
177
+ }
178
+ catch (error) {
179
+ console.error(chalk.red('Error:'), error);
180
+ process.exit(1);
181
+ }
182
+ });
183
+ // Market search - search skills
184
+ program
185
+ .command('market-search <query>')
186
+ .alias('ms')
187
+ .description('Search skills in the marketplace')
188
+ .option('-l, --limit <number>', 'Number of results', '20')
189
+ .action(async (query, options) => {
190
+ try {
191
+ console.log(chalk.bold(`\n🔍 Searching for "${query}"...\n`));
192
+ const limit = parseInt(options.limit) || 20;
193
+ let result = null;
194
+ // Try database first, fallback to GitHub
195
+ try {
196
+ result = await fetchSkillsForCLI({ search: query, limit, sortBy: 'stars' });
197
+ }
198
+ catch {
199
+ // Fallback to GitHub-based search
200
+ console.log(chalk.gray('Falling back to GitHub sources...'));
201
+ const skills = await searchSkills(query);
202
+ result = { skills: skills.slice(0, limit), total: skills.length };
203
+ }
204
+ if (!result || result.skills.length === 0) {
205
+ console.log(chalk.yellow(`No skills found matching "${query}"`));
206
+ return;
207
+ }
208
+ console.log(chalk.gray(`Found ${result.total.toLocaleString()} skills (showing top ${result.skills.length}):\n`));
209
+ for (const skill of result.skills) {
210
+ const stars = skill.stars ? chalk.yellow(`⭐${skill.stars.toLocaleString()}`) : '';
211
+ console.log(chalk.cyan(` ${skill.name} ${stars}`));
212
+ console.log(chalk.gray(` ${skill.description?.slice(0, 70)}${(skill.description?.length || 0) > 70 ? '...' : ''}`));
213
+ console.log(chalk.dim(` by ${skill.author || 'unknown'}`));
214
+ console.log('');
215
+ }
216
+ console.log(chalk.gray('Use: skills (interactive) to install\n'));
217
+ }
218
+ catch (error) {
219
+ console.error(chalk.red('Error searching skills:'), error);
220
+ process.exit(1);
221
+ }
222
+ });
223
+ // Alias for backward compatibility
224
+ program
225
+ .command('market-install <name>')
226
+ .alias('mi')
227
+ .description('Install a skill (alias for: skills install)')
228
+ .action(async (name) => {
229
+ console.log(chalk.gray('Tip: Use `skills install <id-or-name>` directly\n'));
230
+ const { execSync } = await import('child_process');
231
+ try {
232
+ execSync(`"${process.argv[0]}" "${process.argv[1]}" install "${name}"`, { stdio: 'inherit' });
233
+ }
234
+ catch { }
235
+ });
236
+ // Install from URL
237
+ program
238
+ .command('install-url <url>')
239
+ .alias('iu')
240
+ .description('Install a skill from GitHub URL or SkillsMP page URL')
241
+ .action(async (url) => {
242
+ try {
243
+ let githubUrl = url;
244
+ // Convert SkillsMP URL to GitHub URL
245
+ if (url.includes('skillsmp.com/skills/')) {
246
+ console.log(chalk.bold(`\n📦 Fetching skill info from SkillsMP...`));
247
+ const skillId = url.split('/skills/').pop()?.replace(/\/$/, '');
248
+ const response = await fetch(`https://skillsmp.com/api/skills/${skillId}`);
249
+ if (!response.ok) {
250
+ throw new Error('Could not find skill on SkillsMP');
251
+ }
252
+ const data = await response.json();
253
+ githubUrl = data.skill.githubUrl;
254
+ console.log(chalk.gray(`Found: ${data.skill.name} by ${data.skill.author}\n`));
255
+ }
256
+ // Validate GitHub URL
257
+ if (!githubUrl.includes('github.com')) {
258
+ console.log(chalk.red('Invalid URL. Please provide a GitHub URL or SkillsMP skill page URL.'));
259
+ return;
260
+ }
261
+ console.log(chalk.gray(`Installing from: ${githubUrl}\n`));
262
+ const homedir = (await import('os')).homedir();
263
+ const skillsDir = `${homedir}/.antigravity/skills`;
264
+ const installed = await installFromGitHubUrl(githubUrl, skillsDir);
265
+ console.log(chalk.green(`✓ Successfully installed: ${installed.name}`));
266
+ console.log(chalk.gray(` Path: ${installed.path}`));
267
+ console.log('');
268
+ }
269
+ catch (error) {
270
+ console.error(chalk.red('Error installing skill:'), error.message || error);
271
+ process.exit(1);
272
+ }
273
+ });
274
+ // Market uninstall
275
+ program
276
+ .command('market-uninstall <name>')
277
+ .alias('mu')
278
+ .description('Uninstall a marketplace-installed skill')
279
+ .action(async (name) => {
280
+ try {
281
+ await uninstallSkill(name);
282
+ console.log(chalk.green(`✓ Uninstalled: ${name}`));
283
+ }
284
+ catch (error) {
285
+ console.error(chalk.red('Error uninstalling skill:'), error);
286
+ process.exit(1);
287
+ }
288
+ });
289
+ // Market installed
290
+ program
291
+ .command('market-installed')
292
+ .alias('mind')
293
+ .description('List skills installed from marketplaces')
294
+ .action(async () => {
295
+ try {
296
+ const installed = await getInstalledSkills();
297
+ if (installed.length === 0) {
298
+ console.log(chalk.yellow('\nNo marketplace skills installed.'));
299
+ console.log(chalk.gray('Use: skills market-install <name> to install\n'));
300
+ return;
301
+ }
302
+ console.log(chalk.bold(`\nInstalled marketplace skills:\n`));
303
+ for (const skill of installed) {
304
+ console.log(chalk.cyan(` ${skill.name}`));
305
+ console.log(chalk.gray(` Path: ${skill.localPath}`));
306
+ if (skill.source) {
307
+ console.log(chalk.gray(` Source: ${skill.source.name}`));
308
+ }
309
+ if (skill.version) {
310
+ console.log(chalk.gray(` Version: ${skill.version}`));
311
+ }
312
+ console.log(chalk.gray(` Installed: ${skill.installedAt}`));
313
+ console.log('');
314
+ }
315
+ }
316
+ catch (error) {
317
+ console.error(chalk.red('Error listing installed skills:'), error);
318
+ process.exit(1);
319
+ }
320
+ });
321
+ // Market sources
322
+ program
323
+ .command('market-sources')
324
+ .description('List registered marketplace sources')
325
+ .action(async () => {
326
+ try {
327
+ // Show SkillsMP as primary
328
+ console.log(chalk.bold('\n🌐 Primary Marketplace:\n'));
329
+ console.log(chalk.cyan(` SkillsMP`) + chalk.green(' ✓'));
330
+ console.log(chalk.gray(` URL: https://skillsmp.com`));
331
+ console.log(chalk.gray(` Skills: 40,000+`));
332
+ console.log(chalk.gray(` The largest Agent Skills marketplace`));
333
+ console.log('');
334
+ // Show legacy sources
335
+ const sources = await listMarketplaces();
336
+ if (sources.length > 0) {
337
+ console.log(chalk.bold('Legacy GitHub Sources:\n'));
338
+ for (const source of sources) {
339
+ const verified = source.verified ? chalk.green(' ✓') : '';
340
+ console.log(chalk.cyan(` ${source.name}${verified}`));
341
+ console.log(chalk.gray(` ID: ${source.id}`));
342
+ console.log(chalk.gray(` Repo: ${source.owner}/${source.repo}`));
343
+ if (source.description) {
344
+ console.log(chalk.gray(` ${source.description}`));
345
+ }
346
+ console.log('');
347
+ }
348
+ }
349
+ }
350
+ catch (error) {
351
+ console.error(chalk.red('Error listing sources:'), error);
352
+ process.exit(1);
353
+ }
354
+ });
355
+ // Market add-source
356
+ program
357
+ .command('market-add-source')
358
+ .description('Add a custom marketplace source')
359
+ .requiredOption('--id <id>', 'Unique identifier')
360
+ .requiredOption('--name <name>', 'Display name')
361
+ .requiredOption('--owner <owner>', 'GitHub owner')
362
+ .requiredOption('--repo <repo>', 'GitHub repository')
363
+ .option('--branch <branch>', 'Branch name', 'main')
364
+ .option('--path <path>', 'Path to skills directory', 'skills')
365
+ .action(async (options) => {
366
+ try {
367
+ await addMarketplace({
368
+ id: options.id,
369
+ name: options.name,
370
+ owner: options.owner,
371
+ repo: options.repo,
372
+ branch: options.branch,
373
+ skillsPath: options.path,
374
+ verified: false
375
+ });
376
+ console.log(chalk.green(`✓ Added marketplace: ${options.name}`));
377
+ }
378
+ catch (error) {
379
+ console.error(chalk.red('Error adding marketplace:'), error);
380
+ process.exit(1);
381
+ }
382
+ });
383
+ // Market update-check
384
+ program
385
+ .command('market-update-check')
386
+ .alias('muc')
387
+ .description('Check for updates to installed skills')
388
+ .action(async () => {
389
+ try {
390
+ console.log(chalk.bold('\nChecking for updates...\n'));
391
+ const updates = await checkUpdates();
392
+ if (updates.length === 0) {
393
+ console.log(chalk.yellow('No installed marketplace skills to check.'));
394
+ return;
395
+ }
396
+ const hasUpdates = updates.filter(u => u.hasUpdate);
397
+ if (hasUpdates.length === 0) {
398
+ console.log(chalk.green('All skills are up to date! ✓'));
399
+ }
400
+ else {
401
+ console.log(chalk.yellow(`${hasUpdates.length} skill(s) have updates available:\n`));
402
+ for (const update of hasUpdates) {
403
+ console.log(chalk.cyan(` ${update.skill.name}`));
404
+ console.log(chalk.gray(` Current: ${update.currentVersion || 'unknown'}`));
405
+ console.log(chalk.green(` Latest: ${update.latestVersion}`));
406
+ console.log('');
407
+ }
408
+ console.log(chalk.gray('To update, uninstall and reinstall the skill.'));
409
+ }
410
+ }
411
+ catch (error) {
412
+ console.error(chalk.red('Error checking updates:'), error);
413
+ process.exit(1);
414
+ }
415
+ });
416
+ }
417
+ //# sourceMappingURL=marketplace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketplace.js","sourceRoot":"","sources":["../../../src/cli/commands/marketplace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Method Command
3
+ * Methodology packs — apply development methodologies as skills
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare function registerMethodCommand(program: Command): void;
7
+ //# sourceMappingURL=method.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/method.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqEpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkD5D"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Method Command
3
+ * Methodology packs — apply development methodologies as skills
4
+ */
5
+ import chalk from 'chalk';
6
+ import { writeFile, mkdir } from 'fs/promises';
7
+ import { resolve, join } from 'path';
8
+ const PACKS = {
9
+ tdd: {
10
+ name: 'Test-Driven Development',
11
+ description: 'Write tests first, then implement',
12
+ rules: [
13
+ '1. Write a failing test before writing any production code',
14
+ '2. Write only enough test code to make it fail',
15
+ '3. Write only enough production code to pass the test',
16
+ '4. Refactor while keeping all tests green',
17
+ '5. Repeat the red-green-refactor cycle',
18
+ ],
19
+ },
20
+ ddd: {
21
+ name: 'Domain-Driven Design',
22
+ description: 'Model software around business domains',
23
+ rules: [
24
+ '1. Use ubiquitous language from the domain',
25
+ '2. Separate domain logic from infrastructure',
26
+ '3. Define bounded contexts clearly',
27
+ '4. Use aggregates to enforce invariants',
28
+ '5. Communicate between contexts via events',
29
+ ],
30
+ },
31
+ clean: {
32
+ name: 'Clean Architecture',
33
+ description: 'Separate concerns into concentric layers',
34
+ rules: [
35
+ '1. Dependencies point inward only',
36
+ '2. Entities contain business rules',
37
+ '3. Use cases orchestrate entity interactions',
38
+ '4. Adapters translate between layers',
39
+ '5. Frameworks are outer-layer details',
40
+ ],
41
+ },
42
+ solid: {
43
+ name: 'SOLID Principles',
44
+ description: 'Five object-oriented design principles',
45
+ rules: [
46
+ '1. Single Responsibility: one class, one reason to change',
47
+ '2. Open/Closed: open for extension, closed for modification',
48
+ '3. Liskov Substitution: subtypes must be substitutable',
49
+ '4. Interface Segregation: prefer small, focused interfaces',
50
+ '5. Dependency Inversion: depend on abstractions, not concretions',
51
+ ],
52
+ },
53
+ trunk: {
54
+ name: 'Trunk-Based Development',
55
+ description: 'Short-lived branches merged frequently',
56
+ rules: [
57
+ '1. Main branch is always deployable',
58
+ '2. Feature branches live max 1-2 days',
59
+ '3. Use feature flags for incomplete work',
60
+ '4. Review code before merging',
61
+ '5. Deploy from trunk continuously',
62
+ ],
63
+ },
64
+ };
65
+ export function registerMethodCommand(program) {
66
+ const method = program
67
+ .command('method')
68
+ .alias('mt')
69
+ .description('Apply development methodology packs');
70
+ method.command('list')
71
+ .description('List available methodology packs')
72
+ .action(() => {
73
+ console.log('');
74
+ console.log(chalk.bold('📚 Methodology Packs'));
75
+ console.log('');
76
+ for (const [key, pack] of Object.entries(PACKS)) {
77
+ console.log(` ${chalk.cyan(key.padEnd(10))} ${pack.name} — ${chalk.dim(pack.description)}`);
78
+ }
79
+ console.log('');
80
+ console.log(chalk.dim(' Apply: skills method apply <name>'));
81
+ console.log('');
82
+ });
83
+ method.command('show <name>')
84
+ .description('Show methodology details')
85
+ .action((name) => {
86
+ const pack = PACKS[name.toLowerCase()];
87
+ if (!pack) {
88
+ console.error(chalk.red(`Unknown method: ${name}`));
89
+ console.log(chalk.dim(`Available: ${Object.keys(PACKS).join(', ')}`));
90
+ return;
91
+ }
92
+ console.log('');
93
+ console.log(chalk.bold(`📖 ${pack.name}`));
94
+ console.log(chalk.dim(` ${pack.description}`));
95
+ console.log('');
96
+ for (const rule of pack.rules) {
97
+ console.log(` ${rule}`);
98
+ }
99
+ console.log('');
100
+ });
101
+ method.command('apply <name>')
102
+ .description('Apply a methodology as a skill')
103
+ .option('-o, --output <dir>', 'Output directory', '.')
104
+ .action(async (name, options) => {
105
+ try {
106
+ await methodApply(name, options.output);
107
+ }
108
+ catch (err) {
109
+ console.error(chalk.red('Error:'), err.message);
110
+ process.exit(1);
111
+ }
112
+ });
113
+ }
114
+ async function methodApply(name, outputDir) {
115
+ const pack = PACKS[name.toLowerCase()];
116
+ if (!pack) {
117
+ console.error(chalk.red(`Unknown method: ${name}`));
118
+ console.log(chalk.dim(`Available: ${Object.keys(PACKS).join(', ')}`));
119
+ process.exit(1);
120
+ }
121
+ const skillDir = join(resolve(outputDir), `method-${name}`);
122
+ await mkdir(skillDir, { recursive: true });
123
+ const content = `---
124
+ name: method-${name}
125
+ description: ${pack.name} methodology
126
+ ---
127
+
128
+ # ${pack.name}
129
+
130
+ ${pack.description}
131
+
132
+ ## Rules
133
+
134
+ ${pack.rules.map(r => `- ${r}`).join('\n')}
135
+ `;
136
+ await writeFile(join(skillDir, 'SKILL.md'), content);
137
+ console.log(chalk.green(`✨ Applied ${pack.name} as skill`));
138
+ console.log(` ${chalk.dim('Location:')} ${chalk.cyan(skillDir)}`);
139
+ }
140
+ //# sourceMappingURL=method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method.js","sourceRoot":"","sources":["../../../src/cli/commands/method.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Mine Command
3
+ * Extract patterns and conventions from git history
4
+ * (SkillKit calls this "learn" — we call it "mine")
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Register the mine command
9
+ */
10
+ export declare function registerMineCommand(program: Command): void;
11
+ //# sourceMappingURL=mine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mine.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mine.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkBpC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB1D"}