@rolino/contracts 0.5.0-beta.0 → 0.5.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 CHANGED
@@ -1,5 +1,30 @@
1
1
  # @rolino/contracts
2
2
 
3
+ ## 0.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4f9e790: Add the optional `blog:manage` capability and synchronized agent-first Blog
8
+ setup, import, cadence planning, plan review, article creation, confirmed
9
+ connection provisioning, and safe verification operations.
10
+ - 1edd1e7: Add published Blog Studio delivery contracts and the server-only Next.js 16 Blog Studio package.
11
+ - 74a13ea: Expose immediate versus scheduled delivery and destination lifecycle stages,
12
+ preserve YouTube visibility for immediate publishing, and clarify remote
13
+ schedule confirmation across public clients.
14
+ - 4af607d: Add independent exact-bundle Blog approval, reviewed image upload and generation,
15
+ confirmed publication scheduling and cancellation, and the complete authorized
16
+ agent workflow without widening existing credentials.
17
+ - 4a893dd: Add provider-neutral Blog publishing destinations, safe delivery inspection,
18
+ and exact destination binding across public agent interfaces.
19
+ - 843a1db: Add the exact optional `seo:read` capability and bounded read-only SEO
20
+ opportunity and weekly-report parity across public agent contracts, clients,
21
+ CLI commands, and closed-world MCP tools. SEO reads now use the version 3 task
22
+ contract with the exact Ready, Research, or Rejected decision, selected format,
23
+ complete deliverables, bounded evidence, safe URLs, limitations, and no-publish
24
+ rules. Public output uses readable topic names and separate topic-relevance and
25
+ action-readiness confidence. Research tasks compare all supported formats and
26
+ must validate or reject the finding before a separate draft action is allowed.
27
+
3
28
  ## 0.5.0-beta.0
4
29
 
5
30
  ### Minor Changes
@@ -26,6 +51,10 @@
26
51
 
27
52
  ### Minor Changes
28
53
 
54
+ - Add exact Blog image, approval-bundle, scheduling, cancellation, provenance,
55
+ idempotency, and safe public-state contracts while keeping `blog:write`,
56
+ `blog:approve`, and `blog:publish` independent.
57
+ - Add the independent optional `blog:approve` capability without widening existing Blog credentials or combining draft, approval, and publication access.
29
58
  - Add safe Blog publishing provider, destination, delivery-attempt, and exact destination-selection contracts.
30
59
 
31
60
  ## 0.4.0
package/README.md CHANGED
@@ -31,17 +31,30 @@ opportunities expose `READY` or `NEEDS_REVIEW`; a rejected finding has no active
31
31
  task. A Research task selects only `RESEARCH_TASK`, names no preferred final
32
32
  format, and returns `VALIDATED` with a complete next task or `REJECTED` with
33
33
  evidence before any separate draft action. Older stored reports receive a review-only compatibility task
34
- when read; their saved snapshots are not changed.
35
-
36
- Blog Studio contracts include provider catalog entries, safe publishing
37
- destination readiness, delivery-attempt summaries, and exact destination
38
- selection for publication preview and execution. Provider catalog reads require
39
- `blog:manage`. Destination and delivery-attempt reads require `blog:read`.
40
- These DTOs omit draft content, prompts, evidence, secrets, encrypted values,
41
- and raw provider responses. A contract type does not make a hidden provider
42
- available; the server rollout registry remains authoritative.
43
-
44
- Project and post DTOs intentionally omit storage credentials, upload sessions,
34
+ when read; their saved snapshots are not changed.
35
+
36
+ Blog Studio contracts include provider catalog entries, safe publishing
37
+ destination readiness, delivery-attempt summaries, and exact destination
38
+ selection for approval, publication, scheduling, and cancellation preview and
39
+ execution. The independent `blog:approve` capability binds one immutable
40
+ revision and reviewed-image snapshot. `blog:publish` does not grant approval,
41
+ and `blog:write` cannot approve or publish. Existing credentials do not gain a
42
+ new capability. Provider catalog reads require
43
+ `blog:manage`. Destination and delivery-attempt reads require `blog:read`.
44
+ These DTOs omit draft content, prompts, evidence, secrets, encrypted values,
45
+ and raw provider responses. A contract type does not make a hidden provider
46
+ available; the server rollout registry remains authoritative.
47
+
48
+ Clients must read current setup and article or plan state, resolve missing
49
+ website, cadence, destination, and access-level choices, poll import and plan
50
+ jobs, present evidence, create one immutable revision with catalog-backed
51
+ links, review one generated or approved uploaded image and its alt text, stop
52
+ when approval or publication scope is missing, use confirmation-bound and
53
+ idempotent approval before publication, verify live delivery, and restart from
54
+ approval preview after any content or image change. A queued delivery is not a
55
+ published delivery.
56
+
57
+ Project and post DTOs intentionally omit storage credentials, upload sessions,
45
58
  tokens, and other publishing-provider internals.
