@brandsystem/mcp 0.3.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 (223) hide show
  1. package/README.md +515 -0
  2. package/bin/brandsystem-mcp.mjs +2 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +20 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/brand-dir.d.ts +56 -0
  8. package/dist/lib/brand-dir.d.ts.map +1 -0
  9. package/dist/lib/brand-dir.js +270 -0
  10. package/dist/lib/brand-dir.js.map +1 -0
  11. package/dist/lib/color-namer.d.ts +28 -0
  12. package/dist/lib/color-namer.d.ts.map +1 -0
  13. package/dist/lib/color-namer.js +155 -0
  14. package/dist/lib/color-namer.js.map +1 -0
  15. package/dist/lib/confidence.d.ts +19 -0
  16. package/dist/lib/confidence.d.ts.map +1 -0
  17. package/dist/lib/confidence.js +66 -0
  18. package/dist/lib/confidence.js.map +1 -0
  19. package/dist/lib/content-scorer.d.ts +38 -0
  20. package/dist/lib/content-scorer.d.ts.map +1 -0
  21. package/dist/lib/content-scorer.js +571 -0
  22. package/dist/lib/content-scorer.js.map +1 -0
  23. package/dist/lib/css-parser.d.ts +45 -0
  24. package/dist/lib/css-parser.d.ts.map +1 -0
  25. package/dist/lib/css-parser.js +330 -0
  26. package/dist/lib/css-parser.js.map +1 -0
  27. package/dist/lib/dtcg-compiler.d.ts +7 -0
  28. package/dist/lib/dtcg-compiler.d.ts.map +1 -0
  29. package/dist/lib/dtcg-compiler.js +89 -0
  30. package/dist/lib/dtcg-compiler.js.map +1 -0
  31. package/dist/lib/interaction-policy-compiler.d.ts +40 -0
  32. package/dist/lib/interaction-policy-compiler.d.ts.map +1 -0
  33. package/dist/lib/interaction-policy-compiler.js +60 -0
  34. package/dist/lib/interaction-policy-compiler.js.map +1 -0
  35. package/dist/lib/logo-extractor.d.ts +49 -0
  36. package/dist/lib/logo-extractor.d.ts.map +1 -0
  37. package/dist/lib/logo-extractor.js +384 -0
  38. package/dist/lib/logo-extractor.js.map +1 -0
  39. package/dist/lib/report-html.d.ts +20 -0
  40. package/dist/lib/report-html.d.ts.map +1 -0
  41. package/dist/lib/report-html.js +938 -0
  42. package/dist/lib/report-html.js.map +1 -0
  43. package/dist/lib/response.d.ts +20 -0
  44. package/dist/lib/response.d.ts.map +1 -0
  45. package/dist/lib/response.js +54 -0
  46. package/dist/lib/response.js.map +1 -0
  47. package/dist/lib/runtime-compiler.d.ts +60 -0
  48. package/dist/lib/runtime-compiler.d.ts.map +1 -0
  49. package/dist/lib/runtime-compiler.js +96 -0
  50. package/dist/lib/runtime-compiler.js.map +1 -0
  51. package/dist/lib/svg-resolver.d.ts +21 -0
  52. package/dist/lib/svg-resolver.d.ts.map +1 -0
  53. package/dist/lib/svg-resolver.js +115 -0
  54. package/dist/lib/svg-resolver.js.map +1 -0
  55. package/dist/lib/url-validator.d.ts +11 -0
  56. package/dist/lib/url-validator.d.ts.map +1 -0
  57. package/dist/lib/url-validator.js +93 -0
  58. package/dist/lib/url-validator.js.map +1 -0
  59. package/dist/lib/version.d.ts +2 -0
  60. package/dist/lib/version.d.ts.map +1 -0
  61. package/dist/lib/version.js +19 -0
  62. package/dist/lib/version.js.map +1 -0
  63. package/dist/lib/vim-generator.d.ts +13 -0
  64. package/dist/lib/vim-generator.d.ts.map +1 -0
  65. package/dist/lib/vim-generator.js +718 -0
  66. package/dist/lib/vim-generator.js.map +1 -0
  67. package/dist/resources/brand-resources.d.ts +4 -0
  68. package/dist/resources/brand-resources.d.ts.map +1 -0
  69. package/dist/resources/brand-resources.js +34 -0
  70. package/dist/resources/brand-resources.js.map +1 -0
  71. package/dist/schemas/brand-config.d.ts +28 -0
  72. package/dist/schemas/brand-config.d.ts.map +1 -0
  73. package/dist/schemas/brand-config.js +11 -0
  74. package/dist/schemas/brand-config.js.map +1 -0
  75. package/dist/schemas/brand-runtime.d.ts +251 -0
  76. package/dist/schemas/brand-runtime.d.ts.map +1 -0
  77. package/dist/schemas/brand-runtime.js +54 -0
  78. package/dist/schemas/brand-runtime.js.map +1 -0
  79. package/dist/schemas/core-identity.d.ts +302 -0
  80. package/dist/schemas/core-identity.d.ts.map +1 -0
  81. package/dist/schemas/core-identity.js +51 -0
  82. package/dist/schemas/core-identity.js.map +1 -0
  83. package/dist/schemas/index.d.ts +11 -0
  84. package/dist/schemas/index.d.ts.map +1 -0
  85. package/dist/schemas/index.js +11 -0
  86. package/dist/schemas/index.js.map +1 -0
  87. package/dist/schemas/interaction-policy.d.ts +150 -0
  88. package/dist/schemas/interaction-policy.d.ts.map +1 -0
  89. package/dist/schemas/interaction-policy.js +34 -0
  90. package/dist/schemas/interaction-policy.js.map +1 -0
  91. package/dist/schemas/messaging.d.ts +776 -0
  92. package/dist/schemas/messaging.d.ts.map +1 -0
  93. package/dist/schemas/messaging.js +68 -0
  94. package/dist/schemas/messaging.js.map +1 -0
  95. package/dist/schemas/needs-clarification.d.ts +62 -0
  96. package/dist/schemas/needs-clarification.d.ts.map +1 -0
  97. package/dist/schemas/needs-clarification.js +13 -0
  98. package/dist/schemas/needs-clarification.js.map +1 -0
  99. package/dist/schemas/strategy.d.ts +537 -0
  100. package/dist/schemas/strategy.d.ts.map +1 -0
  101. package/dist/schemas/strategy.js +71 -0
  102. package/dist/schemas/strategy.js.map +1 -0
  103. package/dist/schemas/tokens.d.ts +35 -0
  104. package/dist/schemas/tokens.d.ts.map +1 -0
  105. package/dist/schemas/tokens.js +15 -0
  106. package/dist/schemas/tokens.js.map +1 -0
  107. package/dist/schemas/visual-identity.d.ts +224 -0
  108. package/dist/schemas/visual-identity.d.ts.map +1 -0
  109. package/dist/schemas/visual-identity.js +42 -0
  110. package/dist/schemas/visual-identity.js.map +1 -0
  111. package/dist/server.d.ts +3 -0
  112. package/dist/server.d.ts.map +1 -0
  113. package/dist/server.js +75 -0
  114. package/dist/server.js.map +1 -0
  115. package/dist/tools/brand-audit-content.d.ts +3 -0
  116. package/dist/tools/brand-audit-content.d.ts.map +1 -0
  117. package/dist/tools/brand-audit-content.js +116 -0
  118. package/dist/tools/brand-audit-content.js.map +1 -0
  119. package/dist/tools/brand-audit-drift.d.ts +3 -0
  120. package/dist/tools/brand-audit-drift.d.ts.map +1 -0
  121. package/dist/tools/brand-audit-drift.js +301 -0
  122. package/dist/tools/brand-audit-drift.js.map +1 -0
  123. package/dist/tools/brand-audit.d.ts +3 -0
  124. package/dist/tools/brand-audit.d.ts.map +1 -0
  125. package/dist/tools/brand-audit.js +129 -0
  126. package/dist/tools/brand-audit.js.map +1 -0
  127. package/dist/tools/brand-build-journey.d.ts +3 -0
  128. package/dist/tools/brand-build-journey.d.ts.map +1 -0
  129. package/dist/tools/brand-build-journey.js +312 -0
  130. package/dist/tools/brand-build-journey.js.map +1 -0
  131. package/dist/tools/brand-build-matrix.d.ts +3 -0
  132. package/dist/tools/brand-build-matrix.d.ts.map +1 -0
  133. package/dist/tools/brand-build-matrix.js +525 -0
  134. package/dist/tools/brand-build-matrix.js.map +1 -0
  135. package/dist/tools/brand-build-personas.d.ts +3 -0
  136. package/dist/tools/brand-build-personas.d.ts.map +1 -0
  137. package/dist/tools/brand-build-personas.js +436 -0
  138. package/dist/tools/brand-build-personas.js.map +1 -0
  139. package/dist/tools/brand-build-themes.d.ts +3 -0
  140. package/dist/tools/brand-build-themes.d.ts.map +1 -0
  141. package/dist/tools/brand-build-themes.js +476 -0
  142. package/dist/tools/brand-build-themes.js.map +1 -0
  143. package/dist/tools/brand-check-compliance.d.ts +3 -0
  144. package/dist/tools/brand-check-compliance.d.ts.map +1 -0
  145. package/dist/tools/brand-check-compliance.js +243 -0
  146. package/dist/tools/brand-check-compliance.js.map +1 -0
  147. package/dist/tools/brand-clarify.d.ts +21 -0
  148. package/dist/tools/brand-clarify.d.ts.map +1 -0
  149. package/dist/tools/brand-clarify.js +497 -0
  150. package/dist/tools/brand-clarify.js.map +1 -0
  151. package/dist/tools/brand-compile-messaging.d.ts +3 -0
  152. package/dist/tools/brand-compile-messaging.d.ts.map +1 -0
  153. package/dist/tools/brand-compile-messaging.js +759 -0
  154. package/dist/tools/brand-compile-messaging.js.map +1 -0
  155. package/dist/tools/brand-compile.d.ts +3 -0
  156. package/dist/tools/brand-compile.d.ts.map +1 -0
  157. package/dist/tools/brand-compile.js +182 -0
  158. package/dist/tools/brand-compile.js.map +1 -0
  159. package/dist/tools/brand-deepen-identity.d.ts +3 -0
  160. package/dist/tools/brand-deepen-identity.d.ts.map +1 -0
  161. package/dist/tools/brand-deepen-identity.js +483 -0
  162. package/dist/tools/brand-deepen-identity.js.map +1 -0
  163. package/dist/tools/brand-export.d.ts +17 -0
  164. package/dist/tools/brand-export.d.ts.map +1 -0
  165. package/dist/tools/brand-export.js +730 -0
  166. package/dist/tools/brand-export.js.map +1 -0
  167. package/dist/tools/brand-extract-figma.d.ts +3 -0
  168. package/dist/tools/brand-extract-figma.d.ts.map +1 -0
  169. package/dist/tools/brand-extract-figma.js +174 -0
  170. package/dist/tools/brand-extract-figma.js.map +1 -0
  171. package/dist/tools/brand-extract-messaging.d.ts +3 -0
  172. package/dist/tools/brand-extract-messaging.d.ts.map +1 -0
  173. package/dist/tools/brand-extract-messaging.js +620 -0
  174. package/dist/tools/brand-extract-messaging.js.map +1 -0
  175. package/dist/tools/brand-extract-web.d.ts +3 -0
  176. package/dist/tools/brand-extract-web.d.ts.map +1 -0
  177. package/dist/tools/brand-extract-web.js +477 -0
  178. package/dist/tools/brand-extract-web.js.map +1 -0
  179. package/dist/tools/brand-feedback.d.ts +3 -0
  180. package/dist/tools/brand-feedback.d.ts.map +1 -0
  181. package/dist/tools/brand-feedback.js +366 -0
  182. package/dist/tools/brand-feedback.js.map +1 -0
  183. package/dist/tools/brand-ingest-assets.d.ts +3 -0
  184. package/dist/tools/brand-ingest-assets.d.ts.map +1 -0
  185. package/dist/tools/brand-ingest-assets.js +233 -0
  186. package/dist/tools/brand-ingest-assets.js.map +1 -0
  187. package/dist/tools/brand-init.d.ts +3 -0
  188. package/dist/tools/brand-init.d.ts.map +1 -0
  189. package/dist/tools/brand-init.js +66 -0
  190. package/dist/tools/brand-init.js.map +1 -0
  191. package/dist/tools/brand-preflight.d.ts +3 -0
  192. package/dist/tools/brand-preflight.d.ts.map +1 -0
  193. package/dist/tools/brand-preflight.js +608 -0
  194. package/dist/tools/brand-preflight.js.map +1 -0
  195. package/dist/tools/brand-report.d.ts +3 -0
  196. package/dist/tools/brand-report.d.ts.map +1 -0
  197. package/dist/tools/brand-report.js +154 -0
  198. package/dist/tools/brand-report.js.map +1 -0
  199. package/dist/tools/brand-runtime.d.ts +3 -0
  200. package/dist/tools/brand-runtime.d.ts.map +1 -0
  201. package/dist/tools/brand-runtime.js +37 -0
  202. package/dist/tools/brand-runtime.js.map +1 -0
  203. package/dist/tools/brand-set-logo.d.ts +3 -0
  204. package/dist/tools/brand-set-logo.d.ts.map +1 -0
  205. package/dist/tools/brand-set-logo.js +170 -0
  206. package/dist/tools/brand-set-logo.js.map +1 -0
  207. package/dist/tools/brand-start.d.ts +3 -0
  208. package/dist/tools/brand-start.d.ts.map +1 -0
  209. package/dist/tools/brand-start.js +686 -0
  210. package/dist/tools/brand-start.js.map +1 -0
  211. package/dist/tools/brand-status.d.ts +3 -0
  212. package/dist/tools/brand-status.d.ts.map +1 -0
  213. package/dist/tools/brand-status.js +175 -0
  214. package/dist/tools/brand-status.js.map +1 -0
  215. package/dist/tools/brand-write.d.ts +3 -0
  216. package/dist/tools/brand-write.d.ts.map +1 -0
  217. package/dist/tools/brand-write.js +442 -0
  218. package/dist/tools/brand-write.js.map +1 -0
  219. package/dist/types/index.d.ts +331 -0
  220. package/dist/types/index.d.ts.map +1 -0
  221. package/dist/types/index.js +52 -0
  222. package/dist/types/index.js.map +1 -0
  223. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/schemas/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBxB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa7B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { z } from "zod";
