stylemcp 0.1.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 (83) hide show
  1. package/README.md +261 -0
  2. package/action/action.yml +59 -0
  3. package/action/package.json +24 -0
  4. package/action/src/index.ts +455 -0
  5. package/dist/cli/index.d.ts +3 -0
  6. package/dist/cli/index.d.ts.map +1 -0
  7. package/dist/cli/index.js +335 -0
  8. package/dist/cli/index.js.map +1 -0
  9. package/dist/index.d.ts +5 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +10 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/rewriter/index.d.ts +45 -0
  14. package/dist/rewriter/index.d.ts.map +1 -0
  15. package/dist/rewriter/index.js +163 -0
  16. package/dist/rewriter/index.js.map +1 -0
  17. package/dist/schema/copy-patterns.d.ts +298 -0
  18. package/dist/schema/copy-patterns.d.ts.map +1 -0
  19. package/dist/schema/copy-patterns.js +53 -0
  20. package/dist/schema/copy-patterns.js.map +1 -0
  21. package/dist/schema/cta-rules.d.ts +274 -0
  22. package/dist/schema/cta-rules.d.ts.map +1 -0
  23. package/dist/schema/cta-rules.js +45 -0
  24. package/dist/schema/cta-rules.js.map +1 -0
  25. package/dist/schema/index.d.ts +2172 -0
  26. package/dist/schema/index.d.ts.map +1 -0
  27. package/dist/schema/index.js +92 -0
  28. package/dist/schema/index.js.map +1 -0
  29. package/dist/schema/tests.d.ts +274 -0
  30. package/dist/schema/tests.d.ts.map +1 -0
  31. package/dist/schema/tests.js +37 -0
  32. package/dist/schema/tests.js.map +1 -0
  33. package/dist/schema/tokens.d.ts +632 -0
  34. package/dist/schema/tokens.d.ts.map +1 -0
  35. package/dist/schema/tokens.js +68 -0
  36. package/dist/schema/tokens.js.map +1 -0
  37. package/dist/schema/voice.d.ts +280 -0
  38. package/dist/schema/voice.d.ts.map +1 -0
  39. package/dist/schema/voice.js +52 -0
  40. package/dist/schema/voice.js.map +1 -0
  41. package/dist/server/billing.d.ts +53 -0
  42. package/dist/server/billing.d.ts.map +1 -0
  43. package/dist/server/billing.js +216 -0
  44. package/dist/server/billing.js.map +1 -0
  45. package/dist/server/http.d.ts +5 -0
  46. package/dist/server/http.d.ts.map +1 -0
  47. package/dist/server/http.js +470 -0
  48. package/dist/server/http.js.map +1 -0
  49. package/dist/server/index.d.ts +3 -0
  50. package/dist/server/index.d.ts.map +1 -0
  51. package/dist/server/index.js +480 -0
  52. package/dist/server/index.js.map +1 -0
  53. package/dist/server/middleware/auth.d.ts +15 -0
  54. package/dist/server/middleware/auth.d.ts.map +1 -0
  55. package/dist/server/middleware/auth.js +83 -0
  56. package/dist/server/middleware/auth.js.map +1 -0
  57. package/dist/utils/pack-loader.d.ts +13 -0
  58. package/dist/utils/pack-loader.d.ts.map +1 -0
  59. package/dist/utils/pack-loader.js +98 -0
  60. package/dist/utils/pack-loader.js.map +1 -0
  61. package/dist/validator/index.d.ts +21 -0
  62. package/dist/validator/index.d.ts.map +1 -0
  63. package/dist/validator/index.js +60 -0
  64. package/dist/validator/index.js.map +1 -0
  65. package/dist/validator/rules/constraints.d.ts +8 -0
  66. package/dist/validator/rules/constraints.d.ts.map +1 -0
  67. package/dist/validator/rules/constraints.js +150 -0
  68. package/dist/validator/rules/constraints.js.map +1 -0
  69. package/dist/validator/rules/cta.d.ts +11 -0
  70. package/dist/validator/rules/cta.d.ts.map +1 -0
  71. package/dist/validator/rules/cta.js +113 -0
  72. package/dist/validator/rules/cta.js.map +1 -0
  73. package/dist/validator/rules/voice.d.ts +6 -0
  74. package/dist/validator/rules/voice.d.ts.map +1 -0
  75. package/dist/validator/rules/voice.js +106 -0
  76. package/dist/validator/rules/voice.js.map +1 -0
  77. package/package.json +61 -0
  78. package/packs/saas/copy_patterns.yaml +423 -0
  79. package/packs/saas/cta_rules.yaml +362 -0
  80. package/packs/saas/manifest.yaml +16 -0
  81. package/packs/saas/tests.yaml +305 -0
  82. package/packs/saas/tokens.json +226 -0
  83. package/packs/saas/voice.yaml +232 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,92 @@
