glyph-ai 0.3.66 → 0.4.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.
@@ -14,4 +14,15 @@ export interface DesignBriefParams {
14
14
  preset?: 'a' | 'b' | 'c' | 'd' | 'e';
15
15
  }
16
16
  export declare function buildDesignBrief(params: DesignBriefParams): Promise<string>;
17
+ export interface DirectionBriefParams {
18
+ fileContent: string;
19
+ filePath: string;
20
+ direction: string;
21
+ directionPath: string;
22
+ instruction?: string;
23
+ count: number;
24
+ designSystemContext?: string;
25
+ projectTokens?: ProjectTokens;
26
+ }
27
+ export declare function buildDirectionBrief(params: DirectionBriefParams): Promise<string>;
17
28
  //# sourceMappingURL=prompt-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../src/context/prompt-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI9E,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0JAA0J;IAC1J,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACtC;AA2KD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEjF"}
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../src/context/prompt-builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAI9E,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0JAA0J;IAC1J,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACtC;AA2KD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgEjF;AAMD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgHvF"}
@@ -194,6 +194,105 @@ Return each variation in a labeled fenced code block:
194
194
 
195
195
  ${variationBlocks}
196
196
 
197
+ ### After Evaluating
198
+ Once all ${count} variations have passed visual self-evaluation (all dimensions 7+), call the \`submit_variations\` tool with:
199
+ - \`source_file\`: \`${filePath}\`
200
+ - \`variations\`: an array of objects, each with \`id\` (e.g. "variation-1") and \`code\` (the full file content)`);
201
+ return sections.join('\n\n');
202
+ }
203
+ export async function buildDirectionBrief(params) {
204
+ const { fileContent, filePath, direction, directionPath, instruction, count, designSystemContext, projectTokens } = params;
205
+ const sections = [];
206
+ // 0. Taste Layer
207
+ sections.push(renderTasteLayer());
208
+ // 1. Agent Identity
209
+ const agentIdentity = await renderAgentIdentity();
210
+ sections.push(agentIdentity);
211
+ // 2. Brief header
212
+ sections.push(`# Glyph Design Brief — Project Direction\n\n**Direction source:** \`${directionPath}\``);
213
+ // 3. Source file
214
+ sections.push(`## Source File\n**Path:** \`${filePath}\`\n\n\`\`\`tsx\n${fileContent}\n\`\`\``);
215
+ // 4. Design Philosophy (non-negotiable constraints)
216
+ const philosophy = await renderDesignPhilosophy();
217
+ sections.push(philosophy);
218
+ // 5. The project direction — this is the primary design authority
219
+ sections.push(`## Project Visual Direction\n\nThis is the established design direction for this project. All variations MUST follow it.\n\n${direction}`);
220
+ // 6. Project tokens (if available)
221
+ if (projectTokens) {
222
+ const rendered = renderProjectTokens(projectTokens);
223
+ if (!rendered.startsWith('No design system')) {
224
+ sections.push(rendered);
225
+ }
226
+ }
227
+ if (designSystemContext && !designSystemContext.startsWith('No design system')) {
228
+ sections.push(`## Raw Project Context\n${designSystemContext}`);
229
+ }
230
+ // 7. Workflow rules
231
+ sections.push(`## Workflow Rules
232
+ - **Adhere to the Design Philosophy above** — these are non-negotiable constraints.
233
+ - **Follow the Project Visual Direction** — this is the established aesthetic for this project. Do not deviate.
234
+ - If any generated code violates the anti-patterns table, fix it before outputting.
235
+ - **Hierarchy: Philosophy constraints > Project Direction > Project token values > Defaults.**
236
+ - Preserve the source file's structure and functionality — only transform the visual presentation.
237
+
238
+ ### Two-Pass Generation (Required)
239
+
240
+ For each variation, work in two explicit passes:
241
+
242
+ **Pass 1 — Structure:** Generate the component hierarchy and layout in semantic HTML. Use only structural utilities (flex, grid, gap, w-full, etc.). No colors, no typography classes, no shadows, no visual styling. Review the structure: does the hierarchy make sense? Is the information architecture clear? Are the right elements grouped together?
243
+
244
+ **Pass 2 — Style:** Apply the direction's design tokens over the confirmed structure. Typography scale, color roles, spacing values, shadows, border radii, interaction states — all applied in this pass. The structure is locked; do not reorganize components to accommodate styling.`);
245
+ if (instruction) {
246
+ sections.push(`## Additional Instructions\n${instruction}`);
247
+ }
248
+ // 8. Scoring rubric
249
+ const rubric = await renderScoringRubric();
250
+ // 9. Task
251
+ const variationBlocks = Array.from({ length: count }, (_, i) => {
252
+ return `\`\`\`glyph-variation-${i + 1}\n// Variation ${i + 1} code here\n\`\`\``;
253
+ }).join('\n\n');
254
+ sections.push(`## Your Task
255
+
256
+ Generate **${count} distinct variations** of the source file above, each following the **Project Visual Direction**.
257
+
258
+ ### Requirements
259
+ 1. Each variation must be a **complete, working replacement** for the source file.
260
+ 2. Preserve all functionality — only change visual presentation and styling.
261
+ 3. Each variation should explore a **different interpretation** of the direction:
262
+ - Variation 1: Faithful, close adaptation of the direction
263
+ - Variation 2: Bold, more expressive interpretation
264
+ - Variation 3: Minimal, stripped-back version
265
+ - Variation 4+: Creative explorations (different layouts, emphasis, density)
266
+ 4. Comply with Design Philosophy constraints. Use the direction's token values.
267
+ 5. Keep all imports and exports intact.
268
+ 6. Use inline styles or Tailwind classes as appropriate for the existing codebase.
269
+
270
+ ### Visual Self-Evaluation (Mandatory Gate)
271
+
272
+ After generating each variation (both passes complete), you **MUST** evaluate it visually before submitting:
273
+
274
+ 1. Call \`preview_draft\` with the variation code to get a rendered localhost URL
275
+ 2. Take a screenshot of the rendered output at that URL
276
+ 3. Score the screenshot on these dimensions (1-10 each):
277
+ - **Optical hierarchy clarity** — Can the eye find the primary action in under 1 second?
278
+ - **Typographic precision** — Is the type scale intentional? Are weights and sizes doing real work?
279
+ - **Color restraint and intentionality** — Is every color earning its place? No decorative noise?
280
+ - **Direction fidelity** — Does this unmistakably follow the established project direction?
281
+ - **Whitespace and composition** — Is spacing rhythmic and intentional, not just default gaps?
282
+ 4. If ANY dimension scores below 7: identify the single weakest element, propose a specific token-level fix, apply it, and re-evaluate
283
+ 5. Maximum 2 iteration rounds per variation
284
+ 6. **Do NOT call \`submit_variations\` until all variations score 7+ on all dimensions**
285
+ 7. If still below threshold after 2 iterations, submit with a note explaining what couldn't be resolved
286
+
287
+ ${rubric}
288
+
289
+ **If a variation looks like it could have been produced by a generic UI generator, it fails. Redesign it.**
290
+
291
+ ### Output Format
292
+ Return each variation in a labeled fenced code block:
293
+
294
+ ${variationBlocks}
295
+
197
296
  ### After Evaluating
198
297
  Once all ${count} variations have passed visual self-evaluation (all dimensions 7+), call the \`submit_variations\` tool with:
199
298
  - \`source_file\`: \`${filePath}\`
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/context/prompt-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/context/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-design-system.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/generate-design-system.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmIpE"}
1
+ {"version":3,"file":"generate-design-system.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/generate-design-system.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA6CzE,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8GpE"}
@@ -2,110 +2,116 @@ import { z } from 'zod';
2
2
  import path from 'node:path';
3
3
  import fs from 'fs-extra';
4
4
  import { scanDesignSystemDetailed } from '../../context/design-system.js';
5
- import { getAvailableBrands, loadBrandDesignSystem } from '../../context/design-system-loader.js';
6
- import { generateDesignMd, buildBrandSummaries } from '../../context/design-md-generator.js';
5
+ import { generateDesignMd } from '../../context/design-md-generator.js';
7
6
  import { track } from '../../telemetry.js';
8
- import { renderTasteLayer, renderAnalyticalVoice } from '../../context/taste-layer.js';
7
+ import { renderTasteLayer } from '../../context/taste-layer.js';
8
+ // ---------------------------------------------------------------------------
9
+ // App-type to brand reference mapping
10
+ // ---------------------------------------------------------------------------
11
+ const APP_TYPE_BRANDS = {
12
+ dashboard: ['linear', 'vercel'],
13
+ saas: ['linear', 'stripe'],
14
+ 'e-commerce': ['stripe', 'apple'],
15
+ content: ['notion', 'arc'],
16
+ documentation: ['notion', 'stripe'],
17
+ messaging: ['claude', 'arc'],
18
+ marketing: ['apple', 'stripe'],
19
+ 'web-app': ['linear', 'elevenlabs'],
20
+ };
21
+ async function loadProjectContext(root) {
22
+ const contextPath = path.join(root, '.glyph', 'project-context.json');
23
+ if (await fs.pathExists(contextPath)) {
24
+ try {
25
+ return await fs.readJson(contextPath);
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ }
31
+ return null;
32
+ }
9
33
  export function registerGenerateDesignSystem(server) {
10
- server.tool('generate_design_system', "Generate a design.md design system for the user's project. Can extract from existing code, generate inspired by a reference brand, or create from scratch based on a description. Call without mode to see options.", {
34
+ server.tool('generate_design_system', "Generate a visual direction for the project. For new projects, creates design.md from industry best practices. For existing projects, scans the current design system and generates redesign.md with an improved visual direction. Checks for existing direction first — if one exists, returns it.", {
11
35
  project_root: z.string().optional(),
12
- mode: z.enum(['extract', 'brand-inspired', 'guided']).optional(),
13
- brand: z.string().optional(),
14
- description: z.string().optional(),
15
- suggest_improvements: z.boolean().optional(),
16
- output_path: z.string().optional(),
17
- }, async ({ project_root, mode, brand, description, suggest_improvements, output_path }) => {
36
+ force: z.boolean().optional().describe('Force regeneration even if a direction already exists'),
37
+ }, async ({ project_root, force }) => {
18
38
  const root = project_root || process.env.GLYPH_PROJECT_ROOT || process.cwd();
19
- track('mcp:generate_design_system', { mode, brand, hasDescription: !!description, projectRoot: root });
39
+ track('mcp:generate_design_system', { projectRoot: root, force });
20
40
  try {
21
- // Pre-scan: check for existing design.md and tokens
22
- const designMdPath = output_path || path.join(root, 'design.md');
23
- const hasExistingDesignMd = await fs.pathExists(designMdPath);
41
+ // ---------------------------------------------------------------
42
+ // 1. Check for existing direction
43
+ // ---------------------------------------------------------------
44
+ const designMdPath = path.join(root, 'design.md');
45
+ const redesignMdPath = path.join(root, 'redesign.md');
46
+ const hasDesignMd = await fs.pathExists(designMdPath);
47
+ const hasRedesignMd = await fs.pathExists(redesignMdPath);
48
+ if ((hasDesignMd || hasRedesignMd) && !force) {
49
+ const existingPath = hasRedesignMd ? redesignMdPath : designMdPath;
50
+ const existingContent = await fs.readFile(existingPath, 'utf-8');
51
+ return {
52
+ content: [{
53
+ type: 'text',
54
+ text: JSON.stringify({
55
+ status: 'direction_exists',
56
+ path: existingPath,
57
+ message: 'A Glyph direction already exists. Use it for all design work. Pass force: true to regenerate.',
58
+ direction: existingContent,
59
+ }, null, 2),
60
+ }],
61
+ };
62
+ }
63
+ // ---------------------------------------------------------------
64
+ // 2. Load project context
65
+ // ---------------------------------------------------------------
66
+ const context = await loadProjectContext(root);
67
+ const maturity = context?.maturity ?? 'existing';
68
+ const appType = context?.appType ?? 'web-app';
69
+ // ---------------------------------------------------------------
70
+ // 3. Select brand references based on app type
71
+ // ---------------------------------------------------------------
72
+ const brandCandidates = APP_TYPE_BRANDS[appType] || APP_TYPE_BRANDS['web-app'];
73
+ const primaryBrand = brandCandidates[0];
74
+ // ---------------------------------------------------------------
75
+ // 4. Scan existing design system (both paths need this)
76
+ // ---------------------------------------------------------------
24
77
  let existingScan;
25
- let hasExistingTokens = false;
26
- let tokenCount = 0;
27
78
  try {
28
79
  existingScan = await scanDesignSystemDetailed(root);
29
- tokenCount = existingScan.rawProperties.length;
30
- hasExistingTokens = tokenCount > 0;
31
80
  }
32
81
  catch {
33
- // Non-fatal — some modes don't need a scan
34
- }
35
- // State machine: route based on what's provided
36
- // Step 1: No mode — ask which mode
37
- if (!mode) {
38
- const result = {
39
- status: 'needs_input',
40
- question: 'mode_selection',
41
- options: {
42
- extract: 'Scan your codebase and document your existing design system as-is',
43
- 'brand-inspired': 'Start from a reference brand aesthetic and customize it for your project',
44
- guided: "Describe your brand and I'll generate a complete design system from scratch",
45
- },
46
- context: {
47
- has_existing_design_md: hasExistingDesignMd,
48
- has_existing_tokens: hasExistingTokens,
49
- token_count: tokenCount,
50
- },
51
- recommendation: hasExistingTokens ? 'extract' : 'guided',
52
- };
53
- if (hasExistingDesignMd) {
54
- result.existing_path = designMdPath;
55
- result.note = 'A design.md already exists at this path. Ask the user if they want to regenerate or update it.';
56
- }
57
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
58
- }
59
- // Step 2a: brand-inspired without brand — ask which brand
60
- if (mode === 'brand-inspired' && !brand) {
61
- const summaries = await buildBrandSummaries();
62
- const result = {
63
- status: 'needs_input',
64
- question: 'brand_selection',
65
- available_brands: getAvailableBrands(),
66
- brand_summaries: summaries,
67
- };
68
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
69
- }
70
- // Validate brand if provided
71
- if (mode === 'brand-inspired' && brand) {
72
- const brandData = await loadBrandDesignSystem(brand);
73
- if (!brandData) {
74
- const result = {
75
- status: 'error',
76
- message: `Unknown brand "${brand}". Available brands: ${getAvailableBrands().join(', ')}`,
77
- };
78
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
79
- }
80
- }
81
- // Step 2b: guided without description — ask for description
82
- if (mode === 'guided' && !description) {
83
- const result = {
84
- status: 'needs_input',
85
- question: 'description_needed',
86
- prompt: "Describe your product and the feeling you want the UI to have. Examples: 'B2B analytics dashboard, professional, dark mode, data-dense' or 'consumer mobile app, playful, bright, rounded'",
87
- };
88
- return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
82
+ // Non-fatal
89
83
  }
90
- // Step 3: All inputs present — generate
91
- const suggestImprovements = suggest_improvements ?? (mode === 'extract');
92
- // Select voice based on mode: analytical for extract, creative for brand-inspired/guided
93
- const voice = mode === 'extract' ? renderAnalyticalVoice() : renderTasteLayer();
84
+ // ---------------------------------------------------------------
85
+ // 5. Route: new design.md, existing → redesign.md
86
+ // ---------------------------------------------------------------
87
+ const isNew = maturity === 'new';
88
+ const outputPath = isNew ? designMdPath : redesignMdPath;
89
+ const mode = isNew ? 'brand-inspired' : 'brand-inspired';
90
+ // Both paths use brand-inspired mode — the difference is in the
91
+ // description we pass and whether we include existing scan context
92
+ const description = isNew
93
+ ? `New ${appType} project: ${context?.description || context?.projectName || 'web application'}. Create a complete design system from scratch using industry best practices.`
94
+ : `Existing ${appType} project: ${context?.description || context?.projectName || 'web application'}. Scan the current design system, identify what's working and what's not, then propose an improved visual direction. Acknowledge the current state but don't be constrained by it.`;
95
+ const voice = renderTasteLayer();
94
96
  const result = await generateDesignMd({
95
97
  root,
96
98
  mode,
97
- brand,
99
+ brand: primaryBrand,
98
100
  description,
99
- suggestImprovements,
100
- outputPath: designMdPath,
101
+ suggestImprovements: !isNew,
102
+ outputPath,
101
103
  existingScan,
102
104
  voice,
103
105
  });
104
106
  const response = {
105
107
  status: 'success',
108
+ type: isNew ? 'design' : 'redesign',
106
109
  design_md: result.designMd,
107
110
  summary: result.summary,
108
- output_path: designMdPath,
111
+ output_path: outputPath,
112
+ brand_references_used: brandCandidates,
113
+ app_type: appType,
114
+ maturity,
109
115
  };
110
116
  if (result.inconsistencies && result.inconsistencies.length > 0) {
111
117
  response.inconsistencies = result.inconsistencies;
@@ -1 +1 @@
1
- {"version":3,"file":"generate-design-system.js","sourceRoot":"","sources":["../../../src/mcp/tools/generate-design-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-design-system.js","sourceRoot":"","sources":["../../../src/mcp/tools/generate-design-system.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate-variations.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/generate-variations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA2DlE"}
1
+ {"version":3,"file":"generate-variations.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/generate-variations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAqBzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAoElE"}
@@ -2,20 +2,32 @@ import fs from 'fs-extra';
2
2
  import path from 'node:path';
3
3
  import { z } from 'zod';
4
4
  import { track } from '../../telemetry.js';
5
- import { isValidBrand } from '../../context/brand-references.js';
6
- import { buildDesignBrief } from '../../context/prompt-builder.js';
5
+ import { buildDirectionBrief } from '../../context/prompt-builder.js';
7
6
  import { scanDesignSystem } from '../../context/design-system.js';
7
+ async function loadDirection(root) {
8
+ // Check redesign.md first (takes precedence for existing projects)
9
+ const redesignPath = path.join(root, 'redesign.md');
10
+ if (await fs.pathExists(redesignPath)) {
11
+ const content = await fs.readFile(redesignPath, 'utf-8');
12
+ return { path: redesignPath, content };
13
+ }
14
+ const designPath = path.join(root, 'design.md');
15
+ if (await fs.pathExists(designPath)) {
16
+ const content = await fs.readFile(designPath, 'utf-8');
17
+ return { path: designPath, content };
18
+ }
19
+ return null;
20
+ }
8
21
  export function registerGenerateVariations(server) {
9
- server.tool('generate_variations', 'Analyze a file and generate a design brief for creating UI variations with a specific brand aesthetic. Includes opinionated design philosophy, anti-pattern enforcement, and optional aesthetic presets (Surgical, Brutalist, Editorial, Dashboard/Functional, Consumer/Warm) with self-evaluation scoring.', {
22
+ server.tool('generate_variations', "Analyze a file and generate a design brief for creating UI variations. Uses the project's established design direction (design.md or redesign.md) as the constraint system. If no direction exists, tells the agent to create one first via generate_design_system.", {
10
23
  file: z.string(),
11
- brand: z.string().optional().default('elevenlabs'),
12
24
  instruction: z.string().optional(),
13
25
  count: z.number().optional().default(4),
14
- preset: z.enum(['a', 'b', 'c', 'd', 'e']).optional().describe('Aesthetic preset: a (Surgical/Minimal), b (Neo-Brutalist/Kinetic), c (Archival/Editorial), d (Dashboard/Functional), e (Consumer/Warm). Overrides general design rules where they conflict.'),
15
- }, async ({ file, brand, instruction, count, preset }) => {
16
- track('mcp:generate_variations', { file, brand, count });
26
+ }, async ({ file, instruction, count }) => {
17
27
  const projectRoot = process.env.GLYPH_PROJECT_ROOT || process.cwd();
18
28
  const filePath = path.resolve(projectRoot, file);
29
+ track('mcp:generate_variations', { file, count });
30
+ // Read source file
19
31
  let fileContent;
20
32
  try {
21
33
  fileContent = await fs.readFile(filePath, 'utf-8');
@@ -25,13 +37,20 @@ export function registerGenerateVariations(server) {
25
37
  content: [{ type: 'text', text: `Error: Could not read file at ${filePath}` }],
26
38
  };
27
39
  }
28
- // Check if brand reference exists
29
- if (!isValidBrand(brand)) {
40
+ // Check for direction
41
+ const direction = await loadDirection(projectRoot);
42
+ if (!direction) {
30
43
  return {
31
- content: [{ type: 'text', text: `Error: Unknown brand "${brand}". Available: ${['apple', 'arc', 'claude', 'elevenlabs', 'linear', 'notion', 'raycast', 'stripe', 'vercel'].join(', ')}` }],
44
+ content: [{
45
+ type: 'text',
46
+ text: JSON.stringify({
47
+ status: 'no_direction',
48
+ message: 'No Glyph direction found. Create one first by calling generate_design_system. This will generate a design.md or redesign.md that establishes the visual direction for the project. All variations must follow the established direction.',
49
+ }, null, 2),
50
+ }],
32
51
  };
33
52
  }
34
- // Scan design system for context
53
+ // Scan design system for additional context
35
54
  let designSystemContext;
36
55
  let projectTokens;
37
56
  try {
@@ -40,17 +59,18 @@ export function registerGenerateVariations(server) {
40
59
  designSystemContext = scanResult.raw;
41
60
  }
42
61
  catch {
43
- // non-fatal — proceed without design system context
62
+ // non-fatal
44
63
  }
45
- const brief = await buildDesignBrief({
64
+ // Build brief from direction
65
+ const brief = await buildDirectionBrief({
46
66
  fileContent,
47
67
  filePath: file,
48
- brand,
68
+ direction: direction.content,
69
+ directionPath: direction.path,
49
70
  instruction,
50
71
  count,
51
72
  designSystemContext,
52
73
  projectTokens,
53
- preset,
54
74
  });
55
75
  return {
56
76
  content: [{ type: 'text', text: brief }],
@@ -1 +1 @@
1
- {"version":3,"file":"generate-variations.js","sourceRoot":"","sources":["../../../src/mcp/tools/generate-variations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-variations.js","sourceRoot":"","sources":["../../../src/mcp/tools/generate-variations.ts"],"names":[],"mappings":"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"}
@@ -82,7 +82,7 @@ try {
82
82
  #__glyph_status.error { color:#f87171; }
83
83
  </style>
84
84
  </head>
85
- <body style="margin: 0; background: #0a0a0a;">
85
+ <body style="margin: 0;">
86
86
  <div id="root"></div>
87
87
  <div id="__glyph_status">Loading preview…</div>
88
88
  <script>
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA4bA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6D1C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA+bA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6E1C"}
@@ -5,6 +5,7 @@ import { spawn } from 'child_process';
5
5
  import { fileURLToPath } from 'url';
6
6
  import fsExtra from 'fs-extra';
7
7
  const { pathExists, readFile, writeFile, readJson, writeJson, ensureDir } = fsExtra;
8
+ import { inferProjectContext } from '../inference/project-context.js';
8
9
  // ---------------------------------------------------------------------------
9
10
  // Helpers
10
11
  // ---------------------------------------------------------------------------
@@ -210,35 +211,36 @@ const CLAUDE_MD_MARKER = '<!-- glyph-start -->';
210
211
  const CLAUDE_MD_MARKER_END = '<!-- glyph-end -->';
211
212
  function getGlyphClaudeMdSection() {
212
213
  return `${CLAUDE_MD_MARKER}
213
- ## Glyph — UI Design Variations
214
+ ## Glyph — Design Intelligence
214
215
 
215
- This project uses [Glyph](https://www.npmjs.com/package/glyph-ai) for generating UI design variations. When the user asks for design variations, visual alternatives, redesigns, or to "make something look better" for any component, use the Glyph MCP tools instead of editing code directly.
216
+ This project uses [Glyph](https://www.npmjs.com/package/glyph-ai) for design intelligence.
216
217
 
217
- ### When to use Glyph
218
+ ### The Rule
219
+ Before designing anything, check for a Glyph direction:
220
+ - Look for \`design.md\` or \`redesign.md\` in the project root
221
+ - If none exists → create one first using \`generate_design_system\`
222
+ - If one exists → use it for ALL design work. Never deviate.
218
223
 
219
- - "generate variations of this component"
220
- - "give me 3 versions of this page"
221
- - "redesign this hero section"
222
- - "make this look better"
223
- - Any request for visual alternatives to a UI component
224
+ ### Creating a Direction (first time only)
225
+ Glyph auto-detects whether this is a new or existing project:
226
+ - **New projects** generates \`design.md\` from industry best practices
227
+ - **Existing projects** scans current design system, then generates \`redesign.md\` with a better visual direction
224
228
 
225
- ### Workflow
229
+ This is Glyph's core value. The direction establishes the aesthetic DNA for the entire project.
226
230
 
227
- 1. **generate_variations** Pass the file path to get a design brief with instructions for writing variations
228
- 2. **Write the variation code** Follow the brief to write N variations as complete component code
229
- 3. **preview_draft** (optional) Render a variation to a temporary URL and screenshot it to self-evaluate quality before submitting
230
- 4. **submit_variations** Submit all variations to the Glyph server; they appear in the user's browser overlay
231
- 5. **User picks a favorite** — The user previews and selects a variation in their browser
232
- 6. **apply_variation** — Writes the chosen variation to the source file (backup is created automatically)
231
+ ### Designing with the Direction
232
+ - Every page, feature, or component follows the established direction
233
+ - Use \`generate_variations\` with the file path and count
234
+ - The direction is automatically loaded as the constraint system
235
+ - Submit variations user previews in browser overlay picks one
233
236
 
234
- ### Aesthetic presets
237
+ ### Scope
238
+ Glyph is designed for pages, features, and full apps. You can use it for a single component, but it shines at page-level and above. Don't use Glyph to tweak a button color — that's just a code edit.
235
239
 
236
- You can pass a \`preset\` parameter to generate_variations:
237
- - \`a\` Surgical / Minimal
238
- - \`b\` Neo-Brutalist / Kinetic
239
- - \`c\` Archival / Editorial
240
- - \`d\` — Dashboard / Functional
241
- - \`e\` — Consumer / Warm
240
+ ### Workflow
241
+ 1. \`generate_design_system\` creates \`design.md\` or \`redesign.md\` (once per project)
242
+ 2. \`generate_variations\` write variation code → \`submit_variations\` (per design task)
243
+ 3. User previews in browser → \`apply_variation\` to finalize
242
244
  ${CLAUDE_MD_MARKER_END}`;
243
245
  }
244
246
  async function writeClaudeMd(cwd) {
@@ -273,40 +275,41 @@ async function writeCursorRules(cwd) {
273
275
  await ensureDir(rulesDir);
274
276
  const rulePath = path.join(rulesDir, 'glyph.mdc');
275
277
  const content = `---
276
- description: Use Glyph MCP tools when the user asks for UI design variations, visual alternatives, redesigns, or to make a component look better
278
+ description: Use Glyph MCP tools for design intelligence creating visual directions and generating design variations
277
279
  globs:
278
280
  alwaysApply: true
279
281
  ---
280
282
 
281
- # Glyph — UI Design Variations
283
+ # Glyph — Design Intelligence
282
284
 
283
- This project uses Glyph for generating UI design variations. When the user asks for design variations, visual alternatives, redesigns, or to "make something look better" for any component, use the Glyph MCP tools instead of editing code directly.
285
+ This project uses Glyph for design intelligence.
284
286
 
285
- ## When to use Glyph
287
+ ## The Rule
288
+ Before designing anything, check for a Glyph direction:
289
+ - Look for \`design.md\` or \`redesign.md\` in the project root
290
+ - If none exists → create one first using \`generate_design_system\`
291
+ - If one exists → use it for ALL design work. Never deviate.
286
292
 
287
- - "generate variations of this component"
288
- - "give me 3 versions of this page"
289
- - "redesign this hero section"
290
- - "make this look better"
291
- - Any request for visual alternatives to a UI component
293
+ ## Creating a Direction (first time only)
294
+ Glyph auto-detects whether this is a new or existing project:
295
+ - **New projects** generates \`design.md\` from industry best practices
296
+ - **Existing projects** scans current design system, then generates \`redesign.md\` with a better visual direction
292
297
 
293
- ## Workflow
298
+ This is Glyph's core value. The direction establishes the aesthetic DNA for the entire project.
294
299
 
295
- 1. **generate_variations** Pass the file path to get a design brief with instructions for writing variations
296
- 2. **Write the variation code** Follow the brief to write N variations as complete component code
297
- 3. **preview_draft** (optional) Render a variation to a temporary URL and screenshot it to self-evaluate quality before submitting
298
- 4. **submit_variations** Submit all variations to the Glyph server; they appear in the user's browser overlay
299
- 5. **User picks a favorite** — The user previews and selects a variation in their browser
300
- 6. **apply_variation** — Writes the chosen variation to the source file (backup is created automatically)
300
+ ## Designing with the Direction
301
+ - Every page, feature, or component follows the established direction
302
+ - Use \`generate_variations\` with the file path and count
303
+ - The direction is automatically loaded as the constraint system
304
+ - Submit variations user previews in browser overlay picks one
301
305
 
302
- ## Aesthetic presets
306
+ ## Scope
307
+ Glyph is designed for pages, features, and full apps. You can use it for a single component, but it shines at page-level and above. Don't use Glyph to tweak a button color — that's just a code edit.
303
308
 
304
- You can pass a \`preset\` parameter to generate_variations:
305
- - \`a\` Surgical / Minimal
306
- - \`b\` Neo-Brutalist / Kinetic
307
- - \`c\` Archival / Editorial
308
- - \`d\` — Dashboard / Functional
309
- - \`e\` — Consumer / Warm
309
+ ## Workflow
310
+ 1. \`generate_design_system\` creates \`design.md\` or \`redesign.md\` (once per project)
311
+ 2. \`generate_variations\` write variation code → \`submit_variations\` (per design task)
312
+ 3. User previews in browser → \`apply_variation\` to finalize
310
313
  `;
311
314
  await writeFile(rulePath, content, 'utf-8');
312
315
  console.log(chalk.green(' Wrote .cursor/rules/glyph.mdc'));
@@ -397,29 +400,38 @@ export async function init() {
397
400
  console.log(chalk.green(` Detected: ${frameworkLabels[framework]}`));
398
401
  console.log();
399
402
  // Step 2
400
- console.log(chalk.bold('2. Injecting overlay script...'));
401
- const overlayInjected = await injectOverlay(cwd, framework);
403
+ console.log(chalk.bold('2. Scanning project context...'));
404
+ const projectContext = await inferProjectContext(cwd, framework);
405
+ await ensureDir(path.join(cwd, '.glyph'));
406
+ await writeJson(path.join(cwd, '.glyph', 'project-context.json'), projectContext, { spaces: 2 });
407
+ console.log(chalk.green(` Project: ${projectContext.projectName} (${projectContext.appType}, ${projectContext.maturity})`));
408
+ console.log(chalk.green(` Direction: ${projectContext.hasGlyphDirection ? 'found' : 'none yet'}`));
402
409
  console.log();
403
410
  // Step 3
404
- console.log(chalk.bold('3. Writing MCP config files...'));
405
- await writeMcpConfigs(cwd);
411
+ console.log(chalk.bold('3. Injecting overlay script...'));
412
+ const overlayInjected = await injectOverlay(cwd, framework);
406
413
  console.log();
407
414
  // Step 4
408
- console.log(chalk.bold('4. Writing AI assistant rules...'));
415
+ console.log(chalk.bold('4. Writing MCP config files...'));
416
+ await writeMcpConfigs(cwd);
417
+ console.log();
418
+ // Step 5
419
+ console.log(chalk.bold('5. Writing AI assistant rules...'));
409
420
  await writeClaudeMd(cwd);
410
421
  await writeCursorRules(cwd);
411
422
  console.log();
412
- // Step 5
413
- console.log(chalk.bold('5. Creating .glyph directory...'));
423
+ // Step 6
424
+ console.log(chalk.bold('6. Creating .glyph directory...'));
414
425
  await createGlyphDir(cwd);
415
426
  console.log();
416
- // Step 6
417
- console.log(chalk.bold('6. Starting Glyph server...'));
427
+ // Step 7
428
+ console.log(chalk.bold('7. Starting Glyph server...'));
418
429
  const serverStarted = await startServer(cwd);
419
430
  console.log();
420
431
  // Summary
421
432
  console.log(chalk.bold('Setup complete!'));
422
433
  console.log();
434
+ console.log(` Project: ${chalk.green(projectContext.projectName)} (${projectContext.appType}, ${projectContext.maturity})`);
423
435
  console.log(` Framework: ${frameworkLabels[framework]}`);
424
436
  console.log(` Overlay: ${overlayInjected ? chalk.green('injected') : chalk.yellow('skipped')}`);
425
437
  console.log(` MCP configs: ${chalk.green('written')}`);
@@ -429,9 +441,16 @@ export async function init() {
429
441
  console.log(chalk.bold('Next steps:'));
430
442
  console.log(' 1. Start your dev server (npm run dev)');
431
443
  console.log(' 2. Open your app in the browser');
432
- console.log(' 3. In Claude Code, ask for design variations:');
444
+ if (!projectContext.hasGlyphDirection) {
445
+ console.log(' 3. Ask your AI agent to create a design direction:');
446
+ console.log(' "create a design direction for this project"');
447
+ console.log(' 4. Then ask for variations of any page:');
448
+ }
449
+ else {
450
+ console.log(' 3. Ask your AI agent for design variations:');
451
+ }
433
452
  console.log(' "give me 3 variations of the hero section in app/page.tsx"');
434
- console.log(' 4. Variations appear in a preview panel — click to preview, click Implement to keep');
453
+ console.log(' 5. Variations appear in a preview panel — click to preview, click Implement to keep');
435
454
  console.log();
436
455
  }
437
456
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { stop } from './commands/stop.js';
5
5
  const program = new Command();
6
6
  program
7
7
  .name('glyph')
8
- .version('0.1.0')
8
+ .version('0.4.0')
9
9
  .description('Design intelligence for the vibe coding era');
10
10
  program
11
11
  .command('init')
@@ -0,0 +1,13 @@
1
+ export interface ProjectContext {
2
+ projectName: string;
3
+ description: string;
4
+ framework: string;
5
+ appType: string;
6
+ maturity: 'new' | 'existing';
7
+ hasDesignSystem: boolean;
8
+ hasGlyphDirection: boolean;
9
+ routes: string[];
10
+ inferredAt: string;
11
+ }
12
+ export declare function inferProjectContext(cwd: string, framework: string): Promise<ProjectContext>;
13
+ //# sourceMappingURL=project-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.d.ts","sourceRoot":"","sources":["../../src/inference/project-context.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,UAAU,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAyBjG"}
@@ -0,0 +1,153 @@
1
+ import path from 'node:path';
2
+ import fs from 'node:fs';
3
+ import fsExtra from 'fs-extra';
4
+ const { pathExists, readJson, readFile } = fsExtra;
5
+ export async function inferProjectContext(cwd, framework) {
6
+ const [pkgInfo, routes, gitDepth, componentCount, hasDesignSystem, hasGlyphDirection] = await Promise.all([
7
+ readPackageInfo(cwd),
8
+ scanRoutes(cwd),
9
+ getGitDepth(cwd),
10
+ countComponents(cwd),
11
+ checkDesignSystem(cwd),
12
+ checkGlyphDirection(cwd),
13
+ ]);
14
+ const appType = inferAppType(routes, pkgInfo.description);
15
+ const maturity = inferMaturity(gitDepth, componentCount, hasDesignSystem);
16
+ return {
17
+ projectName: pkgInfo.name,
18
+ description: pkgInfo.description,
19
+ framework,
20
+ appType,
21
+ maturity,
22
+ hasDesignSystem,
23
+ hasGlyphDirection,
24
+ routes,
25
+ inferredAt: new Date().toISOString(),
26
+ };
27
+ }
28
+ // ---------------------------------------------------------------------------
29
+ // Signal readers
30
+ // ---------------------------------------------------------------------------
31
+ async function readPackageInfo(cwd) {
32
+ const pkgPath = path.join(cwd, 'package.json');
33
+ if (!(await pathExists(pkgPath)))
34
+ return { name: path.basename(cwd), description: '' };
35
+ try {
36
+ const pkg = await readJson(pkgPath);
37
+ return {
38
+ name: pkg.name || path.basename(cwd),
39
+ description: pkg.description || '',
40
+ };
41
+ }
42
+ catch {
43
+ return { name: path.basename(cwd), description: '' };
44
+ }
45
+ }
46
+ async function scanRoutes(cwd) {
47
+ const routes = [];
48
+ // Next.js app router
49
+ const appDir = [path.join(cwd, 'app'), path.join(cwd, 'src', 'app')];
50
+ // Next.js pages router
51
+ const pagesDir = [path.join(cwd, 'pages'), path.join(cwd, 'src', 'pages')];
52
+ // Generic routes
53
+ const routesDir = [path.join(cwd, 'src', 'routes')];
54
+ for (const dir of [...appDir, ...pagesDir, ...routesDir]) {
55
+ if (await pathExists(dir)) {
56
+ try {
57
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
58
+ for (const entry of entries) {
59
+ if (entry.isDirectory() && !entry.name.startsWith('_') && !entry.name.startsWith('.')) {
60
+ routes.push(entry.name);
61
+ }
62
+ }
63
+ }
64
+ catch {
65
+ // non-fatal
66
+ }
67
+ }
68
+ }
69
+ return [...new Set(routes)];
70
+ }
71
+ async function getGitDepth(cwd) {
72
+ try {
73
+ const { execSync } = await import('child_process');
74
+ const output = execSync('git rev-list --count HEAD', { cwd, timeout: 5000, encoding: 'utf-8' });
75
+ return parseInt(output.trim(), 10) || 0;
76
+ }
77
+ catch {
78
+ return 0;
79
+ }
80
+ }
81
+ async function countComponents(cwd) {
82
+ const srcDir = path.join(cwd, 'src');
83
+ if (!(await pathExists(srcDir)))
84
+ return 0;
85
+ let count = 0;
86
+ function walk(dir) {
87
+ try {
88
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
89
+ for (const entry of entries) {
90
+ if (entry.isDirectory() && !entry.name.startsWith('.') && entry.name !== 'node_modules') {
91
+ walk(path.join(dir, entry.name));
92
+ }
93
+ else if (entry.isFile() && /\.(tsx|jsx)$/.test(entry.name)) {
94
+ count++;
95
+ }
96
+ }
97
+ }
98
+ catch {
99
+ // non-fatal
100
+ }
101
+ }
102
+ walk(srcDir);
103
+ // Also check app/ for Next.js
104
+ const appDir = path.join(cwd, 'app');
105
+ if (await pathExists(appDir))
106
+ walk(appDir);
107
+ return count;
108
+ }
109
+ async function checkDesignSystem(cwd) {
110
+ const indicators = [
111
+ 'tailwind.config.js', 'tailwind.config.ts', 'tailwind.config.mjs', 'tailwind.config.cjs',
112
+ 'tokens.json', 'theme.ts', 'theme.js',
113
+ ];
114
+ for (const file of indicators) {
115
+ if (await pathExists(path.join(cwd, file)))
116
+ return true;
117
+ if (await pathExists(path.join(cwd, 'src', file)))
118
+ return true;
119
+ }
120
+ return false;
121
+ }
122
+ async function checkGlyphDirection(cwd) {
123
+ return ((await pathExists(path.join(cwd, 'design.md'))) ||
124
+ (await pathExists(path.join(cwd, 'redesign.md'))));
125
+ }
126
+ // ---------------------------------------------------------------------------
127
+ // Inference logic
128
+ // ---------------------------------------------------------------------------
129
+ function inferAppType(routes, description) {
130
+ const combined = [...routes, description.toLowerCase()].join(' ');
131
+ if (/dashboard|analytics|admin|metrics/.test(combined))
132
+ return 'dashboard';
133
+ if (/shop|store|cart|product|checkout|e-?commerce/.test(combined))
134
+ return 'e-commerce';
135
+ if (/blog|post|article|content/.test(combined))
136
+ return 'content';
137
+ if (/docs|documentation|guide/.test(combined))
138
+ return 'documentation';
139
+ if (/chat|message|conversation/.test(combined))
140
+ return 'messaging';
141
+ if (/landing|home|pricing|features/.test(combined))
142
+ return 'marketing';
143
+ if (/settings|profile|account|billing|team/.test(combined))
144
+ return 'saas';
145
+ return 'web-app';
146
+ }
147
+ function inferMaturity(gitDepth, componentCount, hasDesignSystem) {
148
+ // New: very few commits, few components, no custom tokens
149
+ if (gitDepth < 10 && componentCount < 5 && !hasDesignSystem)
150
+ return 'new';
151
+ return 'existing';
152
+ }
153
+ //# sourceMappingURL=project-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-context.js","sourceRoot":"","sources":["../../src/inference/project-context.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glyph-ai",
3
- "version": "0.3.66",
3
+ "version": "0.4.0",
4
4
  "license": "FSL-1.1-Apache-2.0",
5
5
  "type": "module",
6
6
  "bin": {