@rolino/contracts 0.7.1 → 0.9.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,18 @@
1
1
  # @rolino/contracts
2
2
 
3
+ ## 0.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - b4ebe20: Expose saved remote delivery IDs and safe provider management links in post destination results.
8
+ - 592d4f2: Add existing-delivery checks and confirmed YouTube recovery across the API, SDK, CLI, and MCP. Preserve exact video and version bindings, action-specific permissions, and stable retry results without uploading another copy. Show saved remote IDs in CLI post details.
9
+
10
+ ## 0.8.0
11
+
12
+ ### Minor Changes
13
+
14
+ - 4e123ef: Add exact storage usage, bounded workspace media listing with required project context, and entitlement-checked, confirmation-bound Media Library cleanup across the shared contracts, SDK, and MCP tools. Cleanup status now reports a safe changed-asset skip when the confirmed workspace, project, storage identity, or asset version no longer matches.
15
+
3
16
  ## 0.7.1
4
17
 
5
18
  ## 0.7.0
package/README.md CHANGED
@@ -3,10 +3,18 @@
3
3
  The package includes strict shared backlink prospecting schemas for bounded targets, discoveries, prospects, score evidence, stages, public contacts, outreach drafts, and exact-link verification. The independent `backlinks:read`, `backlinks:write`, and `backlinks:contacts` capabilities do not widen existing credentials.
4
4
 
5
5
  Zod schemas and TypeScript types for Rolino's versioned public API. This package
6
- contains transport-safe DTOs only; it must not depend on Prisma, Next.js, auth
7
- providers, or server implementation details.
6
+ contains transport-safe DTOs only; it must not depend on Prisma, Next.js, auth
7
+ providers, or server implementation details.
8
+
9
+ Storage-management contracts add the independent optional `storage:read` and
10
+ `media:delete` capabilities, exact workspace usage, bounded project or workspace
11
+ media lists, and confirmation-bound cleanup preview, execute, and status DTOs.
12
+ Cleanup selections contain at most 500 candidates. Public DTOs omit storage keys,
13
+ provider errors, credentials, and internal queue records.
14
+ Workspace media items always include their project ID and project name. Media
15
+ cursors are opaque deployment-time pagination state and are not long-term IDs.
8
16
 
9
- Contract 0.15 covers discovery, identity, capabilities, project reads and
17
+ Contract 0.19 covers discovery, identity, capabilities, project reads and
10
18
  idempotent project creation, safe post and calendar reads, idempotent draft
11
19
  writes, and server-confirmed Instagram, TikTok, YouTube, Bluesky, and LinkedIn scheduling
12
20
  and immediate publishing. YouTube additions include explicit draft settings,
