@convertcom/mcp-server 0.0.1-beta.12 → 0.0.1-beta.13

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 (46) hide show
  1. package/.assets/apple-touch-icon.png +0 -0
  2. package/.assets/convert-icon-64.png +0 -0
  3. package/.assets/convert-icon.svg +7 -0
  4. package/.assets/convert-logo.png +0 -0
  5. package/.assets/favicon.ico +0 -0
  6. package/.assets/favicon.png +0 -0
  7. package/.assets/icon-128.png +0 -0
  8. package/.assets/icon-180.png +0 -0
  9. package/.assets/icon-192.png +0 -0
  10. package/.assets/icon-256.png +0 -0
  11. package/.assets/icon-512.png +0 -0
  12. package/.assets/icon.png +0 -0
  13. package/.assets/og-image.png +0 -0
  14. package/README.md +11 -1
  15. package/build/auth-context.d.ts +25 -0
  16. package/build/brand.d.ts +6 -0
  17. package/build/brand.js +89 -0
  18. package/build/brand.js.map +1 -0
  19. package/build/executor.js +78 -339
  20. package/build/executor.js.map +1 -1
  21. package/build/generated-tool-validators.d.ts +2803 -0
  22. package/build/generated-tool-validators.js +119285 -0
  23. package/build/generated-tool-validators.js.map +1 -0
  24. package/build/index.d.ts +4 -14
  25. package/build/index.js +28 -411
  26. package/build/index.js.map +1 -1
  27. package/build/kb-search-node.d.ts +2 -0
  28. package/build/kb-search-node.js +8 -0
  29. package/build/kb-search-node.js.map +1 -0
  30. package/build/kb-search.d.ts +1 -1
  31. package/build/kb-search.js +1 -4
  32. package/build/kb-search.js.map +1 -1
  33. package/build/namespaced.js +86 -5
  34. package/build/namespaced.js.map +1 -1
  35. package/build/operator.js +48 -9
  36. package/build/operator.js.map +1 -1
  37. package/build/runtime.d.ts +28 -0
  38. package/build/runtime.js +394 -0
  39. package/build/runtime.js.map +1 -0
  40. package/build/schema-normalizer.d.ts +2 -0
  41. package/build/schema-normalizer.js +373 -0
  42. package/build/schema-normalizer.js.map +1 -0
  43. package/build/tools.js +22 -10
  44. package/build/tools.js.map +1 -1
  45. package/package.json +28 -11
  46. package/server.json +2 -2
