@buoy-design/cli 0.1.13 → 0.1.14
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/LICENSE +21 -0
- package/dist/commands/begin.d.ts.map +1 -1
- package/dist/commands/begin.js +18 -0
- package/dist/commands/begin.js.map +1 -1
- package/dist/commands/check.d.ts +10 -0
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +75 -1
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/ci.d.ts.map +1 -1
- package/dist/commands/ci.js +29 -3
- package/dist/commands/ci.js.map +1 -1
- package/dist/commands/ci.logic.d.ts +8 -2
- package/dist/commands/ci.logic.d.ts.map +1 -1
- package/dist/commands/ci.logic.js +17 -3
- package/dist/commands/ci.logic.js.map +1 -1
- package/dist/commands/context.d.ts +9 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +217 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/fix.d.ts +8 -0
- package/dist/commands/fix.d.ts.map +1 -0
- package/dist/commands/fix.js +224 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +3 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/skill.d.ts +9 -0
- package/dist/commands/skill.d.ts.map +1 -0
- package/dist/commands/skill.js +190 -0
- package/dist/commands/skill.js.map +1 -0
- package/dist/commands/tokens.d.ts.map +1 -1
- package/dist/commands/tokens.js +169 -2
- package/dist/commands/tokens.js.map +1 -1
- package/dist/fix/applier.d.ts +25 -0
- package/dist/fix/applier.d.ts.map +1 -0
- package/dist/fix/applier.js +211 -0
- package/dist/fix/applier.js.map +1 -0
- package/dist/fix/index.d.ts +10 -0
- package/dist/fix/index.d.ts.map +1 -0
- package/dist/fix/index.js +8 -0
- package/dist/fix/index.js.map +1 -0
- package/dist/fix/safety.d.ts +30 -0
- package/dist/fix/safety.d.ts.map +1 -0
- package/dist/fix/safety.js +168 -0
- package/dist/fix/safety.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -13
- package/dist/index.js.map +1 -1
- package/dist/output/fix-formatters.d.ts +36 -0
- package/dist/output/fix-formatters.d.ts.map +1 -0
- package/dist/output/fix-formatters.js +247 -0
- package/dist/output/fix-formatters.js.map +1 -0
- package/dist/output/index.d.ts +1 -0
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +1 -0
- package/dist/output/index.js.map +1 -1
- package/dist/output/reports.d.ts +154 -0
- package/dist/output/reports.d.ts.map +1 -0
- package/dist/output/reports.js +392 -0
- package/dist/output/reports.js.map +1 -0
- package/dist/services/context-generator.d.ts +43 -0
- package/dist/services/context-generator.d.ts.map +1 -0
- package/dist/services/context-generator.js +252 -0
- package/dist/services/context-generator.js.map +1 -0
- package/dist/services/skill-export.d.ts +96 -0
- package/dist/services/skill-export.d.ts.map +1 -0
- package/dist/services/skill-export.js +566 -0
- package/dist/services/skill-export.js.map +1 -0
- package/dist/wizard/ai-guardrails-generator.d.ts +20 -0
- package/dist/wizard/ai-guardrails-generator.d.ts.map +1 -0
- package/dist/wizard/ai-guardrails-generator.js +259 -0
- package/dist/wizard/ai-guardrails-generator.js.map +1 -0
- package/dist/wizard/index.d.ts +1 -0
- package/dist/wizard/index.d.ts.map +1 -1
- package/dist/wizard/index.js +1 -0
- package/dist/wizard/index.js.map +1 -1
- package/package.json +15 -15
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Command
|
|
3
|
+
*
|
|
4
|
+
* Generates design system context for CLAUDE.md files.
|
|
5
|
+
* Helps AI agents understand and follow design system rules.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
import { readFile, writeFile, appendFile } from 'node:fs/promises';
|
|
9
|
+
import { existsSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import { loadConfig, getConfigPath } from '../config/loader.js';
|
|
12
|
+
import { buildAutoConfig } from '../config/auto-detect.js';
|
|
13
|
+
import { spinner, success, error, warning, info, setJsonMode, } from '../output/reporters.js';
|
|
14
|
+
import { ScanOrchestrator } from '../scan/orchestrator.js';
|
|
15
|
+
import { generateContext, } from '../services/context-generator.js';
|
|
16
|
+
export function createContextCommand() {
|
|
17
|
+
const cmd = new Command('context')
|
|
18
|
+
.description('Generate design system context for CLAUDE.md')
|
|
19
|
+
.option('-o, --output <path>', 'Output file path (default: stdout)')
|
|
20
|
+
.option('--append', 'Append to CLAUDE.md in current directory')
|
|
21
|
+
.option('-d, --detail <level>', 'Detail level: minimal, standard, comprehensive', 'standard')
|
|
22
|
+
.option('--no-tokens', 'Exclude token information')
|
|
23
|
+
.option('--no-components', 'Exclude component information')
|
|
24
|
+
.option('--no-validation', 'Exclude validation commands')
|
|
25
|
+
.option('--json', 'Output as JSON with stats')
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
if (options.json) {
|
|
28
|
+
setJsonMode(true);
|
|
29
|
+
}
|
|
30
|
+
const spin = spinner('Loading configuration...');
|
|
31
|
+
try {
|
|
32
|
+
// Load or auto-detect config
|
|
33
|
+
const existingConfigPath = getConfigPath();
|
|
34
|
+
let config;
|
|
35
|
+
if (existingConfigPath) {
|
|
36
|
+
const result = await loadConfig();
|
|
37
|
+
config = result.config;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
spin.text = 'Auto-detecting project setup...';
|
|
41
|
+
const autoResult = await buildAutoConfig(process.cwd());
|
|
42
|
+
config = autoResult.config;
|
|
43
|
+
}
|
|
44
|
+
// Scan for tokens and components
|
|
45
|
+
spin.text = 'Scanning design system...';
|
|
46
|
+
const orchestrator = new ScanOrchestrator(config, process.cwd());
|
|
47
|
+
const scanResult = await orchestrator.scan();
|
|
48
|
+
// Run drift analysis to get anti-patterns
|
|
49
|
+
spin.text = 'Analyzing drift...';
|
|
50
|
+
const { SemanticDiffEngine } = await import('@buoy-design/core/analysis');
|
|
51
|
+
const engine = new SemanticDiffEngine();
|
|
52
|
+
const diffResult = engine.analyzeComponents(scanResult.components, {
|
|
53
|
+
availableTokens: scanResult.tokens,
|
|
54
|
+
});
|
|
55
|
+
// Get project name
|
|
56
|
+
const projectName = await getProjectName(process.cwd());
|
|
57
|
+
// Prepare context data
|
|
58
|
+
const contextData = {
|
|
59
|
+
tokens: scanResult.tokens,
|
|
60
|
+
components: scanResult.components,
|
|
61
|
+
drifts: diffResult.drifts,
|
|
62
|
+
projectName,
|
|
63
|
+
};
|
|
64
|
+
// Validate detail level
|
|
65
|
+
const detailLevel = validateDetailLevel(options.detail);
|
|
66
|
+
// Generate context
|
|
67
|
+
spin.text = 'Generating context...';
|
|
68
|
+
const result = generateContext(contextData, {
|
|
69
|
+
detailLevel,
|
|
70
|
+
includeTokens: options.tokens,
|
|
71
|
+
includeComponents: options.components,
|
|
72
|
+
includeValidation: options.validation,
|
|
73
|
+
});
|
|
74
|
+
spin.stop();
|
|
75
|
+
// Handle output
|
|
76
|
+
if (options.json) {
|
|
77
|
+
console.log(JSON.stringify({
|
|
78
|
+
content: result.content,
|
|
79
|
+
stats: result.stats,
|
|
80
|
+
detailLevel,
|
|
81
|
+
}, null, 2));
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (options.append) {
|
|
85
|
+
await handleAppend(result.content, process.cwd(), result.stats);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (options.output) {
|
|
89
|
+
await writeFile(options.output, result.content, 'utf-8');
|
|
90
|
+
success(`Context written to ${options.output}`);
|
|
91
|
+
showStats(result.stats);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// Default: stdout
|
|
95
|
+
console.log(result.content);
|
|
96
|
+
// No Dead Ends: Show guidance after output
|
|
97
|
+
if (result.stats.tokenCount === 0 && result.stats.componentCount === 0) {
|
|
98
|
+
console.error('');
|
|
99
|
+
console.error('Note: Generated minimal context (no tokens or components found).');
|
|
100
|
+
console.error(' Run `buoy scan` to see what can be detected.');
|
|
101
|
+
console.error(' Run `buoy tokens` to extract tokens from hardcoded values.');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (err) {
|
|
105
|
+
spin.stop();
|
|
106
|
+
error(err instanceof Error ? err.message : 'Context generation failed');
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return cmd;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get project name from package.json or directory name
|
|
114
|
+
*/
|
|
115
|
+
async function getProjectName(cwd) {
|
|
116
|
+
const packageJsonPath = join(cwd, 'package.json');
|
|
117
|
+
if (existsSync(packageJsonPath)) {
|
|
118
|
+
try {
|
|
119
|
+
const content = await readFile(packageJsonPath, 'utf-8');
|
|
120
|
+
const pkg = JSON.parse(content);
|
|
121
|
+
if (pkg.name) {
|
|
122
|
+
// Clean up package name (remove scope, capitalize)
|
|
123
|
+
const name = pkg.name.replace(/^@[^/]+\//, '');
|
|
124
|
+
return name
|
|
125
|
+
.split('-')
|
|
126
|
+
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
127
|
+
.join(' ');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// Ignore parse errors
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Fall back to directory name
|
|
135
|
+
const parts = cwd.split('/');
|
|
136
|
+
const dirName = parts[parts.length - 1] || 'Project';
|
|
137
|
+
return dirName
|
|
138
|
+
.split('-')
|
|
139
|
+
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
140
|
+
.join(' ');
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Validate and normalize detail level
|
|
144
|
+
*/
|
|
145
|
+
function validateDetailLevel(level) {
|
|
146
|
+
const normalized = level.toLowerCase();
|
|
147
|
+
if (normalized === 'minimal' || normalized === 'standard' || normalized === 'comprehensive') {
|
|
148
|
+
return normalized;
|
|
149
|
+
}
|
|
150
|
+
return 'standard';
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Handle append mode - append to CLAUDE.md
|
|
154
|
+
*/
|
|
155
|
+
async function handleAppend(content, cwd, stats) {
|
|
156
|
+
const claudeMdPath = join(cwd, 'CLAUDE.md');
|
|
157
|
+
if (existsSync(claudeMdPath)) {
|
|
158
|
+
// Check if design system section already exists
|
|
159
|
+
const existing = await readFile(claudeMdPath, 'utf-8');
|
|
160
|
+
if (existing.includes('## Design System Rules')) {
|
|
161
|
+
// No Dead Ends: Explain what we found and give options
|
|
162
|
+
warning('CLAUDE.md already has a Design System Rules section.');
|
|
163
|
+
console.log('');
|
|
164
|
+
console.log(' What was scanned:');
|
|
165
|
+
if (stats) {
|
|
166
|
+
console.log(` • ${stats.tokenCount} tokens found`);
|
|
167
|
+
console.log(` • ${stats.componentCount} components found`);
|
|
168
|
+
if (stats.antiPatternCount > 0) {
|
|
169
|
+
console.log(` • ${stats.antiPatternCount} anti-patterns detected`);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
console.log('');
|
|
173
|
+
console.log(' Options:');
|
|
174
|
+
console.log(' • Remove existing section manually, then re-run');
|
|
175
|
+
console.log(' • Use --output context.md to write to a separate file');
|
|
176
|
+
console.log(' • Pipe to clipboard: buoy context | pbcopy (macOS)');
|
|
177
|
+
console.log('');
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
// Append with separator
|
|
181
|
+
const toAppend = '\n\n---\n\n' + content;
|
|
182
|
+
await appendFile(claudeMdPath, toAppend, 'utf-8');
|
|
183
|
+
success('Design system context appended to CLAUDE.md');
|
|
184
|
+
if (stats) {
|
|
185
|
+
showStats(stats);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
// Create new CLAUDE.md
|
|
190
|
+
const header = `# Project Instructions
|
|
191
|
+
|
|
192
|
+
This file provides guidance to AI tools working with this codebase.
|
|
193
|
+
|
|
194
|
+
`;
|
|
195
|
+
await writeFile(claudeMdPath, header + content, 'utf-8');
|
|
196
|
+
success('Created CLAUDE.md with design system context');
|
|
197
|
+
if (stats) {
|
|
198
|
+
showStats(stats);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// No Dead Ends: Suggest next steps
|
|
202
|
+
console.log('');
|
|
203
|
+
info('Next steps:');
|
|
204
|
+
console.log(' • AI tools will now see these rules in context');
|
|
205
|
+
console.log(' • Run `buoy skill export` to create detailed skill files');
|
|
206
|
+
console.log(' • Update context when design system changes');
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Show stats after generation
|
|
210
|
+
*/
|
|
211
|
+
function showStats(stats) {
|
|
212
|
+
info(`Included: ${stats.tokenCount} tokens, ${stats.componentCount} components`);
|
|
213
|
+
if (stats.antiPatternCount > 0) {
|
|
214
|
+
info(`Found ${stats.antiPatternCount} anti-patterns from drift analysis`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/commands/fix.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,gBAAgB,IAAI,OAAO,CAyL1C"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fix Command
|
|
3
|
+
*
|
|
4
|
+
* Suggests and applies fixes for hardcoded values by replacing them with design tokens.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { loadConfig, getConfigPath } from '../config/loader.js';
|
|
8
|
+
import { buildAutoConfig } from '../config/auto-detect.js';
|
|
9
|
+
import { spinner, success, error, warning, setJsonMode, } from '../output/reporters.js';
|
|
10
|
+
import { formatFixPreview, formatFixDiff, formatFixResult, formatSafetyCheck, formatFixesJson, } from '../output/fix-formatters.js';
|
|
11
|
+
import { ScanOrchestrator } from '../scan/orchestrator.js';
|
|
12
|
+
import { applyFixes, runSafetyChecks, validateFixTargets } from '../fix/index.js';
|
|
13
|
+
import { generateFixes, } from '@buoy-design/core';
|
|
14
|
+
export function createFixCommand() {
|
|
15
|
+
const cmd = new Command('fix')
|
|
16
|
+
.description('Suggest and apply fixes for design drift issues')
|
|
17
|
+
.option('--apply', 'Apply fixes to source files')
|
|
18
|
+
.option('--dry-run', 'Show detailed diff without applying changes')
|
|
19
|
+
.option('-c, --confidence <level>', 'Minimum confidence level (high, medium, low)', 'high')
|
|
20
|
+
.option('-t, --type <types>', 'Fix types to include (comma-separated: hardcoded-color,hardcoded-spacing)')
|
|
21
|
+
.option('-f, --file <patterns>', 'File glob patterns to include (comma-separated)')
|
|
22
|
+
.option('--exclude <patterns>', 'File glob patterns to exclude (comma-separated)')
|
|
23
|
+
.option('--backup', 'Create .bak backup files before modifying')
|
|
24
|
+
.option('--json', 'Output as JSON')
|
|
25
|
+
.option('--force', 'Skip safety checks')
|
|
26
|
+
.action(async (options) => {
|
|
27
|
+
if (options.json) {
|
|
28
|
+
setJsonMode(true);
|
|
29
|
+
}
|
|
30
|
+
const spin = spinner('Loading configuration...');
|
|
31
|
+
try {
|
|
32
|
+
// Load or auto-detect config
|
|
33
|
+
const existingConfigPath = getConfigPath();
|
|
34
|
+
let config;
|
|
35
|
+
if (existingConfigPath) {
|
|
36
|
+
const result = await loadConfig();
|
|
37
|
+
config = result.config;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
spin.text = 'Auto-detecting project setup...';
|
|
41
|
+
const autoResult = await buildAutoConfig(process.cwd());
|
|
42
|
+
config = autoResult.config;
|
|
43
|
+
}
|
|
44
|
+
// Run scan to get drift signals and tokens
|
|
45
|
+
spin.text = 'Scanning for drift signals...';
|
|
46
|
+
const orchestrator = new ScanOrchestrator(config, process.cwd());
|
|
47
|
+
const scanResult = await orchestrator.scan();
|
|
48
|
+
// Get tokens from scan
|
|
49
|
+
const tokens = scanResult.tokens || [];
|
|
50
|
+
if (tokens.length === 0) {
|
|
51
|
+
spin.stop();
|
|
52
|
+
// No Dead Ends: Show what we found and guide next steps
|
|
53
|
+
console.log('');
|
|
54
|
+
warning('No design tokens found to match against');
|
|
55
|
+
console.log('');
|
|
56
|
+
console.log(' But here\'s what I found:');
|
|
57
|
+
if (scanResult.components.length > 0) {
|
|
58
|
+
console.log(` • ${scanResult.components.length} components scanned`);
|
|
59
|
+
}
|
|
60
|
+
const frameworks = config.sources ? Object.keys(config.sources).filter(k => config.sources[k]?.enabled) : [];
|
|
61
|
+
if (frameworks.length > 0) {
|
|
62
|
+
console.log(` • Frameworks: ${frameworks.join(', ')}`);
|
|
63
|
+
}
|
|
64
|
+
console.log('');
|
|
65
|
+
console.log(' Next steps:');
|
|
66
|
+
console.log(' • Run `buoy tokens` to extract tokens from hardcoded values');
|
|
67
|
+
console.log(' • Or create a tokens file (design-tokens.json)');
|
|
68
|
+
console.log(' • Run `buoy scan` to see full analysis');
|
|
69
|
+
console.log('');
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
// Run drift analysis to get hardcoded value signals
|
|
73
|
+
spin.text = 'Analyzing for hardcoded values...';
|
|
74
|
+
const { SemanticDiffEngine } = await import('@buoy-design/core/analysis');
|
|
75
|
+
const engine = new SemanticDiffEngine();
|
|
76
|
+
const components = scanResult.components || [];
|
|
77
|
+
// Pass availableTokens to get token suggestions for hardcoded values
|
|
78
|
+
const diffResult = engine.analyzeComponents(components, {
|
|
79
|
+
availableTokens: tokens,
|
|
80
|
+
});
|
|
81
|
+
// Get drift signals (hardcoded values specifically)
|
|
82
|
+
const driftSignals = diffResult.drifts.filter((d) => d.type.startsWith('hardcoded-'));
|
|
83
|
+
if (driftSignals.length === 0) {
|
|
84
|
+
spin.stop();
|
|
85
|
+
// No Dead Ends: Celebrate success and show what was checked
|
|
86
|
+
console.log('');
|
|
87
|
+
success('No hardcoded values found - your code is clean!');
|
|
88
|
+
console.log('');
|
|
89
|
+
console.log(' What was checked:');
|
|
90
|
+
console.log(` • ${components.length} components scanned`);
|
|
91
|
+
console.log(` • ${tokens.length} tokens available for matching`);
|
|
92
|
+
const otherDrifts = diffResult.drifts.filter(d => !d.type.startsWith('hardcoded-'));
|
|
93
|
+
if (otherDrifts.length > 0) {
|
|
94
|
+
console.log('');
|
|
95
|
+
console.log(` Note: ${otherDrifts.length} other drift signals found (naming, etc.)`);
|
|
96
|
+
console.log(' Run `buoy drift check` for full analysis');
|
|
97
|
+
}
|
|
98
|
+
console.log('');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
// Parse options
|
|
102
|
+
const minConfidence = parseConfidenceLevel(options.confidence);
|
|
103
|
+
const includeTypes = options.type
|
|
104
|
+
? options.type.split(',').map((t) => t.trim())
|
|
105
|
+
: undefined;
|
|
106
|
+
const includeFiles = options.file
|
|
107
|
+
? options.file.split(',').map((f) => f.trim())
|
|
108
|
+
: [];
|
|
109
|
+
const excludeFiles = options.exclude
|
|
110
|
+
? options.exclude.split(',').map((f) => f.trim())
|
|
111
|
+
: [];
|
|
112
|
+
// Generate fixes
|
|
113
|
+
spin.text = 'Generating fix suggestions...';
|
|
114
|
+
const fixes = generateFixes(driftSignals, tokens, {
|
|
115
|
+
types: includeTypes,
|
|
116
|
+
minConfidence,
|
|
117
|
+
includeFiles,
|
|
118
|
+
excludeFiles,
|
|
119
|
+
});
|
|
120
|
+
spin.stop();
|
|
121
|
+
if (fixes.length === 0) {
|
|
122
|
+
// No Dead Ends: Explain what didn't match and suggest alternatives
|
|
123
|
+
console.log('');
|
|
124
|
+
warning('No fixable issues match your criteria');
|
|
125
|
+
console.log('');
|
|
126
|
+
console.log(` Found ${driftSignals.length} hardcoded values, but:`);
|
|
127
|
+
if (minConfidence === 'high') {
|
|
128
|
+
console.log(' • No high-confidence fixes available');
|
|
129
|
+
console.log(' • Try: --confidence medium or --confidence low');
|
|
130
|
+
}
|
|
131
|
+
if (includeTypes?.length) {
|
|
132
|
+
console.log(` • Types filter: ${includeTypes.join(', ')}`);
|
|
133
|
+
console.log(' • Try: Remove --type filter to see all issues');
|
|
134
|
+
}
|
|
135
|
+
if (includeFiles.length > 0) {
|
|
136
|
+
console.log(` • File filter: ${includeFiles.join(', ')}`);
|
|
137
|
+
console.log(' • Try: Remove --file filter to see all files');
|
|
138
|
+
}
|
|
139
|
+
console.log('');
|
|
140
|
+
console.log(' Or run `buoy fix --dry-run` without filters to preview all fixes');
|
|
141
|
+
console.log('');
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// Validate fix targets
|
|
145
|
+
const { valid, invalid } = validateFixTargets(fixes);
|
|
146
|
+
if (invalid.length > 0) {
|
|
147
|
+
warning(`${invalid.length} fixes have invalid targets and will be skipped`);
|
|
148
|
+
}
|
|
149
|
+
// Output based on mode
|
|
150
|
+
if (options.json) {
|
|
151
|
+
console.log(formatFixesJson(valid));
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (options.apply) {
|
|
155
|
+
// Apply mode: actually modify files
|
|
156
|
+
await handleApplyMode(valid, options);
|
|
157
|
+
}
|
|
158
|
+
else if (options.dryRun) {
|
|
159
|
+
// Dry-run mode: show detailed diff
|
|
160
|
+
console.log(formatFixDiff(valid));
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
// Default preview mode
|
|
164
|
+
console.log(formatFixPreview(valid));
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
spin.stop();
|
|
169
|
+
error(err instanceof Error ? err.message : 'Fix command failed');
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return cmd;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Handle apply mode - run safety checks and apply fixes
|
|
177
|
+
*/
|
|
178
|
+
async function handleApplyMode(fixes, options) {
|
|
179
|
+
// Run safety checks unless forced
|
|
180
|
+
if (!options.force) {
|
|
181
|
+
const safetyResult = runSafetyChecks(fixes);
|
|
182
|
+
console.log(formatSafetyCheck(safetyResult));
|
|
183
|
+
if (!safetyResult.safe) {
|
|
184
|
+
error('Safety checks failed. Use --force to override.');
|
|
185
|
+
process.exit(1);
|
|
186
|
+
}
|
|
187
|
+
if (safetyResult.warnings.length > 0) {
|
|
188
|
+
console.log('');
|
|
189
|
+
warning('Proceeding despite warnings...');
|
|
190
|
+
console.log('');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Apply fixes
|
|
194
|
+
const spin = spinner('Applying fixes...');
|
|
195
|
+
const minConfidence = parseConfidenceLevel(options.confidence || 'high');
|
|
196
|
+
try {
|
|
197
|
+
const result = await applyFixes(fixes, {
|
|
198
|
+
dryRun: false,
|
|
199
|
+
backup: options.backup,
|
|
200
|
+
minConfidence,
|
|
201
|
+
});
|
|
202
|
+
spin.stop();
|
|
203
|
+
console.log(formatFixResult(result));
|
|
204
|
+
if (result.failed > 0) {
|
|
205
|
+
process.exit(1);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
spin.stop();
|
|
210
|
+
error(err instanceof Error ? err.message : 'Failed to apply fixes');
|
|
211
|
+
process.exit(1);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Parse confidence level from string
|
|
216
|
+
*/
|
|
217
|
+
function parseConfidenceLevel(level) {
|
|
218
|
+
const normalized = level.toLowerCase();
|
|
219
|
+
if (normalized === 'high' || normalized === 'medium' || normalized === 'low') {
|
|
220
|
+
return normalized;
|
|
221
|
+
}
|
|
222
|
+
return 'high';
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=fix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/commands/fix.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -15,6 +15,9 @@ export { createGraphCommand } from "./graph.js";
|
|
|
15
15
|
export { createImportCommand } from "./import.js";
|
|
16
16
|
export { createHistoryCommand } from "./history.js";
|
|
17
17
|
export { createBeginCommand } from "./begin.js";
|
|
18
|
+
export { createSkillCommand } from "./skill.js";
|
|
19
|
+
export { createFixCommand } from "./fix.js";
|
|
20
|
+
export { createContextCommand } from "./context.js";
|
|
18
21
|
export { createLoginCommand } from "./login.js";
|
|
19
22
|
export { createLogoutCommand } from "./logout.js";
|
|
20
23
|
export { createWhoamiCommand } from "./whoami.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -15,6 +15,9 @@ export { createGraphCommand } from "./graph.js";
|
|
|
15
15
|
export { createImportCommand } from "./import.js";
|
|
16
16
|
export { createHistoryCommand } from "./history.js";
|
|
17
17
|
export { createBeginCommand } from "./begin.js";
|
|
18
|
+
export { createSkillCommand } from "./skill.js";
|
|
19
|
+
export { createFixCommand } from "./fix.js";
|
|
20
|
+
export { createContextCommand } from "./context.js";
|
|
18
21
|
// Cloud commands
|
|
19
22
|
export { createLoginCommand } from "./login.js";
|
|
20
23
|
export { createLogoutCommand } from "./logout.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,iBAAiB;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* buoy skill - Generate and manage design system skills for AI agents
|
|
3
|
+
*
|
|
4
|
+
* Exports tokens, components, patterns, and anti-patterns as markdown files
|
|
5
|
+
* optimized for progressive disclosure in AI agent workflows.
|
|
6
|
+
*/
|
|
7
|
+
import { Command } from 'commander';
|
|
8
|
+
export declare function createSkillCommand(): Command;
|
|
9
|
+
//# sourceMappingURL=skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,wBAAgB,kBAAkB,IAAI,OAAO,CAQ5C"}
|