@buoy-design/cli 0.2.14 → 0.2.15

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.
@@ -0,0 +1,160 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Buoy PostToolUse Hook - Self-Validating Agent
4
+ *
5
+ * Runs after Edit/Write tool completes to check for design drift.
6
+ * Returns structured feedback that Claude can use to self-correct.
7
+ *
8
+ * @see https://code.claude.com/docs/en/hooks
9
+ */
10
+
11
+ import { spawnSync } from 'child_process';
12
+ import { readFileSync, unlinkSync } from 'fs';
13
+ import path from 'path';
14
+ import { tmpdir } from 'os';
15
+
16
+ // Read hook input from stdin
17
+ let inputData = '';
18
+ process.stdin.setEncoding('utf8');
19
+
20
+ process.stdin.on('data', (chunk) => {
21
+ inputData += chunk;
22
+ });
23
+
24
+ process.stdin.on('end', () => {
25
+ try {
26
+ const input = JSON.parse(inputData);
27
+ const result = validateFile(input);
28
+
29
+ if (result) {
30
+ console.log(JSON.stringify(result));
31
+ }
32
+
33
+ // Always exit 0 - we want to provide feedback, not block
34
+ process.exit(0);
35
+ } catch (err) {
36
+ // Silent failure - don't interrupt Claude's work
37
+ process.exit(0);
38
+ }
39
+ });
40
+
41
+ /**
42
+ * Check if a file is a UI component file we should validate
43
+ */
44
+ function isUIFile(filePath) {
45
+ if (!filePath) return false;
46
+
47
+ const uiExtensions = [
48
+ '.tsx', '.jsx', '.vue', '.svelte',
49
+ '.component.ts', '.component.html'
50
+ ];
51
+
52
+ const excludePatterns = [
53
+ /\.test\./,
54
+ /\.spec\./,
55
+ /\.stories\./,
56
+ /node_modules/,
57
+ /\.d\.ts$/,
58
+ /\.config\./
59
+ ];
60
+
61
+ const isUIExt = uiExtensions.some(e => filePath.endsWith(e));
62
+ const isExcluded = excludePatterns.some(p => p.test(filePath));
63
+
64
+ return isUIExt && !isExcluded;
65
+ }
66
+
67
+ /**
68
+ * Validate a file for design drift
69
+ */
70
+ function validateFile(input) {
71
+ const toolInput = input.tool_input || {};
72
+ const filePath = toolInput.file_path;
73
+
74
+ // Only validate UI files
75
+ if (!isUIFile(filePath)) {
76
+ return null;
77
+ }
78
+
79
+ try {
80
+ // Run buoy check with JSON format via temp file to avoid Node.js pipe buffer limits
81
+ const tempFile = path.join(tmpdir(), `buoy-check-${process.pid}.json`);
82
+ const result = spawnSync('sh', ['-c', `npx buoy check --format json > "${tempFile}" 2>/dev/null`], {
83
+ cwd: input.cwd || process.cwd(),
84
+ timeout: 30000,
85
+ shell: false
86
+ });
87
+
88
+ if (result.error) {
89
+ return null;
90
+ }
91
+
92
+ let output;
93
+ try {
94
+ output = readFileSync(tempFile, 'utf8');
95
+ unlinkSync(tempFile);
96
+ } catch (e) {
97
+ return null;
98
+ }
99
+
100
+ const checkResult = JSON.parse(output);
101
+
102
+ // Filter to only issues in the modified file
103
+ const fileIssues = (checkResult.issues || checkResult.drifts || []).filter(
104
+ issue => {
105
+ // Extract path from source.location (format: "path/to/file.tsx:123")
106
+ const location = issue.source?.location || '';
107
+ const issuePath = location.split(':')[0] || issue.file || issue.source?.path;
108
+ return issuePath === filePath || filePath.endsWith(issuePath) || issuePath?.endsWith(path.basename(filePath));
109
+ }
110
+ );
111
+
112
+ if (fileIssues.length === 0) {
113
+ return null; // No issues, no feedback needed
114
+ }
115
+
116
+ // Format feedback for Claude
117
+ const feedback = formatFeedback(filePath, fileIssues);
118
+
119
+ return {
120
+ hookSpecificOutput: {
121
+ hookEventName: "PostToolUse",
122
+ additionalContext: feedback
123
+ }
124
+ };
125
+
126
+ } catch (err) {
127
+ // buoy check failed or not installed - silent failure
128
+ return null;
129
+ }
130
+ }
131
+
132
+ /**
133
+ * Format drift issues as actionable feedback for Claude
134
+ */
135
+ function formatFeedback(filePath, issues) {
136
+ const lines = [
137
+ '⚠️ Design drift detected in ' + path.basename(filePath) + ':',
138
+ ''
139
+ ];
140
+
141
+ for (const issue of issues.slice(0, 5)) { // Limit to 5 issues
142
+ const type = issue.type || issue.driftType || 'drift';
143
+ const msg = issue.message || issue.description || 'Design system violation';
144
+ lines.push('• ' + type + ': ' + msg);
145
+
146
+ if (issue.suggestion || issue.fix) {
147
+ lines.push(' Fix: ' + (issue.suggestion || issue.fix));
148
+ }
149
+ lines.push('');
150
+ }
151
+
152
+ if (issues.length > 5) {
153
+ lines.push('... and ' + (issues.length - 5) + ' more issues');
154
+ lines.push('');
155
+ }
156
+
157
+ lines.push('Run `buoy show drift` for full details.');
158
+
159
+ return lines.join('\n');
160
+ }
@@ -4,6 +4,11 @@ export interface MonorepoInfo {
4
4
  type: 'pnpm' | 'yarn' | 'npm' | 'lerna' | 'nx' | 'turborepo';
5
5
  patterns: string[];
6
6
  }
