design-brain-memory 0.8.2 → 0.9.1

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 (126) hide show
  1. package/dist/agentBrowser.d.ts +1 -0
  2. package/dist/agentBrowser.js +1 -0
  3. package/dist/agentBrowser.js.map +1 -1
  4. package/dist/classify.d.ts +21 -0
  5. package/dist/classify.js +205 -0
  6. package/dist/classify.js.map +1 -0
  7. package/dist/cli.js +216 -219
  8. package/dist/cli.js.map +1 -1
  9. package/dist/commands.d.ts +1 -60
  10. package/dist/commands.js +10 -322
  11. package/dist/commands.js.map +1 -1
  12. package/dist/extractFromUrl.d.ts +0 -7
  13. package/dist/extractFromUrl.js +353 -82
  14. package/dist/extractFromUrl.js.map +1 -1
  15. package/dist/index.d.ts +12 -24
  16. package/dist/index.js +11 -16
  17. package/dist/index.js.map +1 -1
  18. package/dist/llm.d.ts +6 -0
  19. package/dist/llm.js +12 -1
  20. package/dist/llm.js.map +1 -1
  21. package/dist/persona.d.ts +2 -0
  22. package/dist/persona.js +234 -0
  23. package/dist/persona.js.map +1 -0
  24. package/dist/query.js +6 -1
  25. package/dist/query.js.map +1 -1
  26. package/dist/render.d.ts +10 -2
  27. package/dist/render.js +175 -80
  28. package/dist/render.js.map +1 -1
  29. package/dist/scan.d.ts +10 -0
  30. package/dist/scan.js +393 -0
  31. package/dist/scan.js.map +1 -0
  32. package/dist/scanRenderer.d.ts +2 -0
  33. package/dist/scanRenderer.js +155 -0
  34. package/dist/scanRenderer.js.map +1 -0
  35. package/dist/skillPrompt.d.ts +3 -1
  36. package/dist/skillPrompt.js +148 -22
  37. package/dist/skillPrompt.js.map +1 -1
  38. package/dist/store.d.ts +5 -1
  39. package/dist/store.js +19 -0
  40. package/dist/store.js.map +1 -1
  41. package/dist/taste.d.ts +9 -0
  42. package/dist/taste.js +598 -0
  43. package/dist/taste.js.map +1 -0
  44. package/dist/tasteDiff.d.ts +19 -0
  45. package/dist/tasteDiff.js +340 -0
  46. package/dist/tasteDiff.js.map +1 -0
  47. package/dist/tasteGenerate.d.ts +12 -0
  48. package/dist/tasteGenerate.js +140 -0
  49. package/dist/tasteGenerate.js.map +1 -0
  50. package/dist/tasteRefine.d.ts +13 -0
  51. package/dist/tasteRefine.js +351 -0
  52. package/dist/tasteRefine.js.map +1 -0
  53. package/dist/tasteRenderer.d.ts +4 -0
  54. package/dist/tasteRenderer.js +133 -0
  55. package/dist/tasteRenderer.js.map +1 -0
  56. package/dist/theatrical.d.ts +5 -0
  57. package/dist/theatrical.js +258 -0
  58. package/dist/theatrical.js.map +1 -0
  59. package/dist/types.d.ts +196 -27
  60. package/package.json +3 -2
  61. package/skills/SKILL.md +36 -0
  62. package/skills/design-brain/SKILL.md +77 -0
  63. package/README.md +0 -242
  64. package/dist/aggregate.d.ts +0 -9
  65. package/dist/aggregate.js +0 -53
  66. package/dist/aggregate.js.map +0 -1
  67. package/dist/batch.d.ts +0 -16
  68. package/dist/batch.js +0 -44
  69. package/dist/batch.js.map +0 -1
  70. package/dist/compare.d.ts +0 -33
  71. package/dist/compare.js +0 -83
  72. package/dist/compare.js.map +0 -1
  73. package/dist/componentGraph.d.ts +0 -22
  74. package/dist/componentGraph.js +0 -106
  75. package/dist/componentGraph.js.map +0 -1
  76. package/dist/contextLayer.d.ts +0 -12
  77. package/dist/contextLayer.js +0 -263
  78. package/dist/contextLayer.js.map +0 -1
  79. package/dist/cssInJs.d.ts +0 -9
  80. package/dist/cssInJs.js +0 -124
  81. package/dist/cssInJs.js.map +0 -1
  82. package/dist/graphView.d.ts +0 -21
  83. package/dist/graphView.js +0 -492
  84. package/dist/graphView.js.map +0 -1
  85. package/dist/knowledge.d.ts +0 -20
  86. package/dist/knowledge.js +0 -208
  87. package/dist/knowledge.js.map +0 -1
  88. package/dist/liveView.d.ts +0 -15
  89. package/dist/liveView.js +0 -476
  90. package/dist/liveView.js.map +0 -1
  91. package/dist/moodboard.d.ts +0 -3
  92. package/dist/moodboard.js +0 -139
  93. package/dist/moodboard.js.map +0 -1
  94. package/dist/reviewChecklist.d.ts +0 -17
  95. package/dist/reviewChecklist.js +0 -126
  96. package/dist/reviewChecklist.js.map +0 -1
  97. package/dist/scorecard.d.ts +0 -48
  98. package/dist/scorecard.js +0 -201
  99. package/dist/scorecard.js.map +0 -1
  100. package/dist/styleDictionary.d.ts +0 -16
  101. package/dist/styleDictionary.js +0 -89
  102. package/dist/styleDictionary.js.map +0 -1
  103. package/dist/svg.d.ts +0 -5
  104. package/dist/svg.js +0 -162
  105. package/dist/svg.js.map +0 -1
  106. package/dist/systemDiff.d.ts +0 -28
  107. package/dist/systemDiff.js +0 -107
  108. package/dist/systemDiff.js.map +0 -1
  109. package/dist/tailwind.d.ts +0 -2
  110. package/dist/tailwind.js +0 -122
  111. package/dist/tailwind.js.map +0 -1
  112. package/dist/tokenNaming.d.ts +0 -5
  113. package/dist/tokenNaming.js +0 -229
  114. package/dist/tokenNaming.js.map +0 -1
  115. package/dist/tokens.d.ts +0 -17
  116. package/dist/tokens.js +0 -44
  117. package/dist/tokens.js.map +0 -1
  118. package/dist/trends.d.ts +0 -12
  119. package/dist/trends.js +0 -178
  120. package/dist/trends.js.map +0 -1
  121. package/dist/wiki.d.ts +0 -10
  122. package/dist/wiki.js +0 -346
  123. package/dist/wiki.js.map +0 -1
  124. package/dist/writingStyle.d.ts +0 -38
  125. package/dist/writingStyle.js +0 -224
  126. package/dist/writingStyle.js.map +0 -1