package/dist/index.cjs CHANGED
@@ -182,6 +182,7 @@ __export(index_exports, {
182
182
  IntegrationHealthListResponseSchema: () => IntegrationHealthListResponseSchema,
183
183
  IntegrationHealthSchema: () => IntegrationHealthSchema,
184
184
  LinkedInDeliveryOptionsSchema: () => LinkedInDeliveryOptionsSchema,
185
+ ListedMediaAssetSchema: () => ListedMediaAssetSchema,
185
186
  MediaAssetListDataSchema: () => MediaAssetListDataSchema,
186
187
  MediaAssetListQuerySchema: () => MediaAssetListQuerySchema,
187
188
  MediaAssetListResponseSchema: () => MediaAssetListResponseSchema,
@@ -191,8 +192,27 @@ __export(index_exports, {
191
192
  MediaAssetUploadInputSchema: () => MediaAssetUploadInputSchema,
192
193
  MediaAssetUploadPreparationResponseSchema: () => MediaAssetUploadPreparationResponseSchema,
193
194
  MediaAssetUploadPreparationSchema: () => MediaAssetUploadPreparationSchema,
195
+ MediaCleanupCandidateSchema: () => MediaCleanupCandidateSchema,
196
+ MediaCleanupExecuteRequestSchema: () => MediaCleanupExecuteRequestSchema,
197
+ MediaCleanupExecuteResponseSchema: () => MediaCleanupExecuteResponseSchema,
198
+ MediaCleanupExecuteResultSchema: () => MediaCleanupExecuteResultSchema,
199
+ MediaCleanupItemResultSchema: () => MediaCleanupItemResultSchema,
200
+ MediaCleanupItemStatusSchema: () => MediaCleanupItemStatusSchema,
201
+ MediaCleanupOperationStatusSchema: () => MediaCleanupOperationStatusSchema,
202
+ MediaCleanupPreviewRequestSchema: () => MediaCleanupPreviewRequestSchema,
203
+ MediaCleanupPreviewResponseSchema: () => MediaCleanupPreviewResponseSchema,
204
+ MediaCleanupPreviewSchema: () => MediaCleanupPreviewSchema,
205
+ MediaCleanupScopeSchema: () => MediaCleanupScopeSchema,
206
+ MediaCleanupSelectionInputSchema: () => MediaCleanupSelectionInputSchema,
207
+ MediaCleanupStatusQuerySchema: () => MediaCleanupStatusQuerySchema,
208
+ MediaCleanupStatusResponseSchema: () => MediaCleanupStatusResponseSchema,
209
+ MediaCleanupStatusSchema: () => MediaCleanupStatusSchema,
210
+ NormalizedMediaCleanupSelectionSchema: () => NormalizedMediaCleanupSelectionSchema,
194
211
  PUBLISHING_PROVIDER_COUNT: () => PUBLISHING_PROVIDER_COUNT,
195
212
  PlatformPostStatusSchema: () => PlatformPostStatusSchema,
213
+ PostDeliveryCheckInputSchema: () => PostDeliveryCheckInputSchema,
214
+ PostDeliveryCheckResponseSchema: () => PostDeliveryCheckResponseSchema,
215
+ PostDeliveryCheckResultSchema: () => PostDeliveryCheckResultSchema,
196
216
  PostDeliveryModeSchema: () => PostDeliveryModeSchema,
197
217
  PostDestinationSchema: () => PostDestinationSchema,
198
218
  PostDestinationStageSchema: () => PostDestinationStageSchema,
@@ -208,6 +228,12 @@ __export(index_exports, {
208
228
  PostReadinessCheckSchema: () => PostReadinessCheckSchema,
209
229
  PostReadinessResponseSchema: () => PostReadinessResponseSchema,
210
230
  PostReadinessSchema: () => PostReadinessSchema,
231
+ PostRecoveryExecuteInputSchema: () => PostRecoveryExecuteInputSchema,
232
+ PostRecoveryInputSchema: () => PostRecoveryInputSchema,
233
+ PostRecoveryPreviewResponseSchema: () => PostRecoveryPreviewResponseSchema,
234
+ PostRecoveryPreviewSchema: () => PostRecoveryPreviewSchema,
235
+ PostRecoveryResponseSchema: () => PostRecoveryResponseSchema,
236
+ PostRecoveryResultSchema: () => PostRecoveryResultSchema,
211
237
  PostResponseSchema: () => PostResponseSchema,
212
238
  PostScheduleExecuteInputSchema: () => PostScheduleExecuteInputSchema,
213
239
  PostScheduleExecuteResponseSchema: () => PostScheduleExecuteResponseSchema,
@@ -263,17 +289,25 @@ __export(index_exports, {
263
289
  SeoSearchIntentSchema: () => SeoSearchIntentSchema,
264
290
  SeoTaskDecisionSchema: () => SeoTaskDecisionSchema,
265
291
  SeoTaskFormatSchema: () => SeoTaskFormatSchema,
292
+ StorageByteCountSchema: () => StorageByteCountSchema,
293
+ StorageSourceBreakdownSchema: () => StorageSourceBreakdownSchema,
294
+ StorageUsageResponseSchema: () => StorageUsageResponseSchema,
295
+ StorageUsageSchema: () => StorageUsageSchema,
266
296
  TikTokDeliveryOptionsSchema: () => TikTokDeliveryOptionsSchema,
267
297
  TikTokDraftSettingsSchema: () => TikTokDraftSettingsSchema,
268
298
  TikTokPostSettingsSchema: () => TikTokPostSettingsSchema,
269
299
  WhoAmIResponseSchema: () => WhoAmIResponseSchema,
300
+ WorkspaceListedMediaAssetSchema: () => WorkspaceListedMediaAssetSchema,
301
+ WorkspaceMediaAssetListDataSchema: () => WorkspaceMediaAssetListDataSchema,
302
+ WorkspaceMediaAssetListQuerySchema: () => WorkspaceMediaAssetListQuerySchema,
303
+ WorkspaceMediaAssetListResponseSchema: () => WorkspaceMediaAssetListResponseSchema,
270
304
  YouTubePostSettingsSchema: () => YouTubePostSettingsSchema,
271
305
  successEnvelopeSchema: () => successEnvelopeSchema
272
306
  });
273
307
  module.exports = __toCommonJS(index_exports);
274
308
  var import_zod = require("zod");
275
309
  var API_VERSION = "v1";
276
- var CONTRACT_VERSION = "0.18.0";
310
+ var CONTRACT_VERSION = "0.20.0";
277
311
  var RequestMetadataSchema = import_zod.z.object({
278
312
  requestId: import_zod.z.string().min(1)
279
313
  });
@@ -364,6 +398,8 @@ var CapabilityIdSchema = import_zod.z.enum([
364
398
  "posts:write",
365
399
  "posts:schedule",
366
400
  "posts:publish",
401
+ "storage:read",
402
+ "media:delete",
367
403
  "integrations:read",
368
404
  "calendar:read",
369
405
  "seo:read",
@@ -1064,22 +1100,49 @@ var MediaAssetSchema = import_zod.z.object({
1064
1100
  width: import_zod.z.number().int().positive().nullable(),
1065
1101
  height: import_zod.z.number().int().positive().nullable(),
1066
1102
  durationMs: import_zod.z.number().int().nonnegative().nullable(),
1067
- createdAt: import_zod.z.string().datetime()
1103
+ createdAt: import_zod.z.string().datetime(),
1104
+ usageCount: import_zod.z.number().int().nonnegative().optional(),
1105
+ deletable: import_zod.z.boolean().optional(),
1106
+ blockedReason: import_zod.z.enum(["IN_USE"]).nullable().optional(),
1107
+ projectId: import_zod.z.string().min(1).optional(),
1108
+ projectName: import_zod.z.string().min(1).max(200).optional()
1109
+ });
1110
+ var ListedMediaAssetSchema = MediaAssetSchema.extend({
1111
+ usageCount: import_zod.z.number().int().nonnegative(),
1112
+ deletable: import_zod.z.boolean(),
1113
+ blockedReason: import_zod.z.enum(["IN_USE"]).nullable()
1114
+ });
1115
+ var WorkspaceListedMediaAssetSchema = ListedMediaAssetSchema.extend({
1116
+ projectId: import_zod.z.string().min(1),
1117
+ projectName: import_zod.z.string().min(1).max(200)
1068
1118
  });
1119
+ var OptionalBooleanQuerySchema = import_zod.z.union([
1120
+ import_zod.z.boolean(),
1121
+ import_zod.z.enum(["true", "false"]).transform((value) => value === "true")
1122
+ ]);
1069
1123
  var MediaAssetListQuerySchema = import_zod.z.object({
1070
1124
  limit: import_zod.z.coerce.number().int().min(1).max(100).default(50),
1071
- cursor: import_zod.z.string().min(1).optional(),
1125
+ cursor: import_zod.z.string().min(1).max(2048).optional(),
1072
1126
  type: import_zod.z.enum(["IMAGE", "VIDEO"]).optional(),
1073
- query: import_zod.z.string().trim().min(1).max(100).optional()
1127
+ query: import_zod.z.string().trim().min(1).max(100).optional(),
1128
+ createdBefore: import_zod.z.string().datetime({ offset: true }).optional(),
1129
+ createdAfter: import_zod.z.string().datetime({ offset: true }).optional(),
1130
+ unusedOnly: OptionalBooleanQuerySchema.optional(),
1131
+ order: import_zod.z.enum(["OLDEST_FIRST", "NEWEST_FIRST"]).default("NEWEST_FIRST")
1074
1132
  });
1133
+ var WorkspaceMediaAssetListQuerySchema = MediaAssetListQuerySchema;
1075
1134
  var MediaAssetListDataSchema = import_zod.z.object({
1076
- items: import_zod.z.array(MediaAssetSchema),
1135
+ items: import_zod.z.array(ListedMediaAssetSchema),
1077
1136
  page: import_zod.z.object({
1078
1137
  limit: import_zod.z.number().int().min(1).max(100),
1079
1138
  nextCursor: import_zod.z.string().min(1).nullable()
1080
1139
  })
1081
1140
  });
1082
1141
  var MediaAssetListResponseSchema = successEnvelopeSchema(MediaAssetListDataSchema);
1142
+ var WorkspaceMediaAssetListDataSchema = MediaAssetListDataSchema.extend({
1143
+ items: import_zod.z.array(WorkspaceListedMediaAssetSchema)
1144
+ });
1145
+ var WorkspaceMediaAssetListResponseSchema = successEnvelopeSchema(WorkspaceMediaAssetListDataSchema);
1083
1146
  var MediaAssetUploadInputSchema = import_zod.z.object({
1084
1147
  fileName: import_zod.z.string().trim().min(1).max(255),
1085
1148
  contentType: import_zod.z.string().trim().min(1).max(100),
@@ -1100,6 +1163,166 @@ var MediaAssetUploadCompleteInputSchema = MediaAssetUploadInputSchema.extend({
1100
1163
  durationMs: import_zod.z.number().int().nonnegative().max(864e5).nullable().optional()
1101
1164
  }).strict();
1102
1165
  var MediaAssetResponseSchema = successEnvelopeSchema(MediaAssetSchema);
1166
+ var StorageByteCountSchema = import_zod.z.number().int().nonnegative().max(Number.MAX_SAFE_INTEGER);
1167
+ var StorageSourceBreakdownSchema = import_zod.z.object({
1168
+ mediaLibraryOriginalBytes: StorageByteCountSchema,
1169
+ transformedSocialMediaBytes: StorageByteCountSchema,
1170
+ blogImageBytes: StorageByteCountSchema,
1171
+ detachedPendingDeletionBytes: StorageByteCountSchema
1172
+ });
1173
+ var StorageUsageSchema = import_zod.z.object({
1174
+ storedBytes: StorageByteCountSchema,
1175
+ reservedUploadBytes: StorageByteCountSchema,
1176
+ uploadCommittedBytes: StorageByteCountSchema,
1177
+ limitBytes: StorageByteCountSchema.nullable(),
1178
+ availableUploadBytes: StorageByteCountSchema.nullable(),
1179
+ storedPercent: import_zod.z.number().finite().nonnegative().nullable(),
1180
+ uploadCommittedPercent: import_zod.z.number().finite().nonnegative().nullable(),
1181
+ unlimited: import_zod.z.boolean(),
1182
+ pendingDeletionBytes: StorageByteCountSchema,
1183
+ sources: StorageSourceBreakdownSchema,
1184
+ measuredAt: import_zod.z.string().datetime()
1185
+ });
1186
+ var StorageUsageResponseSchema = successEnvelopeSchema(StorageUsageSchema);
1187
+ var MediaCleanupScopeSchema = import_zod.z.discriminatedUnion("type", [
1188
+ import_zod.z.object({ type: import_zod.z.literal("PROJECT"), projectId: import_zod.z.string().min(1).max(200) }).strict(),
1189
+ import_zod.z.object({ type: import_zod.z.literal("WORKSPACE") }).strict()
1190
+ ]);
1191
+ var MediaCleanupAssetIdsSchema = import_zod.z.array(import_zod.z.string().min(1).max(200)).min(1).max(100).superRefine((ids, context) => {
1192
+ if (new Set(ids).size !== ids.length) {
1193
+ context.addIssue({ code: "custom", message: "Asset IDs must be unique." });
1194
+ }
1195
+ });
1196
+ var MediaCleanupSelectionInputSchema = import_zod.z.discriminatedUnion("mode", [
1197
+ import_zod.z.object({
1198
+ mode: import_zod.z.literal("ASSET_IDS"),
1199
+ scope: MediaCleanupScopeSchema,
1200
+ assetIds: MediaCleanupAssetIdsSchema
1201
+ }).strict(),
1202
+ import_zod.z.object({
1203
+ mode: import_zod.z.literal("FILTER"),
1204
+ scope: MediaCleanupScopeSchema,
1205
+ createdBefore: import_zod.z.string().datetime({ offset: true }).optional(),
1206
+ olderThanDays: import_zod.z.number().int().min(1).max(3650).optional(),
1207
+ type: import_zod.z.enum(["IMAGE", "VIDEO"]).optional(),
1208
+ query: import_zod.z.string().trim().min(1).max(100).optional()
1209
+ }).strict().superRefine((selection, context) => {
1210
+ if (Number(Boolean(selection.createdBefore)) + Number(selection.olderThanDays !== void 0) !== 1) {
1211
+ context.addIssue({ code: "custom", message: "Choose exactly one upload-age filter." });
1212
+ }
1213
+ })
1214
+ ]);
1215
+ var NormalizedMediaCleanupSelectionSchema = import_zod.z.discriminatedUnion("mode", [
1216
+ import_zod.z.object({
1217
+ mode: import_zod.z.literal("ASSET_IDS"),
1218
+ scope: MediaCleanupScopeSchema,
1219
+ assetIds: MediaCleanupAssetIdsSchema
1220
+ }).strict(),
1221
+ import_zod.z.object({
1222
+ mode: import_zod.z.literal("FILTER"),
1223
+ scope: MediaCleanupScopeSchema,
1224
+ createdBefore: import_zod.z.string().datetime({ offset: true }),
1225
+ type: import_zod.z.enum(["IMAGE", "VIDEO"]).optional(),
1226
+ query: import_zod.z.string().trim().min(1).max(100).optional()
1227
+ }).strict()
1228
+ ]);
1229
+ var MediaCleanupPreviewRequestSchema = import_zod.z.object({
1230
+ selection: MediaCleanupSelectionInputSchema
1231
+ }).strict();
1232
+ var MediaCleanupCandidateSchema = import_zod.z.object({
1233
+ id: import_zod.z.string().min(1),
1234
+ fileName: import_zod.z.string().min(1).max(255).nullable(),
1235
+ projectId: import_zod.z.string().min(1),
1236
+ projectName: import_zod.z.string().min(1).max(200),
1237
+ type: import_zod.z.enum(["IMAGE", "VIDEO"]),
1238
+ createdAt: import_zod.z.string().datetime(),
1239
+ sizeBytes: StorageByteCountSchema.nullable()
1240
+ });
1241
+ var MediaCleanupPreviewSchema = import_zod.z.object({
1242
+ selection: NormalizedMediaCleanupSelectionSchema,
1243
+ cutoffAt: import_zod.z.string().datetime().nullable(),
1244
+ candidateCount: import_zod.z.number().int().min(0).max(500),
1245
+ candidateIds: import_zod.z.array(import_zod.z.string().min(1)).max(500),
1246
+ candidates: import_zod.z.array(MediaCleanupCandidateSchema).max(500),
1247
+ estimatedReclaimableBytes: StorageByteCountSchema,
1248
+ excludedInUseCount: import_zod.z.number().int().min(0).max(Number.MAX_SAFE_INTEGER),
1249
+ excludedInUseBytes: StorageByteCountSchema,
1250
+ unknownSizeCount: import_zod.z.number().int().min(0).max(500),
1251
+ hasMore: import_zod.z.boolean(),
1252
+ candidateDigest: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
1253
+ confirmation: import_zod.z.object({
1254
+ token: import_zod.z.string().min(1).max(500),
1255
+ expiresAt: import_zod.z.string().datetime()
1256
+ })
1257
+ });
1258
+ var MediaCleanupPreviewResponseSchema = successEnvelopeSchema(MediaCleanupPreviewSchema);
1259
+ var MediaCleanupExecuteRequestSchema = import_zod.z.object({
1260
+ selection: NormalizedMediaCleanupSelectionSchema,
1261
+ candidateDigest: import_zod.z.string().regex(/^[a-f0-9]{64}$/),
1262
+ confirmationToken: import_zod.z.string().min(1).max(500)
1263
+ }).strict();
1264
+ var MediaCleanupOperationStatusSchema = import_zod.z.enum([
1265
+ "QUEUED",
1266
+ "RUNNING",
1267
+ "COMPLETED",
1268
+ "COMPLETED_WITH_SKIPS"
1269
+ ]);
1270
+ var MediaCleanupItemStatusSchema = import_zod.z.enum([
1271
+ "QUEUED",
1272
+ "RETRYING",
1273
+ "SKIPPED_IN_USE",
1274
+ "SKIPPED_CHANGED",
1275
+ "DELETED"
1276
+ ]);
1277
+ var MediaCleanupExecuteResultSchema = import_zod.z.object({
1278
+ cleanupId: import_zod.z.string().min(1),
1279
+ status: MediaCleanupOperationStatusSchema,
1280
+ candidateCount: import_zod.z.number().int().min(0).max(500),
1281
+ queuedCount: import_zod.z.number().int().min(0).max(500),
1282
+ skippedCount: import_zod.z.number().int().min(0).max(500),
1283
+ estimatedReclaimableBytes: StorageByteCountSchema
1284
+ });
1285
+ var MediaCleanupExecuteResponseSchema = successEnvelopeSchema(MediaCleanupExecuteResultSchema);
1286
+ var MediaCleanupStatusQuerySchema = import_zod.z.object({
1287
+ limit: import_zod.z.coerce.number().int().min(1).max(100).default(50),
1288
+ cursor: import_zod.z.string().min(1).max(2048).optional()
1289
+ });
1290
+ var MediaCleanupItemResultSchema = import_zod.z.object({
1291
+ id: import_zod.z.string().min(1),
1292
+ assetId: import_zod.z.string().min(1),
1293
+ fileName: import_zod.z.string().min(1).max(255).nullable(),
1294
+ projectId: import_zod.z.string().min(1),
1295
+ projectName: import_zod.z.string().min(1).max(200),
1296
+ type: import_zod.z.enum(["IMAGE", "VIDEO"]),
1297
+ sizeBytes: StorageByteCountSchema.nullable(),
1298
+ status: MediaCleanupItemStatusSchema,
1299
+ queuedAt: import_zod.z.string().datetime().nullable(),
1300
+ retryingAt: import_zod.z.string().datetime().nullable(),
1301
+ skippedAt: import_zod.z.string().datetime().nullable(),
1302
+ deletedAt: import_zod.z.string().datetime().nullable(),
1303
+ failureSummary: import_zod.z.string().min(1).max(500).nullable()
1304
+ });
1305
+ var MediaCleanupStatusSchema = import_zod.z.object({
1306
+ cleanupId: import_zod.z.string().min(1),
1307
+ status: MediaCleanupOperationStatusSchema,
1308
+ candidateCount: import_zod.z.number().int().min(0).max(500),
1309
+ queuedCount: import_zod.z.number().int().min(0).max(500),
1310
+ retryingCount: import_zod.z.number().int().min(0).max(500),
1311
+ skippedCount: import_zod.z.number().int().min(0).max(500),
1312
+ deletedCount: import_zod.z.number().int().min(0).max(500),
1313
+ unknownSizeCount: import_zod.z.number().int().min(0).max(500),
1314
+ estimatedReclaimableBytes: StorageByteCountSchema,
1315
+ actualReleasedBytes: StorageByteCountSchema,
1316
+ createdAt: import_zod.z.string().datetime(),
1317
+ startedAt: import_zod.z.string().datetime().nullable(),
1318
+ completedAt: import_zod.z.string().datetime().nullable(),
1319
+ items: import_zod.z.array(MediaCleanupItemResultSchema).max(100),
1320
+ page: import_zod.z.object({
1321
+ limit: import_zod.z.number().int().min(1).max(100),
1322
+ nextCursor: import_zod.z.string().min(1).max(2048).nullable()
1323
+ })
1324
+ });
1325
+ var MediaCleanupStatusResponseSchema = successEnvelopeSchema(MediaCleanupStatusSchema);
1103
1326
  var PublishingProviderSchema = import_zod.z.enum([
1104
1327
  "INSTAGRAM",
1105
1328
  "TIKTOK",
@@ -1131,6 +1354,9 @@ var PostDestinationSchema = import_zod.z.object({
1131
1354
  scheduledAt: import_zod.z.string().datetime().nullable(),
1132
1355
  publishedAt: import_zod.z.string().datetime().nullable(),
1133
1356
  remoteUrl: import_zod.z.string().url().nullable(),
1357
+ remotePostId: import_zod.z.string().nullable().optional(),
1358
+ remoteContainerId: import_zod.z.string().nullable().optional(),
1359
+ studioUrl: import_zod.z.string().url().nullable().optional(),
1134
1360
  attemptCount: import_zod.z.number().int().nonnegative()
1135
1361
  });
1136
1362
  var TikTokPostSettingsSchema = import_zod.z.object({
@@ -2073,6 +2299,61 @@ var BacklinkContactSchema = import_zod.z.object({
2073
2299
  var BacklinkContactListDataSchema = import_zod.z.object({ items: import_zod.z.array(BacklinkContactSchema).max(50), page: import_zod.z.object({ limit: import_zod.z.number().int().min(1).max(50), nextCursor: SeoCursorSchema.nullable() }).strict() }).strict();
2074
2300
  var BacklinkContactListQuerySchema = import_zod.z.object({ limit: import_zod.z.coerce.number().int().min(1).max(50).default(20), cursor: SeoCursorSchema.optional() }).strict();
2075
2301
  var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactListDataSchema);
2302
+ var PostDeliveryCheckInputSchema = import_zod.z.object({ provider: PublishingProviderSchema }).strict();
2303
+ var PostDeliveryCheckResultSchema = import_zod.z.object({
2304
+ postId: import_zod.z.string().min(1),
2305
+ provider: PublishingProviderSchema,
2306
+ kind: import_zod.z.enum(["PUBLISHED", "SCHEDULED", "PROCESSING", "ACTION_REQUIRED", "UNKNOWN", "BUSY"]),
2307
+ message: import_zod.z.string(),
2308
+ version: import_zod.z.number().int().positive(),
2309
+ remotePostId: import_zod.z.string().nullable(),
2310
+ remoteContainerId: import_zod.z.string().nullable(),
2311
+ studioUrl: import_zod.z.string().url().nullable()
2312
+ });
2313
+ var PostDeliveryCheckResponseSchema = successEnvelopeSchema(PostDeliveryCheckResultSchema);
2314
+ var PostRecoveryInputSchema = import_zod.z.object({
2315
+ provider: import_zod.z.literal("YOUTUBE"),
2316
+ action: import_zod.z.enum(["ATTACH", "RESUME"]),
2317
+ videoId: import_zod.z.string().regex(/^[\w-]{11}$/),
2318
+ publishAt: import_zod.z.string().datetime({ offset: true }).nullable().optional()
2319
+ }).strict().superRefine((input, context) => {
2320
+ if (input.action === "RESUME" && input.publishAt === void 0) {
2321
+ context.addIssue({ code: "custom", path: ["publishAt"], message: "RESUME requires a future time or explicit null to publish now." });
2322
+ }
2323
+ if (input.action === "ATTACH" && input.publishAt !== void 0) {
2324
+ context.addIssue({ code: "custom", path: ["publishAt"], message: "Attachment cannot change publication time." });
2325
+ }
2326
+ });
2327
+ var PostRecoveryExecuteInputSchema = PostRecoveryInputSchema.safeExtend({
2328
+ confirmationToken: import_zod.z.string().trim().min(1).max(200)
2329
+ });
2330
+ var PostRecoveryPreviewSchema = import_zod.z.object({
2331
+ operation: import_zod.z.literal("posts.recovery.execute"),
2332
+ projectId: import_zod.z.string().min(1),
2333
+ postId: import_zod.z.string().min(1),
2334
+ provider: import_zod.z.literal("YOUTUBE"),
2335
+ action: import_zod.z.enum(["ATTACH", "RESUME"]),
2336
+ videoId: import_zod.z.string(),
2337
+ publishAt: import_zod.z.string().datetime({ offset: true }).nullable().optional(),
2338
+ version: import_zod.z.number().int().positive(),
2339
+ title: import_zod.z.string(),
2340
+ description: import_zod.z.string(),
2341
+ channel: import_zod.z.string().nullable(),
2342
+ accountId: import_zod.z.string(),
2343
+ privacy: import_zod.z.string(),
2344
+ consequence: import_zod.z.string(),
2345
+ confirmation: import_zod.z.object({ token: import_zod.z.string().min(1), expiresAt: import_zod.z.string().datetime() })
2346
+ });
2347
+ var PostRecoveryPreviewResponseSchema = successEnvelopeSchema(PostRecoveryPreviewSchema);
2348
+ var PostRecoveryResultSchema = import_zod.z.object({
2349
+ postId: import_zod.z.string().min(1),
2350
+ provider: import_zod.z.literal("YOUTUBE"),
2351
+ action: import_zod.z.enum(["ATTACH", "RESUME"]),
2352
+ videoId: import_zod.z.string(),
2353
+ kind: import_zod.z.enum(["ATTACHED", "QUEUED", "PUBLISHED"]),
2354
+ version: import_zod.z.number().int().positive()
2355
+ });
2356
+ var PostRecoveryResponseSchema = successEnvelopeSchema(PostRecoveryResultSchema);
2076
2357
  // Annotate the CommonJS export names for ESM import in node:
2077
2358
  0 && (module.exports = {
2078
2359
  AGENT_CAPABILITIES,
@@ -2237,6 +2518,7 @@ var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactLis
2237
2518
  IntegrationHealthListResponseSchema,
2238
2519
  IntegrationHealthSchema,
2239
2520
  LinkedInDeliveryOptionsSchema,
2521
+ ListedMediaAssetSchema,
2240
2522
  MediaAssetListDataSchema,
2241
2523
  MediaAssetListQuerySchema,
2242
2524
  MediaAssetListResponseSchema,
@@ -2246,8 +2528,27 @@ var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactLis
2246
2528
  MediaAssetUploadInputSchema,
2247
2529
  MediaAssetUploadPreparationResponseSchema,
2248
2530
  MediaAssetUploadPreparationSchema,
2531
+ MediaCleanupCandidateSchema,
2532
+ MediaCleanupExecuteRequestSchema,
2533
+ MediaCleanupExecuteResponseSchema,
2534
+ MediaCleanupExecuteResultSchema,
2535
+ MediaCleanupItemResultSchema,
2536
+ MediaCleanupItemStatusSchema,
2537
+ MediaCleanupOperationStatusSchema,
2538
+ MediaCleanupPreviewRequestSchema,
2539
+ MediaCleanupPreviewResponseSchema,
2540
+ MediaCleanupPreviewSchema,
2541
+ MediaCleanupScopeSchema,
2542
+ MediaCleanupSelectionInputSchema,
2543
+ MediaCleanupStatusQuerySchema,
2544
+ MediaCleanupStatusResponseSchema,
2545
+ MediaCleanupStatusSchema,
2546
+ NormalizedMediaCleanupSelectionSchema,
2249
2547
  PUBLISHING_PROVIDER_COUNT,
2250
2548
  PlatformPostStatusSchema,
2549
+ PostDeliveryCheckInputSchema,
2550
+ PostDeliveryCheckResponseSchema,
2551
+ PostDeliveryCheckResultSchema,
2251
2552
  PostDeliveryModeSchema,
2252
2553
  PostDestinationSchema,
2253
2554
  PostDestinationStageSchema,
@@ -2263,6 +2564,12 @@ var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactLis
2263
2564
  PostReadinessCheckSchema,
2264
2565
  PostReadinessResponseSchema,
2265
2566
  PostReadinessSchema,
2567
+ PostRecoveryExecuteInputSchema,
2568
+ PostRecoveryInputSchema,
2569
+ PostRecoveryPreviewResponseSchema,
2570
+ PostRecoveryPreviewSchema,
2571
+ PostRecoveryResponseSchema,
2572
+ PostRecoveryResultSchema,
2266
2573
  PostResponseSchema,
2267
2574
  PostScheduleExecuteInputSchema,
2268
2575
  PostScheduleExecuteResponseSchema,
@@ -2318,10 +2625,18 @@ var BacklinkContactListResponseSchema = successEnvelopeSchema(BacklinkContactLis
2318
2625
  SeoSearchIntentSchema,
2319
2626
  SeoTaskDecisionSchema,
2320
2627
  SeoTaskFormatSchema,
2628
+ StorageByteCountSchema,
2629
+ StorageSourceBreakdownSchema,
2630
+ StorageUsageResponseSchema,
2631
+ StorageUsageSchema,
2321
2632
  TikTokDeliveryOptionsSchema,
2322
2633
  TikTokDraftSettingsSchema,
2323
2634
  TikTokPostSettingsSchema,
2324
2635
  WhoAmIResponseSchema,
2636
+ WorkspaceListedMediaAssetSchema,
2637
+ WorkspaceMediaAssetListDataSchema,
2638
+ WorkspaceMediaAssetListQuerySchema,
2639
+ WorkspaceMediaAssetListResponseSchema,
2325
2640
  YouTubePostSettingsSchema,
2326
2641
  successEnvelopeSchema
2327
2642
  });