@nuxtseo/protocol 0.2.1 → 0.4.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.
@@ -4,6 +4,19 @@ export const performanceSiteParamsSchema = schema.strictObject({
4
4
  siteId: schema.string().min(1),
5
5
  });
6
6
  const nullableMetricSchema = schema.number().nullable();
7
+ /**
8
+ * A Lighthouse category score, 0 to 100, where a higher number is better.
9
+ * Used for `perf`, `a11y`, `bestPractices` and `seo`.
10
+ */
11
+ const nullableScoreSchema = nullableMetricSchema;
12
+ /** A measured duration in milliseconds. Used for `lcp` and `tbt`. */
13
+ const nullableMillisecondsSchema = nullableMetricSchema;
14
+ /**
15
+ * Cumulative Layout Shift, unitless, normally between 0 and about 1. A lower
16
+ * number is better. Reported at the same scale as Lighthouse reports it, so
17
+ * `0.1` is the "good" threshold, not `100`.
18
+ */
19
+ const nullableLayoutShiftSchema = nullableMetricSchema;
7
20
  export const performanceScoreSummarySchema = defineResponseObject({
8
21
  median: nullableMetricSchema,
9
22
  worst: nullableMetricSchema,
@@ -37,6 +50,12 @@ export const performanceVitalSummarySchema = defineResponseObject({
37
50
  poor: schema.number().int().nonnegative(),
38
51
  }),
39
52
  });
