@rolino/contracts 0.3.0 → 0.5.0-beta.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/CHANGELOG.md +35 -0
- package/README.md +35 -4
- package/dist/index.cjs +762 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4867 -1240
- package/dist/index.d.ts +4867 -1240
- package/dist/index.js +678 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
var API_VERSION = "v1";
|
|
4
|
-
var CONTRACT_VERSION = "0.
|
|
4
|
+
var CONTRACT_VERSION = "0.16.0";
|
|
5
5
|
var RequestMetadataSchema = z.object({
|
|
6
6
|
requestId: z.string().min(1)
|
|
7
7
|
});
|
|
@@ -15,6 +15,11 @@ var ApiErrorCodeSchema = z.enum([
|
|
|
15
15
|
"VALIDATION_ERROR",
|
|
16
16
|
"CONFLICT",
|
|
17
17
|
"RATE_LIMITED",
|
|
18
|
+
"DELIVERY_CREDENTIAL_INVALID",
|
|
19
|
+
"DELIVERY_CREDENTIAL_REVOKED",
|
|
20
|
+
"ARTICLE_NOT_PUBLISHED",
|
|
21
|
+
"WEBHOOK_INVALID",
|
|
22
|
+
"WEBHOOK_REPLAYED",
|
|
18
23
|
"INTERNAL_ERROR"
|
|
19
24
|
]);
|
|
20
25
|
var ApiProblemSchema = z.object({
|
|
@@ -25,6 +30,50 @@ var ApiProblemSchema = z.object({
|
|
|
25
30
|
}),
|
|
26
31
|
meta: RequestMetadataSchema
|
|
27
32
|
});
|
|
33
|
+
var BlogImageSchema = z.object({
|
|
34
|
+
url: z.string().url(),
|
|
35
|
+
altText: z.string().min(1),
|
|
36
|
+
width: z.number().int().positive(),
|
|
37
|
+
height: z.number().int().positive(),
|
|
38
|
+
purpose: z.enum(["FEATURED", "SECTION", "SOCIAL_PREVIEW"])
|
|
39
|
+
});
|
|
40
|
+
var PublishedBlogArticleSchema = z.object({
|
|
41
|
+
id: z.string().min(1),
|
|
42
|
+
revisionId: z.string().min(1),
|
|
43
|
+
revisionNumber: z.number().int().positive(),
|
|
44
|
+
slug: z.string().min(1),
|
|
45
|
+
title: z.string().min(1),
|
|
46
|
+
description: z.string().nullable(),
|
|
47
|
+
excerpt: z.string().nullable(),
|
|
48
|
+
tags: z.array(z.string()),
|
|
49
|
+
author: z.string().min(1),
|
|
50
|
+
language: z.string().min(1),
|
|
51
|
+
markdown: z.string(),
|
|
52
|
+
contentBlocks: z.array(z.unknown()),
|
|
53
|
+
canonicalPath: z.string().startsWith("/"),
|
|
54
|
+
publicUrl: z.string().url(),
|
|
55
|
+
publishedAt: z.string().datetime(),
|
|
56
|
+
updatedAt: z.string().datetime(),
|
|
57
|
+
images: z.array(BlogImageSchema)
|
|
58
|
+
});
|
|
59
|
+
var BlogArticleListSchema = z.object({
|
|
60
|
+
articles: z.array(PublishedBlogArticleSchema.omit({ markdown: true, contentBlocks: true }))
|
|
61
|
+
});
|
|
62
|
+
var BlogMetadataSchema = z.object({
|
|
63
|
+
siteId: z.string().min(1),
|
|
64
|
+
name: z.string().min(1),
|
|
65
|
+
origin: z.string().url(),
|
|
66
|
+
blogBasePath: z.string().startsWith("/"),
|
|
67
|
+
language: z.string().min(1),
|
|
68
|
+
updatedAt: z.string().datetime().nullable()
|
|
69
|
+
});
|
|
70
|
+
var BlogSitemapEntrySchema = z.object({
|
|
71
|
+
url: z.string().url(),
|
|
72
|
+
lastModified: z.string().datetime()
|
|
73
|
+
});
|
|
74
|
+
var BlogSlugRedirectSchema = z.object({
|
|
75
|
+
redirect: z.object({ from: z.string().min(1), to: z.string().min(1), permanent: z.literal(true) })
|
|
76
|
+
});
|
|
28
77
|
function successEnvelopeSchema(data) {
|
|
29
78
|
return z.object({
|
|
30
79
|
data,
|
|
@@ -40,8 +89,245 @@ var CapabilityIdSchema = z.enum([
|
|
|
40
89
|
"posts:schedule",
|
|
41
90
|
"posts:publish",
|
|
42
91
|
"integrations:read",
|
|
43
|
-
"calendar:read"
|
|
92
|
+
"calendar:read",
|
|
93
|
+
"seo:read",
|
|
94
|
+
"blog:read",
|
|
95
|
+
"blog:write",
|
|
96
|
+
"blog:manage",
|
|
97
|
+
"blog:publish"
|
|
44
98
|
]);
|
|
99
|
+
var AgentBlogPlanSchema = z.object({
|
|
100
|
+
id: z.string().min(1),
|
|
101
|
+
state: z.string().min(1),
|
|
102
|
+
windowStart: z.string().datetime(),
|
|
103
|
+
windowEnd: z.string().datetime(),
|
|
104
|
+
cadence: z.object({ weekdays: z.array(z.number().int().min(0).max(6)) }),
|
|
105
|
+
activeRevisionId: z.string().nullable(),
|
|
106
|
+
itemCount: z.number().int().nonnegative()
|
|
107
|
+
});
|
|
108
|
+
var AgentBlogArticleSchema = z.object({
|
|
109
|
+
id: z.string().min(1),
|
|
110
|
+
state: z.string().min(1),
|
|
111
|
+
title: z.string().min(1),
|
|
112
|
+
slug: z.string().min(1),
|
|
113
|
+
currentDraftId: z.string().nullable(),
|
|
114
|
+
approvedRevisionId: z.string().nullable(),
|
|
115
|
+
publishedRevisionId: z.string().nullable(),
|
|
116
|
+
scheduledPublishAt: z.string().datetime().nullable(),
|
|
117
|
+
updatedAt: z.string().datetime()
|
|
118
|
+
});
|
|
119
|
+
var AgentBlogArticleDetailSchema = AgentBlogArticleSchema.extend({
|
|
120
|
+
draft: z.object({
|
|
121
|
+
id: z.string().min(1),
|
|
122
|
+
version: z.number().int().positive(),
|
|
123
|
+
title: z.string(),
|
|
124
|
+
slug: z.string(),
|
|
125
|
+
description: z.string().nullable(),
|
|
126
|
+
excerpt: z.string().nullable(),
|
|
127
|
+
canonicalPath: z.string(),
|
|
128
|
+
tags: z.array(z.string()),
|
|
129
|
+
author: z.string(),
|
|
130
|
+
language: z.string(),
|
|
131
|
+
markdown: z.string(),
|
|
132
|
+
callToAction: z.unknown().nullable(),
|
|
133
|
+
internalLinks: z.unknown()
|
|
134
|
+
}).nullable(),
|
|
135
|
+
revisions: z.array(z.object({ id: z.string().min(1), revisionNumber: z.number().int().positive(), contentHash: z.string().min(1), approvedAt: z.string().datetime().nullable(), createdAt: z.string().datetime() }))
|
|
136
|
+
});
|
|
137
|
+
var AgentBlogJobSchema = z.object({
|
|
138
|
+
id: z.string().min(1),
|
|
139
|
+
type: z.string().min(1),
|
|
140
|
+
state: z.string().min(1),
|
|
141
|
+
attemptCount: z.number().int().nonnegative(),
|
|
142
|
+
availableAt: z.string().datetime(),
|
|
143
|
+
startedAt: z.string().datetime().nullable(),
|
|
144
|
+
completedAt: z.string().datetime().nullable(),
|
|
145
|
+
lastErrorCode: z.string().nullable(),
|
|
146
|
+
lastErrorMessage: z.string().nullable()
|
|
147
|
+
});
|
|
148
|
+
var AgentBlogDraftUpdateSchema = z.object({
|
|
149
|
+
version: z.number().int().positive(),
|
|
150
|
+
title: z.string().trim().min(1).max(200),
|
|
151
|
+
slug: z.string().trim().min(1).max(160),
|
|
152
|
+
description: z.string().trim().max(320).nullable(),
|
|
153
|
+
excerpt: z.string().trim().max(500).nullable(),
|
|
154
|
+
canonicalPath: z.string().startsWith("/"),
|
|
155
|
+
tags: z.array(z.string().trim().min(1).max(80)).max(30),
|
|
156
|
+
author: z.string().trim().min(1).max(160),
|
|
157
|
+
language: z.string().trim().min(2).max(20),
|
|
158
|
+
markdown: z.string().max(2e5),
|
|
159
|
+
callToAction: z.object({ label: z.string().trim().min(1).max(160), pageId: z.string().min(1).nullable() }).strict().nullable(),
|
|
160
|
+
internalLinks: z.array(z.object({ pageId: z.string().min(1), anchorText: z.string().trim().min(1).max(200) }).strict()).max(20),
|
|
161
|
+
scheduledPublishAt: z.string().datetime().nullable().optional()
|
|
162
|
+
});
|
|
163
|
+
var AgentBlogGenerateRequestSchema = z.object({ idempotencyKey: z.string().trim().min(8).max(200) });
|
|
164
|
+
var AgentBlogDestinationSelectionSchema = z.array(z.string().min(1)).min(1).max(20);
|
|
165
|
+
var AgentBlogPublishPreviewRequestSchema = z.object({ revisionId: z.string().min(1), destinationIds: AgentBlogDestinationSelectionSchema.optional() });
|
|
166
|
+
var AgentBlogPublishExecuteRequestSchema = z.object({ revisionId: z.string().min(1), destinationIds: AgentBlogDestinationSelectionSchema.optional(), confirmationToken: z.string().min(1), idempotencyKey: z.string().trim().min(8).max(200) });
|
|
167
|
+
var AgentBlogPublishingProviderSchema = z.object({ key: z.string(), name: z.string(), description: z.string(), mode: z.string(), rollout: z.enum(["PREVIEW", "VISIBLE"]), capabilities: z.array(z.string()), authorizationStrategy: z.string(), requiresResourceDiscovery: z.boolean(), requiresFieldMapping: z.boolean(), officialDocumentationUrl: z.string().url() }).strict();
|
|
168
|
+
var AgentBlogPublishingDestinationSchema = z.object({ id: z.string(), name: z.string(), providerKey: z.string(), mode: z.string(), status: z.string(), isPrimary: z.boolean(), enabled: z.boolean(), externalSiteName: z.string().nullable(), externalSiteUrl: z.string().url().nullable(), lastTestedAt: z.string().datetime().nullable(), lastSucceededAt: z.string().datetime().nullable(), lastErrorCode: z.string().nullable() }).strict();
|
|
169
|
+
var AgentBlogDeliveryAttemptSchema = z.object({ id: z.string(), articleId: z.string().nullable(), revisionId: z.string().nullable(), destinationId: z.string().nullable(), destinationName: z.string().nullable(), operation: z.string().nullable(), state: z.string(), attemptCount: z.number().int().nonnegative(), errorCode: z.string().nullable(), retryAt: z.string().datetime().nullable(), remoteUrl: z.string().url().nullable(), createdAt: z.string().datetime(), deliveredAt: z.string().datetime().nullable() }).strict();
|
|
170
|
+
var AgentBlogPublishPreviewSchema = z.object({ articleId: z.string(), revisionId: z.string(), contentHash: z.string(), title: z.string(), slug: z.string(), publicUrl: z.string().url(), destinations: z.array(AgentBlogPublishingDestinationSchema), confirmation: z.object({ token: z.string(), expiresAt: z.string().datetime() }) });
|
|
171
|
+
var AgentBlogReadinessSchema = z.enum([
|
|
172
|
+
"MISSING",
|
|
173
|
+
"NOT_STARTED",
|
|
174
|
+
"QUEUED",
|
|
175
|
+
"RUNNING",
|
|
176
|
+
"READY",
|
|
177
|
+
"USED",
|
|
178
|
+
"CONFIGURED",
|
|
179
|
+
"VERIFIED",
|
|
180
|
+
"NEEDS_ATTENTION"
|
|
181
|
+
]);
|
|
182
|
+
var AgentBlogSetupStatusSchema = z.object({
|
|
183
|
+
projectId: z.string().min(1),
|
|
184
|
+
brandName: z.string().min(1),
|
|
185
|
+
brandWebsite: z.enum(["MISSING", "READY"]),
|
|
186
|
+
websiteOrigin: z.string().url().nullable(),
|
|
187
|
+
siteId: z.string().min(1).nullable(),
|
|
188
|
+
blogBasePath: z.string().startsWith("/").nullable(),
|
|
189
|
+
siteImport: AgentBlogReadinessSchema,
|
|
190
|
+
activeJobId: z.string().min(1).nullable(),
|
|
191
|
+
plan: AgentBlogReadinessSchema,
|
|
192
|
+
activePlanId: z.string().min(1).nullable(),
|
|
193
|
+
deliveryCredential: AgentBlogReadinessSchema,
|
|
194
|
+
revalidation: AgentBlogReadinessSchema,
|
|
195
|
+
nextAction: z.enum([
|
|
196
|
+
"ADD_WEBSITE",
|
|
197
|
+
"IMPORT_SITE",
|
|
198
|
+
"WAIT_FOR_JOB",
|
|
199
|
+
"CREATE_PLAN",
|
|
200
|
+
"REVIEW_PLAN",
|
|
201
|
+
"CONFIGURE_DELIVERY",
|
|
202
|
+
"TEST_CONNECTION",
|
|
203
|
+
"READY"
|
|
204
|
+
])
|
|
205
|
+
}).strict();
|
|
206
|
+
var AgentBlogCadenceInputSchema = z.object({
|
|
207
|
+
startsOn: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
|
|
208
|
+
weekdays: z.array(z.number().int().min(0).max(6)).min(1).max(7),
|
|
209
|
+
timeZone: z.string().trim().min(1).max(100)
|
|
210
|
+
}).strict().superRefine(({ weekdays }, context) => {
|
|
211
|
+
if (new Set(weekdays).size !== weekdays.length) {
|
|
212
|
+
context.addIssue({ code: "custom", path: ["weekdays"], message: "Weekdays must be unique." });
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
var AgentBlogIdempotentRequestSchema = z.object({
|
|
216
|
+
idempotencyKey: z.string().trim().min(8).max(200)
|
|
217
|
+
}).strict();
|
|
218
|
+
var AgentBlogPlanCreateRequestSchema = AgentBlogCadenceInputSchema.and(AgentBlogIdempotentRequestSchema);
|
|
219
|
+
var AgentBlogPlanRetryRequestSchema = AgentBlogIdempotentRequestSchema;
|
|
220
|
+
var AgentBlogPlanItemSchema = z.object({
|
|
221
|
+
id: z.string().min(1),
|
|
222
|
+
planId: z.string().min(1),
|
|
223
|
+
planRevisionId: z.string().min(1),
|
|
224
|
+
version: z.number().int().positive(),
|
|
225
|
+
scheduledLocalDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
|
|
226
|
+
title: z.string().min(1),
|
|
227
|
+
recommendedSlug: z.string().min(1),
|
|
228
|
+
state: z.string().min(1),
|
|
229
|
+
workType: z.string().min(1),
|
|
230
|
+
format: z.string().min(1),
|
|
231
|
+
primaryQuery: z.string().nullable(),
|
|
232
|
+
searchIntent: z.string().nullable(),
|
|
233
|
+
summary: z.string(),
|
|
234
|
+
outline: z.unknown(),
|
|
235
|
+
selectionReason: z.string().min(1),
|
|
236
|
+
evidenceClassification: z.enum(["OBSERVED", "MIXED", "HYPOTHESIS"]),
|
|
237
|
+
evidence: z.unknown(),
|
|
238
|
+
displayMetrics: z.unknown(),
|
|
239
|
+
overlapExplanation: z.string().nullable(),
|
|
240
|
+
existingArticleComparison: z.string().nullable(),
|
|
241
|
+
recommendedLinks: z.unknown(),
|
|
242
|
+
targetConversionPage: z.string().nullable(),
|
|
243
|
+
articleId: z.string().min(1).nullable()
|
|
244
|
+
}).strict();
|
|
245
|
+
var AgentBlogPlanItemStateRequestSchema = z.object({
|
|
246
|
+
state: z.enum(["ACCEPTED", "DISMISSED"]),
|
|
247
|
+
expectedState: z.string().min(1),
|
|
248
|
+
expectedVersion: z.number().int().positive(),
|
|
249
|
+
idempotencyKey: z.string().trim().min(8).max(200)
|
|
250
|
+
}).strict();
|
|
251
|
+
var AgentBlogArticleCreateRequestSchema = z.object({
|
|
252
|
+
expectedState: z.literal("ACCEPTED"),
|
|
253
|
+
expectedVersion: z.number().int().positive(),
|
|
254
|
+
idempotencyKey: z.string().trim().min(8).max(200)
|
|
255
|
+
}).strict();
|
|
256
|
+
var AgentBlogConnectionStatusSchema = z.object({
|
|
257
|
+
projectId: z.string().min(1),
|
|
258
|
+
siteId: z.string().min(1),
|
|
259
|
+
origin: z.string().url(),
|
|
260
|
+
endpoint: z.string().url().nullable(),
|
|
261
|
+
deliveryCredential: z.enum(["MISSING", "READY", "USED"]),
|
|
262
|
+
activeCredentialId: z.string().min(1).nullable(),
|
|
263
|
+
credentialLastUsedAt: z.string().datetime().nullable(),
|
|
264
|
+
revalidation: z.enum(["MISSING", "CONFIGURED", "VERIFIED", "NEEDS_ATTENTION"]),
|
|
265
|
+
revalidationLastTestedAt: z.string().datetime().nullable(),
|
|
266
|
+
revalidationLastSucceededAt: z.string().datetime().nullable(),
|
|
267
|
+
revalidationLastErrorCode: z.string().nullable()
|
|
268
|
+
}).strict();
|
|
269
|
+
var AgentBlogConnectionRequestSchema = z.object({
|
|
270
|
+
endpoint: z.string().url().nullable(),
|
|
271
|
+
credentialAction: z.enum(["KEEP", "CREATE", "ROTATE", "REVOKE"]),
|
|
272
|
+
credentialId: z.string().min(1).nullable(),
|
|
273
|
+
secretAction: z.enum(["KEEP", "CREATE", "ROTATE"])
|
|
274
|
+
}).strict();
|
|
275
|
+
var AgentBlogConnectionPreviewRequestSchema = AgentBlogConnectionRequestSchema;
|
|
276
|
+
var AgentBlogConnectionExecuteRequestSchema = AgentBlogConnectionRequestSchema.extend({
|
|
277
|
+
confirmationToken: z.string().min(1).max(300),
|
|
278
|
+
idempotencyKey: z.string().trim().min(8).max(200)
|
|
279
|
+
}).strict();
|
|
280
|
+
var AgentBlogConnectionPreviewSchema = z.object({
|
|
281
|
+
projectId: z.string().min(1),
|
|
282
|
+
siteId: z.string().min(1),
|
|
283
|
+
siteName: z.string().min(1),
|
|
284
|
+
origin: z.string().url(),
|
|
285
|
+
endpoint: z.string().url().nullable(),
|
|
286
|
+
credentialAction: z.enum(["KEEP", "CREATE", "ROTATE", "REVOKE"]),
|
|
287
|
+
secretAction: z.enum(["KEEP", "CREATE", "ROTATE"]),
|
|
288
|
+
effect: z.string().min(1),
|
|
289
|
+
confirmation: z.object({ token: z.string().min(1), expiresAt: z.string().datetime() }).strict()
|
|
290
|
+
}).strict();
|
|
291
|
+
var AgentBlogConnectionExecuteSchema = z.object({
|
|
292
|
+
projectId: z.string().min(1),
|
|
293
|
+
siteId: z.string().min(1),
|
|
294
|
+
completed: z.literal(true),
|
|
295
|
+
secretDelivered: z.boolean(),
|
|
296
|
+
alreadyDelivered: z.boolean(),
|
|
297
|
+
deliveryToken: z.string().min(1).optional(),
|
|
298
|
+
webhookSecret: z.string().min(1).optional(),
|
|
299
|
+
message: z.string().min(1)
|
|
300
|
+
}).strict();
|
|
301
|
+
var AgentBlogRevalidationTestRequestSchema = AgentBlogIdempotentRequestSchema;
|
|
302
|
+
var AgentBlogRevalidationTestSchema = z.object({
|
|
303
|
+
status: z.enum(["VERIFIED", "NEEDS_ATTENTION"]),
|
|
304
|
+
testedAt: z.string().datetime(),
|
|
305
|
+
errorCode: z.string().nullable()
|
|
306
|
+
}).strict();
|
|
307
|
+
var AgentBlogPlanListResponseSchema = successEnvelopeSchema(z.object({ plans: z.array(AgentBlogPlanSchema) }));
|
|
308
|
+
var AgentBlogArticleListResponseSchema = successEnvelopeSchema(z.object({ articles: z.array(AgentBlogArticleSchema) }));
|
|
309
|
+
var AgentBlogArticleResponseSchema = successEnvelopeSchema(AgentBlogArticleDetailSchema);
|
|
310
|
+
var AgentBlogJobResponseSchema = successEnvelopeSchema(AgentBlogJobSchema);
|
|
311
|
+
var AgentBlogPublishPreviewResponseSchema = successEnvelopeSchema(AgentBlogPublishPreviewSchema);
|
|
312
|
+
var AgentBlogPublishExecuteResponseSchema = successEnvelopeSchema(z.object({ publicationId: z.string(), articleId: z.string(), revisionId: z.string(), publicUrl: z.string().url(), publishedAt: z.string().datetime() }));
|
|
313
|
+
var AgentBlogPublishingProviderListResponseSchema = successEnvelopeSchema(z.object({ providers: z.array(AgentBlogPublishingProviderSchema) }).strict());
|
|
314
|
+
var AgentBlogPublishingDestinationListResponseSchema = successEnvelopeSchema(z.object({ destinations: z.array(AgentBlogPublishingDestinationSchema) }).strict());
|
|
315
|
+
var AgentBlogDeliveryAttemptListResponseSchema = successEnvelopeSchema(z.object({ deliveries: z.array(AgentBlogDeliveryAttemptSchema) }).strict());
|
|
316
|
+
var AgentBlogSetupStatusResponseSchema = successEnvelopeSchema(AgentBlogSetupStatusSchema);
|
|
317
|
+
var AgentBlogPlanItemsResponseSchema = successEnvelopeSchema(z.object({ items: z.array(AgentBlogPlanItemSchema) }).strict());
|
|
318
|
+
var AgentBlogPlanItemResponseSchema = successEnvelopeSchema(AgentBlogPlanItemSchema);
|
|
319
|
+
var AgentBlogPlanQueuedResponseSchema = successEnvelopeSchema(z.object({
|
|
320
|
+
planId: z.string().min(1),
|
|
321
|
+
job: AgentBlogJobSchema
|
|
322
|
+
}).strict());
|
|
323
|
+
var AgentBlogArticleQueuedResponseSchema = successEnvelopeSchema(z.object({
|
|
324
|
+
articleId: z.string().min(1),
|
|
325
|
+
job: AgentBlogJobSchema.nullable()
|
|
326
|
+
}).strict());
|
|
327
|
+
var AgentBlogConnectionStatusResponseSchema = successEnvelopeSchema(AgentBlogConnectionStatusSchema);
|
|
328
|
+
var AgentBlogConnectionPreviewResponseSchema = successEnvelopeSchema(AgentBlogConnectionPreviewSchema);
|
|
329
|
+
var AgentBlogConnectionExecuteResponseSchema = successEnvelopeSchema(AgentBlogConnectionExecuteSchema);
|
|
330
|
+
var AgentBlogRevalidationTestResponseSchema = successEnvelopeSchema(AgentBlogRevalidationTestSchema);
|
|
45
331
|
var CapabilitySchema = z.object({
|
|
46
332
|
id: CapabilityIdSchema,
|
|
47
333
|
available: z.boolean(),
|
|
@@ -254,9 +540,24 @@ var PublishingProviderSchema = z.enum([
|
|
|
254
540
|
"LINKEDIN"
|
|
255
541
|
]);
|
|
256
542
|
var PUBLISHING_PROVIDER_COUNT = PublishingProviderSchema.options.length;
|
|
543
|
+
var PostDeliveryModeSchema = z.enum(["IMMEDIATE", "SCHEDULED"]);
|
|
544
|
+
var PostDestinationStageSchema = z.enum([
|
|
545
|
+
"DRAFT",
|
|
546
|
+
"QUEUED",
|
|
547
|
+
"UPLOADING",
|
|
548
|
+
"PROCESSING",
|
|
549
|
+
"CONFIRMING_SCHEDULE",
|
|
550
|
+
"SCHEDULED",
|
|
551
|
+
"PUBLISHING",
|
|
552
|
+
"PUBLISHED",
|
|
553
|
+
"ACTION_REQUIRED",
|
|
554
|
+
"FAILED"
|
|
555
|
+
]);
|
|
257
556
|
var PostDestinationSchema = z.object({
|
|
258
557
|
provider: PublishingProviderSchema,
|
|
259
558
|
status: PlatformPostStatusSchema,
|
|
559
|
+
deliveryMode: PostDeliveryModeSchema,
|
|
560
|
+
stage: PostDestinationStageSchema,
|
|
260
561
|
captionOverride: z.string().nullable(),
|
|
261
562
|
scheduledAt: z.string().datetime().nullable(),
|
|
262
563
|
publishedAt: z.string().datetime().nullable(),
|
|
@@ -603,13 +904,21 @@ var LinkedInDeliveryOptionsSchema = z.object({
|
|
|
603
904
|
displayName: z.string().nullable(),
|
|
604
905
|
avatarUrl: z.string().url().nullable()
|
|
605
906
|
}),
|
|
606
|
-
supportedPostTypes: z.array(z.enum(["TEXT", "SINGLE_IMAGE", "MULTI_IMAGE"])).length(
|
|
907
|
+
supportedPostTypes: z.array(z.enum(["TEXT", "SINGLE_IMAGE", "MULTI_IMAGE", "VIDEO"])).length(4),
|
|
607
908
|
image: z.object({
|
|
608
909
|
maxItems: z.literal(10),
|
|
609
910
|
mimeTypes: z.tuple([z.literal("image/jpeg"), z.literal("image/png")]),
|
|
610
911
|
maxPixelsExclusive: z.literal(36152320),
|
|
611
912
|
maxBytes: z.literal(26214400)
|
|
612
913
|
}),
|
|
914
|
+
video: z.object({
|
|
915
|
+
maxItems: z.literal(1),
|
|
916
|
+
mimeTypes: z.tuple([z.literal("video/mp4")]),
|
|
917
|
+
minBytes: z.literal(76800),
|
|
918
|
+
maxBytes: z.literal(524288e3),
|
|
919
|
+
minDurationMs: z.literal(3e3),
|
|
920
|
+
maxDurationMs: z.literal(18e5)
|
|
921
|
+
}),
|
|
613
922
|
health: z.object({
|
|
614
923
|
status: ProviderHealthStatusSchema,
|
|
615
924
|
code: z.string().min(1),
|
|
@@ -635,11 +944,13 @@ var ReadinessActionSchema = z.object({
|
|
|
635
944
|
kind: z.enum([
|
|
636
945
|
"reconnect",
|
|
637
946
|
"replace_media",
|
|
947
|
+
"adjust_media",
|
|
638
948
|
"review_settings",
|
|
639
949
|
"edit_caption",
|
|
640
950
|
"refresh_health"
|
|
641
951
|
]),
|
|
642
|
-
provider: PublishingProviderSchema.optional()
|
|
952
|
+
provider: PublishingProviderSchema.optional(),
|
|
953
|
+
mediaId: z.string().min(1).optional()
|
|
643
954
|
});
|
|
644
955
|
var PostReadinessCheckSchema = z.object({
|
|
645
956
|
key: z.string().min(1),
|
|
@@ -697,6 +1008,7 @@ var PostScheduleExecuteInputSchema = PostScheduleInputSchema.extend({
|
|
|
697
1008
|
}).strict();
|
|
698
1009
|
var PostSchedulePreviewSchema = z.object({
|
|
699
1010
|
operation: z.literal("posts.schedule.execute"),
|
|
1011
|
+
deliveryMode: z.literal("SCHEDULED"),
|
|
700
1012
|
post: z.object({
|
|
701
1013
|
id: z.string().min(1),
|
|
702
1014
|
projectId: z.string().min(1),
|
|
@@ -705,6 +1017,12 @@ var PostSchedulePreviewSchema = z.object({
|
|
|
705
1017
|
}),
|
|
706
1018
|
schedule: PostScheduleInputSchema,
|
|
707
1019
|
destinations: z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT),
|
|
1020
|
+
youtube: z.object({
|
|
1021
|
+
uploadVisibility: z.literal("PRIVATE"),
|
|
1022
|
+
publishVisibility: z.literal("PUBLIC"),
|
|
1023
|
+
preparationStartsImmediately: z.literal(true),
|
|
1024
|
+
confirmationMeaning: z.string().min(1)
|
|
1025
|
+
}).nullable().optional(),
|
|
708
1026
|
providerReconciliation: z.object({
|
|
709
1027
|
provider: z.literal("YOUTUBE"),
|
|
710
1028
|
required: z.boolean(),
|
|
@@ -725,6 +1043,8 @@ var PostSchedulePendingSchema = z.object({
|
|
|
725
1043
|
provider: z.literal("YOUTUBE"),
|
|
726
1044
|
mutationId: z.string().min(1),
|
|
727
1045
|
operation: z.enum(["SCHEDULE", "CANCEL"]),
|
|
1046
|
+
phase: z.literal("REMOTE_SCHEDULE_CONFIRMATION"),
|
|
1047
|
+
videoUploaded: z.literal(true),
|
|
728
1048
|
message: z.string().min(1)
|
|
729
1049
|
});
|
|
730
1050
|
var PostScheduleExecuteResultSchema = z.union([
|
|
@@ -745,6 +1065,7 @@ var PostPublishExecuteInputSchema = PostPublishInputSchema.extend({
|
|
|
745
1065
|
}).strict();
|
|
746
1066
|
var PostPublishPreviewSchema = z.object({
|
|
747
1067
|
operation: z.literal("posts.publish.execute"),
|
|
1068
|
+
deliveryMode: z.literal("IMMEDIATE"),
|
|
748
1069
|
post: z.object({
|
|
749
1070
|
id: z.string().min(1),
|
|
750
1071
|
projectId: z.string().min(1),
|
|
@@ -752,6 +1073,11 @@ var PostPublishPreviewSchema = z.object({
|
|
|
752
1073
|
status: PostStatusSchema
|
|
753
1074
|
}),
|
|
754
1075
|
destinations: PostPublishInputSchema.shape.destinations,
|
|
1076
|
+
youtube: z.object({
|
|
1077
|
+
visibility: YouTubePostSettingsSchema.shape.privacyStatus,
|
|
1078
|
+
preparationStartsImmediately: z.literal(true),
|
|
1079
|
+
createsSchedule: z.literal(false)
|
|
1080
|
+
}).nullable().optional(),
|
|
755
1081
|
readiness: PostReadinessSchema,
|
|
756
1082
|
confirmation: z.object({
|
|
757
1083
|
token: z.string().min(1),
|
|
@@ -824,14 +1150,330 @@ var CalendarListDataSchema = z.object({
|
|
|
824
1150
|
var CalendarListResponseSchema = successEnvelopeSchema(
|
|
825
1151
|
CalendarListDataSchema
|
|
826
1152
|
);
|
|
1153
|
+
var SeoEntityIdSchema = z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
|
|
1154
|
+
var SeoCursorSchema = z.string().min(1).max(512).regex(/^[A-Za-z0-9_-]+$/);
|
|
1155
|
+
var SeoOpportunityKindSchema = z.enum([
|
|
1156
|
+
"SEARCH_TOPIC_CTR",
|
|
1157
|
+
"SEARCH_TOPIC_REFRESH",
|
|
1158
|
+
"SEARCH_TOPIC_NEW_ARTICLE",
|
|
1159
|
+
"SEARCH_TOPIC_CONSOLIDATE",
|
|
1160
|
+
"SEARCH_TOPIC_CLUSTER",
|
|
1161
|
+
"COMPETITOR_KEYWORD_GAP",
|
|
1162
|
+
"COMPETITOR_RANK_GAIN",
|
|
1163
|
+
"COMPETITOR_RANK_DROP",
|
|
1164
|
+
"COMPETITOR_SHARED_GAP",
|
|
1165
|
+
"SEO_VALIDATED_COMPETITOR_GAP"
|
|
1166
|
+
]);
|
|
1167
|
+
var SeoExpectedImpactSchema = z.enum(["HIGH", "MEDIUM", "LOW"]);
|
|
1168
|
+
var SeoEvidenceProvenanceSchema = z.enum([
|
|
1169
|
+
"CUSTOMER_SEARCH_DATA",
|
|
1170
|
+
"MARKET_ESTIMATE",
|
|
1171
|
+
"ROLINO_ANALYSIS"
|
|
1172
|
+
]);
|
|
1173
|
+
var SeoEvidenceSchema = z.object({
|
|
1174
|
+
title: z.string().min(1).max(180),
|
|
1175
|
+
summary: z.string().min(1).max(500),
|
|
1176
|
+
sourceUrl: z.string().url().max(2048).nullable(),
|
|
1177
|
+
provenance: SeoEvidenceProvenanceSchema,
|
|
1178
|
+
observedAt: z.string().datetime(),
|
|
1179
|
+
periodStart: z.string().datetime().nullable(),
|
|
1180
|
+
periodEnd: z.string().datetime().nullable(),
|
|
1181
|
+
metrics: z.record(
|
|
1182
|
+
z.string().regex(/^[A-Za-z][A-Za-z0-9]{0,39}$/),
|
|
1183
|
+
z.number().finite()
|
|
1184
|
+
).refine((metrics) => Object.keys(metrics).length <= 20, {
|
|
1185
|
+
message: "SEO evidence can contain at most 20 metrics."
|
|
1186
|
+
}),
|
|
1187
|
+
estimated: z.boolean(),
|
|
1188
|
+
topRowsOnly: z.boolean(),
|
|
1189
|
+
coverageNote: z.string().max(500).nullable()
|
|
1190
|
+
}).strict();
|
|
1191
|
+
var SeoActionDecisionSchema = z.enum(["READY", "NEEDS_REVIEW", "REJECTED"]);
|
|
1192
|
+
var SeoSearchIntentSchema = z.enum(["INFORMATIONAL", "COMMERCIAL", "NAVIGATIONAL", "BRANDED", "SUSPICIOUS"]);
|
|
1193
|
+
var SeoContentTypeSchema = z.enum(["GUIDE", "TUTORIAL", "COMPARISON_PAGE", "LANDING_PAGE", "CONTENT_REFRESH"]);
|
|
1194
|
+
var SeoActionPlanSchema = z.object({
|
|
1195
|
+
version: z.number().int().positive(),
|
|
1196
|
+
decision: SeoActionDecisionSchema,
|
|
1197
|
+
decisionReason: z.string().min(1).max(500),
|
|
1198
|
+
searchIntent: SeoSearchIntentSchema,
|
|
1199
|
+
primaryKeyword: z.string().min(1).max(300),
|
|
1200
|
+
supportingKeywords: z.array(z.string().min(1).max(300)).max(12),
|
|
1201
|
+
questions: z.array(z.string().min(1).max(300)).max(8),
|
|
1202
|
+
contentType: SeoContentTypeSchema,
|
|
1203
|
+
suggestedTitle: z.string().min(1).max(180),
|
|
1204
|
+
angle: z.string().max(500),
|
|
1205
|
+
targetReader: z.string().min(1).max(500),
|
|
1206
|
+
pageGoal: z.string().max(500),
|
|
1207
|
+
outline: z.array(z.object({
|
|
1208
|
+
heading: z.string().min(1).max(180),
|
|
1209
|
+
purpose: z.string().min(1).max(500)
|
|
1210
|
+
}).strict()).max(10),
|
|
1211
|
+
rolinoConnection: z.string().max(600),
|
|
1212
|
+
cta: z.string().max(300),
|
|
1213
|
+
competitorPages: z.array(z.object({
|
|
1214
|
+
domain: z.string().min(1).max(253),
|
|
1215
|
+
url: z.string().url().nullable(),
|
|
1216
|
+
keyword: z.string().min(1).max(300),
|
|
1217
|
+
rank: z.number().min(1).max(1e3).nullable()
|
|
1218
|
+
}).strict()).max(8),
|
|
1219
|
+
existingPage: z.object({
|
|
1220
|
+
title: z.string().min(1).max(180),
|
|
1221
|
+
url: z.string().url()
|
|
1222
|
+
}).strict().nullable(),
|
|
1223
|
+
warnings: z.array(z.string().min(1).max(500)).max(8),
|
|
1224
|
+
researchTasks: z.array(z.string().min(1).max(500)).max(8),
|
|
1225
|
+
cluster: z.object({
|
|
1226
|
+
competitorDomains: z.array(z.string().min(1).max(253)).max(3),
|
|
1227
|
+
bestRank: z.number().min(1).max(1e3).nullable(),
|
|
1228
|
+
estimatedDemand: z.number().min(0).nullable(),
|
|
1229
|
+
firstPartyValidated: z.boolean(),
|
|
1230
|
+
relevanceScore: z.number().min(0).max(1),
|
|
1231
|
+
coverage: z.string().max(500)
|
|
1232
|
+
}).strict()
|
|
1233
|
+
}).strict();
|
|
1234
|
+
var SeoTaskDecisionSchema = z.enum(["READY", "NEEDS_REVIEW", "REJECTED"]);
|
|
1235
|
+
var SeoTaskFormatSchema = z.enum([
|
|
1236
|
+
"BLOG_ARTICLE",
|
|
1237
|
+
"PRODUCT_LANDING_PAGE",
|
|
1238
|
+
"COMPARISON_PAGE",
|
|
1239
|
+
"EXISTING_PAGE_REFRESH",
|
|
1240
|
+
"YOUTUBE_PRODUCTION_PACKAGE",
|
|
1241
|
+
"SOCIAL_CAMPAIGN",
|
|
1242
|
+
"LINK_OUTREACH_TASK",
|
|
1243
|
+
"RESEARCH_TASK"
|
|
1244
|
+
]);
|
|
1245
|
+
var SeoConfidenceValueSchema = z.object({
|
|
1246
|
+
score: z.number().int().min(0).max(100).nullable(),
|
|
1247
|
+
level: z.enum(["HIGH", "MEDIUM", "LOW", "UNCONFIRMED"]),
|
|
1248
|
+
label: z.string().min(1).max(120),
|
|
1249
|
+
explanation: z.string().min(1).max(500)
|
|
1250
|
+
}).strict();
|
|
1251
|
+
var SeoDecisionConfidenceSchema = z.object({
|
|
1252
|
+
topicRelevance: SeoConfidenceValueSchema,
|
|
1253
|
+
actionReadiness: SeoConfidenceValueSchema
|
|
1254
|
+
}).strict();
|
|
1255
|
+
var SeoTaskEvidenceSummarySchema = z.object({
|
|
1256
|
+
title: z.string().min(1).max(180),
|
|
1257
|
+
summary: z.string().min(1).max(500),
|
|
1258
|
+
provenance: SeoEvidenceProvenanceSchema,
|
|
1259
|
+
observedAt: z.string().datetime(),
|
|
1260
|
+
sourceUrl: z.string().url().max(2048).nullable()
|
|
1261
|
+
}).strict();
|
|
1262
|
+
var SeoAgentTaskSchema = z.object({
|
|
1263
|
+
schemaVersion: z.number().int().positive(),
|
|
1264
|
+
projectId: SeoEntityIdSchema.nullable(),
|
|
1265
|
+
opportunityId: SeoEntityIdSchema.nullable(),
|
|
1266
|
+
legacy: z.boolean(),
|
|
1267
|
+
legacyLabel: z.string().max(500).nullable(),
|
|
1268
|
+
decision: SeoTaskDecisionSchema,
|
|
1269
|
+
decisionReason: z.string().min(1).max(700),
|
|
1270
|
+
objective: z.string().min(1).max(700),
|
|
1271
|
+
primaryFormat: SeoTaskFormatSchema,
|
|
1272
|
+
supportingFormats: z.array(SeoTaskFormatSchema).max(4),
|
|
1273
|
+
formatOptions: z.array(SeoTaskFormatSchema.exclude(["RESEARCH_TASK"])).max(7),
|
|
1274
|
+
confidence: SeoDecisionConfidenceSchema,
|
|
1275
|
+
target: z.object({
|
|
1276
|
+
primaryKeyword: z.string().min(1).max(300),
|
|
1277
|
+
supportingKeywords: z.array(z.string().min(1).max(300)).max(12),
|
|
1278
|
+
searchIntent: SeoSearchIntentSchema,
|
|
1279
|
+
audience: z.string().min(1).max(500),
|
|
1280
|
+
angle: z.string().max(600)
|
|
1281
|
+
}).strict(),
|
|
1282
|
+
suggestedTitles: z.array(z.string().min(1).max(180)).max(3),
|
|
1283
|
+
outline: z.array(z.object({
|
|
1284
|
+
heading: z.string().min(1).max(180),
|
|
1285
|
+
purpose: z.string().min(1).max(600)
|
|
1286
|
+
}).strict()).max(12),
|
|
1287
|
+
researchTasks: z.array(z.string().min(1).max(600)).max(10),
|
|
1288
|
+
competitorPagesToInspect: z.array(z.object({
|
|
1289
|
+
domain: z.string().min(1).max(253),
|
|
1290
|
+
url: z.string().url().max(2048).nullable(),
|
|
1291
|
+
keyword: z.string().min(1).max(300),
|
|
1292
|
+
rank: z.number().int().min(1).max(1e3).nullable()
|
|
1293
|
+
}).strict()).max(8),
|
|
1294
|
+
productFactsToVerify: z.array(z.string().min(1).max(600)).max(8),
|
|
1295
|
+
claimsNotToInvent: z.array(z.string().min(1).max(600)).max(8),
|
|
1296
|
+
deliverables: z.array(z.object({
|
|
1297
|
+
name: z.string().min(1).max(180),
|
|
1298
|
+
requirements: z.array(z.string().min(1).max(600)).min(1).max(8)
|
|
1299
|
+
}).strict()).min(1).max(12),
|
|
1300
|
+
callToAction: z.string().max(400),
|
|
1301
|
+
destination: z.string().min(1).max(700),
|
|
1302
|
+
successMetric: z.object({
|
|
1303
|
+
name: z.string().min(1).max(180),
|
|
1304
|
+
target: z.string().min(1).max(600),
|
|
1305
|
+
measurementWindow: z.string().min(1).max(300)
|
|
1306
|
+
}).strict(),
|
|
1307
|
+
evidenceSummary: z.array(SeoTaskEvidenceSummarySchema).max(5),
|
|
1308
|
+
limitations: z.array(z.string().min(1).max(600)).max(10),
|
|
1309
|
+
nextStep: z.string().min(1).max(700),
|
|
1310
|
+
youtubePackageRequirements: z.object({
|
|
1311
|
+
subject: z.string().min(1).max(300),
|
|
1312
|
+
targetViewer: z.string().min(1).max(500),
|
|
1313
|
+
objective: z.string().min(1).max(700),
|
|
1314
|
+
titleOptions: z.number().int().min(1).max(10),
|
|
1315
|
+
hook: z.string().min(1).max(600),
|
|
1316
|
+
draftScript: z.string().min(1).max(600),
|
|
1317
|
+
sceneList: z.string().min(1).max(600),
|
|
1318
|
+
onScreenText: z.string().min(1).max(600),
|
|
1319
|
+
thumbnailConcept: z.string().min(1).max(600),
|
|
1320
|
+
thumbnailText: z.string().min(1).max(300),
|
|
1321
|
+
description: z.string().min(1).max(600),
|
|
1322
|
+
chapters: z.string().min(1).max(600),
|
|
1323
|
+
callToAction: z.string().max(400),
|
|
1324
|
+
supportingSocialPosts: z.number().int().min(0).max(10)
|
|
1325
|
+
}).strict().nullable(),
|
|
1326
|
+
imageBriefs: z.array(z.object({
|
|
1327
|
+
concept: z.string().min(1).max(600),
|
|
1328
|
+
brief: z.string().min(1).max(800),
|
|
1329
|
+
altText: z.string().min(1).max(500),
|
|
1330
|
+
prompt: z.string().min(1).max(1e3)
|
|
1331
|
+
}).strict()).max(4)
|
|
1332
|
+
}).strict();
|
|
1333
|
+
var SeoOpportunityBriefSchema = z.object({
|
|
1334
|
+
kind: SeoOpportunityKindSchema,
|
|
1335
|
+
title: z.string().min(1).max(180),
|
|
1336
|
+
summary: z.string().min(1).max(600),
|
|
1337
|
+
score: z.number().int().min(0).max(100),
|
|
1338
|
+
confidence: SeoDecisionConfidenceSchema,
|
|
1339
|
+
expectedImpact: SeoExpectedImpactSchema,
|
|
1340
|
+
recommendedAction: z.string().min(1).max(300),
|
|
1341
|
+
actionPlan: SeoActionPlanSchema,
|
|
1342
|
+
task: SeoAgentTaskSchema,
|
|
1343
|
+
evidence: z.array(SeoEvidenceSchema).max(5),
|
|
1344
|
+
brief: z.string().min(1).max(12e3)
|
|
1345
|
+
}).strict();
|
|
1346
|
+
var SeoOpportunitySchema = SeoOpportunityBriefSchema.extend({
|
|
1347
|
+
id: SeoEntityIdSchema,
|
|
1348
|
+
projectId: SeoEntityIdSchema,
|
|
1349
|
+
lastDetectedAt: z.string().datetime(),
|
|
1350
|
+
stale: z.boolean()
|
|
1351
|
+
}).strict();
|
|
1352
|
+
var SeoOpportunityListQuerySchema = z.object({
|
|
1353
|
+
limit: z.coerce.number().int().min(1).max(50).default(20),
|
|
1354
|
+
cursor: SeoCursorSchema.optional(),
|
|
1355
|
+
kind: SeoOpportunityKindSchema.optional(),
|
|
1356
|
+
expectedImpact: SeoExpectedImpactSchema.optional()
|
|
1357
|
+
}).strict();
|
|
1358
|
+
var SeoPageSchema = z.object({
|
|
1359
|
+
limit: z.number().int().min(1).max(50),
|
|
1360
|
+
nextCursor: SeoCursorSchema.nullable()
|
|
1361
|
+
}).strict();
|
|
1362
|
+
var SeoOpportunityListDataSchema = z.object({
|
|
1363
|
+
items: z.array(SeoOpportunitySchema).max(50),
|
|
1364
|
+
page: SeoPageSchema
|
|
1365
|
+
}).strict();
|
|
1366
|
+
var SeoOpportunityListResponseSchema = successEnvelopeSchema(
|
|
1367
|
+
SeoOpportunityListDataSchema
|
|
1368
|
+
);
|
|
1369
|
+
var SeoOpportunityResponseSchema = successEnvelopeSchema(
|
|
1370
|
+
SeoOpportunitySchema
|
|
1371
|
+
);
|
|
1372
|
+
var SeoReportCompletenessSchema = z.enum(["COMPLETE", "PARTIAL"]);
|
|
1373
|
+
var SeoReportTriggerSchema = z.enum(["SCHEDULED", "MANUAL"]);
|
|
1374
|
+
var SeoReportSummarySchema = z.object({
|
|
1375
|
+
id: SeoEntityIdSchema,
|
|
1376
|
+
projectId: SeoEntityIdSchema,
|
|
1377
|
+
periodStart: z.string().datetime(),
|
|
1378
|
+
periodEnd: z.string().datetime(),
|
|
1379
|
+
timeZone: z.string().min(1).max(100),
|
|
1380
|
+
deliveryDay: z.number().int().min(1).max(7),
|
|
1381
|
+
completeness: SeoReportCompletenessSchema,
|
|
1382
|
+
trigger: SeoReportTriggerSchema,
|
|
1383
|
+
createdAt: z.string().datetime(),
|
|
1384
|
+
opportunityCount: z.number().int().min(0).max(5),
|
|
1385
|
+
readyTaskCount: z.number().int().min(0).max(5),
|
|
1386
|
+
researchTaskCount: z.number().int().min(0).max(5),
|
|
1387
|
+
rejectedFindingCount: z.number().int().min(0).max(20),
|
|
1388
|
+
legacy: z.boolean()
|
|
1389
|
+
}).strict();
|
|
1390
|
+
var SeoReportSchema = SeoReportSummarySchema.extend({
|
|
1391
|
+
generatedAt: z.string().datetime(),
|
|
1392
|
+
partialLabel: z.string().max(500).nullable(),
|
|
1393
|
+
freshThrough: z.string().datetime().nullable(),
|
|
1394
|
+
opportunities: z.array(SeoOpportunityBriefSchema).max(5),
|
|
1395
|
+
rejectedFindings: z.array(z.object({
|
|
1396
|
+
decision: z.literal("REJECTED"),
|
|
1397
|
+
query: z.string().min(1).max(300),
|
|
1398
|
+
reason: z.string().min(1).max(700),
|
|
1399
|
+
observedAt: z.string().datetime()
|
|
1400
|
+
}).strict()).max(20)
|
|
1401
|
+
}).strict();
|
|
1402
|
+
var SeoReportListQuerySchema = z.object({
|
|
1403
|
+
limit: z.coerce.number().int().min(1).max(26).default(10),
|
|
1404
|
+
cursor: SeoCursorSchema.optional(),
|
|
1405
|
+
completeness: SeoReportCompletenessSchema.optional()
|
|
1406
|
+
}).strict();
|
|
1407
|
+
var SeoReportListDataSchema = z.object({
|
|
1408
|
+
items: z.array(SeoReportSummarySchema).max(26),
|
|
1409
|
+
page: SeoPageSchema.extend({
|
|
1410
|
+
limit: z.number().int().min(1).max(26)
|
|
1411
|
+
}).strict()
|
|
1412
|
+
}).strict();
|
|
1413
|
+
var SeoReportListResponseSchema = successEnvelopeSchema(
|
|
1414
|
+
SeoReportListDataSchema
|
|
1415
|
+
);
|
|
1416
|
+
var SeoReportResponseSchema = successEnvelopeSchema(SeoReportSchema);
|
|
827
1417
|
export {
|
|
828
1418
|
API_VERSION,
|
|
829
1419
|
ActorSchema,
|
|
1420
|
+
AgentBlogArticleCreateRequestSchema,
|
|
1421
|
+
AgentBlogArticleDetailSchema,
|
|
1422
|
+
AgentBlogArticleListResponseSchema,
|
|
1423
|
+
AgentBlogArticleQueuedResponseSchema,
|
|
1424
|
+
AgentBlogArticleResponseSchema,
|
|
1425
|
+
AgentBlogArticleSchema,
|
|
1426
|
+
AgentBlogCadenceInputSchema,
|
|
1427
|
+
AgentBlogConnectionExecuteRequestSchema,
|
|
1428
|
+
AgentBlogConnectionExecuteResponseSchema,
|
|
1429
|
+
AgentBlogConnectionExecuteSchema,
|
|
1430
|
+
AgentBlogConnectionPreviewRequestSchema,
|
|
1431
|
+
AgentBlogConnectionPreviewResponseSchema,
|
|
1432
|
+
AgentBlogConnectionPreviewSchema,
|
|
1433
|
+
AgentBlogConnectionRequestSchema,
|
|
1434
|
+
AgentBlogConnectionStatusResponseSchema,
|
|
1435
|
+
AgentBlogConnectionStatusSchema,
|
|
1436
|
+
AgentBlogDeliveryAttemptListResponseSchema,
|
|
1437
|
+
AgentBlogDeliveryAttemptSchema,
|
|
1438
|
+
AgentBlogDestinationSelectionSchema,
|
|
1439
|
+
AgentBlogDraftUpdateSchema,
|
|
1440
|
+
AgentBlogGenerateRequestSchema,
|
|
1441
|
+
AgentBlogIdempotentRequestSchema,
|
|
1442
|
+
AgentBlogJobResponseSchema,
|
|
1443
|
+
AgentBlogJobSchema,
|
|
1444
|
+
AgentBlogPlanCreateRequestSchema,
|
|
1445
|
+
AgentBlogPlanItemResponseSchema,
|
|
1446
|
+
AgentBlogPlanItemSchema,
|
|
1447
|
+
AgentBlogPlanItemStateRequestSchema,
|
|
1448
|
+
AgentBlogPlanItemsResponseSchema,
|
|
1449
|
+
AgentBlogPlanListResponseSchema,
|
|
1450
|
+
AgentBlogPlanQueuedResponseSchema,
|
|
1451
|
+
AgentBlogPlanRetryRequestSchema,
|
|
1452
|
+
AgentBlogPlanSchema,
|
|
1453
|
+
AgentBlogPublishExecuteRequestSchema,
|
|
1454
|
+
AgentBlogPublishExecuteResponseSchema,
|
|
1455
|
+
AgentBlogPublishPreviewRequestSchema,
|
|
1456
|
+
AgentBlogPublishPreviewResponseSchema,
|
|
1457
|
+
AgentBlogPublishPreviewSchema,
|
|
1458
|
+
AgentBlogPublishingDestinationListResponseSchema,
|
|
1459
|
+
AgentBlogPublishingDestinationSchema,
|
|
1460
|
+
AgentBlogPublishingProviderListResponseSchema,
|
|
1461
|
+
AgentBlogPublishingProviderSchema,
|
|
1462
|
+
AgentBlogRevalidationTestRequestSchema,
|
|
1463
|
+
AgentBlogRevalidationTestResponseSchema,
|
|
1464
|
+
AgentBlogRevalidationTestSchema,
|
|
1465
|
+
AgentBlogSetupStatusResponseSchema,
|
|
1466
|
+
AgentBlogSetupStatusSchema,
|
|
830
1467
|
ApiErrorCodeSchema,
|
|
831
1468
|
ApiMetaResponseSchema,
|
|
832
1469
|
ApiMetaSchema,
|
|
833
1470
|
ApiProblemSchema,
|
|
834
1471
|
AuthenticationKindSchema,
|
|
1472
|
+
BlogArticleListSchema,
|
|
1473
|
+
BlogImageSchema,
|
|
1474
|
+
BlogMetadataSchema,
|
|
1475
|
+
BlogSitemapEntrySchema,
|
|
1476
|
+
BlogSlugRedirectSchema,
|
|
835
1477
|
CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS,
|
|
836
1478
|
CONTRACT_VERSION,
|
|
837
1479
|
CalendarEventSchema,
|
|
@@ -865,7 +1507,9 @@ export {
|
|
|
865
1507
|
MediaAssetUploadPreparationSchema,
|
|
866
1508
|
PUBLISHING_PROVIDER_COUNT,
|
|
867
1509
|
PlatformPostStatusSchema,
|
|
1510
|
+
PostDeliveryModeSchema,
|
|
868
1511
|
PostDestinationSchema,
|
|
1512
|
+
PostDestinationStageSchema,
|
|
869
1513
|
PostListDataSchema,
|
|
870
1514
|
PostListQuerySchema,
|
|
871
1515
|
PostListResponseSchema,
|
|
@@ -899,10 +1543,40 @@ export {
|
|
|
899
1543
|
ProviderDeliveryOptionsResponseSchema,
|
|
900
1544
|
ProviderDeliveryOptionsSchema,
|
|
901
1545
|
ProviderHealthStatusSchema,
|
|
1546
|
+
PublishedBlogArticleSchema,
|
|
902
1547
|
PublishingProviderSchema,
|
|
903
1548
|
ReadinessActionSchema,
|
|
904
1549
|
ReadinessStatusSchema,
|
|
905
1550
|
RequestMetadataSchema,
|
|
1551
|
+
SeoActionDecisionSchema,
|
|
1552
|
+
SeoActionPlanSchema,
|
|
1553
|
+
SeoAgentTaskSchema,
|
|
1554
|
+
SeoConfidenceValueSchema,
|
|
1555
|
+
SeoContentTypeSchema,
|
|
1556
|
+
SeoCursorSchema,
|
|
1557
|
+
SeoDecisionConfidenceSchema,
|
|
1558
|
+
SeoEntityIdSchema,
|
|
1559
|
+
SeoEvidenceProvenanceSchema,
|
|
1560
|
+
SeoEvidenceSchema,
|
|
1561
|
+
SeoExpectedImpactSchema,
|
|
1562
|
+
SeoOpportunityBriefSchema,
|
|
1563
|
+
SeoOpportunityKindSchema,
|
|
1564
|
+
SeoOpportunityListDataSchema,
|
|
1565
|
+
SeoOpportunityListQuerySchema,
|
|
1566
|
+
SeoOpportunityListResponseSchema,
|
|
1567
|
+
SeoOpportunityResponseSchema,
|
|
1568
|
+
SeoOpportunitySchema,
|
|
1569
|
+
SeoReportCompletenessSchema,
|
|
1570
|
+
SeoReportListDataSchema,
|
|
1571
|
+
SeoReportListQuerySchema,
|
|
1572
|
+
SeoReportListResponseSchema,
|
|
1573
|
+
SeoReportResponseSchema,
|
|
1574
|
+
SeoReportSchema,
|
|
1575
|
+
SeoReportSummarySchema,
|
|
1576
|
+
SeoReportTriggerSchema,
|
|
1577
|
+
SeoSearchIntentSchema,
|
|
1578
|
+
SeoTaskDecisionSchema,
|
|
1579
|
+
SeoTaskFormatSchema,
|
|
906
1580
|
TikTokDeliveryOptionsSchema,
|
|
907
1581
|
TikTokDraftSettingsSchema,
|
|
908
1582
|
TikTokPostSettingsSchema,
|