@webstudio-is/protocol 0.275.0 → 0.276.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/lib/index.js CHANGED
@@ -15032,6 +15032,7 @@ var projectMeta = external_exports.object({
15032
15032
  contactEmail: external_exports.string().optional(),
15033
15033
  faviconAssetId: external_exports.string().optional(),
15034
15034
  code: external_exports.string().optional(),
15035
+ agentInstructions: external_exports.string().optional(),
15035
15036
  auth: external_exports.string().optional()
15036
15037
  });
15037
15038
  var projectNewRedirectPath = external_exports.string().min(1, "Path is required").refine((data) => {
@@ -15717,6 +15718,7 @@ var builderNamespaces = [
15717
15718
  "resources",
15718
15719
  "assets",
15719
15720
  "breakpoints",
15721
+ "projectSettings",
15720
15722
  "marketplaceProduct"
15721
15723
  ];
15722
15724
 
@@ -15750,7 +15752,7 @@ var builderPatchSchema = external_exports.union([
15750
15752
  var pageGeneratedRecordPaths = /* @__PURE__ */ new Set(["pages", "folders", "pageTemplates"]);
15751
15753
  var generatedRecordNamespaces = new Set(
15752
15754
  builderNamespaces.filter(
15753
- (namespace) => namespace !== "pages" && namespace !== "marketplaceProduct"
15755
+ (namespace) => namespace !== "pages" && namespace !== "projectSettings" && namespace !== "marketplaceProduct"
15754
15756
  )
15755
15757
  );
15756
15758
  var isGeneratedRecordCreatePatch = (namespace, patch) => {
@@ -15976,6 +15978,31 @@ var serializedPages = external_exports.object({
15976
15978
  folders: external_exports.array(folder)
15977
15979
  });
15978
15980
 
15981
+ // ../project-build/src/shared/marketplace.ts
15982
+ var marketplaceProduct = external_exports.object({
15983
+ category: external_exports.union([
15984
+ external_exports.literal("sectionTemplates"),
15985
+ external_exports.literal("pageTemplates"),
15986
+ external_exports.literal("integrationTemplates")
15987
+ ]),
15988
+ name: external_exports.string().min(2).max(200).trim(),
15989
+ thumbnailAssetId: external_exports.string(),
15990
+ author: external_exports.string().min(2).max(200).trim(),
15991
+ email: external_exports.string().email().max(200).trim(),
15992
+ website: external_exports.union([
15993
+ external_exports.string().max(200).url().trim().optional(),
15994
+ external_exports.literal("")
15995
+ ]),
15996
+ issues: external_exports.union([external_exports.string().max(200).url().trim().optional(), external_exports.literal("")]),
15997
+ description: external_exports.string().trim().min(10).max(1e3)
15998
+ });
15999
+
16000
+ // ../project-build/src/shared/project-settings.ts
16001
+ var projectSettings = external_exports.object({
16002
+ meta: projectMeta,
16003
+ compiler: compilerSettings
16004
+ });
16005
+
15979
16006
  // ../project-build/src/schema.ts
15980
16007
  var entry = (value) => external_exports.tuple([external_exports.string(), value]);
15981
16008
  var serializedBuildShape = {
@@ -15993,6 +16020,8 @@ var serializedBuildShape = {
15993
16020
  instances: external_exports.array(entry(instance)),
15994
16021
  dataSources: external_exports.array(entry(dataSource)),
15995
16022
  resources: external_exports.array(entry(resource)),
16023
+ marketplaceProduct: marketplaceProduct.optional(),
16024
+ projectSettings: projectSettings.optional(),
15996
16025
  deployment: deployment.optional()
15997
16026
  };
15998
16027
  var serializedBuild = external_exports.object(serializedBuildShape);
@@ -16384,6 +16413,7 @@ var serverOnlyRouterOperationMetadata = {
16384
16413
  "resources",
16385
16414
  "variables",
16386
16415
  "breakpoints",
16416
+ "projectSettings",
16387
16417
  "marketplaceProduct"
16388
16418
  ]
16389
16419
  }
@@ -16415,6 +16445,7 @@ var serverOnlyRouterOperationMetadata = {
16415
16445
  "resources",
16416
16446
  "assets",
16417
16447
  "breakpoints",
16448
+ "projectSettings",
16418
16449
  "marketplaceProduct"
16419
16450
  ],
16420
16451
  inputSchema: {
@@ -16453,6 +16484,7 @@ var serverOnlyRouterOperationMetadata = {
16453
16484
  "resources",
16454
16485
  "assets",
16455
16486
  "breakpoints",
16487
+ "projectSettings",
16456
16488
  "marketplaceProduct"
16457
16489
  ]
16458
16490
  },
@@ -17088,7 +17120,7 @@ var runtimeOperationContractData = [
17088
17120
  },
17089
17121
  required: []
17090
17122
  },
17091
- readNamespaces: ["pages"],
17123
+ readNamespaces: ["pages", "projectSettings"],
17092
17124
  writeNamespaces: [],
17093
17125
  invalidatesNamespaces: [],
17094
17126
  retryOnConflict: false
@@ -17148,7 +17180,7 @@ var runtimeOperationContractData = [
17148
17180
  description: 'Plain page path. For a new non-home page, start with "/", for example "/pricing". The home page path is the empty string ""; do not use an empty path when creating a new page.'
17149
17181
  },
17150
17182
  title: {
17151
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17183
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17152
17184
  type: "string"
17153
17185
  },
17154
17186
  parentFolderId: {
@@ -17158,19 +17190,19 @@ var runtimeOperationContractData = [
17158
17190
  type: "object",
17159
17191
  properties: {
17160
17192
  description: {
17161
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17193
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17162
17194
  type: "string"
17163
17195
  },
17164
17196
  language: {
17165
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17197
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17166
17198
  type: "string"
17167
17199
  },
17168
17200
  redirect: {
17169
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17201
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17170
17202
  type: "string"
17171
17203
  },
17172
17204
  socialImageUrl: {
17173
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17205
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17174
17206
  type: "string"
17175
17207
  },
17176
17208
  socialImageAssetId: {
@@ -17182,7 +17214,7 @@ var runtimeOperationContractData = [
17182
17214
  type: "boolean"
17183
17215
  },
17184
17216
  {
17185
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17217
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17186
17218
  type: "string"
17187
17219
  }
17188
17220
  ]
@@ -17192,11 +17224,11 @@ var runtimeOperationContractData = [
17192
17224
  enum: ["html", "xml", "text"]
17193
17225
  },
17194
17226
  content: {
17195
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17227
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17196
17228
  type: "string"
17197
17229
  },
17198
17230
  status: {
17199
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17231
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17200
17232
  type: "string"
17201
17233
  },
17202
17234
  auth: {
@@ -17244,7 +17276,7 @@ var runtimeOperationContractData = [
17244
17276
  type: "string"
17245
17277
  },
17246
17278
  content: {
17247
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17279
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17248
17280
  type: "string"
17249
17281
  }
17250
17282
  },
@@ -17292,7 +17324,7 @@ var runtimeOperationContractData = [
17292
17324
  description: 'Plain page path. For a new non-home page, start with "/", for example "/pricing". The home page path is the empty string ""; do not use an empty path when creating a new page.'
17293
17325
  },
17294
17326
  title: {
17295
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17327
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17296
17328
  type: "string"
17297
17329
  },
17298
17330
  parentFolderId: {
@@ -17302,19 +17334,19 @@ var runtimeOperationContractData = [
17302
17334
  type: "object",
17303
17335
  properties: {
17304
17336
  description: {
17305
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17337
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17306
17338
  type: "string"
17307
17339
  },
17308
17340
  language: {
17309
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17341
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17310
17342
  type: "string"
17311
17343
  },
17312
17344
  redirect: {
17313
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17345
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17314
17346
  type: "string"
17315
17347
  },
17316
17348
  socialImageUrl: {
17317
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17349
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17318
17350
  type: "string"
17319
17351
  },
17320
17352
  socialImageAssetId: {
@@ -17326,7 +17358,7 @@ var runtimeOperationContractData = [
17326
17358
  type: "boolean"
17327
17359
  },
17328
17360
  {
17329
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17361
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17330
17362
  type: "string"
17331
17363
  }
17332
17364
  ]
@@ -17336,11 +17368,11 @@ var runtimeOperationContractData = [
17336
17368
  enum: ["html", "xml", "text"]
17337
17369
  },
17338
17370
  content: {
17339
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17371
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17340
17372
  type: "string"
17341
17373
  },
17342
17374
  status: {
17343
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17375
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17344
17376
  type: "string"
17345
17377
  },
17346
17378
  auth: {
@@ -17388,7 +17420,7 @@ var runtimeOperationContractData = [
17388
17420
  type: "string"
17389
17421
  },
17390
17422
  content: {
17391
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17423
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
17392
17424
  type: "string"
17393
17425
  }
17394
17426
  },
@@ -18207,26 +18239,26 @@ var runtimeOperationContractData = [
18207
18239
  minLength: 1
18208
18240
  },
18209
18241
  title: {
18210
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18242
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18211
18243
  type: "string"
18212
18244
  },
18213
18245
  meta: {
18214
18246
  type: "object",
18215
18247
  properties: {
18216
18248
  description: {
18217
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18249
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18218
18250
  type: "string"
18219
18251
  },
18220
18252
  language: {
18221
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18253
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18222
18254
  type: "string"
18223
18255
  },
18224
18256
  redirect: {
18225
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18257
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18226
18258
  type: "string"
18227
18259
  },
18228
18260
  socialImageUrl: {
18229
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18261
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18230
18262
  type: "string"
18231
18263
  },
18232
18264
  socialImageAssetId: {
@@ -18238,7 +18270,7 @@ var runtimeOperationContractData = [
18238
18270
  type: "boolean"
18239
18271
  },
18240
18272
  {
18241
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18273
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18242
18274
  type: "string"
18243
18275
  }
18244
18276
  ]
@@ -18248,11 +18280,11 @@ var runtimeOperationContractData = [
18248
18280
  enum: ["html", "xml", "text"]
18249
18281
  },
18250
18282
  content: {
18251
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18283
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18252
18284
  type: "string"
18253
18285
  },
18254
18286
  status: {
18255
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18287
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18256
18288
  type: "string"
18257
18289
  },
18258
18290
  auth: {
@@ -18300,7 +18332,7 @@ var runtimeOperationContractData = [
18300
18332
  type: "string"
18301
18333
  },
18302
18334
  content: {
18303
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18335
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18304
18336
  type: "string"
18305
18337
  }
18306
18338
  },
@@ -18371,26 +18403,26 @@ var runtimeOperationContractData = [
18371
18403
  minLength: 1
18372
18404
  },
18373
18405
  title: {
18374
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18406
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18375
18407
  type: "string"
18376
18408
  },
18377
18409
  meta: {
18378
18410
  type: "object",
18379
18411
  properties: {
18380
18412
  description: {
18381
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18413
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18382
18414
  type: "string"
18383
18415
  },
18384
18416
  language: {
18385
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18417
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18386
18418
  type: "string"
18387
18419
  },
18388
18420
  redirect: {
18389
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18421
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18390
18422
  type: "string"
18391
18423
  },
18392
18424
  socialImageUrl: {
18393
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18425
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18394
18426
  type: "string"
18395
18427
  },
18396
18428
  socialImageAssetId: {
@@ -18402,7 +18434,7 @@ var runtimeOperationContractData = [
18402
18434
  type: "boolean"
18403
18435
  },
18404
18436
  {
18405
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18437
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18406
18438
  type: "string"
18407
18439
  }
18408
18440
  ]
@@ -18412,11 +18444,11 @@ var runtimeOperationContractData = [
18412
18444
  enum: ["html", "xml", "text"]
18413
18445
  },
18414
18446
  content: {
18415
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18447
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18416
18448
  type: "string"
18417
18449
  },
18418
18450
  status: {
18419
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18451
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18420
18452
  type: "string"
18421
18453
  },
18422
18454
  auth: {
@@ -18464,7 +18496,7 @@ var runtimeOperationContractData = [
18464
18496
  type: "string"
18465
18497
  },
18466
18498
  content: {
18467
- description: 'This field stores JavaScript expression source. For fixed text, pass a string literal expression, for example "\\"Plans for teams\\"". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18499
+ description: 'Plain fixed text is accepted, for example "Plans for teams". For computed values, pass JavaScript expression code such as `pageTitle ?? "Plans for teams"`.',
18468
18500
  type: "string"
18469
18501
  }
18470
18502
  },
@@ -40414,7 +40446,14 @@ var runtimeOperationContractData = [
40414
40446
  type: "array",
40415
40447
  items: {
40416
40448
  type: "string",
40417
- enum: ["props", "styles", "bindings", "children", "sources"]
40449
+ enum: [
40450
+ "props",
40451
+ "styles",
40452
+ "bindings",
40453
+ "children",
40454
+ "sources",
40455
+ "ancestors"
40456
+ ]
40418
40457
  }
40419
40458
  },
40420
40459
  childDepth: {
@@ -40436,6 +40475,1274 @@ var runtimeOperationContractData = [
40436
40475
  invalidatesNamespaces: [],
40437
40476
  retryOnConflict: false
40438
40477
  },
40478
+ {
40479
+ id: "project.search",
40480
+ command: "search-project",
40481
+ client: "searchProject",
40482
+ kind: "read",
40483
+ inputSchema: {
40484
+ type: "object",
40485
+ properties: {
40486
+ query: {
40487
+ type: "string",
40488
+ minLength: 1
40489
+ },
40490
+ scopes: {
40491
+ minItems: 1,
40492
+ type: "array",
40493
+ items: {
40494
+ type: "string",
40495
+ enum: [
40496
+ "instances",
40497
+ "text",
40498
+ "props",
40499
+ "resources",
40500
+ "assets",
40501
+ "styles"
40502
+ ]
40503
+ }
40504
+ },
40505
+ pageId: {
40506
+ type: "string"
40507
+ },
40508
+ pagePath: {
40509
+ type: "string"
40510
+ },
40511
+ limit: {
40512
+ type: "integer",
40513
+ minimum: 1,
40514
+ maximum: 200
40515
+ }
40516
+ },
40517
+ required: ["query"],
40518
+ additionalProperties: false
40519
+ },
40520
+ readNamespaces: [
40521
+ "pages",
40522
+ "projectSettings",
40523
+ "instances",
40524
+ "props",
40525
+ "styles",
40526
+ "styleSources",
40527
+ "styleSourceSelections",
40528
+ "resources",
40529
+ "dataSources",
40530
+ "assets",
40531
+ "breakpoints"
40532
+ ],
40533
+ writeNamespaces: [],
40534
+ invalidatesNamespaces: [],
40535
+ retryOnConflict: false,
40536
+ requiresAssets: true
40537
+ },
40538
+ {
40539
+ id: "project.audit",
40540
+ command: "audit",
40541
+ client: "audit",
40542
+ kind: "read",
40543
+ inputSchema: {
40544
+ type: "object",
40545
+ properties: {
40546
+ scopes: {
40547
+ description: "Audit scopes. Omit to run all scopes. accessibility errors: missing-alt, missing-image-input-alt, missing-iframe-title, missing-accessible-name, missing-form-label, invalid-aria-role, missing-required-aria-role-property, role-interactive-not-focusable, aria-hidden-focusable, invalid-aria-state, invalid-aria-number, autoplay-media-with-sound, invalid-label-reference, duplicate-id, and missing-aria-reference; warnings: missing-image-description, unsupported-aria-role-property, positive-tabindex, missing-page-heading, skipped-heading-level, missing-main-landmark, and multiple-main-landmarks. Documentation: https://www.w3.org/WAI/WCAG22/understanding/. security errors: non-get-resource-exposed-as-data-source; warning: target-blank-without-noopener. Documentation: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/noopener. seo errors: empty-page-title, invalid-json-ld, and json-ld-in-custom-metadata; warnings: missing-page-description, empty-page-description, invalid-page-language, missing-social-image-asset, duplicate-page-title, duplicate-page-description, missing-json-ld-context, unknown-schema-org-type, deprecated-schema-org-type, unknown-schema-org-property, deprecated-schema-org-property, unsupported-schema-org-property, and incompatible-schema-org-value. Documentation: https://developers.google.com/search/docs/fundamentals/seo-starter-guide. assets info: unused-asset. Documentation: https://docs.webstudio.is/university/foundations/anatomy-of-the-webstudio-builder. styles warning: style-on-dom-transparent-component; info: unused-design-token, unused-css-variable, unused-local-style-source, unused-breakpoint, and duplicate-design-token-declarations. Documentation: https://docs.webstudio.is/university/foundations/design-tokens. performance info: atomic-css-disabled. Rendered checks add image loading/sizing, render-blocking resource, and legacy font-format evidence. Documentation: https://docs.webstudio.is/university/foundations/project-settings#atomic-css.",
40548
+ minItems: 1,
40549
+ type: "array",
40550
+ items: {
40551
+ type: "string",
40552
+ enum: [
40553
+ "accessibility",
40554
+ "security",
40555
+ "seo",
40556
+ "assets",
40557
+ "styles",
40558
+ "performance"
40559
+ ]
40560
+ }
40561
+ },
40562
+ pageId: {
40563
+ type: "string"
40564
+ },
40565
+ pagePath: {
40566
+ type: "string"
40567
+ },
40568
+ severities: {
40569
+ description: "Filter returned findings by default rule severity: error, warning, or info. Summary counts remain unfiltered.",
40570
+ minItems: 1,
40571
+ type: "array",
40572
+ items: {
40573
+ type: "string",
40574
+ enum: ["error", "warning", "info"]
40575
+ }
40576
+ },
40577
+ limit: {
40578
+ type: "integer",
40579
+ minimum: 1,
40580
+ maximum: 200
40581
+ },
40582
+ cursor: {
40583
+ type: "string",
40584
+ minLength: 1
40585
+ },
40586
+ verbose: {
40587
+ description: "Include explanations, remediation, evidence, skipped-check details, and manual-check workflows.",
40588
+ type: "boolean"
40589
+ }
40590
+ },
40591
+ additionalProperties: false,
40592
+ required: []
40593
+ },
40594
+ outputSchema: {
40595
+ oneOf: [
40596
+ {
40597
+ type: "object",
40598
+ properties: {
40599
+ contractVersion: {
40600
+ type: "number",
40601
+ const: 1
40602
+ },
40603
+ projectVersion: {
40604
+ type: "integer",
40605
+ minimum: 0,
40606
+ maximum: 9007199254740991
40607
+ },
40608
+ scopes: {
40609
+ type: "array",
40610
+ items: {
40611
+ type: "string",
40612
+ enum: [
40613
+ "accessibility",
40614
+ "security",
40615
+ "seo",
40616
+ "assets",
40617
+ "styles",
40618
+ "performance"
40619
+ ]
40620
+ }
40621
+ },
40622
+ pageFilter: {
40623
+ anyOf: [
40624
+ {
40625
+ type: "object",
40626
+ properties: {
40627
+ pageId: {
40628
+ type: "string"
40629
+ },
40630
+ pagePath: {
40631
+ type: "string"
40632
+ },
40633
+ projectWideScopes: {
40634
+ type: "array",
40635
+ items: {
40636
+ type: "string",
40637
+ enum: [
40638
+ "accessibility",
40639
+ "security",
40640
+ "seo",
40641
+ "assets",
40642
+ "styles",
40643
+ "performance"
40644
+ ]
40645
+ }
40646
+ }
40647
+ },
40648
+ required: ["pageId", "pagePath", "projectWideScopes"]
40649
+ },
40650
+ {
40651
+ type: "null"
40652
+ }
40653
+ ]
40654
+ },
40655
+ summary: {
40656
+ type: "object",
40657
+ properties: {
40658
+ total: {
40659
+ type: "integer",
40660
+ minimum: 0,
40661
+ maximum: 9007199254740991
40662
+ },
40663
+ selectedTotal: {
40664
+ type: "integer",
40665
+ minimum: 0,
40666
+ maximum: 9007199254740991
40667
+ },
40668
+ bySeverity: {
40669
+ type: "object",
40670
+ propertyNames: {
40671
+ type: "string",
40672
+ enum: ["error", "warning", "info"]
40673
+ },
40674
+ additionalProperties: {
40675
+ type: "integer",
40676
+ minimum: 0,
40677
+ maximum: 9007199254740991
40678
+ },
40679
+ required: ["error", "warning", "info"]
40680
+ },
40681
+ byScope: {
40682
+ type: "object",
40683
+ propertyNames: {
40684
+ type: "string",
40685
+ enum: [
40686
+ "accessibility",
40687
+ "security",
40688
+ "seo",
40689
+ "assets",
40690
+ "styles",
40691
+ "performance"
40692
+ ]
40693
+ },
40694
+ additionalProperties: {
40695
+ type: "integer",
40696
+ minimum: 0,
40697
+ maximum: 9007199254740991
40698
+ },
40699
+ required: [
40700
+ "accessibility",
40701
+ "security",
40702
+ "seo",
40703
+ "assets",
40704
+ "styles",
40705
+ "performance"
40706
+ ]
40707
+ }
40708
+ },
40709
+ required: ["total", "selectedTotal", "bySeverity", "byScope"]
40710
+ },
40711
+ skippedCheckCount: {
40712
+ type: "integer",
40713
+ minimum: 0,
40714
+ maximum: 9007199254740991
40715
+ },
40716
+ manualCheckCount: {
40717
+ type: "integer",
40718
+ minimum: 0,
40719
+ maximum: 9007199254740991
40720
+ },
40721
+ renderedCheckCount: {
40722
+ type: "integer",
40723
+ minimum: 0,
40724
+ maximum: 9007199254740991
40725
+ },
40726
+ renderedIssueCount: {
40727
+ type: "integer",
40728
+ minimum: 0,
40729
+ maximum: 9007199254740991
40730
+ },
40731
+ renderedFailureCount: {
40732
+ type: "integer",
40733
+ minimum: 0,
40734
+ maximum: 9007199254740991
40735
+ },
40736
+ nextCursor: {
40737
+ anyOf: [
40738
+ {
40739
+ type: "string"
40740
+ },
40741
+ {
40742
+ type: "null"
40743
+ }
40744
+ ]
40745
+ },
40746
+ verbose: {
40747
+ type: "boolean",
40748
+ const: false
40749
+ },
40750
+ findings: {
40751
+ type: "array",
40752
+ items: {
40753
+ type: "object",
40754
+ properties: {
40755
+ id: {
40756
+ type: "string"
40757
+ },
40758
+ scope: {
40759
+ type: "string",
40760
+ enum: [
40761
+ "accessibility",
40762
+ "security",
40763
+ "seo",
40764
+ "assets",
40765
+ "styles",
40766
+ "performance"
40767
+ ]
40768
+ },
40769
+ ruleId: {
40770
+ type: "string",
40771
+ enum: [
40772
+ "missing-alt",
40773
+ "missing-image-description",
40774
+ "missing-image-input-alt",
40775
+ "missing-iframe-title",
40776
+ "missing-accessible-name",
40777
+ "missing-form-label",
40778
+ "invalid-aria-role",
40779
+ "unsupported-aria-role-property",
40780
+ "missing-required-aria-role-property",
40781
+ "role-interactive-not-focusable",
40782
+ "aria-hidden-focusable",
40783
+ "positive-tabindex",
40784
+ "invalid-aria-state",
40785
+ "invalid-aria-number",
40786
+ "autoplay-media-with-sound",
40787
+ "invalid-label-reference",
40788
+ "missing-page-heading",
40789
+ "skipped-heading-level",
40790
+ "missing-main-landmark",
40791
+ "multiple-main-landmarks",
40792
+ "duplicate-id",
40793
+ "missing-aria-reference",
40794
+ "target-blank-without-noopener",
40795
+ "non-get-resource-exposed-as-data-source",
40796
+ "missing-page-description",
40797
+ "empty-page-description",
40798
+ "invalid-page-language",
40799
+ "missing-social-image-asset",
40800
+ "empty-page-title",
40801
+ "duplicate-page-title",
40802
+ "duplicate-page-description",
40803
+ "invalid-json-ld",
40804
+ "missing-json-ld-context",
40805
+ "json-ld-in-custom-metadata",
40806
+ "unknown-schema-org-type",
40807
+ "deprecated-schema-org-type",
40808
+ "unknown-schema-org-property",
40809
+ "deprecated-schema-org-property",
40810
+ "unsupported-schema-org-property",
40811
+ "incompatible-schema-org-value",
40812
+ "unused-asset",
40813
+ "unused-design-token",
40814
+ "unused-css-variable",
40815
+ "unused-local-style-source",
40816
+ "unused-breakpoint",
40817
+ "duplicate-design-token-declarations",
40818
+ "style-on-dom-transparent-component",
40819
+ "atomic-css-disabled"
40820
+ ]
40821
+ },
40822
+ severity: {
40823
+ type: "string",
40824
+ enum: ["error", "warning", "info"]
40825
+ },
40826
+ message: {
40827
+ type: "string"
40828
+ },
40829
+ location: {
40830
+ type: "object",
40831
+ properties: {
40832
+ pageId: {
40833
+ type: "string"
40834
+ },
40835
+ pageIds: {
40836
+ type: "array",
40837
+ items: {
40838
+ type: "string"
40839
+ }
40840
+ },
40841
+ pagePath: {
40842
+ type: "string"
40843
+ },
40844
+ pagePaths: {
40845
+ type: "array",
40846
+ items: {
40847
+ type: "string"
40848
+ }
40849
+ },
40850
+ instanceId: {
40851
+ type: "string"
40852
+ },
40853
+ instanceIds: {
40854
+ type: "array",
40855
+ items: {
40856
+ type: "string"
40857
+ }
40858
+ },
40859
+ propName: {
40860
+ type: "string"
40861
+ },
40862
+ assetId: {
40863
+ type: "string"
40864
+ },
40865
+ styleSourceId: {
40866
+ type: "string"
40867
+ },
40868
+ designTokenId: {
40869
+ type: "string"
40870
+ },
40871
+ designTokenIds: {
40872
+ type: "array",
40873
+ items: {
40874
+ type: "string"
40875
+ }
40876
+ },
40877
+ cssVariableName: {
40878
+ type: "string"
40879
+ },
40880
+ cssVariableScope: {
40881
+ type: "string"
40882
+ },
40883
+ breakpointId: {
40884
+ type: "string"
40885
+ },
40886
+ resourceId: {
40887
+ type: "string"
40888
+ },
40889
+ dataSourceId: {
40890
+ type: "string"
40891
+ },
40892
+ htmlId: {
40893
+ type: "string"
40894
+ },
40895
+ jsonLdPath: {
40896
+ type: "string"
40897
+ }
40898
+ },
40899
+ additionalProperties: false,
40900
+ required: []
40901
+ }
40902
+ },
40903
+ required: [
40904
+ "id",
40905
+ "scope",
40906
+ "ruleId",
40907
+ "severity",
40908
+ "message",
40909
+ "location"
40910
+ ]
40911
+ }
40912
+ }
40913
+ },
40914
+ required: [
40915
+ "contractVersion",
40916
+ "projectVersion",
40917
+ "scopes",
40918
+ "pageFilter",
40919
+ "summary",
40920
+ "skippedCheckCount",
40921
+ "manualCheckCount",
40922
+ "renderedCheckCount",
40923
+ "renderedIssueCount",
40924
+ "renderedFailureCount",
40925
+ "nextCursor",
40926
+ "verbose",
40927
+ "findings"
40928
+ ]
40929
+ },
40930
+ {
40931
+ type: "object",
40932
+ properties: {
40933
+ contractVersion: {
40934
+ type: "number",
40935
+ const: 1
40936
+ },
40937
+ projectVersion: {
40938
+ type: "integer",
40939
+ minimum: 0,
40940
+ maximum: 9007199254740991
40941
+ },
40942
+ scopes: {
40943
+ type: "array",
40944
+ items: {
40945
+ type: "string",
40946
+ enum: [
40947
+ "accessibility",
40948
+ "security",
40949
+ "seo",
40950
+ "assets",
40951
+ "styles",
40952
+ "performance"
40953
+ ]
40954
+ }
40955
+ },
40956
+ pageFilter: {
40957
+ anyOf: [
40958
+ {
40959
+ type: "object",
40960
+ properties: {
40961
+ pageId: {
40962
+ type: "string"
40963
+ },
40964
+ pagePath: {
40965
+ type: "string"
40966
+ },
40967
+ projectWideScopes: {
40968
+ type: "array",
40969
+ items: {
40970
+ type: "string",
40971
+ enum: [
40972
+ "accessibility",
40973
+ "security",
40974
+ "seo",
40975
+ "assets",
40976
+ "styles",
40977
+ "performance"
40978
+ ]
40979
+ }
40980
+ }
40981
+ },
40982
+ required: ["pageId", "pagePath", "projectWideScopes"]
40983
+ },
40984
+ {
40985
+ type: "null"
40986
+ }
40987
+ ]
40988
+ },
40989
+ summary: {
40990
+ type: "object",
40991
+ properties: {
40992
+ total: {
40993
+ type: "integer",
40994
+ minimum: 0,
40995
+ maximum: 9007199254740991
40996
+ },
40997
+ selectedTotal: {
40998
+ type: "integer",
40999
+ minimum: 0,
41000
+ maximum: 9007199254740991
41001
+ },
41002
+ bySeverity: {
41003
+ type: "object",
41004
+ propertyNames: {
41005
+ type: "string",
41006
+ enum: ["error", "warning", "info"]
41007
+ },
41008
+ additionalProperties: {
41009
+ type: "integer",
41010
+ minimum: 0,
41011
+ maximum: 9007199254740991
41012
+ },
41013
+ required: ["error", "warning", "info"]
41014
+ },
41015
+ byScope: {
41016
+ type: "object",
41017
+ propertyNames: {
41018
+ type: "string",
41019
+ enum: [
41020
+ "accessibility",
41021
+ "security",
41022
+ "seo",
41023
+ "assets",
41024
+ "styles",
41025
+ "performance"
41026
+ ]
41027
+ },
41028
+ additionalProperties: {
41029
+ type: "integer",
41030
+ minimum: 0,
41031
+ maximum: 9007199254740991
41032
+ },
41033
+ required: [
41034
+ "accessibility",
41035
+ "security",
41036
+ "seo",
41037
+ "assets",
41038
+ "styles",
41039
+ "performance"
41040
+ ]
41041
+ }
41042
+ },
41043
+ required: ["total", "selectedTotal", "bySeverity", "byScope"]
41044
+ },
41045
+ skippedCheckCount: {
41046
+ type: "integer",
41047
+ minimum: 0,
41048
+ maximum: 9007199254740991
41049
+ },
41050
+ manualCheckCount: {
41051
+ type: "integer",
41052
+ minimum: 0,
41053
+ maximum: 9007199254740991
41054
+ },
41055
+ renderedCheckCount: {
41056
+ type: "integer",
41057
+ minimum: 0,
41058
+ maximum: 9007199254740991
41059
+ },
41060
+ renderedIssueCount: {
41061
+ type: "integer",
41062
+ minimum: 0,
41063
+ maximum: 9007199254740991
41064
+ },
41065
+ renderedFailureCount: {
41066
+ type: "integer",
41067
+ minimum: 0,
41068
+ maximum: 9007199254740991
41069
+ },
41070
+ nextCursor: {
41071
+ anyOf: [
41072
+ {
41073
+ type: "string"
41074
+ },
41075
+ {
41076
+ type: "null"
41077
+ }
41078
+ ]
41079
+ },
41080
+ verbose: {
41081
+ type: "boolean",
41082
+ const: true
41083
+ },
41084
+ findings: {
41085
+ type: "array",
41086
+ items: {
41087
+ type: "object",
41088
+ properties: {
41089
+ id: {
41090
+ type: "string"
41091
+ },
41092
+ scope: {
41093
+ type: "string",
41094
+ enum: [
41095
+ "accessibility",
41096
+ "security",
41097
+ "seo",
41098
+ "assets",
41099
+ "styles",
41100
+ "performance"
41101
+ ]
41102
+ },
41103
+ ruleId: {
41104
+ type: "string",
41105
+ enum: [
41106
+ "missing-alt",
41107
+ "missing-image-description",
41108
+ "missing-image-input-alt",
41109
+ "missing-iframe-title",
41110
+ "missing-accessible-name",
41111
+ "missing-form-label",
41112
+ "invalid-aria-role",
41113
+ "unsupported-aria-role-property",
41114
+ "missing-required-aria-role-property",
41115
+ "role-interactive-not-focusable",
41116
+ "aria-hidden-focusable",
41117
+ "positive-tabindex",
41118
+ "invalid-aria-state",
41119
+ "invalid-aria-number",
41120
+ "autoplay-media-with-sound",
41121
+ "invalid-label-reference",
41122
+ "missing-page-heading",
41123
+ "skipped-heading-level",
41124
+ "missing-main-landmark",
41125
+ "multiple-main-landmarks",
41126
+ "duplicate-id",
41127
+ "missing-aria-reference",
41128
+ "target-blank-without-noopener",
41129
+ "non-get-resource-exposed-as-data-source",
41130
+ "missing-page-description",
41131
+ "empty-page-description",
41132
+ "invalid-page-language",
41133
+ "missing-social-image-asset",
41134
+ "empty-page-title",
41135
+ "duplicate-page-title",
41136
+ "duplicate-page-description",
41137
+ "invalid-json-ld",
41138
+ "missing-json-ld-context",
41139
+ "json-ld-in-custom-metadata",
41140
+ "unknown-schema-org-type",
41141
+ "deprecated-schema-org-type",
41142
+ "unknown-schema-org-property",
41143
+ "deprecated-schema-org-property",
41144
+ "unsupported-schema-org-property",
41145
+ "incompatible-schema-org-value",
41146
+ "unused-asset",
41147
+ "unused-design-token",
41148
+ "unused-css-variable",
41149
+ "unused-local-style-source",
41150
+ "unused-breakpoint",
41151
+ "duplicate-design-token-declarations",
41152
+ "style-on-dom-transparent-component",
41153
+ "atomic-css-disabled"
41154
+ ]
41155
+ },
41156
+ severity: {
41157
+ type: "string",
41158
+ enum: ["error", "warning", "info"]
41159
+ },
41160
+ message: {
41161
+ type: "string"
41162
+ },
41163
+ explanation: {
41164
+ type: "string"
41165
+ },
41166
+ remediation: {
41167
+ type: "string"
41168
+ },
41169
+ location: {
41170
+ type: "object",
41171
+ properties: {
41172
+ pageId: {
41173
+ type: "string"
41174
+ },
41175
+ pageIds: {
41176
+ type: "array",
41177
+ items: {
41178
+ type: "string"
41179
+ }
41180
+ },
41181
+ pagePath: {
41182
+ type: "string"
41183
+ },
41184
+ pagePaths: {
41185
+ type: "array",
41186
+ items: {
41187
+ type: "string"
41188
+ }
41189
+ },
41190
+ instanceId: {
41191
+ type: "string"
41192
+ },
41193
+ instanceIds: {
41194
+ type: "array",
41195
+ items: {
41196
+ type: "string"
41197
+ }
41198
+ },
41199
+ propName: {
41200
+ type: "string"
41201
+ },
41202
+ assetId: {
41203
+ type: "string"
41204
+ },
41205
+ styleSourceId: {
41206
+ type: "string"
41207
+ },
41208
+ designTokenId: {
41209
+ type: "string"
41210
+ },
41211
+ designTokenIds: {
41212
+ type: "array",
41213
+ items: {
41214
+ type: "string"
41215
+ }
41216
+ },
41217
+ cssVariableName: {
41218
+ type: "string"
41219
+ },
41220
+ cssVariableScope: {
41221
+ type: "string"
41222
+ },
41223
+ breakpointId: {
41224
+ type: "string"
41225
+ },
41226
+ resourceId: {
41227
+ type: "string"
41228
+ },
41229
+ dataSourceId: {
41230
+ type: "string"
41231
+ },
41232
+ htmlId: {
41233
+ type: "string"
41234
+ },
41235
+ jsonLdPath: {
41236
+ type: "string"
41237
+ }
41238
+ },
41239
+ additionalProperties: false,
41240
+ required: []
41241
+ },
41242
+ evidence: {
41243
+ type: "object",
41244
+ propertyNames: {
41245
+ type: "string"
41246
+ },
41247
+ additionalProperties: {}
41248
+ },
41249
+ documentationUrl: {
41250
+ type: "string",
41251
+ format: "uri"
41252
+ }
41253
+ },
41254
+ required: [
41255
+ "id",
41256
+ "scope",
41257
+ "ruleId",
41258
+ "severity",
41259
+ "message",
41260
+ "explanation",
41261
+ "remediation",
41262
+ "location",
41263
+ "evidence"
41264
+ ]
41265
+ }
41266
+ },
41267
+ skippedChecks: {
41268
+ type: "array",
41269
+ items: {
41270
+ type: "object",
41271
+ properties: {
41272
+ scope: {
41273
+ type: "string",
41274
+ enum: [
41275
+ "accessibility",
41276
+ "security",
41277
+ "seo",
41278
+ "assets",
41279
+ "styles",
41280
+ "performance"
41281
+ ]
41282
+ },
41283
+ checkId: {
41284
+ type: "string"
41285
+ },
41286
+ reason: {
41287
+ type: "string",
41288
+ enum: [
41289
+ "dynamic-value",
41290
+ "missing-build-data",
41291
+ "unsupported-component"
41292
+ ]
41293
+ },
41294
+ message: {
41295
+ type: "string"
41296
+ },
41297
+ location: {
41298
+ type: "object",
41299
+ properties: {
41300
+ pageId: {
41301
+ type: "string"
41302
+ },
41303
+ pageIds: {
41304
+ type: "array",
41305
+ items: {
41306
+ type: "string"
41307
+ }
41308
+ },
41309
+ pagePath: {
41310
+ type: "string"
41311
+ },
41312
+ pagePaths: {
41313
+ type: "array",
41314
+ items: {
41315
+ type: "string"
41316
+ }
41317
+ },
41318
+ instanceId: {
41319
+ type: "string"
41320
+ },
41321
+ instanceIds: {
41322
+ type: "array",
41323
+ items: {
41324
+ type: "string"
41325
+ }
41326
+ },
41327
+ propName: {
41328
+ type: "string"
41329
+ },
41330
+ assetId: {
41331
+ type: "string"
41332
+ },
41333
+ styleSourceId: {
41334
+ type: "string"
41335
+ },
41336
+ designTokenId: {
41337
+ type: "string"
41338
+ },
41339
+ designTokenIds: {
41340
+ type: "array",
41341
+ items: {
41342
+ type: "string"
41343
+ }
41344
+ },
41345
+ cssVariableName: {
41346
+ type: "string"
41347
+ },
41348
+ cssVariableScope: {
41349
+ type: "string"
41350
+ },
41351
+ breakpointId: {
41352
+ type: "string"
41353
+ },
41354
+ resourceId: {
41355
+ type: "string"
41356
+ },
41357
+ dataSourceId: {
41358
+ type: "string"
41359
+ },
41360
+ htmlId: {
41361
+ type: "string"
41362
+ },
41363
+ jsonLdPath: {
41364
+ type: "string"
41365
+ }
41366
+ },
41367
+ additionalProperties: false,
41368
+ required: []
41369
+ }
41370
+ },
41371
+ required: ["scope", "checkId", "reason", "message", "location"]
41372
+ }
41373
+ },
41374
+ manualChecks: {
41375
+ type: "array",
41376
+ items: {
41377
+ type: "object",
41378
+ properties: {
41379
+ checkId: {
41380
+ type: "string"
41381
+ },
41382
+ message: {
41383
+ type: "string"
41384
+ },
41385
+ workflow: {
41386
+ type: "string"
41387
+ }
41388
+ },
41389
+ required: ["checkId", "message", "workflow"]
41390
+ }
41391
+ },
41392
+ renderedChecks: {
41393
+ type: "array",
41394
+ items: {
41395
+ type: "object",
41396
+ properties: {
41397
+ pageId: {
41398
+ type: "string"
41399
+ },
41400
+ pagePath: {
41401
+ type: "string"
41402
+ },
41403
+ viewport: {
41404
+ type: "object",
41405
+ properties: {
41406
+ width: {
41407
+ type: "integer",
41408
+ exclusiveMinimum: 0,
41409
+ maximum: 9007199254740991
41410
+ },
41411
+ height: {
41412
+ type: "integer",
41413
+ exclusiveMinimum: 0,
41414
+ maximum: 9007199254740991
41415
+ }
41416
+ },
41417
+ required: ["width", "height"]
41418
+ },
41419
+ screenshotPath: {
41420
+ type: "string"
41421
+ },
41422
+ layout: {
41423
+ type: "object",
41424
+ properties: {
41425
+ viewportWidth: {
41426
+ type: "integer",
41427
+ exclusiveMinimum: 0,
41428
+ maximum: 9007199254740991
41429
+ },
41430
+ viewportHeight: {
41431
+ type: "integer",
41432
+ exclusiveMinimum: 0,
41433
+ maximum: 9007199254740991
41434
+ },
41435
+ contentWidth: {
41436
+ type: "integer",
41437
+ exclusiveMinimum: 0,
41438
+ maximum: 9007199254740991
41439
+ },
41440
+ contentHeight: {
41441
+ type: "integer",
41442
+ exclusiveMinimum: 0,
41443
+ maximum: 9007199254740991
41444
+ },
41445
+ horizontalOverflow: {
41446
+ type: "boolean"
41447
+ },
41448
+ images: {
41449
+ type: "array",
41450
+ items: {
41451
+ type: "object",
41452
+ properties: {
41453
+ instanceId: {
41454
+ type: "string"
41455
+ },
41456
+ loading: {
41457
+ type: "string"
41458
+ },
41459
+ complete: {
41460
+ type: "boolean"
41461
+ },
41462
+ naturalWidth: {
41463
+ type: "number",
41464
+ minimum: 0
41465
+ },
41466
+ naturalHeight: {
41467
+ type: "number",
41468
+ minimum: 0
41469
+ },
41470
+ renderedWidth: {
41471
+ type: "number",
41472
+ minimum: 0
41473
+ },
41474
+ renderedHeight: {
41475
+ type: "number",
41476
+ minimum: 0
41477
+ },
41478
+ top: {
41479
+ type: "number"
41480
+ }
41481
+ },
41482
+ required: [
41483
+ "loading",
41484
+ "complete",
41485
+ "naturalWidth",
41486
+ "naturalHeight",
41487
+ "renderedWidth",
41488
+ "renderedHeight",
41489
+ "top"
41490
+ ]
41491
+ }
41492
+ },
41493
+ resources: {
41494
+ type: "array",
41495
+ items: {
41496
+ type: "object",
41497
+ properties: {
41498
+ pathname: {
41499
+ type: "string"
41500
+ },
41501
+ initiatorType: {
41502
+ type: "string"
41503
+ },
41504
+ transferSize: {
41505
+ type: "number",
41506
+ minimum: 0
41507
+ },
41508
+ encodedBodySize: {
41509
+ type: "number",
41510
+ minimum: 0
41511
+ },
41512
+ decodedBodySize: {
41513
+ type: "number",
41514
+ minimum: 0
41515
+ },
41516
+ duration: {
41517
+ type: "number",
41518
+ minimum: 0
41519
+ },
41520
+ renderBlockingStatus: {
41521
+ type: "string"
41522
+ }
41523
+ },
41524
+ required: [
41525
+ "pathname",
41526
+ "initiatorType",
41527
+ "transferSize",
41528
+ "encodedBodySize",
41529
+ "decodedBodySize",
41530
+ "duration"
41531
+ ]
41532
+ }
41533
+ }
41534
+ },
41535
+ required: [
41536
+ "viewportWidth",
41537
+ "viewportHeight",
41538
+ "contentWidth",
41539
+ "contentHeight",
41540
+ "horizontalOverflow",
41541
+ "images",
41542
+ "resources"
41543
+ ]
41544
+ },
41545
+ issues: {
41546
+ type: "array",
41547
+ items: {
41548
+ type: "string",
41549
+ enum: [
41550
+ "horizontal-overflow",
41551
+ "broken-image",
41552
+ "eager-below-fold-image",
41553
+ "oversized-image",
41554
+ "render-blocking-resource",
41555
+ "legacy-font-format"
41556
+ ]
41557
+ }
41558
+ },
41559
+ imageIssues: {
41560
+ type: "array",
41561
+ items: {
41562
+ type: "object",
41563
+ properties: {
41564
+ kind: {
41565
+ type: "string",
41566
+ enum: [
41567
+ "broken-image",
41568
+ "eager-below-fold-image",
41569
+ "oversized-image"
41570
+ ]
41571
+ },
41572
+ instanceId: {
41573
+ type: "string"
41574
+ },
41575
+ loading: {
41576
+ type: "string"
41577
+ },
41578
+ naturalWidth: {
41579
+ type: "number",
41580
+ minimum: 0
41581
+ },
41582
+ naturalHeight: {
41583
+ type: "number",
41584
+ minimum: 0
41585
+ },
41586
+ renderedWidth: {
41587
+ type: "number",
41588
+ minimum: 0
41589
+ },
41590
+ renderedHeight: {
41591
+ type: "number",
41592
+ minimum: 0
41593
+ },
41594
+ top: {
41595
+ type: "number"
41596
+ }
41597
+ },
41598
+ required: [
41599
+ "kind",
41600
+ "loading",
41601
+ "naturalWidth",
41602
+ "naturalHeight",
41603
+ "renderedWidth",
41604
+ "renderedHeight",
41605
+ "top"
41606
+ ]
41607
+ }
41608
+ },
41609
+ resourceIssues: {
41610
+ type: "array",
41611
+ items: {
41612
+ type: "object",
41613
+ properties: {
41614
+ kind: {
41615
+ type: "string",
41616
+ enum: [
41617
+ "render-blocking-resource",
41618
+ "legacy-font-format"
41619
+ ]
41620
+ },
41621
+ pathname: {
41622
+ type: "string"
41623
+ },
41624
+ initiatorType: {
41625
+ type: "string"
41626
+ },
41627
+ transferSize: {
41628
+ type: "number",
41629
+ minimum: 0
41630
+ },
41631
+ encodedBodySize: {
41632
+ type: "number",
41633
+ minimum: 0
41634
+ },
41635
+ decodedBodySize: {
41636
+ type: "number",
41637
+ minimum: 0
41638
+ },
41639
+ duration: {
41640
+ type: "number",
41641
+ minimum: 0
41642
+ },
41643
+ renderBlockingStatus: {
41644
+ type: "string"
41645
+ }
41646
+ },
41647
+ required: [
41648
+ "kind",
41649
+ "pathname",
41650
+ "initiatorType",
41651
+ "transferSize",
41652
+ "encodedBodySize",
41653
+ "decodedBodySize",
41654
+ "duration"
41655
+ ]
41656
+ }
41657
+ }
41658
+ },
41659
+ required: [
41660
+ "pageId",
41661
+ "pagePath",
41662
+ "viewport",
41663
+ "screenshotPath",
41664
+ "layout",
41665
+ "issues",
41666
+ "imageIssues",
41667
+ "resourceIssues"
41668
+ ]
41669
+ }
41670
+ },
41671
+ renderedFailures: {
41672
+ type: "array",
41673
+ items: {
41674
+ type: "object",
41675
+ properties: {
41676
+ pageId: {
41677
+ type: "string"
41678
+ },
41679
+ pagePath: {
41680
+ type: "string"
41681
+ },
41682
+ viewport: {
41683
+ type: "object",
41684
+ properties: {
41685
+ width: {
41686
+ type: "integer",
41687
+ exclusiveMinimum: 0,
41688
+ maximum: 9007199254740991
41689
+ },
41690
+ height: {
41691
+ type: "integer",
41692
+ exclusiveMinimum: 0,
41693
+ maximum: 9007199254740991
41694
+ }
41695
+ },
41696
+ required: ["width", "height"]
41697
+ },
41698
+ message: {
41699
+ type: "string"
41700
+ }
41701
+ },
41702
+ required: ["message"]
41703
+ }
41704
+ }
41705
+ },
41706
+ required: [
41707
+ "contractVersion",
41708
+ "projectVersion",
41709
+ "scopes",
41710
+ "pageFilter",
41711
+ "summary",
41712
+ "skippedCheckCount",
41713
+ "manualCheckCount",
41714
+ "renderedCheckCount",
41715
+ "renderedIssueCount",
41716
+ "renderedFailureCount",
41717
+ "nextCursor",
41718
+ "verbose",
41719
+ "findings",
41720
+ "skippedChecks",
41721
+ "manualChecks",
41722
+ "renderedChecks",
41723
+ "renderedFailures"
41724
+ ]
41725
+ }
41726
+ ]
41727
+ },
41728
+ readNamespaces: [
41729
+ "pages",
41730
+ "projectSettings",
41731
+ "instances",
41732
+ "props",
41733
+ "styles",
41734
+ "styleSources",
41735
+ "styleSourceSelections",
41736
+ "resources",
41737
+ "dataSources",
41738
+ "assets",
41739
+ "breakpoints"
41740
+ ],
41741
+ writeNamespaces: [],
41742
+ invalidatesNamespaces: [],
41743
+ retryOnConflict: false,
41744
+ requiresAssets: true
41745
+ },
40439
41746
  {
40440
41747
  id: "instances.insertComponent",
40441
41748
  command: "insert-component",
@@ -47087,6 +48394,61 @@ var runtimeOperationContractData = [
47087
48394
  invalidatesNamespaces: ["props"],
47088
48395
  retryOnConflict: false
47089
48396
  },
48397
+ {
48398
+ id: "instances.replacePropText",
48399
+ command: "replace-prop-text",
48400
+ client: "replacePropText",
48401
+ permit: "edit",
48402
+ kind: "mutation",
48403
+ inputSchema: {
48404
+ type: "object",
48405
+ properties: {
48406
+ find: {
48407
+ type: "string",
48408
+ minLength: 1,
48409
+ description: "Fixed prop text to find."
48410
+ },
48411
+ replace: {
48412
+ type: "string",
48413
+ description: "Replacement fixed prop text."
48414
+ },
48415
+ match: {
48416
+ default: "exact",
48417
+ description: 'Use "exact" to replace complete prop values, or "substring" to replace every literal occurrence in matching prop values.',
48418
+ type: "string",
48419
+ enum: ["exact", "substring"]
48420
+ },
48421
+ instanceIds: {
48422
+ description: "Optional instance ids to limit the replacement scope.",
48423
+ minItems: 1,
48424
+ type: "array",
48425
+ items: {
48426
+ type: "string"
48427
+ }
48428
+ },
48429
+ names: {
48430
+ description: "Optional prop names to limit the replacement scope, such as href or code.",
48431
+ minItems: 1,
48432
+ type: "array",
48433
+ items: {
48434
+ type: "string"
48435
+ }
48436
+ },
48437
+ limit: {
48438
+ default: 50,
48439
+ description: "Maximum number of prop values to change.",
48440
+ type: "integer",
48441
+ minimum: 1,
48442
+ maximum: 200
48443
+ }
48444
+ },
48445
+ required: ["find", "replace"]
48446
+ },
48447
+ readNamespaces: ["instances", "props"],
48448
+ writeNamespaces: ["props"],
48449
+ invalidatesNamespaces: ["props"],
48450
+ retryOnConflict: true
48451
+ },
47090
48452
  {
47091
48453
  id: "instances.deleteProps",
47092
48454
  command: "delete-props",
@@ -47300,6 +48662,51 @@ var runtimeOperationContractData = [
47300
48662
  invalidatesNamespaces: ["instances"],
47301
48663
  retryOnConflict: true
47302
48664
  },
48665
+ {
48666
+ id: "instances.replaceText",
48667
+ command: "replace-text",
48668
+ client: "replaceText",
48669
+ permit: "edit",
48670
+ kind: "mutation",
48671
+ inputSchema: {
48672
+ type: "object",
48673
+ properties: {
48674
+ find: {
48675
+ type: "string",
48676
+ minLength: 1,
48677
+ description: "Literal text to find."
48678
+ },
48679
+ replace: {
48680
+ type: "string",
48681
+ description: "Replacement literal text."
48682
+ },
48683
+ match: {
48684
+ default: "exact",
48685
+ description: 'Use "exact" to replace complete text children, or "substring" to replace every literal occurrence inside matching text children.',
48686
+ type: "string",
48687
+ enum: ["exact", "substring"]
48688
+ },
48689
+ pageId: {
48690
+ type: "string"
48691
+ },
48692
+ pagePath: {
48693
+ type: "string"
48694
+ },
48695
+ limit: {
48696
+ default: 50,
48697
+ description: "Maximum number of text children to replace.",
48698
+ type: "integer",
48699
+ minimum: 1,
48700
+ maximum: 200
48701
+ }
48702
+ },
48703
+ required: ["find", "replace"]
48704
+ },
48705
+ readNamespaces: ["pages", "instances"],
48706
+ writeNamespaces: ["instances"],
48707
+ invalidatesNamespaces: ["instances"],
48708
+ retryOnConflict: true
48709
+ },
47303
48710
  {
47304
48711
  id: "instances.setTextContent",
47305
48712
  command: "set-text-content",
@@ -47447,9 +48854,32 @@ var runtimeOperationContractData = [
47447
48854
  },
47448
48855
  required: ["rootInstanceId", "instances"]
47449
48856
  },
47450
- readNamespaces: ["instances"],
47451
- writeNamespaces: ["instances"],
47452
- invalidatesNamespaces: ["instances"],
48857
+ readNamespaces: [
48858
+ "instances",
48859
+ "props",
48860
+ "dataSources",
48861
+ "styleSources",
48862
+ "styleSourceSelections",
48863
+ "styles"
48864
+ ],
48865
+ writeNamespaces: [
48866
+ "instances",
48867
+ "props",
48868
+ "dataSources",
48869
+ "resources",
48870
+ "styleSourceSelections",
48871
+ "styleSources",
48872
+ "styles"
48873
+ ],
48874
+ invalidatesNamespaces: [
48875
+ "instances",
48876
+ "props",
48877
+ "dataSources",
48878
+ "resources",
48879
+ "styleSourceSelections",
48880
+ "styleSources",
48881
+ "styles"
48882
+ ],
47453
48883
  retryOnConflict: true
47454
48884
  },
47455
48885
  {
@@ -47788,6 +49218,11 @@ var runtimeOperationContractData = [
47788
49218
  type: "string"
47789
49219
  },
47790
49220
  withUsage: {
49221
+ description: "Include usage counts. Defaults to true.",
49222
+ type: "boolean"
49223
+ },
49224
+ includeStyles: {
49225
+ description: "Include full inline style declarations for each token.",
47791
49226
  type: "boolean"
47792
49227
  },
47793
49228
  sort: {
@@ -51479,7 +52914,25 @@ var runtimeOperationContractData = [
51479
52914
  type: "string"
51480
52915
  },
51481
52916
  value: {
51482
- type: "string"
52917
+ anyOf: [
52918
+ {
52919
+ type: "string"
52920
+ },
52921
+ {
52922
+ type: "object",
52923
+ properties: {
52924
+ type: {
52925
+ type: "string",
52926
+ const: "literal"
52927
+ },
52928
+ value: {
52929
+ type: "string"
52930
+ }
52931
+ },
52932
+ required: ["type", "value"]
52933
+ }
52934
+ ],
52935
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51483
52936
  }
51484
52937
  },
51485
52938
  required: ["name", "value"]
@@ -51494,14 +52947,50 @@ var runtimeOperationContractData = [
51494
52947
  type: "string"
51495
52948
  },
51496
52949
  value: {
51497
- type: "string"
52950
+ anyOf: [
52951
+ {
52952
+ type: "string"
52953
+ },
52954
+ {
52955
+ type: "object",
52956
+ properties: {
52957
+ type: {
52958
+ type: "string",
52959
+ const: "literal"
52960
+ },
52961
+ value: {
52962
+ type: "string"
52963
+ }
52964
+ },
52965
+ required: ["type", "value"]
52966
+ }
52967
+ ],
52968
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51498
52969
  }
51499
52970
  },
51500
52971
  required: ["name", "value"]
51501
52972
  }
51502
52973
  },
51503
52974
  body: {
51504
- type: "string"
52975
+ anyOf: [
52976
+ {
52977
+ type: "string"
52978
+ },
52979
+ {
52980
+ type: "object",
52981
+ properties: {
52982
+ type: {
52983
+ type: "string",
52984
+ const: "literal"
52985
+ },
52986
+ value: {
52987
+ type: "string"
52988
+ }
52989
+ },
52990
+ required: ["type", "value"]
52991
+ }
52992
+ ],
52993
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51505
52994
  }
51506
52995
  },
51507
52996
  required: ["name", "method", "url", "headers"]
@@ -51603,7 +53092,25 @@ var runtimeOperationContractData = [
51603
53092
  type: "string"
51604
53093
  },
51605
53094
  value: {
51606
- type: "string"
53095
+ anyOf: [
53096
+ {
53097
+ type: "string"
53098
+ },
53099
+ {
53100
+ type: "object",
53101
+ properties: {
53102
+ type: {
53103
+ type: "string",
53104
+ const: "literal"
53105
+ },
53106
+ value: {
53107
+ type: "string"
53108
+ }
53109
+ },
53110
+ required: ["type", "value"]
53111
+ }
53112
+ ],
53113
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51607
53114
  }
51608
53115
  },
51609
53116
  required: ["name", "value"]
@@ -51618,14 +53125,50 @@ var runtimeOperationContractData = [
51618
53125
  type: "string"
51619
53126
  },
51620
53127
  value: {
51621
- type: "string"
53128
+ anyOf: [
53129
+ {
53130
+ type: "string"
53131
+ },
53132
+ {
53133
+ type: "object",
53134
+ properties: {
53135
+ type: {
53136
+ type: "string",
53137
+ const: "literal"
53138
+ },
53139
+ value: {
53140
+ type: "string"
53141
+ }
53142
+ },
53143
+ required: ["type", "value"]
53144
+ }
53145
+ ],
53146
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51622
53147
  }
51623
53148
  },
51624
53149
  required: ["name", "value"]
51625
53150
  }
51626
53151
  },
51627
53152
  body: {
51628
- type: "string"
53153
+ anyOf: [
53154
+ {
53155
+ type: "string"
53156
+ },
53157
+ {
53158
+ type: "object",
53159
+ properties: {
53160
+ type: {
53161
+ type: "string",
53162
+ const: "literal"
53163
+ },
53164
+ value: {
53165
+ type: "string"
53166
+ }
53167
+ },
53168
+ required: ["type", "value"]
53169
+ }
53170
+ ],
53171
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51629
53172
  }
51630
53173
  },
51631
53174
  required: []
@@ -51674,6 +53217,62 @@ var runtimeOperationContractData = [
51674
53217
  ],
51675
53218
  retryOnConflict: false
51676
53219
  },
53220
+ {
53221
+ id: "resources.replaceText",
53222
+ command: "replace-resource-text",
53223
+ client: "replaceResourceText",
53224
+ kind: "mutation",
53225
+ inputSchema: {
53226
+ type: "object",
53227
+ properties: {
53228
+ find: {
53229
+ type: "string",
53230
+ minLength: 1,
53231
+ description: "Fixed resource text to find."
53232
+ },
53233
+ replace: {
53234
+ type: "string",
53235
+ description: "Replacement fixed resource text."
53236
+ },
53237
+ match: {
53238
+ default: "exact",
53239
+ description: 'Use "exact" to replace complete values, or "substring" to replace every literal occurrence in matching values.',
53240
+ type: "string",
53241
+ enum: ["exact", "substring"]
53242
+ },
53243
+ fields: {
53244
+ default: ["name", "url"],
53245
+ description: "Resource text fields to replace.",
53246
+ minItems: 1,
53247
+ type: "array",
53248
+ items: {
53249
+ type: "string",
53250
+ enum: ["name", "url"]
53251
+ }
53252
+ },
53253
+ resourceIds: {
53254
+ description: "Optional resource ids to limit scope.",
53255
+ minItems: 1,
53256
+ type: "array",
53257
+ items: {
53258
+ type: "string"
53259
+ }
53260
+ },
53261
+ limit: {
53262
+ default: 50,
53263
+ description: "Maximum number of resource fields to change.",
53264
+ type: "integer",
53265
+ minimum: 1,
53266
+ maximum: 200
53267
+ }
53268
+ },
53269
+ required: ["find", "replace"]
53270
+ },
53271
+ readNamespaces: ["resources"],
53272
+ writeNamespaces: ["resources"],
53273
+ invalidatesNamespaces: ["resources"],
53274
+ retryOnConflict: true
53275
+ },
51677
53276
  {
51678
53277
  id: "resources.upsert",
51679
53278
  command: "upsert-resource",
@@ -51727,7 +53326,212 @@ var runtimeOperationContractData = [
51727
53326
  type: "string"
51728
53327
  },
51729
53328
  value: {
51730
- type: "string"
53329
+ anyOf: [
53330
+ {
53331
+ type: "string"
53332
+ },
53333
+ {
53334
+ type: "object",
53335
+ properties: {
53336
+ type: {
53337
+ type: "string",
53338
+ const: "literal"
53339
+ },
53340
+ value: {
53341
+ type: "string"
53342
+ }
53343
+ },
53344
+ required: ["type", "value"]
53345
+ }
53346
+ ],
53347
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
53348
+ }
53349
+ },
53350
+ required: ["name", "value"]
53351
+ }
53352
+ },
53353
+ headers: {
53354
+ type: "array",
53355
+ items: {
53356
+ type: "object",
53357
+ properties: {
53358
+ name: {
53359
+ type: "string"
53360
+ },
53361
+ value: {
53362
+ anyOf: [
53363
+ {
53364
+ type: "string"
53365
+ },
53366
+ {
53367
+ type: "object",
53368
+ properties: {
53369
+ type: {
53370
+ type: "string",
53371
+ const: "literal"
53372
+ },
53373
+ value: {
53374
+ type: "string"
53375
+ }
53376
+ },
53377
+ required: ["type", "value"]
53378
+ }
53379
+ ],
53380
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
53381
+ }
53382
+ },
53383
+ required: ["name", "value"]
53384
+ }
53385
+ },
53386
+ body: {
53387
+ anyOf: [
53388
+ {
53389
+ type: "string"
53390
+ },
53391
+ {
53392
+ type: "object",
53393
+ properties: {
53394
+ type: {
53395
+ type: "string",
53396
+ const: "literal"
53397
+ },
53398
+ value: {
53399
+ type: "string"
53400
+ }
53401
+ },
53402
+ required: ["type", "value"]
53403
+ }
53404
+ ],
53405
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
53406
+ }
53407
+ },
53408
+ required: ["name", "method", "url", "headers"]
53409
+ },
53410
+ dataSourceId: {
53411
+ type: "string"
53412
+ },
53413
+ scopeInstanceId: {
53414
+ type: "string"
53415
+ },
53416
+ dataSourceName: {
53417
+ type: "string"
53418
+ }
53419
+ },
53420
+ required: ["resource", "scopeInstanceId"]
53421
+ },
53422
+ readNamespaces: [
53423
+ "pages",
53424
+ "instances",
53425
+ "props",
53426
+ "dataSources",
53427
+ "resources",
53428
+ "styles",
53429
+ "styleSources",
53430
+ "styleSourceSelections",
53431
+ "breakpoints"
53432
+ ],
53433
+ writeNamespaces: [
53434
+ "pages",
53435
+ "instances",
53436
+ "props",
53437
+ "dataSources",
53438
+ "resources",
53439
+ "styles",
53440
+ "styleSources",
53441
+ "styleSourceSelections",
53442
+ "breakpoints"
53443
+ ],
53444
+ invalidatesNamespaces: [
53445
+ "pages",
53446
+ "instances",
53447
+ "props",
53448
+ "dataSources",
53449
+ "resources",
53450
+ "styles",
53451
+ "styleSources",
53452
+ "styleSourceSelections",
53453
+ "breakpoints"
53454
+ ],
53455
+ retryOnConflict: false
53456
+ },
53457
+ {
53458
+ id: "resources.upsertProp",
53459
+ command: "upsert-resource-prop",
53460
+ client: "upsertResourceProp",
53461
+ kind: "mutation",
53462
+ inputSchema: {
53463
+ type: "object",
53464
+ properties: {
53465
+ instanceId: {
53466
+ type: "string"
53467
+ },
53468
+ propName: {
53469
+ type: "string"
53470
+ },
53471
+ resourceId: {
53472
+ type: "string"
53473
+ },
53474
+ resource: {
53475
+ type: "object",
53476
+ properties: {
53477
+ name: {
53478
+ type: "string"
53479
+ },
53480
+ control: {
53481
+ type: "string",
53482
+ enum: ["system", "graphql"]
53483
+ },
53484
+ method: {
53485
+ anyOf: [
53486
+ {
53487
+ type: "string",
53488
+ const: "get"
53489
+ },
53490
+ {
53491
+ type: "string",
53492
+ const: "post"
53493
+ },
53494
+ {
53495
+ type: "string",
53496
+ const: "put"
53497
+ },
53498
+ {
53499
+ type: "string",
53500
+ const: "delete"
53501
+ }
53502
+ ]
53503
+ },
53504
+ url: {
53505
+ type: "string"
53506
+ },
53507
+ searchParams: {
53508
+ type: "array",
53509
+ items: {
53510
+ type: "object",
53511
+ properties: {
53512
+ name: {
53513
+ type: "string"
53514
+ },
53515
+ value: {
53516
+ anyOf: [
53517
+ {
53518
+ type: "string"
53519
+ },
53520
+ {
53521
+ type: "object",
53522
+ properties: {
53523
+ type: {
53524
+ type: "string",
53525
+ const: "literal"
53526
+ },
53527
+ value: {
53528
+ type: "string"
53529
+ }
53530
+ },
53531
+ required: ["type", "value"]
53532
+ }
53533
+ ],
53534
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51731
53535
  }
51732
53536
  },
51733
53537
  required: ["name", "value"]
@@ -51742,147 +53546,50 @@ var runtimeOperationContractData = [
51742
53546
  type: "string"
51743
53547
  },
51744
53548
  value: {
51745
- type: "string"
53549
+ anyOf: [
53550
+ {
53551
+ type: "string"
53552
+ },
53553
+ {
53554
+ type: "object",
53555
+ properties: {
53556
+ type: {
53557
+ type: "string",
53558
+ const: "literal"
53559
+ },
53560
+ value: {
53561
+ type: "string"
53562
+ }
53563
+ },
53564
+ required: ["type", "value"]
53565
+ }
53566
+ ],
53567
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51746
53568
  }
51747
53569
  },
51748
53570
  required: ["name", "value"]
51749
53571
  }
51750
53572
  },
51751
53573
  body: {
51752
- type: "string"
51753
- }
51754
- },
51755
- required: ["name", "method", "url", "headers"]
51756
- },
51757
- dataSourceId: {
51758
- type: "string"
51759
- },
51760
- scopeInstanceId: {
51761
- type: "string"
51762
- },
51763
- dataSourceName: {
51764
- type: "string"
51765
- }
51766
- },
51767
- required: ["resource", "scopeInstanceId"]
51768
- },
51769
- readNamespaces: [
51770
- "pages",
51771
- "instances",
51772
- "props",
51773
- "dataSources",
51774
- "resources",
51775
- "styles",
51776
- "styleSources",
51777
- "styleSourceSelections",
51778
- "breakpoints"
51779
- ],
51780
- writeNamespaces: [
51781
- "pages",
51782
- "instances",
51783
- "props",
51784
- "dataSources",
51785
- "resources",
51786
- "styles",
51787
- "styleSources",
51788
- "styleSourceSelections",
51789
- "breakpoints"
51790
- ],
51791
- invalidatesNamespaces: [
51792
- "pages",
51793
- "instances",
51794
- "props",
51795
- "dataSources",
51796
- "resources",
51797
- "styles",
51798
- "styleSources",
51799
- "styleSourceSelections",
51800
- "breakpoints"
51801
- ],
51802
- retryOnConflict: false
51803
- },
51804
- {
51805
- id: "resources.upsertProp",
51806
- command: "upsert-resource-prop",
51807
- client: "upsertResourceProp",
51808
- kind: "mutation",
51809
- inputSchema: {
51810
- type: "object",
51811
- properties: {
51812
- instanceId: {
51813
- type: "string"
51814
- },
51815
- propName: {
51816
- type: "string"
51817
- },
51818
- resourceId: {
51819
- type: "string"
51820
- },
51821
- resource: {
51822
- type: "object",
51823
- properties: {
51824
- name: {
51825
- type: "string"
51826
- },
51827
- control: {
51828
- type: "string",
51829
- enum: ["system", "graphql"]
51830
- },
51831
- method: {
51832
53574
  anyOf: [
51833
53575
  {
51834
- type: "string",
51835
- const: "get"
51836
- },
51837
- {
51838
- type: "string",
51839
- const: "post"
51840
- },
51841
- {
51842
- type: "string",
51843
- const: "put"
53576
+ type: "string"
51844
53577
  },
51845
53578
  {
51846
- type: "string",
51847
- const: "delete"
51848
- }
51849
- ]
51850
- },
51851
- url: {
51852
- type: "string"
51853
- },
51854
- searchParams: {
51855
- type: "array",
51856
- items: {
51857
- type: "object",
51858
- properties: {
51859
- name: {
51860
- type: "string"
51861
- },
51862
- value: {
51863
- type: "string"
51864
- }
51865
- },
51866
- required: ["name", "value"]
51867
- }
51868
- },
51869
- headers: {
51870
- type: "array",
51871
- items: {
51872
- type: "object",
51873
- properties: {
51874
- name: {
51875
- type: "string"
53579
+ type: "object",
53580
+ properties: {
53581
+ type: {
53582
+ type: "string",
53583
+ const: "literal"
53584
+ },
53585
+ value: {
53586
+ type: "string"
53587
+ }
51876
53588
  },
51877
- value: {
51878
- type: "string"
51879
- }
51880
- },
51881
- required: ["name", "value"]
51882
- }
51883
- },
51884
- body: {
51885
- type: "string"
53589
+ required: ["type", "value"]
53590
+ }
53591
+ ],
53592
+ description: 'Dynamic JavaScript expression, or { type: "literal", value: string } for fixed text.'
51886
53593
  }
51887
53594
  },
51888
53595
  required: ["name", "method", "url", "headers"]
@@ -51986,6 +53693,7 @@ var runtimeOperationContractData = [
51986
53693
  readNamespaces: [
51987
53694
  "assets",
51988
53695
  "pages",
53696
+ "projectSettings",
51989
53697
  "props",
51990
53698
  "styles",
51991
53699
  "resources",
@@ -51996,6 +53704,28 @@ var runtimeOperationContractData = [
51996
53704
  retryOnConflict: false,
51997
53705
  requiresAssets: true
51998
53706
  },
53707
+ {
53708
+ id: "fonts.list",
53709
+ command: "list-fonts",
53710
+ client: "listFonts",
53711
+ kind: "read",
53712
+ inputSchema: {
53713
+ type: "object",
53714
+ properties: {
53715
+ includeSystem: {
53716
+ default: true,
53717
+ description: "Include built-in system font stacks.",
53718
+ type: "boolean"
53719
+ }
53720
+ },
53721
+ required: []
53722
+ },
53723
+ readNamespaces: ["assets"],
53724
+ writeNamespaces: [],
53725
+ invalidatesNamespaces: [],
53726
+ retryOnConflict: false,
53727
+ requiresAssets: true
53728
+ },
51999
53729
  {
52000
53730
  id: "assets.findUsage",
52001
53731
  command: "find-asset-usage",
@@ -52013,6 +53743,7 @@ var runtimeOperationContractData = [
52013
53743
  readNamespaces: [
52014
53744
  "assets",
52015
53745
  "pages",
53746
+ "projectSettings",
52016
53747
  "props",
52017
53748
  "styles",
52018
53749
  "resources",
@@ -52062,6 +53793,66 @@ var runtimeOperationContractData = [
52062
53793
  retryOnConflict: false,
52063
53794
  requiresAssets: true
52064
53795
  },
53796
+ {
53797
+ id: "assets.setImageDescriptions",
53798
+ command: "set-image-descriptions",
53799
+ client: "setImageDescriptions",
53800
+ kind: "mutation",
53801
+ inputSchema: {
53802
+ type: "object",
53803
+ properties: {
53804
+ updates: {
53805
+ minItems: 1,
53806
+ type: "array",
53807
+ items: {
53808
+ anyOf: [
53809
+ {
53810
+ type: "object",
53811
+ properties: {
53812
+ assetId: {
53813
+ type: "string"
53814
+ },
53815
+ description: {
53816
+ type: "string",
53817
+ minLength: 1,
53818
+ description: "Concise alt description generated after inspecting the rendered image in context."
53819
+ },
53820
+ decorative: {
53821
+ type: "boolean",
53822
+ const: false
53823
+ }
53824
+ },
53825
+ required: ["assetId", "description"],
53826
+ additionalProperties: false
53827
+ },
53828
+ {
53829
+ type: "object",
53830
+ properties: {
53831
+ assetId: {
53832
+ type: "string"
53833
+ },
53834
+ decorative: {
53835
+ type: "boolean",
53836
+ const: true,
53837
+ description: "Mark the image decorative and intentionally store an empty alt description."
53838
+ }
53839
+ },
53840
+ required: ["assetId", "decorative"],
53841
+ additionalProperties: false
53842
+ }
53843
+ ]
53844
+ },
53845
+ description: "Descriptions or decorative decisions for image assets reported by the accessibility audit."
53846
+ }
53847
+ },
53848
+ required: ["updates"]
53849
+ },
53850
+ readNamespaces: ["assets"],
53851
+ writeNamespaces: ["assets"],
53852
+ invalidatesNamespaces: ["assets"],
53853
+ retryOnConflict: false,
53854
+ requiresAssets: true
53855
+ },
52065
53856
  {
52066
53857
  id: "assets.add",
52067
53858
  command: "add-asset",
@@ -52341,13 +54132,20 @@ var runtimeOperationContractData = [
52341
54132
  readNamespaces: [
52342
54133
  "assets",
52343
54134
  "pages",
54135
+ "projectSettings",
52344
54136
  "props",
52345
54137
  "styles",
52346
54138
  "resources",
52347
54139
  "dataSources"
52348
54140
  ],
52349
- writeNamespaces: ["pages", "props", "styles", "assets"],
52350
- invalidatesNamespaces: ["pages", "props", "styles", "assets"],
54141
+ writeNamespaces: ["pages", "projectSettings", "props", "styles", "assets"],
54142
+ invalidatesNamespaces: [
54143
+ "pages",
54144
+ "projectSettings",
54145
+ "props",
54146
+ "styles",
54147
+ "assets"
54148
+ ],
52351
54149
  retryOnConflict: false,
52352
54150
  requiresAssets: true
52353
54151
  },
@@ -52375,6 +54173,7 @@ var runtimeOperationContractData = [
52375
54173
  readNamespaces: [
52376
54174
  "assets",
52377
54175
  "pages",
54176
+ "projectSettings",
52378
54177
  "props",
52379
54178
  "styles",
52380
54179
  "resources",
@@ -52388,14 +54187,12 @@ var runtimeOperationContractData = [
52388
54187
  ];
52389
54188
 
52390
54189
  // ../project-build/src/contracts/builder-runtime.ts
52391
- var runtimeOperationContracts = runtimeOperationContractData.map(
52392
- (contract) => ({
52393
- permit: void 0,
52394
- requiresAssets: false,
52395
- requiresConfirm: false,
52396
- ...contract
52397
- })
52398
- );
54190
+ var runtimeOperationContracts = runtimeOperationContractData.map((contract) => ({
54191
+ permit: void 0,
54192
+ requiresAssets: false,
54193
+ requiresConfirm: false,
54194
+ ...contract
54195
+ }));
52399
54196
 
52400
54197
  // ../trpc-interface/src/authorize/project-permits.ts
52401
54198
  var projectPermits = ["view", "edit", "build", "admin"];
@@ -52410,8 +54207,8 @@ var builderApiCapabilities = [
52410
54207
  // src/builder-api/runtime-contracts.ts
52411
54208
  var publicApiOperationNamespaces = builderNamespaces;
52412
54209
  var publicApiOperationPermits = builderApiCapabilities;
52413
- var publicRuntimeOperationContracts = runtimeOperationContracts.map(
52414
- ({
54210
+ var publicRuntimeOperationContracts = runtimeOperationContracts.map((contract) => {
54211
+ const {
52415
54212
  id,
52416
54213
  command,
52417
54214
  client,
@@ -52424,21 +54221,23 @@ var publicRuntimeOperationContracts = runtimeOperationContracts.map(
52424
54221
  retryOnConflict,
52425
54222
  requiresAssets,
52426
54223
  requiresConfirm
52427
- }) => ({
54224
+ } = contract;
54225
+ return {
52428
54226
  id,
52429
54227
  command,
52430
54228
  client,
52431
54229
  permit,
52432
54230
  kind,
52433
54231
  inputSchema,
54232
+ ..."outputSchema" in contract ? { outputSchema: contract.outputSchema } : {},
52434
54233
  readNamespaces,
52435
54234
  writeNamespaces,
52436
54235
  invalidatesNamespaces,
52437
54236
  retryOnConflict,
52438
54237
  requiresAssets,
52439
54238
  requiresConfirm
52440
- })
52441
- );
54239
+ };
54240
+ });
52442
54241
 
52443
54242
  // src/builder-api/operation-docs.ts
52444
54243
  var curatedPublicApiOperationDocumentation = [
@@ -52694,15 +54493,35 @@ var curatedPublicApiOperationDocumentation = [
52694
54493
  },
52695
54494
  {
52696
54495
  command: "list-instances",
52697
- description: "List element instances in the build tree",
54496
+ description: "List element instances in the build tree, including parent id and index when known",
52698
54497
  examples: ["webstudio list-instances --path / --max-depth 2 --json"]
52699
54498
  },
52700
54499
  {
52701
54500
  command: "inspect-instance",
52702
- description: "Show details for one element instance",
54501
+ description: "Show details for one element instance, optionally including ancestors",
52703
54502
  requiredOptions: ["instance", "json"],
52704
54503
  examples: [
52705
- "webstudio inspect-instance --instance instance-id --include props,styles,children --json"
54504
+ "webstudio inspect-instance --instance instance-id --include props,styles,children,ancestors --json"
54505
+ ]
54506
+ },
54507
+ {
54508
+ command: "search-project",
54509
+ description: "Search instance labels, text, props including href and embeds, resource URLs, assets, and styles",
54510
+ examples: [
54511
+ 'MCP tool: search-project {"query":"pricing"}',
54512
+ 'MCP tool: search-project {"query":"api.example.com","scopes":["resources"]}'
54513
+ ]
54514
+ },
54515
+ {
54516
+ command: "audit",
54517
+ description: "Audit project accessibility, security, SEO, assets, and styles with structured severity, evidence, remediation, skipped checks, and visual follow-ups",
54518
+ examples: [
54519
+ "webstudio audit --json",
54520
+ "webstudio audit --scopes accessibility,seo --json",
54521
+ "webstudio audit --scopes accessibility --verbose --json",
54522
+ "webstudio audit --page-path /pricing --json",
54523
+ 'MCP tool: audit {"severities":["error","warning"]}',
54524
+ 'MCP tool: audit {"scopes":["accessibility"],"verbose":true}'
52706
54525
  ]
52707
54526
  },
52708
54527
  {
@@ -52772,6 +54591,27 @@ var curatedPublicApiOperationDocumentation = [
52772
54591
  'webstudio update-text --instance instance-id --child-index 0 --text "user.name" --mode expression --json'
52773
54592
  ]
52774
54593
  },
54594
+ {
54595
+ command: "replace-text",
54596
+ description: "Replace bounded literal text children across a page or project; use a separate command instead of an update-text replace mode",
54597
+ examples: [
54598
+ 'MCP tool: replace-text {"find":"Start free","replace":"Get started","match":"exact","pagePath":"/pricing","limit":20}'
54599
+ ]
54600
+ },
54601
+ {
54602
+ command: "replace-prop-text",
54603
+ description: "Replace bounded text inside static string props such as href and HTML embed code without changing dynamic bindings",
54604
+ examples: [
54605
+ 'MCP tool: replace-prop-text {"find":"old.example.com","replace":"www.example.com","match":"substring","names":["href","code"],"limit":20}'
54606
+ ]
54607
+ },
54608
+ {
54609
+ command: "replace-resource-text",
54610
+ description: "Replace bounded resource names and fixed URLs without changing dynamic request expressions",
54611
+ examples: [
54612
+ 'MCP tool: replace-resource-text {"find":"api.old.example.com","replace":"api.example.com","fields":["url"],"limit":20}'
54613
+ ]
54614
+ },
52775
54615
  {
52776
54616
  command: "get-styles",
52777
54617
  description: "List style declarations",
@@ -52797,8 +54637,11 @@ var curatedPublicApiOperationDocumentation = [
52797
54637
  },
52798
54638
  {
52799
54639
  command: "list-design-tokens",
52800
- description: "List reusable style tokens",
52801
- examples: ["webstudio list-design-tokens --with-usage --json"]
54640
+ description: "List compact reusable style token summaries; include full styles only when explicitly requested",
54641
+ examples: [
54642
+ "webstudio list-design-tokens --with-usage --json",
54643
+ "webstudio list-design-tokens --include-styles --json"
54644
+ ]
52802
54645
  },
52803
54646
  {
52804
54647
  command: "create-design-token",
@@ -53003,6 +54846,11 @@ var curatedPublicApiOperationDocumentation = [
53003
54846
  description: "List project assets",
53004
54847
  examples: ["webstudio list-assets --type image --with-usage --json"]
53005
54848
  },
54849
+ {
54850
+ command: "list-fonts",
54851
+ description: "List uploaded font families and optional built-in system font stacks",
54852
+ examples: ["webstudio list-fonts --json"]
54853
+ },
53006
54854
  {
53007
54855
  command: "upload-asset",
53008
54856
  description: "Upload one local asset file from an asset descriptor",
@@ -53025,6 +54873,13 @@ var curatedPublicApiOperationDocumentation = [
53025
54873
  requiredOptions: ["asset", "json"],
53026
54874
  examples: ["webstudio find-asset-usage --asset asset-id --json"]
53027
54875
  },
54876
+ {
54877
+ command: "set-image-descriptions",
54878
+ description: "Save agent-generated image descriptions or mark images as decorative",
54879
+ examples: [
54880
+ 'MCP/API: set-image-descriptions {"updates":[{"assetId":"hero-id","description":"Team collaborating around a whiteboard"},{"assetId":"texture-id","decorative":true}]}'
54881
+ ]
54882
+ },
53028
54883
  {
53029
54884
  command: "replace-asset",
53030
54885
  description: "Replace asset references and delete the old asset",
@@ -53122,6 +54977,7 @@ var withDefaultPermit = (operation) => {
53122
54977
  requiredInputFields,
53123
54978
  inputFieldTypes,
53124
54979
  inputSchema,
54980
+ ...runtimeOperation?.outputSchema === void 0 ? {} : { outputSchema: runtimeOperation.outputSchema },
53125
54981
  requiredOptions: "requiredOptions" in documentation ? documentation.requiredOptions : void 0,
53126
54982
  examples: documentation.examples,
53127
54983
  localCapable: runtimeOperation !== void 0,