53
+ /**
54
+ * Medians across the Site's latest Scans. Units follow the field: `perf`,
55
+ * `a11y`, `bestPractices` and `seo` are scores from 0 to 100, `lcp` and `tbt`
56
+ * are milliseconds, and `cls` is the unitless Cumulative Layout Shift value.
57
+ * `statusCounts` counts Scans in the good, needs-improvement and poor bands.
58
+ */
40
59
  export const sitePerformanceHealthSchema = defineResponseObject({
41
60
  perf: performanceScoreSummarySchema.producer,
42
61
  a11y: performanceCategorySummarySchema.producer,
@@ -62,24 +81,24 @@ export const sitePerformanceScanSchema = defineResponseObject({
62
81
  scanId: schema.string().min(1),
63
82
  url: schema.string().url(),
64
83
  completedAt: schema.string().datetime().nullable(),
65
- perf: nullableMetricSchema,
66
- a11y: nullableMetricSchema,
67
- bestPractices: nullableMetricSchema,
68
- seo: nullableMetricSchema,
69
- lcp: nullableMetricSchema,
70
- tbt: nullableMetricSchema,
71
- cls: nullableMetricSchema,
84
+ perf: nullableScoreSchema,
85
+ a11y: nullableScoreSchema,
86
+ bestPractices: nullableScoreSchema,
87
+ seo: nullableScoreSchema,
88
+ lcp: nullableMillisecondsSchema,
89
+ tbt: nullableMillisecondsSchema,
90
+ cls: nullableLayoutShiftSchema,
72
91
  }, {
73
92
  scanId: schema.string().min(1),
74
93
  url: schema.string().url(),
75
94
  completedAt: schema.string().datetime().nullable(),
76
- perf: nullableMetricSchema,
77
- a11y: nullableMetricSchema,
78
- bestPractices: nullableMetricSchema,
79
- seo: nullableMetricSchema,
80
- lcp: nullableMetricSchema,
81
- tbt: nullableMetricSchema,
82
- cls: nullableMetricSchema,
95
+ perf: nullableScoreSchema,
96
+ a11y: nullableScoreSchema,
97
+ bestPractices: nullableScoreSchema,
98
+ seo: nullableScoreSchema,
99
+ lcp: nullableMillisecondsSchema,
100
+ tbt: nullableMillisecondsSchema,
101
+ cls: nullableLayoutShiftSchema,
83
102
  });
84
103
  export const sitePerformanceRouteSchema = defineResponseObject({
85
104
  pageId: schema.string().min(1),
@@ -87,26 +106,26 @@ export const sitePerformanceRouteSchema = defineResponseObject({
87
106
  url: schema.string().url(),
88
107
  latestScanId: schema.string().min(1).nullable(),
89
108
  completedAt: schema.string().datetime().nullable(),
90
- perf: nullableMetricSchema,
91
- a11y: nullableMetricSchema,
92
- bestPractices: nullableMetricSchema,
93
- seo: nullableMetricSchema,
94
- lcp: nullableMetricSchema,
95
- tbt: nullableMetricSchema,
96
- cls: nullableMetricSchema,
109
+ perf: nullableScoreSchema,
110
+ a11y: nullableScoreSchema,
111
+ bestPractices: nullableScoreSchema,
112
+ seo: nullableScoreSchema,
113
+ lcp: nullableMillisecondsSchema,
114
+ tbt: nullableMillisecondsSchema,
115
+ cls: nullableLayoutShiftSchema,
97
116
  }, {
98
117
  pageId: schema.string().min(1),
99
118
  path: schema.string(),
100
119
  url: schema.string().url(),
101
120
  latestScanId: schema.string().min(1).nullable(),
102
121
  completedAt: schema.string().datetime().nullable(),
103
- perf: nullableMetricSchema,
104
- a11y: nullableMetricSchema,
105
- bestPractices: nullableMetricSchema,
106
- seo: nullableMetricSchema,
107
- lcp: nullableMetricSchema,
108
- tbt: nullableMetricSchema,
109
- cls: nullableMetricSchema,
122
+ perf: nullableScoreSchema,
123
+ a11y: nullableScoreSchema,
124
+ bestPractices: nullableScoreSchema,
125
+ seo: nullableScoreSchema,
126
+ lcp: nullableMillisecondsSchema,
127
+ tbt: nullableMillisecondsSchema,
128
+ cls: nullableLayoutShiftSchema,
110
129
  });
111
130
  export const sitePerformanceOverviewDataSchema = defineResponseObject({
112
131
  health: sitePerformanceHealthSchema.producer.nullable(),
@@ -142,6 +161,7 @@ export const sitePerformanceOverviewOperation = defineOperation({
142
161
  'auth_expired',
143
162
  'forbidden',
144
163
  'not_found',
164
+ 'conflict',
145
165
  'rate_limited',
146
166
  'contract_violation',
147
167
  'internal_error',
@@ -175,7 +195,7 @@ export const sitePerformanceOverviewOperation = defineOperation({
175
195
  seo: { median: 98, worst: 94 },
176
196
  lcp: { median: 2200, worst: 4100, statusCounts: { good: 3, ni: 1, poor: 1 } },
177
197
  tbt: { median: 180, worst: 650, statusCounts: { good: 3, ni: 1, poor: 1 } },
178
- cls: { median: 80, worst: 260, statusCounts: { good: 4, ni: 0, poor: 1 } },
198
+ cls: { median: 0.08, worst: 0.26, statusCounts: { good: 4, ni: 0, poor: 1 } },
179
199
  scannedPageCount: 5,
180
200
  lastScanAt: '2026-08-10T01:00:00.000Z',
181
201
  },
@@ -276,6 +296,7 @@ export const fieldVitalsOperation = defineOperation({
276
296
  'auth_expired',
277
297
  'forbidden',
278
298
  'not_found',
299
+ 'conflict',
279
300
  'rate_limited',
280
301
  'contract_violation',
281
302
  'internal_error',
@@ -385,6 +406,7 @@ export const fieldVitalFindingsOperation = defineOperation({
385
406
  'auth_expired',
386
407
  'forbidden',
387
408
  'not_found',
409
+ 'conflict',
388
410
  'rate_limited',
389
411
  'contract_violation',
390
412
  'internal_error',
@@ -506,6 +528,7 @@ export const performanceScansOperation = defineOperation({
506
528
  'auth_expired',
507
529
  'forbidden',
508
530
  'not_found',
531
+ 'conflict',
509
532
  'rate_limited',
510
533
  'contract_violation',
511
534
  'internal_error',
@@ -592,6 +615,7 @@ export const monitoredPagesOperation = defineOperation({
592
615
  'auth_expired',
593
616
  'forbidden',
594
617
  'not_found',
618
+ 'conflict',
595
619
  'rate_limited',
596
620
  'contract_violation',
597
621
  'internal_error',
@@ -772,6 +796,7 @@ export const performanceScanDetailOperation = defineOperation({
772
796
  'auth_expired',
773
797
  'forbidden',
774
798
  'not_found',
799
+ 'conflict',
775
800
  'rate_limited',
776
801
  'contract_violation',
777
802
  'internal_error',
@@ -599,7 +599,19 @@ declare const keywordResearchDataSchema: import("./core.js").CompatibleResponseS
599
599
  maxDifficulty: z.ZodNumber;
600
600
  intent: z.ZodOptional<z.ZodString>;
601
601
  }, z.core.$strict>;
602
+ /**
603
+ * Why a result set is empty, in one sentence for a person.
604
+ *
605
+ * The provider answers 200 with an empty list both when the argument was
606
+ * refused and when the argument was accepted but matched nothing. `message`
607
+ * is the only field that tells the two apart, so a caller that reads the list
608
+ * alone will misread a refusal as an absence of demand. Present only when the
609
+ * list is empty for a reason worth naming.
610
+ */
602
611
  readonly message: z.ZodOptional<z.ZodString>;
612
+ /**
613
+ * A concrete next argument to try, when `message` names a fixable argument.
614
+ */
603
615
  readonly tip: z.ZodOptional<z.ZodString>;
604
616
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
605
617
  message: z.ZodString;
@@ -667,7 +679,19 @@ declare const keywordResearchDataSchema: import("./core.js").CompatibleResponseS
667
679
  maxDifficulty: z.ZodNumber;
668
680
  intent: z.ZodOptional<z.ZodString>;
669
681
  }, z.core.$loose>;
682
+ /**
683
+ * Why a result set is empty, in one sentence for a person.
684
+ *
685
+ * The provider answers 200 with an empty list both when the argument was
686
+ * refused and when the argument was accepted but matched nothing. `message`
687
+ * is the only field that tells the two apart, so a caller that reads the list
688
+ * alone will misread a refusal as an absence of demand. Present only when the
689
+ * list is empty for a reason worth naming.
690
+ */
670
691
  readonly message: z.ZodOptional<z.ZodString>;
692
+ /**
693
+ * A concrete next argument to try, when `message` names a fixable argument.
694
+ */
671
695
  readonly tip: z.ZodOptional<z.ZodString>;
672
696
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
673
697
  message: z.ZodString;
@@ -737,7 +761,19 @@ export declare const keywordResearchResponseSchema: import("./core.js").Compatib
737
761
  maxDifficulty: z.ZodNumber;
738
762
  intent: z.ZodOptional<z.ZodString>;
739
763
  }, z.core.$strict>;
764
+ /**
765
+ * Why a result set is empty, in one sentence for a person.
766
+ *
767
+ * The provider answers 200 with an empty list both when the argument was
768
+ * refused and when the argument was accepted but matched nothing. `message`
769
+ * is the only field that tells the two apart, so a caller that reads the list
770
+ * alone will misread a refusal as an absence of demand. Present only when the
771
+ * list is empty for a reason worth naming.
772
+ */
740
773
  readonly message: z.ZodOptional<z.ZodString>;
774
+ /**
775
+ * A concrete next argument to try, when `message` names a fixable argument.
776
+ */
741
777
  readonly tip: z.ZodOptional<z.ZodString>;
742
778
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
743
779
  message: z.ZodString;
@@ -811,7 +847,19 @@ export declare const keywordResearchResponseSchema: import("./core.js").Compatib
811
847
  maxDifficulty: z.ZodNumber;
812
848
  intent: z.ZodOptional<z.ZodString>;
813
849
  }, z.core.$loose>;
850
+ /**
851
+ * Why a result set is empty, in one sentence for a person.
852
+ *
853
+ * The provider answers 200 with an empty list both when the argument was
854
+ * refused and when the argument was accepted but matched nothing. `message`
855
+ * is the only field that tells the two apart, so a caller that reads the list
856
+ * alone will misread a refusal as an absence of demand. Present only when the
857
+ * list is empty for a reason worth naming.
858
+ */
814
859
  readonly message: z.ZodOptional<z.ZodString>;
860
+ /**
861
+ * A concrete next argument to try, when `message` names a fixable argument.
862
+ */
815
863
  readonly tip: z.ZodOptional<z.ZodString>;
816
864
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
817
865
  message: z.ZodString;
@@ -982,6 +1030,15 @@ declare const rankingsResearchDataSchema: import("./core.js").CompatibleResponse
982
1030
  min: z.ZodNumber;
983
1031
  max: z.ZodNumber;
984
1032
  }, z.core.$strict>>;
1033
+ /**
1034
+ * Why a result set is empty, in one sentence for a person.
1035
+ *
1036
+ * The provider answers 200 with an empty list both when the argument was
1037
+ * refused and when the argument was accepted but matched nothing. `message`
1038
+ * is the only field that tells the two apart, so a caller that reads the list
1039
+ * alone will misread a refusal as an absence of demand. Present only when the
1040
+ * list is empty for a reason worth naming.
1041
+ */
985
1042
  readonly message: z.ZodOptional<z.ZodString>;
986
1043
  readonly cached: z.ZodBoolean;
987
1044
  }, z.core.$strip>, z.ZodObject<{
@@ -1017,6 +1074,15 @@ declare const rankingsResearchDataSchema: import("./core.js").CompatibleResponse
1017
1074
  min: z.ZodNumber;
1018
1075
  max: z.ZodNumber;
1019
1076
  }, z.core.$loose>>;
1077
+ /**
1078
+ * Why a result set is empty, in one sentence for a person.
1079
+ *
1080
+ * The provider answers 200 with an empty list both when the argument was
1081
+ * refused and when the argument was accepted but matched nothing. `message`
1082
+ * is the only field that tells the two apart, so a caller that reads the list
1083
+ * alone will misread a refusal as an absence of demand. Present only when the
1084
+ * list is empty for a reason worth naming.
1085
+ */
1020
1086
  readonly message: z.ZodOptional<z.ZodString>;
1021
1087
  readonly cached: z.ZodBoolean;
1022
1088
  }, z.core.$strip>>;
@@ -1054,6 +1120,15 @@ export declare const rankingsResearchResponseSchema: import("./core.js").Compati
1054
1120
  min: z.ZodNumber;
1055
1121
  max: z.ZodNumber;
1056
1122
  }, z.core.$strict>>;
1123
+ /**
1124
+ * Why a result set is empty, in one sentence for a person.
1125
+ *
1126
+ * The provider answers 200 with an empty list both when the argument was
1127
+ * refused and when the argument was accepted but matched nothing. `message`
1128
+ * is the only field that tells the two apart, so a caller that reads the list
1129
+ * alone will misread a refusal as an absence of demand. Present only when the
1130
+ * list is empty for a reason worth naming.
1131
+ */
1057
1132
  readonly message: z.ZodOptional<z.ZodString>;
1058
1133
  readonly cached: z.ZodBoolean;
1059
1134
  }, z.core.$strip>;
@@ -1095,6 +1170,15 @@ export declare const rankingsResearchResponseSchema: import("./core.js").Compati
1095
1170
  min: z.ZodNumber;
1096
1171
  max: z.ZodNumber;
1097
1172
  }, z.core.$loose>>;
1173
+ /**
1174
+ * Why a result set is empty, in one sentence for a person.
1175
+ *
1176
+ * The provider answers 200 with an empty list both when the argument was
1177
+ * refused and when the argument was accepted but matched nothing. `message`
1178
+ * is the only field that tells the two apart, so a caller that reads the list
1179
+ * alone will misread a refusal as an absence of demand. Present only when the
1180
+ * list is empty for a reason worth naming.
1181
+ */
1098
1182
  readonly message: z.ZodOptional<z.ZodString>;
1099
1183
  readonly cached: z.ZodBoolean;
1100
1184
  }, z.core.$strip>;
@@ -1315,7 +1399,7 @@ export declare const storedResearchOverviewOperation: {
1315
1399
  }, z.core.$loose>;
1316
1400
  }, z.core.$strip>>;
1317
1401
  };
1318
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
1402
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "contract_violation", "internal_error"];
1319
1403
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1320
1404
  readonly error: z.ZodObject<{
1321
1405
  code: z.ZodEnum<{
@@ -1504,7 +1588,19 @@ export declare const keywordResearchOperation: {
1504
1588
  maxDifficulty: z.ZodNumber;
1505
1589
  intent: z.ZodOptional<z.ZodString>;
1506
1590
  }, z.core.$strict>;
1591
+ /**
1592
+ * Why a result set is empty, in one sentence for a person.
1593
+ *
1594
+ * The provider answers 200 with an empty list both when the argument was
1595
+ * refused and when the argument was accepted but matched nothing. `message`
1596
+ * is the only field that tells the two apart, so a caller that reads the list
1597
+ * alone will misread a refusal as an absence of demand. Present only when the
1598
+ * list is empty for a reason worth naming.
1599
+ */
1507
1600
  readonly message: z.ZodOptional<z.ZodString>;
1601
+ /**
1602
+ * A concrete next argument to try, when `message` names a fixable argument.
1603
+ */
1508
1604
  readonly tip: z.ZodOptional<z.ZodString>;
1509
1605
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1510
1606
  message: z.ZodString;
@@ -1578,7 +1674,19 @@ export declare const keywordResearchOperation: {
1578
1674
  maxDifficulty: z.ZodNumber;
1579
1675
  intent: z.ZodOptional<z.ZodString>;
1580
1676
  }, z.core.$loose>;
1677
+ /**
1678
+ * Why a result set is empty, in one sentence for a person.
1679
+ *
1680
+ * The provider answers 200 with an empty list both when the argument was
1681
+ * refused and when the argument was accepted but matched nothing. `message`
1682
+ * is the only field that tells the two apart, so a caller that reads the list
1683
+ * alone will misread a refusal as an absence of demand. Present only when the
1684
+ * list is empty for a reason worth naming.
1685
+ */
1581
1686
  readonly message: z.ZodOptional<z.ZodString>;
1687
+ /**
1688
+ * A concrete next argument to try, when `message` names a fixable argument.
1689
+ */
1582
1690
  readonly tip: z.ZodOptional<z.ZodString>;
1583
1691
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1584
1692
  message: z.ZodString;
@@ -1998,6 +2106,15 @@ export declare const rankingsResearchOperation: {
1998
2106
  min: z.ZodNumber;
1999
2107
  max: z.ZodNumber;
2000
2108
  }, z.core.$strict>>;
2109
+ /**
2110
+ * Why a result set is empty, in one sentence for a person.
2111
+ *
2112
+ * The provider answers 200 with an empty list both when the argument was
2113
+ * refused and when the argument was accepted but matched nothing. `message`
2114
+ * is the only field that tells the two apart, so a caller that reads the list
2115
+ * alone will misread a refusal as an absence of demand. Present only when the
2116
+ * list is empty for a reason worth naming.
2117
+ */
2001
2118
  readonly message: z.ZodOptional<z.ZodString>;
2002
2119
  readonly cached: z.ZodBoolean;
2003
2120
  }, z.core.$strip>;
@@ -2039,6 +2156,15 @@ export declare const rankingsResearchOperation: {
2039
2156
  min: z.ZodNumber;
2040
2157
  max: z.ZodNumber;
2041
2158
  }, z.core.$loose>>;
2159
+ /**
2160
+ * Why a result set is empty, in one sentence for a person.
2161
+ *
2162
+ * The provider answers 200 with an empty list both when the argument was
2163
+ * refused and when the argument was accepted but matched nothing. `message`
2164
+ * is the only field that tells the two apart, so a caller that reads the list
2165
+ * alone will misread a refusal as an absence of demand. Present only when the
2166
+ * list is empty for a reason worth naming.
2167
+ */
2042
2168
  readonly message: z.ZodOptional<z.ZodString>;
2043
2169
  readonly cached: z.ZodBoolean;
2044
2170
  }, z.core.$strip>;
@@ -3203,7 +3329,7 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3203
3329
  }, z.core.$loose>;
3204
3330
  }, z.core.$strip>>;
3205
3331
  };
3206
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "contract_violation", "internal_error"];
3332
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "contract_violation", "internal_error"];
3207
3333
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
3208
3334
  readonly error: z.ZodObject<{
3209
3335
  code: z.ZodEnum<{
@@ -3392,7 +3518,19 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3392
3518
  maxDifficulty: z.ZodNumber;
3393
3519
  intent: z.ZodOptional<z.ZodString>;
3394
3520
  }, z.core.$strict>;
3521
+ /**
3522
+ * Why a result set is empty, in one sentence for a person.
3523
+ *
3524
+ * The provider answers 200 with an empty list both when the argument was
3525
+ * refused and when the argument was accepted but matched nothing. `message`
3526
+ * is the only field that tells the two apart, so a caller that reads the list
3527
+ * alone will misread a refusal as an absence of demand. Present only when the
3528
+ * list is empty for a reason worth naming.
3529
+ */
3395
3530
  readonly message: z.ZodOptional<z.ZodString>;
3531
+ /**
3532
+ * A concrete next argument to try, when `message` names a fixable argument.
3533
+ */
3396
3534
  readonly tip: z.ZodOptional<z.ZodString>;
3397
3535
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3398
3536
  message: z.ZodString;
@@ -3466,7 +3604,19 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3466
3604
  maxDifficulty: z.ZodNumber;
3467
3605
  intent: z.ZodOptional<z.ZodString>;
3468
3606
  }, z.core.$loose>;