package/dist/cli.js CHANGED
@@ -1,14 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import path from 'node:path';
3
- import { readFileSync } from 'node:fs';
4
- import { fileURLToPath } from 'node:url';
5
3
  import { Command } from 'commander';
6
- import { batchCapture } from './batch.js';
7
- import { askBrain, compareCaptures, detectAndWriteTrends, exportDesignSystem, generateComponentGraphCmd, generateMoodboard, generateReviewChecklist, initBrain, ingestInspiration, nameTokensCmd, recordOutcome, reindexBrain, runSystemDiff, searchBrain, analyzeWritingStyleCmd, buildGraphView, buildWiki, generateContext, } from './commands.js';
8
- import { runScorecard } from './scorecard.js';
9
- import { shouldSkipPrompts } from './interactive.js';
4
+ import { loadTasteProfile } from './store.js';
5
+ import { askBrain, initBrain, ingestInspiration, recordOutcome, reindexBrain, searchBrain, } from './commands.js';
6
+ import { applyDecision, nextClarifyingQuestion } from './tasteRefine.js';
7
+ import { buildTasteProfile } from './taste.js';
8
+ import { cherryPickComponent, scoreTaste } from './tasteDiff.js';
9
+ import { generateFromTaste } from './tasteGenerate.js';
10
+ import { renderTasteDiff, renderTasteProfile } from './tasteRenderer.js';
11
+ import { confirmPrompt, shouldSkipPrompts } from './interactive.js';
10
12
  import { resolveLlmConfig } from './llm.js';
