@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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/dist/commands/begin.d.ts.map +1 -1
  3. package/dist/commands/begin.js +18 -0
  4. package/dist/commands/begin.js.map +1 -1
  5. package/dist/commands/check.d.ts +10 -0
  6. package/dist/commands/check.d.ts.map +1 -1
  7. package/dist/commands/check.js +75 -1
  8. package/dist/commands/check.js.map +1 -1
  9. package/dist/commands/ci.d.ts.map +1 -1
  10. package/dist/commands/ci.js +29 -3
  11. package/dist/commands/ci.js.map +1 -1
  12. package/dist/commands/ci.logic.d.ts +8 -2
  13. package/dist/commands/ci.logic.d.ts.map +1 -1
  14. package/dist/commands/ci.logic.js +17 -3
  15. package/dist/commands/ci.logic.js.map +1 -1
  16. package/dist/commands/context.d.ts +9 -0
  17. package/dist/commands/context.d.ts.map +1 -0
  18. package/dist/commands/context.js +217 -0
  19. package/dist/commands/context.js.map +1 -0
  20. package/dist/commands/fix.d.ts +8 -0
  21. package/dist/commands/fix.d.ts.map +1 -0
  22. package/dist/commands/fix.js +224 -0
  23. package/dist/commands/fix.js.map +1 -0
  24. package/dist/commands/index.d.ts +3 -0
  25. package/dist/commands/index.d.ts.map +1 -1
  26. package/dist/commands/index.js +3 -0
  27. package/dist/commands/index.js.map +1 -1
  28. package/dist/commands/skill.d.ts +9 -0
  29. package/dist/commands/skill.d.ts.map +1 -0
  30. package/dist/commands/skill.js +190 -0
  31. package/dist/commands/skill.js.map +1 -0
  32. package/dist/commands/tokens.d.ts.map +1 -1
  33. package/dist/commands/tokens.js +169 -2
  34. package/dist/commands/tokens.js.map +1 -1
  35. package/dist/fix/applier.d.ts +25 -0
  36. package/dist/fix/applier.d.ts.map +1 -0
  37. package/dist/fix/applier.js +211 -0
  38. package/dist/fix/applier.js.map +1 -0
  39. package/dist/fix/index.d.ts +10 -0
  40. package/dist/fix/index.d.ts.map +1 -0
  41. package/dist/fix/index.js +8 -0
  42. package/dist/fix/index.js.map +1 -0
  43. package/dist/fix/safety.d.ts +30 -0
  44. package/dist/fix/safety.d.ts.map +1 -0
  45. package/dist/fix/safety.js +168 -0
  46. package/dist/fix/safety.js.map +1 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +59 -13
  49. package/dist/index.js.map +1 -1
  50. package/dist/output/fix-formatters.d.ts +36 -0
  51. package/dist/output/fix-formatters.d.ts.map +1 -0
  52. package/dist/output/fix-formatters.js +247 -0
  53. package/dist/output/fix-formatters.js.map +1 -0
  54. package/dist/output/index.d.ts +1 -0
  55. package/dist/output/index.d.ts.map +1 -1
  56. package/dist/output/index.js +1 -0
  57. package/dist/output/index.js.map +1 -1
  58. package/dist/output/reports.d.ts +154 -0
  59. package/dist/output/reports.d.ts.map +1 -0
  60. package/dist/output/reports.js +392 -0
  61. package/dist/output/reports.js.map +1 -0
  62. package/dist/services/context-generator.d.ts +43 -0
  63. package/dist/services/context-generator.d.ts.map +1 -0
  64. package/dist/services/context-generator.js +252 -0
  65. package/dist/services/context-generator.js.map +1 -0
  66. package/dist/services/skill-export.d.ts +96 -0
  67. package/dist/services/skill-export.d.ts.map +1 -0
  68. package/dist/services/skill-export.js +566 -0
  69. package/dist/services/skill-export.js.map +1 -0
  70. package/dist/wizard/ai-guardrails-generator.d.ts +20 -0
  71. package/dist/wizard/ai-guardrails-generator.d.ts.map +1 -0
  72. package/dist/wizard/ai-guardrails-generator.js +259 -0
  73. package/dist/wizard/ai-guardrails-generator.js.map +1 -0
  74. package/dist/wizard/index.d.ts +1 -0
  75. package/dist/wizard/index.d.ts.map +1 -1
  76. package/dist/wizard/index.js +1 -0
  77. package/dist/wizard/index.js.map +1 -1
  78. package/package.json +15 -15