3607
+ /**
3608
+ * Why a result set is empty, in one sentence for a person.
3609
+ *
3610
+ * The provider answers 200 with an empty list both when the argument was
3611
+ * refused and when the argument was accepted but matched nothing. `message`
3612
+ * is the only field that tells the two apart, so a caller that reads the list
3613
+ * alone will misread a refusal as an absence of demand. Present only when the
3614
+ * list is empty for a reason worth naming.
3615
+ */
3469
3616
  readonly message: z.ZodOptional<z.ZodString>;
3617
+ /**
3618
+ * A concrete next argument to try, when `message` names a fixable argument.
3619
+ */
3470
3620
  readonly tip: z.ZodOptional<z.ZodString>;
3471
3621
  readonly serpFallback: z.ZodOptional<z.ZodNullable<z.ZodObject<{
3472
3622
  message: z.ZodString;
@@ -3886,6 +4036,15 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3886
4036
  min: z.ZodNumber;
3887
4037
  max: z.ZodNumber;
3888
4038
  }, z.core.$strict>>;
4039
+ /**
4040
+ * Why a result set is empty, in one sentence for a person.
4041
+ *
4042
+ * The provider answers 200 with an empty list both when the argument was
4043
+ * refused and when the argument was accepted but matched nothing. `message`
4044
+ * is the only field that tells the two apart, so a caller that reads the list
4045
+ * alone will misread a refusal as an absence of demand. Present only when the
4046
+ * list is empty for a reason worth naming.
4047
+ */
3889
4048
  readonly message: z.ZodOptional<z.ZodString>;