7
+ export interface NestedFrontendInfo {
8
+ dir: string;
9
+ hasPackageJson: boolean;
10
+ hasSrcDir: boolean;
11
+ }
7
12
  /**
8
13
  * Build a config automatically from detected frameworks.
9
14
  * Used when no .buoy.yaml exists - zero-config mode.
@@ -13,6 +18,7 @@ export declare function buildAutoConfig(projectRoot?: string): Promise<{
13
18
  detected: DetectedFramework[];
14
19
  tokenFiles: string[];
15
20
  monorepo: MonorepoInfo | null;
21
+ nestedFrontend: NestedFrontendInfo | null;
16
22
  }>;
17
23
  /**
18
24
  * Format a summary of what was auto-detected
@@ -1 +1 @@
1
- {"version":3,"file":"auto-detect.d.ts","sourceRoot":"","sources":["../../src/config/auto-detect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAwID;;;GAGG;AACH,wBAAsB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC;IAClF,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;CAC/B,CAAC,CA0HD;AA4CD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAqBR"}
1
+ {"version":3,"file":"auto-detect.d.ts","sourceRoot":"","sources":["../../src/config/auto-detect.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,CAAC;IAC7D,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAsFD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAkJD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC;IAClF,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC3C,CAAC,CAyID;AA4CD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAqBR"}
@@ -4,6 +4,12 @@ import { existsSync } from 'node:fs';
4
4
  import { readFile } from 'node:fs/promises';
5
5
  import { glob } from 'glob';
6
6
  import { detectFrameworks } from '../detect/frameworks.js';
7
+ /**
8
+ * Common nested frontend directory names.
9
+ * These are subdirectories that contain a separate frontend app (e.g., in full-stack repos
10
+ * where a Go/Python/etc backend has a React/Vue/etc frontend in a subdirectory).
11
+ */
12
+ const NESTED_FRONTEND_DIRS = ['frontend', 'client', 'web', 'ui', 'app', 'dashboard'];
7
13
  /**
8
14
  * Detect if this is a monorepo and return workspace patterns.
9
15
  */
@@ -78,6 +84,59 @@ async function detectMonorepo(projectRoot) {
78
84
  }
79
85
  return null;
80
86
  }