@@ -0,0 +1,247 @@
1
+ /**
2
+ * Fix Formatters
3
+ *
4
+ * Format fix suggestions, diffs, and results for CLI output.
5
+ */
6
+ import chalk from 'chalk';
7
+ /**
8
+ * Format confidence level with color
9
+ */
10
+ function formatConfidence(level) {
11
+ switch (level) {
12
+ case 'high':
13
+ return chalk.green('high');
14
+ case 'medium':
15
+ return chalk.yellow('medium');
16
+ case 'low':
17
+ return chalk.red('low');
18
+ }
19
+ }
20
+ /**
21
+ * Format fix type with readable label
22
+ */
23
+ function formatFixType(type) {
24
+ const labels = {
25
+ 'hardcoded-color': 'Color',
26
+ 'hardcoded-spacing': 'Spacing',
27
+ 'hardcoded-radius': 'Radius',
28
+ 'hardcoded-font-size': 'Font Size',
29
+ };
30
+ return labels[type] || type;
31
+ }
32
+ /**
33
+ * Format a preview of available fixes (default mode)
34
+ */
35
+ export function formatFixPreview(fixes) {
36
+ if (fixes.length === 0) {
37
+ return chalk.green('✓ No fixable issues found');
38
+ }
39
+ const lines = [];
40
+ // Header
41
+ lines.push(chalk.bold(`Found ${fixes.length} fixable issue${fixes.length === 1 ? '' : 's'}:`));
42
+ lines.push('');
43
+ // Group by confidence
44
+ const byConfidence = groupByConfidence(fixes);
45
+ if (byConfidence.high.length > 0) {
46
+ lines.push(chalk.green(` ${byConfidence.high.length} high confidence`) + ' (safe to auto-apply)');
47
+ }
48
+ if (byConfidence.medium.length > 0) {
49
+ lines.push(chalk.yellow(` ${byConfidence.medium.length} medium confidence`) + ' (review recommended)');
50
+ }
51
+ if (byConfidence.low.length > 0) {
52
+ lines.push(chalk.red(` ${byConfidence.low.length} low confidence`) + ' (manual review required)');
53
+ }
54
+ lines.push('');
55
+ // Summary table by type
56
+ const byType = groupByType(fixes);
57
+ lines.push(chalk.dim('By type:'));
58
+ for (const [type, typeFixes] of Object.entries(byType)) {
59
+ lines.push(` ${formatFixType(type)}: ${typeFixes.length}`);
60
+ }
61
+ lines.push('');
62
+ // Next steps
63
+ lines.push(chalk.dim('Next steps:'));
64
+ lines.push(' buoy fix --dry-run Show detailed changes');
65
+ lines.push(' buoy fix --apply Apply high-confidence fixes');
66
+ lines.push(' buoy fix --apply --confidence=medium Include medium confidence');
67
+ return lines.join('\n');
68
+ }
69
+ /**
70
+ * Format detailed diff for dry-run mode
71
+ */
72
+ export function formatFixDiff(fixes) {
73
+ if (fixes.length === 0) {
74
+ return chalk.green('✓ No fixable issues found');
75
+ }
76
+ const lines = [];
77
+ // Group by file
78
+ const byFile = groupByFile(fixes);
79
+ for (const [file, fileFixes] of Object.entries(byFile)) {
80
+ lines.push(chalk.bold(chalk.cyan(file)));
81
+ lines.push('');
82
+ for (const fix of fileFixes) {
83
+ // Location and confidence
84
+ lines.push(` ${chalk.dim(`Line ${fix.line}:`)} ` +
85
+ `[${formatConfidence(fix.confidence)}] ` +
86
+ formatFixType(fix.fixType));
87
+ // Token name
88
+ if (fix.tokenName) {
89
+ lines.push(` ${chalk.dim('Token:')} ${fix.tokenName}`);
90
+ }
91
+ // Reason
92
+ lines.push(` ${chalk.dim('Reason:')} ${fix.reason}`);
93
+ // Diff
94
+ lines.push(` ${chalk.red(`- ${fix.original}`)}`);
95
+ lines.push(` ${chalk.green(`+ ${fix.replacement}`)}`);
96
+ lines.push('');
97
+ }
98
+ }
99
+ // Summary
100
+ const byConfidence = groupByConfidence(fixes);
101
+ lines.push(chalk.dim('─'.repeat(50)));
102
+ lines.push(`Total: ${fixes.length} fixes ` +
103
+ `(${chalk.green(`${byConfidence.high.length} high`)}, ` +
104
+ `${chalk.yellow(`${byConfidence.medium.length} medium`)}, ` +
105
+ `${chalk.red(`${byConfidence.low.length} low`)})`);
106
+ return lines.join('\n');
107
+ }
108
+ /**
109
+ * Format a single fix line item
110
+ */
111
+ export function formatFixLine(fix) {
112
+ const location = `${fix.file}:${fix.line}:${fix.column}`;
113
+ return (`${chalk.dim(location)} ` +
114
+ `[${formatConfidence(fix.confidence)}] ` +
115
+ `${chalk.red(fix.original)} → ${chalk.green(fix.replacement)}`);
116
+ }
117
+ /**
118
+ * Format results after applying fixes
119
+ */
120
+ export function formatFixResult(result) {
121
+ const lines = [];
122
+ if (result.applied === 0 && result.skipped === 0 && result.failed === 0) {
123
+ return chalk.yellow('No fixes were processed');
124
+ }
125
+ // Summary line
126
+ const parts = [];
127
+ if (result.applied > 0) {
128
+ parts.push(chalk.green(`${result.applied} applied`));
129
+ }
130
+ if (result.skipped > 0) {
131
+ parts.push(chalk.yellow(`${result.skipped} skipped`));
132
+ }
133
+ if (result.failed > 0) {
134
+ parts.push(chalk.red(`${result.failed} failed`));
135
+ }
136
+ lines.push(chalk.bold(`Fix Results: ${parts.join(', ')}`));
137
+ lines.push('');
138
+ // Group results by status
139
+ const applied = result.results.filter((r) => r.status === 'applied');
140
+ const skipped = result.results.filter((r) => r.status === 'skipped');
141
+ const failed = result.results.filter((r) => r.status === 'failed');
142
+ if (applied.length > 0) {
143
+ lines.push(chalk.green('✓ Applied:'));
144
+ for (const r of applied) {
145
+ lines.push(` ${r.fixId}`);
146
+ }
147
+ lines.push('');
148
+ }
149
+ if (skipped.length > 0) {
150
+ lines.push(chalk.yellow('○ Skipped:'));
151
+ for (const r of skipped) {
152
+ lines.push(` ${r.fixId}${r.error ? ` (${r.error})` : ''}`);
153
+ }
154
+ lines.push('');
155
+ }
156
+ if (failed.length > 0) {
157
+ lines.push(chalk.red('✗ Failed:'));
158
+ for (const r of failed) {
159
+ lines.push(` ${r.fixId}: ${r.error || 'Unknown error'}`);
160
+ }
161
+ lines.push('');
162
+ }
163
+ // Next steps
164
+ if (result.applied > 0) {
165
+ lines.push(chalk.dim('Run `buoy scan` to verify changes'));
166
+ }
167
+ return lines.join('\n');
168
+ }
169
+ /**
170
+ * Format safety check warnings and errors
171
+ */
172
+ export function formatSafetyCheck(result) {
173
+ const lines = [];
174
+ if (result.errors.length > 0) {
175
+ lines.push(chalk.red(chalk.bold('Errors:')));
176
+ for (const error of result.errors) {
177
+ lines.push(chalk.red(` ✗ ${error}`));
178
+ }
179
+ lines.push('');
180
+ }
181
+ if (result.warnings.length > 0) {
182
+ lines.push(chalk.yellow(chalk.bold('Warnings:')));
183
+ for (const warning of result.warnings) {
184
+ lines.push(chalk.yellow(` ⚠ ${warning}`));
185
+ }
186
+ lines.push('');
187
+ }
188
+ if (result.safe && result.warnings.length === 0) {
189
+ lines.push(chalk.green('✓ Safety checks passed'));
190
+ }
191
+ return lines.join('\n');
192
+ }
193
+ /**
194
+ * Format JSON output for fixes
195
+ */
196
+ export function formatFixesJson(fixes) {
197
+ return JSON.stringify({
198
+ total: fixes.length,
199
+ byConfidence: {
200
+ high: fixes.filter((f) => f.confidence === 'high').length,
201
+ medium: fixes.filter((f) => f.confidence === 'medium').length,
202
+ low: fixes.filter((f) => f.confidence === 'low').length,
203
+ },
204
+ fixes: fixes.map((f) => ({
205
+ id: f.id,
206
+ file: f.file,
207
+ line: f.line,
208
+ column: f.column,
209
+ confidence: f.confidence,
210
+ confidenceScore: f.confidenceScore,
211
+ original: f.original,
212
+ replacement: f.replacement,
213
+ reason: f.reason,
214
+ fixType: f.fixType,
215
+ tokenName: f.tokenName,
216
+ })),
217
+ }, null, 2);
218
+ }
219
+ // Helper functions
220
+ function groupByConfidence(fixes) {
221
+ return {
222
+ high: fixes.filter((f) => f.confidence === 'high'),
223
+ medium: fixes.filter((f) => f.confidence === 'medium'),
224
+ low: fixes.filter((f) => f.confidence === 'low'),
225
+ };
226
+ }
227
+ function groupByType(fixes) {
228
+ const groups = {};
229
+ for (const fix of fixes) {
230
+ if (!groups[fix.fixType]) {
231
+ groups[fix.fixType] = [];
232
+ }
233
+ groups[fix.fixType].push(fix);
234
+ }
235
+ return groups;
236
+ }
237
+ function groupByFile(fixes) {
238
+ const groups = {};
239
+ for (const fix of fixes) {
240
+ if (!groups[fix.file]) {
241
+ groups[fix.file] = [];
242
+ }
243
+ groups[fix.file].push(fix);
244
+ }
245
+ return groups;
246
+ }
247
+ //# sourceMappingURL=fix-formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fix-formatters.js","sourceRoot":"","sources":["../../src/output/fix-formatters.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './formatters.js';
2
2
  export * from './reporters.js';