11
- import { getDefaultSkillRepo, installSkill, maybePromptSkillInstall } from './skillPrompt.js';
13
+ import { maybePromptSkillInstall } from './skillPrompt.js';
14
+ import { scanDesignSystem, scanFromUrl, looksLikeUrl, normalizeToUrl } from './scan.js';
15
+ import { renderScanResults } from './scanRenderer.js';
12
16
  function toStringList(value) {
13
17
  if (!value) {
14
18
  return [];
@@ -42,44 +46,42 @@ function parseViewports(values) {
42
46
  });
43
47
  return parsed.length > 0 ? parsed : undefined;
44
48
  }
45
- function getVersion() {
46
- try {
47
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
48
- const pkg = JSON.parse(readFileSync(path.join(__dirname, '..', 'package.json'), 'utf-8'));
49
- return pkg.version ?? '0.0.0';
50
- }
51
- catch {
52
- return '0.0.0';
49
+ function resolveTasteAnswer(answer, options) {
50
+ const trimmed = answer.trim();
51
+ if (/^\d+$/.test(trimmed)) {
52
+ const index = Number.parseInt(trimmed, 10) - 1;
53
+ if (index >= 0 && index < options.length) {
54
+ return options[index];
55
+ }
53
56
  }
54
- }
55
- function printBanner(version) {
56
- const DIM = '\x1b[2m';
57
- const BOLD = '\x1b[1m';
58
- const CYAN = '\x1b[36m';
59
- const RESET = '\x1b[0m';
60
- const banner = [
61
- '',
62
- `${BOLD}${CYAN} ┌─────────────────────────────────────────┐${RESET}`,
63
- `${BOLD}${CYAN} │${RESET} ${BOLD}${CYAN}│${RESET}`,
64
- `${BOLD}${CYAN} │${RESET} ${BOLD}design-brain${RESET} ${DIM}v${version}${RESET} ${BOLD}${CYAN}│${RESET}`,
65
- `${BOLD}${CYAN} │${RESET} ${DIM}Relational design memory${RESET} ${BOLD}${CYAN}│${RESET}`,
66
- `${BOLD}${CYAN} │${RESET} ${BOLD}${CYAN}│${RESET}`,
67
- `${BOLD}${CYAN} └─────────────────────────────────────────┘${RESET}`,
68
- '',
69
- ];
70
- console.log(banner.join('\n'));
57
+ return trimmed;
71
58
  }
72
59
  async function main() {
73
- const version = getVersion();
74
60
  const program = new Command();
75
61
  program
76
62
  .name('design-brain-memory')
77
63
  .description('Relational markdown design memory powered by Agent Browser CLI')
78
- .version(version)
79
- .option('-y, --yes', 'Skip interactive prompts')
80
- .hook('preAction', () => {
81
- printBanner(version);
64
+ .version('0.9.0')
65
+ .option('-y, --yes', 'Skip interactive prompts');
66
+ /* ─── scan (default command) ─── */
67
+ program
68
+ .command('scan [path]')
69
+ .description('Scan codebase for design tokens and compute health score')
70
+ .action(async (scanPath) => {
71
+ const input = scanPath ?? process.cwd();
72
+ let result;
73
+ if (looksLikeUrl(input)) {
74
+ const url = normalizeToUrl(input);
75
+ result = await scanFromUrl(url);
76
+ }
77
+ else {
78
+ result = await scanDesignSystem(path.resolve(input));
79
+ }
80
+ renderScanResults(result);
81
+ const globalOptions = program.opts();
82
+ await maybePromptSkillInstall(shouldSkipPrompts(Boolean(globalOptions.yes)));
82
83
  });
84
+ /* ─── init ─── */
83
85
  program
84
86
  .command('init')
85
87
  .description('Initialize .design-brain in the given workspace')
@@ -88,6 +90,7 @@ async function main() {
88
90
  await initBrain(path.resolve(options.root));
89
91
  console.log(`Initialized design brain at ${path.resolve(options.root, '.design-brain')}`);
90
92
  });
93
+ /* ─── ingest ─── */
91
94
  program
92
95
  .command('ingest')
93
96
  .description('Ingest a URL or screenshot into a project design wiki')
@@ -107,8 +110,6 @@ async function main() {
107
110
  .option('--llm-model <model>', 'LLM model id')
108
111
  .option('--llm-timeout-ms <ms>', 'LLM timeout in milliseconds', '30000')
109
112
  .option('--root <dir>', 'Workspace root', process.cwd())
110
- .option('--no-visuals', 'Skip SVG visual generation')
111
- .option('--live', 'Show live extraction visualization in terminal')
112
113
  .action(async (options) => {
113
114
  const llm = resolveLlmConfig({
114
115
  baseUrl: options.llmBaseUrl,
@@ -130,13 +131,12 @@ async function main() {
130
131
  llm,
131
132
  journeySteps: parseInteger(options.journeySteps, 3),
132
133
  responsiveViewports: parseViewports(options.viewport),
133
- skipVisuals: !options.visuals,
134
- live: options.live ?? false,
135
134
  });
136
135
  console.log(`Captured inspiration ${result.inspirationId} in project ${result.projectId}`);
137
136
  const globalOptions = program.opts();
138
137
  await maybePromptSkillInstall(shouldSkipPrompts(Boolean(globalOptions.yes)));
139
138
  });
139
+ /* ─── outcome ─── */
140
140
  program
141
141
  .command('outcome')
142
142
  .description('Record what the team built and link it to inspirations')
@@ -159,6 +159,7 @@ async function main() {
159
159
  });
160
160
  console.log(`Recorded outcome ${result.outcomeId} in project ${result.projectId}`);
161
161
  });
162
+ /* ─── search ─── */
162
163
  program
163
164
  .command('search')
164
165
  .description('Keyword search over relational design memory')
@@ -187,6 +188,7 @@ async function main() {
187
188
  console.log(` ${result.snippet}`);
188
189
  }
189
190
  });
191
+ /* ─── ask ─── */
190
192
  program
191
193
  .command('ask')
192
194
  .description('Ask a design question against the design brain')
@@ -220,217 +222,212 @@ async function main() {
220
222
  }
221
223
  }