87
+ /**
88
+ * Detect if this project has a nested frontend directory.
89
+ * Common in full-stack apps where a Go/Python/etc backend has a frontend/ subdirectory.
90
+ */
91
+ async function detectNestedFrontend(projectRoot) {
92
+ for (const dir of NESTED_FRONTEND_DIRS) {
93
+ const dirPath = resolve(projectRoot, dir);
94
+ const pkgPath = resolve(dirPath, 'package.json');
95
+ // Check if the directory has a package.json with a frontend framework
96
+ if (existsSync(pkgPath)) {
97
+ try {
98
+ const content = JSON.parse(await readFile(pkgPath, 'utf-8'));
99
+ const deps = { ...content.dependencies, ...content.devDependencies };
100
+ // Check for common frontend framework indicators
101
+ const hasFrontendFramework = Boolean(deps['react'] ||
102
+ deps['react-dom'] ||
103
+ deps['vue'] ||
104
+ deps['svelte'] ||
105
+ deps['@angular/core'] ||
106
+ deps['next'] ||
107
+ deps['nuxt'] ||
108
+ deps['@sveltejs/kit']);
109
+ if (hasFrontendFramework) {
110
+ const srcPath = resolve(dirPath, 'src');
111
+ return {
112
+ dir,
113
+ hasPackageJson: true,
114
+ hasSrcDir: existsSync(srcPath),
115
+ };
116
+ }
117
+ }
118
+ catch {
119
+ // Invalid JSON, continue checking other directories
120
+ }
121
+ }
122
+ }
123
+ return null;
124
+ }
125
+ /**
126
+ * Expand include patterns for nested frontend directory.
127
+ * Prefixes patterns with the frontend directory path.
128
+ */
129
+ function expandForNestedFrontend(basePatterns, nested) {
130
+ const expanded = [];
131
+ for (const pattern of basePatterns) {
132
+ // Add the nested prefix to the pattern
133
+ // e.g., 'src/**/*.tsx' -> 'frontend/src/**/*.tsx'
134
+ expanded.push(`${nested.dir}/${pattern}`);
135
+ }
136
+ // Also include the base patterns in case there's code at the root level too
137
+ expanded.push(...basePatterns);
138
+ return [...new Set(expanded)]; // Deduplicate
139
+ }
81
140
  /**
82
141
  * Expand include patterns for monorepo structure.
83
142
  * Adds patterns like packages/[star]/src/[star][star]/[star].tsx for monorepos.
@@ -129,14 +188,45 @@ function expandForMonorepo(basePatterns, monorepo) {
129
188
  }
130
189
  return [...new Set(expanded)]; // Deduplicate
131
190
  }
191
+ /**
192
+ * Expand patterns for project structure (monorepo or nested frontend).
193
+ * Returns the appropriate patterns based on detected structure.
194
+ */
195
+ function expandPatterns(basePatterns, monorepo, nestedFrontend) {
196
+ let patterns = basePatterns;
197
+ // Apply monorepo expansion first
198
+ if (monorepo) {
199
+ patterns = expandForMonorepo(patterns, monorepo);
200
+ }
201
+ // Apply nested frontend expansion
202
+ if (nestedFrontend) {
203
+ patterns = expandForNestedFrontend(patterns, nestedFrontend);
204
+ }
205
+ return patterns;
206
+ }
132
207
  /**
133
208
  * Build a config automatically from detected frameworks.
134
209
  * Used when no .buoy.yaml exists - zero-config mode.
135
210
  */
136
211
  export async function buildAutoConfig(projectRoot = process.cwd()) {
137
- // Detect monorepo first, then frameworks (passing monorepo info for workspace scanning)
212
+ // Detect monorepo and nested frontend structures
138
213
  const monorepo = await detectMonorepo(projectRoot);
139
- const detected = await detectFrameworks(projectRoot, monorepo);
214
+ const nestedFrontend = await detectNestedFrontend(projectRoot);
215
+ // Detect frameworks - check nested frontend directory if present
216
+ // This ensures we find frameworks in frontend/ subdirectories
217
+ let detected;
218
+ if (nestedFrontend) {
219
+ const nestedRoot = resolve(projectRoot, nestedFrontend.dir);
220
+ // Detect frameworks in nested frontend first
221
+ detected = await detectFrameworks(nestedRoot, monorepo);
222
+ // If no frameworks found in nested, try root
223
+ if (detected.length === 0) {
224
+ detected = await detectFrameworks(projectRoot, monorepo);
225
+ }
226
+ }
227
+ else {
228
+ detected = await detectFrameworks(projectRoot, monorepo);
229
+ }
140
230
  // Find token files
141
231
  const tokenFiles = await findTokenFiles(projectRoot);
142
232
  // Build config from detections
@@ -169,7 +259,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
169
259
  const baseInclude = ['src/**/*.tsx', 'src/**/*.jsx', 'app/**/*.tsx', 'app/**/*.jsx', 'components/**/*.tsx', 'components/**/*.jsx'];
170
260
  config.sources.react = {
171
261
  enabled: true,
172
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
262
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
173
263
  exclude: ['**/*.test.*', '**/*.spec.*', '**/*.stories.*', '**/node_modules/**'],
174
264
  };
175
265
  break;
@@ -178,7 +268,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
178
268
  const baseInclude = ['src/**/*.vue', 'components/**/*.vue'];
179
269
  config.sources.vue = {
180
270
  enabled: true,
181
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
271
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
182
272
  exclude: ['**/*.test.*', '**/*.spec.*', '**/*.stories.*', '**/node_modules/**'],
183
273
  };
184
274
  break;
@@ -187,7 +277,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
187
277
  const baseInclude = ['src/**/*.svelte', 'lib/**/*.svelte'];
188
278
  config.sources.svelte = {
189
279
  enabled: true,
190
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
280
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
191
281
  exclude: ['**/*.test.*', '**/*.spec.*', '**/*.stories.*', '**/node_modules/**'],
192
282
  };
193
283
  break;
@@ -198,7 +288,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
198
288
  const baseInclude = ['src/**/*.ts'];
199
289
  config.sources.angular = {
200
290
  enabled: true,
201
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
291
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
202
292
  exclude: ['**/*.spec.*', '**/*.test.*', '**/node_modules/**'],
203
293
  };
204
294
  break;
@@ -207,7 +297,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
207
297
  const baseInclude = ['src/**/*.ts'];
208
298
  config.sources.webcomponent = {
209
299
  enabled: true,
210
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
300
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
211
301
  exclude: ['**/*.test.*', '**/*.spec.*', '**/node_modules/**'],
212
302
  framework: 'auto',
213
303
  };
@@ -218,7 +308,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
218
308
  const baseInclude = ['src/**/*.tsx', 'src/**/*.jsx', 'src/**/*.vue', 'src/**/*.svelte', 'app/**/*.tsx', 'components/**/*.tsx'];
219
309
  config.sources.tailwind = {
220
310
  enabled: true,
221
- files: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
311
+ files: expandPatterns(baseInclude, monorepo, nestedFrontend),
222
312
  exclude: ['**/node_modules/**', '**/dist/**', '**/.next/**'],
223
313
  };
224
314
  break;
@@ -228,7 +318,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
228
318
  const baseInclude = ['src/**/*.astro', 'components/**/*.astro'];
229
319
  config.sources.templates = {
230
320
  enabled: true,
231
- include: monorepo ? expandForMonorepo(baseInclude, monorepo) : baseInclude,
321
+ include: expandPatterns(baseInclude, monorepo, nestedFrontend),
232
322
  exclude: ['**/node_modules/**', '**/dist/**'],
233
323
  type: 'astro',
234
324
  };
@@ -243,7 +333,7 @@ export async function buildAutoConfig(projectRoot = process.cwd()) {
243
333
  files: tokenFiles,
244
334
  };
245
335
  }
