driftdetect 0.4.7 → 0.5.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.
- package/dist/bin/drift.js +27 -1
- package/dist/bin/drift.js.map +1 -1
- package/dist/commands/approve.d.ts +20 -0
- package/dist/commands/approve.d.ts.map +1 -1
- package/dist/commands/approve.js +38 -72
- package/dist/commands/approve.js.map +1 -1
- package/dist/commands/check.d.ts +41 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +21 -11
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/coupling.d.ts +17 -0
- package/dist/commands/coupling.d.ts.map +1 -0
- package/dist/commands/coupling.js +726 -0
- package/dist/commands/coupling.js.map +1 -0
- package/dist/commands/error-handling.d.ts +15 -0
- package/dist/commands/error-handling.d.ts.map +1 -0
- package/dist/commands/error-handling.js +608 -0
- package/dist/commands/error-handling.js.map +1 -0
- package/dist/commands/export.d.ts +16 -0
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +46 -50
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/files.d.ts +15 -0
- package/dist/commands/files.d.ts.map +1 -1
- package/dist/commands/files.js +27 -48
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/ignore.d.ts +20 -0
- package/dist/commands/ignore.d.ts.map +1 -1
- package/dist/commands/ignore.js +25 -48
- package/dist/commands/ignore.js.map +1 -1
- package/dist/commands/index.d.ts +6 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +7 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/migrate-storage.d.ts +23 -0
- package/dist/commands/migrate-storage.d.ts.map +1 -0
- package/dist/commands/migrate-storage.js +337 -0
- package/dist/commands/migrate-storage.js.map +1 -0
- package/dist/commands/report.d.ts +22 -0
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +19 -10
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/scan.d.ts +2 -0
- package/dist/commands/scan.d.ts.map +1 -1
- package/dist/commands/scan.js +134 -3
- package/dist/commands/scan.js.map +1 -1
- package/dist/commands/skills.d.ts +16 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +409 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +20 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +74 -72
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/test-topology.d.ts +15 -0
- package/dist/commands/test-topology.d.ts.map +1 -0
- package/dist/commands/test-topology.js +589 -0
- package/dist/commands/test-topology.js.map +1 -0
- package/dist/commands/where.d.ts +15 -0
- package/dist/commands/where.d.ts.map +1 -1
- package/dist/commands/where.js +41 -88
- package/dist/commands/where.js.map +1 -1
- package/dist/commands/wrappers.d.ts +16 -0
- package/dist/commands/wrappers.d.ts.map +1 -0
- package/dist/commands/wrappers.js +181 -0
- package/dist/commands/wrappers.js.map +1 -0
- package/dist/services/pattern-service-factory.d.ts +37 -0
- package/dist/services/pattern-service-factory.d.ts.map +1 -0
- package/dist/services/pattern-service-factory.js +41 -0
- package/dist/services/pattern-service-factory.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Command - drift skills
|
|
3
|
+
*
|
|
4
|
+
* Manage Agent Skills for AI-assisted development.
|
|
5
|
+
* Skills are folders of instructions, scripts, and resources that AI agents
|
|
6
|
+
* can load to perform specialized tasks.
|
|
7
|
+
*
|
|
8
|
+
* Commands:
|
|
9
|
+
* - drift skills list - List available skills
|
|
10
|
+
* - drift skills install - Install a skill to your project
|
|
11
|
+
* - drift skills info - Show skill details
|
|
12
|
+
* - drift skills search - Search skills by keyword
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
import chalk from 'chalk';
|
|
16
|
+
import * as fs from 'fs';
|
|
17
|
+
import * as path from 'path';
|
|
18
|
+
import { fileURLToPath } from 'url';
|
|
19
|
+
import { createSpinner, status } from '../ui/spinner.js';
|
|
20
|
+
import { confirmPrompt, selectPrompt } from '../ui/prompts.js';
|
|
21
|
+
// ESM compatibility
|
|
22
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
23
|
+
const __dirname = path.dirname(__filename);
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Skill Discovery
|
|
26
|
+
// ============================================================================
|
|
27
|
+
function getSkillsDirectory() {
|
|
28
|
+
// Skills are bundled with the drift package
|
|
29
|
+
// Look in multiple locations for development vs installed
|
|
30
|
+
const possiblePaths = [
|
|
31
|
+
path.join(__dirname, '../../../../skills'), // Development
|
|
32
|
+
path.join(__dirname, '../../../skills'), // Built
|
|
33
|
+
path.join(process.cwd(), 'node_modules/driftdetect-cli/skills'),
|
|
34
|
+
path.join(process.cwd(), 'skills'), // Local skills
|
|
35
|
+
];
|
|
36
|
+
for (const p of possiblePaths) {
|
|
37
|
+
if (fs.existsSync(p)) {
|
|
38
|
+
return p;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
// Fallback to drift repo skills
|
|
42
|
+
return path.join(__dirname, '../../../../skills');
|
|
43
|
+
}
|
|
44
|
+
function parseSkillMd(content) {
|
|
45
|
+
// Parse YAML frontmatter
|
|
46
|
+
const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
47
|
+
if (!frontmatterMatch || !frontmatterMatch[1])
|
|
48
|
+
return null;
|
|
49
|
+
const frontmatter = frontmatterMatch[1];
|
|
50
|
+
const metadata = {};
|
|
51
|
+
// Simple YAML parsing for frontmatter
|
|
52
|
+
const lines = frontmatter.split('\n');
|
|
53
|
+
let inMetadata = false;
|
|
54
|
+
const metadataObj = {};
|
|
55
|
+
for (const line of lines) {
|
|
56
|
+
if (line.startsWith('metadata:')) {
|
|
57
|
+
inMetadata = true;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (inMetadata && line.startsWith(' ')) {
|
|
61
|
+
const match = line.match(/^\s+(\w+):\s*(.+)/);
|
|
62
|
+
if (match && match[1]) {
|
|
63
|
+
metadataObj[match[1]] = match[2]?.trim() ?? '';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else if (line.includes(':')) {
|
|
67
|
+
inMetadata = false;
|
|
68
|
+
const colonIndex = line.indexOf(':');
|
|
69
|
+
const key = line.slice(0, colonIndex).trim();
|
|
70
|
+
const value = line.slice(colonIndex + 1).trim();
|
|
71
|
+
if (key) {
|
|
72
|
+
metadata[key] = value;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (Object.keys(metadataObj).length > 0) {
|
|
77
|
+
metadata['metadata'] = metadataObj;
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
name: metadata['name'] || '',
|
|
81
|
+
description: metadata['description'] || '',
|
|
82
|
+
license: metadata['license'],
|
|
83
|
+
compatibility: metadata['compatibility'],
|
|
84
|
+
metadata: metadata['metadata'],
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function discoverSkills(skillsDir) {
|
|
88
|
+
const skills = [];
|
|
89
|
+
if (!fs.existsSync(skillsDir)) {
|
|
90
|
+
return skills;
|
|
91
|
+
}
|
|
92
|
+
const entries = fs.readdirSync(skillsDir, { withFileTypes: true });
|
|
93
|
+
for (const entry of entries) {
|
|
94
|
+
if (!entry.isDirectory())
|
|
95
|
+
continue;
|
|
96
|
+
if (entry.name.startsWith('_'))
|
|
97
|
+
continue; // Skip templates
|
|
98
|
+
const skillPath = path.join(skillsDir, entry.name);
|
|
99
|
+
const skillMdPath = path.join(skillPath, 'SKILL.md');
|
|
100
|
+
if (!fs.existsSync(skillMdPath))
|
|
101
|
+
continue;
|
|
102
|
+
const content = fs.readFileSync(skillMdPath, 'utf-8');
|
|
103
|
+
const metadata = parseSkillMd(content);
|
|
104
|
+
if (!metadata)
|
|
105
|
+
continue;
|
|
106
|
+
// Get all files in skill directory
|
|
107
|
+
const files = fs.readdirSync(skillPath);
|
|
108
|
+
skills.push({
|
|
109
|
+
...metadata,
|
|
110
|
+
path: skillPath,
|
|
111
|
+
files,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return skills;
|
|
115
|
+
}
|
|
116
|
+
// ============================================================================
|
|
117
|
+
// Formatters
|
|
118
|
+
// ============================================================================
|
|
119
|
+
function formatCategory(category) {
|
|
120
|
+
const colors = {
|
|
121
|
+
resilience: chalk.yellow,
|
|
122
|
+
api: chalk.blue,
|
|
123
|
+
auth: chalk.green,
|
|
124
|
+
integrations: chalk.magenta,
|
|
125
|
+
workers: chalk.cyan,
|
|
126
|
+
database: chalk.red,
|
|
127
|
+
frontend: chalk.rgb(255, 165, 0),
|
|
128
|
+
};
|
|
129
|
+
if (!category)
|
|
130
|
+
return chalk.gray('general');
|
|
131
|
+
return (colors[category] ?? chalk.gray)(category);
|
|
132
|
+
}
|
|
133
|
+
function formatTime(time) {
|
|
134
|
+
if (!time)
|
|
135
|
+
return chalk.gray('-');
|
|
136
|
+
return chalk.white(time);
|
|
137
|
+
}
|
|
138
|
+
async function listAction(options) {
|
|
139
|
+
const skillsDir = getSkillsDirectory();
|
|
140
|
+
let skills = discoverSkills(skillsDir);
|
|
141
|
+
if (options.category) {
|
|
142
|
+
skills = skills.filter(s => s.metadata?.category?.toLowerCase() === options.category.toLowerCase());
|
|
143
|
+
}
|
|
144
|
+
// Sort by category then name
|
|
145
|
+
skills.sort((a, b) => {
|
|
146
|
+
const catA = a.metadata?.category || 'zzz';
|
|
147
|
+
const catB = b.metadata?.category || 'zzz';
|
|
148
|
+
if (catA !== catB)
|
|
149
|
+
return catA.localeCompare(catB);
|
|
150
|
+
return a.name.localeCompare(b.name);
|
|
151
|
+
});
|
|
152
|
+
if (options.json) {
|
|
153
|
+
console.log(JSON.stringify(skills, null, 2));
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
if (skills.length === 0) {
|
|
157
|
+
console.log();
|
|
158
|
+
console.log(chalk.yellow('No skills found.'));
|
|
159
|
+
console.log(chalk.gray('Skills directory: ' + skillsDir));
|
|
160
|
+
console.log();
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
console.log();
|
|
164
|
+
console.log(chalk.bold(`🎯 Available Skills (${skills.length})`));
|
|
165
|
+
console.log();
|
|
166
|
+
// Table header
|
|
167
|
+
console.log(chalk.gray(' ' +
|
|
168
|
+
'Name'.padEnd(22) +
|
|
169
|
+
'Category'.padEnd(14) +
|
|
170
|
+
'Time'.padEnd(8) +
|
|
171
|
+
'Description'));
|
|
172
|
+
console.log(chalk.gray(' ' + '─'.repeat(90)));
|
|
173
|
+
for (const skill of skills) {
|
|
174
|
+
const name = chalk.cyan(skill.name.padEnd(22));
|
|
175
|
+
const category = formatCategory(skill.metadata?.category).padEnd(14);
|
|
176
|
+
const time = formatTime(skill.metadata?.time).padEnd(8);
|
|
177
|
+
const desc = skill.description.slice(0, 45) + (skill.description.length > 45 ? '...' : '');
|
|
178
|
+
console.log(` ${name}${category}${time}${chalk.gray(desc)}`);
|
|
179
|
+
}
|
|
180
|
+
console.log();
|
|
181
|
+
console.log(chalk.gray('Install a skill: drift skills install <name>'));
|
|
182
|
+
console.log(chalk.gray('View details: drift skills info <name>'));
|
|
183
|
+
console.log();
|
|
184
|
+
}
|
|
185
|
+
async function installAction(skillNames, options) {
|
|
186
|
+
const skillsDir = getSkillsDirectory();
|
|
187
|
+
const skills = discoverSkills(skillsDir);
|
|
188
|
+
const targetDir = path.join(process.cwd(), '.github', 'skills');
|
|
189
|
+
// If --all, install all skills
|
|
190
|
+
if (options.all) {
|
|
191
|
+
skillNames = skills.map(s => s.name);
|
|
192
|
+
}
|
|
193
|
+
if (skillNames.length === 0) {
|
|
194
|
+
// Interactive selection
|
|
195
|
+
const choices = skills.map(s => ({
|
|
196
|
+
name: `${s.name} - ${s.description.slice(0, 50)}...`,
|
|
197
|
+
value: s.name,
|
|
198
|
+
}));
|
|
199
|
+
const selected = await selectPrompt('Select skill to install:', choices);
|
|
200
|
+
skillNames = [selected];
|
|
201
|
+
}
|
|
202
|
+
// Ensure target directory exists
|
|
203
|
+
if (!fs.existsSync(targetDir)) {
|
|
204
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
205
|
+
}
|
|
206
|
+
let installed = 0;
|
|
207
|
+
let skipped = 0;
|
|
208
|
+
for (const skillName of skillNames) {
|
|
209
|
+
const skill = skills.find(s => s.name === skillName);
|
|
210
|
+
if (!skill) {
|
|
211
|
+
status.error(`Skill not found: ${skillName}`);
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
const destPath = path.join(targetDir, skill.name);
|
|
215
|
+
// Check if already installed
|
|
216
|
+
if (fs.existsSync(destPath) && !options.force) {
|
|
217
|
+
status.info(`Skill already installed: ${skill.name} (use --force to overwrite)`);
|
|
218
|
+
skipped++;
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
const spinner = createSpinner(`Installing ${skill.name}...`);
|
|
222
|
+
spinner.start();
|
|
223
|
+
try {
|
|
224
|
+
// Copy skill directory
|
|
225
|
+
copyDirectory(skill.path, destPath);
|
|
226
|
+
spinner.succeed(`Installed ${chalk.cyan(skill.name)}`);
|
|
227
|
+
installed++;
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
spinner.fail(`Failed to install ${skill.name}`);
|
|
231
|
+
console.error(chalk.red(error.message));
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
console.log();
|
|
235
|
+
if (installed > 0) {
|
|
236
|
+
status.success(`Installed ${installed} skill(s) to ${chalk.gray('.github/skills/')}`);
|
|
237
|
+
}
|
|
238
|
+
if (skipped > 0) {
|
|
239
|
+
console.log(chalk.gray(`Skipped ${skipped} already installed skill(s)`));
|
|
240
|
+
}
|
|
241
|
+
console.log();
|
|
242
|
+
}
|
|
243
|
+
function copyDirectory(src, dest) {
|
|
244
|
+
if (!fs.existsSync(dest)) {
|
|
245
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
246
|
+
}
|
|
247
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
248
|
+
for (const entry of entries) {
|
|
249
|
+
const srcPath = path.join(src, entry.name);
|
|
250
|
+
const destPath = path.join(dest, entry.name);
|
|
251
|
+
if (entry.isDirectory()) {
|
|
252
|
+
copyDirectory(srcPath, destPath);
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
fs.copyFileSync(srcPath, destPath);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
// ============================================================================
|
|
260
|
+
// Info Command
|
|
261
|
+
// ============================================================================
|
|
262
|
+
async function infoAction(skillName) {
|
|
263
|
+
const skillsDir = getSkillsDirectory();
|
|
264
|
+
const skills = discoverSkills(skillsDir);
|
|
265
|
+
let skill;
|
|
266
|
+
if (skillName) {
|
|
267
|
+
skill = skills.find(s => s.name === skillName);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
// Interactive selection
|
|
271
|
+
const choices = skills.map(s => ({
|
|
272
|
+
name: `${s.name} - ${s.description.slice(0, 40)}...`,
|
|
273
|
+
value: s.name,
|
|
274
|
+
}));
|
|
275
|
+
const selected = await selectPrompt('Select skill:', choices);
|
|
276
|
+
skill = skills.find(s => s.name === selected);
|
|
277
|
+
}
|
|
278
|
+
if (!skill) {
|
|
279
|
+
status.error(`Skill not found: ${skillName}`);
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
console.log();
|
|
283
|
+
console.log(chalk.bold(`🎯 ${skill.name}`));
|
|
284
|
+
console.log();
|
|
285
|
+
console.log(chalk.gray(' Description: ') + skill.description);
|
|
286
|
+
console.log(chalk.gray(' Category: ') + formatCategory(skill.metadata?.category));
|
|
287
|
+
console.log(chalk.gray(' Time: ') + formatTime(skill.metadata?.time));
|
|
288
|
+
console.log(chalk.gray(' Compatibility: ') + (skill.compatibility || 'Any'));
|
|
289
|
+
console.log(chalk.gray(' License: ') + (skill.license || 'MIT'));
|
|
290
|
+
console.log();
|
|
291
|
+
console.log(chalk.gray(' Files:'));
|
|
292
|
+
for (const file of skill.files) {
|
|
293
|
+
console.log(chalk.gray(' - ') + file);
|
|
294
|
+
}
|
|
295
|
+
console.log();
|
|
296
|
+
console.log(chalk.gray(' Path: ') + skill.path);
|
|
297
|
+
console.log();
|
|
298
|
+
// Show preview of SKILL.md
|
|
299
|
+
const skillMdPath = path.join(skill.path, 'SKILL.md');
|
|
300
|
+
const content = fs.readFileSync(skillMdPath, 'utf-8');
|
|
301
|
+
// Extract first section after frontmatter
|
|
302
|
+
const bodyMatch = content.match(/^---[\s\S]*?---\n\n([\s\S]*?)(?=\n## |$)/);
|
|
303
|
+
if (bodyMatch && bodyMatch[1]) {
|
|
304
|
+
console.log(chalk.bold(' Preview:'));
|
|
305
|
+
console.log();
|
|
306
|
+
const preview = bodyMatch[1].split('\n').slice(0, 10).map(l => ' ' + l).join('\n');
|
|
307
|
+
console.log(chalk.gray(preview));
|
|
308
|
+
console.log(chalk.gray(' ...'));
|
|
309
|
+
}
|
|
310
|
+
console.log();
|
|
311
|
+
console.log(chalk.gray(`Install: drift skills install ${skill.name}`));
|
|
312
|
+
console.log();
|
|
313
|
+
}
|
|
314
|
+
// ============================================================================
|
|
315
|
+
// Search Command
|
|
316
|
+
// ============================================================================
|
|
317
|
+
async function searchAction(query) {
|
|
318
|
+
const skillsDir = getSkillsDirectory();
|
|
319
|
+
const skills = discoverSkills(skillsDir);
|
|
320
|
+
const queryLower = query.toLowerCase();
|
|
321
|
+
const matches = skills.filter(s => s.name.toLowerCase().includes(queryLower) ||
|
|
322
|
+
s.description.toLowerCase().includes(queryLower) ||
|
|
323
|
+
s.metadata?.category?.toLowerCase().includes(queryLower));
|
|
324
|
+
if (matches.length === 0) {
|
|
325
|
+
console.log();
|
|
326
|
+
console.log(chalk.yellow(`No skills found matching "${query}"`));
|
|
327
|
+
console.log();
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
console.log();
|
|
331
|
+
console.log(chalk.bold(`🔍 Search Results for "${query}" (${matches.length})`));
|
|
332
|
+
console.log();
|
|
333
|
+
for (const skill of matches) {
|
|
334
|
+
console.log(` ${chalk.cyan(skill.name.padEnd(20))} ${formatCategory(skill.metadata?.category).padEnd(12)} ${chalk.gray(skill.description.slice(0, 50))}...`);
|
|
335
|
+
}
|
|
336
|
+
console.log();
|
|
337
|
+
}
|
|
338
|
+
// ============================================================================
|
|
339
|
+
// Uninstall Command
|
|
340
|
+
// ============================================================================
|
|
341
|
+
async function uninstallAction(skillName) {
|
|
342
|
+
const targetDir = path.join(process.cwd(), '.github', 'skills');
|
|
343
|
+
if (!fs.existsSync(targetDir)) {
|
|
344
|
+
status.error('No skills installed');
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
const installed = fs.readdirSync(targetDir, { withFileTypes: true })
|
|
348
|
+
.filter(e => e.isDirectory() && !e.name.startsWith('_'))
|
|
349
|
+
.map(e => e.name);
|
|
350
|
+
if (installed.length === 0) {
|
|
351
|
+
status.error('No skills installed');
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
let toRemove;
|
|
355
|
+
if (skillName) {
|
|
356
|
+
if (!installed.includes(skillName)) {
|
|
357
|
+
status.error(`Skill not installed: ${skillName}`);
|
|
358
|
+
return;
|
|
359
|
+
}
|
|
360
|
+
toRemove = skillName;
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
// Interactive selection
|
|
364
|
+
const choices = installed.map(name => ({ name, value: name }));
|
|
365
|
+
toRemove = await selectPrompt('Select skill to uninstall:', choices);
|
|
366
|
+
}
|
|
367
|
+
const confirmed = await confirmPrompt(`Uninstall ${toRemove}?`, false);
|
|
368
|
+
if (!confirmed) {
|
|
369
|
+
status.info('Cancelled');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
const skillPath = path.join(targetDir, toRemove);
|
|
373
|
+
fs.rmSync(skillPath, { recursive: true });
|
|
374
|
+
status.success(`Uninstalled ${toRemove}`);
|
|
375
|
+
}
|
|
376
|
+
// ============================================================================
|
|
377
|
+
// Command Registration
|
|
378
|
+
// ============================================================================
|
|
379
|
+
export const skillsCommand = new Command('skills')
|
|
380
|
+
.description('Manage Agent Skills for AI-assisted development')
|
|
381
|
+
.addCommand(new Command('list')
|
|
382
|
+
.alias('ls')
|
|
383
|
+
.description('List available skills')
|
|
384
|
+
.option('--json', 'Output as JSON')
|
|
385
|
+
.option('-c, --category <category>', 'Filter by category')
|
|
386
|
+
.action(listAction))
|
|
387
|
+
.addCommand(new Command('install')
|
|
388
|
+
.alias('i')
|
|
389
|
+
.description('Install skill(s) to your project')
|
|
390
|
+
.argument('[skills...]', 'Skill name(s) to install')
|
|
391
|
+
.option('-f, --force', 'Overwrite existing skills')
|
|
392
|
+
.option('-a, --all', 'Install all available skills')
|
|
393
|
+
.action(installAction))
|
|
394
|
+
.addCommand(new Command('info')
|
|
395
|
+
.description('Show skill details')
|
|
396
|
+
.argument('[name]', 'Skill name')
|
|
397
|
+
.action(infoAction))
|
|
398
|
+
.addCommand(new Command('search')
|
|
399
|
+
.description('Search skills by keyword')
|
|
400
|
+
.argument('<query>', 'Search query')
|
|
401
|
+
.action(searchAction))
|
|
402
|
+
.addCommand(new Command('uninstall')
|
|
403
|
+
.alias('rm')
|
|
404
|
+
.description('Uninstall a skill from your project')
|
|
405
|
+
.argument('[name]', 'Skill name')
|
|
406
|
+
.action(uninstallAction));
|
|
407
|
+
// Default action (list)
|
|
408
|
+
skillsCommand.action(listAction);
|
|
409
|
+
//# sourceMappingURL=skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Status Command - drift status
|
|
3
|
+
*
|
|
4
|
+
* Show current drift status including patterns and violations.
|
|
5
|
+
*
|
|
6
|
+
* MIGRATION: Now uses IPatternService for pattern operations.
|
|
7
|
+
*
|
|
8
|
+
* @requirements 29.4
|
|
9
|
+
*/
|
|
10
|
+
import { Command } from 'commander';
|
|
11
|
+
export interface StatusOptions {
|
|
12
|
+
/** Show detailed information */
|
|
13
|
+
detailed?: boolean;
|
|
14
|
+
/** Output format */
|
|
15
|
+
format?: 'text' | 'json';
|
|
16
|
+
/** Enable verbose output */
|
|
17
|
+
verbose?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const statusCommand: Command;
|
|
20
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgND,eAAO,MAAM,aAAa,SAKH,CAAC"}
|