3890
4049
  readonly cached: z.ZodBoolean;
3891
4050
  }, z.core.$strip>;
@@ -3927,6 +4086,15 @@ export declare const researchV1Registry: import("./core.js").PublicV1Registry<{
3927
4086
  min: z.ZodNumber;
3928
4087
  max: z.ZodNumber;
3929
4088
  }, z.core.$loose>>;
4089
+ /**
4090
+ * Why a result set is empty, in one sentence for a person.
4091
+ *
4092
+ * The provider answers 200 with an empty list both when the argument was
4093
+ * refused and when the argument was accepted but matched nothing. `message`
4094
+ * is the only field that tells the two apart, so a caller that reads the list
4095
+ * alone will misread a refusal as an absence of demand. Present only when the
4096
+ * list is empty for a reason worth naming.
4097
+ */
3930
4098
  readonly message: z.ZodOptional<z.ZodString>;
3931
4099
  readonly cached: z.ZodBoolean;
3932
4100
  }, z.core.$strip>;
@@ -202,7 +202,19 @@ const keywordResearchDataSchema = defineResponseObject({
202
202
  maxDifficulty: schema.number(),
203
203
  intent: schema.string().optional(),
204
204
  }),
205
+ /**
206
+ * Why a result set is empty, in one sentence for a person.
207
+ *
208
+ * The provider answers 200 with an empty list both when the argument was
209
+ * refused and when the argument was accepted but matched nothing. `message`
210
+ * is the only field that tells the two apart, so a caller that reads the list
211
+ * alone will misread a refusal as an absence of demand. Present only when the
212
+ * list is empty for a reason worth naming.
213
+ */
205
214
  message: schema.string().optional(),
