@gramatr/mcp 0.13.0 → 0.13.10

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.
@@ -0,0 +1,275 @@
1
+ /**
2
+ * AUTO-GENERATED — do not edit manually.
3
+ * Source: contracts/responses/*.yaml
4
+ * Generator: contracts/generator/generate.ts
5
+ * Generated: 2026-04-24T06:29:46.353Z
6
+ */
7
+ import { z } from 'zod';
8
+ /** Response shape for GET /api/v1/orgs/:orgId/brands/:slug — canonical brand entity with structured voice sub-object. metadata field retained for backward compatibility only; new code must use structured fields. */
9
+ export declare const BrandGetResponseSchema: z.ZodObject<{
10
+ id: z.ZodString;
11
+ slug: z.ZodString;
12
+ brainVersion: z.ZodOptional<z.ZodNumber>;
13
+ voice: z.ZodOptional<z.ZodObject<{
14
+ voiceFingerprint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
15
+ sample_count: z.ZodOptional<z.ZodNumber>;
16
+ sample_tokens_total: z.ZodOptional<z.ZodNumber>;
17
+ style_vector: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
18
+ tonal_attributes: z.ZodOptional<z.ZodArray<z.ZodObject<{
19
+ attribute: z.ZodString;
20
+ confidence: z.ZodNumber;
21
+ }, "strip", z.ZodTypeAny, {
22
+ confidence: number;
23
+ attribute: string;
24
+ }, {
25
+ confidence: number;
26
+ attribute: string;
27
+ }>, "many">>;
28
+ forbidden_phrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
29
+ preferred_constructions: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
30
+ fingerprint_model_version: z.ZodOptional<z.ZodString>;
31
+ last_fingerprinted_at: z.ZodOptional<z.ZodString>;
32
+ stylistic_descriptors: z.ZodOptional<z.ZodObject<{
33
+ sentence_length_mean: z.ZodOptional<z.ZodNumber>;
34
+ sentence_length_stddev: z.ZodOptional<z.ZodNumber>;
35
+ avg_syllables_per_word: z.ZodOptional<z.ZodNumber>;
36
+ reading_grade: z.ZodOptional<z.ZodNumber>;
37
+ passive_voice_ratio: z.ZodOptional<z.ZodNumber>;
38
+ contraction_rate: z.ZodOptional<z.ZodNumber>;
39
+ em_dash_density: z.ZodOptional<z.ZodNumber>;
40
+ oxford_comma_preference: z.ZodOptional<z.ZodString>;
41
+ first_person_ratio: z.ZodOptional<z.ZodNumber>;
42
+ hedging_phrase_inventory: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
43
+ signature_phrases: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
44
+ }, "strip", z.ZodTypeAny, {
45
+ sentence_length_mean?: number | undefined;
46
+ sentence_length_stddev?: number | undefined;
47
+ avg_syllables_per_word?: number | undefined;
48
+ reading_grade?: number | undefined;
49
+ passive_voice_ratio?: number | undefined;
50
+ contraction_rate?: number | undefined;
51
+ em_dash_density?: number | undefined;
52
+ oxford_comma_preference?: string | undefined;
53
+ first_person_ratio?: number | undefined;
54
+ hedging_phrase_inventory?: string[] | undefined;
55
+ signature_phrases?: string[] | undefined;
56
+ }, {
57
+ sentence_length_mean?: number | undefined;
58
+ sentence_length_stddev?: number | undefined;
59
+ avg_syllables_per_word?: number | undefined;
60
+ reading_grade?: number | undefined;
61
+ passive_voice_ratio?: number | undefined;
62
+ contraction_rate?: number | undefined;
63
+ em_dash_density?: number | undefined;
64
+ oxford_comma_preference?: string | undefined;
65
+ first_person_ratio?: number | undefined;
66
+ hedging_phrase_inventory?: string[] | undefined;
67
+ signature_phrases?: string[] | undefined;
68
+ }>>;
69
+ }, "strip", z.ZodTypeAny, {
70
+ sample_count?: number | undefined;
71
+ sample_tokens_total?: number | undefined;
72
+ style_vector?: any[] | undefined;
73
+ tonal_attributes?: {
74
+ confidence: number;
75
+ attribute: string;
76
+ }[] | undefined;
77
+ forbidden_phrases?: string[] | undefined;
78
+ preferred_constructions?: string[] | undefined;
79
+ fingerprint_model_version?: string | undefined;
80
+ last_fingerprinted_at?: string | undefined;
81
+ stylistic_descriptors?: {
82
+ sentence_length_mean?: number | undefined;
83
+ sentence_length_stddev?: number | undefined;
84
+ avg_syllables_per_word?: number | undefined;
85
+ reading_grade?: number | undefined;
86
+ passive_voice_ratio?: number | undefined;
87
+ contraction_rate?: number | undefined;
88
+ em_dash_density?: number | undefined;
89
+ oxford_comma_preference?: string | undefined;
90
+ first_person_ratio?: number | undefined;
91
+ hedging_phrase_inventory?: string[] | undefined;
92
+ signature_phrases?: string[] | undefined;
93
+ } | undefined;
94
+ }, {
95
+ sample_count?: number | undefined;
96
+ sample_tokens_total?: number | undefined;
97
+ style_vector?: any[] | undefined;
98
+ tonal_attributes?: {
99
+ confidence: number;
100
+ attribute: string;
101
+ }[] | undefined;
102
+ forbidden_phrases?: string[] | undefined;
103
+ preferred_constructions?: string[] | undefined;
104
+ fingerprint_model_version?: string | undefined;
105
+ last_fingerprinted_at?: string | undefined;
106
+ stylistic_descriptors?: {
107
+ sentence_length_mean?: number | undefined;
108
+ sentence_length_stddev?: number | undefined;
109
+ avg_syllables_per_word?: number | undefined;
110
+ reading_grade?: number | undefined;
111
+ passive_voice_ratio?: number | undefined;
112
+ contraction_rate?: number | undefined;
113
+ em_dash_density?: number | undefined;
114
+ oxford_comma_preference?: string | undefined;
115
+ first_person_ratio?: number | undefined;
116
+ hedging_phrase_inventory?: string[] | undefined;
117
+ signature_phrases?: string[] | undefined;
118
+ } | undefined;
119
+ }>>>;
120
+ voiceGenerationRole: z.ZodOptional<z.ZodString>;
121
+ exemplarExcerpts: z.ZodOptional<z.ZodArray<z.ZodObject<{
122
+ text: z.ZodString;
123
+ label: z.ZodString;
124
+ }, "strip", z.ZodTypeAny, {
125
+ text: string;
126
+ label: string;
127
+ }, {
128
+ text: string;
129
+ label: string;
130
+ }>, "many">>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ voiceFingerprint?: {
133
+ sample_count?: number | undefined;
134
+ sample_tokens_total?: number | undefined;
135
+ style_vector?: any[] | undefined;
136
+ tonal_attributes?: {
137
+ confidence: number;
138
+ attribute: string;
139
+ }[] | undefined;
140
+ forbidden_phrases?: string[] | undefined;
141
+ preferred_constructions?: string[] | undefined;
142
+ fingerprint_model_version?: string | undefined;
143
+ last_fingerprinted_at?: string | undefined;
144
+ stylistic_descriptors?: {
145
+ sentence_length_mean?: number | undefined;
146
+ sentence_length_stddev?: number | undefined;
147
+ avg_syllables_per_word?: number | undefined;
148
+ reading_grade?: number | undefined;
149
+ passive_voice_ratio?: number | undefined;
150
+ contraction_rate?: number | undefined;
151
+ em_dash_density?: number | undefined;
152
+ oxford_comma_preference?: string | undefined;
153
+ first_person_ratio?: number | undefined;
154
+ hedging_phrase_inventory?: string[] | undefined;
155
+ signature_phrases?: string[] | undefined;
156
+ } | undefined;
157
+ } | null | undefined;
158
+ voiceGenerationRole?: string | undefined;
159
+ exemplarExcerpts?: {
160
+ text: string;
161
+ label: string;
162
+ }[] | undefined;
163
+ }, {
164
+ voiceFingerprint?: {
165
+ sample_count?: number | undefined;
166
+ sample_tokens_total?: number | undefined;
167
+ style_vector?: any[] | undefined;
168
+ tonal_attributes?: {
169
+ confidence: number;
170
+ attribute: string;
171
+ }[] | undefined;
172
+ forbidden_phrases?: string[] | undefined;
173
+ preferred_constructions?: string[] | undefined;
174
+ fingerprint_model_version?: string | undefined;
175
+ last_fingerprinted_at?: string | undefined;
176
+ stylistic_descriptors?: {
177
+ sentence_length_mean?: number | undefined;
178
+ sentence_length_stddev?: number | undefined;
179
+ avg_syllables_per_word?: number | undefined;
180
+ reading_grade?: number | undefined;
181
+ passive_voice_ratio?: number | undefined;
182
+ contraction_rate?: number | undefined;
183
+ em_dash_density?: number | undefined;
184
+ oxford_comma_preference?: string | undefined;
185
+ first_person_ratio?: number | undefined;
186
+ hedging_phrase_inventory?: string[] | undefined;
187
+ signature_phrases?: string[] | undefined;
188
+ } | undefined;
189
+ } | null | undefined;
190
+ voiceGenerationRole?: string | undefined;
191
+ exemplarExcerpts?: {
192
+ text: string;
193
+ label: string;
194
+ }[] | undefined;
195
+ }>>;
196
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
197
+ }, "strip", z.ZodTypeAny, {
198
+ slug: string;
199
+ id: string;
200
+ voice?: {
201
+ voiceFingerprint?: {
202
+ sample_count?: number | undefined;
203
+ sample_tokens_total?: number | undefined;
204
+ style_vector?: any[] | undefined;
205
+ tonal_attributes?: {
206
+ confidence: number;
207
+ attribute: string;
208
+ }[] | undefined;
209
+ forbidden_phrases?: string[] | undefined;
210
+ preferred_constructions?: string[] | undefined;
211
+ fingerprint_model_version?: string | undefined;
212
+ last_fingerprinted_at?: string | undefined;
213
+ stylistic_descriptors?: {
214
+ sentence_length_mean?: number | undefined;
215
+ sentence_length_stddev?: number | undefined;
216
+ avg_syllables_per_word?: number | undefined;
217
+ reading_grade?: number | undefined;
218
+ passive_voice_ratio?: number | undefined;
219
+ contraction_rate?: number | undefined;
220
+ em_dash_density?: number | undefined;
221
+ oxford_comma_preference?: string | undefined;
222
+ first_person_ratio?: number | undefined;
223
+ hedging_phrase_inventory?: string[] | undefined;
224
+ signature_phrases?: string[] | undefined;
225
+ } | undefined;
226
+ } | null | undefined;
227
+ voiceGenerationRole?: string | undefined;
228
+ exemplarExcerpts?: {
229
+ text: string;
230
+ label: string;
231
+ }[] | undefined;
232
+ } | undefined;
233
+ metadata?: Record<string, unknown> | undefined;
234
+ brainVersion?: number | undefined;
235
+ }, {
236
+ slug: string;
237
+ id: string;
238
+ voice?: {
239
+ voiceFingerprint?: {
240
+ sample_count?: number | undefined;
241
+ sample_tokens_total?: number | undefined;
242
+ style_vector?: any[] | undefined;
243
+ tonal_attributes?: {
244
+ confidence: number;
245
+ attribute: string;
246
+ }[] | undefined;
247
+ forbidden_phrases?: string[] | undefined;
248
+ preferred_constructions?: string[] | undefined;
249
+ fingerprint_model_version?: string | undefined;
250
+ last_fingerprinted_at?: string | undefined;
251
+ stylistic_descriptors?: {
252
+ sentence_length_mean?: number | undefined;
253
+ sentence_length_stddev?: number | undefined;
254
+ avg_syllables_per_word?: number | undefined;
255
+ reading_grade?: number | undefined;
256
+ passive_voice_ratio?: number | undefined;
257
+ contraction_rate?: number | undefined;
258
+ em_dash_density?: number | undefined;
259
+ oxford_comma_preference?: string | undefined;
260
+ first_person_ratio?: number | undefined;
261
+ hedging_phrase_inventory?: string[] | undefined;
262
+ signature_phrases?: string[] | undefined;
263
+ } | undefined;
264
+ } | null | undefined;
265
+ voiceGenerationRole?: string | undefined;
266
+ exemplarExcerpts?: {
267
+ text: string;
268
+ label: string;
269
+ }[] | undefined;
270
+ } | undefined;
271
+ metadata?: Record<string, unknown> | undefined;
272
+ brainVersion?: number | undefined;
273
+ }>;
274
+ export type BrandGetResponse = z.infer<typeof BrandGetResponseSchema>;
275
+ //# sourceMappingURL=rest-api-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-api-types.d.ts","sourceRoot":"","sources":["../../../src/types/generated/rest-api-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uNAAuN;AACvN,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsCjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * AUTO-GENERATED — do not edit manually.
3
+ * Source: contracts/responses/*.yaml
4
+ * Generator: contracts/generator/generate.ts
5
+ * Generated: 2026-04-24T06:29:46.353Z
6
+ */
7
+ import { z } from 'zod';
8
+ /** Response shape for GET /api/v1/orgs/:orgId/brands/:slug — canonical brand entity with structured voice sub-object. metadata field retained for backward compatibility only; new code must use structured fields. */
9
+ export const BrandGetResponseSchema = z.object({
10
+ id: z.string().describe("Brand entity UUID"),
11
+ slug: z.string().describe("Brand slug (entity name)"),
12
+ brainVersion: z.number().optional().describe("Studio conflict detection version counter"),
13
+ voice: z.object({
14
+ voiceFingerprint: z.object({
15
+ sample_count: z.number().optional().describe("Number of text samples used to compute this fingerprint"),
16
+ sample_tokens_total: z.number().optional().describe("Total tokens across all samples"),
17
+ style_vector: z.array(z.any()).optional().describe("Embedding-space style vector (model-internal)"),
18
+ tonal_attributes: z.array(z.object({
19
+ attribute: z.string(),
20
+ confidence: z.number()
21
+ })).optional().describe("LLM-extracted tonal qualities with confidence scores"),
22
+ forbidden_phrases: z.array(z.string()).optional().describe("Phrases the brand voice avoids"),
23
+ preferred_constructions: z.array(z.string()).optional().describe("Sentence constructions the brand voice favors"),
24
+ fingerprint_model_version: z.string().optional().describe("Model version that produced this fingerprint"),
25
+ last_fingerprinted_at: z.string().optional().describe("ISO 8601 timestamp of last fingerprint computation"),
26
+ stylistic_descriptors: z.object({
27
+ sentence_length_mean: z.number().optional(),
28
+ sentence_length_stddev: z.number().optional(),
29
+ avg_syllables_per_word: z.number().optional(),
30
+ reading_grade: z.number().optional(),
31
+ passive_voice_ratio: z.number().optional(),
32
+ contraction_rate: z.number().optional(),
33
+ em_dash_density: z.number().optional(),
34
+ oxford_comma_preference: z.string().optional().describe("always | never | mixed | unknown"),
35
+ first_person_ratio: z.number().optional(),
36
+ hedging_phrase_inventory: z.array(z.string()).optional(),
37
+ signature_phrases: z.array(z.string()).optional()
38
+ }).optional().describe("Quantitative stylometric measurements computed from raw text")
39
+ }).nullable().optional().describe("Computed voice fingerprint. Null if brand has not been fingerprinted yet."),
40
+ voiceGenerationRole: z.string().optional().describe("How the voice fingerprint is used in generation: style_only | full_persona | off"),
41
+ exemplarExcerpts: z.array(z.object({
42
+ text: z.string(),
43
+ label: z.string()
44
+ })).optional().describe("Representative text excerpts used as generation exemplars")
45
+ }).optional().describe("Structured voice identity. Canonical path — do not read from metadata.voice_*"),
46
+ metadata: z.record(z.string(), z.unknown()).optional().describe("Raw entity metadata — backward compatibility only. Deprecated: use structured fields above.")
47
+ });
48
+ //# sourceMappingURL=rest-api-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-api-types.js","sourceRoot":"","sources":["../../../src/types/generated/rest-api-types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gramatr/mcp",
3
- "version": "0.13.0",
3
+ "version": "0.13.10",
4
4
  "description": "grāmatr — Intelligence middleware for AI agents. Pre-classifies every request, injects relevant memory and behavioral context, enforces data quality, and maintains session continuity across Claude, ChatGPT, Codex, Cursor, Gemini, and any MCP-compatible client.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -41,7 +41,8 @@
41
41
  "main": "dist/server/server.js",
42
42
  "exports": {
43
43
  ".": "./dist/server/server.js",
44
- "./bin": "./dist/bin/gramatr-mcp.js"
44
+ "./bin": "./dist/bin/gramatr-mcp.js",
45
+ "./types": "./dist/types/generated/rest-api-types.js"
45
46
  },
46
47
  "files": [
47
48
  "dist/**/*.js",
@@ -53,7 +54,8 @@
53
54
  ],
54
55
  "dependencies": {
55
56
  "@modelcontextprotocol/sdk": "^1.12.0",
56
- "ajv": "^8.18.0"
57
+ "ajv": "^8.18.0",
58
+ "zod": "^3.24.0"
57
59
  },
58
60
  "devDependencies": {
59
61
  "@types/node": "^22.0.0",