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,11 @@
1
+ /**
2
+ * CI Command
3
+ * Generate CI/CD workflow files for GitHub Actions, GitLab CI, etc.
4
+ * (SkillKit calls this "cicd" — we call it "ci")
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Register the ci command
9
+ */
10
+ export declare function registerCiCommand(program: Command): void;
11
+ //# sourceMappingURL=ci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ci.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAexD"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * CI Command
3
+ * Generate CI/CD workflow files for GitHub Actions, GitLab CI, etc.
4
+ * (SkillKit calls this "cicd" — we call it "ci")
5
+ */
6
+ import chalk from 'chalk';
7
+ import { writeFile, mkdir } from 'fs/promises';
8
+ import { existsSync } from 'fs';
9
+ import { resolve, join } from 'path';
10
+ /**
11
+ * Register the ci command
12
+ */
13
+ export function registerCiCommand(program) {
14
+ program
15
+ .command('ci [platform]')
16
+ .description('Generate CI/CD workflow for skill validation')
17
+ .option('-o, --output <dir>', 'Output directory (auto-detected)')
18
+ .option('--audit', 'Include security audit step', true)
19
+ .option('--validate', 'Include validation step', true)
20
+ .action(async (platform, options) => {
21
+ try {
22
+ await ciCommand(platform || 'github', options);
23
+ }
24
+ catch (err) {
25
+ console.error(chalk.red('Error:'), err.message);
26
+ process.exit(1);
27
+ }
28
+ });
29
+ }
30
+ async function ciCommand(platform, options) {
31
+ const generators = {
32
+ github: () => generateGitHubActions(options),
33
+ gitlab: () => generateGitLabCI(options),
34
+ bitbucket: () => generateBitbucketPipelines(options),
35
+ };
36
+ const generator = generators[platform];
37
+ if (!generator) {
38
+ console.error(chalk.red(`Unknown platform: ${platform}`));
39
+ console.log(chalk.dim(`Supported: ${Object.keys(generators).join(', ')}`));
40
+ process.exit(1);
41
+ }
42
+ const { path: outputPath, content } = generator();
43
+ const finalPath = options.output ? join(resolve(options.output), outputPath) : resolve(outputPath);
44
+ if (existsSync(finalPath)) {
45
+ console.log(chalk.yellow(`⚠ File already exists: ${finalPath}`));
46
+ console.log(chalk.dim(' Delete it first or use --output to specify a different location'));
47
+ return;
48
+ }
49
+ const dir = finalPath.substring(0, finalPath.lastIndexOf('/'));
50
+ await mkdir(dir, { recursive: true });
51
+ await writeFile(finalPath, content);
52
+ console.log('');
53
+ console.log(chalk.green(`✨ Generated ${platform} CI workflow`));
54
+ console.log(` ${chalk.dim('File:')} ${chalk.cyan(finalPath)}`);
55
+ console.log('');
56
+ console.log(chalk.dim('Features:'));
57
+ if (options.validate !== false)
58
+ console.log(chalk.dim(' ✓ Skill validation'));
59
+ if (options.audit !== false)
60
+ console.log(chalk.dim(' ✓ Security audit'));
61
+ console.log('');
62
+ console.log(chalk.dim(`Commit and push to activate the workflow.`));
63
+ console.log('');
64
+ }
65
+ function generateGitHubActions(options) {
66
+ const steps = [];
67
+ steps.push(` - uses: actions/checkout@v4
68
+ - uses: actions/setup-node@v4
69
+ with:
70
+ node-version: '20'
71
+ - name: Install agent-skills-cli
72
+ run: npm install -g agent-skills-cli`);
73
+ if (options.validate !== false) {
74
+ steps.push(` - name: Validate Skills
75
+ run: skills validate .`);
76
+ }
77
+ if (options.audit !== false) {
78
+ steps.push(` - name: Security Audit
79
+ run: skills audit . --format sarif --output results.sarif
80
+ - name: Upload SARIF
81
+ if: always()
82
+ uses: github/codeql-action/upload-sarif@v3
83
+ with:
84
+ sarif_file: results.sarif`);
85
+ }
86
+ const content = `name: Skill Validation
87
+
88
+ on:
89
+ push:
90
+ paths:
91
+ - '**/*.md'
92
+ - '.agent/**'
93
+ - '.cursor/**'
94
+ - '.claude/**'
95
+ - '.github/skills/**'
96
+ pull_request:
97
+ paths:
98
+ - '**/*.md'
99
+
100
+ jobs:
101
+ validate:
102
+ runs-on: ubuntu-latest
103
+ steps:
104
+ ${steps.join('\n')}
105
+ `;
106
+ return { path: '.github/workflows/skill-validation.yml', content };
107
+ }
108
+ function generateGitLabCI(options) {
109
+ const scripts = ['npm install -g agent-skills-cli'];
110
+ if (options.validate !== false)
111
+ scripts.push('skills validate .');
112
+ if (options.audit !== false)
113
+ scripts.push('skills audit . --fail-on high');
114
+ const content = `skill-validation:
115
+ image: node:20
116
+ stage: test
117
+ script:
118
+ ${scripts.map(s => ` - ${s}`).join('\n')}
119
+ only:
120
+ changes:
121
+ - "**/*.md"
122
+ - ".agent/**"
123
+ - ".cursor/**"
124
+ - ".claude/**"
125
+ `;
126
+ return { path: '.gitlab-ci.yml', content };
127
+ }
128
+ function generateBitbucketPipelines(options) {
129
+ const scripts = ['npm install -g agent-skills-cli'];
130
+ if (options.validate !== false)
131
+ scripts.push('skills validate .');
132
+ if (options.audit !== false)
133
+ scripts.push('skills audit . --fail-on high');
134
+ const content = `pipelines:
135
+ default:
136
+ - step:
137
+ name: Skill Validation
138
+ image: node:20
139
+ script:
140
+ ${scripts.map(s => ` - ${s}`).join('\n')}
141
+ `;
142
+ return { path: 'bitbucket-pipelines.yml', content };
143
+ }
144
+ //# sourceMappingURL=ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../../src/cli/commands/ci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Collab Command
3
+ * Team skill sharing and collaboration
4
+ * (SkillKit calls this "team" — we call it "collab")
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Register the collab command
9
+ */
10
+ export declare function registerCollabCommand(program: Command): void;
11
+ //# sourceMappingURL=collab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/collab.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiE5D"}
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Collab Command
3
+ * Team skill sharing and collaboration
4
+ * (SkillKit calls this "team" — we call it "collab")
5
+ */
6
+ import chalk from 'chalk';
7
+ import * as p from '@clack/prompts';
8
+ import { readFile, writeFile } from 'fs/promises';
9
+ import { existsSync } from 'fs';
10
+ import { resolve } from 'path';
11
+ const COLLAB_FILE = '.skills-collab.json';
12
+ /**
13
+ * Register the collab command
14
+ */
15
+ export function registerCollabCommand(program) {
16
+ const collab = program
17
+ .command('collab')
18
+ .alias('cl')
19
+ .description('Team skill collaboration');
20
+ collab
21
+ .command('init <team-name>')
22
+ .description('Initialize team collaboration')
23
+ .action(async (teamName) => {
24
+ try {
25
+ await collabInit(teamName);
26
+ }
27
+ catch (err) {
28
+ console.error(chalk.red('Error:'), err.message);
29
+ process.exit(1);
30
+ }
31
+ });
32
+ collab
33
+ .command('add <member>')
34
+ .description('Add a team member')
35
+ .action(async (member) => {
36
+ try {
37
+ await collabAddMember(member);
38
+ }
39
+ catch (err) {
40
+ console.error(chalk.red('Error:'), err.message);
41
+ process.exit(1);
42
+ }
43
+ });
44
+ collab
45
+ .command('share <skill>')
46
+ .description('Share a skill with the team')
47
+ .action(async (skill) => {
48
+ try {
49
+ await collabShare(skill);
50
+ }
51
+ catch (err) {
52
+ console.error(chalk.red('Error:'), err.message);
53
+ process.exit(1);
54
+ }
55
+ });
56
+ collab
57
+ .command('status')
58
+ .description('Show team collaboration status')
59
+ .action(async () => {
60
+ try {
61
+ await collabStatus();
62
+ }
63
+ catch (err) {
64
+ console.error(chalk.red('Error:'), err.message);
65
+ process.exit(1);
66
+ }
67
+ });
68
+ collab
69
+ .command('sync')
70
+ .description('Sync shared skills with team')
71
+ .action(async () => {
72
+ try {
73
+ await collabSync();
74
+ }
75
+ catch (err) {
76
+ console.error(chalk.red('Error:'), err.message);
77
+ process.exit(1);
78
+ }
79
+ });
80
+ }
81
+ async function loadCollabConfig() {
82
+ const configPath = resolve(COLLAB_FILE);
83
+ if (!existsSync(configPath))
84
+ return null;
85
+ try {
86
+ return JSON.parse(await readFile(configPath, 'utf-8'));
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ }
92
+ async function saveCollabConfig(config) {
93
+ config.updatedAt = new Date().toISOString();
94
+ await writeFile(resolve(COLLAB_FILE), JSON.stringify(config, null, 2));
95
+ }
96
+ async function collabInit(teamName) {
97
+ const existing = await loadCollabConfig();
98
+ if (existing) {
99
+ console.error(chalk.yellow(`Team "${existing.team}" already initialized. Use collab status to view.`));
100
+ return;
101
+ }
102
+ const config = {
103
+ team: teamName,
104
+ members: [],
105
+ sharedSkills: [],
106
+ createdAt: new Date().toISOString(),
107
+ updatedAt: new Date().toISOString(),
108
+ };
109
+ await saveCollabConfig(config);
110
+ console.log('');
111
+ console.log(chalk.green(`✨ Team "${teamName}" initialized!`));
112
+ console.log('');
113
+ console.log(chalk.dim('Next steps:'));
114
+ console.log(chalk.dim(` skills collab add <username> Add team members`));
115
+ console.log(chalk.dim(` skills collab share <skill> Share a skill`));
116
+ console.log(chalk.dim(` skills collab status View team status`));
117
+ console.log('');
118
+ }
119
+ async function collabAddMember(member) {
120
+ const config = await loadCollabConfig();
121
+ if (!config) {
122
+ console.error(chalk.red('No team initialized. Run: skills collab init <team-name>'));
123
+ process.exit(1);
124
+ }
125
+ if (config.members.includes(member)) {
126
+ console.log(chalk.yellow(`${member} is already a team member`));
127
+ return;
128
+ }
129
+ config.members.push(member);
130
+ await saveCollabConfig(config);
131
+ console.log(chalk.green(`✓ Added ${member} to team "${config.team}"`));
132
+ console.log(chalk.dim(` Total members: ${config.members.length}`));
133
+ }
134
+ async function collabShare(skillName) {
135
+ const config = await loadCollabConfig();
136
+ if (!config) {
137
+ console.error(chalk.red('No team initialized. Run: skills collab init <team-name>'));
138
+ process.exit(1);
139
+ }
140
+ if (config.sharedSkills.includes(skillName)) {
141
+ console.log(chalk.yellow(`${skillName} is already shared`));
142
+ return;
143
+ }
144
+ config.sharedSkills.push(skillName);
145
+ await saveCollabConfig(config);
146
+ console.log(chalk.green(`✓ Shared "${skillName}" with team "${config.team}"`));
147
+ console.log(chalk.dim(` Total shared skills: ${config.sharedSkills.length}`));
148
+ }
149
+ async function collabStatus() {
150
+ const config = await loadCollabConfig();
151
+ if (!config) {
152
+ console.log(chalk.yellow('No team initialized. Run: skills collab init <team-name>'));
153
+ return;
154
+ }
155
+ console.log('');
156
+ console.log(chalk.bold(`👥 Team: ${chalk.cyan(config.team)}`));
157
+ console.log('');
158
+ console.log(chalk.bold('Members:'));
159
+ if (config.members.length === 0) {
160
+ console.log(chalk.dim(' No members yet. Use: skills collab add <username>'));
161
+ }
162
+ else {
163
+ for (const m of config.members) {
164
+ console.log(` ${chalk.green('●')} ${m}`);
165
+ }
166
+ }
167
+ console.log('');
168
+ console.log(chalk.bold('Shared Skills:'));
169
+ if (config.sharedSkills.length === 0) {
170
+ console.log(chalk.dim(' No skills shared. Use: skills collab share <skill>'));
171
+ }
172
+ else {
173
+ for (const s of config.sharedSkills) {
174
+ console.log(` ${chalk.cyan('◆')} ${s}`);
175
+ }
176
+ }
177
+ console.log('');
178
+ console.log(chalk.dim(`Created: ${config.createdAt}`));
179
+ console.log(chalk.dim(`Updated: ${config.updatedAt}`));
180
+ console.log('');
181
+ }
182
+ async function collabSync() {
183
+ const config = await loadCollabConfig();
184
+ if (!config) {
185
+ console.error(chalk.red('No team initialized. Run: skills collab init <team-name>'));
186
+ process.exit(1);
187
+ }
188
+ const spinner = p.spinner();
189
+ spinner.start('Syncing team skills...');
190
+ // Sync is currently local-only (future: Git/API based sync)
191
+ await new Promise(r => setTimeout(r, 500));
192
+ spinner.stop('Skills synchronized');
193
+ console.log(chalk.dim(` ${config.sharedSkills.length} skill(s) in sync`));
194
+ console.log('');
195
+ }
196
+ //# sourceMappingURL=collab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collab.js","sourceRoot":"","sources":["../../../src/cli/commands/collab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Convert Command
3
+ * Cross-agent format translation for skills
4
+ * (SkillKit calls this "translate" — we call it "convert")
5
+ */
6
+ import { Command } from 'commander';
7
+ /**
8
+ * Register the convert command
9
+ */
10
+ export declare function registerConvertCommand(program: Command): void;
11
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBpC;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe7D"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Convert Command
3
+ * Cross-agent format translation for skills
4
+ * (SkillKit calls this "translate" — we call it "convert")
5
+ */
6
+ import chalk from 'chalk';
7
+ import ora from 'ora';
8
+ import { readFile, writeFile, mkdir } from 'fs/promises';
9
+ import { existsSync } from 'fs';
10
+ import { resolve, join, basename, dirname } from 'path';
11
+ // File patterns for each agent format
12
+ const FORMAT_MAP = {
13
+ cursor: { file: 'SKILL.md', dir: '.cursor/skills' },
14
+ claude: { file: 'SKILL.md', dir: '.claude/skills' },
15
+ copilot: { file: 'SKILL.md', dir: '.github/skills' },
16
+ codex: { file: 'SKILL.md', dir: '.codex/skills' },
17
+ windsurf: { file: 'SKILL.md', dir: '.windsurf/skills' },
18
+ antigravity: { file: 'SKILL.md', dir: '.agent/skills' },
19
+ };
20
+ const VALID_FORMATS = Object.keys(FORMAT_MAP);
21
+ /**
22
+ * Register the convert command
23
+ */
24
+ export function registerConvertCommand(program) {
25
+ program
26
+ .command('convert <source> <target-format>')
27
+ .alias('cv')
28
+ .description(`Convert skills between agent formats (${VALID_FORMATS.join(', ')})`)
29
+ .option('-o, --output <path>', 'Output file path (default: auto)')
30
+ .option('--overwrite', 'Overwrite existing output file')
31
+ .action(async (source, targetFormat, options) => {
32
+ try {
33
+ await convertCommand(source, targetFormat, options);
34
+ }
35
+ catch (err) {
36
+ console.error(chalk.red('Error:'), err.message);
37
+ process.exit(1);
38
+ }
39
+ });
40
+ }
41
+ async function convertCommand(source, targetFormat, options) {
42
+ // Validate target format
43
+ if (!VALID_FORMATS.includes(targetFormat)) {
44
+ console.error(chalk.red(`Invalid format: ${targetFormat}`));
45
+ console.log(chalk.dim(`Valid formats: ${VALID_FORMATS.join(', ')}`));
46
+ process.exit(1);
47
+ }
48
+ const sourcePath = resolve(source);
49
+ if (!existsSync(sourcePath)) {
50
+ console.error(chalk.red(`Source not found: ${sourcePath}`));
51
+ process.exit(1);
52
+ }
53
+ const spinner = ora(`Converting to ${targetFormat} format...`).start();
54
+ // Read source content
55
+ const content = await readFile(sourcePath, 'utf-8');
56
+ const sourceFormat = detectFormat(sourcePath, content);
57
+ if (!sourceFormat) {
58
+ spinner.fail('Could not detect source format');
59
+ process.exit(1);
60
+ }
61
+ // Parse source into intermediate representation
62
+ const parsed = parseSkillContent(content, sourceFormat);
63
+ // Convert to target format
64
+ const converted = renderToFormat(parsed, targetFormat);
65
+ // Determine output path
66
+ const target = FORMAT_MAP[targetFormat];
67
+ const outputPath = options.output
68
+ ? resolve(options.output)
69
+ : join(dirname(sourcePath), target.dir, target.file);
70
+ if (existsSync(outputPath) && !options.overwrite) {
71
+ spinner.fail(`Output file exists: ${outputPath}`);
72
+ console.log(chalk.dim('Use --overwrite to replace'));
73
+ process.exit(1);
74
+ }
75
+ // Write output
76
+ await mkdir(dirname(outputPath), { recursive: true });
77
+ await writeFile(outputPath, converted);
78
+ spinner.succeed(`Converted ${sourceFormat} → ${targetFormat}`);
79
+ console.log('');
80
+ console.log(` ${chalk.dim('Source:')} ${chalk.cyan(basename(sourcePath))}`);
81
+ console.log(` ${chalk.dim('Output:')} ${chalk.green(outputPath)}`);
82
+ console.log('');
83
+ }
84
+ function detectFormat(filePath, content) {
85
+ const filename = basename(filePath).toLowerCase();
86
+ if (filename === '.cursorrules')
87
+ return 'cursor';
88
+ if (filename === '.windsurfrules')
89
+ return 'windsurf';
90
+ if (filename === 'claude.md')
91
+ return 'claude';
92
+ if (filename === 'agents.md')
93
+ return 'codex';
94
+ if (filename === 'copilot-instructions.md')
95
+ return 'copilot';
96
+ if (filename === 'skill.md')
97
+ return 'antigravity';
98
+ // Try content-based detection
99
+ if (content.startsWith('---\n') && content.includes('name:'))
100
+ return 'antigravity';
101
+ return null;
102
+ }
103
+ function parseSkillContent(content, format) {
104
+ const parsed = {
105
+ name: '',
106
+ description: '',
107
+ sections: [],
108
+ rawContent: content,
109
+ };
110
+ // Extract frontmatter if present
111
+ if (content.startsWith('---\n')) {
112
+ const endIdx = content.indexOf('\n---\n', 4);
113
+ if (endIdx > 0) {
114
+ const fm = content.substring(4, endIdx);
115
+ parsed.frontmatter = {};
116
+ for (const line of fm.split('\n')) {
117
+ const colonIdx = line.indexOf(':');
118
+ if (colonIdx > 0) {
119
+ const key = line.substring(0, colonIdx).trim();
120
+ const val = line.substring(colonIdx + 1).trim();
121
+ parsed.frontmatter[key] = val;
122
+ }
123
+ }
124
+ parsed.name = parsed.frontmatter['name'] || '';
125
+ parsed.description = parsed.frontmatter['description'] || '';
126
+ content = content.substring(endIdx + 5);
127
+ }
128
+ }
129
+ // Parse markdown sections
130
+ const lines = content.split('\n');
131
+ let currentHeading = '';
132
+ let currentContent = [];
133
+ for (const line of lines) {
134
+ if (line.startsWith('# ') || line.startsWith('## ')) {
135
+ if (currentHeading || currentContent.length > 0) {
136
+ parsed.sections.push({ heading: currentHeading, content: currentContent.join('\n').trim() });
137
+ }
138
+ currentHeading = line.replace(/^#+\s*/, '');
139
+ currentContent = [];
140
+ }
141
+ else {
142
+ currentContent.push(line);
143
+ }
144
+ }
145
+ if (currentHeading || currentContent.length > 0) {
146
+ parsed.sections.push({ heading: currentHeading, content: currentContent.join('\n').trim() });
147
+ }
148
+ if (!parsed.name && parsed.sections.length > 0) {
149
+ parsed.name = parsed.sections[0].heading;
150
+ }
151
+ return parsed;
152
+ }
153
+ function renderToFormat(parsed, format) {
154
+ switch (format) {
155
+ case 'antigravity':
156
+ return renderAsSkillMd(parsed);
157
+ case 'cursor':
158
+ case 'windsurf':
159
+ return renderAsCursorRules(parsed);
160
+ case 'claude':
161
+ return renderAsClaudeMd(parsed);
162
+ case 'copilot':
163
+ return renderAsCopilot(parsed);
164
+ case 'codex':
165
+ return renderAsAgentsMd(parsed);
166
+ default:
167
+ return parsed.rawContent;
168
+ }
169
+ }
170
+ function renderAsSkillMd(parsed) {
171
+ const lines = [];
172
+ lines.push('---');
173
+ lines.push(`name: ${parsed.name || 'converted-skill'}`);
174
+ lines.push(`description: ${parsed.description || 'Converted skill'}`);
175
+ lines.push('---');
176
+ lines.push('');
177
+ for (const section of parsed.sections) {
178
+ if (section.heading)
179
+ lines.push(`## ${section.heading}`);
180
+ if (section.content)
181
+ lines.push(section.content);
182
+ lines.push('');
183
+ }
184
+ return lines.join('\n');
185
+ }
186
+ function renderAsCursorRules(parsed) {
187
+ const lines = [];
188
+ if (parsed.name)
189
+ lines.push(`# ${parsed.name}`);
190
+ lines.push('');
191
+ for (const section of parsed.sections) {
192
+ if (section.heading)
193
+ lines.push(`## ${section.heading}`);
194
+ if (section.content)
195
+ lines.push(section.content);
196
+ lines.push('');
197
+ }
198
+ return lines.join('\n');
199
+ }
200
+ function renderAsClaudeMd(parsed) {
201
+ return renderAsCursorRules(parsed);
202
+ }
203
+ function renderAsCopilot(parsed) {
204
+ const lines = [];
205
+ lines.push(`# Copilot Instructions${parsed.name ? `: ${parsed.name}` : ''}`);
206
+ lines.push('');
207
+ for (const section of parsed.sections) {
208
+ if (section.heading)
209
+ lines.push(`## ${section.heading}`);
210
+ if (section.content)
211
+ lines.push(section.content);
212
+ lines.push('');
213
+ }
214
+ return lines.join('\n');
215
+ }
216
+ function renderAsAgentsMd(parsed) {
217
+ return renderAsClaudeMd(parsed);
218
+ }
219
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../../src/cli/commands/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Craft Command
3
+ * Enhanced skill scaffolding with optional directories
4
+ * (SkillKit calls this "create" — we call it "craft")
5
+ */
6
+ import { Command } from 'commander';
7
+ export interface CraftOptions {
8
+ full?: boolean;
9
+ scripts?: boolean;
10
+ references?: boolean;
11
+ assets?: boolean;
12
+ dir?: string;
13
+ }
14
+ /**
15
+ * Register the craft command with commander
16
+ */
17
+ export declare function registerCraftCommand(program: Command): void;
18
+ //# sourceMappingURL=craft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"craft.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/craft.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiB3D"}