@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/dist/index.cjs CHANGED
@@ -22,11 +22,63 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  API_VERSION: () => API_VERSION,
24
24
  ActorSchema: () => ActorSchema,
25
+ AgentBlogArticleCreateRequestSchema: () => AgentBlogArticleCreateRequestSchema,
26
+ AgentBlogArticleDetailSchema: () => AgentBlogArticleDetailSchema,
27
+ AgentBlogArticleListResponseSchema: () => AgentBlogArticleListResponseSchema,
28
+ AgentBlogArticleQueuedResponseSchema: () => AgentBlogArticleQueuedResponseSchema,
29
+ AgentBlogArticleResponseSchema: () => AgentBlogArticleResponseSchema,
30
+ AgentBlogArticleSchema: () => AgentBlogArticleSchema,
31
+ AgentBlogCadenceInputSchema: () => AgentBlogCadenceInputSchema,
32
+ AgentBlogConnectionExecuteRequestSchema: () => AgentBlogConnectionExecuteRequestSchema,
33
+ AgentBlogConnectionExecuteResponseSchema: () => AgentBlogConnectionExecuteResponseSchema,
34
+ AgentBlogConnectionExecuteSchema: () => AgentBlogConnectionExecuteSchema,
35
+ AgentBlogConnectionPreviewRequestSchema: () => AgentBlogConnectionPreviewRequestSchema,
36
+ AgentBlogConnectionPreviewResponseSchema: () => AgentBlogConnectionPreviewResponseSchema,
37
+ AgentBlogConnectionPreviewSchema: () => AgentBlogConnectionPreviewSchema,
38
+ AgentBlogConnectionRequestSchema: () => AgentBlogConnectionRequestSchema,
39
+ AgentBlogConnectionStatusResponseSchema: () => AgentBlogConnectionStatusResponseSchema,
40
+ AgentBlogConnectionStatusSchema: () => AgentBlogConnectionStatusSchema,
41
+ AgentBlogDeliveryAttemptListResponseSchema: () => AgentBlogDeliveryAttemptListResponseSchema,
42
+ AgentBlogDeliveryAttemptSchema: () => AgentBlogDeliveryAttemptSchema,
43
+ AgentBlogDestinationSelectionSchema: () => AgentBlogDestinationSelectionSchema,
44
+ AgentBlogDraftUpdateSchema: () => AgentBlogDraftUpdateSchema,
45
+ AgentBlogGenerateRequestSchema: () => AgentBlogGenerateRequestSchema,
46
+ AgentBlogIdempotentRequestSchema: () => AgentBlogIdempotentRequestSchema,
47
+ AgentBlogJobResponseSchema: () => AgentBlogJobResponseSchema,
48
+ AgentBlogJobSchema: () => AgentBlogJobSchema,
49
+ AgentBlogPlanCreateRequestSchema: () => AgentBlogPlanCreateRequestSchema,
50
+ AgentBlogPlanItemResponseSchema: () => AgentBlogPlanItemResponseSchema,
51
+ AgentBlogPlanItemSchema: () => AgentBlogPlanItemSchema,
52
+ AgentBlogPlanItemStateRequestSchema: () => AgentBlogPlanItemStateRequestSchema,
53
+ AgentBlogPlanItemsResponseSchema: () => AgentBlogPlanItemsResponseSchema,
54
+ AgentBlogPlanListResponseSchema: () => AgentBlogPlanListResponseSchema,
55
+ AgentBlogPlanQueuedResponseSchema: () => AgentBlogPlanQueuedResponseSchema,
56
+ AgentBlogPlanRetryRequestSchema: () => AgentBlogPlanRetryRequestSchema,
57
+ AgentBlogPlanSchema: () => AgentBlogPlanSchema,
58
+ AgentBlogPublishExecuteRequestSchema: () => AgentBlogPublishExecuteRequestSchema,
59
+ AgentBlogPublishExecuteResponseSchema: () => AgentBlogPublishExecuteResponseSchema,
60
+ AgentBlogPublishPreviewRequestSchema: () => AgentBlogPublishPreviewRequestSchema,
61
+ AgentBlogPublishPreviewResponseSchema: () => AgentBlogPublishPreviewResponseSchema,
62
+ AgentBlogPublishPreviewSchema: () => AgentBlogPublishPreviewSchema,
63
+ AgentBlogPublishingDestinationListResponseSchema: () => AgentBlogPublishingDestinationListResponseSchema,
64
+ AgentBlogPublishingDestinationSchema: () => AgentBlogPublishingDestinationSchema,
65
+ AgentBlogPublishingProviderListResponseSchema: () => AgentBlogPublishingProviderListResponseSchema,
66
+ AgentBlogPublishingProviderSchema: () => AgentBlogPublishingProviderSchema,
67
+ AgentBlogRevalidationTestRequestSchema: () => AgentBlogRevalidationTestRequestSchema,
68
+ AgentBlogRevalidationTestResponseSchema: () => AgentBlogRevalidationTestResponseSchema,
69
+ AgentBlogRevalidationTestSchema: () => AgentBlogRevalidationTestSchema,
70
+ AgentBlogSetupStatusResponseSchema: () => AgentBlogSetupStatusResponseSchema,
71
+ AgentBlogSetupStatusSchema: () => AgentBlogSetupStatusSchema,
25
72
  ApiErrorCodeSchema: () => ApiErrorCodeSchema,
26
73
  ApiMetaResponseSchema: () => ApiMetaResponseSchema,
27
74
  ApiMetaSchema: () => ApiMetaSchema,
28
75
  ApiProblemSchema: () => ApiProblemSchema,
29
76
  AuthenticationKindSchema: () => AuthenticationKindSchema,
77
+ BlogArticleListSchema: () => BlogArticleListSchema,
78
+ BlogImageSchema: () => BlogImageSchema,
79
+ BlogMetadataSchema: () => BlogMetadataSchema,
80
+ BlogSitemapEntrySchema: () => BlogSitemapEntrySchema,
81
+ BlogSlugRedirectSchema: () => BlogSlugRedirectSchema,
30
82
  CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS: () => CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS,
31
83
  CONTRACT_VERSION: () => CONTRACT_VERSION,
32
84
  CalendarEventSchema: () => CalendarEventSchema,