46
59
 
47
60
  Every destination reports an explicit `deliveryMode` (`IMMEDIATE` or
package/dist/index.cjs CHANGED
@@ -22,6 +22,14 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  API_VERSION: () => API_VERSION,
24
24
  ActorSchema: () => ActorSchema,
25
+ AgentBlogApprovalExecuteRequestSchema: () => AgentBlogApprovalExecuteRequestSchema,
26
+ AgentBlogApprovalExecuteResponseSchema: () => AgentBlogApprovalExecuteResponseSchema,
27
+ AgentBlogApprovalExecuteSchema: () => AgentBlogApprovalExecuteSchema,
28
+ AgentBlogApprovalImageSummarySchema: () => AgentBlogApprovalImageSummarySchema,
29
+ AgentBlogApprovalLinkSummarySchema: () => AgentBlogApprovalLinkSummarySchema,
30
+ AgentBlogApprovalPreviewRequestSchema: () => AgentBlogApprovalPreviewRequestSchema,
31
+ AgentBlogApprovalPreviewResponseSchema: () => AgentBlogApprovalPreviewResponseSchema,
32
+ AgentBlogApprovalPreviewSchema: () => AgentBlogApprovalPreviewSchema,
25
33
  AgentBlogArticleCreateRequestSchema: () => AgentBlogArticleCreateRequestSchema,
26
34
  AgentBlogArticleDetailSchema: () => AgentBlogArticleDetailSchema,
27
35
  AgentBlogArticleListResponseSchema: () => AgentBlogArticleListResponseSchema,
@@ -44,6 +52,14 @@ __export(index_exports, {
44
52
  AgentBlogDraftUpdateSchema: () => AgentBlogDraftUpdateSchema,
45
53
  AgentBlogGenerateRequestSchema: () => AgentBlogGenerateRequestSchema,
46
54
  AgentBlogIdempotentRequestSchema: () => AgentBlogIdempotentRequestSchema,
55
+ AgentBlogImageGenerateRequestSchema: () => AgentBlogImageGenerateRequestSchema,
56
+ AgentBlogImageGenerationResponseSchema: () => AgentBlogImageGenerationResponseSchema,
57
+ AgentBlogImageResponseSchema: () => AgentBlogImageResponseSchema,
58
+ AgentBlogImageReviewRequestSchema: () => AgentBlogImageReviewRequestSchema,
59
+ AgentBlogImageSchema: () => AgentBlogImageSchema,
60
+ AgentBlogImageUploadCompleteRequestSchema: () => AgentBlogImageUploadCompleteRequestSchema,
61
+ AgentBlogImageUploadPreparationResponseSchema: () => AgentBlogImageUploadPreparationResponseSchema,
62
+ AgentBlogImageUploadPrepareRequestSchema: () => AgentBlogImageUploadPrepareRequestSchema,
47
63
  AgentBlogJobResponseSchema: () => AgentBlogJobResponseSchema,
48
64
  AgentBlogJobSchema: () => AgentBlogJobSchema,
49
65
  AgentBlogPlanCreateRequestSchema: () => AgentBlogPlanCreateRequestSchema,
@@ -67,6 +83,18 @@ __export(index_exports, {
67
83
  AgentBlogRevalidationTestRequestSchema: () => AgentBlogRevalidationTestRequestSchema,
68
84
  AgentBlogRevalidationTestResponseSchema: () => AgentBlogRevalidationTestResponseSchema,
69
85
  AgentBlogRevalidationTestSchema: () => AgentBlogRevalidationTestSchema,
86
+ AgentBlogScheduleCancelExecuteRequestSchema: () => AgentBlogScheduleCancelExecuteRequestSchema,
87
+ AgentBlogScheduleCancelExecuteResponseSchema: () => AgentBlogScheduleCancelExecuteResponseSchema,
88
+ AgentBlogScheduleCancelExecuteSchema: () => AgentBlogScheduleCancelExecuteSchema,
89
+ AgentBlogScheduleCancelPreviewRequestSchema: () => AgentBlogScheduleCancelPreviewRequestSchema,
90
+ AgentBlogScheduleCancelPreviewResponseSchema: () => AgentBlogScheduleCancelPreviewResponseSchema,
91
+ AgentBlogScheduleCancelPreviewSchema: () => AgentBlogScheduleCancelPreviewSchema,
92
+ AgentBlogScheduleExecuteRequestSchema: () => AgentBlogScheduleExecuteRequestSchema,
93
+ AgentBlogScheduleExecuteResponseSchema: () => AgentBlogScheduleExecuteResponseSchema,
94
+ AgentBlogScheduleExecuteSchema: () => AgentBlogScheduleExecuteSchema,
95
+ AgentBlogSchedulePreviewRequestSchema: () => AgentBlogSchedulePreviewRequestSchema,
96
+ AgentBlogSchedulePreviewResponseSchema: () => AgentBlogSchedulePreviewResponseSchema,
97
+ AgentBlogSchedulePreviewSchema: () => AgentBlogSchedulePreviewSchema,
70
98
  AgentBlogSetupStatusResponseSchema: () => AgentBlogSetupStatusResponseSchema,
71
99
  AgentBlogSetupStatusSchema: () => AgentBlogSetupStatusSchema,
72
100
  ApiErrorCodeSchema: () => ApiErrorCodeSchema,
@@ -285,6 +313,7 @@ var CapabilityIdSchema = import_zod.z.enum([
285
313
  "blog:read",
286
314
  "blog:write",
287
315
  "blog:manage",
316
+ "blog:approve",
288
317
  "blog:publish"
289
318
  ]);
290
319
  var AgentBlogPlanSchema = import_zod.z.object({
@@ -307,6 +336,21 @@ var AgentBlogArticleSchema = import_zod.z.object({
307
336
  scheduledPublishAt: import_zod.z.string().datetime().nullable(),
308
337
  updatedAt: import_zod.z.string().datetime()
309
338
  });
339
+ var AgentBlogImageSchema = import_zod.z.object({
340
+ id: import_zod.z.string().min(1),
341
+ revisionId: import_zod.z.string().nullable(),
342
+ version: import_zod.z.number().int().positive(),
343
+ purpose: import_zod.z.enum(["FEATURED", "SECTION", "SOCIAL_PREVIEW"]),
344
+ source: import_zod.z.enum(["GENERATED", "AGENT_UPLOAD"]),
345
+ state: import_zod.z.enum(["QUEUED", "GENERATING", "READY_FOR_REVIEW", "APPROVED", "REJECTED", "FAILED"]),
346
+ publicUrl: import_zod.z.string().url().nullable(),
347
+ mimeType: import_zod.z.enum(["image/jpeg", "image/png", "image/webp"]).nullable(),
348
+ width: import_zod.z.number().int().positive().nullable(),
349
+ height: import_zod.z.number().int().positive().nullable(),
350
+ altText: import_zod.z.string().nullable(),
351
+ caption: import_zod.z.string().nullable(),
352
+ createdAt: import_zod.z.string().datetime()
353
+ }).strict();
310
354
  var AgentBlogArticleDetailSchema = AgentBlogArticleSchema.extend({
311
355
  draft: import_zod.z.object({
312
356
  id: import_zod.z.string().min(1),
@@ -323,7 +367,8 @@ var AgentBlogArticleDetailSchema = AgentBlogArticleSchema.extend({
323
367
  callToAction: import_zod.z.unknown().nullable(),
324
368
  internalLinks: import_zod.z.unknown()
325
369
  }).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() }))
370
+ 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() })),
371
+ images: import_zod.z.array(AgentBlogImageSchema)
327
372
  });
328
373
  var AgentBlogJobSchema = import_zod.z.object({
329
374
  id: import_zod.z.string().min(1),
@@ -352,13 +397,126 @@ var AgentBlogDraftUpdateSchema = import_zod.z.object({
352
397
  scheduledPublishAt: import_zod.z.string().datetime().nullable().optional()
353
398
  });
354
399
  var AgentBlogGenerateRequestSchema = import_zod.z.object({ idempotencyKey: import_zod.z.string().trim().min(8).max(200) });
400
+ var AgentBlogImageGenerateRequestSchema = import_zod.z.object({
401
+ revisionId: import_zod.z.string().min(1),
402
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200),
403
+ editorialBrief: import_zod.z.string().trim().max(500).optional()
404
+ }).strict();
405
+ var AgentBlogImageUploadPrepareRequestSchema = import_zod.z.object({
406
+ revisionId: import_zod.z.string().min(1),
407
+ fileName: import_zod.z.string().trim().min(1).max(255),
408
+ contentType: import_zod.z.enum(["image/jpeg", "image/png", "image/webp"]),
409
+ fileSize: import_zod.z.number().int().positive().max(25 * 1024 * 1024)
410
+ }).strict();
411
+ var AgentBlogImageUploadCompleteRequestSchema = AgentBlogImageUploadPrepareRequestSchema.extend({
412
+ storageKey: import_zod.z.string().min(1).max(1024),
413
+ altText: import_zod.z.string().trim().min(1).max(300)
414
+ }).strict();
415
+ var AgentBlogImageReviewRequestSchema = import_zod.z.object({
416
+ expectedVersion: import_zod.z.number().int().positive(),
417
+ decision: import_zod.z.enum(["APPROVED", "REJECTED"]),
418
+ altText: import_zod.z.string().max(300),
419
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
420
+ }).strict();
421
+ var AgentBlogApprovalPreviewRequestSchema = import_zod.z.object({ revisionId: import_zod.z.string().min(1) }).strict();
422
+ var AgentBlogApprovalExecuteRequestSchema = AgentBlogApprovalPreviewRequestSchema.extend({
423
+ confirmationToken: import_zod.z.string().min(1),
424
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
425
+ }).strict();
426
+ var AgentBlogApprovalImageSummarySchema = import_zod.z.object({
427
+ id: import_zod.z.string(),
428
+ purpose: import_zod.z.enum(["FEATURED", "SECTION", "SOCIAL_PREVIEW"]),
429
+ contentPosition: import_zod.z.string().nullable(),
430
+ width: import_zod.z.number().int().positive(),
431
+ height: import_zod.z.number().int().positive(),
432
+ mimeType: import_zod.z.enum(["image/jpeg", "image/png", "image/webp"]),
433
+ altText: import_zod.z.string().min(1),
434
+ caption: import_zod.z.string().nullable(),
435
+ version: import_zod.z.number().int().positive()
436
+ }).strict();
437
+ var AgentBlogApprovalLinkSummarySchema = import_zod.z.object({
438
+ pageId: import_zod.z.string(),
439
+ liveState: import_zod.z.enum(["LIVE", "REDIRECT"])
440
+ }).strict();
441
+ var AgentBlogApprovalPreviewSchema = import_zod.z.object({
442
+ articleId: import_zod.z.string(),
443
+ revisionId: import_zod.z.string(),
444
+ title: import_zod.z.string(),
445
+ slug: import_zod.z.string(),
446
+ revisionNumber: import_zod.z.number().int().positive(),
447
+ contentHash: import_zod.z.string(),
448
+ images: import_zod.z.array(AgentBlogApprovalImageSummarySchema),
449
+ links: import_zod.z.array(AgentBlogApprovalLinkSummarySchema),
450
+ warnings: import_zod.z.array(import_zod.z.string()),
451
+ bundleHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
452
+ confirmation: import_zod.z.object({ token: import_zod.z.string(), expiresAt: import_zod.z.string().datetime() }).strict()
453
+ }).strict();
454
+ var AgentBlogApprovalExecuteSchema = AgentBlogApprovalPreviewSchema.omit({ confirmation: true }).extend({
455
+ approvalSource: import_zod.z.literal("AGENT"),
456
+ approvedAt: import_zod.z.string().datetime()
457
+ }).strict();
355
458
  var AgentBlogDestinationSelectionSchema = import_zod.z.array(import_zod.z.string().min(1)).min(1).max(20);
459
+ var AgentBlogIanaTimeZoneSchema = import_zod.z.string().trim().min(1).max(100).refine((timeZone) => {
460
+ try {
461
+ new Intl.DateTimeFormat("en", { timeZone }).format();
462
+ return true;
463
+ } catch {
464
+ return false;
465
+ }
466
+ }, "timezone must be a valid IANA timezone");
467
+ var AgentBlogSchedulePreviewRequestSchema = import_zod.z.object({
468
+ revisionId: import_zod.z.string().min(1),
469
+ destinationIds: AgentBlogDestinationSelectionSchema.optional(),
470
+ scheduledAt: import_zod.z.string().datetime({ offset: true }),
471
+ timezone: AgentBlogIanaTimeZoneSchema
472
+ }).strict();
473
+ var AgentBlogScheduleExecuteRequestSchema = AgentBlogSchedulePreviewRequestSchema.extend({
474
+ confirmationToken: import_zod.z.string().min(1),
475
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
476
+ }).strict();
477
+ var AgentBlogScheduleCancelPreviewRequestSchema = import_zod.z.object({}).strict();
478
+ var AgentBlogScheduleCancelExecuteRequestSchema = import_zod.z.object({
479
+ confirmationToken: import_zod.z.string().min(1),
480
+ idempotencyKey: import_zod.z.string().trim().min(8).max(200)
481
+ }).strict();
482
+ var AgentBlogSchedulePreviewSchema = import_zod.z.object({
483
+ articleId: import_zod.z.string(),
484
+ revisionId: import_zod.z.string(),
485
+ contentHash: import_zod.z.string(),
486
+ approvalBundleHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
487
+ approvalSource: import_zod.z.enum(["USER", "AGENT"]).nullable(),
488
+ destinationIds: AgentBlogDestinationSelectionSchema,
489
+ scheduledAt: import_zod.z.string().datetime(),
490
+ timezone: AgentBlogIanaTimeZoneSchema,
491
+ currentScheduleVersion: import_zod.z.string().datetime(),
492
+ previousScheduledAt: import_zod.z.string().datetime().nullable(),
493
+ confirmation: import_zod.z.object({ token: import_zod.z.string(), expiresAt: import_zod.z.string().datetime() }).strict()
494
+ }).strict();
495
+ var AgentBlogScheduleExecuteSchema = AgentBlogSchedulePreviewSchema.omit({ confirmation: true }).extend({
496
+ jobId: import_zod.z.string(),
497
+ scheduleVersion: import_zod.z.string().datetime(),
498
+ state: import_zod.z.literal("SCHEDULED")
499
+ }).strict();
500
+ var AgentBlogScheduleCancelPreviewSchema = import_zod.z.object({
501
+ articleId: import_zod.z.string(),
502
+ revisionId: import_zod.z.string(),
503
+ approvalBundleHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
504
+ destinationIds: AgentBlogDestinationSelectionSchema,
505
+ scheduledAt: import_zod.z.string().datetime(),
506
+ timezone: AgentBlogIanaTimeZoneSchema,
507
+ scheduleVersion: import_zod.z.string().datetime(),
508
+ confirmation: import_zod.z.object({ token: import_zod.z.string(), expiresAt: import_zod.z.string().datetime() }).strict()
509
+ }).strict();
510
+ var AgentBlogScheduleCancelExecuteSchema = AgentBlogScheduleCancelPreviewSchema.omit({ confirmation: true }).extend({
511
+ state: import_zod.z.literal("APPROVED"),
512
+ canceledAt: import_zod.z.string().datetime()
513
+ }).strict();
356
514
  var AgentBlogPublishPreviewRequestSchema = import_zod.z.object({ revisionId: import_zod.z.string().min(1), destinationIds: AgentBlogDestinationSelectionSchema.optional() });
357
515
  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
516
  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
517
  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
518
  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() }) });