1
+ import { z } from 'zod';
2
+ // Re-export all schemas
3
+ export * from './voice.js';
4
+ export * from './copy-patterns.js';
5
+ export * from './cta-rules.js';
6
+ export * from './tokens.js';
7
+ export * from './tests.js';
8
+ import { VoiceSchema } from './voice.js';
9
+ import { CopyPatternsSchema } from './copy-patterns.js';
10
+ import { CTARulesSchema } from './cta-rules.js';
11
+ import { TokensSchema } from './tokens.js';
12
+ import { TestSuiteSchema } from './tests.js';
13
+ /**
14
+ * StyleMCP Pack - a complete, versioned style package
15
+ */
16
+ export const PackManifestSchema = z.object({
17
+ name: z.string().describe('Pack name (e.g., "saas", "devtool", "fintech")'),
18
+ version: z.string().describe('Semantic version'),
19
+ description: z.string().optional(),
20
+ author: z.string().optional(),
21
+ license: z.string().optional(),
22
+ files: z.object({
23
+ voice: z.string().default('voice.yaml'),
24
+ copyPatterns: z.string().default('copy_patterns.yaml'),
25
+ ctaRules: z.string().default('cta_rules.yaml'),
26
+ tokens: z.string().default('tokens.json'),
27
+ tests: z.string().default('tests.yaml'),
28
+ }).default({}),
29
+ extends: z.string().optional().describe('Parent pack to extend from'),
30
+ config: z.object({
31
+ strictMode: z.boolean().default(false).describe('Fail on any violation'),
32
+ minScore: z.number().min(0).max(100).default(70).describe('Minimum passing score'),
33
+ }).default({}),
34
+ });
35
+ export const PackSchema = z.object({
36
+ manifest: PackManifestSchema,
37
+ voice: VoiceSchema,
38
+ copyPatterns: CopyPatternsSchema,
39
+ ctaRules: CTARulesSchema,
40
+ tokens: TokensSchema,
41
+ tests: TestSuiteSchema,
42
+ });
43
+ /**
44
+ * Validation result types
45
+ */
46
+ export const ViolationSchema = z.object({
47
+ id: z.string(),
48
+ rule: z.string(),
49
+ severity: z.enum(['error', 'warning', 'info']),
50
+ message: z.string(),
51
+ position: z.object({
52
+ start: z.number(),
53
+ end: z.number(),
54
+ }).optional(),
55
+ text: z.string().optional().describe('The violating text'),
56
+ suggestion: z.string().optional(),
57
+ });
58
+ export const ValidationResultSchema = z.object({
59
+ valid: z.boolean(),
60
+ score: z.number().min(0).max(100),
61
+ input: z.string(),
62
+ violations: z.array(ViolationSchema),
63
+ summary: z.object({
64
+ errors: z.number(),
65
+ warnings: z.number(),
66
+ info: z.number(),
67
+ }),
68
+ metadata: z.object({
69
+ packName: z.string(),
70
+ packVersion: z.string(),
71
+ validatedAt: z.string(),
72
+ }),
73
+ });
74
+ export const RewriteResultSchema = z.object({
75
+ original: z.string(),
76
+ rewritten: z.string(),
77
+ changes: z.array(z.object({
78
+ type: z.enum(['replace', 'insert', 'delete']),
79
+ original: z.string(),
80
+ replacement: z.string(),
81
+ reason: z.string(),
82
+ position: z.object({
83
+ start: z.number(),
84
+ end: z.number(),
85
+ }),
86
+ })),
87
+ score: z.object({
88
+ before: z.number(),
89
+ after: z.number(),
90
+ }),
91
+ });
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wBAAwB;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IAC3E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAE9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;QACvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;QACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;KACxC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAEd,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAErE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACxE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACnF,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,QAAQ,EAAE,kBAAkB;IAC5B,KAAK,EAAE,WAAW;IAClB,YAAY,EAAE,kBAAkB;IAChC,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,eAAe;CACvB,CAAC,CAAC;AAKH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;KAChB,CAAC,CAAC,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;IAC1D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KACjB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,CAAC;KACH,CAAC,CAAC;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;CACH,CAAC,CAAC"}
@@ -0,0 +1,274 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Tests schema - defines test cases for validation
4
+ */
5
+ export declare const TestCaseSchema: z.ZodObject<{
6
+ id: z.ZodString;
7
+ name: z.ZodString;
8
+ description: z.ZodOptional<z.ZodString>;
9
+ input: z.ZodString;
10
+ expect: z.ZodObject<{
11
+ pass: z.ZodBoolean;
12
+ minScore: z.ZodOptional<z.ZodNumber>;
13
+ maxScore: z.ZodOptional<z.ZodNumber>;
14
+ violations: z.ZodOptional<z.ZodArray<z.ZodObject<{
15
+ rule: z.ZodString;
16
+ severity: z.ZodOptional<z.ZodEnum<["error", "warning", "info"]>>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ rule: string;
19
+ severity?: "error" | "warning" | "info" | undefined;
20
+ }, {
21
+ rule: string;
22
+ severity?: "error" | "warning" | "info" | undefined;
23
+ }>, "many">>;
24
+ noViolations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
25
+ }, "strip", z.ZodTypeAny, {
26
+ pass: boolean;
27
+ minScore?: number | undefined;
28
+ maxScore?: number | undefined;
29
+ violations?: {
30
+ rule: string;
31
+ severity?: "error" | "warning" | "info" | undefined;
32
+ }[] | undefined;
33
+ noViolations?: string[] | undefined;
34
+ }, {
35
+ pass: boolean;
36
+ minScore?: number | undefined;
37
+ maxScore?: number | undefined;
38
+ violations?: {
39
+ rule: string;
40
+ severity?: "error" | "warning" | "info" | undefined;
41
+ }[] | undefined;
42
+ noViolations?: string[] | undefined;
43
+ }>;
44
+ context: z.ZodOptional<z.ZodObject<{
45
+ type: z.ZodOptional<z.ZodEnum<["ui-copy", "marketing", "docs", "support", "general"]>>;
46
+ component: z.ZodOptional<z.ZodString>;
47
+ audience: z.ZodOptional<z.ZodString>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
50
+ component?: string | undefined;
51
+ audience?: string | undefined;
52
+ }, {
53
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
54
+ component?: string | undefined;
55
+ audience?: string | undefined;
56
+ }>>;
57
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ name: string;
60
+ id: string;
61
+ input: string;
62
+ expect: {
63
+ pass: boolean;
64
+ minScore?: number | undefined;
65
+ maxScore?: number | undefined;
66
+ violations?: {
67
+ rule: string;
68
+ severity?: "error" | "warning" | "info" | undefined;
69
+ }[] | undefined;
70
+ noViolations?: string[] | undefined;
71
+ };
72
+ tags: string[];
73
+ description?: string | undefined;
74
+ context?: {
75
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
76
+ component?: string | undefined;
77
+ audience?: string | undefined;
78
+ } | undefined;
79
+ }, {
80
+ name: string;
81
+ id: string;
82
+ input: string;
83
+ expect: {
84
+ pass: boolean;
85
+ minScore?: number | undefined;
86
+ maxScore?: number | undefined;
87
+ violations?: {
88
+ rule: string;
89
+ severity?: "error" | "warning" | "info" | undefined;
90
+ }[] | undefined;
91
+ noViolations?: string[] | undefined;
92
+ };
93
+ description?: string | undefined;
94
+ context?: {
95
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
96
+ component?: string | undefined;
97
+ audience?: string | undefined;
98
+ } | undefined;
99
+ tags?: string[] | undefined;
100
+ }>;
101
+ export declare const TestSuiteSchema: z.ZodObject<{
102
+ version: z.ZodDefault<z.ZodString>;
103
+ name: z.ZodString;
104
+ description: z.ZodOptional<z.ZodString>;
105
+ tests: z.ZodArray<z.ZodObject<{
106
+ id: z.ZodString;
107
+ name: z.ZodString;
108
+ description: z.ZodOptional<z.ZodString>;
109
+ input: z.ZodString;
110
+ expect: z.ZodObject<{
111
+ pass: z.ZodBoolean;
112
+ minScore: z.ZodOptional<z.ZodNumber>;
113
+ maxScore: z.ZodOptional<z.ZodNumber>;
114
+ violations: z.ZodOptional<z.ZodArray<z.ZodObject<{
115
+ rule: z.ZodString;
116
+ severity: z.ZodOptional<z.ZodEnum<["error", "warning", "info"]>>;
117
+ }, "strip", z.ZodTypeAny, {
118
+ rule: string;
119
+ severity?: "error" | "warning" | "info" | undefined;
120
+ }, {
121
+ rule: string;
122
+ severity?: "error" | "warning" | "info" | undefined;
123
+ }>, "many">>;
124
+ noViolations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
125
+ }, "strip", z.ZodTypeAny, {
126
+ pass: boolean;
127
+ minScore?: number | undefined;
128
+ maxScore?: number | undefined;
129
+ violations?: {
130
+ rule: string;
131
+ severity?: "error" | "warning" | "info" | undefined;
132
+ }[] | undefined;
133
+ noViolations?: string[] | undefined;
134
+ }, {
135
+ pass: boolean;
136
+ minScore?: number | undefined;
137
+ maxScore?: number | undefined;
138
+ violations?: {
139
+ rule: string;
140
+ severity?: "error" | "warning" | "info" | undefined;
141
+ }[] | undefined;
142
+ noViolations?: string[] | undefined;
143
+ }>;
144
+ context: z.ZodOptional<z.ZodObject<{
145
+ type: z.ZodOptional<z.ZodEnum<["ui-copy", "marketing", "docs", "support", "general"]>>;
146
+ component: z.ZodOptional<z.ZodString>;
147
+ audience: z.ZodOptional<z.ZodString>;
148
+ }, "strip", z.ZodTypeAny, {
149
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
150
+ component?: string | undefined;
151
+ audience?: string | undefined;
152
+ }, {
153
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
154
+ component?: string | undefined;
155
+ audience?: string | undefined;
156
+ }>>;
157
+ tags: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ name: string;
160
+ id: string;
161
+ input: string;
162
+ expect: {
163
+ pass: boolean;
164
+ minScore?: number | undefined;
165
+ maxScore?: number | undefined;
166
+ violations?: {
167
+ rule: string;
168
+ severity?: "error" | "warning" | "info" | undefined;
169
+ }[] | undefined;
170
+ noViolations?: string[] | undefined;
171
+ };
172
+ tags: string[];
173
+ description?: string | undefined;
174
+ context?: {
175
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
176
+ component?: string | undefined;
177
+ audience?: string | undefined;
178
+ } | undefined;
179
+ }, {
180
+ name: string;
181
+ id: string;
182
+ input: string;
183
+ expect: {
184
+ pass: boolean;
185
+ minScore?: number | undefined;
186
+ maxScore?: number | undefined;
187
+ violations?: {
188
+ rule: string;
189
+ severity?: "error" | "warning" | "info" | undefined;
190
+ }[] | undefined;
191
+ noViolations?: string[] | undefined;
192
+ };
193
+ description?: string | undefined;
194
+ context?: {
195
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
196
+ component?: string | undefined;
197
+ audience?: string | undefined;
198
+ } | undefined;
199
+ tags?: string[] | undefined;
200
+ }>, "many">;
201
+ config: z.ZodDefault<z.ZodObject<{
202
+ stopOnFirstFailure: z.ZodDefault<z.ZodBoolean>;
203
+ verbose: z.ZodDefault<z.ZodBoolean>;
204
+ }, "strip", z.ZodTypeAny, {
205
+ stopOnFirstFailure: boolean;
206
+ verbose: boolean;
207
+ }, {
208
+ stopOnFirstFailure?: boolean | undefined;
209
+ verbose?: boolean | undefined;
210
+ }>>;
211
+ }, "strip", z.ZodTypeAny, {
212
+ name: string;
213
+ version: string;
214
+ tests: {
215
+ name: string;
216
+ id: string;
217
+ input: string;
218
+ expect: {
219
+ pass: boolean;
220
+ minScore?: number | undefined;
221
+ maxScore?: number | undefined;
222
+ violations?: {
223
+ rule: string;
224
+ severity?: "error" | "warning" | "info" | undefined;
225
+ }[] | undefined;
226
+ noViolations?: string[] | undefined;
227
+ };
228
+ tags: string[];
229
+ description?: string | undefined;
230
+ context?: {
231
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
232
+ component?: string | undefined;
233
+ audience?: string | undefined;
234
+ } | undefined;
235
+ }[];
236
+ config: {
237
+ stopOnFirstFailure: boolean;
238
+ verbose: boolean;
239
+ };
240
+ description?: string | undefined;
241
+ }, {
242
+ name: string;
243
+ tests: {
244
+ name: string;
245
+ id: string;
246
+ input: string;
247
+ expect: {
248
+ pass: boolean;
249
+ minScore?: number | undefined;
250
+ maxScore?: number | undefined;
251
+ violations?: {
252
+ rule: string;
253
+ severity?: "error" | "warning" | "info" | undefined;
254
+ }[] | undefined;
255
+ noViolations?: string[] | undefined;
256
+ };
257
+ description?: string | undefined;
258
+ context?: {
259
+ type?: "ui-copy" | "marketing" | "docs" | "support" | "general" | undefined;
260
+ component?: string | undefined;
261
+ audience?: string | undefined;
262
+ } | undefined;
263
+ tags?: string[] | undefined;
264
+ }[];
265
+ description?: string | undefined;
266
+ version?: string | undefined;
267
+ config?: {
268
+ stopOnFirstFailure?: boolean | undefined;
269
+ verbose?: boolean | undefined;
270
+ } | undefined;
271
+ }>;
272
+ export type TestCase = z.infer<typeof TestCaseSchema>;
273
+ export type TestSuite = z.infer<typeof TestSuiteSchema>;
274
+ //# sourceMappingURL=tests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.d.ts","sourceRoot":"","sources":["../../src/schema/tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBzB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW1B,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Tests schema - defines test cases for validation
4
+ */
5
+ export const TestCaseSchema = z.object({
6
+ id: z.string().describe('Unique test identifier'),
7
+ name: z.string().describe('Human-readable test name'),
8
+ description: z.string().optional(),
9
+ input: z.string().describe('Text to validate'),
10
+ expect: z.object({
11
+ pass: z.boolean().describe('Whether this should pass validation'),
12
+ minScore: z.number().min(0).max(100).optional().describe('Minimum expected score'),
13
+ maxScore: z.number().min(0).max(100).optional().describe('Maximum expected score'),
14
+ violations: z.array(z.object({
15
+ rule: z.string().describe('Rule ID that should be violated'),
16
+ severity: z.enum(['error', 'warning', 'info']).optional(),
17
+ })).optional().describe('Expected violations'),
18
+ noViolations: z.array(z.string()).optional().describe('Rules that should NOT be violated'),
19
+ }),
20
+ context: z.object({
21
+ type: z.enum(['ui-copy', 'marketing', 'docs', 'support', 'general']).optional(),
22
+ component: z.string().optional().describe('UI component context'),
23
+ audience: z.string().optional(),
24
+ }).optional(),
25
+ tags: z.array(z.string()).default([]).describe('Tags for filtering tests'),
26
+ });
27
+ export const TestSuiteSchema = z.object({
28
+ version: z.string().default('1.0'),
29
+ name: z.string().describe('Name of this test suite'),
30
+ description: z.string().optional(),
31
+ tests: z.array(TestCaseSchema),
32
+ config: z.object({
33
+ stopOnFirstFailure: z.boolean().default(false),
34
+ verbose: z.boolean().default(false),
35
+ }).default({}),
36
+ });
37
+ //# sourceMappingURL=tests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tests.js","sourceRoot":"","sources":["../../src/schema/tests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACrD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAE9C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAClF,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;YAC5D,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC1D,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC9C,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC3F,CAAC;IAEF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC/E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC,QAAQ,EAAE;IAEb,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CAC3E,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACpD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAE9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;QAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;KACpC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACf,CAAC,CAAC"}