@buoy-design/cli 0.1.23 → 0.1.24

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAe,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAe/D,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8DD,wBAAgB,eAAe,IAAI,OAAO,CAwOzC"}
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAe,QAAQ,EAAe,MAAM,mBAAmB,CAAC;AAyC5E,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,SAAS,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,QAAQ,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AA8DD,wBAAgB,eAAe,IAAI,OAAO,CAuYzC"}
@@ -1,11 +1,33 @@
1
1
  // apps/cli/src/commands/ci.ts
2
2
  import { Command } from "commander";
3
+ import chalk from "chalk";
3
4
  import { loadConfig, getConfigPath } from "../config/loader.js";
4
5
  import { setJsonMode } from "../output/reporters.js";
5
6
  import { GitHubClient, parseRepoString, formatPRComment, formatAIPRComment, } from "../integrations/index.js";
6
7
  import { DriftAnalysisService, hasDriftsAboveThreshold, sortDriftsBySeverity, } from "../services/drift-analysis.js";
7
8
  import { AIAnalysisService } from "../services/ai-analysis.js";
8
9
  import { ScanCache } from "@buoy-design/scanners";
10
+ import { detectAIReviewTools, generateCodeRabbitConfig, generateGreptileConfig, } from "../services/ai-tools-detector.js";
11
+ /** Extract a string representation of a token value */
12
+ function tokenValueToString(token) {
13
+ const v = token.value;
14
+ switch (v.type) {
15
+ case 'color':
16
+ return v.hex;
17
+ case 'spacing':
18
+ return `${v.value}${v.unit}`;
19
+ case 'typography':
20
+ return `${v.fontSize}px ${v.fontFamily}`;
21
+ case 'shadow':
22
+ return `shadow`;
23
+ case 'border':
24
+ return `${v.width}px ${v.style} ${v.color}`;
25
+ case 'raw':
26
+ return String(v.value);
27
+ default:
28
+ return JSON.stringify(v);
29
+ }
30
+ }
9
31
  function validateGitHubOptions(options) {
10
32
  const token = options.githubToken || process.env.GITHUB_TOKEN;
11
33
  const repo = options.githubRepo || process.env.GITHUB_REPOSITORY;
@@ -63,6 +85,10 @@ export function createCICommand() {
63
85
  .option("--max-drift <n>", "Fail if total drift count exceeds this threshold")
64
86
  .option("--max-critical <n>", "Fail if critical drift count exceeds this threshold")
65
87
  .option("--max-warning <n>", "Fail if warning drift count exceeds this threshold")
88
+ .option("--detect-tools", "Detect existing AI review tools and show integration options")
89
+ .option("--export-coderabbit", "Export design system rules as CodeRabbit config")
90
+ .option("--export-greptile", "Export design system context as Greptile config")
91
+ .option("--cooperative", "Run in cooperative mode - provide data to existing tools, skip AI review")
66
92
  .action(async (options) => {
67
93
  // Set JSON mode to ensure any reporter output goes to stderr
68
94
  // --json flag takes precedence, but --format also works
@@ -70,9 +96,139 @@ export function createCICommand() {
70
96
  setJsonMode(true);
71
97
  }
72
98
  const log = options.quiet ? () => { } : console.error.bind(console);
99
+ const cwd = process.cwd();
73
100
  try {
101
+ // Handle --detect-tools: show what AI review tools are present
102
+ if (options.detectTools) {
103
+ const detection = detectAIReviewTools(cwd);
104
+ if (options.json) {
105
+ console.log(JSON.stringify(detection, null, 2));
106
+ return;
107
+ }
108
+ console.log('');
109
+ console.log(chalk.cyan.bold('🔍 AI Review Tool Detection'));
110
+ console.log('');
111
+ if (!detection.hasAnyTool) {
112
+ console.log(chalk.dim(' No AI review tools detected.'));
113
+ console.log('');
114
+ console.log(' Buoy can provide AI-powered design system review.');
115
+ console.log(chalk.dim(' Run: buoy lighthouse --ai'));
116
+ }
117
+ else {
118
+ console.log(chalk.green(` Found ${detection.tools.length} AI review tool(s):`));
119
+ console.log('');
120
+ for (const tool of detection.tools) {
121
+ console.log(` ${chalk.green('✓')} ${chalk.bold(tool.displayName)}`);
122
+ if (tool.configFile) {
123
+ console.log(chalk.dim(` Config: ${tool.configFile}`));
124
+ }
125
+ if (tool.supportsCustomRules) {
126
+ console.log(chalk.dim(` Supports custom rules - Buoy can provide design system context`));
127
+ }
128
+ }
129
+ console.log('');
130
+ console.log(chalk.dim(' Recommendations:'));
131
+ for (const rec of detection.recommendations) {
132
+ console.log(` • ${rec}`);
133
+ }
134
+ console.log('');
135
+ console.log(chalk.dim(' Export design system rules:'));
136
+ const toolsWithRules = detection.tools.filter(t => t.supportsCustomRules);
137
+ for (const tool of toolsWithRules) {
138
+ console.log(` buoy lighthouse --export-${tool.name}`);
139
+ }
140
+ }
141
+ console.log('');
142
+ return;
143
+ }
144
+ // Handle exports - need to scan first
145
+ if (options.exportCoderabbit || options.exportGreptile) {
146
+ // Load config and scan for design data
147
+ const configPath = getConfigPath();
148
+ if (!configPath) {
149
+ console.error(chalk.red('No buoy config found. Run: buoy begin'));
150
+ process.exit(1);
151
+ }
152
+ const { config } = await loadConfig();
153
+ const { ScanOrchestrator } = await import("../scan/orchestrator.js");
154
+ const orchestrator = new ScanOrchestrator(config, cwd);
155
+ log('Scanning design system...');
156
+ const scanResult = await orchestrator.scan({ onProgress: log });
157
+ // Build export data
158
+ const tokens = scanResult.tokens.map(t => ({
159
+ name: t.name,
160
+ value: tokenValueToString(t),
161
+ category: t.value.type,
162
+ }));
163
+ const { SemanticDiffEngine } = await import("@buoy-design/core/analysis");
164
+ const engine = new SemanticDiffEngine();
165
+ const diffResult = engine.analyzeComponents(scanResult.components, {
166
+ checkDeprecated: true,
167
+ checkNaming: true,
168
+ });
169
+ const antiPatterns = diffResult.drifts
170
+ .filter(d => d.severity === 'critical' || d.severity === 'warning')
171
+ .map(d => ({
172
+ pattern: d.type,
173
+ message: d.message,
174
+ }));
175
+ const patterns = scanResult.components
176
+ .filter(c => c.metadata.documentation)
177
+ .slice(0, 10)
178
+ .map(c => ({
179
+ name: c.name,
180
+ description: c.metadata.documentation || `${c.name} component`,
181
+ }));
182
+ if (options.exportCoderabbit) {
183
+ const configContent = generateCodeRabbitConfig({ tokens, patterns, antiPatterns });
184
+ if (options.json) {
185
+ console.log(JSON.stringify({ config: configContent }, null, 2));
186
+ }
187
+ else {
188
+ console.log('');
189
+ console.log(chalk.cyan.bold('📋 CodeRabbit Configuration'));
190
+ console.log(chalk.dim('Add this to your .coderabbit.yaml:'));
191
+ console.log('');
192
+ console.log(configContent);
193
+ console.log('');
194
+ console.log(chalk.dim('Or save directly:'));
195
+ console.log(chalk.cyan(' buoy lighthouse --export-coderabbit > .coderabbit-buoy.yaml'));
196
+ }
197
+ return;
198
+ }
199
+ if (options.exportGreptile) {
200
+ const configContent = generateGreptileConfig({
201
+ tokens,
202
+ patterns,
203
+ antiPatterns,
204
+ projectName: config.project?.name,
205
+ });
206
+ if (options.json) {
207
+ console.log(JSON.stringify({ config: configContent }, null, 2));
208
+ }
209
+ else {
210
+ console.log('');
211
+ console.log(chalk.cyan.bold('📋 Greptile Configuration'));
212
+ console.log(chalk.dim('Add this to your greptile.json customContext:'));
213
+ console.log('');
214
+ console.log(configContent);
215
+ console.log('');
216
+ console.log(chalk.dim('Or save directly:'));
217
+ console.log(chalk.cyan(' buoy lighthouse --export-greptile > greptile-buoy.json'));
218
+ }
219
+ return;
220
+ }
221
+ }
74
222
  // Validate GitHub options early, before any scanning
75
223
  const github = validateGitHubOptions(options);
224
+ // Detect existing AI tools for cooperative mode
225
+ const detection = detectAIReviewTools(cwd);
226
+ const cooperativeMode = options.cooperative ||
227
+ (detection.hasAnyTool && options.ai === undefined);
228
+ if (cooperativeMode && detection.hasAnyTool && !options.quiet) {
229
+ const toolNames = detection.tools.map(t => t.displayName).join(', ');
230
+ log(`Cooperative mode: ${toolNames} detected. Buoy will provide data, not AI review.`);
231
+ }
76
232
  // Check for config
77
233
  if (!getConfigPath()) {
78
234
  const output = {
@@ -147,8 +303,9 @@ export function createCICommand() {
147
303
  // PR info is optional, continue without it
148
304
  }
149
305
  let comment;
150
- // Use AI analysis if enabled
151
- const useAI = options.ai !== false && process.env.ANTHROPIC_API_KEY;
306
+ // Use AI analysis if explicitly enabled AND not in cooperative mode
307
+ // In cooperative mode, we let existing AI tools handle the review
308
+ const useAI = options.ai === true && process.env.ANTHROPIC_API_KEY && !cooperativeMode;
152
309
  if (useAI && drifts.length > 0) {
153
310
  log("Running AI analysis...");
154
311
  const aiService = new AIAnalysisService();
@@ -1 +1 @@
1
- {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/commands/ci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * AI PR Review Tool Detection
3
+ *
4
+ * Detects which AI code review tools are present in a repository
5
+ * so Buoy can cooperate with them rather than compete.
6
+ */
7
+ export interface DetectedTool {
8
+ name: string;
9
+ displayName: string;
10
+ configFile?: string;
11
+ hasConfig: boolean;
12
+ supportsCustomRules: boolean;
13
+ integrationUrl?: string;
14
+ }
15
+ export interface AIToolsDetectionResult {
16
+ hasAnyTool: boolean;
17
+ tools: DetectedTool[];
18
+ recommendations: string[];
19
+ }
20
+ /**
21
+ * Detect AI review tools in a repository
22
+ */
23
+ export declare function detectAIReviewTools(projectRoot: string): AIToolsDetectionResult;
24
+ /**
25
+ * Generate CodeRabbit configuration for design system rules
26
+ */
27
+ export declare function generateCodeRabbitConfig(options: {
28
+ tokens: Array<{
29
+ name: string;
30
+ value: string;
31
+ category?: string;
32
+ }>;
33
+ patterns: Array<{
34
+ name: string;
35
+ description: string;
36
+ }>;
37
+ antiPatterns: Array<{
38
+ pattern: string;
39
+ message: string;
40
+ }>;
41
+ }): string;
42
+ /**
43
+ * Generate Greptile configuration for design system context
44
+ */
45
+ export declare function generateGreptileConfig(options: {
46
+ tokens: Array<{
47
+ name: string;
48
+ value: string;
49
+ category?: string;
50
+ }>;
51
+ patterns: Array<{
52
+ name: string;
53
+ description: string;
54
+ }>;
55
+ antiPatterns: Array<{
56
+ pattern: string;
57
+ message: string;
58
+ }>;
59
+ projectName?: string;
60
+ }): string;
61
+ /**
62
+ * Get instructions for integrating with detected tools
63
+ */
64
+ export declare function getIntegrationInstructions(tool: DetectedTool): string;
65
+ //# sourceMappingURL=ai-tools-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tools-detector.d.ts","sourceRoot":"","sources":["../../src/services/ai-tools-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAwCD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CAmD/E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D,GAAG,MAAM,CAsDT;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,YAAY,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAuDT;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAgCrE"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * AI PR Review Tool Detection
3
+ *
4
+ * Detects which AI code review tools are present in a repository
5
+ * so Buoy can cooperate with them rather than compete.
6
+ */
7
+ import { existsSync } from 'fs';
8
+ import { join } from 'path';
9
+ const AI_REVIEW_TOOLS = [
10
+ {
11
+ name: 'coderabbit',
12
+ displayName: 'CodeRabbit',
13
+ configFiles: ['.coderabbit.yaml', '.coderabbit.yml'],
14
+ supportsCustomRules: true,
15
+ integrationUrl: 'https://docs.coderabbit.ai/guides/review-instructions',
16
+ },
17
+ {
18
+ name: 'greptile',
19
+ displayName: 'Greptile',
20
+ configFiles: ['greptile.json'],
21
+ supportsCustomRules: true,
22
+ integrationUrl: 'https://www.greptile.com/docs/code-review-bot/custom-context',
23
+ },
24
+ {
25
+ name: 'sourcery',
26
+ displayName: 'Sourcery',
27
+ configFiles: ['.sourcery.yaml'],
28
+ supportsCustomRules: false,
29
+ integrationUrl: 'https://docs.sourcery.ai/',
30
+ },
31
+ {
32
+ name: 'codacy',
33
+ displayName: 'Codacy',
34
+ configFiles: ['.codacy.yml', '.codacy.yaml'],
35
+ supportsCustomRules: true,
36
+ integrationUrl: 'https://docs.codacy.com/',
37
+ },
38
+ {
39
+ name: 'deepsource',
40
+ displayName: 'DeepSource',
41
+ configFiles: ['.deepsource.toml'],
42
+ supportsCustomRules: false,
43
+ integrationUrl: 'https://docs.deepsource.com/',
44
+ },
45
+ ];
46
+ /**
47
+ * Detect AI review tools in a repository
48
+ */
49
+ export function detectAIReviewTools(projectRoot) {
50
+ const tools = [];
51
+ const recommendations = [];
52
+ for (const tool of AI_REVIEW_TOOLS) {
53
+ let foundConfig;
54
+ for (const configFile of tool.configFiles) {
55
+ const configPath = join(projectRoot, configFile);
56
+ if (existsSync(configPath)) {
57
+ foundConfig = configFile;
58
+ break;
59
+ }
60
+ }
61
+ if (foundConfig) {
62
+ tools.push({
63
+ name: tool.name,
64
+ displayName: tool.displayName,
65
+ configFile: foundConfig,
66
+ hasConfig: true,
67
+ supportsCustomRules: tool.supportsCustomRules,
68
+ integrationUrl: tool.integrationUrl,
69
+ });
70
+ // Add recommendations for tools that support custom rules
71
+ if (tool.supportsCustomRules) {
72
+ recommendations.push(`${tool.displayName} detected! Buoy can export design system rules for ${tool.displayName}.`);
73
+ }
74
+ }
75
+ }
76
+ // Check for AI context files that tools might read
77
+ const aiContextFiles = ['CLAUDE.md', '.cursorrules', 'agents.md'];
78
+ const foundContextFiles = aiContextFiles.filter(f => existsSync(join(projectRoot, f)));
79
+ if (foundContextFiles.length > 0 && tools.length > 0) {
80
+ recommendations.push(`Found ${foundContextFiles.join(', ')} - some AI tools will read these automatically.`);
81
+ }
82
+ return {
83
+ hasAnyTool: tools.length > 0,
84
+ tools,
85
+ recommendations,
86
+ };
87
+ }
88
+ /**
89
+ * Generate CodeRabbit configuration for design system rules
90
+ */
91
+ export function generateCodeRabbitConfig(options) {
92
+ const { tokens, antiPatterns } = options;
93
+ // Build path instructions for design system
94
+ const pathInstructions = [];
95
+ // Add token enforcement instructions
96
+ if (tokens.length > 0) {
97
+ const colorTokens = tokens.filter(t => t.category === 'color' || t.name.includes('color'));
98
+ const spacingTokens = tokens.filter(t => t.category === 'spacing' || t.name.includes('spacing'));
99
+ if (colorTokens.length > 0) {
100
+ pathInstructions.push(`
101
+ - path: "**/*.{tsx,jsx,vue,svelte}"
102
+ instructions: |
103
+ Check for hardcoded color values. This project uses design tokens.
104
+ Available color tokens: ${colorTokens.slice(0, 10).map(t => t.name).join(', ')}${colorTokens.length > 10 ? ` (and ${colorTokens.length - 10} more)` : ''}
105
+ Flag any hex colors (#xxx), rgb(), or hsl() that aren't using tokens.`);
106
+ }
107
+ if (spacingTokens.length > 0) {
108
+ pathInstructions.push(`
109
+ - path: "**/*.{tsx,jsx,vue,svelte,css,scss}"
110
+ instructions: |
111
+ Check for hardcoded spacing values. This project uses spacing tokens.
112
+ Available spacing tokens: ${spacingTokens.slice(0, 10).map(t => t.name).join(', ')}${spacingTokens.length > 10 ? ` (and ${spacingTokens.length - 10} more)` : ''}
113
+ Flag arbitrary pixel values for margin, padding, gap that don't use tokens.`);
114
+ }
115
+ }
116
+ // Add anti-pattern rules
117
+ if (antiPatterns.length > 0) {
118
+ pathInstructions.push(`
119
+ - path: "**/*.{tsx,jsx,vue,svelte}"
120
+ instructions: |
121
+ Watch for these design system anti-patterns:
122
+ ${antiPatterns.slice(0, 5).map(ap => ` - ${ap.message}`).join('\n')}`);
123
+ }
124
+ return `# CodeRabbit Configuration
125
+ # Generated by Buoy - Design System Rules
126
+ # https://buoy.design
127
+
128
+ reviews:
129
+ profile: "chill"
130
+ request_changes_workflow: false
131
+ high_level_summary: true
132
+ poem: false
133
+
134
+ path_instructions:${pathInstructions.join('\n') || '\n []'}
135
+
136
+ chat:
137
+ auto_reply: true
138
+ `;
139
+ }
140
+ /**
141
+ * Generate Greptile configuration for design system context
142
+ */
143
+ export function generateGreptileConfig(options) {
144
+ const { tokens, patterns, antiPatterns, projectName } = options;
145
+ const customContext = [];
146
+ // Add token context
147
+ if (tokens.length > 0) {
148
+ const tokensByCategory = tokens.reduce((acc, t) => {
149
+ const cat = t.category || 'other';
150
+ if (!acc[cat])
151
+ acc[cat] = [];
152
+ acc[cat].push(t);
153
+ return acc;
154
+ }, {});
155
+ let tokenContent = `Design System Tokens for ${projectName || 'this project'}:\n\n`;
156
+ for (const [category, catTokens] of Object.entries(tokensByCategory)) {
157
+ tokenContent += `${category.toUpperCase()}:\n`;
158
+ tokenContent += catTokens.slice(0, 20).map(t => ` ${t.name}: ${t.value}`).join('\n');
159
+ if (catTokens.length > 20) {
160
+ tokenContent += `\n ... and ${catTokens.length - 20} more`;
161
+ }
162
+ tokenContent += '\n\n';
163
+ }
164
+ customContext.push({
165
+ type: 'rules',
166
+ content: tokenContent,
167
+ });
168
+ }
169
+ // Add pattern guidance
170
+ if (patterns.length > 0) {
171
+ customContext.push({
172
+ type: 'rules',
173
+ content: `Approved UI Patterns:\n${patterns.map(p => `- ${p.name}: ${p.description}`).join('\n')}`,
174
+ scope: 'src/**/*.{tsx,jsx,vue,svelte}',
175
+ });
176
+ }
177
+ // Add anti-pattern warnings
178
+ if (antiPatterns.length > 0) {
179
+ customContext.push({
180
+ type: 'rules',
181
+ content: `Design System Anti-Patterns to Flag:\n${antiPatterns.map(ap => `- ${ap.message}`).join('\n')}`,
182
+ scope: 'src/**/*.{tsx,jsx,vue,svelte}',
183
+ });
184
+ }
185
+ const config = {
186
+ instructions: `Review code for design system compliance. Flag hardcoded values that should use design tokens. Check component patterns match the design system.`,
187
+ strictness: 2,
188
+ customContext,
189
+ };
190
+ return JSON.stringify(config, null, 2);
191
+ }
192
+ /**
193
+ * Get instructions for integrating with detected tools
194
+ */
195
+ export function getIntegrationInstructions(tool) {
196
+ switch (tool.name) {
197
+ case 'coderabbit':
198
+ return `To add Buoy's design system rules to CodeRabbit:
199
+ 1. Run: buoy lighthouse --export-coderabbit
200
+ 2. Merge the output into your .coderabbit.yaml
201
+ 3. CodeRabbit will now enforce your design system!`;
202
+ case 'greptile':
203
+ return `To add Buoy's design system context to Greptile:
204
+ 1. Run: buoy lighthouse --export-greptile
205
+ 2. Add the output to your greptile.json customContext
206
+ 3. Or: Greptile auto-reads CLAUDE.md - run 'buoy context' to update it`;
207
+ case 'sourcery':
208
+ return `Sourcery focuses on code quality, not design systems.
209
+ Buoy complements Sourcery by handling design token enforcement.
210
+ Both can run together without conflict.`;
211
+ case 'codacy':
212
+ return `Codacy focuses on security and code quality.
213
+ Buoy complements Codacy by handling design system enforcement.
214
+ Both can run together without conflict.`;
215
+ case 'deepsource':
216
+ return `DeepSource focuses on security and code quality.
217
+ Buoy complements DeepSource by handling design system enforcement.
218
+ Both can run together without conflict.`;
219
+ default:
220
+ return '';
221
+ }
222
+ }
223
+ //# sourceMappingURL=ai-tools-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tools-detector.js","sourceRoot":"","sources":["../../src/services/ai-tools-detector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-design/cli",
3
- "version": "0.1.23",
3
+ "version": "0.1.24",
4
4
  "description": "Buoy CLI - Design drift detection for the AI era",
5
5
  "type": "module",
6
6
  "license": "MIT",