@@ -60,7 +112,9 @@ __export(index_exports, {
60
112
  MediaAssetUploadPreparationSchema: () => MediaAssetUploadPreparationSchema,
61
113
  PUBLISHING_PROVIDER_COUNT: () => PUBLISHING_PROVIDER_COUNT,
62
114
  PlatformPostStatusSchema: () => PlatformPostStatusSchema,
115
+ PostDeliveryModeSchema: () => PostDeliveryModeSchema,
63
116
  PostDestinationSchema: () => PostDestinationSchema,
117
+ PostDestinationStageSchema: () => PostDestinationStageSchema,
64
118
  PostListDataSchema: () => PostListDataSchema,
65
119
  PostListQuerySchema: () => PostListQuerySchema,
66
120
  PostListResponseSchema: () => PostListResponseSchema,
@@ -94,10 +148,40 @@ __export(index_exports, {
94
148
  ProviderDeliveryOptionsResponseSchema: () => ProviderDeliveryOptionsResponseSchema,
95
149
  ProviderDeliveryOptionsSchema: () => ProviderDeliveryOptionsSchema,
96
150
  ProviderHealthStatusSchema: () => ProviderHealthStatusSchema,
151
+ PublishedBlogArticleSchema: () => PublishedBlogArticleSchema,
97
152
  PublishingProviderSchema: () => PublishingProviderSchema,
98
153
  ReadinessActionSchema: () => ReadinessActionSchema,
99
154
  ReadinessStatusSchema: () => ReadinessStatusSchema,
100
155
  RequestMetadataSchema: () => RequestMetadataSchema,
156
+ SeoActionDecisionSchema: () => SeoActionDecisionSchema,
157
+ SeoActionPlanSchema: () => SeoActionPlanSchema,
158
+ SeoAgentTaskSchema: () => SeoAgentTaskSchema,
159
+ SeoConfidenceValueSchema: () => SeoConfidenceValueSchema,
160
+ SeoContentTypeSchema: () => SeoContentTypeSchema,
161
+ SeoCursorSchema: () => SeoCursorSchema,
162
+ SeoDecisionConfidenceSchema: () => SeoDecisionConfidenceSchema,
163
+ SeoEntityIdSchema: () => SeoEntityIdSchema,
164
+ SeoEvidenceProvenanceSchema: () => SeoEvidenceProvenanceSchema,
165
+ SeoEvidenceSchema: () => SeoEvidenceSchema,
166
+ SeoExpectedImpactSchema: () => SeoExpectedImpactSchema,
167
+ SeoOpportunityBriefSchema: () => SeoOpportunityBriefSchema,
168
+ SeoOpportunityKindSchema: () => SeoOpportunityKindSchema,
169
+ SeoOpportunityListDataSchema: () => SeoOpportunityListDataSchema,
170
+ SeoOpportunityListQuerySchema: () => SeoOpportunityListQuerySchema,
171
+ SeoOpportunityListResponseSchema: () => SeoOpportunityListResponseSchema,
172
+ SeoOpportunityResponseSchema: () => SeoOpportunityResponseSchema,
173
+ SeoOpportunitySchema: () => SeoOpportunitySchema,
174
+ SeoReportCompletenessSchema: () => SeoReportCompletenessSchema,
175
+ SeoReportListDataSchema: () => SeoReportListDataSchema,
176
+ SeoReportListQuerySchema: () => SeoReportListQuerySchema,
177
+ SeoReportListResponseSchema: () => SeoReportListResponseSchema,
178
+ SeoReportResponseSchema: () => SeoReportResponseSchema,
179
+ SeoReportSchema: () => SeoReportSchema,
180
+ SeoReportSummarySchema: () => SeoReportSummarySchema,
181
+ SeoReportTriggerSchema: () => SeoReportTriggerSchema,
182
+ SeoSearchIntentSchema: () => SeoSearchIntentSchema,
183
+ SeoTaskDecisionSchema: () => SeoTaskDecisionSchema,
184
+ SeoTaskFormatSchema: () => SeoTaskFormatSchema,
101
185
  TikTokDeliveryOptionsSchema: () => TikTokDeliveryOptionsSchema,
102
186
  TikTokDraftSettingsSchema: () => TikTokDraftSettingsSchema,
103
187
  TikTokPostSettingsSchema: () => TikTokPostSettingsSchema,
@@ -108,7 +192,7 @@ __export(index_exports, {
108
192
  module.exports = __toCommonJS(index_exports);
109
193
  var import_zod = require("zod");
110
194
  var API_VERSION = "v1";
111
- var CONTRACT_VERSION = "0.14.0";
195
+ var CONTRACT_VERSION = "0.16.0";
112
196
  var RequestMetadataSchema = import_zod.z.object({
113
197
  requestId: import_zod.z.string().min(1)
114
198
  });
@@ -122,6 +206,11 @@ var ApiErrorCodeSchema = import_zod.z.enum([
122
206
  "VALIDATION_ERROR",
123
207
  "CONFLICT",
124
208
  "RATE_LIMITED",
209
+ "DELIVERY_CREDENTIAL_INVALID",
210
+ "DELIVERY_CREDENTIAL_REVOKED",
211
+ "ARTICLE_NOT_PUBLISHED",
212
+ "WEBHOOK_INVALID",
213
+ "WEBHOOK_REPLAYED",
125
214
  "INTERNAL_ERROR"
126
215
  ]);
127
216
  var ApiProblemSchema = import_zod.z.object({
@@ -132,6 +221,50 @@ var ApiProblemSchema = import_zod.z.object({
132
221
  }),
133
222
  meta: RequestMetadataSchema
134
223
  });
224
+ var BlogImageSchema = import_zod.z.object({
225
+ url: import_zod.z.string().url(),
226
+ altText: import_zod.z.string().min(1),
227
+ width: import_zod.z.number().int().positive(),
228
+ height: import_zod.z.number().int().positive(),
229
+ purpose: import_zod.z.enum(["FEATURED", "SECTION", "SOCIAL_PREVIEW"])
230
+ });
231
+ var PublishedBlogArticleSchema = import_zod.z.object({
232
+ id: import_zod.z.string().min(1),
233
+ revisionId: import_zod.z.string().min(1),
234
+ revisionNumber: import_zod.z.number().int().positive(),
235
+ slug: import_zod.z.string().min(1),
236
+ title: import_zod.z.string().min(1),
237
+ description: import_zod.z.string().nullable(),
238
+ excerpt: import_zod.z.string().nullable(),
239
+ tags: import_zod.z.array(import_zod.z.string()),
240
+ author: import_zod.z.string().min(1),
241
+ language: import_zod.z.string().min(1),
242
+ markdown: import_zod.z.string(),
243
+ contentBlocks: import_zod.z.array(import_zod.z.unknown()),
244
+ canonicalPath: import_zod.z.string().startsWith("/"),
245
+ publicUrl: import_zod.z.string().url(),
246
+ publishedAt: import_zod.z.string().datetime(),
247
+ updatedAt: import_zod.z.string().datetime(),
248
+ images: import_zod.z.array(BlogImageSchema)
249
+ });
250
+ var BlogArticleListSchema = import_zod.z.object({
251
+ articles: import_zod.z.array(PublishedBlogArticleSchema.omit({ markdown: true, contentBlocks: true }))
252
+ });
253
+ var BlogMetadataSchema = import_zod.z.object({
254
+ siteId: import_zod.z.string().min(1),
255
+ name: import_zod.z.string().min(1),
256
+ origin: import_zod.z.string().url(),
257
+ blogBasePath: import_zod.z.string().startsWith("/"),
258
+ language: import_zod.z.string().min(1),
259
+ updatedAt: import_zod.z.string().datetime().nullable()
260
+ });
261
+ var BlogSitemapEntrySchema = import_zod.z.object({
262
+ url: import_zod.z.string().url(),
263
+ lastModified: import_zod.z.string().datetime()
264
+ });
265
+ var BlogSlugRedirectSchema = import_zod.z.object({
266
+ redirect: import_zod.z.object({ from: import_zod.z.string().min(1), to: import_zod.z.string().min(1), permanent: import_zod.z.literal(true) })
267
+ });
135
268
  function successEnvelopeSchema(data) {
136
269
  return import_zod.z.object({
137
270
  data,
@@ -147,8 +280,245 @@ var CapabilityIdSchema = import_zod.z.enum([
147
280
  "posts:schedule",
148
281
  "posts:publish",
149
282
  "integrations:read",
150
- "calendar:read"
283
+ "calendar:read",
284
+ "seo:read",
285
+ "blog:read",
286
+ "blog:write",
287
+ "blog:manage",
288
+ "blog:publish"
151
289
  ]);
290
+ var AgentBlogPlanSchema = import_zod.z.object({
291
+ id: import_zod.z.string().min(1),
292
+ state: import_zod.z.string().min(1),
293
+ windowStart: import_zod.z.string().datetime(),
294
+ windowEnd: import_zod.z.string().datetime(),
295
+ cadence: import_zod.z.object({ weekdays: import_zod.z.array(import_zod.z.number().int().min(0).max(6)) }),
296
+ activeRevisionId: import_zod.z.string().nullable(),
297
+ itemCount: import_zod.z.number().int().nonnegative()
298
+ });
299
+ var AgentBlogArticleSchema = import_zod.z.object({
300
+ id: import_zod.z.string().min(1),
301
+ state: import_zod.z.string().min(1),
302
+ title: import_zod.z.string().min(1),
303
+ slug: import_zod.z.string().min(1),
304
+ currentDraftId: import_zod.z.string().nullable(),
305
+ approvedRevisionId: import_zod.z.string().nullable(),
306
+ publishedRevisionId: import_zod.z.string().nullable(),
307
+ scheduledPublishAt: import_zod.z.string().datetime().nullable(),
308
+ updatedAt: import_zod.z.string().datetime()
309
+ });
310
+ var AgentBlogArticleDetailSchema = AgentBlogArticleSchema.extend({
311
+ draft: import_zod.z.object({
312
+ id: import_zod.z.string().min(1),
313
+ version: import_zod.z.number().int().positive(),
314
+ title: import_zod.z.string(),
315
+ slug: import_zod.z.string(),
316
+ description: import_zod.z.string().nullable(),
317
+ excerpt: import_zod.z.string().nullable(),
318
+ canonicalPath: import_zod.z.string(),
319
+ tags: import_zod.z.array(import_zod.z.string()),
320
+ author: import_zod.z.string(),
321
+ language: import_zod.z.string(),
322
+ markdown: import_zod.z.string(),
323
+ callToAction: import_zod.z.unknown().nullable(),
324
+ internalLinks: import_zod.z.unknown()
325
+ }).nullable(),
326
+ revisions: import_zod.z.array(import_zod.z.object({ id: import_zod.z.string().min(1), revisionNumber: import_zod.z.number().int().positive(), contentHash: import_zod.z.string().min(1), approvedAt: import_zod.z.string().datetime().nullable(), createdAt: import_zod.z.string().datetime() }))
327
+ });
328
+ var AgentBlogJobSchema = import_zod.z.object({
329
+ id: import_zod.z.string().min(1),
330
+ type: import_zod.z.string().min(1),
331
+ state: import_zod.z.string().min(1),
332
+ attemptCount: import_zod.z.number().int().nonnegative(),
333
+ availableAt: import_zod.z.string().datetime(),
334
+ startedAt: import_zod.z.string().datetime().nullable(),
335
+ completedAt: import_zod.z.string().datetime().nullable(),
336
+ lastErrorCode: import_zod.z.string().nullable(),
337
+ lastErrorMessage: import_zod.z.string().nullable()
338
+ });
339
+ var AgentBlogDraftUpdateSchema = import_zod.z.object({
340
+ version: import_zod.z.number().int().positive(),
341
+ title: import_zod.z.string().trim().min(1).max(200),
342
+ slug: import_zod.z.string().trim().min(1).max(160),
343
+ description: import_zod.z.string().trim().max(320).nullable(),
344
+ excerpt: import_zod.z.string().trim().max(500).nullable(),
345
+ canonicalPath: import_zod.z.string().startsWith("/"),
346
+ tags: import_zod.z.array(import_zod.z.string().trim().min(1).max(80)).max(30),
347
+ author: import_zod.z.string().trim().min(1).max(160),
348
+ language: import_zod.z.string().trim().min(2).max(20),
349
+ markdown: import_zod.z.string().max(2e5),
350
+ callToAction: import_zod.z.object({ label: import_zod.z.string().trim().min(1).max(160), pageId: import_zod.z.string().min(1).nullable() }).strict().nullable(),
351
+ internalLinks: import_zod.z.array(import_zod.z.object({ pageId: import_zod.z.string().min(1), anchorText: import_zod.z.string().trim().min(1).max(200) }).strict()).max(20),
352
+ scheduledPublishAt: import_zod.z.string().datetime().nullable().optional()
353
+ });
354
+ var AgentBlogGenerateRequestSchema = import_zod.z.object({ idempotencyKey: import_zod.z.string().trim().min(8).max(200) });
355
+ var AgentBlogDestinationSelectionSchema = import_zod.z.array(import_zod.z.string().min(1)).min(1).max(20);
356
+ var AgentBlogPublishPreviewRequestSchema = import_zod.z.object({ revisionId: import_zod.z.string().min(1), destinationIds: AgentBlogDestinationSelectionSchema.optional() });
357
+ var AgentBlogPublishExecuteRequestSchema = import_zod.z.object({ revisionId: import_zod.z.string().min(1), destinationIds: AgentBlogDestinationSelectionSchema.optional(), confirmationToken: import_zod.z.string().min(1), idempotencyKey: import_zod.z.string().trim().min(8).max(200) });
358
+ var AgentBlogPublishingProviderSchema = import_zod.z.object({ key: import_zod.z.string(), name: import_zod.z.string(), description: import_zod.z.string(), mode: import_zod.z.string(), rollout: import_zod.z.enum(["PREVIEW", "VISIBLE"]), capabilities: import_zod.z.array(import_zod.z.string()), authorizationStrategy: import_zod.z.string(), requiresResourceDiscovery: import_zod.z.boolean(), requiresFieldMapping: import_zod.z.boolean(), officialDocumentationUrl: import_zod.z.string().url() }).strict();
359
+ var AgentBlogPublishingDestinationSchema = import_zod.z.object({ id: import_zod.z.string(), name: import_zod.z.string(), providerKey: import_zod.z.string(), mode: import_zod.z.string(), status: import_zod.z.string(), isPrimary: import_zod.z.boolean(), enabled: import_zod.z.boolean(), externalSiteName: import_zod.z.string().nullable(), externalSiteUrl: import_zod.z.string().url().nullable(), lastTestedAt: import_zod.z.string().datetime().nullable(), lastSucceededAt: import_zod.z.string().datetime().nullable(), lastErrorCode: import_zod.z.string().nullable() }).strict();
360
+ var AgentBlogDeliveryAttemptSchema = import_zod.z.object({ id: import_zod.z.string(), articleId: import_zod.z.string().nullable(), revisionId: import_zod.z.string().nullable(), destinationId: import_zod.z.string().nullable(), destinationName: import_zod.z.string().nullable(), operation: import_zod.z.string().nullable(), state: import_zod.z.string(), attemptCount: import_zod.z.number().int().nonnegative(), errorCode: import_zod.z.string().nullable(), retryAt: import_zod.z.string().datetime().nullable(), remoteUrl: import_zod.z.string().url().nullable(), createdAt: import_zod.z.string().datetime(), deliveredAt: import_zod.z.string().datetime().nullable() }).strict();
361
+ var AgentBlogPublishPreviewSchema = import_zod.z.object({ articleId: import_zod.z.string(), revisionId: import_zod.z.string(), contentHash: import_zod.z.string(), title: import_zod.z.string(), slug: import_zod.z.string(), publicUrl: import_zod.z.string().url(), destinations: import_zod.z.array(AgentBlogPublishingDestinationSchema), confirmation: import_zod.z.object({ token: import_zod.z.string(), expiresAt: import_zod.z.string().datetime() }) });
362
+ var AgentBlogReadinessSchema = import_zod.z.enum([
363
+ "MISSING",
364
+ "NOT_STARTED",
365
+ "QUEUED",
366
+ "RUNNING",
367
+ "READY",
368
+ "USED",
369
+ "CONFIGURED",
370
+ "VERIFIED",
371
+ "NEEDS_ATTENTION"
372
+ ]);
373
+ var AgentBlogSetupStatusSchema = import_zod.z.object({
374
+ projectId: import_zod.z.string().min(1),
375
+ brandName: import_zod.z.string().min(1),
376
+ brandWebsite: import_zod.z.enum(["MISSING", "READY"]),
377
+ websiteOrigin: import_zod.z.string().url().nullable(),
378
+ siteId: import_zod.z.string().min(1).nullable(),
379
+ blogBasePath: import_zod.z.string().startsWith("/").nullable(),
380
+ siteImport: AgentBlogReadinessSchema,
381
+ activeJobId: import_zod.z.string().min(1).nullable(),
382
+ plan: AgentBlogReadinessSchema,
383
+ activePlanId: import_zod.z.string().min(1).nullable(),
384
+ deliveryCredential: AgentBlogReadinessSchema,
385
+ revalidation: AgentBlogReadinessSchema,
386
+ nextAction: import_zod.z.enum([
387
+ "ADD_WEBSITE",
388
+ "IMPORT_SITE",
389
+ "WAIT_FOR_JOB",
390
+ "CREATE_PLAN",
391
+ "REVIEW_PLAN",
392
+ "CONFIGURE_DELIVERY",
393
+ "TEST_CONNECTION",
394
+ "READY"
395
+ ])
396
+ }).strict();
397
+ var AgentBlogCadenceInputSchema = import_zod.z.object({
398
+ startsOn: import_zod.z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
399
+ weekdays: import_zod.z.array(import_zod.z.number().int().min(0).max(6)).min(1).max(7),
400
+ timeZone: import_zod.z.string().trim().min(1).max(100)
401
+ }).strict().superRefine(({ weekdays }, context) => {
402
+ if (new Set(weekdays).size !== weekdays.length) {
403
+ context.addIssue({ code: "custom", path: ["weekdays"], message: "Weekdays must be unique." });
404
+ }
405
+ });
406
+ var AgentBlogIdempotentRequestSchema = import_zod.z.object({
407
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
408
+ }).strict();
409
+ var AgentBlogPlanCreateRequestSchema = AgentBlogCadenceInputSchema.and(AgentBlogIdempotentRequestSchema);
410
+ var AgentBlogPlanRetryRequestSchema = AgentBlogIdempotentRequestSchema;
411
+ var AgentBlogPlanItemSchema = import_zod.z.object({
412
+ id: import_zod.z.string().min(1),
413
+ planId: import_zod.z.string().min(1),
414
+ planRevisionId: import_zod.z.string().min(1),
415
+ version: import_zod.z.number().int().positive(),
416
+ scheduledLocalDate: import_zod.z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
417
+ title: import_zod.z.string().min(1),
418
+ recommendedSlug: import_zod.z.string().min(1),
419
+ state: import_zod.z.string().min(1),
420
+ workType: import_zod.z.string().min(1),
421
+ format: import_zod.z.string().min(1),
422
+ primaryQuery: import_zod.z.string().nullable(),
423
+ searchIntent: import_zod.z.string().nullable(),
424
+ summary: import_zod.z.string(),
425
+ outline: import_zod.z.unknown(),
426
+ selectionReason: import_zod.z.string().min(1),
427
+ evidenceClassification: import_zod.z.enum(["OBSERVED", "MIXED", "HYPOTHESIS"]),
428
+ evidence: import_zod.z.unknown(),
429
+ displayMetrics: import_zod.z.unknown(),
430
+ overlapExplanation: import_zod.z.string().nullable(),
431
+ existingArticleComparison: import_zod.z.string().nullable(),
432
+ recommendedLinks: import_zod.z.unknown(),
433
+ targetConversionPage: import_zod.z.string().nullable(),
434
+ articleId: import_zod.z.string().min(1).nullable()
435
+ }).strict();
436
+ var AgentBlogPlanItemStateRequestSchema = import_zod.z.object({
437
+ state: import_zod.z.enum(["ACCEPTED", "DISMISSED"]),
438
+ expectedState: import_zod.z.string().min(1),
439
+ expectedVersion: import_zod.z.number().int().positive(),
440
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
441
+ }).strict();
442
+ var AgentBlogArticleCreateRequestSchema = import_zod.z.object({
443
+ expectedState: import_zod.z.literal("ACCEPTED"),
444
+ expectedVersion: import_zod.z.number().int().positive(),
445
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
446
+ }).strict();
447
+ var AgentBlogConnectionStatusSchema = import_zod.z.object({
448
+ projectId: import_zod.z.string().min(1),
449
+ siteId: import_zod.z.string().min(1),
450
+ origin: import_zod.z.string().url(),
451
+ endpoint: import_zod.z.string().url().nullable(),
452
+ deliveryCredential: import_zod.z.enum(["MISSING", "READY", "USED"]),
453
+ activeCredentialId: import_zod.z.string().min(1).nullable(),
454
+ credentialLastUsedAt: import_zod.z.string().datetime().nullable(),
455
+ revalidation: import_zod.z.enum(["MISSING", "CONFIGURED", "VERIFIED", "NEEDS_ATTENTION"]),
456
+ revalidationLastTestedAt: import_zod.z.string().datetime().nullable(),
457
+ revalidationLastSucceededAt: import_zod.z.string().datetime().nullable(),
458
+ revalidationLastErrorCode: import_zod.z.string().nullable()
459
+ }).strict();
460
+ var AgentBlogConnectionRequestSchema = import_zod.z.object({
461
+ endpoint: import_zod.z.string().url().nullable(),
462
+ credentialAction: import_zod.z.enum(["KEEP", "CREATE", "ROTATE", "REVOKE"]),
463
+ credentialId: import_zod.z.string().min(1).nullable(),
464
+ secretAction: import_zod.z.enum(["KEEP", "CREATE", "ROTATE"])
465
+ }).strict();
466
+ var AgentBlogConnectionPreviewRequestSchema = AgentBlogConnectionRequestSchema;
467
+ var AgentBlogConnectionExecuteRequestSchema = AgentBlogConnectionRequestSchema.extend({
468
+ confirmationToken: import_zod.z.string().min(1).max(300),
469
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
470
+ }).strict();
471
+ var AgentBlogConnectionPreviewSchema = import_zod.z.object({
472
+ projectId: import_zod.z.string().min(1),
473
+ siteId: import_zod.z.string().min(1),
474
+ siteName: import_zod.z.string().min(1),
475
+ origin: import_zod.z.string().url(),
476
+ endpoint: import_zod.z.string().url().nullable(),
477
+ credentialAction: import_zod.z.enum(["KEEP", "CREATE", "ROTATE", "REVOKE"]),
478
+ secretAction: import_zod.z.enum(["KEEP", "CREATE", "ROTATE"]),
479
+ effect: import_zod.z.string().min(1),
480
+ confirmation: import_zod.z.object({ token: import_zod.z.string().min(1), expiresAt: import_zod.z.string().datetime() }).strict()
481
+ }).strict();
482
+ var AgentBlogConnectionExecuteSchema = import_zod.z.object({
483
+ projectId: import_zod.z.string().min(1),
484
+ siteId: import_zod.z.string().min(1),
485
+ completed: import_zod.z.literal(true),
486
+ secretDelivered: import_zod.z.boolean(),
487
+ alreadyDelivered: import_zod.z.boolean(),
488
+ deliveryToken: import_zod.z.string().min(1).optional(),
489
+ webhookSecret: import_zod.z.string().min(1).optional(),
490
+ message: import_zod.z.string().min(1)
491
+ }).strict();
492
+ var AgentBlogRevalidationTestRequestSchema = AgentBlogIdempotentRequestSchema;
493
+ var AgentBlogRevalidationTestSchema = import_zod.z.object({
494
+ status: import_zod.z.enum(["VERIFIED", "NEEDS_ATTENTION"]),
495
+ testedAt: import_zod.z.string().datetime(),
496
+ errorCode: import_zod.z.string().nullable()
497
+ }).strict();
498
+ var AgentBlogPlanListResponseSchema = successEnvelopeSchema(import_zod.z.object({ plans: import_zod.z.array(AgentBlogPlanSchema) }));
499
+ var AgentBlogArticleListResponseSchema = successEnvelopeSchema(import_zod.z.object({ articles: import_zod.z.array(AgentBlogArticleSchema) }));
500
+ var AgentBlogArticleResponseSchema = successEnvelopeSchema(AgentBlogArticleDetailSchema);
501
+ var AgentBlogJobResponseSchema = successEnvelopeSchema(AgentBlogJobSchema);
502
+ var AgentBlogPublishPreviewResponseSchema = successEnvelopeSchema(AgentBlogPublishPreviewSchema);
503
+ var AgentBlogPublishExecuteResponseSchema = successEnvelopeSchema(import_zod.z.object({ publicationId: import_zod.z.string(), articleId: import_zod.z.string(), revisionId: import_zod.z.string(), publicUrl: import_zod.z.string().url(), publishedAt: import_zod.z.string().datetime() }));
504
+ var AgentBlogPublishingProviderListResponseSchema = successEnvelopeSchema(import_zod.z.object({ providers: import_zod.z.array(AgentBlogPublishingProviderSchema) }).strict());
505
+ var AgentBlogPublishingDestinationListResponseSchema = successEnvelopeSchema(import_zod.z.object({ destinations: import_zod.z.array(AgentBlogPublishingDestinationSchema) }).strict());
506
+ var AgentBlogDeliveryAttemptListResponseSchema = successEnvelopeSchema(import_zod.z.object({ deliveries: import_zod.z.array(AgentBlogDeliveryAttemptSchema) }).strict());
507
+ var AgentBlogSetupStatusResponseSchema = successEnvelopeSchema(AgentBlogSetupStatusSchema);
508
+ var AgentBlogPlanItemsResponseSchema = successEnvelopeSchema(import_zod.z.object({ items: import_zod.z.array(AgentBlogPlanItemSchema) }).strict());
509
+ var AgentBlogPlanItemResponseSchema = successEnvelopeSchema(AgentBlogPlanItemSchema);
510
+ var AgentBlogPlanQueuedResponseSchema = successEnvelopeSchema(import_zod.z.object({
511
+ planId: import_zod.z.string().min(1),
512
+ job: AgentBlogJobSchema
513
+ }).strict());
514
+ var AgentBlogArticleQueuedResponseSchema = successEnvelopeSchema(import_zod.z.object({
515
+ articleId: import_zod.z.string().min(1),
516
+ job: AgentBlogJobSchema.nullable()
517
+ }).strict());
518
+ var AgentBlogConnectionStatusResponseSchema = successEnvelopeSchema(AgentBlogConnectionStatusSchema);
519
+ var AgentBlogConnectionPreviewResponseSchema = successEnvelopeSchema(AgentBlogConnectionPreviewSchema);
520
+ var AgentBlogConnectionExecuteResponseSchema = successEnvelopeSchema(AgentBlogConnectionExecuteSchema);
521
+ var AgentBlogRevalidationTestResponseSchema = successEnvelopeSchema(AgentBlogRevalidationTestSchema);
152
522
  var CapabilitySchema = import_zod.z.object({
153
523
  id: CapabilityIdSchema,
154
524
  available: import_zod.z.boolean(),
@@ -361,9 +731,24 @@ var PublishingProviderSchema = import_zod.z.enum([
361
731
  "LINKEDIN"
362
732
  ]);
363
733
  var PUBLISHING_PROVIDER_COUNT = PublishingProviderSchema.options.length;
734
+ var PostDeliveryModeSchema = import_zod.z.enum(["IMMEDIATE", "SCHEDULED"]);
735
+ var PostDestinationStageSchema = import_zod.z.enum([
736
+ "DRAFT",
737
+ "QUEUED",
738
+ "UPLOADING",
739
+ "PROCESSING",
740
+ "CONFIRMING_SCHEDULE",
741
+ "SCHEDULED",
742
+ "PUBLISHING",
743
+ "PUBLISHED",
744
+ "ACTION_REQUIRED",
745
+ "FAILED"
746
+ ]);
364
747
  var PostDestinationSchema = import_zod.z.object({
365
748
  provider: PublishingProviderSchema,
366
749
  status: PlatformPostStatusSchema,
750
+ deliveryMode: PostDeliveryModeSchema,
751
+ stage: PostDestinationStageSchema,
367
752
  captionOverride: import_zod.z.string().nullable(),
368
753
  scheduledAt: import_zod.z.string().datetime().nullable(),
369
754
  publishedAt: import_zod.z.string().datetime().nullable(),
@@ -710,13 +1095,21 @@ var LinkedInDeliveryOptionsSchema = import_zod.z.object({
710
1095
  displayName: import_zod.z.string().nullable(),
711
1096
  avatarUrl: import_zod.z.string().url().nullable()
712
1097
  }),
713
- supportedPostTypes: import_zod.z.array(import_zod.z.enum(["TEXT", "SINGLE_IMAGE", "MULTI_IMAGE"])).length(3),
1098
+ supportedPostTypes: import_zod.z.array(import_zod.z.enum(["TEXT", "SINGLE_IMAGE", "MULTI_IMAGE", "VIDEO"])).length(4),
714
1099
  image: import_zod.z.object({
715
1100
  maxItems: import_zod.z.literal(10),
716
1101
  mimeTypes: import_zod.z.tuple([import_zod.z.literal("image/jpeg"), import_zod.z.literal("image/png")]),
717
1102
  maxPixelsExclusive: import_zod.z.literal(36152320),
718
1103
  maxBytes: import_zod.z.literal(26214400)
719
1104
  }),
1105
+ video: import_zod.z.object({
1106
+ maxItems: import_zod.z.literal(1),
1107
+ mimeTypes: import_zod.z.tuple([import_zod.z.literal("video/mp4")]),
1108
+ minBytes: import_zod.z.literal(76800),
1109
+ maxBytes: import_zod.z.literal(524288e3),
1110
+ minDurationMs: import_zod.z.literal(3e3),
1111
+ maxDurationMs: import_zod.z.literal(18e5)
1112
+ }),
720
1113
  health: import_zod.z.object({
721
1114
  status: ProviderHealthStatusSchema,
722
1115
  code: import_zod.z.string().min(1),
@@ -742,11 +1135,13 @@ var ReadinessActionSchema = import_zod.z.object({
742
1135
  kind: import_zod.z.enum([
743
1136
  "reconnect",
744
1137
  "replace_media",
1138
+ "adjust_media",
745
1139
  "review_settings",
746
1140
  "edit_caption",
747
1141
  "refresh_health"
748
1142
  ]),
749
- provider: PublishingProviderSchema.optional()
1143
+ provider: PublishingProviderSchema.optional(),
1144
+ mediaId: import_zod.z.string().min(1).optional()
750
1145
  });
751
1146
  var PostReadinessCheckSchema = import_zod.z.object({
752
1147
  key: import_zod.z.string().min(1),
@@ -804,6 +1199,7 @@ var PostScheduleExecuteInputSchema = PostScheduleInputSchema.extend({
804
1199
  }).strict();
805
1200
  var PostSchedulePreviewSchema = import_zod.z.object({
806
1201
  operation: import_zod.z.literal("posts.schedule.execute"),
1202
+ deliveryMode: import_zod.z.literal("SCHEDULED"),
807
1203
  post: import_zod.z.object({
808
1204
  id: import_zod.z.string().min(1),
809
1205
  projectId: import_zod.z.string().min(1),
@@ -812,6 +1208,12 @@ var PostSchedulePreviewSchema = import_zod.z.object({
812
1208
  }),
813
1209
  schedule: PostScheduleInputSchema,
814
1210
  destinations: import_zod.z.array(PublishingProviderSchema).min(1).max(PUBLISHING_PROVIDER_COUNT),
1211
+ youtube: import_zod.z.object({
1212
+ uploadVisibility: import_zod.z.literal("PRIVATE"),
1213
+ publishVisibility: import_zod.z.literal("PUBLIC"),
1214
+ preparationStartsImmediately: import_zod.z.literal(true),
1215
+ confirmationMeaning: import_zod.z.string().min(1)
1216
+ }).nullable().optional(),
815
1217
  providerReconciliation: import_zod.z.object({
816
1218
  provider: import_zod.z.literal("YOUTUBE"),
817
1219
  required: import_zod.z.boolean(),
@@ -832,6 +1234,8 @@ var PostSchedulePendingSchema = import_zod.z.object({
832
1234
  provider: import_zod.z.literal("YOUTUBE"),
833
1235
  mutationId: import_zod.z.string().min(1),
834
1236
  operation: import_zod.z.enum(["SCHEDULE", "CANCEL"]),
1237
+ phase: import_zod.z.literal("REMOTE_SCHEDULE_CONFIRMATION"),
1238
+ videoUploaded: import_zod.z.literal(true),
835
1239
  message: import_zod.z.string().min(1)
836
1240
  });
837
1241
  var PostScheduleExecuteResultSchema = import_zod.z.union([
@@ -852,6 +1256,7 @@ var PostPublishExecuteInputSchema = PostPublishInputSchema.extend({
852
1256
  }).strict();
853
1257
  var PostPublishPreviewSchema = import_zod.z.object({
854
1258
  operation: import_zod.z.literal("posts.publish.execute"),
1259
+ deliveryMode: import_zod.z.literal("IMMEDIATE"),
855
1260
  post: import_zod.z.object({
856
1261
  id: import_zod.z.string().min(1),
857
1262
  projectId: import_zod.z.string().min(1),
@@ -859,6 +1264,11 @@ var PostPublishPreviewSchema = import_zod.z.object({
859
1264
  status: PostStatusSchema
860
1265
  }),
861
1266
  destinations: PostPublishInputSchema.shape.destinations,
1267
+ youtube: import_zod.z.object({
1268
+ visibility: YouTubePostSettingsSchema.shape.privacyStatus,
1269
+ preparationStartsImmediately: import_zod.z.literal(true),
1270
+ createsSchedule: import_zod.z.literal(false)
1271
+ }).nullable().optional(),
862
1272
  readiness: PostReadinessSchema,
863
1273
  confirmation: import_zod.z.object({
864
1274
  token: import_zod.z.string().min(1),
@@ -931,15 +1341,331 @@ var CalendarListDataSchema = import_zod.z.object({
931
1341
  var CalendarListResponseSchema = successEnvelopeSchema(
932
1342
  CalendarListDataSchema
933
1343
  );
1344
+ var SeoEntityIdSchema = import_zod.z.string().min(1).max(128).regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
1345
+ var SeoCursorSchema = import_zod.z.string().min(1).max(512).regex(/^[A-Za-z0-9_-]+$/);
1346
+ var SeoOpportunityKindSchema = import_zod.z.enum([
1347
+ "SEARCH_TOPIC_CTR",
1348
+ "SEARCH_TOPIC_REFRESH",
1349
+ "SEARCH_TOPIC_NEW_ARTICLE",
1350
+ "SEARCH_TOPIC_CONSOLIDATE",
1351
+ "SEARCH_TOPIC_CLUSTER",
1352
+ "COMPETITOR_KEYWORD_GAP",
1353
+ "COMPETITOR_RANK_GAIN",
1354
+ "COMPETITOR_RANK_DROP",
1355
+ "COMPETITOR_SHARED_GAP",
1356
+ "SEO_VALIDATED_COMPETITOR_GAP"
1357
+ ]);
1358
+ var SeoExpectedImpactSchema = import_zod.z.enum(["HIGH", "MEDIUM", "LOW"]);
1359
+ var SeoEvidenceProvenanceSchema = import_zod.z.enum([
1360
+ "CUSTOMER_SEARCH_DATA",
1361
+ "MARKET_ESTIMATE",
1362
+ "ROLINO_ANALYSIS"
1363
+ ]);
1364
+ var SeoEvidenceSchema = import_zod.z.object({
1365
+ title: import_zod.z.string().min(1).max(180),
1366
+ summary: import_zod.z.string().min(1).max(500),
1367
+ sourceUrl: import_zod.z.string().url().max(2048).nullable(),
1368
+ provenance: SeoEvidenceProvenanceSchema,
1369
+ observedAt: import_zod.z.string().datetime(),
1370
+ periodStart: import_zod.z.string().datetime().nullable(),
1371
+ periodEnd: import_zod.z.string().datetime().nullable(),
1372
+ metrics: import_zod.z.record(
1373
+ import_zod.z.string().regex(/^[A-Za-z][A-Za-z0-9]{0,39}$/),
1374
+ import_zod.z.number().finite()
1375
+ ).refine((metrics) => Object.keys(metrics).length <= 20, {
1376
+ message: "SEO evidence can contain at most 20 metrics."
1377
+ }),
1378
+ estimated: import_zod.z.boolean(),
1379
+ topRowsOnly: import_zod.z.boolean(),
1380
+ coverageNote: import_zod.z.string().max(500).nullable()
1381
+ }).strict();
1382
+ var SeoActionDecisionSchema = import_zod.z.enum(["READY", "NEEDS_REVIEW", "REJECTED"]);
1383
+ var SeoSearchIntentSchema = import_zod.z.enum(["INFORMATIONAL", "COMMERCIAL", "NAVIGATIONAL", "BRANDED", "SUSPICIOUS"]);
1384
+ var SeoContentTypeSchema = import_zod.z.enum(["GUIDE", "TUTORIAL", "COMPARISON_PAGE", "LANDING_PAGE", "CONTENT_REFRESH"]);
1385
+ var SeoActionPlanSchema = import_zod.z.object({
1386
+ version: import_zod.z.number().int().positive(),
1387
+ decision: SeoActionDecisionSchema,
1388
+ decisionReason: import_zod.z.string().min(1).max(500),
1389
+ searchIntent: SeoSearchIntentSchema,
1390
+ primaryKeyword: import_zod.z.string().min(1).max(300),
1391
+ supportingKeywords: import_zod.z.array(import_zod.z.string().min(1).max(300)).max(12),
1392
+ questions: import_zod.z.array(import_zod.z.string().min(1).max(300)).max(8),
1393
+ contentType: SeoContentTypeSchema,
1394
+ suggestedTitle: import_zod.z.string().min(1).max(180),
1395
+ angle: import_zod.z.string().max(500),
1396
+ targetReader: import_zod.z.string().min(1).max(500),
1397
+ pageGoal: import_zod.z.string().max(500),
1398
+ outline: import_zod.z.array(import_zod.z.object({
1399
+ heading: import_zod.z.string().min(1).max(180),
1400
+ purpose: import_zod.z.string().min(1).max(500)
1401
+ }).strict()).max(10),
1402
+ rolinoConnection: import_zod.z.string().max(600),
1403
+ cta: import_zod.z.string().max(300),
1404
+ competitorPages: import_zod.z.array(import_zod.z.object({
1405
+ domain: import_zod.z.string().min(1).max(253),
1406
+ url: import_zod.z.string().url().nullable(),
1407
+ keyword: import_zod.z.string().min(1).max(300),
1408
+ rank: import_zod.z.number().min(1).max(1e3).nullable()
1409
+ }).strict()).max(8),
1410
+ existingPage: import_zod.z.object({
1411
+ title: import_zod.z.string().min(1).max(180),
1412
+ url: import_zod.z.string().url()
1413
+ }).strict().nullable(),
1414
+ warnings: import_zod.z.array(import_zod.z.string().min(1).max(500)).max(8),
1415
+ researchTasks: import_zod.z.array(import_zod.z.string().min(1).max(500)).max(8),
1416
+ cluster: import_zod.z.object({
1417
+ competitorDomains: import_zod.z.array(import_zod.z.string().min(1).max(253)).max(3),
1418
+ bestRank: import_zod.z.number().min(1).max(1e3).nullable(),
1419
+ estimatedDemand: import_zod.z.number().min(0).nullable(),
1420
+ firstPartyValidated: import_zod.z.boolean(),
1421
+ relevanceScore: import_zod.z.number().min(0).max(1),
1422
+ coverage: import_zod.z.string().max(500)
1423
+ }).strict()
1424
+ }).strict();
1425
+ var SeoTaskDecisionSchema = import_zod.z.enum(["READY", "NEEDS_REVIEW", "REJECTED"]);
1426
+ var SeoTaskFormatSchema = import_zod.z.enum([
1427
+ "BLOG_ARTICLE",
1428
+ "PRODUCT_LANDING_PAGE",
1429
+ "COMPARISON_PAGE",
1430
+ "EXISTING_PAGE_REFRESH",
1431
+ "YOUTUBE_PRODUCTION_PACKAGE",
1432
+ "SOCIAL_CAMPAIGN",
1433
+ "LINK_OUTREACH_TASK",
1434
+ "RESEARCH_TASK"
1435
+ ]);
1436
+ var SeoConfidenceValueSchema = import_zod.z.object({
1437
+ score: import_zod.z.number().int().min(0).max(100).nullable(),
1438
+ level: import_zod.z.enum(["HIGH", "MEDIUM", "LOW", "UNCONFIRMED"]),
1439
+ label: import_zod.z.string().min(1).max(120),
1440
+ explanation: import_zod.z.string().min(1).max(500)
1441
+ }).strict();
1442
+ var SeoDecisionConfidenceSchema = import_zod.z.object({
1443
+ topicRelevance: SeoConfidenceValueSchema,
1444
+ actionReadiness: SeoConfidenceValueSchema
1445
+ }).strict();
1446
+ var SeoTaskEvidenceSummarySchema = import_zod.z.object({
1447
+ title: import_zod.z.string().min(1).max(180),
1448
+ summary: import_zod.z.string().min(1).max(500),
1449
+ provenance: SeoEvidenceProvenanceSchema,
1450
+ observedAt: import_zod.z.string().datetime(),
1451
+ sourceUrl: import_zod.z.string().url().max(2048).nullable()
1452
+ }).strict();
1453
+ var SeoAgentTaskSchema = import_zod.z.object({
1454
+ schemaVersion: import_zod.z.number().int().positive(),
1455
+ projectId: SeoEntityIdSchema.nullable(),
1456
+ opportunityId: SeoEntityIdSchema.nullable(),
1457
+ legacy: import_zod.z.boolean(),
1458
+ legacyLabel: import_zod.z.string().max(500).nullable(),
1459
+ decision: SeoTaskDecisionSchema,
1460
+ decisionReason: import_zod.z.string().min(1).max(700),
1461
+ objective: import_zod.z.string().min(1).max(700),
1462
+ primaryFormat: SeoTaskFormatSchema,
1463
+ supportingFormats: import_zod.z.array(SeoTaskFormatSchema).max(4),
1464
+ formatOptions: import_zod.z.array(SeoTaskFormatSchema.exclude(["RESEARCH_TASK"])).max(7),
1465
+ confidence: SeoDecisionConfidenceSchema,
1466
+ target: import_zod.z.object({
1467
+ primaryKeyword: import_zod.z.string().min(1).max(300),
1468
+ supportingKeywords: import_zod.z.array(import_zod.z.string().min(1).max(300)).max(12),
1469
+ searchIntent: SeoSearchIntentSchema,
1470
+ audience: import_zod.z.string().min(1).max(500),
1471
+ angle: import_zod.z.string().max(600)
1472
+ }).strict(),
1473
+ suggestedTitles: import_zod.z.array(import_zod.z.string().min(1).max(180)).max(3),
1474
+ outline: import_zod.z.array(import_zod.z.object({
1475
+ heading: import_zod.z.string().min(1).max(180),
1476
+ purpose: import_zod.z.string().min(1).max(600)
1477
+ }).strict()).max(12),
1478
+ researchTasks: import_zod.z.array(import_zod.z.string().min(1).max(600)).max(10),
1479
+ competitorPagesToInspect: import_zod.z.array(import_zod.z.object({
1480
+ domain: import_zod.z.string().min(1).max(253),
1481
+ url: import_zod.z.string().url().max(2048).nullable(),
1482
+ keyword: import_zod.z.string().min(1).max(300),
1483
+ rank: import_zod.z.number().int().min(1).max(1e3).nullable()
1484
+ }).strict()).max(8),
1485
+ productFactsToVerify: import_zod.z.array(import_zod.z.string().min(1).max(600)).max(8),
1486
+ claimsNotToInvent: import_zod.z.array(import_zod.z.string().min(1).max(600)).max(8),
1487
+ deliverables: import_zod.z.array(import_zod.z.object({
1488
+ name: import_zod.z.string().min(1).max(180),
1489
+ requirements: import_zod.z.array(import_zod.z.string().min(1).max(600)).min(1).max(8)
1490
+ }).strict()).min(1).max(12),
1491
+ callToAction: import_zod.z.string().max(400),
1492
+ destination: import_zod.z.string().min(1).max(700),
1493
+ successMetric: import_zod.z.object({
1494
+ name: import_zod.z.string().min(1).max(180),
1495
+ target: import_zod.z.string().min(1).max(600),
1496
+ measurementWindow: import_zod.z.string().min(1).max(300)
1497
+ }).strict(),
1498
+ evidenceSummary: import_zod.z.array(SeoTaskEvidenceSummarySchema).max(5),
1499
+ limitations: import_zod.z.array(import_zod.z.string().min(1).max(600)).max(10),
1500
+ nextStep: import_zod.z.string().min(1).max(700),
1501
+ youtubePackageRequirements: import_zod.z.object({
1502
+ subject: import_zod.z.string().min(1).max(300),
1503
+ targetViewer: import_zod.z.string().min(1).max(500),
1504
+ objective: import_zod.z.string().min(1).max(700),
1505
+ titleOptions: import_zod.z.number().int().min(1).max(10),
1506
+ hook: import_zod.z.string().min(1).max(600),
1507
+ draftScript: import_zod.z.string().min(1).max(600),
1508
+ sceneList: import_zod.z.string().min(1).max(600),
1509
+ onScreenText: import_zod.z.string().min(1).max(600),
1510
+ thumbnailConcept: import_zod.z.string().min(1).max(600),
1511
+ thumbnailText: import_zod.z.string().min(1).max(300),
1512
+ description: import_zod.z.string().min(1).max(600),
1513
+ chapters: import_zod.z.string().min(1).max(600),
1514
+ callToAction: import_zod.z.string().max(400),
1515
+ supportingSocialPosts: import_zod.z.number().int().min(0).max(10)
1516
+ }).strict().nullable(),
1517
+ imageBriefs: import_zod.z.array(import_zod.z.object({
1518
+ concept: import_zod.z.string().min(1).max(600),
1519
+ brief: import_zod.z.string().min(1).max(800),
1520
+ altText: import_zod.z.string().min(1).max(500),
1521
+ prompt: import_zod.z.string().min(1).max(1e3)
1522
+ }).strict()).max(4)
1523
+ }).strict();
1524
+ var SeoOpportunityBriefSchema = import_zod.z.object({
1525
+ kind: SeoOpportunityKindSchema,
1526
+ title: import_zod.z.string().min(1).max(180),
1527
+ summary: import_zod.z.string().min(1).max(600),
1528
+ score: import_zod.z.number().int().min(0).max(100),
1529
+ confidence: SeoDecisionConfidenceSchema,
1530
+ expectedImpact: SeoExpectedImpactSchema,
1531
+ recommendedAction: import_zod.z.string().min(1).max(300),
1532
+ actionPlan: SeoActionPlanSchema,
1533
+ task: SeoAgentTaskSchema,
1534
+ evidence: import_zod.z.array(SeoEvidenceSchema).max(5),
1535
+ brief: import_zod.z.string().min(1).max(12e3)
1536
+ }).strict();
1537
+ var SeoOpportunitySchema = SeoOpportunityBriefSchema.extend({
1538
+ id: SeoEntityIdSchema,
1539
+ projectId: SeoEntityIdSchema,
1540
+ lastDetectedAt: import_zod.z.string().datetime(),
1541
+ stale: import_zod.z.boolean()
1542
+ }).strict();
1543
+ var SeoOpportunityListQuerySchema = import_zod.z.object({
1544
+ limit: import_zod.z.coerce.number().int().min(1).max(50).default(20),
1545
+ cursor: SeoCursorSchema.optional(),
1546
+ kind: SeoOpportunityKindSchema.optional(),
1547
+ expectedImpact: SeoExpectedImpactSchema.optional()
1548
+ }).strict();
1549
+ var SeoPageSchema = import_zod.z.object({
1550
+ limit: import_zod.z.number().int().min(1).max(50),
1551
+ nextCursor: SeoCursorSchema.nullable()
1552
+ }).strict();
1553
+ var SeoOpportunityListDataSchema = import_zod.z.object({
1554
+ items: import_zod.z.array(SeoOpportunitySchema).max(50),
1555
+ page: SeoPageSchema
1556
+ }).strict();
1557
+ var SeoOpportunityListResponseSchema = successEnvelopeSchema(
1558
+ SeoOpportunityListDataSchema
1559
+ );
1560
+ var SeoOpportunityResponseSchema = successEnvelopeSchema(
1561
+ SeoOpportunitySchema
1562
+ );
1563
+ var SeoReportCompletenessSchema = import_zod.z.enum(["COMPLETE", "PARTIAL"]);
1564
+ var SeoReportTriggerSchema = import_zod.z.enum(["SCHEDULED", "MANUAL"]);
1565
+ var SeoReportSummarySchema = import_zod.z.object({
1566
+ id: SeoEntityIdSchema,
1567
+ projectId: SeoEntityIdSchema,
1568
+ periodStart: import_zod.z.string().datetime(),
1569
+ periodEnd: import_zod.z.string().datetime(),
1570
+ timeZone: import_zod.z.string().min(1).max(100),
1571
+ deliveryDay: import_zod.z.number().int().min(1).max(7),
1572
+ completeness: SeoReportCompletenessSchema,
1573
+ trigger: SeoReportTriggerSchema,
1574
+ createdAt: import_zod.z.string().datetime(),
1575
+ opportunityCount: import_zod.z.number().int().min(0).max(5),
1576
+ readyTaskCount: import_zod.z.number().int().min(0).max(5),
1577
+ researchTaskCount: import_zod.z.number().int().min(0).max(5),
1578
+ rejectedFindingCount: import_zod.z.number().int().min(0).max(20),
1579
+ legacy: import_zod.z.boolean()
1580
+ }).strict();
1581
+ var SeoReportSchema = SeoReportSummarySchema.extend({
1582
+ generatedAt: import_zod.z.string().datetime(),
1583
+ partialLabel: import_zod.z.string().max(500).nullable(),
1584
+ freshThrough: import_zod.z.string().datetime().nullable(),
1585
+ opportunities: import_zod.z.array(SeoOpportunityBriefSchema).max(5),
1586
+ rejectedFindings: import_zod.z.array(import_zod.z.object({
1587
+ decision: import_zod.z.literal("REJECTED"),
1588
+ query: import_zod.z.string().min(1).max(300),
1589
+ reason: import_zod.z.string().min(1).max(700),
1590
+ observedAt: import_zod.z.string().datetime()
1591
+ }).strict()).max(20)
1592
+ }).strict();
1593
+ var SeoReportListQuerySchema = import_zod.z.object({
1594
+ limit: import_zod.z.coerce.number().int().min(1).max(26).default(10),
1595
+ cursor: SeoCursorSchema.optional(),
1596
+ completeness: SeoReportCompletenessSchema.optional()
1597
+ }).strict();
1598
+ var SeoReportListDataSchema = import_zod.z.object({
1599
+ items: import_zod.z.array(SeoReportSummarySchema).max(26),
1600
+ page: SeoPageSchema.extend({
1601
+ limit: import_zod.z.number().int().min(1).max(26)
1602
+ }).strict()
1603
+ }).strict();
1604
+ var SeoReportListResponseSchema = successEnvelopeSchema(
1605
+ SeoReportListDataSchema
1606
+ );
1607
+ var SeoReportResponseSchema = successEnvelopeSchema(SeoReportSchema);
934
1608
  // Annotate the CommonJS export names for ESM import in node:
935
1609
  0 && (module.exports = {
936
1610
  API_VERSION,
937
1611
  ActorSchema,
1612
+ AgentBlogArticleCreateRequestSchema,
1613
+ AgentBlogArticleDetailSchema,
1614
+ AgentBlogArticleListResponseSchema,
1615
+ AgentBlogArticleQueuedResponseSchema,
1616
+ AgentBlogArticleResponseSchema,
1617
+ AgentBlogArticleSchema,
1618
+ AgentBlogCadenceInputSchema,
1619
+ AgentBlogConnectionExecuteRequestSchema,
1620
+ AgentBlogConnectionExecuteResponseSchema,
1621
+ AgentBlogConnectionExecuteSchema,
1622
+ AgentBlogConnectionPreviewRequestSchema,
1623
+ AgentBlogConnectionPreviewResponseSchema,
1624
+ AgentBlogConnectionPreviewSchema,
1625
+ AgentBlogConnectionRequestSchema,
1626
+ AgentBlogConnectionStatusResponseSchema,
1627
+ AgentBlogConnectionStatusSchema,
1628
+ AgentBlogDeliveryAttemptListResponseSchema,
1629
+ AgentBlogDeliveryAttemptSchema,
1630
+ AgentBlogDestinationSelectionSchema,
1631
+ AgentBlogDraftUpdateSchema,
1632
+ AgentBlogGenerateRequestSchema,
1633
+ AgentBlogIdempotentRequestSchema,
1634
+ AgentBlogJobResponseSchema,
1635
+ AgentBlogJobSchema,
1636
+ AgentBlogPlanCreateRequestSchema,
1637
+ AgentBlogPlanItemResponseSchema,
1638
+ AgentBlogPlanItemSchema,
1639
+ AgentBlogPlanItemStateRequestSchema,
1640
+ AgentBlogPlanItemsResponseSchema,
1641
+ AgentBlogPlanListResponseSchema,
1642
+ AgentBlogPlanQueuedResponseSchema,
1643
+ AgentBlogPlanRetryRequestSchema,
1644
+ AgentBlogPlanSchema,
1645
+ AgentBlogPublishExecuteRequestSchema,
1646
+ AgentBlogPublishExecuteResponseSchema,
1647
+ AgentBlogPublishPreviewRequestSchema,
1648
+ AgentBlogPublishPreviewResponseSchema,
1649
+ AgentBlogPublishPreviewSchema,
1650
+ AgentBlogPublishingDestinationListResponseSchema,
1651
+ AgentBlogPublishingDestinationSchema,
1652
+ AgentBlogPublishingProviderListResponseSchema,
1653
+ AgentBlogPublishingProviderSchema,
1654
+ AgentBlogRevalidationTestRequestSchema,
1655
+ AgentBlogRevalidationTestResponseSchema,
1656
+ AgentBlogRevalidationTestSchema,
1657
+ AgentBlogSetupStatusResponseSchema,
1658
+ AgentBlogSetupStatusSchema,
938
1659
  ApiErrorCodeSchema,
939
1660
  ApiMetaResponseSchema,
940
1661
  ApiMetaSchema,
941
1662
  ApiProblemSchema,
942
1663
  AuthenticationKindSchema,
1664
+ BlogArticleListSchema,
1665
+ BlogImageSchema,
1666
+ BlogMetadataSchema,
1667
+ BlogSitemapEntrySchema,
1668
+ BlogSlugRedirectSchema,
943
1669
  CLI_BROWSER_AUTHORIZATION_TIMEOUT_MS,
944
1670
  CONTRACT_VERSION,
945
1671
  CalendarEventSchema,
@@ -973,7 +1699,9 @@ var CalendarListResponseSchema = successEnvelopeSchema(
973
1699
  MediaAssetUploadPreparationSchema,
974
1700
  PUBLISHING_PROVIDER_COUNT,
975
1701
  PlatformPostStatusSchema,
1702
+ PostDeliveryModeSchema,
976
1703
  PostDestinationSchema,
1704
+ PostDestinationStageSchema,
977
1705
  PostListDataSchema,
978
1706
  PostListQuerySchema,
979
1707
  PostListResponseSchema,
@@ -1007,10 +1735,40 @@ var CalendarListResponseSchema = successEnvelopeSchema(
1007
1735
  ProviderDeliveryOptionsResponseSchema,
1008
1736
  ProviderDeliveryOptionsSchema,
1009
1737
  ProviderHealthStatusSchema,
1738
+ PublishedBlogArticleSchema,
1010
1739
  PublishingProviderSchema,
1011
1740
  ReadinessActionSchema,
1012
1741
  ReadinessStatusSchema,
1013
1742
  RequestMetadataSchema,
1743
+ SeoActionDecisionSchema,
1744
+ SeoActionPlanSchema,
1745
+ SeoAgentTaskSchema,
1746
+ SeoConfidenceValueSchema,
1747
+ SeoContentTypeSchema,
1748
+ SeoCursorSchema,
1749
+ SeoDecisionConfidenceSchema,
1750
+ SeoEntityIdSchema,
1751
+ SeoEvidenceProvenanceSchema,
1752
+ SeoEvidenceSchema,
1753
+ SeoExpectedImpactSchema,
1754
+ SeoOpportunityBriefSchema,
1755
+ SeoOpportunityKindSchema,
1756
+ SeoOpportunityListDataSchema,
1757
+ SeoOpportunityListQuerySchema,
1758
+ SeoOpportunityListResponseSchema,
1759
+ SeoOpportunityResponseSchema,
1760
+ SeoOpportunitySchema,
1761
+ SeoReportCompletenessSchema,
1762
+ SeoReportListDataSchema,
1763
+ SeoReportListQuerySchema,
1764
+ SeoReportListResponseSchema,
1765
+ SeoReportResponseSchema,
1766
+ SeoReportSchema,
1767
+ SeoReportSummarySchema,
1768
+ SeoReportTriggerSchema,
1769
+ SeoSearchIntentSchema,
1770
+ SeoTaskDecisionSchema,
1771
+ SeoTaskFormatSchema,
1014
1772
  TikTokDeliveryOptionsSchema,
1015
1773
  TikTokDraftSettingsSchema,
1016
1774
  TikTokPostSettingsSchema,