215
+ /**
216
+ * A concrete next argument to try, when `message` names a fixable argument.
217
+ */
206
218
  tip: schema.string().optional(),
207
219
  serpFallback: schema.strictObject({
208
220
  message: schema.string(),
@@ -221,7 +233,19 @@ const keywordResearchDataSchema = defineResponseObject({
221
233
  maxDifficulty: schema.number(),
222
234
  intent: schema.string().optional(),
223
235
  }),
236
+ /**
237
+ * Why a result set is empty, in one sentence for a person.
238
+ *
239
+ * The provider answers 200 with an empty list both when the argument was
240
+ * refused and when the argument was accepted but matched nothing. `message`
241
+ * is the only field that tells the two apart, so a caller that reads the list
242
+ * alone will misread a refusal as an absence of demand. Present only when the
243
+ * list is empty for a reason worth naming.
244
+ */
224
245
  message: schema.string().optional(),
246
+ /**
247
+ * A concrete next argument to try, when `message` names a fixable argument.
248
+ */
225
249
  tip: schema.string().optional(),
226
250
  serpFallback: schema.looseObject({
227
251
  message: schema.string(),
@@ -318,6 +342,15 @@ const rankingsResearchDataSchema = defineResponseObject({
318
342
  totalFound: schema.number().int().nonnegative(),
319
343
  metrics: rankingMetricsSchema.producer.nullable(),
320
344
  positionRange: schema.strictObject({ min: schema.number(), max: schema.number() }).optional(),
345
+ /**
346
+ * Why a result set is empty, in one sentence for a person.
347
+ *
348
+ * The provider answers 200 with an empty list both when the argument was
349
+ * refused and when the argument was accepted but matched nothing. `message`
350
+ * is the only field that tells the two apart, so a caller that reads the list
351
+ * alone will misread a refusal as an absence of demand. Present only when the
352
+ * list is empty for a reason worth naming.
353
+ */
321
354
  message: schema.string().optional(),
322
355
  cached: schema.boolean(),
323
356
  }, {
@@ -326,6 +359,15 @@ const rankingsResearchDataSchema = defineResponseObject({
326
359
  totalFound: schema.number().int().nonnegative(),
327
360
  metrics: rankingMetricsSchema.client.nullable(),
328
361
  positionRange: schema.looseObject({ min: schema.number(), max: schema.number() }).optional(),
362
+ /**
363
+ * Why a result set is empty, in one sentence for a person.
364
+ *
365
+ * The provider answers 200 with an empty list both when the argument was
366
+ * refused and when the argument was accepted but matched nothing. `message`
367
+ * is the only field that tells the two apart, so a caller that reads the list
368
+ * alone will misread a refusal as an absence of demand. Present only when the
369
+ * list is empty for a reason worth naming.
370
+ */
329
371
  message: schema.string().optional(),
330
372
  cached: schema.boolean(),
331
373
  });
@@ -350,6 +392,7 @@ export const storedResearchOverviewOperation = defineOperation({
350
392
  'auth_expired',
351
393
  'forbidden',
352
394
  'not_found',
395
+ 'conflict',
353
396
  'rate_limited',
354
397
  'contract_violation',
355
398
  'internal_error',
@@ -376,7 +376,7 @@ export declare const siteSitemapsListOperation: {
376
376
  }, z.core.$loose>;
377
377
  }, z.core.$strip>>;
378
378
  };
379
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
379
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
380
380
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
381
381
  readonly error: z.ZodObject<{
382
382
  code: z.ZodEnum<{
@@ -586,7 +586,7 @@ export declare const siteSitemapUrlsListOperation: {
586
586
  }, z.core.$loose>;
587
587
  }, z.core.$strip>>;
588
588
  };
589
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
589
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
590
590
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
591
591
  readonly error: z.ZodObject<{
592
592
  code: z.ZodEnum<{
@@ -762,7 +762,7 @@ export declare const siteSitemapActionCreateOperation: {
762
762
  }, z.core.$loose>;
763
763
  }, z.core.$strip>>;
764
764
  };
765
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
765
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error", "entitlement_required"];
766
766
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
767
767
  readonly error: z.ZodObject<{
768
768
  code: z.ZodEnum<{
@@ -1012,7 +1012,7 @@ export declare const sitemapsV1Registry: import("./core.js").PublicV1Registry<{
1012
1012
  }, z.core.$loose>;
1013
1013
  }, z.core.$strip>>;
1014
1014
  };
1015
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1015
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1016
1016
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1017
1017
  readonly error: z.ZodObject<{
1018
1018
  code: z.ZodEnum<{
@@ -1222,7 +1222,7 @@ export declare const sitemapsV1Registry: import("./core.js").PublicV1Registry<{
1222
1222
  }, z.core.$loose>;
1223
1223
  }, z.core.$strip>>;
1224
1224
  };
1225
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1225
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1226
1226
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1227
1227
  readonly error: z.ZodObject<{
1228
1228
  code: z.ZodEnum<{
@@ -1398,7 +1398,7 @@ export declare const sitemapsV1Registry: import("./core.js").PublicV1Registry<{
1398
1398
  }, z.core.$loose>;
1399
1399
  }, z.core.$strip>>;
1400
1400
  };
1401
- readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "rate_limited", "provider_unavailable", "contract_violation", "internal_error"];
1401
+ readonly errors: readonly ["invalid_request", "unauthorized", "auth_expired", "forbidden", "not_found", "conflict", "rate_limited", "provider_unavailable", "contract_violation", "internal_error", "entitlement_required"];
1402
1402
  readonly errorResponse: import("./core.js").CompatibleResponseSchema<z.ZodObject<{
1403
1403
  readonly error: z.ZodObject<{
1404
1404
  code: z.ZodEnum<{
@@ -26,6 +26,7 @@ const readErrors = [
26
26
  'auth_expired',
27
27
  'forbidden',
28
28
  'not_found',
29
+ 'conflict',
29
30
  'rate_limited',
30
31
  'provider_unavailable',
31
32
  'contract_violation',
@@ -157,7 +158,7 @@ export const siteSitemapActionCreateOperation = defineOperation({
157
158
  },
158
159
  request: { params: siteSitemapParamsSchema, query: null, headers: null, body: siteSitemapActionBodySchema },
159
160
  responses: { 200: siteSitemapActionResponseSchema },
160
- errors: readErrors,
161
+ errors: [...readErrors, 'entitlement_required'],
161
162
  errorResponse: publicV1ErrorEnvelope,
162
163
  resources: {
163
164
  reads: [{ type: 'site.sitemaps', idFrom: 'params.siteId' }],