design-brain-memory 0.9.3 → 0.9.4
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 +273 -0
- package/dist/agentBrowser.d.ts +0 -1
- package/dist/agentBrowser.js +13 -31
- package/dist/agentBrowser.js.map +1 -1
- 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 +250 -216
- package/dist/cli.js.map +1 -1
- package/dist/commands.d.ts +60 -1
- package/dist/commands.js +323 -10
- 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/componentGraph.d.ts +22 -0
- package/dist/componentGraph.js +106 -0
- package/dist/componentGraph.js.map +1 -0
- package/dist/contextLayer.d.ts +12 -0
- package/dist/contextLayer.js +263 -0
- package/dist/contextLayer.js.map +1 -0
- package/dist/cssInJs.d.ts +9 -0
- package/dist/cssInJs.js +124 -0
- package/dist/cssInJs.js.map +1 -0
- package/dist/extractFromUrl.d.ts +8 -0
- package/dist/extractFromUrl.js +508 -414
- package/dist/extractFromUrl.js.map +1 -1
- package/dist/graphView.d.ts +21 -0
- package/dist/graphView.js +492 -0
- package/dist/graphView.js.map +1 -0
- package/dist/index.d.ts +26 -11
- package/dist/index.js +17 -10
- package/dist/index.js.map +1 -1
- package/dist/knowledge.d.ts +20 -0
- package/dist/knowledge.js +208 -0
- package/dist/knowledge.js.map +1 -0
- package/dist/liveView.d.ts +15 -0
- package/dist/liveView.js +475 -0
- package/dist/liveView.js.map +1 -0
- package/dist/llm.js +1 -9
- package/dist/llm.js.map +1 -1
- package/dist/moodboard.d.ts +3 -0
- package/dist/moodboard.js +152 -0
- package/dist/moodboard.js.map +1 -0
- package/dist/persona.d.ts +2 -2
- package/dist/persona.js +82 -210
- package/dist/persona.js.map +1 -1
- package/dist/query.js +1 -6
- package/dist/query.js.map +1 -1
- package/dist/render.d.ts +2 -10
- package/dist/render.js +80 -175
- package/dist/render.js.map +1 -1
- package/dist/reviewChecklist.d.ts +17 -0
- package/dist/reviewChecklist.js +126 -0
- package/dist/reviewChecklist.js.map +1 -0
- package/dist/scan.d.ts +19 -7
- package/dist/scan.js +132 -374
- package/dist/scan.js.map +1 -1
- package/dist/scorecard.d.ts +53 -0
- package/dist/scorecard.js +325 -0
- package/dist/scorecard.js.map +1 -0
- package/dist/skillPrompt.d.ts +1 -3
- package/dist/skillPrompt.js +22 -148
- package/dist/skillPrompt.js.map +1 -1
- package/dist/store.d.ts +2 -2
- package/dist/store.js +7 -9
- package/dist/store.js.map +1 -1
- package/dist/styleDictionary.d.ts +16 -0
- package/dist/styleDictionary.js +89 -0
- package/dist/styleDictionary.js.map +1 -0
- package/dist/svg.d.ts +5 -0
- package/dist/svg.js +162 -0
- package/dist/svg.js.map +1 -0
- package/dist/systemDiff.d.ts +28 -0
- package/dist/systemDiff.js +107 -0
- package/dist/systemDiff.js.map +1 -0
- package/dist/tailwind.d.ts +2 -0
- package/dist/tailwind.js +122 -0
- package/dist/tailwind.js.map +1 -0
- package/dist/taste.d.ts +3 -2
- package/dist/taste.js +349 -536
- package/dist/taste.js.map +1 -1
- package/dist/tasteRenderer.d.ts +2 -3
- package/dist/tasteRenderer.js +123 -119
- package/dist/tasteRenderer.js.map +1 -1
- package/dist/tokenNaming.d.ts +5 -0
- package/dist/tokenNaming.js +229 -0
- package/dist/tokenNaming.js.map +1 -0
- package/dist/tokens.d.ts +17 -0
- package/dist/tokens.js +44 -0
- package/dist/tokens.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/dist/types.d.ts +47 -101
- package/dist/wiki.d.ts +10 -0
- package/dist/wiki.js +346 -0
- package/dist/wiki.js.map +1 -0
- package/dist/writingStyle.d.ts +38 -0
- package/dist/writingStyle.js +224 -0
- package/dist/writingStyle.js.map +1 -0
- package/package.json +5 -4
- package/dist/classify.d.ts +0 -21
- package/dist/classify.js +0 -205
- package/dist/classify.js.map +0 -1
- package/dist/scanRenderer.d.ts +0 -2
- package/dist/scanRenderer.js +0 -155
- package/dist/scanRenderer.js.map +0 -1
- package/dist/tasteDiff.d.ts +0 -19
- package/dist/tasteDiff.js +0 -340
- package/dist/tasteDiff.js.map +0 -1
- package/dist/tasteGenerate.d.ts +0 -12
- package/dist/tasteGenerate.js +0 -140
- package/dist/tasteGenerate.js.map +0 -1
- package/dist/tasteRefine.d.ts +0 -13
- package/dist/tasteRefine.js +0 -351
- package/dist/tasteRefine.js.map +0 -1
- package/dist/theatrical.d.ts +0 -5
- package/dist/theatrical.js +0 -258
- package/dist/theatrical.js.map +0 -1
- package/skills/SKILL.md +0 -36
- package/skills/design-brain/SKILL.md +0 -77
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,QAAQ,EACR,cAAc,EACd,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEjH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DesignBrainDatabase } from './types.js';
|
|
2
|
+
export interface DesignProfile {
|
|
3
|
+
domains: string[];
|
|
4
|
+
focus: string;
|
|
5
|
+
philosophy?: string;
|
|
6
|
+
tools?: string[];
|
|
7
|
+
team?: string;
|
|
8
|
+
}
|
|
9
|
+
declare const DOMAIN_MOCS: {
|
|
10
|
+
id: string;
|
|
11
|
+
title: string;
|
|
12
|
+
description: string;
|
|
13
|
+
}[];
|
|
14
|
+
export declare function generateIdentity(profile: DesignProfile): string;
|
|
15
|
+
export declare function generateMethodology(): string;
|
|
16
|
+
export declare function generateMocHub(db: DesignBrainDatabase): string;
|
|
17
|
+
export declare function generateDomainMoc(domain: typeof DOMAIN_MOCS[number], db: DesignBrainDatabase): string;
|
|
18
|
+
export declare function generateMaintenance(): string;
|
|
19
|
+
export declare function ensureKnowledgeFiles(rootDir: string, db: DesignBrainDatabase, profile?: DesignProfile): Promise<void>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import { brainRoot } from './store.js';
|
|
4
|
+
const DEFAULT_DOMAINS = ['web', 'brand', 'mobile', 'design-systems'];
|
|
5
|
+
const DOMAIN_MOCS = [
|
|
6
|
+
{ id: 'color-systems', title: 'Color Systems', description: 'Color palettes, contrast, accessibility, theming' },
|
|
7
|
+
{ id: 'typography', title: 'Typography', description: 'Font pairings, scales, hierarchy, readability' },
|
|
8
|
+
{ id: 'components', title: 'Components', description: 'Buttons, cards, forms, navigation patterns' },
|
|
9
|
+
{ id: 'layout', title: 'Layout', description: 'Grid systems, spacing, responsive patterns' },
|
|
10
|
+
{ id: 'motion', title: 'Motion', description: 'Transitions, animations, keyframes, easing' },
|
|
11
|
+
{ id: 'brand', title: 'Brand & Identity', description: 'Visual identity, logos, brand guidelines' },
|
|
12
|
+
];
|
|
13
|
+
export function generateIdentity(profile) {
|
|
14
|
+
const domainsStr = profile.domains.length > 0
|
|
15
|
+
? profile.domains.map((d) => `- ${d}`).join('\n')
|
|
16
|
+
: DEFAULT_DOMAINS.map((d) => `- ${d}`).join('\n');
|
|
17
|
+
const toolsStr = profile.tools && profile.tools.length > 0
|
|
18
|
+
? `\n## Tools\n\n${profile.tools.map((t) => `- ${t}`).join('\n')}\n`
|
|
19
|
+
: '';
|
|
20
|
+
const teamStr = profile.team
|
|
21
|
+
? `\n## Team\n\n${profile.team}\n`
|
|
22
|
+
: '';
|
|
23
|
+
return `# Design Brain Identity
|
|
24
|
+
|
|
25
|
+
This is the persistent identity of the design brain agent.
|
|
26
|
+
Updated as the system learns from captures and synthesis.
|
|
27
|
+
|
|
28
|
+
## Focus
|
|
29
|
+
|
|
30
|
+
${profile.focus}
|
|
31
|
+
|
|
32
|
+
## Domains
|
|
33
|
+
|
|
34
|
+
${domainsStr}
|
|
35
|
+
${profile.philosophy ? `\n## Philosophy\n\n${profile.philosophy}\n` : ''}${toolsStr}${teamStr}
|
|
36
|
+
## Methodology
|
|
37
|
+
|
|
38
|
+
This agent captures design inspiration from websites and screenshots,
|
|
39
|
+
extracts reusable patterns, records design decisions with rationale,
|
|
40
|
+
and builds cross-project principles backed by evidence.
|
|
41
|
+
|
|
42
|
+
The knowledge graph grows through: Capture → Extract → Synthesize → Evolve → Verify.
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
export function generateMethodology() {
|
|
46
|
+
return `# Design Brain Methodology
|
|
47
|
+
|
|
48
|
+
## How This Agent Thinks
|
|
49
|
+
|
|
50
|
+
1. **Capture** — Ingest design inspiration from URLs or screenshots
|
|
51
|
+
2. **Extract** — Identify reusable patterns, notable decisions, emerging principles
|
|
52
|
+
3. **Synthesize** — Find connections across notes, update Maps of Content
|
|
53
|
+
4. **Evolve** — Backward pass: update older notes with new evidence
|
|
54
|
+
5. **Verify** — Check schema compliance, link health, MOC coverage
|
|
55
|
+
|
|
56
|
+
## Note Types
|
|
57
|
+
|
|
58
|
+
- **Patterns** — Reusable design approaches observed across captures
|
|
59
|
+
- Confidence: emerging → established → canonical
|
|
60
|
+
- **Decisions** — Specific design choices with rationale
|
|
61
|
+
- Status: active → superseded → revisiting
|
|
62
|
+
- **Principles** — Cross-project truths backed by evidence
|
|
63
|
+
- Confidence: emerging → established → canonical
|
|
64
|
+
|
|
65
|
+
## Linking
|
|
66
|
+
|
|
67
|
+
Notes use wiki links \`[[note-name]]\` to connect to:
|
|
68
|
+
- Inspiration captures in \`projects/\`
|
|
69
|
+
- Other notes in \`notes/\`
|
|
70
|
+
- MOCs in \`notes/mocs/\`
|
|
71
|
+
|
|
72
|
+
## Growth
|
|
73
|
+
|
|
74
|
+
- Patterns emerge from single captures, strengthen as more evidence appears
|
|
75
|
+
- Principles are promoted from patterns when evidence spans 3+ sources
|
|
76
|
+
- Decisions reference patterns and principles as justification
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
export function generateMocHub(db) {
|
|
80
|
+
const projectLinks = db.projects.length > 0
|
|
81
|
+
? db.projects.map((p) => `- [${p.name}](../../projects/${p.id}/README.md) — ${p.inspirations.length} inspirations`).join('\n')
|
|
82
|
+
: '- No projects yet';
|
|
83
|
+
const domainLinks = DOMAIN_MOCS
|
|
84
|
+
.map((d) => `- [${d.title}](./${d.id}.md) — ${d.description}`)
|
|
85
|
+
.join('\n');
|
|
86
|
+
return `# Design Brain Hub
|
|
87
|
+
|
|
88
|
+
Central navigation for the design knowledge graph.
|
|
89
|
+
|
|
90
|
+
## Domain Maps
|
|
91
|
+
|
|
92
|
+
${domainLinks}
|
|
93
|
+
|
|
94
|
+
## Projects
|
|
95
|
+
|
|
96
|
+
${projectLinks}
|
|
97
|
+
|
|
98
|
+
## Recent Activity
|
|
99
|
+
|
|
100
|
+
<!-- Auto-updated during Synthesize phase -->
|
|
101
|
+
- System initialized
|
|
102
|
+
|
|
103
|
+
## Quick Access
|
|
104
|
+
|
|
105
|
+
- [Identity](../../self/identity.md)
|
|
106
|
+
- [Methodology](../../self/methodology.md)
|
|
107
|
+
- [Maintenance](../../ops/maintenance.md)
|
|
108
|
+
`;
|
|
109
|
+
}
|
|
110
|
+
export function generateDomainMoc(domain, db) {
|
|
111
|
+
const notesByDomain = `<!-- Notes tagged with '${domain.id}' will be listed here during Synthesize -->\n- No notes yet`;
|
|
112
|
+
// Find relevant inspirations that have data for this domain
|
|
113
|
+
const relevantInspirations = [];
|
|
114
|
+
for (const project of db.projects) {
|
|
115
|
+
for (const inspo of project.inspirations) {
|
|
116
|
+
let relevant = false;
|
|
117
|
+
if (domain.id === 'color-systems' && inspo.analysis.colors.length > 0)
|
|
118
|
+
relevant = true;
|
|
119
|
+
if (domain.id === 'typography' && inspo.analysis.typography.length > 0)
|
|
120
|
+
relevant = true;
|
|
121
|
+
if (domain.id === 'components' && inspo.analysis.components.length > 0)
|
|
122
|
+
relevant = true;
|
|
123
|
+
if (domain.id === 'layout' && inspo.analysis.layout.length > 0)
|
|
124
|
+
relevant = true;
|
|
125
|
+
if (domain.id === 'motion' && inspo.analysis.motion.length > 0)
|
|
126
|
+
relevant = true;
|
|
127
|
+
if (domain.id === 'brand')
|
|
128
|
+
relevant = inspo.analysis.colors.length > 5;
|
|
129
|
+
if (relevant) {
|
|
130
|
+
relevantInspirations.push(`- [[${inspo.id}]] (${inspo.name}) — ${project.name}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const inspoSection = relevantInspirations.length > 0
|
|
135
|
+
? relevantInspirations.join('\n')
|
|
136
|
+
: '- No inspirations captured yet';
|
|
137
|
+
return `# ${domain.title}
|
|
138
|
+
|
|
139
|
+
${domain.description}
|
|
140
|
+
|
|
141
|
+
## Patterns
|
|
142
|
+
|
|
143
|
+
${notesByDomain}
|
|
144
|
+
|
|
145
|
+
## Decisions
|
|
146
|
+
|
|
147
|
+
<!-- Decisions tagged with '${domain.id}' will be listed here -->
|
|
148
|
+
- No decisions yet
|
|
149
|
+
|
|
150
|
+
## Principles
|
|
151
|
+
|
|
152
|
+
<!-- Principles with evidence from '${domain.id}' will be listed here -->
|
|
153
|
+
- No principles yet
|
|
154
|
+
|
|
155
|
+
## Source Inspirations
|
|
156
|
+
|
|
157
|
+
${inspoSection}
|
|
158
|
+
`;
|
|
159
|
+
}
|
|
160
|
+
export function generateMaintenance() {
|
|
161
|
+
return `# Maintenance
|
|
162
|
+
|
|
163
|
+
System health signals and pending work.
|
|
164
|
+
|
|
165
|
+
## Queue Status
|
|
166
|
+
|
|
167
|
+
- Pending extractions: 0
|
|
168
|
+
- Pending synthesis: 0
|
|
169
|
+
|
|
170
|
+
## Last Session
|
|
171
|
+
|
|
172
|
+
- No sessions recorded yet
|
|
173
|
+
|
|
174
|
+
## Signals
|
|
175
|
+
|
|
176
|
+
<!-- Warnings and suggestions surfaced by verify -->
|
|
177
|
+
- System initialized, no issues detected
|
|
178
|
+
`;
|
|
179
|
+
}
|
|
180
|
+
export async function ensureKnowledgeFiles(rootDir, db, profile) {
|
|
181
|
+
const root = brainRoot(rootDir);
|
|
182
|
+
// Generate self/ files if they don't exist
|
|
183
|
+
const identityPath = path.join(root, 'self', 'identity.md');
|
|
184
|
+
if (!await fs.pathExists(identityPath)) {
|
|
185
|
+
const effectiveProfile = profile ?? {
|
|
186
|
+
domains: DEFAULT_DOMAINS,
|
|
187
|
+
focus: 'Capturing and synthesizing design inspiration across web, brand, mobile, and design systems.',
|
|
188
|
+
};
|
|
189
|
+
await fs.writeFile(identityPath, generateIdentity(effectiveProfile));
|
|
190
|
+
}
|
|
191
|
+
const methodologyPath = path.join(root, 'self', 'methodology.md');
|
|
192
|
+
if (!await fs.pathExists(methodologyPath)) {
|
|
193
|
+
await fs.writeFile(methodologyPath, generateMethodology());
|
|
194
|
+
}
|
|
195
|
+
// Always regenerate MOC hub and domain MOCs (they reflect current data)
|
|
196
|
+
const hubPath = path.join(root, 'notes', 'mocs', 'hub.md');
|
|
197
|
+
await fs.writeFile(hubPath, generateMocHub(db));
|
|
198
|
+
for (const domain of DOMAIN_MOCS) {
|
|
199
|
+
const mocPath = path.join(root, 'notes', 'mocs', `${domain.id}.md`);
|
|
200
|
+
await fs.writeFile(mocPath, generateDomainMoc(domain, db));
|
|
201
|
+
}
|
|
202
|
+
// Generate maintenance file if it doesn't exist
|
|
203
|
+
const maintenancePath = path.join(root, 'ops', 'maintenance.md');
|
|
204
|
+
if (!await fs.pathExists(maintenancePath)) {
|
|
205
|
+
await fs.writeFile(maintenancePath, generateMaintenance());
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=knowledge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../src/knowledge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DesignAnalysis, InspirationRecord } from './types.js';
|
|
2
|
+
export interface LiveViewCallbacks {
|
|
3
|
+
onPhaseStart: (phase: string) => void;
|
|
4
|
+
onViewportExtracted: (label: string, analysis: DesignAnalysis) => void;
|
|
5
|
+
onInteractiveStates: (count: number) => void;
|
|
6
|
+
onJourneyStep: (step: number, url: string) => void;
|
|
7
|
+
onMerged: (analysis: DesignAnalysis) => void;
|
|
8
|
+
onAnalysisComplete: (record: InspirationRecord) => void;
|
|
9
|
+
}
|
|
10
|
+
export interface LiveViewConfig {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
viewportLabels?: string[];
|
|
13
|
+
journeySteps?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function createLiveView(config: LiveViewConfig): LiveViewCallbacks;
|