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.
Files changed (125) hide show
  1. package/README.md +273 -0
  2. package/dist/agentBrowser.d.ts +0 -1
  3. package/dist/agentBrowser.js +13 -31
  4. package/dist/agentBrowser.js.map +1 -1
  5. package/dist/aggregate.d.ts +9 -0
  6. package/dist/aggregate.js +53 -0
  7. package/dist/aggregate.js.map +1 -0
  8. package/dist/batch.d.ts +16 -0
  9. package/dist/batch.js +44 -0
  10. package/dist/batch.js.map +1 -0
  11. package/dist/cli.js +250 -216
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands.d.ts +60 -1
  14. package/dist/commands.js +323 -10
  15. package/dist/commands.js.map +1 -1
  16. package/dist/compare.d.ts +33 -0
  17. package/dist/compare.js +83 -0
  18. package/dist/compare.js.map +1 -0
  19. package/dist/componentGraph.d.ts +22 -0
  20. package/dist/componentGraph.js +106 -0
  21. package/dist/componentGraph.js.map +1 -0
  22. package/dist/contextLayer.d.ts +12 -0
  23. package/dist/contextLayer.js +263 -0
  24. package/dist/contextLayer.js.map +1 -0
  25. package/dist/cssInJs.d.ts +9 -0
  26. package/dist/cssInJs.js +124 -0
  27. package/dist/cssInJs.js.map +1 -0
  28. package/dist/extractFromUrl.d.ts +8 -0
  29. package/dist/extractFromUrl.js +508 -414
  30. package/dist/extractFromUrl.js.map +1 -1
  31. package/dist/graphView.d.ts +21 -0
  32. package/dist/graphView.js +492 -0
  33. package/dist/graphView.js.map +1 -0
  34. package/dist/index.d.ts +26 -11
  35. package/dist/index.js +17 -10
  36. package/dist/index.js.map +1 -1
  37. package/dist/knowledge.d.ts +20 -0
  38. package/dist/knowledge.js +208 -0
  39. package/dist/knowledge.js.map +1 -0
  40. package/dist/liveView.d.ts +15 -0
  41. package/dist/liveView.js +475 -0
  42. package/dist/liveView.js.map +1 -0
  43. package/dist/llm.js +1 -9
  44. package/dist/llm.js.map +1 -1
  45. package/dist/moodboard.d.ts +3 -0
  46. package/dist/moodboard.js +152 -0
  47. package/dist/moodboard.js.map +1 -0
  48. package/dist/persona.d.ts +2 -2
  49. package/dist/persona.js +82 -210
  50. package/dist/persona.js.map +1 -1
  51. package/dist/query.js +1 -6
  52. package/dist/query.js.map +1 -1
  53. package/dist/render.d.ts +2 -10
  54. package/dist/render.js +80 -175
  55. package/dist/render.js.map +1 -1
  56. package/dist/reviewChecklist.d.ts +17 -0
  57. package/dist/reviewChecklist.js +126 -0
  58. package/dist/reviewChecklist.js.map +1 -0
  59. package/dist/scan.d.ts +19 -7
  60. package/dist/scan.js +132 -374
  61. package/dist/scan.js.map +1 -1
  62. package/dist/scorecard.d.ts +53 -0
  63. package/dist/scorecard.js +325 -0
  64. package/dist/scorecard.js.map +1 -0
  65. package/dist/skillPrompt.d.ts +1 -3
  66. package/dist/skillPrompt.js +22 -148
  67. package/dist/skillPrompt.js.map +1 -1
  68. package/dist/store.d.ts +2 -2
  69. package/dist/store.js +7 -9
  70. package/dist/store.js.map +1 -1
  71. package/dist/styleDictionary.d.ts +16 -0
  72. package/dist/styleDictionary.js +89 -0
  73. package/dist/styleDictionary.js.map +1 -0
  74. package/dist/svg.d.ts +5 -0
  75. package/dist/svg.js +162 -0
  76. package/dist/svg.js.map +1 -0
  77. package/dist/systemDiff.d.ts +28 -0
  78. package/dist/systemDiff.js +107 -0
  79. package/dist/systemDiff.js.map +1 -0
  80. package/dist/tailwind.d.ts +2 -0
  81. package/dist/tailwind.js +122 -0
  82. package/dist/tailwind.js.map +1 -0
  83. package/dist/taste.d.ts +3 -2
  84. package/dist/taste.js +349 -536
  85. package/dist/taste.js.map +1 -1
  86. package/dist/tasteRenderer.d.ts +2 -3
  87. package/dist/tasteRenderer.js +123 -119
  88. package/dist/tasteRenderer.js.map +1 -1
  89. package/dist/tokenNaming.d.ts +5 -0
  90. package/dist/tokenNaming.js +229 -0
  91. package/dist/tokenNaming.js.map +1 -0
  92. package/dist/tokens.d.ts +17 -0
  93. package/dist/tokens.js +44 -0
  94. package/dist/tokens.js.map +1 -0
  95. package/dist/trends.d.ts +12 -0
  96. package/dist/trends.js +178 -0
  97. package/dist/trends.js.map +1 -0
  98. package/dist/types.d.ts +47 -101
  99. package/dist/wiki.d.ts +10 -0
  100. package/dist/wiki.js +346 -0
  101. package/dist/wiki.js.map +1 -0
  102. package/dist/writingStyle.d.ts +38 -0
  103. package/dist/writingStyle.js +224 -0
  104. package/dist/writingStyle.js.map +1 -0
  105. package/package.json +5 -4
  106. package/dist/classify.d.ts +0 -21
  107. package/dist/classify.js +0 -205
  108. package/dist/classify.js.map +0 -1
  109. package/dist/scanRenderer.d.ts +0 -2
  110. package/dist/scanRenderer.js +0 -155
  111. package/dist/scanRenderer.js.map +0 -1
  112. package/dist/tasteDiff.d.ts +0 -19
  113. package/dist/tasteDiff.js +0 -340
  114. package/dist/tasteDiff.js.map +0 -1
  115. package/dist/tasteGenerate.d.ts +0 -12
  116. package/dist/tasteGenerate.js +0 -140
  117. package/dist/tasteGenerate.js.map +0 -1
  118. package/dist/tasteRefine.d.ts +0 -13
  119. package/dist/tasteRefine.js +0 -351
  120. package/dist/tasteRefine.js.map +0 -1
  121. package/dist/theatrical.d.ts +0 -5
  122. package/dist/theatrical.js +0 -258
  123. package/dist/theatrical.js.map +0 -1
  124. package/skills/SKILL.md +0 -36
  125. 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,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACpH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
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;