3
+ export * from './reports.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './formatters.js';
2
2
  export * from './reporters.js';
3
+ export * from './reports.js';
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/output/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
@@ -0,0 +1,154 @@
1
+ import type { DriftSignal } from '@buoy-design/core';
2
+ export interface DeveloperBriefData {
3
+ branch: {
4
+ source: string;
5
+ target: string;
6
+ };
7
+ filesChanged: string[];
8
+ componentsModified: string[];
9
+ drifts: DriftSignal[];
10
+ componentHealth: Record<string, {
11
+ health: number;
12
+ usageCount: number;
13
+ driftCount: number;
14
+ }>;
15
+ personalStats: {
16
+ driftRate: number;
17
+ teamAverage: number;
18
+ trend: 'improving' | 'stable' | 'declining';
19
+ };
20
+ }
21
+ export interface TeamDashboardData {
22
+ period: {
23
+ start: Date;
24
+ end: Date;
25
+ label: string;
26
+ };
27
+ version: string;
28
+ health: {
29
+ tokenCoverage: {
30
+ current: number;
31
+ change: number;
32
+ };
33
+ componentAdoption: {
34
+ current: number;
35
+ change: number;
36
+ };
37
+ patternConsistency: {
38
+ current: number;
39
+ change: number;
40
+ };
41
+ };
42
+ totals: {
43
+ components: number;
44
+ tokens: number;
45
+ instances: number;
46
+ repos: number;
47
+ contributors: number;
48
+ driftSignals: number;
49
+ };
50
+ driftDistribution: {
51
+ byType: Record<string, number>;
52
+ byTeam: Record<string, number>;
53
+ };
54
+ componentHealth: Array<{
55
+ name: string;
56
+ health: number;
57
+ category: 'healthy' | 'attention' | 'critical';
58
+ }>;
59
+ emergingPatterns: Array<{
60
+ name: string;
61
+ instances: number;
62
+ repos: number;
63
+ status: 'OBSERVING' | 'CANDIDATE' | 'EMERGING';
64
+ firstSeen: Date;
65
+ authors: string[];
66
+ }>;
67
+ actions: string[];
68
+ }
69
+ export interface ExecutiveSummaryData {
70
+ period: {
71
+ label: string;
72
+ };
73
+ alignment: {
74
+ current: number;
75
+ previous: number;
76
+ trend: number[];
77
+ };
78
+ impact: {
79
+ designReviewTime: {
80
+ reduction: number;
81
+ from: number;
82
+ to: number;
83
+ unit: string;
84
+ };
85
+ devRework: {
86
+ reduction: number;
87
+ from: number;
88
+ to: number;
89
+ unit: string;
90
+ };
91
+ brandConsistency: {
92
+ increase: number;
93
+ nps: {
94
+ from: number;
95
+ to: number;
96
+ };
97
+ };
98
+ estimatedSavings: number;
99
+ };
100
+ trajectory: {
101
+ current: number;
102
+ projected: number;
103
+ targetDate: string;
104
+ };
105
+ risks: Array<{
106
+ title: string;
107
+ description: string;
108
+ recommendation: string;
109
+ }>;
110
+ decisions: string[];
111
+ teamPerformance: {
112
+ leading: Array<{
113
+ name: string;
114
+ alignment: number;
115
+ }>;
116
+ needingSupport: Array<{
117
+ name: string;
118
+ alignment: number;
119
+ reason: string;
120
+ }>;
121
+ };
122
+ }
123
+ export interface RealityMirrorData {
124
+ designFile: string;
125
+ lastSync: Date;
126
+ fidelityScore: number;
127
+ changes: Array<{
128
+ category: 'COLORS' | 'SPACING' | 'TYPOGRAPHY';
129
+ designed: string;
130
+ shipped: string;
131
+ impact: string;
132
+ }>;
133
+ patternDrift: Array<{
134
+ component: string;
135
+ designedAs: string;
136
+ shippedAs: string;
137
+ userImpact: string;
138
+ devNote?: {
139
+ author: string;
140
+ date: Date;
141
+ message: string;
142
+ };
143
+ }>;
144
+ conversations: Array<{
145
+ action: 'discuss' | 'accept' | 'revert';
146
+ label: string;
147
+ target?: string;
148
+ }>;
149
+ }
150
+ export declare function formatDeveloperBrief(data: DeveloperBriefData): string;
151
+ export declare function formatTeamDashboard(data: TeamDashboardData): string;
152
+ export declare function formatExecutiveSummary(data: ExecutiveSummaryData): string;
153
+ export declare function formatRealityMirror(data: RealityMirrorData): string;
154
+ //# sourceMappingURL=reports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/output/reports.ts"],"names":[],"mappings":"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"}