519
+ var AgentBlogPublishPreviewSchema = import_zod.z.object({ articleId: import_zod.z.string(), revisionId: import_zod.z.string(), contentHash: import_zod.z.string(), approvalBundleHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/), approvalSource: import_zod.z.enum(["USER", "AGENT"]).nullable(), 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
520
  var AgentBlogReadinessSchema = import_zod.z.enum([
363
521
  "MISSING",
364
522
  "NOT_STARTED",
@@ -499,8 +657,23 @@ var AgentBlogPlanListResponseSchema = successEnvelopeSchema(import_zod.z.object(
499
657
  var AgentBlogArticleListResponseSchema = successEnvelopeSchema(import_zod.z.object({ articles: import_zod.z.array(AgentBlogArticleSchema) }));
500
658
  var AgentBlogArticleResponseSchema = successEnvelopeSchema(AgentBlogArticleDetailSchema);
501
659
  var AgentBlogJobResponseSchema = successEnvelopeSchema(AgentBlogJobSchema);
660
+ var AgentBlogImageGenerationResponseSchema = successEnvelopeSchema(import_zod.z.object({ image: AgentBlogImageSchema, job: AgentBlogJobSchema }).strict());
661
+ var AgentBlogImageUploadPreparationResponseSchema = successEnvelopeSchema(import_zod.z.object({
662
+ uploadUrl: import_zod.z.string().url(),
663
+ storageKey: import_zod.z.string(),
664
+ expiresAt: import_zod.z.string().datetime(),
665
+ headers: import_zod.z.object({ "Content-Type": import_zod.z.enum(["image/jpeg", "image/png", "image/webp"]) }).strict(),
666
+ maxFileSize: import_zod.z.number().int().positive()
667
+ }).strict());
668
+ var AgentBlogImageResponseSchema = successEnvelopeSchema(AgentBlogImageSchema);
669
+ var AgentBlogApprovalPreviewResponseSchema = successEnvelopeSchema(AgentBlogApprovalPreviewSchema);
670
+ var AgentBlogApprovalExecuteResponseSchema = successEnvelopeSchema(AgentBlogApprovalExecuteSchema);
671
+ var AgentBlogSchedulePreviewResponseSchema = successEnvelopeSchema(AgentBlogSchedulePreviewSchema);
672
+ var AgentBlogScheduleExecuteResponseSchema = successEnvelopeSchema(AgentBlogScheduleExecuteSchema);
673
+ var AgentBlogScheduleCancelPreviewResponseSchema = successEnvelopeSchema(AgentBlogScheduleCancelPreviewSchema);
674
+ var AgentBlogScheduleCancelExecuteResponseSchema = successEnvelopeSchema(AgentBlogScheduleCancelExecuteSchema);
502
675
  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() }));
676
+ var AgentBlogPublishExecuteResponseSchema = successEnvelopeSchema(import_zod.z.object({ publicationId: import_zod.z.string(), articleId: import_zod.z.string(), revisionId: import_zod.z.string(), approvalBundleHash: import_zod.z.string().regex(/^[a-f0-9]{64}$/), approvalSource: import_zod.z.enum(["USER", "AGENT"]).nullable(), publicUrl: import_zod.z.string().url(), publishedAt: import_zod.z.string().datetime() }));
504
677
  var AgentBlogPublishingProviderListResponseSchema = successEnvelopeSchema(import_zod.z.object({ providers: import_zod.z.array(AgentBlogPublishingProviderSchema) }).strict());
505
678
  var AgentBlogPublishingDestinationListResponseSchema = successEnvelopeSchema(import_zod.z.object({ destinations: import_zod.z.array(AgentBlogPublishingDestinationSchema) }).strict());
506
679
  var AgentBlogDeliveryAttemptListResponseSchema = successEnvelopeSchema(import_zod.z.object({ deliveries: import_zod.z.array(AgentBlogDeliveryAttemptSchema) }).strict());
@@ -1609,6 +1782,14 @@ var SeoReportResponseSchema = successEnvelopeSchema(SeoReportSchema);
1609
1782
  0 && (module.exports = {
1610
1783
  API_VERSION,
1611
1784
  ActorSchema,
1785
+ AgentBlogApprovalExecuteRequestSchema,
1786
+ AgentBlogApprovalExecuteResponseSchema,
1787
+ AgentBlogApprovalExecuteSchema,
1788
+ AgentBlogApprovalImageSummarySchema,
1789
+ AgentBlogApprovalLinkSummarySchema,
1790
+ AgentBlogApprovalPreviewRequestSchema,
1791
+ AgentBlogApprovalPreviewResponseSchema,
1792
+ AgentBlogApprovalPreviewSchema,
1612
1793
  AgentBlogArticleCreateRequestSchema,
1613
1794
  AgentBlogArticleDetailSchema,
1614
1795
  AgentBlogArticleListResponseSchema,
@@ -1631,6 +1812,14 @@ var SeoReportResponseSchema = successEnvelopeSchema(SeoReportSchema);
1631
1812
  AgentBlogDraftUpdateSchema,
1632
1813
  AgentBlogGenerateRequestSchema,
1633
1814
  AgentBlogIdempotentRequestSchema,
1815
+ AgentBlogImageGenerateRequestSchema,
1816
+ AgentBlogImageGenerationResponseSchema,
1817
+ AgentBlogImageResponseSchema,
1818
+ AgentBlogImageReviewRequestSchema,
1819
+ AgentBlogImageSchema,
1820
+ AgentBlogImageUploadCompleteRequestSchema,
1821
+ AgentBlogImageUploadPreparationResponseSchema,
1822
+ AgentBlogImageUploadPrepareRequestSchema,
1634
1823
  AgentBlogJobResponseSchema,
1635
1824
  AgentBlogJobSchema,
1636
1825
  AgentBlogPlanCreateRequestSchema,
@@ -1654,6 +1843,18 @@ var SeoReportResponseSchema = successEnvelopeSchema(SeoReportSchema);
1654
1843
  AgentBlogRevalidationTestRequestSchema,
1655
1844
  AgentBlogRevalidationTestResponseSchema,
1656
1845
  AgentBlogRevalidationTestSchema,
1846
+ AgentBlogScheduleCancelExecuteRequestSchema,
1847
+ AgentBlogScheduleCancelExecuteResponseSchema,
1848
+ AgentBlogScheduleCancelExecuteSchema,
1849
+ AgentBlogScheduleCancelPreviewRequestSchema,
1850
+ AgentBlogScheduleCancelPreviewResponseSchema,
1851
+ AgentBlogScheduleCancelPreviewSchema,
1852
+ AgentBlogScheduleExecuteRequestSchema,
1853
+ AgentBlogScheduleExecuteResponseSchema,
1854
+ AgentBlogScheduleExecuteSchema,
1855
+ AgentBlogSchedulePreviewRequestSchema,
1856
+ AgentBlogSchedulePreviewResponseSchema,
1857
+ AgentBlogSchedulePreviewSchema,
1657
1858
  AgentBlogSetupStatusResponseSchema,
1658
1859
  AgentBlogSetupStatusSchema,
1659
1860
  ApiErrorCodeSchema,