@@ -0,0 +1,373 @@
1
+ export function normalizeSchema(input, toolName) {
2
+ const seen = new WeakMap();
3
+ function walk(node, path = '') {
4
+ if (!node || typeof node !== 'object')
5
+ return node;
6
+ if (seen.has(node))
7
+ return seen.get(node);
8
+ if (Array.isArray(node)) {
9
+ const arr = [];
10
+ seen.set(node, arr);
11
+ node.forEach((item, index) => arr.push(walk(item, `${path}/${index}`)));
12
+ return arr;
13
+ }
14
+ const out = {};
15
+ seen.set(node, out);
16
+ for (const [key, value] of Object.entries(node)) {
17
+ out[key] = walk(value, `${path}/${escapeJsonPointer(key)}`);
18
+ }
19
+ if (Array.isArray(out.oneOf) && isExperienceChangeUnionPath(path)) {
20
+ out.oneOf = normalizeExperienceChangeUnion(out.oneOf);
21
+ }
22
+ if (out.nullable === true) {
23
+ const type = out.type;
24
+ if (typeof type === 'string') {
25
+ out.type = [type, 'null'];
26
+ }
27
+ else if (Array.isArray(type)) {
28
+ const typeSet = new Set(type);
29
+ typeSet.add('null');
30
+ out.type = [...typeSet];
31
+ }
32
+ else if (Array.isArray(out.oneOf)) {
33
+ out.oneOf = [...out.oneOf, { type: 'null' }];
34
+ }
35
+ else if (Array.isArray(out.anyOf)) {
36
+ out.anyOf = [...out.anyOf, { type: 'null' }];
37
+ }
38
+ delete out.nullable;
39
+ }
40
+ return out;
41
+ }
42
+ return normalizeToolSpecificSchema(toolName, walk(input));
43
+ }
44
+ function escapeJsonPointer(value) {
45
+ return value.replace(/~/g, '~0').replace(/\//g, '~1');
46
+ }
47
+ function isExperienceChangeUnionPath(path) {
48
+ return path.includes('/properties/changes/items');
49
+ }
50
+ function normalizeExperienceChangeUnion(branches) {
51
+ return branches.map((branch, index) => {
52
+ if (!isAutoPlaceholderSchema(branch))
53
+ return branch;
54
+ const inferredType = inferPlaceholderChangeType(branches, index);
55
+ if (inferredType === 'defaultRedirect')
56
+ return defaultRedirectChangeSchema();
57
+ if (inferredType === 'richStructure')
58
+ return richStructureChangeSchema();
59
+ return branch;
60
+ });
61
+ }
62
+ function isAutoPlaceholderSchema(schema) {
63
+ return isPlainObject(schema)
64
+ && typeof schema.description === 'string'
65
+ && schema.description.includes('auto-placeholder');
66
+ }
67
+ function inferPlaceholderChangeType(branches, index) {
68
+ const previousTypes = collectDiscriminantTypes(branches[index - 1]);
69
+ const nextTypes = collectDiscriminantTypes(branches[index + 1]);
70
+ if (index === 2 && nextTypes.has('customCode'))
71
+ return 'defaultRedirect';
72
+ if (previousTypes.has('defaultRedirect'))
73
+ return 'richStructure';
74
+ if (previousTypes.has('customCode') && nextTypes.has('fullStackFeature'))
75
+ return 'richStructure';
76
+ return null;
77
+ }
78
+ function collectDiscriminantTypes(schema) {
79
+ const types = new Set();
80
+ const visited = new WeakSet();
81
+ function walk(node) {
82
+ if (!node || typeof node !== 'object')
83
+ return;
84
+ if (visited.has(node))
85
+ return;
86
+ visited.add(node);
87
+ if (Array.isArray(node)) {
88
+ node.forEach(walk);
89
+ return;
90
+ }
91
+ const record = node;
92
+ const typeProperty = isPlainObject(record.properties) ? record.properties.type : undefined;
93
+ if (isPlainObject(typeProperty) && Array.isArray(typeProperty.enum)) {
94
+ for (const value of typeProperty.enum) {
95
+ if (typeof value === 'string')
96
+ types.add(value);
97
+ }
98
+ }
99
+ for (const value of Object.values(record))
100
+ walk(value);
101
+ }
102
+ walk(schema);
103
+ return types;
104
+ }
105
+ function defaultRedirectChangeSchema() {
106
+ return {
107
+ type: 'object',
108
+ description: 'Normalized schema for a defaultRedirect split URL change. Replaces a broad generated auto-placeholder so oneOf validation can discriminate by type.',
109
+ properties: {
110
+ type: { type: 'string', enum: ['defaultRedirect'] },
111
+ data: {
112
+ type: 'object',
113
+ additionalProperties: false,
114
+ properties: {
115
+ original_pattern: { type: 'string' },
116
+ variation_pattern: { type: 'string' },
117
+ case_sensitive: { type: 'boolean' },
118
+ },
119
+ required: ['original_pattern', 'variation_pattern'],
120
+ },
121
+ },
122
+ required: ['type', 'data'],
123
+ };
124
+ }
125
+ function richStructureChangeSchema() {
126
+ return {
127
+ type: 'object',
128
+ description: 'Normalized schema for a richStructure visual editor change. Replaces a broad generated auto-placeholder so oneOf validation can discriminate by type.',
129
+ properties: {
130
+ id: { type: 'integer' },
131
+ type: { type: 'string', enum: ['richStructure'] },
132
+ data: { type: 'object', additionalProperties: true },
133
+ },
134
+ required: ['type', 'data'],
135
+ additionalProperties: false,
136
+ };
137
+ }
138
+ function normalizeToolSpecificSchema(toolName, schema) {
139
+ if (!isPlainObject(schema))
140
+ return schema;
141
+ const properties = isPlainObject(schema.properties) ? schema.properties : undefined;
142
+ if (!properties || !Object.prototype.hasOwnProperty.call(properties, 'requestBody'))
143
+ return schema;
144
+ if (toolName === 'createaudience') {
145
+ properties.requestBody = audienceRequestBodySchema(true);
146
+ }
147
+ else if (toolName === 'updateaudience') {
148
+ properties.requestBody = audienceRequestBodySchema(false);
149
+ }
150
+ else if (toolName === 'createlocation') {
151
+ properties.requestBody = locationRequestBodySchema(true);
152
+ }
153
+ else if (toolName === 'updatelocation') {
154
+ properties.requestBody = locationRequestBodySchema(false);
155
+ }
156
+ else if (toolName === 'creategoal') {
157
+ properties.requestBody = goalRequestBodySchema(true);
158
+ }
159
+ else if (toolName === 'updategoal') {
160
+ properties.requestBody = goalRequestBodySchema(false);
161
+ }
162
+ else if (toolName === 'createfeature') {
163
+ properties.requestBody = featureRequestBodySchema(true);
164
+ }
165
+ else if (toolName === 'updatefeature') {
166
+ properties.requestBody = featureRequestBodySchema(false);
167
+ }
168
+ else if (toolName === 'createexperience' || toolName === 'updateexperience' || toolName === 'createproject' || toolName === 'updateproject') {
169
+ replaceStatsEngineProcessingSchemas(properties.requestBody);
170
+ }
171
+ else if (toolName === 'uploadexperiencevariationscreenshot') {
172
+ properties.requestBody = uploadImageNoNameRequestBodySchema();
173
+ }
174
+ return schema;
175
+ }
176
+ function replaceStatsEngineProcessingSchemas(schema) {
177
+ const visited = new WeakSet();
178
+ function walk(node) {
179
+ if (!node || typeof node !== 'object')
180
+ return;
181
+ if (visited.has(node))
182
+ return;
183
+ visited.add(node);
184
+ if (Array.isArray(node)) {
185
+ node.forEach(walk);
186
+ return;
187
+ }
188
+ const record = node;
189
+ if (isPlainObject(record.properties) && Object.prototype.hasOwnProperty.call(record.properties, 'stats_engine_processing')) {
190
+ record.properties.stats_engine_processing = statsEngineProcessingSchema();
191
+ }
192
+ for (const value of Object.values(record)) {
193
+ walk(value);
194
+ }
195
+ }
196
+ walk(schema);
197
+ }
198
+ function statsEngineProcessingSchema() {
199
+ return {
200
+ type: 'object',
201
+ description: [
202
+ 'Normalized Convert stats engine settings schema. The generated OpenAPI composition currently turns nullable mab_settings into contradictory null-only/object branches.',
203
+ 'dynamic_mde may carry fixed_mde: omitted or 0 means dynamic/unlocked; a non-zero fixed_mde under dynamic_mde is the backend auto-MDE lock used by stats-lib.',
204
+ ].join(' '),
205
+ additionalProperties: false,
206
+ properties: {
207
+ stats_type: { type: 'string', enum: ['frequentist', 'bayesian'] },
208
+ confidence: { type: 'number', minimum: 50, maximum: 99, multipleOf: 1 },
209
+ power: { type: 'number', minimum: 10, maximum: 99, multipleOf: 1 },
210
+ test_type: {
211
+ type: 'string',
212
+ enum: ['one_tail', 'one_tail_left', 'one_tail_right', 'two_tails', 'sequential'],
213
+ },
214
+ multiple_comparison_correction: { type: 'string', enum: ['none', 'bonferroni', 'sidak'] },
215
+ power_calculation_type: { type: 'string', enum: ['dynamic_mde', 'fixed_mde'] },
216
+ fixed_mde: { type: 'number', minimum: 0, maximum: 10000 },
217
+ decision_threshold: { type: 'number', minimum: 50, maximum: 99, multipleOf: 1 },
218
+ risk_threshold: { type: 'number', minimum: 1, maximum: 100, multipleOf: 1 },
219
+ mab_settings: {
220
+ anyOf: [
221
+ { type: 'null' },
222
+ {
223
+ type: 'object',
224
+ additionalProperties: false,
225
+ properties: {
226
+ strategy: { type: 'string', enum: ['epsilon_greedy', 'ucb', 'thompson_sampling'] },
227
+ exploration_rate: { type: 'number', minimum: 0, maximum: 1 },
228
+ },
229
+ },
230
+ ],
231
+ },
232
+ },
233
+ };
234
+ }
235
+ function uploadImageNoNameRequestBodySchema() {
236
+ return {
237
+ type: 'object',
238
+ description: 'Normalized multipart image upload payload. Accepts either a raw data URL/base64 string in image or an object with data_url/base64 plus optional filename/content_type metadata.',
239
+ additionalProperties: true,
240
+ properties: {
241
+ image: {
242
+ anyOf: [
243
+ { type: 'string', format: 'binary' },
244
+ {
245
+ type: 'object',
246
+ additionalProperties: true,
247
+ properties: {
248
+ data_url: { type: 'string' },
249
+ dataUrl: { type: 'string' },
250
+ base64: { type: 'string' },
251
+ content: { type: 'string' },
252
+ data: { type: 'string' },
253
+ value: { type: 'string' },
254
+ filename: { type: 'string' },
255
+ name: { type: 'string' },
256
+ content_type: { type: 'string' },
257
+ contentType: { type: 'string' },
258
+ mime_type: { type: 'string' },
259
+ mimeType: { type: 'string' },
260
+ },
261
+ },
262
+ ],
263
+ },
264
+ },
265
+ required: ['image'],
266
+ };
267
+ }
268
+ function audienceRequestBodySchema(isCreate) {
269
+ return {
270
+ type: 'object',
271
+ description: 'Normalized Convert audience payload schema. The generated OpenAPI oneOf currently rejects valid non-null rules for segmentation/permanent/transient audiences, so MCP validates the stable envelope and lets the API validate the rule semantics.',
272
+ additionalProperties: true,
273
+ properties: {
274
+ id: { type: 'integer' },
275
+ name: { type: 'string', maxLength: 100 },
276
+ description: { type: ['string', 'null'], maxLength: 500 },
277
+ status: { type: 'string', enum: ['active', 'archived'] },
278
+ type: { type: 'string', enum: ['segmentation', 'permanent', 'transient'] },
279
+ rules: ruleObjectSchema('Audience rules use nested OR -> AND -> OR_WHEN blocks. Audience rule_type values include visitor_type, country, city, region, device/browser fields, cookies, JS conditions, URL fields for segmentation audiences, and page-tag fields.'),
280
+ selected_default: { type: 'boolean' },
281
+ },
282
+ required: isCreate ? ['name', 'type', 'rules'] : [],
283
+ };
284
+ }
285
+ function locationRequestBodySchema(isCreate) {
286
+ return {
287
+ type: 'object',
288
+ description: 'Normalized Convert location payload schema. The generated OpenAPI schema currently treats non-null rules as invalid, so MCP validates the stable envelope and lets the API validate the rule semantics.',
289
+ additionalProperties: true,
290
+ properties: {
291
+ id: { type: 'integer' },
292
+ name: { type: 'string', maxLength: 100 },
293
+ description: { type: ['string', 'null'], maxLength: 500 },
294
+ status: { type: 'string', enum: ['active', 'archived'] },
295
+ rules: ruleObjectSchema('Location rules use nested OR -> AND -> OR_WHEN blocks, usually with URL/page matching rule types.'),
296
+ trigger: { type: ['object', 'null'], additionalProperties: true },
297
+ selected_default: { type: 'boolean' },
298
+ },
299
+ required: isCreate ? ['name', 'rules'] : [],
300
+ };
301
+ }
302
+ function goalRequestBodySchema(isCreate) {
303
+ return {
304
+ type: 'object',
305
+ description: 'Normalized Convert goal payload schema. The generated OpenAPI oneOf is too strict for real goal variants such as clicks_element, code_trigger, and triggering_rule scoping.',
306
+ additionalProperties: true,
307
+ properties: {
308
+ id: { type: 'integer' },
309
+ name: { type: 'string', maxLength: 100 },
310
+ key: { type: 'string', maxLength: 32 },
311
+ description: { type: ['string', 'null'], maxLength: 500 },
312
+ status: { type: 'string', enum: ['active', 'archived'] },
313
+ type: {
314
+ type: 'string',
315
+ enum: [
316
+ 'advanced',
317
+ 'visits_page',
318
+ 'revenue',
319
+ 'clicks_link',
320
+ 'submits_form',
321
+ 'clicks_element',
322
+ 'dom_interaction',
323
+ 'scroll_percentage',
324
+ 'ga_import',
325
+ 'code_trigger',
326
+ ],
327
+ },
328
+ settings: { type: ['object', 'null'], additionalProperties: true },
329
+ triggering_rule: ruleObjectSchema('Goal triggering rules use nested OR -> AND -> OR_WHEN blocks to scope when the goal can fire.'),
330
+ selected_default: { type: 'boolean' },
331
+ },
332
+ required: isCreate ? ['name', 'type'] : [],
333
+ };
334
+ }
335
+ function featureRequestBodySchema(isCreate) {
336
+ return {
337
+ type: 'object',
338
+ description: 'Normalized Convert feature payload schema. The generated OpenAPI oneOf currently combines a base null default_value with type-specific default_value branches, causing valid boolean/number defaults to fail validation.',
339
+ additionalProperties: true,
340
+ properties: {
341
+ id: { type: 'integer' },
342
+ name: { type: 'string', maxLength: 100 },
343
+ key: { type: 'string', maxLength: 32 },
344
+ description: { type: ['string', 'null'], maxLength: 200 },
345
+ status: { type: 'string', enum: ['active', 'archived'] },
346
+ variables: {
347
+ type: 'array',
348
+ items: {
349
+ type: 'object',
350
+ additionalProperties: true,
351
+ properties: {
352
+ key: { type: 'string', maxLength: 32 },
353
+ type: { type: 'string', enum: ['json', 'string', 'boolean', 'float', 'integer'] },
354
+ default_value: {},
355
+ },
356
+ required: ['key', 'type'],
357
+ },
358
+ },
359
+ },
360
+ required: isCreate ? ['name', 'variables'] : [],
361
+ };
362
+ }
363
+ function ruleObjectSchema(description) {
364
+ return {
365
+ type: ['object', 'null'],
366
+ description,
367
+ additionalProperties: true,
368
+ };
369
+ }
370
+ export function isPlainObject(value) {
371
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
372
+ }
373
+ //# sourceMappingURL=schema-normalizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-normalizer.js","sourceRoot":"","sources":["../src/schema-normalizer.ts"],"names":[],"mappings":"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"}