mcpscraper-cli 0.35.1 → 0.37.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.
- package/README.md +2 -2
- package/dist/bin/cli.js +1524 -1
- package/package.json +2 -2
package/dist/bin/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import { randomUUID } from "crypto";
|
|
|
10
10
|
import { ScraperClient, ScraperApiError } from "mcpscraper-sdk";
|
|
11
11
|
|
|
12
12
|
// src/version.ts
|
|
13
|
-
var CLI_VERSION = "0.
|
|
13
|
+
var CLI_VERSION = "0.37.0";
|
|
14
14
|
|
|
15
15
|
// src/generated-tools.ts
|
|
16
16
|
var MCP_TOOL_CATALOG = [
|
|
@@ -28157,6 +28157,1529 @@ var MCP_TOOL_CATALOG = [
|
|
|
28157
28157
|
"idempotentHint": true,
|
|
28158
28158
|
"openWorldHint": true
|
|
28159
28159
|
}
|
|
28160
|
+
},
|
|
28161
|
+
{
|
|
28162
|
+
"name": "analytics_apply_site_setup",
|
|
28163
|
+
"category": "analytics",
|
|
28164
|
+
"title": "Apply X-Ray Site Setup",
|
|
28165
|
+
"description": "Publish a confirmed measurement-plan revision to the installed X-Ray tag using an idempotent retry key. No repository access or visitor-experiment authority.",
|
|
28166
|
+
"inputSchema": {
|
|
28167
|
+
"type": "object",
|
|
28168
|
+
"properties": {
|
|
28169
|
+
"siteId": {
|
|
28170
|
+
"type": "string",
|
|
28171
|
+
"format": "uuid",
|
|
28172
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28173
|
+
"description": "Authorized Analytics Site id owning the setup."
|
|
28174
|
+
},
|
|
28175
|
+
"setupId": {
|
|
28176
|
+
"type": "string",
|
|
28177
|
+
"format": "uuid",
|
|
28178
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28179
|
+
"description": "Durable owner-bound setup id returned by an X-Ray setup operation; it is not a browser session id."
|
|
28180
|
+
},
|
|
28181
|
+
"revision": {
|
|
28182
|
+
"type": "integer",
|
|
28183
|
+
"exclusiveMinimum": 0,
|
|
28184
|
+
"maximum": 9007199254740991,
|
|
28185
|
+
"description": "Exact current setup revision. Reload stale revisions before any mutation or canary."
|
|
28186
|
+
},
|
|
28187
|
+
"confirmed": {
|
|
28188
|
+
"type": "boolean",
|
|
28189
|
+
"const": true,
|
|
28190
|
+
"description": "Confirms publishing this exact measurement manifest to the installed X-Ray tag runtime. This does not activate an experiment."
|
|
28191
|
+
},
|
|
28192
|
+
"idempotencyKey": {
|
|
28193
|
+
"type": "string",
|
|
28194
|
+
"minLength": 8,
|
|
28195
|
+
"maxLength": 160,
|
|
28196
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
28197
|
+
}
|
|
28198
|
+
},
|
|
28199
|
+
"required": [
|
|
28200
|
+
"siteId",
|
|
28201
|
+
"setupId",
|
|
28202
|
+
"revision",
|
|
28203
|
+
"confirmed",
|
|
28204
|
+
"idempotencyKey"
|
|
28205
|
+
],
|
|
28206
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28207
|
+
},
|
|
28208
|
+
"annotations": {
|
|
28209
|
+
"title": "Apply X-Ray Site Setup",
|
|
28210
|
+
"readOnlyHint": false,
|
|
28211
|
+
"destructiveHint": false,
|
|
28212
|
+
"idempotentHint": true,
|
|
28213
|
+
"openWorldHint": true
|
|
28214
|
+
}
|
|
28215
|
+
},
|
|
28216
|
+
{
|
|
28217
|
+
"name": "analytics_create_experiment",
|
|
28218
|
+
"category": "analytics",
|
|
28219
|
+
"title": "Create X-Ray Experiment Draft",
|
|
28220
|
+
"description": "Create an owner-bound, preregistered experiment draft from a measured site. Requires a hypothesis, primary metric, guardrails, audience, duration, sample threshold, expiry, control, allocations, and only allowlisted visual operations. It never approves or activates the experiment.",
|
|
28221
|
+
"inputSchema": {
|
|
28222
|
+
"type": "object",
|
|
28223
|
+
"properties": {
|
|
28224
|
+
"siteId": {
|
|
28225
|
+
"type": "string",
|
|
28226
|
+
"format": "uuid",
|
|
28227
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28228
|
+
"description": "Authorized Analytics Site id."
|
|
28229
|
+
},
|
|
28230
|
+
"plan": {
|
|
28231
|
+
"type": "object",
|
|
28232
|
+
"properties": {
|
|
28233
|
+
"name": {
|
|
28234
|
+
"type": "string",
|
|
28235
|
+
"minLength": 1,
|
|
28236
|
+
"maxLength": 120,
|
|
28237
|
+
"description": "Owner-facing experiment name."
|
|
28238
|
+
},
|
|
28239
|
+
"hypothesis": {
|
|
28240
|
+
"type": "string",
|
|
28241
|
+
"minLength": 10,
|
|
28242
|
+
"maxLength": 500,
|
|
28243
|
+
"description": "Falsifiable prediction connecting the declared change to the primary metric."
|
|
28244
|
+
},
|
|
28245
|
+
"primaryMetricEvent": {
|
|
28246
|
+
"type": "string",
|
|
28247
|
+
"pattern": "^[a-z][a-z0-9_]{1,79}$",
|
|
28248
|
+
"description": "Persisted X-Ray event used as the sole primary outcome metric."
|
|
28249
|
+
},
|
|
28250
|
+
"guardrailEvents": {
|
|
28251
|
+
"default": [],
|
|
28252
|
+
"description": "Events monitored for unacceptable harm; these do not replace the primary metric.",
|
|
28253
|
+
"maxItems": 10,
|
|
28254
|
+
"type": "array",
|
|
28255
|
+
"items": {
|
|
28256
|
+
"type": "string",
|
|
28257
|
+
"pattern": "^[a-z][a-z0-9_]{1,79}$"
|
|
28258
|
+
}
|
|
28259
|
+
},
|
|
28260
|
+
"guardrailMaximumAbsoluteIncrease": {
|
|
28261
|
+
"default": 0.05,
|
|
28262
|
+
"description": "Maximum allowed absolute increase in any declared harm-event rate versus control before automatic pause.",
|
|
28263
|
+
"type": "number",
|
|
28264
|
+
"exclusiveMinimum": 0,
|
|
28265
|
+
"maximum": 1
|
|
28266
|
+
},
|
|
28267
|
+
"stoppingRule": {
|
|
28268
|
+
"default": {
|
|
28269
|
+
"method": "fixed_horizon",
|
|
28270
|
+
"actionOnSampleRatioMismatch": "pause",
|
|
28271
|
+
"actionOnGuardrailBreach": "pause",
|
|
28272
|
+
"winnerRequiresSignificance": true
|
|
28273
|
+
},
|
|
28274
|
+
"description": "Pre-registered stopping behavior; no continuous peeking or automatic winner rollout.",
|
|
28275
|
+
"type": "object",
|
|
28276
|
+
"properties": {
|
|
28277
|
+
"method": {
|
|
28278
|
+
"type": "string",
|
|
28279
|
+
"const": "fixed_horizon",
|
|
28280
|
+
"description": "Evaluate only after the registered minimum duration and sample."
|
|
28281
|
+
},
|
|
28282
|
+
"actionOnSampleRatioMismatch": {
|
|
28283
|
+
"type": "string",
|
|
28284
|
+
"const": "pause",
|
|
28285
|
+
"description": "Pause when assignment balance is invalid."
|
|
28286
|
+
},
|
|
28287
|
+
"actionOnGuardrailBreach": {
|
|
28288
|
+
"type": "string",
|
|
28289
|
+
"const": "pause",
|
|
28290
|
+
"description": "Pause when a registered harm guardrail is breached."
|
|
28291
|
+
},
|
|
28292
|
+
"winnerRequiresSignificance": {
|
|
28293
|
+
"type": "boolean",
|
|
28294
|
+
"const": true,
|
|
28295
|
+
"description": "Require the registered significance threshold before calling a winner."
|
|
28296
|
+
}
|
|
28297
|
+
},
|
|
28298
|
+
"required": [
|
|
28299
|
+
"method",
|
|
28300
|
+
"actionOnSampleRatioMismatch",
|
|
28301
|
+
"actionOnGuardrailBreach",
|
|
28302
|
+
"winnerRequiresSignificance"
|
|
28303
|
+
],
|
|
28304
|
+
"additionalProperties": false
|
|
28305
|
+
},
|
|
28306
|
+
"rollbackPlan": {
|
|
28307
|
+
"default": {
|
|
28308
|
+
"action": "restore_control",
|
|
28309
|
+
"triggers": [
|
|
28310
|
+
"pause",
|
|
28311
|
+
"kill",
|
|
28312
|
+
"expiry",
|
|
28313
|
+
"manifest_error",
|
|
28314
|
+
"selector_ambiguity",
|
|
28315
|
+
"performance_guardrail"
|
|
28316
|
+
]
|
|
28317
|
+
},
|
|
28318
|
+
"description": "Closed rollback contract executed by the Pixel.",
|
|
28319
|
+
"type": "object",
|
|
28320
|
+
"properties": {
|
|
28321
|
+
"action": {
|
|
28322
|
+
"type": "string",
|
|
28323
|
+
"const": "restore_control",
|
|
28324
|
+
"description": "Restore every captured control value."
|
|
28325
|
+
},
|
|
28326
|
+
"triggers": {
|
|
28327
|
+
"minItems": 6,
|
|
28328
|
+
"maxItems": 6,
|
|
28329
|
+
"type": "array",
|
|
28330
|
+
"items": {
|
|
28331
|
+
"type": "string",
|
|
28332
|
+
"enum": [
|
|
28333
|
+
"pause",
|
|
28334
|
+
"kill",
|
|
28335
|
+
"expiry",
|
|
28336
|
+
"manifest_error",
|
|
28337
|
+
"selector_ambiguity",
|
|
28338
|
+
"performance_guardrail"
|
|
28339
|
+
],
|
|
28340
|
+
"description": "Fail-to-control condition."
|
|
28341
|
+
},
|
|
28342
|
+
"description": "Complete closed rollback trigger set."
|
|
28343
|
+
}
|
|
28344
|
+
},
|
|
28345
|
+
"required": [
|
|
28346
|
+
"action",
|
|
28347
|
+
"triggers"
|
|
28348
|
+
],
|
|
28349
|
+
"additionalProperties": false
|
|
28350
|
+
},
|
|
28351
|
+
"performanceGuardrailMs": {
|
|
28352
|
+
"default": 16,
|
|
28353
|
+
"description": "Maximum synchronous DOM-application time before the Pixel restores control.",
|
|
28354
|
+
"type": "integer",
|
|
28355
|
+
"minimum": 1,
|
|
28356
|
+
"maximum": 50
|
|
28357
|
+
},
|
|
28358
|
+
"audience": {
|
|
28359
|
+
"type": "object",
|
|
28360
|
+
"properties": {
|
|
28361
|
+
"routePrefixes": {
|
|
28362
|
+
"minItems": 1,
|
|
28363
|
+
"maxItems": 25,
|
|
28364
|
+
"type": "array",
|
|
28365
|
+
"items": {
|
|
28366
|
+
"type": "string",
|
|
28367
|
+
"maxLength": 2e3,
|
|
28368
|
+
"pattern": "^\\/.*"
|
|
28369
|
+
},
|
|
28370
|
+
"description": "Approved route prefixes eligible for assignment."
|
|
28371
|
+
},
|
|
28372
|
+
"trafficClass": {
|
|
28373
|
+
"default": "production",
|
|
28374
|
+
"description": "Declared traffic population; canary state remains separately gated.",
|
|
28375
|
+
"type": "string",
|
|
28376
|
+
"enum": [
|
|
28377
|
+
"internal",
|
|
28378
|
+
"test",
|
|
28379
|
+
"production"
|
|
28380
|
+
]
|
|
28381
|
+
}
|
|
28382
|
+
},
|
|
28383
|
+
"required": [
|
|
28384
|
+
"routePrefixes"
|
|
28385
|
+
],
|
|
28386
|
+
"additionalProperties": false,
|
|
28387
|
+
"description": "Bounded route and traffic audience."
|
|
28388
|
+
},
|
|
28389
|
+
"assignmentUnit": {
|
|
28390
|
+
"default": "visitor",
|
|
28391
|
+
"description": "Stable mutually exclusive assignment unit.",
|
|
28392
|
+
"type": "string",
|
|
28393
|
+
"enum": [
|
|
28394
|
+
"visitor",
|
|
28395
|
+
"session"
|
|
28396
|
+
]
|
|
28397
|
+
},
|
|
28398
|
+
"minimumDurationHours": {
|
|
28399
|
+
"type": "integer",
|
|
28400
|
+
"minimum": 24,
|
|
28401
|
+
"maximum": 2160,
|
|
28402
|
+
"description": "Minimum active hours before a result may be called."
|
|
28403
|
+
},
|
|
28404
|
+
"minimumExposures": {
|
|
28405
|
+
"type": "integer",
|
|
28406
|
+
"minimum": 100,
|
|
28407
|
+
"maximum": 1e7,
|
|
28408
|
+
"description": "Minimum visible variant exposures before evaluation."
|
|
28409
|
+
},
|
|
28410
|
+
"minimumDetectableEffect": {
|
|
28411
|
+
"type": "number",
|
|
28412
|
+
"exclusiveMinimum": 0,
|
|
28413
|
+
"maximum": 1,
|
|
28414
|
+
"description": "Smallest absolute effect worth detecting, expressed from 0 to 1."
|
|
28415
|
+
},
|
|
28416
|
+
"alpha": {
|
|
28417
|
+
"default": 0.05,
|
|
28418
|
+
"description": "Pre-registered false-positive threshold.",
|
|
28419
|
+
"type": "number",
|
|
28420
|
+
"exclusiveMinimum": 0,
|
|
28421
|
+
"maximum": 0.2
|
|
28422
|
+
},
|
|
28423
|
+
"power": {
|
|
28424
|
+
"default": 0.8,
|
|
28425
|
+
"description": "Pre-registered statistical power target.",
|
|
28426
|
+
"type": "number",
|
|
28427
|
+
"minimum": 0.7,
|
|
28428
|
+
"maximum": 0.99
|
|
28429
|
+
},
|
|
28430
|
+
"variants": {
|
|
28431
|
+
"minItems": 2,
|
|
28432
|
+
"maxItems": 8,
|
|
28433
|
+
"type": "array",
|
|
28434
|
+
"items": {
|
|
28435
|
+
"type": "object",
|
|
28436
|
+
"properties": {
|
|
28437
|
+
"variantId": {
|
|
28438
|
+
"type": "string",
|
|
28439
|
+
"pattern": "^[a-z][a-z0-9_-]{1,79}$",
|
|
28440
|
+
"description": "Stable variant identifier."
|
|
28441
|
+
},
|
|
28442
|
+
"label": {
|
|
28443
|
+
"type": "string",
|
|
28444
|
+
"minLength": 1,
|
|
28445
|
+
"maxLength": 120,
|
|
28446
|
+
"description": "Owner-facing variant label."
|
|
28447
|
+
},
|
|
28448
|
+
"allocation": {
|
|
28449
|
+
"type": "number",
|
|
28450
|
+
"exclusiveMinimum": 0,
|
|
28451
|
+
"maximum": 1,
|
|
28452
|
+
"description": "Traffic allocation from 0 to 1; all variants must total 1."
|
|
28453
|
+
},
|
|
28454
|
+
"operations": {
|
|
28455
|
+
"maxItems": 12,
|
|
28456
|
+
"type": "array",
|
|
28457
|
+
"items": {
|
|
28458
|
+
"oneOf": [
|
|
28459
|
+
{
|
|
28460
|
+
"type": "object",
|
|
28461
|
+
"properties": {
|
|
28462
|
+
"kind": {
|
|
28463
|
+
"type": "string",
|
|
28464
|
+
"const": "replace_text",
|
|
28465
|
+
"description": "Replace plain text only."
|
|
28466
|
+
},
|
|
28467
|
+
"selector": {
|
|
28468
|
+
"type": "string",
|
|
28469
|
+
"minLength": 1,
|
|
28470
|
+
"maxLength": 500,
|
|
28471
|
+
"description": "Unique bounded CSS selector."
|
|
28472
|
+
},
|
|
28473
|
+
"text": {
|
|
28474
|
+
"type": "string",
|
|
28475
|
+
"maxLength": 240,
|
|
28476
|
+
"description": "Replacement text without markup."
|
|
28477
|
+
}
|
|
28478
|
+
},
|
|
28479
|
+
"required": [
|
|
28480
|
+
"kind",
|
|
28481
|
+
"selector",
|
|
28482
|
+
"text"
|
|
28483
|
+
],
|
|
28484
|
+
"additionalProperties": false
|
|
28485
|
+
},
|
|
28486
|
+
{
|
|
28487
|
+
"type": "object",
|
|
28488
|
+
"properties": {
|
|
28489
|
+
"kind": {
|
|
28490
|
+
"type": "string",
|
|
28491
|
+
"const": "set_style_token",
|
|
28492
|
+
"description": "Apply one product-owned style token."
|
|
28493
|
+
},
|
|
28494
|
+
"selector": {
|
|
28495
|
+
"type": "string",
|
|
28496
|
+
"minLength": 1,
|
|
28497
|
+
"maxLength": 500,
|
|
28498
|
+
"description": "Unique bounded CSS selector."
|
|
28499
|
+
},
|
|
28500
|
+
"token": {
|
|
28501
|
+
"type": "string",
|
|
28502
|
+
"enum": [
|
|
28503
|
+
"cta_primary",
|
|
28504
|
+
"cta_secondary",
|
|
28505
|
+
"cta_contrast",
|
|
28506
|
+
"muted",
|
|
28507
|
+
"highlight"
|
|
28508
|
+
],
|
|
28509
|
+
"description": "Allowlisted style token."
|
|
28510
|
+
}
|
|
28511
|
+
},
|
|
28512
|
+
"required": [
|
|
28513
|
+
"kind",
|
|
28514
|
+
"selector",
|
|
28515
|
+
"token"
|
|
28516
|
+
],
|
|
28517
|
+
"additionalProperties": false
|
|
28518
|
+
},
|
|
28519
|
+
{
|
|
28520
|
+
"type": "object",
|
|
28521
|
+
"properties": {
|
|
28522
|
+
"kind": {
|
|
28523
|
+
"type": "string",
|
|
28524
|
+
"const": "swap_image",
|
|
28525
|
+
"description": "Swap one image using HTTPS."
|
|
28526
|
+
},
|
|
28527
|
+
"selector": {
|
|
28528
|
+
"type": "string",
|
|
28529
|
+
"minLength": 1,
|
|
28530
|
+
"maxLength": 500,
|
|
28531
|
+
"description": "Unique image selector."
|
|
28532
|
+
},
|
|
28533
|
+
"src": {
|
|
28534
|
+
"type": "string",
|
|
28535
|
+
"maxLength": 2e3,
|
|
28536
|
+
"format": "uri",
|
|
28537
|
+
"description": "HTTPS image URL."
|
|
28538
|
+
},
|
|
28539
|
+
"alt": {
|
|
28540
|
+
"type": "string",
|
|
28541
|
+
"maxLength": 240,
|
|
28542
|
+
"description": "Required bounded alternative text."
|
|
28543
|
+
}
|
|
28544
|
+
},
|
|
28545
|
+
"required": [
|
|
28546
|
+
"kind",
|
|
28547
|
+
"selector",
|
|
28548
|
+
"src",
|
|
28549
|
+
"alt"
|
|
28550
|
+
],
|
|
28551
|
+
"additionalProperties": false
|
|
28552
|
+
},
|
|
28553
|
+
{
|
|
28554
|
+
"type": "object",
|
|
28555
|
+
"properties": {
|
|
28556
|
+
"kind": {
|
|
28557
|
+
"type": "string",
|
|
28558
|
+
"const": "move_relative",
|
|
28559
|
+
"description": "Move one sibling before or after another."
|
|
28560
|
+
},
|
|
28561
|
+
"selector": {
|
|
28562
|
+
"type": "string",
|
|
28563
|
+
"minLength": 1,
|
|
28564
|
+
"maxLength": 500,
|
|
28565
|
+
"description": "Unique element selector."
|
|
28566
|
+
},
|
|
28567
|
+
"anchorSelector": {
|
|
28568
|
+
"type": "string",
|
|
28569
|
+
"minLength": 1,
|
|
28570
|
+
"maxLength": 500,
|
|
28571
|
+
"description": "Unique sibling anchor selector."
|
|
28572
|
+
},
|
|
28573
|
+
"position": {
|
|
28574
|
+
"type": "string",
|
|
28575
|
+
"enum": [
|
|
28576
|
+
"before",
|
|
28577
|
+
"after"
|
|
28578
|
+
],
|
|
28579
|
+
"description": "Placement relative to the anchor."
|
|
28580
|
+
}
|
|
28581
|
+
},
|
|
28582
|
+
"required": [
|
|
28583
|
+
"kind",
|
|
28584
|
+
"selector",
|
|
28585
|
+
"anchorSelector",
|
|
28586
|
+
"position"
|
|
28587
|
+
],
|
|
28588
|
+
"additionalProperties": false
|
|
28589
|
+
},
|
|
28590
|
+
{
|
|
28591
|
+
"type": "object",
|
|
28592
|
+
"properties": {
|
|
28593
|
+
"kind": {
|
|
28594
|
+
"type": "string",
|
|
28595
|
+
"const": "set_visibility",
|
|
28596
|
+
"description": "Show or hide one unique element."
|
|
28597
|
+
},
|
|
28598
|
+
"selector": {
|
|
28599
|
+
"type": "string",
|
|
28600
|
+
"minLength": 1,
|
|
28601
|
+
"maxLength": 500,
|
|
28602
|
+
"description": "Unique bounded CSS selector."
|
|
28603
|
+
},
|
|
28604
|
+
"visible": {
|
|
28605
|
+
"type": "boolean",
|
|
28606
|
+
"description": "Whether the selected element should be visible."
|
|
28607
|
+
}
|
|
28608
|
+
},
|
|
28609
|
+
"required": [
|
|
28610
|
+
"kind",
|
|
28611
|
+
"selector",
|
|
28612
|
+
"visible"
|
|
28613
|
+
],
|
|
28614
|
+
"additionalProperties": false
|
|
28615
|
+
}
|
|
28616
|
+
]
|
|
28617
|
+
},
|
|
28618
|
+
"description": "Closed, data-only presentation operations; an empty list is the control."
|
|
28619
|
+
}
|
|
28620
|
+
},
|
|
28621
|
+
"required": [
|
|
28622
|
+
"variantId",
|
|
28623
|
+
"label",
|
|
28624
|
+
"allocation",
|
|
28625
|
+
"operations"
|
|
28626
|
+
],
|
|
28627
|
+
"additionalProperties": false,
|
|
28628
|
+
"description": "One control or treatment variant."
|
|
28629
|
+
},
|
|
28630
|
+
"description": "Two to eight mutually exclusive variants including one control."
|
|
28631
|
+
},
|
|
28632
|
+
"expiresAt": {
|
|
28633
|
+
"type": "string",
|
|
28634
|
+
"format": "date-time",
|
|
28635
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
|
|
28636
|
+
"description": "Hard experiment expiry; the Pixel rolls back after this instant."
|
|
28637
|
+
}
|
|
28638
|
+
},
|
|
28639
|
+
"required": [
|
|
28640
|
+
"name",
|
|
28641
|
+
"hypothesis",
|
|
28642
|
+
"primaryMetricEvent",
|
|
28643
|
+
"audience",
|
|
28644
|
+
"minimumDurationHours",
|
|
28645
|
+
"minimumExposures",
|
|
28646
|
+
"minimumDetectableEffect",
|
|
28647
|
+
"variants",
|
|
28648
|
+
"expiresAt"
|
|
28649
|
+
],
|
|
28650
|
+
"additionalProperties": false,
|
|
28651
|
+
"description": "Preregistered hypothesis, metric, audience, sample requirements, expiry, allocations, and allowlisted visual operations. One control variant must have no operations."
|
|
28652
|
+
},
|
|
28653
|
+
"idempotencyKey": {
|
|
28654
|
+
"type": "string",
|
|
28655
|
+
"minLength": 8,
|
|
28656
|
+
"maxLength": 160,
|
|
28657
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
28658
|
+
}
|
|
28659
|
+
},
|
|
28660
|
+
"required": [
|
|
28661
|
+
"siteId",
|
|
28662
|
+
"plan",
|
|
28663
|
+
"idempotencyKey"
|
|
28664
|
+
],
|
|
28665
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28666
|
+
},
|
|
28667
|
+
"annotations": {
|
|
28668
|
+
"title": "Create X-Ray Experiment Draft",
|
|
28669
|
+
"readOnlyHint": false,
|
|
28670
|
+
"destructiveHint": false,
|
|
28671
|
+
"idempotentHint": true,
|
|
28672
|
+
"openWorldHint": false
|
|
28673
|
+
}
|
|
28674
|
+
},
|
|
28675
|
+
{
|
|
28676
|
+
"name": "analytics_get_experiment",
|
|
28677
|
+
"category": "analytics",
|
|
28678
|
+
"title": "Get X-Ray Experiment",
|
|
28679
|
+
"description": "Read the preregistered plan, exact state, assignment counts, exposures, outcomes, and decision status for one authorized experiment. Browser intent is never reported as a terminal business outcome.",
|
|
28680
|
+
"inputSchema": {
|
|
28681
|
+
"type": "object",
|
|
28682
|
+
"properties": {
|
|
28683
|
+
"siteId": {
|
|
28684
|
+
"type": "string",
|
|
28685
|
+
"format": "uuid",
|
|
28686
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28687
|
+
"description": "Authorized Analytics Site id."
|
|
28688
|
+
},
|
|
28689
|
+
"experimentId": {
|
|
28690
|
+
"type": "string",
|
|
28691
|
+
"format": "uuid",
|
|
28692
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28693
|
+
"description": "Owner-bound experiment id returned by analytics_create_experiment."
|
|
28694
|
+
}
|
|
28695
|
+
},
|
|
28696
|
+
"required": [
|
|
28697
|
+
"siteId",
|
|
28698
|
+
"experimentId"
|
|
28699
|
+
],
|
|
28700
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28701
|
+
},
|
|
28702
|
+
"annotations": {
|
|
28703
|
+
"title": "Get X-Ray Experiment",
|
|
28704
|
+
"readOnlyHint": true,
|
|
28705
|
+
"destructiveHint": false,
|
|
28706
|
+
"idempotentHint": true,
|
|
28707
|
+
"openWorldHint": false
|
|
28708
|
+
}
|
|
28709
|
+
},
|
|
28710
|
+
{
|
|
28711
|
+
"name": "analytics_prepare_site_setup",
|
|
28712
|
+
"category": "analytics",
|
|
28713
|
+
"title": "Prepare X-Ray Site Setup",
|
|
28714
|
+
"description": "Inspect the public site and prepare an expiring measurement plan for an already installed X-Ray tag. No repository access, credentials, code changes, visitor delivery, or MCP Scraper Credits.",
|
|
28715
|
+
"inputSchema": {
|
|
28716
|
+
"type": "object",
|
|
28717
|
+
"properties": {
|
|
28718
|
+
"siteId": {
|
|
28719
|
+
"type": "string",
|
|
28720
|
+
"format": "uuid",
|
|
28721
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28722
|
+
"description": "Authorized Analytics Site id returned by analytics_list_sites."
|
|
28723
|
+
},
|
|
28724
|
+
"startUrl": {
|
|
28725
|
+
"type": "string",
|
|
28726
|
+
"maxLength": 3e3,
|
|
28727
|
+
"format": "uri",
|
|
28728
|
+
"description": "Public same-origin URL from which X-Ray discovers bounded routes and rendering surfaces."
|
|
28729
|
+
},
|
|
28730
|
+
"goal": {
|
|
28731
|
+
"type": "string",
|
|
28732
|
+
"minLength": 1,
|
|
28733
|
+
"maxLength": 500,
|
|
28734
|
+
"description": "Plain-language customer outcome to measure; do not paste credentials, source code, form contents, or visitor data."
|
|
28735
|
+
},
|
|
28736
|
+
"businessModel": {
|
|
28737
|
+
"description": "Optional user-confirmed model; omit to receive an evidence-backed recommendation.",
|
|
28738
|
+
"type": "string",
|
|
28739
|
+
"enum": [
|
|
28740
|
+
"saas",
|
|
28741
|
+
"lead_generation",
|
|
28742
|
+
"ecommerce"
|
|
28743
|
+
]
|
|
28744
|
+
},
|
|
28745
|
+
"scope": {
|
|
28746
|
+
"default": "same_origin",
|
|
28747
|
+
"description": "Bounded route discovery scope; neither mode authorizes third-party crawling.",
|
|
28748
|
+
"type": "string",
|
|
28749
|
+
"enum": [
|
|
28750
|
+
"same_origin",
|
|
28751
|
+
"sitemap"
|
|
28752
|
+
]
|
|
28753
|
+
},
|
|
28754
|
+
"maxPages": {
|
|
28755
|
+
"default": 50,
|
|
28756
|
+
"description": "Maximum pages inspected under the X-Ray entitlement; this consumes zero MCP Scraper Credits.",
|
|
28757
|
+
"type": "integer",
|
|
28758
|
+
"minimum": 1,
|
|
28759
|
+
"maximum": 250
|
|
28760
|
+
},
|
|
28761
|
+
"pixelId": {
|
|
28762
|
+
"description": "Optional existing Pixel belonging to the Site; omit to let the service resolve the canonical Pixel.",
|
|
28763
|
+
"type": "string",
|
|
28764
|
+
"format": "uuid",
|
|
28765
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
28766
|
+
},
|
|
28767
|
+
"consentMode": {
|
|
28768
|
+
"default": "required",
|
|
28769
|
+
"description": "Consent expectation for non-delivering discovery. It never grants a visitor consent choice.",
|
|
28770
|
+
"type": "string",
|
|
28771
|
+
"enum": [
|
|
28772
|
+
"required",
|
|
28773
|
+
"granted_test",
|
|
28774
|
+
"unknown"
|
|
28775
|
+
]
|
|
28776
|
+
}
|
|
28777
|
+
},
|
|
28778
|
+
"required": [
|
|
28779
|
+
"siteId",
|
|
28780
|
+
"startUrl"
|
|
28781
|
+
],
|
|
28782
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28783
|
+
},
|
|
28784
|
+
"annotations": {
|
|
28785
|
+
"title": "Prepare X-Ray Site Setup",
|
|
28786
|
+
"readOnlyHint": true,
|
|
28787
|
+
"destructiveHint": false,
|
|
28788
|
+
"idempotentHint": false,
|
|
28789
|
+
"openWorldHint": true
|
|
28790
|
+
}
|
|
28791
|
+
},
|
|
28792
|
+
{
|
|
28793
|
+
"name": "analytics_set_experiment_state",
|
|
28794
|
+
"category": "analytics",
|
|
28795
|
+
"title": "Set X-Ray Experiment State",
|
|
28796
|
+
"description": "Approve, canary, activate, pause, kill, or archive one exact experiment revision. Approval and visitor activation are separate confirmed steps. Activation publishes the signed tag manifest; pause and kill publish rollback. Reuse the same idempotency key only for the identical transition.",
|
|
28797
|
+
"inputSchema": {
|
|
28798
|
+
"type": "object",
|
|
28799
|
+
"properties": {
|
|
28800
|
+
"siteId": {
|
|
28801
|
+
"type": "string",
|
|
28802
|
+
"format": "uuid",
|
|
28803
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28804
|
+
"description": "Authorized Analytics Site id."
|
|
28805
|
+
},
|
|
28806
|
+
"experimentId": {
|
|
28807
|
+
"type": "string",
|
|
28808
|
+
"format": "uuid",
|
|
28809
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28810
|
+
"description": "Owner-bound experiment id returned by analytics_create_experiment."
|
|
28811
|
+
},
|
|
28812
|
+
"revision": {
|
|
28813
|
+
"type": "integer",
|
|
28814
|
+
"exclusiveMinimum": 0,
|
|
28815
|
+
"maximum": 9007199254740991,
|
|
28816
|
+
"description": "Exact experiment revision being changed."
|
|
28817
|
+
},
|
|
28818
|
+
"operation": {
|
|
28819
|
+
"type": "string",
|
|
28820
|
+
"enum": [
|
|
28821
|
+
"approve",
|
|
28822
|
+
"activate_canary",
|
|
28823
|
+
"activate",
|
|
28824
|
+
"pause",
|
|
28825
|
+
"kill",
|
|
28826
|
+
"archive"
|
|
28827
|
+
],
|
|
28828
|
+
"description": "Approval and activation are distinct operations. Pause and kill publish rollback immediately."
|
|
28829
|
+
},
|
|
28830
|
+
"confirmed": {
|
|
28831
|
+
"description": "Required for approve, activate_canary, and activate. This confirms only the exact state transition.",
|
|
28832
|
+
"type": "boolean",
|
|
28833
|
+
"const": true
|
|
28834
|
+
},
|
|
28835
|
+
"idempotencyKey": {
|
|
28836
|
+
"type": "string",
|
|
28837
|
+
"minLength": 8,
|
|
28838
|
+
"maxLength": 160,
|
|
28839
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
28840
|
+
}
|
|
28841
|
+
},
|
|
28842
|
+
"required": [
|
|
28843
|
+
"siteId",
|
|
28844
|
+
"experimentId",
|
|
28845
|
+
"revision",
|
|
28846
|
+
"operation",
|
|
28847
|
+
"idempotencyKey"
|
|
28848
|
+
],
|
|
28849
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28850
|
+
},
|
|
28851
|
+
"annotations": {
|
|
28852
|
+
"title": "Set X-Ray Experiment State",
|
|
28853
|
+
"readOnlyHint": false,
|
|
28854
|
+
"destructiveHint": true,
|
|
28855
|
+
"idempotentHint": true,
|
|
28856
|
+
"openWorldHint": false
|
|
28857
|
+
}
|
|
28858
|
+
},
|
|
28859
|
+
{
|
|
28860
|
+
"name": "analytics_setup_site",
|
|
28861
|
+
"category": "analytics",
|
|
28862
|
+
"title": "Install X-Ray on a Site",
|
|
28863
|
+
"description": "Use for \u201Cset up X-Ray\u201D or \u201Ctell me what drives customers.\u201D One installed X-Ray tag loads a digest-bound, versioned measurement manifest across approved pages; GitHub access is not required. State is a durable owner-bound setupId and revision, never a browser session. Setup charges zero MCP Scraper Credits. Apply publishes measurement rules only. Experiment approval and activation are separate. Returns exactly one honest next action.",
|
|
28864
|
+
"inputSchema": {
|
|
28865
|
+
"type": "object",
|
|
28866
|
+
"properties": {
|
|
28867
|
+
"siteId": {
|
|
28868
|
+
"description": "Authorized Analytics Site id. Supply siteId or startUrl on the first call.",
|
|
28869
|
+
"type": "string",
|
|
28870
|
+
"format": "uuid",
|
|
28871
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
28872
|
+
},
|
|
28873
|
+
"startUrl": {
|
|
28874
|
+
"description": "Public same-origin URL to set up. Supply only when siteId is not yet known.",
|
|
28875
|
+
"type": "string",
|
|
28876
|
+
"maxLength": 3e3,
|
|
28877
|
+
"format": "uri"
|
|
28878
|
+
},
|
|
28879
|
+
"goal": {
|
|
28880
|
+
"type": "string",
|
|
28881
|
+
"minLength": 1,
|
|
28882
|
+
"maxLength": 500,
|
|
28883
|
+
"description": "Plain-language customer outcome to measure; do not paste credentials, source code, form contents, or visitor data."
|
|
28884
|
+
},
|
|
28885
|
+
"setupId": {
|
|
28886
|
+
"description": "Reuse to continue an existing durable setup after approval, deployment, or reconnecting.",
|
|
28887
|
+
"type": "string",
|
|
28888
|
+
"format": "uuid",
|
|
28889
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
28890
|
+
},
|
|
28891
|
+
"revision": {
|
|
28892
|
+
"type": "integer",
|
|
28893
|
+
"exclusiveMinimum": 0,
|
|
28894
|
+
"maximum": 9007199254740991,
|
|
28895
|
+
"description": "Exact current setup revision. Reload stale revisions before any mutation or canary."
|
|
28896
|
+
},
|
|
28897
|
+
"businessModel": {
|
|
28898
|
+
"description": "Optional explicit business model; omit to infer it from bounded site evidence.",
|
|
28899
|
+
"type": "string",
|
|
28900
|
+
"enum": [
|
|
28901
|
+
"saas",
|
|
28902
|
+
"lead_generation",
|
|
28903
|
+
"ecommerce"
|
|
28904
|
+
]
|
|
28905
|
+
},
|
|
28906
|
+
"goalAction": {
|
|
28907
|
+
"default": "continue",
|
|
28908
|
+
"description": "Desired lifecycle step. Continue lets the fa\xE7ade select the single safe next operation from durable state.",
|
|
28909
|
+
"type": "string",
|
|
28910
|
+
"enum": [
|
|
28911
|
+
"continue",
|
|
28912
|
+
"prepare",
|
|
28913
|
+
"apply",
|
|
28914
|
+
"verify",
|
|
28915
|
+
"first_answers"
|
|
28916
|
+
]
|
|
28917
|
+
},
|
|
28918
|
+
"authority": {
|
|
28919
|
+
"description": "Source authority or ownership context supporting this content.",
|
|
28920
|
+
"type": "object",
|
|
28921
|
+
"properties": {
|
|
28922
|
+
"confirmed": {
|
|
28923
|
+
"description": "Confirms publishing this exact setup revision to the installed X-Ray tag runtime. It does not authorize a visitor experiment.",
|
|
28924
|
+
"type": "boolean",
|
|
28925
|
+
"const": true
|
|
28926
|
+
},
|
|
28927
|
+
"confirmedCanary": {
|
|
28928
|
+
"description": "Separately authorizes labeled verification canaries for this exact revision; it does not authorize apply, merge, or deploy.",
|
|
28929
|
+
"type": "boolean",
|
|
28930
|
+
"const": true
|
|
28931
|
+
}
|
|
28932
|
+
},
|
|
28933
|
+
"additionalProperties": false
|
|
28934
|
+
},
|
|
28935
|
+
"idempotencyKey": {
|
|
28936
|
+
"description": "Required only for apply or canary-capable verify; reuse for the exact same intent after an unknown result.",
|
|
28937
|
+
"type": "string",
|
|
28938
|
+
"minLength": 8,
|
|
28939
|
+
"maxLength": 160
|
|
28940
|
+
}
|
|
28941
|
+
},
|
|
28942
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28943
|
+
},
|
|
28944
|
+
"annotations": {
|
|
28945
|
+
"title": "Install X-Ray on a Site",
|
|
28946
|
+
"readOnlyHint": false,
|
|
28947
|
+
"destructiveHint": false,
|
|
28948
|
+
"idempotentHint": false,
|
|
28949
|
+
"openWorldHint": true
|
|
28950
|
+
}
|
|
28951
|
+
},
|
|
28952
|
+
{
|
|
28953
|
+
"name": "analytics_verify_site_setup",
|
|
28954
|
+
"category": "analytics",
|
|
28955
|
+
"title": "Verify X-Ray Site Setup",
|
|
28956
|
+
"description": "Expert live proof. Defaults non-delivering; confirmedCanary allows labeled canaries. A PR/build is not deployed definition or outcome proof.",
|
|
28957
|
+
"inputSchema": {
|
|
28958
|
+
"type": "object",
|
|
28959
|
+
"properties": {
|
|
28960
|
+
"siteId": {
|
|
28961
|
+
"type": "string",
|
|
28962
|
+
"format": "uuid",
|
|
28963
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28964
|
+
"description": "Authorized Analytics Site id owning the setup."
|
|
28965
|
+
},
|
|
28966
|
+
"setupId": {
|
|
28967
|
+
"type": "string",
|
|
28968
|
+
"format": "uuid",
|
|
28969
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
28970
|
+
"description": "Durable owner-bound setup id returned by an X-Ray setup operation; it is not a browser session id."
|
|
28971
|
+
},
|
|
28972
|
+
"revision": {
|
|
28973
|
+
"type": "integer",
|
|
28974
|
+
"exclusiveMinimum": 0,
|
|
28975
|
+
"maximum": 9007199254740991,
|
|
28976
|
+
"description": "Exact current setup revision. Reload stale revisions before any mutation or canary."
|
|
28977
|
+
},
|
|
28978
|
+
"confirmedCanary": {
|
|
28979
|
+
"description": "Omit for non-delivering interception. True separately authorizes only labeled, bounded canaries; it does not authorize merge or deploy.",
|
|
28980
|
+
"type": "boolean",
|
|
28981
|
+
"const": true
|
|
28982
|
+
},
|
|
28983
|
+
"idempotencyKey": {
|
|
28984
|
+
"type": "string",
|
|
28985
|
+
"minLength": 8,
|
|
28986
|
+
"maxLength": 160,
|
|
28987
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
28988
|
+
}
|
|
28989
|
+
},
|
|
28990
|
+
"required": [
|
|
28991
|
+
"siteId",
|
|
28992
|
+
"setupId",
|
|
28993
|
+
"revision",
|
|
28994
|
+
"idempotencyKey"
|
|
28995
|
+
],
|
|
28996
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
28997
|
+
},
|
|
28998
|
+
"annotations": {
|
|
28999
|
+
"title": "Verify X-Ray Site Setup",
|
|
29000
|
+
"readOnlyHint": false,
|
|
29001
|
+
"destructiveHint": false,
|
|
29002
|
+
"idempotentHint": true,
|
|
29003
|
+
"openWorldHint": true
|
|
29004
|
+
}
|
|
29005
|
+
},
|
|
29006
|
+
{
|
|
29007
|
+
"name": "analytics_apply_revenue_source",
|
|
29008
|
+
"category": "analytics",
|
|
29009
|
+
"title": "Apply SaaS Revenue Authority",
|
|
29010
|
+
"description": "Apply one exact reviewed revenue-source revision using an idempotency key. It binds an authorized provider account and authority role; it never accepts credentials and does not claim the source live before provider receipt verification.",
|
|
29011
|
+
"inputSchema": {
|
|
29012
|
+
"type": "object",
|
|
29013
|
+
"properties": {
|
|
29014
|
+
"siteId": {
|
|
29015
|
+
"type": "string",
|
|
29016
|
+
"format": "uuid",
|
|
29017
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29018
|
+
"description": "Authorized Analytics Site id."
|
|
29019
|
+
},
|
|
29020
|
+
"setupId": {
|
|
29021
|
+
"type": "string",
|
|
29022
|
+
"format": "uuid",
|
|
29023
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29024
|
+
"description": "Owner-bound revenue setup id returned by prepare or the facade."
|
|
29025
|
+
},
|
|
29026
|
+
"revision": {
|
|
29027
|
+
"type": "integer",
|
|
29028
|
+
"exclusiveMinimum": 0,
|
|
29029
|
+
"maximum": 9007199254740991,
|
|
29030
|
+
"description": "Exact current revenue setup revision; reload before retrying a stale mutation."
|
|
29031
|
+
},
|
|
29032
|
+
"confirmed": {
|
|
29033
|
+
"type": "boolean",
|
|
29034
|
+
"const": true,
|
|
29035
|
+
"description": "Confirms this exact provider account, role, and event-family revision."
|
|
29036
|
+
},
|
|
29037
|
+
"idempotencyKey": {
|
|
29038
|
+
"type": "string",
|
|
29039
|
+
"minLength": 8,
|
|
29040
|
+
"maxLength": 160,
|
|
29041
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
29042
|
+
}
|
|
29043
|
+
},
|
|
29044
|
+
"required": [
|
|
29045
|
+
"siteId",
|
|
29046
|
+
"setupId",
|
|
29047
|
+
"revision",
|
|
29048
|
+
"confirmed",
|
|
29049
|
+
"idempotencyKey"
|
|
29050
|
+
],
|
|
29051
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29052
|
+
},
|
|
29053
|
+
"annotations": {
|
|
29054
|
+
"title": "Apply SaaS Revenue Authority",
|
|
29055
|
+
"readOnlyHint": false,
|
|
29056
|
+
"destructiveHint": false,
|
|
29057
|
+
"idempotentHint": true,
|
|
29058
|
+
"openWorldHint": true
|
|
29059
|
+
}
|
|
29060
|
+
},
|
|
29061
|
+
{
|
|
29062
|
+
"name": "analytics_create_post_purchase_survey",
|
|
29063
|
+
"category": "analytics",
|
|
29064
|
+
"title": "Create Post-Purchase Survey Draft",
|
|
29065
|
+
"description": "Create an idempotent, structured, contact-free post-purchase survey draft. Customer answers remain reported influence and cannot establish identity, mutate CRM, qualify activation, or change observed touches.",
|
|
29066
|
+
"inputSchema": {
|
|
29067
|
+
"type": "object",
|
|
29068
|
+
"properties": {
|
|
29069
|
+
"siteId": {
|
|
29070
|
+
"type": "string",
|
|
29071
|
+
"format": "uuid",
|
|
29072
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29073
|
+
"description": "Authorized Analytics Site id."
|
|
29074
|
+
},
|
|
29075
|
+
"name": {
|
|
29076
|
+
"type": "string",
|
|
29077
|
+
"minLength": 1,
|
|
29078
|
+
"maxLength": 160,
|
|
29079
|
+
"description": "Owner-facing survey name."
|
|
29080
|
+
},
|
|
29081
|
+
"question": {
|
|
29082
|
+
"type": "string",
|
|
29083
|
+
"minLength": 1,
|
|
29084
|
+
"maxLength": 500,
|
|
29085
|
+
"description": "Customer-visible structured influence question; do not request contact data or free text."
|
|
29086
|
+
},
|
|
29087
|
+
"selectionMode": {
|
|
29088
|
+
"type": "string",
|
|
29089
|
+
"enum": [
|
|
29090
|
+
"single",
|
|
29091
|
+
"multiple"
|
|
29092
|
+
],
|
|
29093
|
+
"description": "Whether a respondent may select one influence or several."
|
|
29094
|
+
},
|
|
29095
|
+
"eligibleOutcomeFamilies": {
|
|
29096
|
+
"minItems": 1,
|
|
29097
|
+
"maxItems": 20,
|
|
29098
|
+
"type": "array",
|
|
29099
|
+
"items": {
|
|
29100
|
+
"type": "string",
|
|
29101
|
+
"minLength": 1,
|
|
29102
|
+
"maxLength": 80
|
|
29103
|
+
},
|
|
29104
|
+
"description": "Authoritative outcome families eligible to receive an invitation."
|
|
29105
|
+
},
|
|
29106
|
+
"exchangeTtlSeconds": {
|
|
29107
|
+
"type": "integer",
|
|
29108
|
+
"minimum": 60,
|
|
29109
|
+
"maximum": 86400,
|
|
29110
|
+
"description": "Short-lived merchant exchange-code lifetime."
|
|
29111
|
+
},
|
|
29112
|
+
"sessionTtlSeconds": {
|
|
29113
|
+
"type": "integer",
|
|
29114
|
+
"minimum": 60,
|
|
29115
|
+
"maximum": 86400,
|
|
29116
|
+
"description": "Hosted survey session lifetime after one-time exchange."
|
|
29117
|
+
},
|
|
29118
|
+
"approvedCopyId": {
|
|
29119
|
+
"description": "Versioned privacy disclosure approval. A draft may omit it; production publication may not.",
|
|
29120
|
+
"anyOf": [
|
|
29121
|
+
{
|
|
29122
|
+
"type": "string",
|
|
29123
|
+
"minLength": 1,
|
|
29124
|
+
"maxLength": 200
|
|
29125
|
+
},
|
|
29126
|
+
{
|
|
29127
|
+
"type": "null"
|
|
29128
|
+
}
|
|
29129
|
+
]
|
|
29130
|
+
},
|
|
29131
|
+
"options": {
|
|
29132
|
+
"minItems": 2,
|
|
29133
|
+
"maxItems": 20,
|
|
29134
|
+
"type": "array",
|
|
29135
|
+
"items": {
|
|
29136
|
+
"type": "object",
|
|
29137
|
+
"properties": {
|
|
29138
|
+
"optionId": {
|
|
29139
|
+
"type": "string",
|
|
29140
|
+
"minLength": 1,
|
|
29141
|
+
"maxLength": 80,
|
|
29142
|
+
"description": "Stable opaque option id; changing a label never changes this id."
|
|
29143
|
+
},
|
|
29144
|
+
"label": {
|
|
29145
|
+
"type": "string",
|
|
29146
|
+
"minLength": 1,
|
|
29147
|
+
"maxLength": 160,
|
|
29148
|
+
"description": "Bounded owner-authored influence label. Free-text customer testimony is not accepted."
|
|
29149
|
+
}
|
|
29150
|
+
},
|
|
29151
|
+
"required": [
|
|
29152
|
+
"optionId",
|
|
29153
|
+
"label"
|
|
29154
|
+
],
|
|
29155
|
+
"additionalProperties": false
|
|
29156
|
+
},
|
|
29157
|
+
"description": "Two to twenty stable structured influences."
|
|
29158
|
+
},
|
|
29159
|
+
"idempotencyKey": {
|
|
29160
|
+
"type": "string",
|
|
29161
|
+
"minLength": 8,
|
|
29162
|
+
"maxLength": 160,
|
|
29163
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
29164
|
+
}
|
|
29165
|
+
},
|
|
29166
|
+
"required": [
|
|
29167
|
+
"siteId",
|
|
29168
|
+
"name",
|
|
29169
|
+
"question",
|
|
29170
|
+
"selectionMode",
|
|
29171
|
+
"eligibleOutcomeFamilies",
|
|
29172
|
+
"exchangeTtlSeconds",
|
|
29173
|
+
"sessionTtlSeconds",
|
|
29174
|
+
"options",
|
|
29175
|
+
"idempotencyKey"
|
|
29176
|
+
],
|
|
29177
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29178
|
+
},
|
|
29179
|
+
"annotations": {
|
|
29180
|
+
"title": "Create Post-Purchase Survey Draft",
|
|
29181
|
+
"readOnlyHint": false,
|
|
29182
|
+
"destructiveHint": false,
|
|
29183
|
+
"idempotentHint": true,
|
|
29184
|
+
"openWorldHint": false
|
|
29185
|
+
}
|
|
29186
|
+
},
|
|
29187
|
+
{
|
|
29188
|
+
"name": "analytics_get_attribution_methodology",
|
|
29189
|
+
"category": "analytics",
|
|
29190
|
+
"title": "Get X-Ray Attribution Methodology",
|
|
29191
|
+
"description": "Read the seven observed models, default position weights, explicit observed-plus-reported methodology, and evidence boundaries. Use before requesting combined impact; this never turns survey testimony or aggregate impressions into deterministic touches.",
|
|
29192
|
+
"inputSchema": {
|
|
29193
|
+
"type": "object",
|
|
29194
|
+
"properties": {
|
|
29195
|
+
"siteId": {
|
|
29196
|
+
"type": "string",
|
|
29197
|
+
"format": "uuid",
|
|
29198
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29199
|
+
"description": "Authorized Analytics Site id."
|
|
29200
|
+
}
|
|
29201
|
+
},
|
|
29202
|
+
"required": [
|
|
29203
|
+
"siteId"
|
|
29204
|
+
],
|
|
29205
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29206
|
+
},
|
|
29207
|
+
"annotations": {
|
|
29208
|
+
"title": "Get X-Ray Attribution Methodology",
|
|
29209
|
+
"readOnlyHint": true,
|
|
29210
|
+
"destructiveHint": false,
|
|
29211
|
+
"idempotentHint": true,
|
|
29212
|
+
"openWorldHint": false
|
|
29213
|
+
}
|
|
29214
|
+
},
|
|
29215
|
+
{
|
|
29216
|
+
"name": "analytics_get_impact_report",
|
|
29217
|
+
"category": "analytics",
|
|
29218
|
+
"title": "Get Observed and Reported Impact",
|
|
29219
|
+
"description": "Read an opt-in impact projection that keeps observed attribution and customer-reported influence in separate ledgers. Requires a published survey, one existing observed model, an immutable methodology version, and explicit weights totaling 1,000,000 micros.",
|
|
29220
|
+
"inputSchema": {
|
|
29221
|
+
"type": "object",
|
|
29222
|
+
"properties": {
|
|
29223
|
+
"siteId": {
|
|
29224
|
+
"type": "string",
|
|
29225
|
+
"format": "uuid",
|
|
29226
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29227
|
+
"description": "Authorized Analytics Site id."
|
|
29228
|
+
},
|
|
29229
|
+
"surveyId": {
|
|
29230
|
+
"type": "string",
|
|
29231
|
+
"format": "uuid",
|
|
29232
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29233
|
+
"description": "Published or paused post-purchase survey whose immutable responses supply the reported ledger."
|
|
29234
|
+
},
|
|
29235
|
+
"baseModel": {
|
|
29236
|
+
"type": "string",
|
|
29237
|
+
"enum": [
|
|
29238
|
+
"first_touch",
|
|
29239
|
+
"last_touch",
|
|
29240
|
+
"last_non_direct",
|
|
29241
|
+
"linear",
|
|
29242
|
+
"time_decay",
|
|
29243
|
+
"position_based",
|
|
29244
|
+
"custom_weighted"
|
|
29245
|
+
],
|
|
29246
|
+
"description": "Existing observed attribution model; observed_plus_reported is deliberately not an observed model."
|
|
29247
|
+
},
|
|
29248
|
+
"observedWeightMicros": {
|
|
29249
|
+
"type": "integer",
|
|
29250
|
+
"minimum": 0,
|
|
29251
|
+
"maximum": 1e6,
|
|
29252
|
+
"description": "Observed share in micros. It must total exactly 1,000,000 with reportedWeightMicros."
|
|
29253
|
+
},
|
|
29254
|
+
"reportedWeightMicros": {
|
|
29255
|
+
"type": "integer",
|
|
29256
|
+
"minimum": 0,
|
|
29257
|
+
"maximum": 1e6,
|
|
29258
|
+
"description": "Customer-reported share in micros. It must total exactly 1,000,000 with observedWeightMicros."
|
|
29259
|
+
},
|
|
29260
|
+
"methodologyVersion": {
|
|
29261
|
+
"type": "string",
|
|
29262
|
+
"const": "xray_observed_plus_reported_equal_selected_v1",
|
|
29263
|
+
"description": "Immutable methodology selected after reading analytics_get_attribution_methodology."
|
|
29264
|
+
},
|
|
29265
|
+
"from": {
|
|
29266
|
+
"description": "Inclusive observed-evidence start. Omit with to for the last 30 days.",
|
|
29267
|
+
"type": "string",
|
|
29268
|
+
"format": "date-time",
|
|
29269
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
29270
|
+
},
|
|
29271
|
+
"to": {
|
|
29272
|
+
"description": "Exclusive observed-evidence end. Omit to use now.",
|
|
29273
|
+
"type": "string",
|
|
29274
|
+
"format": "date-time",
|
|
29275
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
29276
|
+
},
|
|
29277
|
+
"clickWindow": {
|
|
29278
|
+
"default": 90,
|
|
29279
|
+
"description": "Independent observed click window.",
|
|
29280
|
+
"anyOf": [
|
|
29281
|
+
{
|
|
29282
|
+
"type": "number",
|
|
29283
|
+
"const": 7
|
|
29284
|
+
},
|
|
29285
|
+
{
|
|
29286
|
+
"type": "number",
|
|
29287
|
+
"const": 14
|
|
29288
|
+
},
|
|
29289
|
+
{
|
|
29290
|
+
"type": "number",
|
|
29291
|
+
"const": 30
|
|
29292
|
+
},
|
|
29293
|
+
{
|
|
29294
|
+
"type": "number",
|
|
29295
|
+
"const": 60
|
|
29296
|
+
},
|
|
29297
|
+
{
|
|
29298
|
+
"type": "number",
|
|
29299
|
+
"const": 90
|
|
29300
|
+
},
|
|
29301
|
+
{
|
|
29302
|
+
"type": "number",
|
|
29303
|
+
"const": 180
|
|
29304
|
+
},
|
|
29305
|
+
{
|
|
29306
|
+
"type": "number",
|
|
29307
|
+
"const": 365
|
|
29308
|
+
},
|
|
29309
|
+
{
|
|
29310
|
+
"type": "string",
|
|
29311
|
+
"const": "lifetime"
|
|
29312
|
+
}
|
|
29313
|
+
]
|
|
29314
|
+
},
|
|
29315
|
+
"viewWindow": {
|
|
29316
|
+
"default": 90,
|
|
29317
|
+
"description": "Independent view window; provider-unavailable state never manufactures view touches.",
|
|
29318
|
+
"anyOf": [
|
|
29319
|
+
{
|
|
29320
|
+
"type": "number",
|
|
29321
|
+
"const": 7
|
|
29322
|
+
},
|
|
29323
|
+
{
|
|
29324
|
+
"type": "number",
|
|
29325
|
+
"const": 14
|
|
29326
|
+
},
|
|
29327
|
+
{
|
|
29328
|
+
"type": "number",
|
|
29329
|
+
"const": 30
|
|
29330
|
+
},
|
|
29331
|
+
{
|
|
29332
|
+
"type": "number",
|
|
29333
|
+
"const": 60
|
|
29334
|
+
},
|
|
29335
|
+
{
|
|
29336
|
+
"type": "number",
|
|
29337
|
+
"const": 90
|
|
29338
|
+
},
|
|
29339
|
+
{
|
|
29340
|
+
"type": "number",
|
|
29341
|
+
"const": 180
|
|
29342
|
+
},
|
|
29343
|
+
{
|
|
29344
|
+
"type": "number",
|
|
29345
|
+
"const": 365
|
|
29346
|
+
},
|
|
29347
|
+
{
|
|
29348
|
+
"type": "string",
|
|
29349
|
+
"const": "lifetime"
|
|
29350
|
+
}
|
|
29351
|
+
]
|
|
29352
|
+
}
|
|
29353
|
+
},
|
|
29354
|
+
"required": [
|
|
29355
|
+
"siteId",
|
|
29356
|
+
"surveyId",
|
|
29357
|
+
"baseModel",
|
|
29358
|
+
"observedWeightMicros",
|
|
29359
|
+
"reportedWeightMicros",
|
|
29360
|
+
"methodologyVersion"
|
|
29361
|
+
],
|
|
29362
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29363
|
+
},
|
|
29364
|
+
"annotations": {
|
|
29365
|
+
"title": "Get Observed and Reported Impact",
|
|
29366
|
+
"readOnlyHint": true,
|
|
29367
|
+
"destructiveHint": false,
|
|
29368
|
+
"idempotentHint": true,
|
|
29369
|
+
"openWorldHint": false
|
|
29370
|
+
}
|
|
29371
|
+
},
|
|
29372
|
+
{
|
|
29373
|
+
"name": "analytics_get_post_purchase_survey_report",
|
|
29374
|
+
"category": "analytics",
|
|
29375
|
+
"title": "Get Post-Purchase Survey Report",
|
|
29376
|
+
"description": "Read aggregate response coverage, option counts, and separately labeled reported-influence evidence for one survey. The output excludes contact fields, raw invitation tokens, and deterministic touch claims.",
|
|
29377
|
+
"inputSchema": {
|
|
29378
|
+
"type": "object",
|
|
29379
|
+
"properties": {
|
|
29380
|
+
"siteId": {
|
|
29381
|
+
"type": "string",
|
|
29382
|
+
"format": "uuid",
|
|
29383
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29384
|
+
"description": "Authorized Analytics Site id."
|
|
29385
|
+
},
|
|
29386
|
+
"surveyId": {
|
|
29387
|
+
"type": "string",
|
|
29388
|
+
"format": "uuid",
|
|
29389
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29390
|
+
"description": "Owner-bound survey id."
|
|
29391
|
+
}
|
|
29392
|
+
},
|
|
29393
|
+
"required": [
|
|
29394
|
+
"siteId",
|
|
29395
|
+
"surveyId"
|
|
29396
|
+
],
|
|
29397
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29398
|
+
},
|
|
29399
|
+
"annotations": {
|
|
29400
|
+
"title": "Get Post-Purchase Survey Report",
|
|
29401
|
+
"readOnlyHint": true,
|
|
29402
|
+
"destructiveHint": false,
|
|
29403
|
+
"idempotentHint": true,
|
|
29404
|
+
"openWorldHint": false
|
|
29405
|
+
}
|
|
29406
|
+
},
|
|
29407
|
+
{
|
|
29408
|
+
"name": "analytics_get_view_evidence_status",
|
|
29409
|
+
"category": "analytics",
|
|
29410
|
+
"title": "Get Provider View Evidence Status",
|
|
29411
|
+
"description": "Read provider-by-provider availability for event-level view evidence. Unavailable or unproven is an honest result; aggregate campaign impressions can never create person-level attribution touches.",
|
|
29412
|
+
"inputSchema": {
|
|
29413
|
+
"type": "object",
|
|
29414
|
+
"properties": {
|
|
29415
|
+
"siteId": {
|
|
29416
|
+
"type": "string",
|
|
29417
|
+
"format": "uuid",
|
|
29418
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29419
|
+
"description": "Authorized Analytics Site id."
|
|
29420
|
+
}
|
|
29421
|
+
},
|
|
29422
|
+
"required": [
|
|
29423
|
+
"siteId"
|
|
29424
|
+
],
|
|
29425
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29426
|
+
},
|
|
29427
|
+
"annotations": {
|
|
29428
|
+
"title": "Get Provider View Evidence Status",
|
|
29429
|
+
"readOnlyHint": true,
|
|
29430
|
+
"destructiveHint": false,
|
|
29431
|
+
"idempotentHint": true,
|
|
29432
|
+
"openWorldHint": false
|
|
29433
|
+
}
|
|
29434
|
+
},
|
|
29435
|
+
{
|
|
29436
|
+
"name": "analytics_prepare_revenue_source",
|
|
29437
|
+
"category": "analytics",
|
|
29438
|
+
"title": "Prepare SaaS Revenue Authority",
|
|
29439
|
+
"description": "Inspect an already-authorized provider connection and return a revisioned primary-or-observation revenue plan. This read-like preparation may query the provider but cannot create revenue or receive a provider credential.",
|
|
29440
|
+
"inputSchema": {
|
|
29441
|
+
"type": "object",
|
|
29442
|
+
"properties": {
|
|
29443
|
+
"siteId": {
|
|
29444
|
+
"type": "string",
|
|
29445
|
+
"format": "uuid",
|
|
29446
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29447
|
+
"description": "Authorized Analytics Site id."
|
|
29448
|
+
},
|
|
29449
|
+
"serviceConnectionRef": {
|
|
29450
|
+
"type": "string",
|
|
29451
|
+
"minLength": 1,
|
|
29452
|
+
"maxLength": 240,
|
|
29453
|
+
"description": "Already-authorized connected-account reference. Credentials never belong in this input."
|
|
29454
|
+
},
|
|
29455
|
+
"role": {
|
|
29456
|
+
"default": "primary",
|
|
29457
|
+
"description": "Choose one primary authority per subscription-revenue outcome family; observation sources cannot create revenue.",
|
|
29458
|
+
"type": "string",
|
|
29459
|
+
"enum": [
|
|
29460
|
+
"primary",
|
|
29461
|
+
"observation"
|
|
29462
|
+
]
|
|
29463
|
+
},
|
|
29464
|
+
"idempotencyKey": {
|
|
29465
|
+
"type": "string",
|
|
29466
|
+
"minLength": 8,
|
|
29467
|
+
"maxLength": 160,
|
|
29468
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
29469
|
+
}
|
|
29470
|
+
},
|
|
29471
|
+
"required": [
|
|
29472
|
+
"siteId",
|
|
29473
|
+
"serviceConnectionRef",
|
|
29474
|
+
"idempotencyKey"
|
|
29475
|
+
],
|
|
29476
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29477
|
+
},
|
|
29478
|
+
"annotations": {
|
|
29479
|
+
"title": "Prepare SaaS Revenue Authority",
|
|
29480
|
+
"readOnlyHint": false,
|
|
29481
|
+
"destructiveHint": false,
|
|
29482
|
+
"idempotentHint": true,
|
|
29483
|
+
"openWorldHint": true
|
|
29484
|
+
}
|
|
29485
|
+
},
|
|
29486
|
+
{
|
|
29487
|
+
"name": "analytics_set_post_purchase_survey_state",
|
|
29488
|
+
"category": "analytics",
|
|
29489
|
+
"title": "Set Post-Purchase Survey State",
|
|
29490
|
+
"description": "Publish, pause, or irreversibly archive one exact survey revision. Production publication requires approved privacy disclosure evidence. Reuse the same idempotency key only for the identical transition; archive cannot be undone.",
|
|
29491
|
+
"inputSchema": {
|
|
29492
|
+
"type": "object",
|
|
29493
|
+
"properties": {
|
|
29494
|
+
"siteId": {
|
|
29495
|
+
"type": "string",
|
|
29496
|
+
"format": "uuid",
|
|
29497
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29498
|
+
"description": "Authorized Analytics Site id."
|
|
29499
|
+
},
|
|
29500
|
+
"surveyId": {
|
|
29501
|
+
"type": "string",
|
|
29502
|
+
"format": "uuid",
|
|
29503
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29504
|
+
"description": "Owner-bound survey id."
|
|
29505
|
+
},
|
|
29506
|
+
"revision": {
|
|
29507
|
+
"type": "integer",
|
|
29508
|
+
"exclusiveMinimum": 0,
|
|
29509
|
+
"maximum": 9007199254740991,
|
|
29510
|
+
"description": "Exact survey revision being changed."
|
|
29511
|
+
},
|
|
29512
|
+
"state": {
|
|
29513
|
+
"type": "string",
|
|
29514
|
+
"enum": [
|
|
29515
|
+
"published",
|
|
29516
|
+
"paused",
|
|
29517
|
+
"archived"
|
|
29518
|
+
],
|
|
29519
|
+
"description": "Publish or pause this revision. Archive is irreversible."
|
|
29520
|
+
},
|
|
29521
|
+
"approvedCopyId": {
|
|
29522
|
+
"description": "Approved privacy disclosure identifier required for production publication; it is not legal approval by itself.",
|
|
29523
|
+
"anyOf": [
|
|
29524
|
+
{
|
|
29525
|
+
"type": "string",
|
|
29526
|
+
"minLength": 1,
|
|
29527
|
+
"maxLength": 200
|
|
29528
|
+
},
|
|
29529
|
+
{
|
|
29530
|
+
"type": "null"
|
|
29531
|
+
}
|
|
29532
|
+
]
|
|
29533
|
+
},
|
|
29534
|
+
"idempotencyKey": {
|
|
29535
|
+
"type": "string",
|
|
29536
|
+
"minLength": 8,
|
|
29537
|
+
"maxLength": 160,
|
|
29538
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
29539
|
+
}
|
|
29540
|
+
},
|
|
29541
|
+
"required": [
|
|
29542
|
+
"siteId",
|
|
29543
|
+
"surveyId",
|
|
29544
|
+
"revision",
|
|
29545
|
+
"state",
|
|
29546
|
+
"idempotencyKey"
|
|
29547
|
+
],
|
|
29548
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29549
|
+
},
|
|
29550
|
+
"annotations": {
|
|
29551
|
+
"title": "Set Post-Purchase Survey State",
|
|
29552
|
+
"readOnlyHint": false,
|
|
29553
|
+
"destructiveHint": true,
|
|
29554
|
+
"idempotentHint": true,
|
|
29555
|
+
"openWorldHint": false
|
|
29556
|
+
}
|
|
29557
|
+
},
|
|
29558
|
+
{
|
|
29559
|
+
"name": "analytics_setup_revenue_source",
|
|
29560
|
+
"category": "analytics",
|
|
29561
|
+
"title": "Set Up SaaS Revenue Authority",
|
|
29562
|
+
"description": "Use as the customer-facing SaaS revenue setup facade after tag and measurement readiness. It prepares, reads, applies, or verifies one owner-authorized subscription authority without accepting credentials. Provider calls may occur only through the approved connected account; reuse setupId and revision.",
|
|
29563
|
+
"inputSchema": {
|
|
29564
|
+
"type": "object",
|
|
29565
|
+
"properties": {
|
|
29566
|
+
"siteId": {
|
|
29567
|
+
"type": "string",
|
|
29568
|
+
"format": "uuid",
|
|
29569
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29570
|
+
"description": "Authorized Analytics Site id."
|
|
29571
|
+
},
|
|
29572
|
+
"action": {
|
|
29573
|
+
"default": "continue",
|
|
29574
|
+
"description": "Lifecycle action. Continue reads an existing setup or prepares one when serviceConnectionRef is supplied.",
|
|
29575
|
+
"type": "string",
|
|
29576
|
+
"enum": [
|
|
29577
|
+
"continue",
|
|
29578
|
+
"prepare",
|
|
29579
|
+
"apply",
|
|
29580
|
+
"verify"
|
|
29581
|
+
]
|
|
29582
|
+
},
|
|
29583
|
+
"setupId": {
|
|
29584
|
+
"type": "string",
|
|
29585
|
+
"format": "uuid",
|
|
29586
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29587
|
+
"description": "Owner-bound revenue setup id returned by prepare or the facade."
|
|
29588
|
+
},
|
|
29589
|
+
"serviceConnectionRef": {
|
|
29590
|
+
"description": "Already-authorized connected-account reference. Never supply a credential, token, or provider key.",
|
|
29591
|
+
"type": "string",
|
|
29592
|
+
"minLength": 1,
|
|
29593
|
+
"maxLength": 240
|
|
29594
|
+
},
|
|
29595
|
+
"role": {
|
|
29596
|
+
"default": "primary",
|
|
29597
|
+
"description": "Primary may create subscription outcomes; observation only compares provider evidence.",
|
|
29598
|
+
"type": "string",
|
|
29599
|
+
"enum": [
|
|
29600
|
+
"primary",
|
|
29601
|
+
"observation"
|
|
29602
|
+
]
|
|
29603
|
+
},
|
|
29604
|
+
"revision": {
|
|
29605
|
+
"type": "integer",
|
|
29606
|
+
"exclusiveMinimum": 0,
|
|
29607
|
+
"maximum": 9007199254740991,
|
|
29608
|
+
"description": "Exact current revenue setup revision; reload before retrying a stale mutation."
|
|
29609
|
+
},
|
|
29610
|
+
"confirmed": {
|
|
29611
|
+
"description": "Required only to apply the exact reviewed revision.",
|
|
29612
|
+
"type": "boolean",
|
|
29613
|
+
"const": true
|
|
29614
|
+
},
|
|
29615
|
+
"idempotencyKey": {
|
|
29616
|
+
"description": "Required for apply and verify. Reuse only for the identical operation.",
|
|
29617
|
+
"type": "string",
|
|
29618
|
+
"minLength": 8,
|
|
29619
|
+
"maxLength": 160
|
|
29620
|
+
}
|
|
29621
|
+
},
|
|
29622
|
+
"required": [
|
|
29623
|
+
"siteId"
|
|
29624
|
+
],
|
|
29625
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29626
|
+
},
|
|
29627
|
+
"annotations": {
|
|
29628
|
+
"title": "Set Up SaaS Revenue Authority",
|
|
29629
|
+
"readOnlyHint": false,
|
|
29630
|
+
"destructiveHint": false,
|
|
29631
|
+
"idempotentHint": true,
|
|
29632
|
+
"openWorldHint": true
|
|
29633
|
+
}
|
|
29634
|
+
},
|
|
29635
|
+
{
|
|
29636
|
+
"name": "analytics_verify_revenue_source",
|
|
29637
|
+
"category": "analytics",
|
|
29638
|
+
"title": "Verify SaaS Revenue Authority",
|
|
29639
|
+
"description": "Verify one applied revenue source through the approved provider connection and return a redacted non-customer receipt state. A successful API call without a signed webhook or reconciliation receipt is not live proof.",
|
|
29640
|
+
"inputSchema": {
|
|
29641
|
+
"type": "object",
|
|
29642
|
+
"properties": {
|
|
29643
|
+
"siteId": {
|
|
29644
|
+
"type": "string",
|
|
29645
|
+
"format": "uuid",
|
|
29646
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29647
|
+
"description": "Authorized Analytics Site id."
|
|
29648
|
+
},
|
|
29649
|
+
"setupId": {
|
|
29650
|
+
"type": "string",
|
|
29651
|
+
"format": "uuid",
|
|
29652
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
29653
|
+
"description": "Owner-bound revenue setup id returned by prepare or the facade."
|
|
29654
|
+
},
|
|
29655
|
+
"revision": {
|
|
29656
|
+
"type": "integer",
|
|
29657
|
+
"exclusiveMinimum": 0,
|
|
29658
|
+
"maximum": 9007199254740991,
|
|
29659
|
+
"description": "Exact current revenue setup revision; reload before retrying a stale mutation."
|
|
29660
|
+
},
|
|
29661
|
+
"idempotencyKey": {
|
|
29662
|
+
"type": "string",
|
|
29663
|
+
"minLength": 8,
|
|
29664
|
+
"maxLength": 160,
|
|
29665
|
+
"description": "Retry key; reuse only for this exact mutation."
|
|
29666
|
+
}
|
|
29667
|
+
},
|
|
29668
|
+
"required": [
|
|
29669
|
+
"siteId",
|
|
29670
|
+
"setupId",
|
|
29671
|
+
"revision",
|
|
29672
|
+
"idempotencyKey"
|
|
29673
|
+
],
|
|
29674
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema"
|
|
29675
|
+
},
|
|
29676
|
+
"annotations": {
|
|
29677
|
+
"title": "Verify SaaS Revenue Authority",
|
|
29678
|
+
"readOnlyHint": false,
|
|
29679
|
+
"destructiveHint": false,
|
|
29680
|
+
"idempotentHint": true,
|
|
29681
|
+
"openWorldHint": true
|
|
29682
|
+
}
|
|
28160
29683
|
}
|
|
28161
29684
|
];
|
|
28162
29685
|
var MCP_TOOL_NAMES = MCP_TOOL_CATALOG.map((tool) => tool.name);
|