222
224
  });
223
- program
224
- .command('install-skill')
225
- .description('Install Design Brain skill into your local skills registry')
226
- .option('--repo <repo>', 'Skill repository override', getDefaultSkillRepo())
227
- .action(async (options) => {
228
- const installed = installSkill(options.repo);
229
- if (!installed) {
230
- throw new Error(`Skill install failed. Try manually: npx -y skills add ${options.repo}`);
231
- }
232
- console.log(`Installed skill from ${options.repo}`);
233
- });
234
- program
235
- .command('reindex')
236
- .description('Regenerate markdown wiki and relation graph from database.json')
237
- .option('--root <dir>', 'Workspace root', process.cwd())
238
- .option('--no-visuals', 'Skip SVG visual generation')
239
- .action(async (options) => {
240
- await reindexBrain(path.resolve(options.root), !options.visuals);
241
- console.log(`Reindexed ${path.resolve(options.root, '.design-brain')}`);
242
- });
243
- program
244
- .command('export')
245
- .description('Export design system from captured data')
246
- .requiredOption('--project <project>', 'Project ID/slug')
247
- .option('--format <format>', 'Export format (tailwind, style-dictionary, css-in-js)', 'tailwind')
225
+ /* ─── taste ─── */
226
+ const taste = program
227
+ .command('taste')
228
+ .description('Build, inspect, and apply taste profiles');
229
+ taste
230
+ .command('build <urls...>')
231
+ .description('Build taste profile from one or more inspiration URLs')
232
+ .option('--project <project>', 'Project ID/slug', 'default')
233
+ .option('--name <name>', 'Readable project name')
234
+ .option('--headed', 'Use visible browser scan for taste analysis', false)
235
+ .option('--llm-base-url <url>', 'OpenAI-compatible LLM base URL')
236
+ .option('--llm-api-key <key>', 'LLM API key')
237
+ .option('--llm-model <model>', 'LLM model id')
238
+ .option('--llm-timeout-ms <ms>', 'LLM timeout in milliseconds', '30000')
248
239
  .option('--root <dir>', 'Workspace root', process.cwd())
