@forgespace/branding-mcp 0.7.0 → 0.8.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.
Files changed (134) hide show
  1. package/README.md +41 -5
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +12 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/branding-core/ai/claude-interpreter.d.ts.map +1 -1
  7. package/dist/lib/branding-core/ai/claude-interpreter.js +8 -19
  8. package/dist/lib/branding-core/ai/claude-interpreter.js.map +1 -1
  9. package/dist/lib/branding-core/exporters/style-dictionary.d.ts +19 -0
  10. package/dist/lib/branding-core/exporters/style-dictionary.d.ts.map +1 -0
  11. package/dist/lib/branding-core/exporters/style-dictionary.js +85 -0
  12. package/dist/lib/branding-core/exporters/style-dictionary.js.map +1 -0
  13. package/dist/lib/branding-core/generators/brand-voice.d.ts +3 -0
  14. package/dist/lib/branding-core/generators/brand-voice.d.ts.map +1 -0
  15. package/dist/lib/branding-core/generators/brand-voice.js +338 -0
  16. package/dist/lib/branding-core/generators/brand-voice.js.map +1 -0
  17. package/dist/lib/branding-core/index.d.ts +2 -0
  18. package/dist/lib/branding-core/index.d.ts.map +1 -1
  19. package/dist/lib/branding-core/index.js +2 -0
  20. package/dist/lib/branding-core/index.js.map +1 -1
  21. package/dist/lib/branding-core/validators/token-schema.d.ts +1 -1
  22. package/dist/lib/branding-core/validators/token-schema.d.ts.map +1 -1
  23. package/dist/lib/branding-core/validators/token-schema.js +9 -1
  24. package/dist/lib/branding-core/validators/token-schema.js.map +1 -1
  25. package/dist/lib/config.d.ts +3 -0
  26. package/dist/lib/config.d.ts.map +1 -1
  27. package/dist/lib/config.js +5 -0
  28. package/dist/lib/config.js.map +1 -1
  29. package/dist/lib/http-server.d.ts +3 -0
  30. package/dist/lib/http-server.d.ts.map +1 -0
  31. package/dist/lib/http-server.js +93 -0
  32. package/dist/lib/http-server.js.map +1 -0
  33. package/dist/lib/types.d.ts +27 -1
  34. package/dist/lib/types.d.ts.map +1 -1
  35. package/dist/tools/export-design-tokens.d.ts.map +1 -1
  36. package/dist/tools/export-design-tokens.js +2 -1
  37. package/dist/tools/export-design-tokens.js.map +1 -1
  38. package/dist/tools/generate-brand-voice.d.ts +3 -0
  39. package/dist/tools/generate-brand-voice.d.ts.map +1 -0
  40. package/dist/tools/generate-brand-voice.js +51 -0
  41. package/dist/tools/generate-brand-voice.js.map +1 -0
  42. package/dist/tools/generate-design-system.d.ts.map +1 -1
  43. package/dist/tools/generate-design-system.js +2 -1
  44. package/dist/tools/generate-design-system.js.map +1 -1
  45. package/package.json +21 -3
  46. package/server.json +41 -0
  47. package/.env.example +0 -3
  48. package/.github/CODEOWNERS +0 -1
  49. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  50. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  51. package/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  52. package/.github/dependabot.yml +0 -17
  53. package/.github/workflows/ci.yml +0 -55
  54. package/.github/workflows/codeql.yml +0 -47
  55. package/.github/workflows/release-automation.yml +0 -56
  56. package/.github/workflows/secret-scan.yml +0 -13
  57. package/.github/workflows/security-scan.yml +0 -37
  58. package/.github/workflows/semgrep.yml +0 -12
  59. package/.github/workflows/trivy.yml +0 -17
  60. package/.gitleaks.toml +0 -14
  61. package/.husky/commit-msg +0 -1
  62. package/.nvmrc +0 -1
  63. package/.prettierrc.json +0 -10
  64. package/CHANGELOG.md +0 -114
  65. package/CONTRIBUTING.md +0 -203
  66. package/catalog-info.yaml +0 -16
  67. package/commitlint.config.cjs +0 -24
  68. package/data/README.md +0 -13
  69. package/docs/API.md +0 -110
  70. package/docs/DATA_SOURCES.md +0 -69
  71. package/docs/INTEGRATION.md +0 -58
  72. package/eslint.config.js +0 -52
  73. package/jest.config.js +0 -40
  74. package/knip.json +0 -10
  75. package/src/__tests__/integration/brand-generation.test.ts +0 -84
  76. package/src/__tests__/integration/mcp-server.test.ts +0 -18
  77. package/src/__tests__/unit/ai-interpreter.test.ts +0 -172
  78. package/src/__tests__/unit/border-system.test.ts +0 -77
  79. package/src/__tests__/unit/color-palette.test.ts +0 -161
  80. package/src/__tests__/unit/contrast-checker.test.ts +0 -124
  81. package/src/__tests__/unit/design-system-tool.test.ts +0 -176
  82. package/src/__tests__/unit/design-tokens.test.ts +0 -184
  83. package/src/__tests__/unit/favicon-generator.test.ts +0 -80
  84. package/src/__tests__/unit/gradient-system.test.ts +0 -122
  85. package/src/__tests__/unit/logo-generator.test.ts +0 -146
  86. package/src/__tests__/unit/motion-system.test.ts +0 -91
  87. package/src/__tests__/unit/og-image-generator.test.ts +0 -115
  88. package/src/__tests__/unit/shadow-system.test.ts +0 -63
  89. package/src/__tests__/unit/spacing-scale.test.ts +0 -60
  90. package/src/__tests__/unit/typography-system.test.ts +0 -71
  91. package/src/index.ts +0 -76
  92. package/src/lib/branding-core/ai/brand-interpreter.ts +0 -30
  93. package/src/lib/branding-core/ai/claude-interpreter.ts +0 -76
  94. package/src/lib/branding-core/ai/intent-applier.ts +0 -59
  95. package/src/lib/branding-core/ai/keyword-interpreter.ts +0 -95
  96. package/src/lib/branding-core/ai/prompts.ts +0 -93
  97. package/src/lib/branding-core/ai/types.ts +0 -36
  98. package/src/lib/branding-core/documents/html-generator.ts +0 -32
  99. package/src/lib/branding-core/documents/pdf-generator.ts +0 -21
  100. package/src/lib/branding-core/exporters/css-variables.ts +0 -71
  101. package/src/lib/branding-core/exporters/design-tokens.ts +0 -86
  102. package/src/lib/branding-core/exporters/figma-tokens.ts +0 -87
  103. package/src/lib/branding-core/exporters/react-theme.ts +0 -69
  104. package/src/lib/branding-core/exporters/sass-variables.ts +0 -74
  105. package/src/lib/branding-core/exporters/tailwind-preset.ts +0 -67
  106. package/src/lib/branding-core/generators/border-system.ts +0 -41
  107. package/src/lib/branding-core/generators/color-palette.ts +0 -147
  108. package/src/lib/branding-core/generators/favicon-generator.ts +0 -33
  109. package/src/lib/branding-core/generators/gradient-system.ts +0 -120
  110. package/src/lib/branding-core/generators/logo-generator.ts +0 -152
  111. package/src/lib/branding-core/generators/motion-system.ts +0 -98
  112. package/src/lib/branding-core/generators/og-image-generator.ts +0 -97
  113. package/src/lib/branding-core/generators/shadow-system.ts +0 -66
  114. package/src/lib/branding-core/generators/spacing-scale.ts +0 -29
  115. package/src/lib/branding-core/generators/typography-system.ts +0 -128
  116. package/src/lib/branding-core/index.ts +0 -28
  117. package/src/lib/branding-core/validators/brand-consistency.ts +0 -79
  118. package/src/lib/branding-core/validators/contrast-checker.ts +0 -37
  119. package/src/lib/branding-core/validators/token-schema.ts +0 -50
  120. package/src/lib/config.ts +0 -13
  121. package/src/lib/logger.ts +0 -12
  122. package/src/lib/types.ts +0 -236
  123. package/src/resources/brand-knowledge.ts +0 -60
  124. package/src/resources/brand-templates.ts +0 -385
  125. package/src/tools/create-brand-guidelines.ts +0 -94
  126. package/src/tools/export-design-tokens.ts +0 -52
  127. package/src/tools/generate-brand-assets.ts +0 -48
  128. package/src/tools/generate-brand-identity.ts +0 -115
  129. package/src/tools/generate-color-palette.ts +0 -43
  130. package/src/tools/generate-design-system.ts +0 -163
  131. package/src/tools/generate-typography-system.ts +0 -42
  132. package/src/tools/refine-brand-element.ts +0 -65
  133. package/src/tools/validate-brand-consistency.ts +0 -32
  134. package/tsconfig.json +0 -21