246
- return { config, detected, tokenFiles, monorepo };
336
+ return { config, detected, tokenFiles, monorepo, nestedFrontend };
247
337
  }
248
338
  /**
249
339
  * Find common token file patterns
@@ -1 +1 @@
1
- {"version":3,"file":"auto-detect.js","sourceRoot":"","sources":["../../src/config/auto-detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-detect.js","sourceRoot":"","sources":["../../src/config/auto-detect.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAA0B,MAAM,yBAAyB,CAAC;AAQnF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;AAErF;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,WAAmB;IAC/C,gCAAgC;IAChC,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;IACtE,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC3D,0CAA0C;YAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7E,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC;qBAC9B,KAAK,CAAC,IAAI,CAAC;qBACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;qBAChD,MAAM,CAAC,OAAO,CAAC;oBAChB,mDAAmD;qBAClD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBACxD,mDAAmD;qBAClD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACpC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,4BAA4B;QAC9B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,CAAE,mBAAmB;IACrF,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;IACrD,CAAC;IAED,oBAAoB;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,uBAAuB;IACvB,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC;IACrE,CAAC;IAED,+CAA+C;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;oBAChD,CAAC,CAAC,OAAO,CAAC,UAAU;oBACpB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,4DAA4D;oBAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5E,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kBAAkB;QACpB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAQD;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAAC,WAAmB;IACrD,KAAK,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAEjD,sEAAsE;QACtE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;gBAC7D,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;gBAErE,iDAAiD;gBACjD,MAAM,oBAAoB,GAAG,OAAO,CAClC,IAAI,CAAC,OAAO,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC;oBACX,IAAI,CAAC,QAAQ,CAAC;oBACd,IAAI,CAAC,eAAe,CAAC;oBACrB,IAAI,CAAC,MAAM,CAAC;oBACZ,IAAI,CAAC,MAAM,CAAC;oBACZ,IAAI,CAAC,eAAe,CAAC,CACtB,CAAC;gBAEF,IAAI,oBAAoB,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;oBACxC,OAAO;wBACL,GAAG;wBACH,cAAc,EAAE,IAAI;wBACpB,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC;qBAC/B,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,YAAsB,EAAE,MAA0B;IACjF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,uCAAuC;QACvC,kDAAkD;QAClD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;IAE/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,cAAc;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CAAC,YAAsB,EAAE,QAAsB;IACvE,MAAM,QAAQ,GAAa,CAAC,GAAG,YAAY,CAAC,CAAC;IAE7C,2DAA2D;IAC3D,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1C,yDAAyD;QACzD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEtE,qDAAqD;QACrD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,kEAAkE;YAClE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,eAAe;gBACzC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,mBAAmB;gBAE7C,kDAAkD;gBAClD,8CAA8C;gBAC9C,wEAAwE;gBACxE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,+CAA+C;oBAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;oBAC9C,0DAA0D;oBAC1D,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACjD,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,+CAA+C;IAC/C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3D,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACtC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,cAAc;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,YAAsB,EACtB,QAA6B,EAC7B,cAAyC;IAEzC,IAAI,QAAQ,GAAG,YAAY,CAAC;IAE5B,iCAAiC;IACjC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,kCAAkC;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,cAAsB,OAAO,CAAC,GAAG,EAAE;IAOvE,iDAAiD;IACjD,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAE/D,iEAAiE;IACjE,8DAA8D;IAC9D,IAAI,QAA6B,CAAC;IAClC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC;QAC5D,6CAA6C;QAC7C,QAAQ,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACxD,6CAA6C;QAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,mBAAmB;IACnB,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IAErD,+BAA+B;IAC/B,MAAM,MAAM,GAAe;QACzB,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;SAC5B;QACD,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACL,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE;gBACX,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC;gBACrD,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,EAAE;aACjB;YACD,KAAK,EAAE,EAAE;SACV;QACD,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0BAA0B,EAAE;QAC7D,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;QACzC,YAAY,EAAE,EAAE,wBAAwB,EAAE,KAAK,EAAE;KAClD,CAAC;IAEF,4CAA4C;IAC5C,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,CAAC,CAAC;gBACnI,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG;oBACrB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;iBAChF,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;gBAC5D,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG;oBACnB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;iBAChF,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,WAAW,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;gBAC3D,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;oBACtB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,oBAAoB,CAAC;iBAChF,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,+EAA+E;gBAC/E,2CAA2C;gBAC3C,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG;oBACvB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,CAAC;iBAC9D,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,eAAe,CAAC,CAAC,CAAC;gBACrB,MAAM,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;gBACpC,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG;oBAC5B,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,oBAAoB,CAAC;oBAC7D,SAAS,EAAE,MAAM;iBAClB,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,4CAA4C;gBAC5C,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAC;gBAC/H,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG;oBACxB,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC5D,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC;iBAC7D,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,oCAAoC;gBACpC,MAAM,WAAW,GAAG,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG;oBACzB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,CAAC;oBAC9D,OAAO,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;oBAC7C,IAAI,EAAE,OAAO;iBACd,CAAC;gBACF,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG;YACtB,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,UAAU;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACpE,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,WAAmB;IAC/C,MAAM,QAAQ,GAAG;QACf,wBAAwB;QACxB,eAAe;QACf,kBAAkB;QAClB,sBAAsB;QACtB,cAAc;QACd,oBAAoB;QACpB,iBAAiB;QACjB,yBAAyB;QACzB,sBAAsB;QAEtB,cAAc;QACd,gBAAgB;QAChB,uBAAuB;QACvB,iBAAiB;QACjB,+BAA+B;QAE/B,kCAAkC;QAClC,oBAAoB;QACpB,oBAAoB;QACpB,qBAAqB;KACtB,CAAC;IAEF,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE;YAClC,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,EAAE,aAAa,CAAC;SAC5D,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,cAAc;IACd,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAA6B,EAC7B,UAAoB;IAEpB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAa3D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmFvF;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAQxE"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAmC,MAAM,aAAa,CAAC;AAsD1E,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAsB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoFvF;AAED,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAQxE"}
@@ -6,6 +6,39 @@ import { ZodError } from 'zod';
6
6
  import { fromZodError } from 'zod-validation-error';
7
7
  import { BuoyConfigSchema } from './schema.js';
8
8
  import { buildAutoConfig } from './auto-detect.js';
9
+ /**
10
+ * Framework sources that can be auto-detected and merged.
11
+ * These are the component scanning sources (not tokens/figma/storybook).
12
+ */
13
+ const AUTO_DETECTABLE_SOURCES = [
14
+ 'react', 'vue', 'svelte', 'angular', 'webcomponent', 'templates', 'tailwind'
15
+ ];
16
+ /**
17
+ * Merge auto-detected framework sources into user config.
18
+ * This ensures that if a user provides a partial config (e.g., only tokens),
19
+ * we still auto-detect and enable framework sources like React.
20
+ *
21
+ * User's explicit settings always take precedence:
22
+ * - If user sets `react: { enabled: false }`, we respect that
23
+ * - If user doesn't mention a source at all, we merge in auto-detected config
24
+ */
25
+ async function mergeAutoDetectedSources(userConfig, cwd) {
26
+ // Run auto-detection to get framework sources
27
+ const { config: autoConfig } = await buildAutoConfig(cwd);
28
+ // Start with user config
29
+ const mergedConfig = { ...userConfig };
30
+ // Merge auto-detected sources that the user didn't explicitly configure
31
+ for (const source of AUTO_DETECTABLE_SOURCES) {
32
+ // If user didn't define this source at all, use auto-detected
33
+ if (userConfig.sources[source] === undefined && autoConfig.sources[source]) {
34
+ mergedConfig.sources = {
35
+ ...mergedConfig.sources,
36
+ [source]: autoConfig.sources[source],
37
+ };
38
+ }
39
+ }
40
+ return mergedConfig;
41
+ }
9
42
  const CONFIG_FILES = [
10
43
  '.buoy.yaml', // Primary - YAML
11
44
  '.buoy.yml', // Alt YAML extension
@@ -36,31 +69,32 @@ export async function loadConfig(cwd = process.cwd()) {
36
69
  // Load config based on extension
37
70
  const ext = configPath.split('.').pop();
38
71
  try {
72
+ let userConfig;
39
73
  // YAML config files (.buoy.yaml, .buoy.yml)
40
74
  if (ext === 'yaml' || ext === 'yml') {
41
75
  const content = readFileSync(configPath, 'utf-8');
42
76
  const raw = parseYaml(content);
43
- return {
44
- config: BuoyConfigSchema.parse(raw),
45
- configPath,
46
- };
77
+ userConfig = BuoyConfigSchema.parse(raw);
47
78
  }
48
79
  // JSON config files (.buoyrc.json, .buoyrc)
49
- if (ext === 'json' || configPath.endsWith('.buoyrc')) {
80
+ else if (ext === 'json' || configPath.endsWith('.buoyrc')) {
50
81
  const content = readFileSync(configPath, 'utf-8');
51
82
  const raw = JSON.parse(content);
52
- return {
53
- config: BuoyConfigSchema.parse(raw),
54
- configPath,
55
- };
83
+ userConfig = BuoyConfigSchema.parse(raw);
56
84
  }
57
85
  // For JS/TS files, we need to import them
58
86
  // Note: TypeScript files need tsx or similar runtime
59
- const fileUrl = pathToFileURL(configPath).href;
60
- const mod = await import(fileUrl);
61
- const raw = mod.default || mod;
87
+ else {
88
+ const fileUrl = pathToFileURL(configPath).href;
89
+ const mod = await import(fileUrl);
90
+ const raw = mod.default || mod;
91
+ userConfig = BuoyConfigSchema.parse(raw);
92
+ }
93
+ // Merge auto-detected framework sources with user config
94
+ // This ensures partial configs still get framework detection
95
+ const mergedConfig = await mergeAutoDetectedSources(userConfig, cwd);
62
96
  return {
63
- config: BuoyConfigSchema.parse(raw),
97
+ config: mergedConfig,
64
98
  configPath,
65
99
  };
66
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -54,9 +54,11 @@ export interface ClaudeHooksConfig {
54
54
  /**
55
55
  * Generate Claude Code hooks configuration for design system awareness
56
56
  * - SessionStart: Injects condensed design system context
57
- * - PostToolUse: Real-time drift check on file modifications
57
+ * - PostToolUse: Self-validating drift check on file modifications
58
58
  *
59
59
  * Uses cross-platform Node.js command instead of `cat` for Windows compatibility
60
+ *
61
+ * @see https://code.claude.com/docs/en/hooks
60
62
  */
61
63
  export declare function generateClaudeHooksConfig(): ClaudeHooksConfig;
62
64
  export interface SetupClaudeHooksResult {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAmBF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAExE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8BvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CA2BhE;AAgLD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAoB5E;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,KAAK,CAAC;YACnB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,iBAAiB,CA0C7D;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAiBD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CA+F5E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAuCA;;GAEG;AACH,eAAO,MAAM,kBAAkB;;CAE9B,CAAC;AAmBF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAExE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8BvE;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CA2BhE;AAgLD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB,CAoB5E;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE;QACL,YAAY,CAAC,EAAE,KAAK,CAAC;YACnB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,WAAW,CAAC,EAAE,KAAK,CAAC;YAClB,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,UAAU,CAAC,EAAE,KAAK,CAAC;YACjB,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,KAAK,CAAC;gBACX,IAAI,EAAE,SAAS,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC;aACjB,CAAC,CAAC;SACJ,CAAC,CAAC;KACJ,CAAC;CACH;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,iBAAiB,CA6C7D;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AA4LD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,sBAAsB,CA6G5E"}
@@ -283,16 +283,21 @@ export function generateStandaloneHook(projectRoot) {
283
283
  /**
284
284
  * Generate Claude Code hooks configuration for design system awareness
285
285
  * - SessionStart: Injects condensed design system context
286
- * - PostToolUse: Real-time drift check on file modifications
286
+ * - PostToolUse: Self-validating drift check on file modifications
287
287
  *
288
288
  * Uses cross-platform Node.js command instead of `cat` for Windows compatibility
289
+ *
290
+ * @see https://code.claude.com/docs/en/hooks
289
291
  */
290
292
  export function generateClaudeHooksConfig() {
291
293
  // Cross-platform command that works on Windows, macOS, and Linux
292
294
  const crossPlatformRead = `node -e "const fs=require('fs');const p='.claude/buoy-context.md';fs.existsSync(p)?console.log(fs.readFileSync(p,'utf8')):console.log('🛟 Design system active. Run buoy dock agents to set up context.')"`;
293
- // Real-time check command - runs after file edits, silent when clean
294
- // Uses --format ai-feedback for structured output the AI can act on
295
- const realtimeCheck = `npx buoy check --quiet --fail-on critical --format ai-feedback 2>/dev/null || true`;
295
+ // Self-validating hook: runs buoy check and returns structured feedback
296
+ // Uses the validation script which:
297
+ // 1. Parses stdin JSON to get the modified file path
298
+ // 2. Runs buoy check and filters to issues in that file
299
+ // 3. Returns JSON with additionalContext for Claude to self-correct
300
+ const selfValidateCommand = `node "$CLAUDE_PROJECT_DIR/.claude/hooks/buoy-validate.js"`;
296
301
  return {
297
302
  hooks: {
298
303
  SessionStart: [
@@ -311,7 +316,7 @@ export function generateClaudeHooksConfig() {
311
316
  hooks: [
312
317
  {
313
318
  type: "command",
314
- command: realtimeCheck,
319
+ command: selfValidateCommand,
315
320
  },
316
321
  ],
317
322
  },
@@ -320,7 +325,7 @@ export function generateClaudeHooksConfig() {
320
325
  hooks: [
321
326
  {
322
327
  type: "command",
323
- command: realtimeCheck,
328
+ command: selfValidateCommand,
324
329
  },
325
330
  ],
326
331
  },
@@ -328,6 +333,176 @@ export function generateClaudeHooksConfig() {
328
333
  },
329
334
  };
330
335
  }
336
+ /**
337
+ * Get the self-validating hook script content
338
+ * This script:
339
+ * 1. Parses stdin JSON to get the modified file path
340
+ * 2. Runs buoy check and filters to issues in that file
341
+ * 3. Returns JSON with additionalContext for Claude to self-correct
342
+ */
343
+ function getValidationScript() {
344
+ return `#!/usr/bin/env node
345
+ /**
346
+ * Buoy PostToolUse Hook - Self-Validating Agent
347
+ *
348
+ * Runs after Edit/Write tool completes to check for design drift.
349
+ * Returns structured feedback that Claude can use to self-correct.
350
+ *
351
+ * @see https://code.claude.com/docs/en/hooks
352
+ */
353
+
354
+ import { spawnSync } from 'child_process';
355
+ import { readFileSync, unlinkSync } from 'fs';
356
+ import path from 'path';
357
+ import { tmpdir } from 'os';
358
+
359
+ // Read hook input from stdin
360
+ let inputData = '';
361
+ process.stdin.setEncoding('utf8');
362
+
363
+ process.stdin.on('data', (chunk) => {
364
+ inputData += chunk;
365
+ });
366
+
367
+ process.stdin.on('end', () => {
368
+ try {
369
+ const input = JSON.parse(inputData);
370
+ const result = validateFile(input);
371
+
372
+ if (result) {
373
+ console.log(JSON.stringify(result));
374
+ }
375
+
376
+ // Always exit 0 - we want to provide feedback, not block
377
+ process.exit(0);
378
+ } catch (err) {
379
+ // Silent failure - don't interrupt Claude's work
380
+ process.exit(0);
381
+ }
382
+ });
383
+
384
+ /**
385
+ * Check if a file is a UI component file we should validate
386
+ */
387
+ function isUIFile(filePath) {
388
+ if (!filePath) return false;
389
+
390
+ const uiExtensions = [
391
+ '.tsx', '.jsx', '.vue', '.svelte',
392
+ '.component.ts', '.component.html'
393
+ ];
394
+
395
+ const excludePatterns = [
396
+ /\\.test\\./,
397
+ /\\.spec\\./,
398
+ /\\.stories\\./,
399
+ /node_modules/,
400
+ /\\.d\\.ts$/,
401
+ /\\.config\\./
402
+ ];
403
+
404
+ const isUIExt = uiExtensions.some(e => filePath.endsWith(e));
405
+ const isExcluded = excludePatterns.some(p => p.test(filePath));
406
+
407
+ return isUIExt && !isExcluded;
408
+ }
409
+
410
+ /**
411
+ * Validate a file for design drift
412
+ */
413
+ function validateFile(input) {
414
+ const toolInput = input.tool_input || {};
415
+ const filePath = toolInput.file_path;
416
+
417
+ // Only validate UI files
418
+ if (!isUIFile(filePath)) {
419
+ return null;
420
+ }
421
+
422
+ try {
423
+ // Run buoy check with JSON format via temp file to avoid Node.js pipe buffer limits
424
+ const tempFile = path.join(tmpdir(), \\\`buoy-check-\\\${process.pid}.json\\\`);
425
+ const result = spawnSync('sh', ['-c', \\\`npx buoy check --format json > "\\\${tempFile}" 2>/dev/null\\\`], {
426
+ cwd: input.cwd || process.cwd(),
427
+ timeout: 30000,
428
+ shell: false
429
+ });
430
+
431
+ if (result.error) {
432
+ return null;
433
+ }
434
+
435
+ let output;
436
+ try {
437
+ output = readFileSync(tempFile, 'utf8');
438
+ unlinkSync(tempFile);
439
+ } catch (e) {
440
+ return null;
441
+ }
442
+
443
+ const checkResult = JSON.parse(output);
444
+
445
+ // Filter to only issues in the modified file
446
+ const fileIssues = (checkResult.issues || checkResult.drifts || []).filter(
447
+ issue => {
448
+ // Extract path from source.location (format: "path/to/file.tsx:123")
449
+ const location = issue.source?.location || '';
450
+ const issuePath = location.split(':')[0] || issue.file || issue.source?.path;
451
+ return issuePath === filePath || filePath.endsWith(issuePath) || issuePath?.endsWith(path.basename(filePath));
452
+ }
453
+ );
454
+
455
+ if (fileIssues.length === 0) {
456
+ return null; // No issues, no feedback needed
457
+ }
458
+
459
+ // Format feedback for Claude
460
+ const feedback = formatFeedback(filePath, fileIssues);
461
+
462
+ return {
463
+ hookSpecificOutput: {
464
+ hookEventName: "PostToolUse",
465
+ additionalContext: feedback
466
+ }
467
+ };
468
+
469
+ } catch (err) {
470
+ // buoy check failed or not installed - silent failure
471
+ return null;
472
+ }
473
+ }
474
+
475
+ /**
476
+ * Format drift issues as actionable feedback for Claude
477
+ */
478
+ function formatFeedback(filePath, issues) {
479
+ const lines = [
480
+ '⚠️ Design drift detected in ' + path.basename(filePath) + ':',
481
+ ''
482
+ ];
483
+
484
+ for (const issue of issues.slice(0, 5)) { // Limit to 5 issues
485
+ const type = issue.type || issue.driftType || 'drift';
486
+ const msg = issue.message || issue.description || 'Design system violation';
487
+ lines.push('• ' + type + ': ' + msg);
488
+
489
+ if (issue.suggestion || issue.fix) {
490
+ lines.push(' Fix: ' + (issue.suggestion || issue.fix));
491
+ }
492
+ lines.push('');
493
+ }
494
+
495
+ if (issues.length > 5) {
496
+ lines.push('... and ' + (issues.length - 5) + ' more issues');
497
+ lines.push('');
498
+ }
499
+
500
+ lines.push('Run \\\`buoy show drift\\\` for full details.');
501
+
502
+ return lines.join('\\n');
503
+ }
504
+ `;
505
+ }
331
506
  /**
332
507
  * Validate that a parsed JSON object has valid Claude settings structure
333
508
  */
@@ -347,7 +522,19 @@ function isValidClaudeSettings(obj) {
347
522
  */
348
523
  export function setupClaudeHooks(projectRoot) {
349
524
  const claudeDir = resolve(projectRoot, ".claude");
525
+ const hooksDir = resolve(claudeDir, "hooks");
350
526
  const settingsPath = resolve(claudeDir, "settings.local.json");
527
+ // Ensure .claude/hooks directory exists
528
+ if (!existsSync(hooksDir)) {
529
+ mkdirSync(hooksDir, { recursive: true });
530
+ }
531
+ // Install the validation script
532
+ const validateScriptPath = resolve(hooksDir, "buoy-validate.js");
533
+ if (!existsSync(validateScriptPath)) {
534
+ const scriptContent = getValidationScript();
535
+ writeFileSync(validateScriptPath, scriptContent);
536
+ chmodSync(validateScriptPath, 0o755);
537
+ }
351
538
  // Check if .claude directory exists
352
539
  if (!existsSync(claudeDir)) {
353
540
  mkdirSync(claudeDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.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.2.14",
3
+ "version": "0.2.15",
4
4
  "description": "Buoy CLI - Design drift detection for the AI era",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "yaml": "^2.8.2",
46
46
  "zod": "^3.24.1",
47
47
  "zod-validation-error": "^5.0.0",
48
- "@buoy-design/scanners": "0.1.8",
49
48
  "@buoy-design/core": "0.1.12",
49
+ "@buoy-design/scanners": "0.1.8",
50
50
  "@buoy-design/db": "0.1.4"
51
51
  },
52
52
  "devDependencies": {