design-brain-memory 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -98
- package/dist/aggregate.d.ts +9 -0
- package/dist/aggregate.js +53 -0
- package/dist/aggregate.js.map +1 -0
- package/dist/batch.d.ts +16 -0
- package/dist/batch.js +44 -0
- package/dist/batch.js.map +1 -0
- package/dist/cli.js +78 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +17 -0
- package/dist/commands.js +113 -7
- package/dist/commands.js.map +1 -1
- package/dist/compare.d.ts +33 -0
- package/dist/compare.js +83 -0
- package/dist/compare.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/moodboard.d.ts +3 -0
- package/dist/moodboard.js +139 -0
- package/dist/moodboard.js.map +1 -0
- package/dist/render.js +1 -52
- package/dist/render.js.map +1 -1
- package/dist/scorecard.d.ts +48 -0
- package/dist/scorecard.js +201 -0
- package/dist/scorecard.js.map +1 -0
- package/dist/styleDictionary.d.ts +16 -0
- package/dist/styleDictionary.js +89 -0
- package/dist/styleDictionary.js.map +1 -0
- package/dist/trends.d.ts +12 -0
- package/dist/trends.js +178 -0
- package/dist/trends.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
# design-brain-memory
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A persistent design knowledge system that captures inspiration from websites and screenshots, extracts reusable patterns, and builds a grep-friendly markdown knowledge graph.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Built on [Agent Browser CLI](https://github.com/vercel-labs/agent-browser) for headless capture. No external LLM required — bring your own optionally for semantic enrichment.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- **Capture** — Extract colors, typography, components, motion, layout, and CSS variables from any URL or screenshot
|
|
10
|
+
- **Knowledge system** — Three-space architecture (self / notes / ops) with pattern, decision, and principle notes
|
|
11
|
+
- **Processing pipeline** — Extract → Synthesize → Evolve → Verify with queue tracking
|
|
12
|
+
- **Tailwind export** — Generate `tailwind.config.js` from captured design tokens with auto-named colors from CSS variables
|
|
13
|
+
- **Visual catalog** — SVG palette, component, typography, and layout visualizations per capture
|
|
14
|
+
- **Component isolation** — Grouped JSON tokens by component kind (button, card, navigation, etc.)
|
|
15
|
+
- **Version lineage** — Fingerprint-based versioning with diffs between captures
|
|
16
|
+
- **Responsive coverage** — Capture at multiple viewports in a single pass
|
|
17
|
+
- **Interaction states** — Hover, focus, and active state extraction from runtime CSS
|
|
18
|
+
- **Journey capture** — Click-through exploration with per-step snapshots
|
|
19
|
+
- **Ripgrep-friendly** — Flat markdown files with YAML frontmatter, wiki links, and CSV relation graph
|
|
15
20
|
|
|
16
21
|
## Install
|
|
17
22
|
|
|
@@ -20,53 +25,48 @@ npm install -g design-brain-memory
|
|
|
20
25
|
agent-browser install
|
|
21
26
|
```
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm install -g github:design-brain/design-brain
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Install as a skill
|
|
28
|
+
## Quick Start
|
|
30
29
|
|
|
31
30
|
```bash
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
or
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npx -y skills add design-brain/design-brain
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
`ingest` will also suggest this once in interactive terminals.
|
|
31
|
+
# Initialize the knowledge system
|
|
32
|
+
design-brain-memory init --root .
|
|
42
33
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
34
|
+
# Capture a website
|
|
35
|
+
design-brain-memory ingest \
|
|
36
|
+
--project my-project \
|
|
37
|
+
--url https://stripe.com \
|
|
38
|
+
--name "Stripe Homepage" \
|
|
39
|
+
--tags fintech,payments
|
|
46
40
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
export DESIGN_BRAIN_LLM_MODEL="gpt-4o-mini"
|
|
51
|
-
```
|
|
41
|
+
# Search with ripgrep
|
|
42
|
+
rg "button|card" .design-brain/notes/patterns/
|
|
43
|
+
rg "#533AFD" .design-brain/
|
|
52
44
|
|
|
53
|
-
Or
|
|
45
|
+
# Or use the built-in search
|
|
46
|
+
design-brain-memory search --query "button hierarchy"
|
|
54
47
|
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
# Export Tailwind config
|
|
49
|
+
design-brain-memory export --project my-project --format tailwind
|
|
57
50
|
```
|
|
58
51
|
|
|
59
|
-
Any OpenAI-compatible endpoint works.
|
|
60
|
-
|
|
61
52
|
## Commands
|
|
62
53
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
54
|
+
| Command | Description |
|
|
55
|
+
|---------|-------------|
|
|
56
|
+
| `init` | Create `.design-brain/` with knowledge system directories |
|
|
57
|
+
| `ingest` | Capture inspiration from a URL or screenshot |
|
|
58
|
+
| `outcome` | Record a design outcome linked to inspirations |
|
|
59
|
+
| `search` | Keyword search across the brain |
|
|
60
|
+
| `ask` | Semantic search (requires LLM config) |
|
|
61
|
+
| `export` | Export tokens (tailwind or style-dictionary format) |
|
|
62
|
+
| `compare` | Compare two captures or version diff |
|
|
63
|
+
| `batch` | Batch capture from a URL list file |
|
|
64
|
+
| `moodboard` | Generate HTML + PNG visual moodboard |
|
|
65
|
+
| `trends` | Detect design trends across captures |
|
|
66
|
+
| `scorecard` | Audit codebase against captured design tokens |
|
|
67
|
+
| `reindex` | Regenerate all markdown, SVGs, and knowledge files |
|
|
68
|
+
|
|
69
|
+
### Ingest
|
|
70
70
|
|
|
71
71
|
```bash
|
|
72
72
|
design-brain-memory ingest \
|
|
@@ -74,13 +74,12 @@ design-brain-memory ingest \
|
|
|
74
74
|
--project-name "Checkout Redesign" \
|
|
75
75
|
--url https://stripe.com \
|
|
76
76
|
--name "Stripe checkout inspiration" \
|
|
77
|
-
--
|
|
77
|
+
--tags payments,checkout,cta \
|
|
78
78
|
--journey-steps 4 \
|
|
79
|
-
--viewport desktop=1440x1200 tablet=1024x1366 mobile=390x844
|
|
80
|
-
--tags payments,checkout,cta
|
|
79
|
+
--viewport desktop=1440x1200 tablet=1024x1366 mobile=390x844
|
|
81
80
|
```
|
|
82
81
|
|
|
83
|
-
|
|
82
|
+
From a screenshot:
|
|
84
83
|
|
|
85
84
|
```bash
|
|
86
85
|
design-brain-memory ingest \
|
|
@@ -90,78 +89,154 @@ design-brain-memory ingest \
|
|
|
90
89
|
--tags hero,landing
|
|
91
90
|
```
|
|
92
91
|
|
|
93
|
-
### Record
|
|
92
|
+
### Record Outcome
|
|
94
93
|
|
|
95
94
|
```bash
|
|
96
95
|
design-brain-memory outcome \
|
|
97
96
|
--project checkout-redesign \
|
|
98
97
|
--title "v1 shipped" \
|
|
99
|
-
--description "
|
|
98
|
+
--description "Card-based checkout with clear primary CTA" \
|
|
100
99
|
--inspired-by inspo-stripe-checkout-1234abcd \
|
|
101
|
-
--artifact-url https://app.example.com/checkout \
|
|
102
100
|
--tags shipped,frontend
|
|
103
101
|
```
|
|
104
102
|
|
|
105
|
-
|
|
103
|
+
## Knowledge System
|
|
106
104
|
|
|
107
|
-
|
|
108
|
-
design-brain-memory search --query "button hierarchy" --project checkout-redesign
|
|
109
|
-
```
|
|
105
|
+
The brain organizes knowledge across five spaces:
|
|
110
106
|
|
|
111
|
-
|
|
107
|
+
```
|
|
108
|
+
.design-brain/
|
|
109
|
+
├── self/ # Agent identity and methodology
|
|
110
|
+
│ ├── identity.md
|
|
111
|
+
│ └── methodology.md
|
|
112
|
+
├── notes/ # Knowledge graph
|
|
113
|
+
│ ├── patterns/*.md # Reusable design patterns
|
|
114
|
+
│ ├── decisions/*.md # Design decisions with rationale
|
|
115
|
+
│ ├── principles/*.md # Cross-project principles
|
|
116
|
+
│ └── mocs/ # Maps of Content
|
|
117
|
+
│ ├── hub.md
|
|
118
|
+
│ ├── color-systems.md
|
|
119
|
+
│ ├── typography.md
|
|
120
|
+
│ ├── components.md
|
|
121
|
+
│ ├── layout.md
|
|
122
|
+
│ ├── motion.md
|
|
123
|
+
│ └── brand.md
|
|
124
|
+
├── ops/ # Operations
|
|
125
|
+
│ ├── queue/*.yaml # Processing pipeline queue
|
|
126
|
+
│ ├── sessions/*.md # Session activity logs
|
|
127
|
+
│ └── maintenance.md # Health signals
|
|
128
|
+
├── projects/ # Raw captures
|
|
129
|
+
│ └── <project>/
|
|
130
|
+
│ ├── README.md
|
|
131
|
+
│ ├── inspirations/*.md
|
|
132
|
+
│ ├── outcomes/*.md
|
|
133
|
+
│ ├── tokens/ # Aggregated design tokens
|
|
134
|
+
│ ├── visuals/*.svg # SVG visual catalog
|
|
135
|
+
│ └── tailwind.config.js # Generated Tailwind config
|
|
136
|
+
└── graph/ # Relation graph
|
|
137
|
+
├── entities.csv
|
|
138
|
+
└── relations.csv
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Note Schema
|
|
142
|
+
|
|
143
|
+
All notes use YAML frontmatter:
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
---
|
|
147
|
+
type: pattern | decision | principle
|
|
148
|
+
title: "Descriptive title"
|
|
149
|
+
sources: ["[[inspo-id]]"]
|
|
150
|
+
domains: [web, brand, mobile, design-systems]
|
|
151
|
+
tags: [relevant, tags]
|
|
152
|
+
confidence: emerging | established | canonical
|
|
153
|
+
created: 2026-02-18
|
|
154
|
+
updated: 2026-02-18
|
|
155
|
+
---
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Processing Pipeline
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Capture → Extract → Synthesize → Evolve → Verify
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
1. **Capture** — Ingest inspiration, create queue entry
|
|
165
|
+
2. **Extract** — Generate pattern and decision notes from capture data
|
|
166
|
+
3. **Synthesize** — Find connections, add wiki links, update MOCs
|
|
167
|
+
4. **Evolve** — Update older notes with new evidence, upgrade confidence
|
|
168
|
+
5. **Verify** — Check schema compliance, link health, MOC coverage
|
|
169
|
+
|
|
170
|
+
## Retrieval
|
|
171
|
+
|
|
172
|
+
Designed for ripgrep:
|
|
112
173
|
|
|
113
174
|
```bash
|
|
114
|
-
|
|
115
|
-
|
|
175
|
+
# Find patterns by keyword
|
|
176
|
+
rg "button|card|navigation" .design-brain/notes/patterns/
|
|
116
177
|
|
|
117
|
-
|
|
178
|
+
# Find canonical patterns
|
|
179
|
+
rg "confidence: canonical" .design-brain/notes/
|
|
118
180
|
|
|
119
|
-
|
|
120
|
-
design-brain
|
|
181
|
+
# Search by color hex
|
|
182
|
+
rg "#533AFD" .design-brain/
|
|
183
|
+
|
|
184
|
+
# Query the relation graph
|
|
185
|
+
rg "has_inspiration|inspired_by" .design-brain/graph/relations.csv
|
|
186
|
+
|
|
187
|
+
# Find notes linked to a specific capture
|
|
188
|
+
rg "inspo-stripe" .design-brain/notes/
|
|
121
189
|
```
|
|
122
190
|
|
|
123
|
-
|
|
191
|
+
## Claude Code Plugin
|
|
124
192
|
|
|
125
|
-
|
|
193
|
+
design-brain ships as a Claude Code plugin with slash commands and hooks:
|
|
126
194
|
|
|
127
|
-
|
|
195
|
+
| Command | Description |
|
|
196
|
+
|---------|-------------|
|
|
197
|
+
| `/db-capture` | Capture inspiration from URL or screenshot |
|
|
198
|
+
| `/db-extract` | Extract patterns and decisions from captures |
|
|
199
|
+
| `/db-synthesize` | Find connections, update MOCs |
|
|
200
|
+
| `/db-evolve` | Backward pass — update older notes |
|
|
201
|
+
| `/db-verify` | Schema and link health check |
|
|
202
|
+
| `/db-pipeline` | Run all pipeline phases |
|
|
203
|
+
| `/db-next` | Show next pending queue item |
|
|
204
|
+
| `/db-search` | Ripgrep search across the brain |
|
|
205
|
+
| `/db-stats` | Vault metrics and health report |
|
|
206
|
+
| `/db-export` | Export Tailwind or Style Dictionary tokens |
|
|
207
|
+
| `/db-compare` | Compare two captures or version diff |
|
|
208
|
+
| `/db-batch` | Batch capture from URL list file |
|
|
209
|
+
| `/db-moodboard` | Generate visual moodboard |
|
|
210
|
+
| `/db-trends` | Detect design trends across captures |
|
|
211
|
+
| `/db-scorecard` | Audit codebase against captured tokens |
|
|
128
212
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
├── assets/
|
|
137
|
-
│ └── <project-id>/*.png
|
|
138
|
-
└── projects/
|
|
139
|
-
└── <project-id>/
|
|
140
|
-
├── README.md
|
|
141
|
-
├── index.md
|
|
142
|
-
├── inspirations/*.md
|
|
143
|
-
├── outcomes/*.md
|
|
144
|
-
└── tokens/
|
|
145
|
-
├── colors.md
|
|
146
|
-
├── typography.md
|
|
147
|
-
├── components.md
|
|
148
|
-
├── motion.md
|
|
149
|
-
└── layout.md
|
|
150
|
-
```
|
|
213
|
+
### Hooks
|
|
214
|
+
|
|
215
|
+
| Event | Action |
|
|
216
|
+
|-------|--------|
|
|
217
|
+
| SessionStart | Load identity context, queue status, maintenance signals |
|
|
218
|
+
| PostToolUse (Write) | Validate note frontmatter schema |
|
|
219
|
+
| Stop | Log session activity summary |
|
|
151
220
|
|
|
152
|
-
##
|
|
221
|
+
## Optional: LLM Enrichment
|
|
222
|
+
|
|
223
|
+
For semantic search and richer capture summaries, configure any OpenAI-compatible endpoint:
|
|
153
224
|
|
|
154
225
|
```bash
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
226
|
+
export DESIGN_BRAIN_LLM_BASE_URL="https://api.openai.com/v1"
|
|
227
|
+
export DESIGN_BRAIN_LLM_API_KEY="<your-key>"
|
|
228
|
+
export DESIGN_BRAIN_LLM_MODEL="gpt-4o-mini"
|
|
158
229
|
```
|
|
159
230
|
|
|
160
|
-
|
|
231
|
+
Or pass per command: `--llm-base-url <url> --llm-api-key <key> --llm-model <model>`
|
|
232
|
+
|
|
233
|
+
Not required for core functionality.
|
|
234
|
+
|
|
235
|
+
## Requirements
|
|
161
236
|
|
|
162
|
-
-
|
|
163
|
-
-
|
|
237
|
+
- Node.js 20+
|
|
238
|
+
- [Agent Browser CLI](https://github.com/vercel-labs/agent-browser) (`agent-browser install`)
|
|
164
239
|
|
|
165
|
-
##
|
|
240
|
+
## License
|
|
166
241
|
|
|
167
|
-
|
|
242
|
+
MIT
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ColorToken, ComponentToken, InspirationRecord, MotionToken, TypographyToken } from './types.js';
|
|
2
|
+
export declare function aggregateColors(records: InspirationRecord[]): ColorToken[];
|
|
3
|
+
export declare function aggregateTypography(records: InspirationRecord[]): TypographyToken[];
|
|
4
|
+
export declare function aggregateComponents(records: InspirationRecord[]): Array<ComponentToken & {
|
|
5
|
+
count: number;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function aggregateMotion(records: InspirationRecord[]): Array<MotionToken & {
|
|
8
|
+
count: number;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export function aggregateColors(records) {
|
|
2
|
+
const map = new Map();
|
|
3
|
+
for (const record of records) {
|
|
4
|
+
for (const color of record.analysis.colors) {
|
|
5
|
+
const existing = map.get(color.hex) ?? { hex: color.hex, count: 0, samples: [] };
|
|
6
|
+
existing.count += color.count;
|
|
7
|
+
for (const sample of color.samples) {
|
|
8
|
+
if (existing.samples.length < 6 && !existing.samples.includes(sample)) {
|
|
9
|
+
existing.samples.push(sample);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
map.set(color.hex, existing);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 40);
|
|
16
|
+
}
|
|
17
|
+
export function aggregateTypography(records) {
|
|
18
|
+
const map = new Map();
|
|
19
|
+
for (const record of records) {
|
|
20
|
+
for (const token of record.analysis.typography) {
|
|
21
|
+
const key = `${token.fontFamily}|${token.fontSize}|${token.fontWeight}|${token.lineHeight}`;
|
|
22
|
+
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
23
|
+
existing.count += token.count;
|
|
24
|
+
map.set(key, existing);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 60);
|
|
28
|
+
}
|
|
29
|
+
export function aggregateComponents(records) {
|
|
30
|
+
const map = new Map();
|
|
31
|
+
for (const record of records) {
|
|
32
|
+
for (const token of record.analysis.components) {
|
|
33
|
+
const key = `${token.kind}|${token.tag}|${token.selector}`;
|
|
34
|
+
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
35
|
+
existing.count += 1;
|
|
36
|
+
map.set(key, existing);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 120);
|
|
40
|
+
}
|
|
41
|
+
export function aggregateMotion(records) {
|
|
42
|
+
const map = new Map();
|
|
43
|
+
for (const record of records) {
|
|
44
|
+
for (const token of record.analysis.motion) {
|
|
45
|
+
const key = `${token.selector}|${token.transition}|${token.animation}|${token.transform}`;
|
|
46
|
+
const existing = map.get(key) ?? { ...token, count: 0 };
|
|
47
|
+
existing.count += 1;
|
|
48
|
+
map.set(key, existing);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return [...map.values()].sort((a, b) => b.count - a.count).slice(0, 140);
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=aggregate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../src/aggregate.ts"],"names":[],"mappings":"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"}
|
package/dist/batch.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface BatchEntry {
|
|
2
|
+
url: string;
|
|
3
|
+
name?: string;
|
|
4
|
+
tags: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare function parseBatchFile(content: string): BatchEntry[];
|
|
7
|
+
export declare function batchCapture(params: {
|
|
8
|
+
rootDir: string;
|
|
9
|
+
project: string;
|
|
10
|
+
filePath: string;
|
|
11
|
+
skipVisuals: boolean;
|
|
12
|
+
}): Promise<{
|
|
13
|
+
total: number;
|
|
14
|
+
succeeded: number;
|
|
15
|
+
failed: string[];
|
|
16
|
+
}>;
|
package/dist/batch.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import { ingestInspiration } from './commands.js';
|
|
3
|
+
export function parseBatchFile(content) {
|
|
4
|
+
return content
|
|
5
|
+
.split('\n')
|
|
6
|
+
.map((line) => line.trim())
|
|
7
|
+
.filter((line) => line.length > 0 && !line.startsWith('#'))
|
|
8
|
+
.map((line) => {
|
|
9
|
+
const parts = line.split('\t');
|
|
10
|
+
const url = parts[0].trim();
|
|
11
|
+
const name = parts[1]?.trim() || undefined;
|
|
12
|
+
const tags = parts[2] ? parts[2].split(',').map((t) => t.trim()).filter(Boolean) : [];
|
|
13
|
+
return { url, name, tags };
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
export async function batchCapture(params) {
|
|
17
|
+
const content = await fs.readFile(params.filePath, 'utf-8');
|
|
18
|
+
const entries = parseBatchFile(content);
|
|
19
|
+
const failed = [];
|
|
20
|
+
let succeeded = 0;
|
|
21
|
+
for (let i = 0; i < entries.length; i++) {
|
|
22
|
+
const entry = entries[i];
|
|
23
|
+
const label = entry.name || entry.url;
|
|
24
|
+
console.log(`[${i + 1}/${entries.length}] Capturing ${label}...`);
|
|
25
|
+
try {
|
|
26
|
+
await ingestInspiration({
|
|
27
|
+
rootDir: params.rootDir,
|
|
28
|
+
project: params.project,
|
|
29
|
+
url: entry.url,
|
|
30
|
+
name: entry.name,
|
|
31
|
+
tags: entry.tags,
|
|
32
|
+
skipVisuals: params.skipVisuals,
|
|
33
|
+
});
|
|
34
|
+
succeeded++;
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
38
|
+
console.error(` Failed: ${msg}`);
|
|
39
|
+
failed.push(entry.url);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { total: entries.length, succeeded, failed };
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=batch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch.js","sourceRoot":"","sources":["../src/batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,OAAO;SACX,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAKlC;IACC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,eAAe,KAAK,KAAK,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC;gBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC,CAAC,CAAC;YACH,SAAS,EAAE,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACtD,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { Command } from 'commander';
|
|
4
|
-
import {
|
|
4
|
+
import { batchCapture } from './batch.js';
|
|
5
|
+
import { askBrain, compareCaptures, detectAndWriteTrends, exportDesignSystem, generateMoodboard, initBrain, ingestInspiration, recordOutcome, reindexBrain, searchBrain, } from './commands.js';
|
|
6
|
+
import { runScorecard } from './scorecard.js';
|
|
5
7
|
import { shouldSkipPrompts } from './interactive.js';
|
|
6
8
|
import { resolveLlmConfig } from './llm.js';
|
|
7
9
|
import { getDefaultSkillRepo, installSkill, maybePromptSkillInstall } from './skillPrompt.js';
|
|
@@ -43,7 +45,7 @@ async function main() {
|
|
|
43
45
|
program
|
|
44
46
|
.name('design-brain-memory')
|
|
45
47
|
.description('Relational markdown design memory powered by Agent Browser CLI')
|
|
46
|
-
.version('0.
|
|
48
|
+
.version('0.6.0')
|
|
47
49
|
.option('-y, --yes', 'Skip interactive prompts');
|
|
48
50
|
program
|
|
49
51
|
.command('init')
|
|
@@ -207,7 +209,7 @@ async function main() {
|
|
|
207
209
|
.command('export')
|
|
208
210
|
.description('Export design system from captured data')
|
|
209
211
|
.requiredOption('--project <project>', 'Project ID/slug')
|
|
210
|
-
.option('--format <format>', 'Export format (tailwind)', 'tailwind')
|
|
212
|
+
.option('--format <format>', 'Export format (tailwind, style-dictionary)', 'tailwind')
|
|
211
213
|
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
212
214
|
.action(async (options) => {
|
|
213
215
|
const outPath = await exportDesignSystem({
|
|
@@ -217,6 +219,79 @@ async function main() {
|
|
|
217
219
|
});
|
|
218
220
|
console.log(`Exported ${options.format} config to ${outPath}`);
|
|
219
221
|
});
|
|
222
|
+
program
|
|
223
|
+
.command('compare')
|
|
224
|
+
.description('Compare two captures or two versions of the same URL')
|
|
225
|
+
.option('--a <id>', 'First inspiration ID')
|
|
226
|
+
.option('--b <id>', 'Second inspiration ID')
|
|
227
|
+
.option('--inspo <id>', 'Inspiration ID (compares against previous version)')
|
|
228
|
+
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
229
|
+
.action(async (options) => {
|
|
230
|
+
const outPath = await compareCaptures({
|
|
231
|
+
rootDir: path.resolve(options.root),
|
|
232
|
+
inspoA: options.a,
|
|
233
|
+
inspoB: options.b,
|
|
234
|
+
inspo: options.inspo,
|
|
235
|
+
});
|
|
236
|
+
console.log(`Comparison written to ${outPath}`);
|
|
237
|
+
});
|
|
238
|
+
program
|
|
239
|
+
.command('batch')
|
|
240
|
+
.description('Batch capture from a file of URLs')
|
|
241
|
+
.requiredOption('--project <project>', 'Project ID/slug')
|
|
242
|
+
.requiredOption('--file <path>', 'Path to URL list file (tab-separated: URL, name, tags)')
|
|
243
|
+
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
244
|
+
.option('--no-visuals', 'Skip SVG visual generation')
|
|
245
|
+
.action(async (options) => {
|
|
246
|
+
const result = await batchCapture({
|
|
247
|
+
rootDir: path.resolve(options.root),
|
|
248
|
+
project: options.project,
|
|
249
|
+
filePath: path.resolve(options.file),
|
|
250
|
+
skipVisuals: !options.visuals,
|
|
251
|
+
});
|
|
252
|
+
console.log(`Batch complete: ${result.succeeded}/${result.total} captured`);
|
|
253
|
+
if (result.failed.length > 0) {
|
|
254
|
+
console.log(`Failed: ${result.failed.join(', ')}`);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
program
|
|
258
|
+
.command('moodboard')
|
|
259
|
+
.description('Generate visual moodboard from project captures')
|
|
260
|
+
.requiredOption('--project <project>', 'Project ID/slug')
|
|
261
|
+
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
262
|
+
.action(async (options) => {
|
|
263
|
+
const outPath = await generateMoodboard({
|
|
264
|
+
rootDir: path.resolve(options.root),
|
|
265
|
+
project: options.project,
|
|
266
|
+
});
|
|
267
|
+
console.log(`Moodboard generated at ${outPath}`);
|
|
268
|
+
});
|
|
269
|
+
program
|
|
270
|
+
.command('trends')
|
|
271
|
+
.description('Detect design trends across captures')
|
|
272
|
+
.option('--project <project>', 'Filter to project')
|
|
273
|
+
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
274
|
+
.action(async (options) => {
|
|
275
|
+
const result = await detectAndWriteTrends({
|
|
276
|
+
rootDir: path.resolve(options.root),
|
|
277
|
+
project: options.project,
|
|
278
|
+
});
|
|
279
|
+
console.log(`Detected ${result.trends} trends, wrote ${result.written} notes`);
|
|
280
|
+
});
|
|
281
|
+
program
|
|
282
|
+
.command('scorecard')
|
|
283
|
+
.description('Audit local codebase against captured design tokens')
|
|
284
|
+
.requiredOption('--project <project>', 'Project ID/slug')
|
|
285
|
+
.requiredOption('--scan <path>', 'Directory to scan')
|
|
286
|
+
.option('--root <dir>', 'Workspace root', process.cwd())
|
|
287
|
+
.action(async (options) => {
|
|
288
|
+
const outPath = await runScorecard({
|
|
289
|
+
rootDir: path.resolve(options.root),
|
|
290
|
+
project: options.project,
|
|
291
|
+
scanPath: path.resolve(options.scan),
|
|
292
|
+
});
|
|
293
|
+
console.log(`Scorecard written to ${outPath}`);
|
|
294
|
+
});
|
|
220
295
|
await program.parseAsync(process.argv);
|
|
221
296
|
}
|
|
222
297
|
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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"}
|