249
- .action(async (options) => {
250
- const outPath = await exportDesignSystem({
251
- rootDir: path.resolve(options.root),
252
- project: options.project,
253
- format: options.format,
240
+ .action(async (urls, options) => {
241
+ const llm = resolveLlmConfig({
242
+ baseUrl: options.llmBaseUrl,
243
+ apiKey: options.llmApiKey,
244
+ model: options.llmModel,
245
+ timeoutMs: parseInteger(options.llmTimeoutMs, 30000),
254
246
  });
255
- console.log(`Exported ${options.format} config to ${outPath}`);
256
- });
257
- program
258
- .command('compare')
259
- .description('Compare two captures or two versions of the same URL')
260
- .option('--a <id>', 'First inspiration ID')
261
- .option('--b <id>', 'Second inspiration ID')
262
- .option('--inspo <id>', 'Inspiration ID (compares against previous version)')
263
- .option('--root <dir>', 'Workspace root', process.cwd())
264
- .action(async (options) => {
265
- const outPath = await compareCaptures({
247
+ const profile = await buildTasteProfile({
266
248
  rootDir: path.resolve(options.root),
267
- inspoA: options.a,
268
- inspoB: options.b,
269
- inspo: options.inspo,
249
+ projectId: options.project,
250
+ projectName: options.name,
251
+ urls,
252
+ headed: options.headed,
253
+ llm,
270
254
  });
271
- console.log(`Comparison written to ${outPath}`);
255
+ renderTasteProfile(profile);
272
256
  });
273
- program
274
- .command('batch')
275
- .description('Batch capture from a file of URLs')
276
- .requiredOption('--project <project>', 'Project ID/slug')
277
- .requiredOption('--file <path>', 'Path to URL list file (tab-separated: URL, name, tags)')
257
+ taste
258
+ .command('show')
259
+ .description('Display saved taste profile for a project')
260
+ .option('--project <project>', 'Project ID/slug', 'default')
261
+ .option('--json', 'Output as JSON', false)
278
262
  .option('--root <dir>', 'Workspace root', process.cwd())
279
- .option('--no-visuals', 'Skip SVG visual generation')
280
263
  .action(async (options) => {
281
- const result = await batchCapture({
282
- rootDir: path.resolve(options.root),
283
- project: options.project,
284
- filePath: path.resolve(options.file),
285
- skipVisuals: !options.visuals,
286
- });
287
- console.log(`Batch complete: ${result.succeeded}/${result.total} captured`);
288
- if (result.failed.length > 0) {
289
- console.log(`Failed: ${result.failed.join(', ')}`);
264
+ const profile = await loadTasteProfile(path.resolve(options.root), options.project);
265
+ if (!profile) {
266
+ throw new Error(`Taste profile not found for project: ${options.project}`);
290
267
  }
268
+ if (options.json) {
269
+ console.log(JSON.stringify(profile, null, 2));
270
+ return;
271
+ }
272
+ renderTasteProfile(profile);
291
273
  });
292
- program
293
- .command('moodboard')
294
- .description('Generate visual moodboard from project captures')
295
- .requiredOption('--project <project>', 'Project ID/slug')
296
- .option('--root <dir>', 'Workspace root', process.cwd())
297
- .action(async (options) => {
298
- const outPath = await generateMoodboard({
299
- rootDir: path.resolve(options.root),
300
- project: options.project,
301
- });
302
- console.log(`Moodboard generated at ${outPath}`);
303
- });
304
- program
305
- .command('trends')
306
- .description('Detect design trends across captures')
307
- .option('--project <project>', 'Filter to project')
308
- .option('--root <dir>', 'Workspace root', process.cwd())
309
- .action(async (options) => {
310
- const result = await detectAndWriteTrends({
311
- rootDir: path.resolve(options.root),
312
- project: options.project,
313
- });
314
- console.log(`Detected ${result.trends} trends, wrote ${result.written} notes`);
315
- });
316
- program
317
- .command('scorecard')
318
- .description('Audit local codebase against captured design tokens')
319
- .requiredOption('--project <project>', 'Project ID/slug')
320
- .requiredOption('--scan <path>', 'Directory to scan')
321
- .option('--root <dir>', 'Workspace root', process.cwd())
322
- .action(async (options) => {
323
- const outPath = await runScorecard({
324
- rootDir: path.resolve(options.root),
325
- project: options.project,
326
- scanPath: path.resolve(options.scan),
327
- });
328
- console.log(`Scorecard written to ${outPath}`);
329
- });
330
- program
331
- .command('component-graph')
332
- .description('Generate component relationship graph for a project')
333
- .requiredOption('--project <project>', 'Project ID/slug')
334
- .option('--root <dir>', 'Workspace root', process.cwd())
335
- .action(async (options) => {
336
- const outPath = await generateComponentGraphCmd({
337
- rootDir: path.resolve(options.root),
338
- project: options.project,
339
- });
340
- console.log(`Component graph written to ${outPath}`);
341
- });
342
- program
343
- .command('review')
344
- .description('Generate design review checklist')
345
- .requiredOption('--project <project>', 'Project ID/slug')
346
- .option('--scan <path>', 'Directory to scan for codebase audit')
274
+ taste
275
+ .command('pick')
276
+ .description('Cherry-pick a component from an inspiration source')
277
+ .requiredOption('--component <kind>', 'Component kind to pick')
278
+ .requiredOption('--from <source>', 'Source inspiration ID, URL, or hostname')
279
+ .option('--project <project>', 'Project ID/slug', 'default')
280
+ .option('--index <n>', 'Pick Nth matched component', '0')
281
+ .option('--note <text>', 'Optional note for why this was picked')
347
282
  .option('--root <dir>', 'Workspace root', process.cwd())
348
283
  .action(async (options) => {
349
- const outPath = await generateReviewChecklist({
284
+ const pick = await cherryPickComponent({
350
285
  rootDir: path.resolve(options.root),
351
- project: options.project,
352
- scanPath: options.scan ? path.resolve(options.scan) : undefined,
286
+ projectId: options.project,
287
+ componentKind: options.component,
288
+ sourceUrlOrId: options.from,
289
+ index: parseInteger(options.index, 0),
290
+ note: options.note,
353
291
  });
354
- console.log(`Review checklist written to ${outPath}`);
292
+ console.log(`Cherry-picked ${pick.componentKind} from ${pick.sourceUrl}`);
355
293
  });
356
- program
357
- .command('name-tokens')
358
- .description('Preview human-readable token names for a project')
359
- .requiredOption('--project <project>', 'Project ID/slug')
294
+ taste
295
+ .command('score [scanPath]')
296
+ .description('Score codebase alignment against a taste profile')
297
+ .option('--project <project>', 'Project ID/slug', 'default')
298
+ .option('--json', 'Output as JSON', false)
360
299
  .option('--root <dir>', 'Workspace root', process.cwd())
361
- .action(async (options) => {
362
- const map = await nameTokensCmd({
300
+ .action(async (scanPath, options) => {
301
+ const result = await scoreTaste({
363
302
  rootDir: path.resolve(options.root),
364
- project: options.project,
303
+ projectId: options.project,
304
+ scanPath: scanPath ?? process.cwd(),
365
305
  });
366
- for (const [raw, name] of map) {
367
- console.log(`${raw} ${name}`);
306
+ if (options.json) {
307
+ console.log(JSON.stringify(result, null, 2));
308
+ return;
368
309
  }
369
- console.log(`\n${map.size} tokens named`);
310
+ renderTasteDiff(result.diff);
370
311
  });
371
- program
372
- .command('wiki')
373
- .description('Generate design wiki with per-project pages and shared context space')
374
- .option('--root <dir>', 'Workspace root', process.cwd())
375
- .action(async (options) => {
376
- const result = await buildWiki({
377
- rootDir: path.resolve(options.root),
378
- });
379
- console.log(`Wiki generated: ${result.projectPages} project pages, ${result.sharedTokens} shared tokens`);
380
- console.log(`Browse at ${result.wikiDir}`);
381
- });
382
- program
383
- .command('graph')
384
- .description('Generate interactive knowledge graph visualization')
312
+ taste
313
+ .command('ask')
314
+ .description('Resolve unresolved taste conflicts')
315
+ .option('--project <project>', 'Project ID/slug', 'default')
316
+ .option('--answer <text>', 'Answer text or option number')
385
317
  .option('--root <dir>', 'Workspace root', process.cwd())
386
318
  .action(async (options) => {
387
- const outPath = await buildGraphView({
388
- rootDir: path.resolve(options.root),
319
+ const rootDir = path.resolve(options.root);
320
+ const profile = await loadTasteProfile(rootDir, options.project);
321
+ if (!profile) {
322
+ throw new Error(`Taste profile not found for project: ${options.project}`);
323
+ }
324
+ const next = nextClarifyingQuestion(profile);
325
+ if (!next) {
326
+ console.log('No unresolved taste conflicts.');
327
+ return;
328
+ }
329
+ const unresolvedIndex = profile.conflicts.findIndex((conflict) => !conflict.resolved);
330
+ if (unresolvedIndex < 0) {
331
+ console.log('No unresolved taste conflicts.');
332
+ return;
333
+ }
334
+ let answer = options.answer ? resolveTasteAnswer(options.answer, next.options) : '';
335
+ if (!answer) {
336
+ console.log(next.question);
337
+ for (let i = 0; i < next.options.length; i += 1) {
338
+ const shouldUse = await confirmPrompt(`Use option ${i + 1}: ${next.options[i]}?`, false);
339
+ if (shouldUse) {
340
+ answer = next.options[i];
341
+ break;
342
+ }
343
+ }
344
+ }
345
+ if (!answer) {
346
+ console.log('No decision applied.');
347
+ return;
348
+ }
349
+ const decision = await applyDecision({
350
+ rootDir,
351
+ projectId: options.project,
352
+ conflictIndex: unresolvedIndex,
353
+ answer,
389
354
  });
390
- console.log(`Knowledge graph generated at ${outPath}`);
391
- console.log('Open in your browser to explore.');
355
+ console.log(`Saved decision ${decision.id}: ${decision.answer}`);
392
356
  });
393
- program
394
- .command('context')
395
- .description('Generate design context file for AI tools (Claude Code, Cursor)')
396
- .option('--project <project>', 'Project ID (omit for unified cross-project context)')
357
+ taste
358
+ .command('generate')
359
+ .description('Generate code from a taste profile')
360
+ .option('--project <project>', 'Project ID/slug', 'default')
361
+ .option('--target <target>', 'Generation target: component, page, or tokens', 'component')
362
+ .option('--component <kind>', 'Component kind when target=component')
363
+ .option('--framework <name>', 'Framework hint (react, next, vue, etc.)')
364
+ .option('--llm-base-url <url>', 'OpenAI-compatible LLM base URL')
365
+ .option('--llm-api-key <key>', 'LLM API key')
366
+ .option('--llm-model <model>', 'LLM model id')
367
+ .option('--llm-timeout-ms <ms>', 'LLM timeout in milliseconds', '30000')
397
368
  .option('--root <dir>', 'Workspace root', process.cwd())
398
369
  .action(async (options) => {
399
- const outPath = await generateContext({
400
- rootDir: path.resolve(options.root),
401
- project: options.project,
370
+ const profile = await loadTasteProfile(path.resolve(options.root), options.project);
371
+ if (!profile) {
372
+ throw new Error(`Taste profile not found for project: ${options.project}`);
373
+ }
374
+ const target = options.target;
375
+ if (!['component', 'page', 'tokens'].includes(target)) {
376
+ throw new Error(`Invalid target: ${options.target}`);
377
+ }
378
+ const llm = target === 'tokens'
379
+ ? undefined
380
+ : resolveLlmConfig({
381
+ baseUrl: options.llmBaseUrl,
382
+ apiKey: options.llmApiKey,
383
+ model: options.llmModel,
384
+ timeoutMs: parseInteger(options.llmTimeoutMs, 30000),
385
+ });
386
+ const generated = await generateFromTaste({
387
+ taste: profile,
388
+ target,
389
+ componentKind: options.component,
390
+ framework: options.framework,
391
+ llm,
402
392
  });
403
- console.log(`Design context written to ${outPath}`);
404
- console.log('Drop this file into .claude/ or .cursorrules for AI-assisted development.');
393
+ console.log(generated.code);
394
+ if (generated.explanation) {
395
+ console.log(`\n${generated.explanation}`);
396
+ }
405
397
  });
398
+ /* ─── install-skill ─── */
406
399
  program
407
- .command('writing-style')
408
- .description('Analyze writing style patterns across captured content')
409
- .requiredOption('--project <project>', 'Project ID/slug')
410
- .option('--root <dir>', 'Workspace root', process.cwd())
411
- .action(async (options) => {
412
- const outPath = await analyzeWritingStyleCmd({
413
- rootDir: path.resolve(options.root),
414
- project: options.project,
415
- });
416
- console.log(`Writing style analysis written to ${outPath}`);
400
+ .command('install-skill')
401
+ .description('Install Design Brain skill into your AI agents')
402
+ .action(async () => {
403
+ await maybePromptSkillInstall(false);
417
404
  });
405
+ /* ─── reindex ─── */
418
406
  program
419
- .command('system-diff')
420
- .description('Diff design systems between projects or over time')
421
- .option('--project <project>', 'Project ID for temporal diff')
422
- .option('--project-a <project>', 'First project for cross-project diff')
423
- .option('--project-b <project>', 'Second project for cross-project diff')
407
+ .command('reindex')
408
+ .description('Regenerate markdown wiki and relation graph from database.json')
424
409
  .option('--root <dir>', 'Workspace root', process.cwd())
425
410
  .action(async (options) => {
426
- const outPath = await runSystemDiff({
427
- rootDir: path.resolve(options.root),
428
- project: options.project,
429
- projectA: options.projectA,
430
- projectB: options.projectB,
431
- });
432
- console.log(`System diff written to ${outPath}`);
411
+ await reindexBrain(path.resolve(options.root));
412
+ console.log(`Reindexed ${path.resolve(options.root, '.design-brain')}`);
433
413
  });
414
+ /* ─── Default command routing ─── */
415
+ // Bare URLs/domains route to `taste build`.
416
+ // Bare local paths route to `scan`.
417
+ // No args defaults to `scan`.
418
+ const commandNames = program.commands.map((command) => command.name());
419
+ const firstArg = process.argv[2];
420
+ if (!firstArg) {
421
+ process.argv.splice(2, 0, 'scan');
422
+ }
423
+ else if (!firstArg.startsWith('-') && !commandNames.includes(firstArg)) {
424
+ if (looksLikeUrl(firstArg)) {
425
+ process.argv.splice(2, 0, 'taste', 'build');
426
+ }
427
+ else {
428
+ process.argv.splice(2, 0, 'scan');
429
+ }
430
+ }
434
431
  await program.parseAsync(process.argv);
435
432
  }
436
433
  main().catch((error) => {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}