2
+ export const PersonaSchema = z.object({
3
+ id: z.string(),
4
+ name: z.string(),
5
+ role_tag: z.string(),
6
+ seniority: z.string(),
7
+ company_stage: z.array(z.string()).optional(),
8
+ decision_authority: z.string(),
9
+ status: z.enum(["Active", "Hypothesis", "Retired"]),
10
+ source: z.string().optional(),
11
+ core_tension: z.string(),
12
+ key_objections: z.array(z.string()),
13
+ information_needs: z.object({
14
+ first_touch: z.string(),
15
+ context_and_meaning: z.string(),
16
+ validation_and_proof: z.string(),
17
+ decision_support: z.string(),
18
+ }),
19
+ narrative_emphasis: z.object({
20
+ primary: z.string(),
21
+ secondary: z.string().optional(),
22
+ elements: z.array(z.string()).optional(),
23
+ }),
24
+ preferred_channels: z.array(z.string()),
25
+ });
26
+ export const JourneyStageSchema = z.object({
27
+ id: z.string(),
28
+ name: z.string(),
29
+ buyer_mindset: z.string(),
30
+ content_goal: z.string(),
31
+ story_types: z.array(z.string()),
32
+ narrative_elements: z.array(z.string()),
33
+ claims_policy: z.object({
34
+ preferred_salience: z.union([z.string(), z.array(z.string())]),
35
+ max_per_piece: z.number().nullable(),
36
+ min_confidence: z.number().optional(),
37
+ }),
38
+ tone_shift: z.string(),
39
+ });
40
+ export const MessagingVariantSchema = z.object({
41
+ id: z.string(),
42
+ persona: z.string(),
43
+ journey_stage: z.string(),
44
+ status: z.enum(["Active", "Draft", "Retired"]),
45
+ core_message: z.string(),
46
+ tone_shift: z.string(),
47
+ proof_points: z.array(z.string()),
48
+ supporting_claims: z.array(z.string()).optional(),
49
+ source_element: z.string().optional(),
50
+ });
51
+ export const ContentThemeSchema = z.object({
52
+ id: z.string(),
53
+ name: z.string(),
54
+ status: z.enum(["Active", "Planned", "Retired"]),
55
+ quarter: z.string().optional(),
56
+ content_intent: z.string(),
57
+ strategic_priority: z.string(),
58
+ narrative_route: z.string().optional(),
59
+ target_personas: z.array(z.string()),
60
+ key_claims: z.array(z.string()).optional(),
61
+ success_criteria: z.string().optional(),
62
+ });
63
+ export const ContentStrategySchema = z.object({
64
+ schema_version: z.string(),
65
+ session: z.number(),
66
+ personas: z.array(PersonaSchema),
67
+ journey_stages: z.array(JourneyStageSchema),
68
+ messaging_matrix: z.array(MessagingVariantSchema),
69
+ themes: z.array(ContentThemeSchema),
70
+ });
71
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/schemas/strategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ /** DTCG Design Token Community Group format */
3
+ export declare const DTCGTokenSchema: z.ZodObject<{
4
+ $value: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
5
+ $type: z.ZodString;
6
+ $description: z.ZodOptional<z.ZodString>;
7
+ $extensions: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ $value: string | number;
10
+ $type: string;
11
+ $description?: string | undefined;
12
+ $extensions?: Record<string, unknown> | undefined;
13
+ }, {
14
+ $value: string | number;
15
+ $type: string;
16
+ $description?: string | undefined;
17
+ $extensions?: Record<string, unknown> | undefined;
18
+ }>;
19
+ /** Top-level tokens.json structure */
20
+ export declare const TokensFileSchema: z.ZodObject<{
21
+ $name: z.ZodString;
22
+ $description: z.ZodOptional<z.ZodString>;
23
+ brand: z.ZodRecord<z.ZodString, z.ZodUnknown>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ $name: string;
26
+ brand: Record<string, unknown>;
27
+ $description?: string | undefined;
28
+ }, {
29
+ $name: string;
30
+ brand: Record<string, unknown>;
31
+ $description?: string | undefined;
32
+ }>;
33
+ export type DTCGTokenData = z.infer<typeof DTCGTokenSchema>;
34
+ export type TokensFileData = z.infer<typeof TokensFileSchema>;
35
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../src/schemas/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+CAA+C;AAC/C,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;EAK1B,CAAC;AAEH,sCAAsC;AACtC,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { z } from "zod";
2
+ /** DTCG Design Token Community Group format */
3
+ export const DTCGTokenSchema = z.object({
4
+ $value: z.union([z.string(), z.number()]),
5
+ $type: z.string(),
6
+ $description: z.string().optional(),
7
+ $extensions: z.record(z.unknown()).optional(),
8
+ });
9
+ /** Top-level tokens.json structure */
10
+ export const TokensFileSchema = z.object({
11
+ $name: z.string(),
12
+ $description: z.string().optional(),
13
+ brand: z.record(z.unknown()), // nested DTCG groups
14
+ });
15
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/schemas/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,+CAA+C;AAC/C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC9C,CAAC,CAAC;AAEH,sCAAsC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,qBAAqB;CACpD,CAAC,CAAC"}
@@ -0,0 +1,224 @@
1
+ import { z } from "zod";
2
+ export declare const CompositionSpecSchema: z.ZodObject<{
3
+ energy: z.ZodString;
4
+ negative_space: z.ZodString;
5
+ grid: z.ZodString;
6
+ layout_preference: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ energy: string;
9
+ negative_space: string;
10
+ grid: string;
11
+ layout_preference: string;
12
+ }, {
13
+ energy: string;
14
+ negative_space: string;
15
+ grid: string;
16
+ layout_preference: string;
17
+ }>;
18
+ export declare const PatternSpecSchema: z.ZodObject<{
19
+ type: z.ZodString;
20
+ usage: z.ZodString;
21
+ assets: z.ZodArray<z.ZodString, "many">;
22
+ }, "strip", z.ZodTypeAny, {
23
+ type: string;
24
+ usage: string;
25
+ assets: string[];
26
+ }, {
27
+ type: string;
28
+ usage: string;
29
+ assets: string[];
30
+ }>;
31
+ export declare const IllustrationSpecSchema: z.ZodObject<{
32
+ style: z.ZodString;
33
+ function: z.ZodString;
34
+ assets: z.ZodArray<z.ZodString, "many">;
35
+ }, "strip", z.ZodTypeAny, {
36
+ function: string;
37
+ assets: string[];
38
+ style: string;
39
+ }, {
40
+ function: string;
41
+ assets: string[];
42
+ style: string;
43
+ }>;
44
+ export declare const PhotographySpecSchema: z.ZodObject<{
45
+ style: z.ZodString;
46
+ anti_patterns: z.ZodArray<z.ZodString, "many">;
47
+ }, "strip", z.ZodTypeAny, {
48
+ style: string;
49
+ anti_patterns: string[];
50
+ }, {
51
+ style: string;
52
+ anti_patterns: string[];
53
+ }>;
54
+ export declare const SignatureSpecSchema: z.ZodObject<{
55
+ description: z.ZodString;
56
+ elements: z.ZodArray<z.ZodString, "many">;
57
+ }, "strip", z.ZodTypeAny, {
58
+ description: string;
59
+ elements: string[];
60
+ }, {
61
+ description: string;
62
+ elements: string[];
63
+ }>;
64
+ export declare const AntiPatternRuleSchema: z.ZodObject<{
65
+ rule: z.ZodString;
66
+ severity: z.ZodEnum<["hard", "soft"]>;
67
+ preflight_id: z.ZodOptional<z.ZodString>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ rule: string;
70
+ severity: "hard" | "soft";
71
+ preflight_id?: string | undefined;
72
+ }, {
73
+ rule: string;
74
+ severity: "hard" | "soft";
75
+ preflight_id?: string | undefined;
76
+ }>;
77
+ export declare const VisualIdentitySchema: z.ZodObject<{
78
+ schema_version: z.ZodString;
79
+ session: z.ZodNumber;
80
+ composition: z.ZodNullable<z.ZodObject<{
81
+ energy: z.ZodString;
82
+ negative_space: z.ZodString;
83
+ grid: z.ZodString;
84
+ layout_preference: z.ZodString;
85
+ }, "strip", z.ZodTypeAny, {
86
+ energy: string;
87
+ negative_space: string;
88
+ grid: string;
89
+ layout_preference: string;
90
+ }, {
91
+ energy: string;
92
+ negative_space: string;
93
+ grid: string;
94
+ layout_preference: string;
95
+ }>>;
96
+ patterns: z.ZodNullable<z.ZodObject<{
97
+ type: z.ZodString;
98
+ usage: z.ZodString;
99
+ assets: z.ZodArray<z.ZodString, "many">;
100
+ }, "strip", z.ZodTypeAny, {
101
+ type: string;
102
+ usage: string;
103
+ assets: string[];
104
+ }, {
105
+ type: string;
106
+ usage: string;
107
+ assets: string[];
108
+ }>>;
109
+ illustration: z.ZodNullable<z.ZodObject<{
110
+ style: z.ZodString;
111
+ function: z.ZodString;
112
+ assets: z.ZodArray<z.ZodString, "many">;
113
+ }, "strip", z.ZodTypeAny, {
114
+ function: string;
115
+ assets: string[];
116
+ style: string;
117
+ }, {
118
+ function: string;
119
+ assets: string[];
120
+ style: string;
121
+ }>>;
122
+ photography: z.ZodNullable<z.ZodObject<{
123
+ style: z.ZodString;
124
+ anti_patterns: z.ZodArray<z.ZodString, "many">;
125
+ }, "strip", z.ZodTypeAny, {
126
+ style: string;
127
+ anti_patterns: string[];
128
+ }, {
129
+ style: string;
130
+ anti_patterns: string[];
131
+ }>>;
132
+ signature: z.ZodNullable<z.ZodObject<{
133
+ description: z.ZodString;
134
+ elements: z.ZodArray<z.ZodString, "many">;
135
+ }, "strip", z.ZodTypeAny, {
136
+ description: string;
137
+ elements: string[];
138
+ }, {
139
+ description: string;
140
+ elements: string[];
141
+ }>>;
142
+ anti_patterns: z.ZodArray<z.ZodObject<{
143
+ rule: z.ZodString;
144
+ severity: z.ZodEnum<["hard", "soft"]>;
145
+ preflight_id: z.ZodOptional<z.ZodString>;
146
+ }, "strip", z.ZodTypeAny, {
147
+ rule: string;
148
+ severity: "hard" | "soft";
149
+ preflight_id?: string | undefined;
150
+ }, {
151
+ rule: string;
152
+ severity: "hard" | "soft";
153
+ preflight_id?: string | undefined;
154
+ }>, "many">;
155
+ positioning_context: z.ZodString;
156
+ }, "strip", z.ZodTypeAny, {
157
+ schema_version: string;
158
+ session: number;
159
+ anti_patterns: {
160
+ rule: string;
161
+ severity: "hard" | "soft";
162
+ preflight_id?: string | undefined;
163
+ }[];
164
+ composition: {
165
+ energy: string;
166
+ negative_space: string;
167
+ grid: string;
168
+ layout_preference: string;
169
+ } | null;
170
+ patterns: {
171
+ type: string;
172
+ usage: string;
173
+ assets: string[];
174
+ } | null;
175
+ illustration: {
176
+ function: string;
177
+ assets: string[];
178
+ style: string;
179
+ } | null;
180
+ photography: {
181
+ style: string;
182
+ anti_patterns: string[];
183
+ } | null;
184
+ signature: {
185
+ description: string;
186
+ elements: string[];
187
+ } | null;
188
+ positioning_context: string;
189
+ }, {
190
+ schema_version: string;
191
+ session: number;
192
+ anti_patterns: {
193
+ rule: string;
194
+ severity: "hard" | "soft";
195
+ preflight_id?: string | undefined;
196
+ }[];
197
+ composition: {
198
+ energy: string;
199
+ negative_space: string;
200
+ grid: string;
201
+ layout_preference: string;
202
+ } | null;
203
+ patterns: {
204
+ type: string;
205
+ usage: string;
206
+ assets: string[];
207
+ } | null;
208
+ illustration: {
209
+ function: string;
210
+ assets: string[];
211
+ style: string;
212
+ } | null;
213
+ photography: {
214
+ style: string;
215
+ anti_patterns: string[];
216
+ } | null;
217
+ signature: {
218
+ description: string;
219
+ elements: string[];
220
+ } | null;
221
+ positioning_context: string;
222
+ }>;
223
+ export type VisualIdentityData = z.infer<typeof VisualIdentitySchema>;
224
+ //# sourceMappingURL=visual-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-identity.d.ts","sourceRoot":"","sources":["../../src/schemas/visual-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;EAIjC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU/B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { z } from "zod";
2
+ export const CompositionSpecSchema = z.object({
3
+ energy: z.string(),
4
+ negative_space: z.string(),
5
+ grid: z.string(),
6
+ layout_preference: z.string(),
7
+ });
8
+ export const PatternSpecSchema = z.object({
9
+ type: z.string(),
10
+ usage: z.string(),
11
+ assets: z.array(z.string()),
12
+ });
13
+ export const IllustrationSpecSchema = z.object({
14
+ style: z.string(),
15
+ function: z.string(),
16
+ assets: z.array(z.string()),
17
+ });
18
+ export const PhotographySpecSchema = z.object({
19
+ style: z.string(),
20
+ anti_patterns: z.array(z.string()),
21
+ });
22
+ export const SignatureSpecSchema = z.object({
23
+ description: z.string(),
24
+ elements: z.array(z.string()),
25
+ });
26
+ export const AntiPatternRuleSchema = z.object({
27
+ rule: z.string(),
28
+ severity: z.enum(["hard", "soft"]),
29
+ preflight_id: z.string().optional(),
30
+ });
31
+ export const VisualIdentitySchema = z.object({
32
+ schema_version: z.string(),
33
+ session: z.number(),
34
+ composition: CompositionSpecSchema.nullable(),
35
+ patterns: PatternSpecSchema.nullable(),
36
+ illustration: IllustrationSpecSchema.nullable(),
37
+ photography: PhotographySpecSchema.nullable(),
38
+ signature: SignatureSpecSchema.nullable(),
39
+ anti_patterns: z.array(AntiPatternRuleSchema),
40
+ positioning_context: z.string(),
41
+ });
42
+ //# sourceMappingURL=visual-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visual-identity.js","sourceRoot":"","sources":["../../src/schemas/visual-identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC5B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC7C,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACtC,YAAY,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IAC/C,WAAW,EAAE,qBAAqB,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,mBAAmB,CAAC,QAAQ,EAAE;IACzC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IAC7C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;CAChC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function createServer(): McpServer;
3
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA+BpE,wBAAgB,YAAY,IAAI,SAAS,CAqDxC"}
package/dist/server.js ADDED
@@ -0,0 +1,75 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { getVersion } from "./lib/version.js";
3
+ import { BrandDir } from "./lib/brand-dir.js";
4
+ import { registerResources } from "./resources/brand-resources.js";
5
+ import { register as registerInit } from "./tools/brand-init.js";
6
+ import { register as registerStatus } from "./tools/brand-status.js";
7
+ import { register as registerExtractWeb } from "./tools/brand-extract-web.js";
8
+ import { register as registerExtractFigma } from "./tools/brand-extract-figma.js";
9
+ import { register as registerCompile } from "./tools/brand-compile.js";
10
+ import { register as registerAudit } from "./tools/brand-audit.js";
11
+ import { register as registerReport } from "./tools/brand-report.js";
12
+ import { register as registerStart } from "./tools/brand-start.js";
13
+ import { register as registerClarify } from "./tools/brand-clarify.js";
14
+ import { register as registerDeepenIdentity } from "./tools/brand-deepen-identity.js";
15
+ import { register as registerIngestAssets } from "./tools/brand-ingest-assets.js";
16
+ import { register as registerPreflight } from "./tools/brand-preflight.js";
17
+ import { register as registerExtractMessaging } from "./tools/brand-extract-messaging.js";
18
+ import { register as registerWrite } from "./tools/brand-write.js";
19
+ import { register as registerCompileMessaging } from "./tools/brand-compile-messaging.js";
20
+ import { register as registerBuildJourney } from "./tools/brand-build-journey.js";
21
+ import { register as registerBuildPersonas } from "./tools/brand-build-personas.js";
22
+ import { register as registerBuildMatrix } from "./tools/brand-build-matrix.js";
23
+ import { register as registerBuildThemes } from "./tools/brand-build-themes.js";
24
+ import { register as registerExport } from "./tools/brand-export.js";
25
+ import { register as registerSetLogo } from "./tools/brand-set-logo.js";
26
+ import { register as registerFeedback } from "./tools/brand-feedback.js";
27
+ import { register as registerAuditContent } from "./tools/brand-audit-content.js";
28
+ import { register as registerCheckCompliance } from "./tools/brand-check-compliance.js";
29
+ import { register as registerAuditDrift } from "./tools/brand-audit-drift.js";
30
+ import { register as registerRuntime } from "./tools/brand-runtime.js";
31
+ export function createServer() {
32
+ const server = new McpServer({
33
+ name: "brandsystem",
34
+ version: getVersion(),
35
+ });
36
+ // ── Entry points (register first — agents see these first) ──
37
+ registerStart(server); // #1: Entry point for new brands
38
+ registerStatus(server); // #2: "What can I do?" / resume point
39
+ // ── Session 1: Core Identity ──
40
+ registerExtractWeb(server); // Extract from website
41
+ registerExtractFigma(server); // Extract from Figma
42
+ registerSetLogo(server); // Add/replace logo manually
43
+ registerCompile(server); // Generate tokens + VIM
44
+ registerClarify(server); // Resolve ambiguous values
45
+ registerAudit(server); // Validate .brand/ directory
46
+ registerReport(server); // Generate HTML report
47
+ registerInit(server); // Low-level init (prefer brand_start)
48
+ // ── Session 2: Visual Identity ──
49
+ registerDeepenIdentity(server);
50
+ registerIngestAssets(server);
51
+ registerPreflight(server);
52
+ // ── Session 3: Messaging ──
53
+ registerExtractMessaging(server);
54
+ registerCompileMessaging(server);
55
+ // ── Session 4: Content Strategy ──
56
+ registerBuildPersonas(server);
57
+ registerBuildJourney(server);
58
+ registerBuildThemes(server);
59
+ registerBuildMatrix(server);
60
+ // ── Content scoring ──
61
+ registerAuditContent(server); // Score content against brand identity
62
+ registerCheckCompliance(server); // Binary pass/fail gate
63
+ registerAuditDrift(server); // Batch drift detection
64
+ // ── Runtime ──
65
+ registerRuntime(server); // Read compiled brand runtime contract
66
+ // ── Cross-session utilities ──
67
+ registerWrite(server); // Load brand context for content gen
68
+ registerExport(server); // Generate portable brand files
69
+ registerFeedback(server); // Bug reports + feature ideas
70
+ // ── Resources (read-only, subscribable brand data) ──
71
+ const brandDir = new BrandDir(process.cwd());
72
+ registerResources(server, brandDir);
73
+ return server;
74
+ }
75
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=brand-audit-content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-audit-content.d.ts","sourceRoot":"","sources":["../../src/tools/brand-audit-content.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAWzC"}
@@ -0,0 +1,116 @@
1
+ import { z } from "zod";
2
+ import { readFile } from "node:fs/promises";
3
+ import { BrandDir } from "../lib/brand-dir.js";
4
+ import { buildResponse, safeParseParams } from "../lib/response.js";
5
+ import { loadBrandContext, scoreContent, isHtmlContent, } from "../lib/content-scorer.js";
6
+ import { ERROR_CODES } from "../types/index.js";
7
+ // ---------------------------------------------------------------------------
8
+ // Content resolution
9
+ // ---------------------------------------------------------------------------
10
+ async function resolveContent(input) {
11
+ // Check if it's a file path
12
+ if (/\.(html?|md|txt)$/i.test(input.trim()) && !input.includes("\n") && input.length < 500) {
13
+ try {
14
+ const content = await readFile(input.trim(), "utf-8");
15
+ return { content, isHtml: /\.html?$/i.test(input.trim()) || isHtmlContent(content) };
16
+ }
17
+ catch {
18
+ // Not a file path — treat as inline content
19
+ }
20
+ }
21
+ return { content: input, isHtml: isHtmlContent(input) };
22
+ }
23
+ // ---------------------------------------------------------------------------
24
+ // Handler
25
+ // ---------------------------------------------------------------------------
26
+ async function handler(input) {
27
+ const brandDir = new BrandDir(process.cwd());
28
+ if (!(await brandDir.exists())) {
29
+ return buildResponse({
30
+ what_happened: "No .brand/ directory found",
31
+ next_steps: ["Run brand_start to create a brand system first"],
32
+ data: { error: ERROR_CODES.NOT_INITIALIZED },
33
+ });
34
+ }
35
+ let ctx;
36
+ try {
37
+ ctx = await loadBrandContext(brandDir);
38
+ }
39
+ catch {
40
+ return buildResponse({
41
+ what_happened: "Could not read brand identity data",
42
+ next_steps: ["Run brand_extract_web to populate core identity"],
43
+ data: { error: ERROR_CODES.NO_CORE_IDENTITY },
44
+ });
45
+ }
46
+ const { content, isHtml } = await resolveContent(input.content);
47
+ if (!content.trim()) {
48
+ return buildResponse({
49
+ what_happened: "Empty content — nothing to audit",
50
+ next_steps: ["Provide content to audit (text, HTML, or file path)"],
51
+ data: { error: ERROR_CODES.EMPTY_CONTENT },
52
+ });
53
+ }
54
+ const result = scoreContent(content, isHtml, ctx);
55
+ // Build summary
56
+ const dimNames = result.dimensions_available;
57
+ const summary = `Content audit: ${result.overall}/100 across ${dimNames.length} dimension(s) (${dimNames.join(", ")})`;
58
+ const nextSteps = [];
59
+ if (result.overall < 70) {
60
+ nextSteps.push("Score is below 70 — review the issues and fix before publishing");
61
+ }
62
+ if (result.issues.filter((i) => i.severity === "critical").length > 0) {
63
+ nextSteps.push("Critical issues found — these are hard-stop violations");
64
+ }
65
+ if (result.dimensions_locked.length > 0) {
66
+ const sessions = [];
67
+ if (result.dimensions_locked.includes("token_compliance"))
68
+ sessions.push("Session 1 (brand_extract_web)");
69
+ if (result.dimensions_locked.includes("visual_compliance"))
70
+ sessions.push("Session 2 (brand_deepen_identity)");
71
+ if (result.dimensions_locked.includes("voice_alignment") || result.dimensions_locked.includes("message_coverage")) {
72
+ sessions.push("Session 3 (brand_compile_messaging)");
73
+ }
74
+ nextSteps.push(`${result.dimensions_locked.length} dimension(s) locked — complete ${sessions.join(", ")} to unlock`);
75
+ }
76
+ if (result.overall >= 70 && result.issues.filter((i) => i.severity === "critical").length === 0) {
77
+ nextSteps.push("Content passes baseline compliance — review warnings for further improvement");
78
+ }
79
+ return buildResponse({
80
+ what_happened: summary,
81
+ next_steps: nextSteps,
82
+ data: {
83
+ overall_score: result.overall,
84
+ dimensions_available: result.dimensions_available,
85
+ dimensions_locked: result.dimensions_locked,
86
+ scores: result.dimensions,
87
+ issues: result.issues.slice(0, 15),
88
+ content_type_detected: isHtml ? "html" : "text",
89
+ conversation_guide: {
90
+ instruction: "Present the overall score prominently, then walk through each dimension. For low-scoring dimensions, show specific examples from the content and suggest rewrites.",
91
+ },
92
+ },
93
+ });
94
+ }
95
+ // ---------------------------------------------------------------------------
96
+ // Registration
97
+ // ---------------------------------------------------------------------------
98
+ const paramsShape = {
99
+ content: z
100
+ .string()
101
+ .describe("Content to audit: raw text, an HTML string, or a file path ending in .html/.htm/.md/.txt. HTML gets visual + voice analysis; plain text gets voice analysis only."),
102
+ depth: z
103
+ .enum(["quick", "standard", "deep"])
104
+ .default("standard")
105
+ .describe("Audit depth: 'quick' = token compliance only, 'standard' = + voice and message coverage, 'deep' = + visual anti-patterns. Default: 'standard'."),
106
+ };
107
+ const ParamsSchema = z.object(paramsShape);
108
+ export function register(server) {
109
+ server.tool("brand_audit_content", "Check if content is on-brand — score any text or markup 0-100 for brand compliance. Checks color/font usage, voice alignment, anti-pattern violations, and message coverage. Use when asked 'is this on-brand?', 'brand compliance score', 'check brand alignment', or after generating any content. Works progressively: Session 1 scores tokens, Session 2 adds visual compliance, Session 3 adds voice and messaging. Returns 0-100 score with per-dimension breakdown and specific issues. NOT for .brand/ directory validation (use brand_audit) or HTML/CSS rule checking (use brand_preflight).", paramsShape, async (args) => {
110
+ const parsed = safeParseParams(ParamsSchema, args);
111
+ if (!parsed.success)
112
+ return parsed.response;
113
+ return handler(parsed.data);
114
+ });
115
+ }
116
+ //# sourceMappingURL=brand-audit-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-audit-content.js","sourceRoot":"","sources":["../../src/tools/brand-audit-content.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function register(server: McpServer): void;
3
+ //# sourceMappingURL=brand-audit-drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-audit-drift.d.ts","sourceRoot":"","sources":["../../src/tools/brand-audit-drift.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoXzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAWzC"}