package/README.md CHANGED
@@ -7,6 +7,7 @@
7
7
  </div>
8
8
 
9
9
  [![CI](https://github.com/Forge-Space/branding-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Forge-Space/branding-mcp/actions/workflows/ci.yml)
10
+ [![npm version](https://img.shields.io/npm/v/@forgespace/branding-mcp)](https://www.npmjs.com/package/@forgespace/branding-mcp)
10
11
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
12
 
12
13
  Generate complete design systems — colors, typography, spacing, shadows, borders, motion tokens, gradients, multi-variant logos, favicons, and OG images with multi-format export. 9 MCP tools, zero API dependencies, algorithmic-first generation.
@@ -34,19 +35,35 @@ npm install
34
35
  npm run build
35
36
  ```
36
37
 
37
- ### As MCP Server (stdio)
38
+ ### Run from npm (stdio)
39
+
40
+ ```bash
41
+ npx -y @forgespace/branding-mcp@latest
42
+ ```
43
+
44
+ ### Install globally
45
+
46
+ ```bash
47
+ npm install -g @forgespace/branding-mcp
48
+ forgespace-branding-mcp
49
+ ```
50
+
51
+ ### IDE / client config
38
52
 
39
53
  ```json
40
54
  {
41
55
  "mcpServers": {
42
- "branding": {
43
- "command": "node",
44
- "args": ["path/to/branding-mcp/dist/index.js"]
56
+ "forgespace-branding": {
57
+ "command": "npx",
58
+ "args": ["-y", "@forgespace/branding-mcp@latest"]
45
59
  }
46
60
  }
47
61
  }
48
62
  ```
49
63
 
64
+ Set `ANTHROPIC_API_KEY` when you want AI-assisted refinement. The server also
65
+ works in algorithmic-only mode without external APIs.
66
+
50
67
  ### MCP Tools
51
68
 
52
69
  | Tool | Description |
@@ -78,6 +95,19 @@ npm run test:coverage # Coverage report
78
95
  npm run build # Build TypeScript
79
96
  ```
80
97
 
98
+ ## Distribution
99
+
100
+ - **npm** — installable as
101
+ [`@forgespace/branding-mcp`](https://www.npmjs.com/package/@forgespace/branding-mcp)
102
+ - **MCP Registry metadata** — `server.json` and `mcpName` are included for
103
+ registry submission
104
+ - **Tag release automation** — pushing `v*` runs npm publish with provenance,
105
+ then publishes the same version to the MCP Registry via GitHub OIDC
106
+ - **Weekly registry ops** — `.github/workflows/mcp-registry-status.yml` refreshes
107
+ one issue with npm and MCP Registry drift, visibility, and next actions
108
+ - **GitHub** —
109
+ [Forge-Space/branding-mcp](https://github.com/Forge-Space/branding-mcp)
110
+
81
111
  ## Architecture
82
112
 
83
113
  ```
@@ -101,10 +131,16 @@ src/
101
131
  Part of the [Forge Space](https://github.com/Forge-Space) ecosystem:
102
132
 
103
133
  - **mcp-gateway** — Register as MCP server (port 8033)
104
- - **uiforge-mcp** — Consumes brand tokens via `brandId` parameter
134
+ - **ui-mcp** — Consumes brand tokens via `brandId` parameter
105
135
  - **uiforge-webapp** — Brand management UI at `/branding/*`
106
136
  - **forge-patterns** — Shared configs and conventions
107
137
 
138
+ ## Community
139
+
140
+ - [Documentation](https://docs.forgespace.co/docs)
141
+ - [GitHub Discussions](https://github.com/orgs/Forge-Space/discussions)
142
+ - [Issue tracker](https://github.com/Forge-Space/branding-mcp/issues)
143
+
108
144
  ## License
109
145
 
110
146
  MIT
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export type { BrandIdentity, ColorPalette, TypographySystem, SpacingScale, ShadowSystem, BorderSystem, MotionSystem, GradientSystem, LogoOutput, BrandStyle, ColorHarmony, ExportFormat, } from './lib/types.js';
2
+ export type { BrandIdentity, ColorPalette, TypographySystem, SpacingScale, ShadowSystem, BorderSystem, MotionSystem, GradientSystem, LogoOutput, BrandStyle, ColorHarmony, ExportFormat, BrandVoiceGuidelines, BrandVoiceTone, BrandVoiceAudience, } from './lib/types.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,YAAY,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { loadConfig } from './lib/config.js';
5
5
  import { logger } from './lib/logger.js';
6
+ import { startHttpServer } from './lib/http-server.js';
6
7
  import { registerGenerateBrandIdentity } from './tools/generate-brand-identity.js';
7
8
  import { registerGenerateColorPalette } from './tools/generate-color-palette.js';
8
9
  import { registerGenerateTypographySystem } from './tools/generate-typography-system.js';
@@ -12,6 +13,7 @@ import { registerValidateBrandConsistency } from './tools/validate-brand-consist
12
13
  import { registerRefineBrandElement } from './tools/refine-brand-element.js';
13
14
  import { registerGenerateBrandAssets } from './tools/generate-brand-assets.js';
14
15
  import { registerGenerateDesignSystem } from './tools/generate-design-system.js';
16
+ import { registerGenerateBrandVoice } from './tools/generate-brand-voice.js';
15
17
  import { registerBrandTemplates } from './resources/brand-templates.js';
16
18
  import { registerBrandKnowledge } from './resources/brand-knowledge.js';
17
19
  async function main() {
@@ -19,7 +21,7 @@ async function main() {
19
21
  logger.info({ env: config.nodeEnv }, 'Starting branding-mcp server');
20
22
  const server = new McpServer({
21
23
  name: '@forgespace/branding-mcp',
22
- version: '0.1.0',
24
+ version: '0.8.0',
23
25
  });
24
26
  registerGenerateBrandIdentity(server);
25
27
  registerGenerateColorPalette(server);
@@ -30,11 +32,17 @@ async function main() {
30
32
  registerRefineBrandElement(server);
31
33
  registerGenerateBrandAssets(server);
32
34
  registerGenerateDesignSystem(server);
35
+ registerGenerateBrandVoice(server);
33
36
  registerBrandTemplates(server);
34
37
  registerBrandKnowledge(server);
35
- const transport = new StdioServerTransport();
36
- await server.connect(transport);
37
- logger.info('Branding MCP server connected via stdio');
38
+ if (config.transport === 'http') {
39
+ await startHttpServer(server, config.port);
40
+ }
41
+ else {
42
+ const transport = new StdioServerTransport();
43
+ await server.connect(transport);
44
+ logger.info('Branding MCP server connected via stdio');
45
+ }
38
46
  }
39
47
  main().catch((error) => {
40
48
  logger.fatal(error, 'Failed to start branding-mcp server');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,8BAA8B,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACzC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,gCAAgC,CAAC,MAAM,CAAC,CAAC;IACzC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAErC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC/B,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC;IAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-interpreter.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/ai/claude-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsClE,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,EAC5C,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAYtB"}
1
+ {"version":3,"file":"claude-interpreter.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/ai/claude-interpreter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAuBlE,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,QAAQ,GAAG,YAAY,GAAG,SAAS,EAC5C,YAAY,EAAE,aAAa,EAC3B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAYtB"}
@@ -1,26 +1,15 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
1
2
  import { buildRefinementPrompt, buildGenerationPrompt } from './prompts.js';
2
3
  import { logger } from '../../logger.js';
3
4
  async function callClaude(prompt, options) {
4
- const response = await fetch('https://api.anthropic.com/v1/messages', {
5
- method: 'POST',
6
- headers: {
7
- 'Content-Type': 'application/json',
8
- 'x-api-key': options.anthropicApiKey,
9
- 'anthropic-version': '2023-06-01',
10
- },
11
- body: JSON.stringify({
12
- model: options.model,
13
- max_tokens: options.maxTokens,
14
- messages: [{ role: 'user', content: prompt }],
15
- }),
5
+ const client = new Anthropic({ apiKey: options.anthropicApiKey });
6
+ const message = await client.messages.create({
7
+ model: options.model,
8
+ max_tokens: options.maxTokens,
9
+ messages: [{ role: 'user', content: prompt }],
16
10
  });
17
- if (!response.ok) {
18
- const body = await response.text();
19
- throw new Error(`Anthropic API error ${response.status}: ${body}`);
20
- }
21
- const data = (await response.json());
22
- const textBlock = data.content.find((b) => b.type === 'text');
23
- if (!textBlock)
11
+ const textBlock = message.content.find((b) => b.type === 'text');
12
+ if (!textBlock || textBlock.type !== 'text')
24
13
  throw new Error('No text content in Anthropic response');
25
14
  return textBlock.text;
26
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-interpreter.js","sourceRoot":"","sources":["../../../../src/lib/branding-core/ai/claude-interpreter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-interpreter.js","sourceRoot":"","sources":["../../../../src/lib/branding-core/ai/claude-interpreter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,KAAK,UAAU,UAAU,CAAC,MAAc,EAAE,OAAqC;IAC7E,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC9C,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACjE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM;QACzC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,OAAO,SAAS,CAAC,IAAI,CAAC;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAgB,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,OAA4C,EAC5C,YAA2B,EAC3B,OAA2B;IAE3B,MAAM,IAAI,GAAiC;QACzC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,0BAA0B;QAClD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG;KACpC,CAAC;IAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAEjF,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAiB,EACjB,QAAgB,EAChB,WAAmB,EACnB,OAA2B;IAE3B,MAAM,IAAI,GAAiC;QACzC,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,EAAE;QAC9C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,0BAA0B;QAClD,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,GAAG;KACpC,CAAC;IAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,0CAA0C,CAAC,CAAC;IAE1F,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { BrandIdentity } from '../../types.js';
2
+ interface StyleDictionaryValue {
3
+ value: string | number;
4
+ type?: string;
5
+ comment?: string;
6
+ }
7
+ type StyleDictionaryGroup = Record<string, StyleDictionaryValue | Record<string, StyleDictionaryValue>>;
8
+ interface StyleDictionaryOutput {
9
+ color: Record<string, StyleDictionaryGroup | StyleDictionaryValue>;
10
+ typography: Record<string, StyleDictionaryGroup | StyleDictionaryValue>;
11
+ spacing: Record<string, StyleDictionaryValue>;
12
+ shadow?: Record<string, StyleDictionaryValue>;
13
+ border?: Record<string, StyleDictionaryValue>;
14
+ motion?: Record<string, StyleDictionaryValue>;
15
+ gradient?: Record<string, StyleDictionaryValue>;
16
+ }
17
+ export declare function exportStyleDictionary(brand: BrandIdentity): StyleDictionaryOutput;
18
+ export {};
19
+ //# sourceMappingURL=style-dictionary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-dictionary.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/exporters/style-dictionary.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,oBAAoB,GAAG,MAAM,CAChC,MAAM,EACN,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAC5D,CAAC;AAEF,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAC,CAAC;IACnE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAC,CAAC;IACxE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CACjD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,qBAAqB,CA8FjF"}
@@ -0,0 +1,85 @@
1
+ export function exportStyleDictionary(brand) {
2
+ const { colors, typography, spacing } = brand;
3
+ const color = {
4
+ primary: { value: colors.primary.hex, type: 'color', comment: colors.primary.usage },
5
+ secondary: { value: colors.secondary.hex, type: 'color', comment: colors.secondary.usage },
6
+ accent: { value: colors.accent.hex, type: 'color', comment: colors.accent.usage },
7
+ semantic: {
8
+ success: {
9
+ value: colors.semantic.success.hex,
10
+ type: 'color',
11
+ comment: colors.semantic.success.usage,
12
+ },
13
+ warning: {
14
+ value: colors.semantic.warning.hex,
15
+ type: 'color',
16
+ comment: colors.semantic.warning.usage,
17
+ },
18
+ error: {
19
+ value: colors.semantic.error.hex,
20
+ type: 'color',
21
+ comment: colors.semantic.error.usage,
22
+ },
23
+ info: { value: colors.semantic.info.hex, type: 'color', comment: colors.semantic.info.usage },
24
+ },
25
+ };
26
+ for (const neutral of colors.neutral) {
27
+ color[neutral.name] = { value: neutral.hex, type: 'color', comment: neutral.usage };
28
+ }
29
+ const typo = {
30
+ fontFamily: {
31
+ heading: { value: typography.headingFont, type: 'fontFamily' },
32
+ body: { value: typography.bodyFont, type: 'fontFamily' },
33
+ mono: { value: typography.monoFont, type: 'fontFamily' },
34
+ },
35
+ };
36
+ for (const step of typography.steps) {
37
+ typo[step.name] = {
38
+ fontSize: { value: step.size, type: 'dimension' },
39
+ lineHeight: { value: step.lineHeight, type: 'number' },
40
+ letterSpacing: { value: step.letterSpacing, type: 'dimension' },
41
+ fontWeight: { value: step.weight, type: 'fontWeight' },
42
+ };
43
+ }
44
+ const spacingTokens = {};
45
+ for (const [key, value] of Object.entries(spacing.values)) {
46
+ spacingTokens[key] = { value, type: 'dimension' };
47
+ }
48
+ const result = {
49
+ color,
50
+ typography: typo,
51
+ spacing: spacingTokens,
52
+ };
53
+ if (brand.shadows) {
54
+ result.shadow = {};
55
+ for (const [name, level] of Object.entries(brand.shadows.levels)) {
56
+ result.shadow[name] = { value: level.cssValue, type: 'shadow' };
57
+ }
58
+ }
59
+ if (brand.borders) {
60
+ result.border = {};
61
+ for (const [name, value] of Object.entries(brand.borders.radii)) {
62
+ result.border[`radius-${name}`] = { value, type: 'borderRadius' };
63
+ }
64
+ for (const [name, value] of Object.entries(brand.borders.widths)) {
65
+ result.border[`width-${name}`] = { value, type: 'borderWidth' };
66
+ }
67
+ }
68
+ if (brand.motion) {
69
+ result.motion = {};
70
+ for (const [name, value] of Object.entries(brand.motion.durations)) {
71
+ result.motion[`duration-${name}`] = { value, type: 'duration' };
72
+ }
73
+ for (const [name, value] of Object.entries(brand.motion.easings)) {
74
+ result.motion[`easing-${name}`] = { value, type: 'cubicBezier' };
75
+ }
76
+ }
77
+ if (brand.gradients) {
78
+ result.gradient = {};
79
+ for (const [name, gradient] of Object.entries(brand.gradients.presets)) {
80
+ result.gradient[name] = { value: gradient.cssValue, type: 'gradient' };
81
+ }
82
+ }
83
+ return result;
84
+ }
85
+ //# sourceMappingURL=style-dictionary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-dictionary.js","sourceRoot":"","sources":["../../../../src/lib/branding-core/exporters/style-dictionary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BrandIdentity, BrandVoiceGuidelines, BrandVoiceTone, BrandVoiceAudience } from '../../types.js';
2
+ export declare function generateBrandVoice(brand: BrandIdentity, overrideTone?: BrandVoiceTone, overrideAudience?: BrandVoiceAudience): BrandVoiceGuidelines;
3
+ //# sourceMappingURL=brand-voice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-voice.d.ts","sourceRoot":"","sources":["../../../../src/lib/branding-core/generators/brand-voice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAuVxB,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,YAAY,CAAC,EAAE,cAAc,EAC7B,gBAAgB,CAAC,EAAE,kBAAkB,GACpC,oBAAoB,CAkBtB"}