@productmaker/mcp 12.4.0 → 12.4.1

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.
Files changed (3) hide show
  1. package/dist/http.js +490 -527
  2. package/dist/stdio.js +490 -527
  3. package/package.json +3 -3
package/dist/stdio.js CHANGED
@@ -156,7 +156,7 @@ var FrankensteinSourceProviderSchema = z2.enum([
156
156
  "meta",
157
157
  "upload"
158
158
  ]);
159
- var FrankensteinSourceUploadIdSchema = z2.string().uuid();
159
+ var FrankensteinSourceUploadIdSchema = z2.string().guid();
160
160
  var FrankensteinSourceUploadPresignRequestSchema = z2.object({
161
161
  fileName: z2.string().trim().min(1).max(255),
162
162
  contentType: z2.enum([
@@ -3957,8 +3957,8 @@ var AiEditJobSchema = z5.object({
3957
3957
  tier: AiEditTierSchema.default(DEFAULT_AI_EDIT_TIER),
3958
3958
  /** Explicit false suppresses generated music; absent keeps the legacy default. */
3959
3959
  music: z5.boolean().optional(),
3960
- editId: z5.string().uuid(),
3961
- taskId: z5.string().uuid(),
3960
+ editId: z5.string().guid(),
3961
+ taskId: z5.string().guid(),
3962
3962
  angleKey: z5.string().min(1),
3963
3963
  sourceVideoUrl: z5.string().url(),
3964
3964
  /** Medidas del video entregado (Grok 480p/720p también existen). */
@@ -4284,7 +4284,7 @@ var ProductReferencePreviewSchema = z9.object({
4284
4284
  isAuthoritative: z9.boolean()
4285
4285
  });
4286
4286
  var ApprovedProductReferencesSchema = z9.object({
4287
- scopeSnapshotId: z9.string().uuid(),
4287
+ scopeSnapshotId: z9.string().guid(),
4288
4288
  scopeHash: z9.string().min(1).max(128),
4289
4289
  previews: z9.array(ProductReferencePreviewSchema).min(1)
4290
4290
  });
@@ -4296,8 +4296,8 @@ var ProductReferencePendingActionSchema = z9.object({
4296
4296
  ]).default("final"),
4297
4297
  scope: ProductReferenceScopeSchema,
4298
4298
  scopeKey: z9.string().min(1).max(120),
4299
- referenceVersionId: z9.string().uuid(),
4300
- scopeSnapshotId: z9.string().uuid(),
4299
+ referenceVersionId: z9.string().guid(),
4300
+ scopeSnapshotId: z9.string().guid(),
4301
4301
  baseReferenceSetHash: z9.string().min(1).max(128),
4302
4302
  scopeHash: z9.string().min(1).max(128),
4303
4303
  approvedRefKeys: z9.array(z9.string().min(1).max(200)).min(1),
@@ -4338,7 +4338,7 @@ var ResolutionEnvelopeSchema = z9.object({
4338
4338
  expectedScopeHash: z9.string().min(1).max(128),
4339
4339
  scope: ProductReferenceScopeSchema,
4340
4340
  scopeKey: z9.string().min(1).max(120),
4341
- scopeSnapshotId: z9.string().uuid()
4341
+ scopeSnapshotId: z9.string().guid()
4342
4342
  });
4343
4343
  var ResolveProductReferenceSetRequestSchema = z9.discriminatedUnion("decision", [
4344
4344
  ResolutionEnvelopeSchema.extend({
@@ -4388,8 +4388,8 @@ var ResolveProductReferenceSetRequestSchema = z9.discriminatedUnion("decision",
4388
4388
  });
4389
4389
  var ResolveProductReferenceSetResponseSchema = z9.object({
4390
4390
  success: z9.literal(true),
4391
- taskId: z9.string().uuid(),
4392
- resolutionId: z9.string().uuid(),
4391
+ taskId: z9.string().guid(),
4392
+ resolutionId: z9.string().guid(),
4393
4393
  decision: ProductReferenceResolutionDecisionSchema
4394
4394
  });
4395
4395
  var ProductReferenceResolutionSchema = z9.object({
@@ -4427,7 +4427,7 @@ var ReferencePreparationPlanSchema = z9.object({
4427
4427
  reusableOutputs: z9.array(z9.object({
4428
4428
  outputKey: z9.string().min(1).max(200),
4429
4429
  refKey: z9.string().min(1).max(200),
4430
- sourceSnapshotId: z9.string().uuid()
4430
+ sourceSnapshotId: z9.string().guid()
4431
4431
  })),
4432
4432
  execution: z9.object({
4433
4433
  inputKeys: z9.array(z9.string().min(1)),
@@ -4963,7 +4963,7 @@ var ProductPhysicalDetails = z10.object({
4963
4963
  contentAppearance: z10.string().optional()
4964
4964
  });
4965
4965
  var Product = z10.object({
4966
- id: z10.string().uuid().optional(),
4966
+ id: z10.string().guid().optional(),
4967
4967
  title: z10.string(),
4968
4968
  url: z10.string().optional(),
4969
4969
  // Free-video tasks intentionally skip product extraction and may have no
@@ -6031,7 +6031,7 @@ var LandingImageReadable = z15.object({
6031
6031
  */
6032
6032
  index: z15.number().int().min(1).max(20),
6033
6033
  /** Child task that owns this image when variants are rendered alongside the root task. */
6034
- variantTaskId: z15.string().uuid().optional(),
6034
+ variantTaskId: z15.string().guid().optional(),
6035
6035
  /**
6036
6036
  * The image's own `indexNum` within its OWN task (root or variant) — set
6037
6037
  * once at render time and never recomputed. Unlike `index`, this is stable
@@ -6234,7 +6234,7 @@ var JsonValueSchema = z16.lazy(() => z16.union([
6234
6234
  z16.boolean(),
6235
6235
  z16.null(),
6236
6236
  z16.array(JsonValueSchema),
6237
- z16.custom(isPlainJsonRecord, "content objects must be plain JSON records").pipe(z16.record(JsonValueSchema))
6237
+ z16.custom(isPlainJsonRecord, "content objects must be plain JSON records").pipe(z16.record(z16.string(), JsonValueSchema))
6238
6238
  ]));
6239
6239
  var CodeLandingRecipeSelectionSchema = z16.object({
6240
6240
  blockId: z16.string().trim().min(1),
@@ -6693,7 +6693,7 @@ var PresignUploadResponse = z19.object({
6693
6693
  /** Present only for purpose=service. */
6694
6694
  assetToken: z19.string().min(1).optional(),
6695
6695
  /** Present only for purpose=meta_staging. */
6696
- stagingAssetId: z19.string().uuid().optional()
6696
+ stagingAssetId: z19.string().guid().optional()
6697
6697
  });
6698
6698
  var MetaUploadMediaKind = z19.enum([
6699
6699
  "image",
@@ -6703,7 +6703,7 @@ var MetaUploadMediaKind = z19.enum([
6703
6703
  var META_UPLOAD_MAX_FILES = CAMPAIGN_LIMITS.MAX_CREATIVES;
6704
6704
  var META_UPLOAD_IMAGE_MAX_FILES = 5;
6705
6705
  var MetaUploadAssetSummary = z19.object({
6706
- stagingAssetId: z19.string().uuid(),
6706
+ stagingAssetId: z19.string().guid(),
6707
6707
  mediaKind: MediaKind
6708
6708
  }).strict();
6709
6709
  var MetaCampaignType = z19.enum([
@@ -6711,7 +6711,7 @@ var MetaCampaignType = z19.enum([
6711
6711
  "traffic",
6712
6712
  "engagement"
6713
6713
  ]);
6714
- var MetaPublishAttemptId = z19.string().uuid();
6714
+ var MetaPublishAttemptId = z19.string().guid();
6715
6715
  var MetaOptimizationMode = z19.enum([
6716
6716
  "advantage_plus",
6717
6717
  "manual"
@@ -6784,14 +6784,14 @@ var ResolveMetaUploadSessionRequest = z19.object({
6784
6784
  /** Opaque signed token embedded in the one-click upload page URL. */
6785
6785
  token: z19.string().min(1).max(4096),
6786
6786
  /** Stable browser-generated id so failed PUT retries reuse the same slot. */
6787
- uploadId: z19.string().uuid().optional(),
6787
+ uploadId: z19.string().guid().optional(),
6788
6788
  /** Browser-selected metadata; the API checks it against the session kind/role. */
6789
6789
  contentType: z19.enum(META_STAGING_CONTENT_TYPES),
6790
6790
  fileName: z19.string().min(1).max(255),
6791
6791
  fileSize: z19.number().int().positive().max(CAMPAIGN_LIMITS.MAX_FILE_SIZE_BYTES)
6792
6792
  }).strict();
6793
6793
  var MetaUploadSessionResponse = z19.object({
6794
- sessionId: z19.string().uuid(),
6794
+ sessionId: z19.string().guid(),
6795
6795
  uploadPageUrl: HttpUrl,
6796
6796
  mediaKind: MetaUploadMediaKind,
6797
6797
  assetRole: z19.enum([
@@ -6803,18 +6803,18 @@ var MetaUploadSessionResponse = z19.object({
6803
6803
  }).strict();
6804
6804
  var ResolveMetaUploadSessionResponse = z19.object({
6805
6805
  uploadUrl: z19.string().url(),
6806
- stagingAssetId: z19.string().uuid(),
6806
+ stagingAssetId: z19.string().guid(),
6807
6807
  expiresAt: z19.string().datetime()
6808
6808
  }).strict();
6809
6809
  var MetaUploadSessionStatusResponse = z19.object({
6810
- sessionId: z19.string().uuid(),
6810
+ sessionId: z19.string().guid(),
6811
6811
  status: z19.enum([
6812
6812
  "pending",
6813
6813
  "uploaded"
6814
6814
  ]),
6815
6815
  assets: z19.array(MetaUploadAssetSummary).max(META_UPLOAD_MAX_FILES),
6816
6816
  /** Legacy single-file response field retained for older callers. */
6817
- stagingAssetId: z19.string().uuid().optional()
6817
+ stagingAssetId: z19.string().guid().optional()
6818
6818
  }).strict();
6819
6819
  var MetaAdAccountId = z19.string().trim().min(1, "Debes seleccionar una cuenta publicitaria").transform((value) => /^\d+$/.test(value) ? `act_${value}` : value).refine((value) => /^act_\d+$/.test(value), {
6820
6820
  message: 'adAccountId must look like "act_1234567890" (a bare numeric id is also accepted)'
@@ -6894,6 +6894,33 @@ var MetaCampaignDefaults = MetaCampaignConfigBase.omit({
6894
6894
  */
6895
6895
  currency: z19.string().length(3).regex(/^[A-Z]{3}$/).nullable().optional()
6896
6896
  });
6897
+ function refineMetaCreativeSources(value, ctx) {
6898
+ value.creatives.forEach((creative, index) => {
6899
+ if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
6900
+ ctx.addIssue({
6901
+ code: z19.ZodIssueCode.custom,
6902
+ path: [
6903
+ "creatives",
6904
+ index,
6905
+ "mediaUrl"
6906
+ ],
6907
+ message: "Provide exactly one of mediaUrl or mediaAssetId"
6908
+ });
6909
+ }
6910
+ if (creative.thumbnailUrl && creative.thumbnailAssetId) {
6911
+ ctx.addIssue({
6912
+ code: z19.ZodIssueCode.custom,
6913
+ path: [
6914
+ "creatives",
6915
+ index,
6916
+ "thumbnailUrl"
6917
+ ],
6918
+ message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
6919
+ });
6920
+ }
6921
+ });
6922
+ }
6923
+ __name(refineMetaCreativeSources, "refineMetaCreativeSources");
6897
6924
  var UploadToMetaRequest = z19.object({
6898
6925
  /** Caller-owned retry fence. Required before any provider operation. */
6899
6926
  publishAttemptId: MetaPublishAttemptId,
@@ -6907,7 +6934,7 @@ var UploadToMetaRequest = z19.object({
6907
6934
  /** Legacy public URL; new Meta flows should use mediaAssetId. */
6908
6935
  mediaUrl: HttpUrl.optional(),
6909
6936
  /** Owner-scoped temporary asset created by the Meta staging upload flow. */
6910
- mediaAssetId: z19.string().uuid().optional(),
6937
+ mediaAssetId: z19.string().guid().optional(),
6911
6938
  /**
6912
6939
  * Public URL of an extracted thumbnail. Required for video ads — Meta
6913
6940
  * rejects video ad creatives without `image_hash`/`image_url` in
@@ -6916,7 +6943,7 @@ var UploadToMetaRequest = z19.object({
6916
6943
  */
6917
6944
  thumbnailUrl: HttpUrl.optional(),
6918
6945
  /** Owner-scoped temporary thumbnail created by the Meta staging upload flow. */
6919
- thumbnailAssetId: z19.string().uuid().optional()
6946
+ thumbnailAssetId: z19.string().guid().optional()
6920
6947
  })).min(1).max(CAMPAIGN_LIMITS.MAX_CREATIVES),
6921
6948
  /** Meta Ad Account ID */
6922
6949
  adAccountId: MetaAdAccountId,
@@ -6943,30 +6970,7 @@ var UploadToMetaRequest = z19.object({
6943
6970
  message: "landingUrl is required for landing destinations"
6944
6971
  });
6945
6972
  }
6946
- value.creatives.forEach((creative, index) => {
6947
- if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
6948
- ctx.addIssue({
6949
- code: z19.ZodIssueCode.custom,
6950
- path: [
6951
- "creatives",
6952
- index,
6953
- "mediaUrl"
6954
- ],
6955
- message: "Provide exactly one of mediaUrl or mediaAssetId"
6956
- });
6957
- }
6958
- if (creative.thumbnailUrl && creative.thumbnailAssetId) {
6959
- ctx.addIssue({
6960
- code: z19.ZodIssueCode.custom,
6961
- path: [
6962
- "creatives",
6963
- index,
6964
- "thumbnailUrl"
6965
- ],
6966
- message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
6967
- });
6968
- }
6969
- });
6973
+ refineMetaCreativeSources(value, ctx);
6970
6974
  });
6971
6975
  var CampaignLifetimeMetricsSchema = z19.object({
6972
6976
  spend: z19.number().nonnegative(),
@@ -7004,13 +7008,13 @@ var Revision = z20.number().finite().int().nonnegative();
7004
7008
  var ClassicLandingBlockSchema = z20.discriminatedUnion("kind", [
7005
7009
  z20.object({
7006
7010
  kind: z20.literal("image"),
7007
- ownerTaskId: z20.string().uuid(),
7011
+ ownerTaskId: z20.string().guid(),
7008
7012
  sourceIndex: z20.number().int().positive()
7009
7013
  }).strict(),
7010
7014
  z20.object({
7011
7015
  kind: z20.literal("gif"),
7012
- ownerTaskId: z20.string().uuid(),
7013
- gifId: z20.string().uuid()
7016
+ ownerTaskId: z20.string().guid(),
7017
+ gifId: z20.string().guid()
7014
7018
  }).strict()
7015
7019
  ]);
7016
7020
  function classicLandingBlockId(block) {
@@ -7033,17 +7037,17 @@ var Blocks = z20.array(ClassicLandingBlockSchema).max(100).superRefine((blocks,
7033
7037
  });
7034
7038
  var ClassicLandingDocumentSchema = z20.object({
7035
7039
  version: z20.literal(1),
7036
- ownerTaskId: z20.string().uuid(),
7040
+ ownerTaskId: z20.string().guid(),
7037
7041
  revision: Revision,
7038
7042
  blocks: Blocks
7039
7043
  }).strict();
7040
7044
  var LandingGifBlockSelectionSchema = z20.object({
7041
- ownerTaskId: z20.string().uuid(),
7042
- gifId: z20.string().uuid(),
7045
+ ownerTaskId: z20.string().guid(),
7046
+ gifId: z20.string().guid(),
7043
7047
  gifRevision: Revision
7044
7048
  }).strict();
7045
7049
  var ClassicLandingImageSelectionSchema = z20.object({
7046
- ownerTaskId: z20.string().uuid(),
7050
+ ownerTaskId: z20.string().guid(),
7047
7051
  sourceIndex: z20.number().int().positive(),
7048
7052
  variantIndex: z20.number().int().nonnegative()
7049
7053
  }).strict();
@@ -7094,7 +7098,7 @@ var ClassicLandingBlockMutationSchema = z20.object({
7094
7098
  blocks: Blocks
7095
7099
  }).strict();
7096
7100
  var LandingGifVisibilityMutationSchema = z20.object({
7097
- gifId: z20.string().uuid(),
7101
+ gifId: z20.string().guid(),
7098
7102
  expectedGifRevision: Revision,
7099
7103
  expectedDocumentRevision: Revision,
7100
7104
  action: z20.enum([
@@ -7880,7 +7884,7 @@ var CodeLandingProvenanceSchema = z23.object({
7880
7884
  editorGifOwnership: z23.object({
7881
7885
  version: z23.literal(1),
7882
7886
  source: z23.object({
7883
- ownerTaskId: z23.string().uuid(),
7887
+ ownerTaskId: z23.string().guid(),
7884
7888
  gifRevision: z23.number().int().nonnegative(),
7885
7889
  contentHash: z23.string().regex(/^[a-f0-9]{64}$/),
7886
7890
  posterHash: z23.string().regex(/^[a-f0-9]{64}$/)
@@ -7888,7 +7892,7 @@ var CodeLandingProvenanceSchema = z23.object({
7888
7892
  }).strict().optional(),
7889
7893
  mode: LandingDocumentModeSchema,
7890
7894
  strategyVersion: z23.string().min(1).max(60),
7891
- sourceTaskId: z23.string().uuid().optional(),
7895
+ sourceTaskId: z23.string().guid().optional(),
7892
7896
  winnerSourceUrl: CodeLandingUrlSchema.optional(),
7893
7897
  notes: z23.array(z23.string().max(240)).max(16),
7894
7898
  /**
@@ -8320,8 +8324,8 @@ var QuotedLandingEditRequest = z23.object({
8320
8324
  "full"
8321
8325
  ]),
8322
8326
  attachmentIds: z23.array(CodeLandingIdSchema).max(4).default([]),
8323
- quoteId: z23.string().uuid(),
8324
- idempotencyKey: z23.string().uuid()
8327
+ quoteId: z23.string().guid(),
8328
+ idempotencyKey: z23.string().guid()
8325
8329
  });
8326
8330
  var CreateLandingEditRequest = z23.union([
8327
8331
  QuotedLandingEditRequest,
@@ -8401,7 +8405,7 @@ var LandingEditDto = z23.object({
8401
8405
  costCents: z23.number(),
8402
8406
  error: z23.string().nullable(),
8403
8407
  createdAt: z23.string(),
8404
- operationId: z23.string().uuid().nullable().optional(),
8408
+ operationId: z23.string().guid().nullable().optional(),
8405
8409
  expectedRevision: z23.number().int().nonnegative().optional(),
8406
8410
  appliedRevision: z23.number().int().positive().nullable().optional(),
8407
8411
  refundStatus: z23.enum([
@@ -8416,10 +8420,10 @@ var LandingEditDto = z23.object({
8416
8420
  commerceReconciliation: CommerceReconciliationSchema.nullable().optional(),
8417
8421
  delivery: z23.lazy(() => LandingEditDeliverySchema).optional(),
8418
8422
  /** Photos the seller attached to this message (see LandingEditAttachmentDto). */
8419
- attachmentIds: z23.array(z23.string().uuid()).max(4).optional()
8423
+ attachmentIds: z23.array(z23.string().guid()).max(4).optional()
8420
8424
  });
8421
8425
  var LandingEditAttachmentDto = z23.object({
8422
- id: z23.string().uuid(),
8426
+ id: z23.string().guid(),
8423
8427
  url: z23.string().url(),
8424
8428
  width: z23.number().int().positive().nullable(),
8425
8429
  height: z23.number().int().positive().nullable()
@@ -8445,12 +8449,12 @@ var LandingEditQuoteRequest = z23.object({
8445
8449
  attachmentIds: z23.array(CodeLandingIdSchema).max(4).default([])
8446
8450
  });
8447
8451
  var LandingEditSubmitRequest = LandingEditQuoteRequest.extend({
8448
- quoteId: z23.string().uuid(),
8449
- idempotencyKey: z23.string().uuid()
8452
+ quoteId: z23.string().guid(),
8453
+ idempotencyKey: z23.string().guid()
8450
8454
  });
8451
8455
  var LandingOperationQuoteDto = z23.object({
8452
8456
  editPlanSummary: z23.lazy(() => LandingEditPlanSummarySchema).optional(),
8453
- id: z23.string().uuid(),
8457
+ id: z23.string().guid(),
8454
8458
  kind: z23.enum([
8455
8459
  "edit_patch",
8456
8460
  "edit_full",
@@ -8472,7 +8476,7 @@ var LandingRevisionHistoryItemDto = z23.object({
8472
8476
  parentRevision: z23.number().int().positive().nullable(),
8473
8477
  source: z23.string().min(1),
8474
8478
  summary: z23.string().nullable(),
8475
- editId: z23.string().uuid().nullable(),
8479
+ editId: z23.string().guid().nullable(),
8476
8480
  createdAt: z23.string().datetime(),
8477
8481
  isActive: z23.boolean(),
8478
8482
  isRedoTarget: z23.boolean(),
@@ -8518,7 +8522,7 @@ var LandingGifSourceSchema = z24.discriminatedUnion("kind", [
8518
8522
  z24.object({
8519
8523
  kind: z24.literal("generated"),
8520
8524
  referenceSelectionRevision: Revision2,
8521
- referenceImageAssetId: z24.string().uuid().optional(),
8525
+ referenceImageAssetId: z24.string().guid().optional(),
8522
8526
  motionBrief: z24.string().trim().min(1).max(1500)
8523
8527
  }).strict()
8524
8528
  ]);
@@ -8543,7 +8547,7 @@ var ReuseIdentity = z24.object({
8543
8547
  byteSize: z24.number().finite().int().positive().max(50 * 1024 * 1024),
8544
8548
  contentHash: Hash,
8545
8549
  provenance: z24.object({
8546
- taskId: z24.string().uuid(),
8550
+ taskId: z24.string().guid(),
8547
8551
  scanId: z24.string().min(1).max(200).optional(),
8548
8552
  sourceUrl: z24.string().url().max(4096).optional(),
8549
8553
  externalAdId: z24.string().min(1).max(200).optional()
@@ -8573,7 +8577,7 @@ var LandingGifReuseCandidateSchema = z24.discriminatedUnion("kind", [
8573
8577
  var GeneratedResolvedSourceSchema = z24.object({
8574
8578
  kind: z24.literal("generated"),
8575
8579
  referenceSelectionRevision: Revision2,
8576
- referenceImageAssetId: z24.string().uuid().optional(),
8580
+ referenceImageAssetId: z24.string().guid().optional(),
8577
8581
  referenceKeys: z24.array(StorageKey).min(1).max(4),
8578
8582
  identityReferenceKeys: z24.array(StorageKey).min(1).max(4).optional(),
8579
8583
  identityReferenceFingerprint: Hash.optional(),
@@ -8595,7 +8599,7 @@ var AutomaticResolvedSourceSchema = GeneratedResolvedSourceSchema.omit({
8595
8599
  referenceImageAssetId: true
8596
8600
  }).extend({
8597
8601
  kind: z24.literal("automatic"),
8598
- ownerTaskId: z24.string().uuid(),
8602
+ ownerTaskId: z24.string().guid(),
8599
8603
  productName: z24.string().min(1).max(500),
8600
8604
  productTruth: JsonValueSchema.optional(),
8601
8605
  useSheet: JsonValueSchema.optional(),
@@ -8659,7 +8663,7 @@ var LandingGifPlacementSchema = z24.discriminatedUnion("kind", [
8659
8663
  }).strict(),
8660
8664
  z24.object({
8661
8665
  kind: z24.literal("classic"),
8662
- ownerTaskId: z24.string().uuid(),
8666
+ ownerTaskId: z24.string().guid(),
8663
8667
  afterSourceIndex: z24.number().finite().int().min(1)
8664
8668
  }).strict(),
8665
8669
  z24.object({
@@ -8674,7 +8678,7 @@ var LandingGifCreateRequestSchema = z24.object({
8674
8678
  placement: LandingGifPlacementSchema,
8675
8679
  expectedLandingRevision: Revision2,
8676
8680
  expectedGifRevision: Revision2,
8677
- gifId: z24.string().uuid().optional(),
8681
+ gifId: z24.string().guid().optional(),
8678
8682
  expectedDocumentRevision: Revision2.optional()
8679
8683
  }).strict().superRefine((request, ctx) => {
8680
8684
  if (request.gifId === void 0 !== (request.expectedDocumentRevision === void 0)) {
@@ -8714,7 +8718,7 @@ var LandingGifCreateRequestSchema = z24.object({
8714
8718
  });
8715
8719
  var LandingGifSubmitRequestSchema = z24.object({
8716
8720
  request: LandingGifCreateRequestSchema,
8717
- quoteId: z24.string().uuid(),
8721
+ quoteId: z24.string().guid(),
8718
8722
  idempotencyKey: z24.string().trim().min(1).max(200)
8719
8723
  }).strict();
8720
8724
  var LandingGifRemoveRequestSchema = z24.object({
@@ -8750,17 +8754,17 @@ var LandingGifStoredDescriptorSchema = GifTechnicalMetadataSchema.extend({
8750
8754
  quality: LandingGifQualitySchema
8751
8755
  }).strict();
8752
8756
  var LandingGifReadableSchema = LandingGifStoredDescriptorSchema.extend({
8753
- ownerTaskId: z24.string().uuid(),
8757
+ ownerTaskId: z24.string().guid(),
8754
8758
  gifRevision: Revision2,
8755
8759
  gifUrl: z24.string().url(),
8756
8760
  posterUrl: z24.string().url()
8757
8761
  }).strict();
8758
8762
  var LandingGifSelectionSchema = z24.object({
8759
- ownerTaskId: z24.string().uuid(),
8763
+ ownerTaskId: z24.string().guid(),
8760
8764
  gifRevision: Revision2
8761
8765
  }).strict();
8762
8766
  var LandingGifOperationStatusSchema = z24.object({
8763
- operationId: z24.string().uuid(),
8767
+ operationId: z24.string().guid(),
8764
8768
  status: z24.enum([
8765
8769
  "reserved",
8766
8770
  "queued",
@@ -8782,13 +8786,13 @@ var LandingGifOperationStatusSchema = z24.object({
8782
8786
  reservedUserCents: z24.number().finite().int().nonnegative()
8783
8787
  }).strict();
8784
8788
  var LandingGifUseProposalSchema = z24.object({
8785
- id: z24.string().uuid(),
8786
- gifId: z24.string().uuid(),
8789
+ id: z24.string().guid(),
8790
+ gifId: z24.string().guid(),
8787
8791
  idea: z24.string().trim().min(1).max(300),
8788
8792
  motionBrief: z24.string().trim().min(1).max(1500),
8789
8793
  productFingerprint: Hash,
8790
8794
  referenceFingerprint: Hash.nullable(),
8791
- referenceImageAssetId: z24.string().uuid().optional(),
8795
+ referenceImageAssetId: z24.string().guid().optional(),
8792
8796
  referenceImageAssetKey: StorageKey.optional(),
8793
8797
  referenceImageUrl: z24.string().url().optional(),
8794
8798
  identityReferenceKeys: z24.array(StorageKey).min(1).max(4).optional(),
@@ -8809,8 +8813,8 @@ var LandingGifStateSchema = z24.enum([
8809
8813
  "removed"
8810
8814
  ]);
8811
8815
  var LandingGifItemSchema = z24.object({
8812
- gifId: z24.string().uuid(),
8813
- ownerTaskId: z24.string().uuid(),
8816
+ gifId: z24.string().guid(),
8817
+ ownerTaskId: z24.string().guid(),
8814
8818
  gifRevision: Revision2,
8815
8819
  state: LandingGifStateSchema,
8816
8820
  /** Server-derived compatibility for an already delivered singular primary. */
@@ -8850,8 +8854,8 @@ function isDeliverableLandingGif(item) {
8850
8854
  }
8851
8855
  __name(isDeliverableLandingGif, "isDeliverableLandingGif");
8852
8856
  var InitialLandingGifStatusSchema = z24.object({
8853
- intentId: z24.string().uuid(),
8854
- gifId: z24.string().uuid(),
8857
+ intentId: z24.string().guid(),
8858
+ gifId: z24.string().guid(),
8855
8859
  status: z24.enum([
8856
8860
  "funded",
8857
8861
  "awaiting_usage",
@@ -8867,7 +8871,7 @@ var InitialLandingGifStatusSchema = z24.object({
8867
8871
  refundStatus: LandingGifOperationStatusSchema.shape.refundStatus
8868
8872
  }).strict();
8869
8873
  var LandingGifCollectionResponseSchema = z24.object({
8870
- ownerTaskId: z24.string().uuid(),
8874
+ ownerTaskId: z24.string().guid(),
8871
8875
  landingRevision: Revision2,
8872
8876
  document: ClassicLandingDocumentSchema,
8873
8877
  gifs: z24.array(LandingGifItemSchema).max(100),
@@ -8881,15 +8885,15 @@ var LandingGifCollectionResponseSchema = z24.object({
8881
8885
  }
8882
8886
  });
8883
8887
  var LandingGifTargetSchema = z24.object({
8884
- gifId: z24.string().uuid(),
8888
+ gifId: z24.string().guid(),
8885
8889
  expectedGifRevision: Revision2
8886
8890
  }).strict();
8887
8891
  var LandingGifProposalRequestSchema = z24.object({
8888
- gifId: z24.string().uuid().optional(),
8892
+ gifId: z24.string().guid().optional(),
8889
8893
  expectedDocumentRevision: Revision2,
8890
8894
  afterBlockId: z24.string().min(1).max(300).optional(),
8891
8895
  merchantIdea: z24.string().trim().min(8).max(300).optional(),
8892
- referenceImageAssetId: z24.string().uuid().nullable().optional()
8896
+ referenceImageAssetId: z24.string().guid().nullable().optional()
8893
8897
  }).strict();
8894
8898
  var LandingGifQuoteResponseSchema = z24.object({
8895
8899
  quote: LandingOperationQuoteDto.extend({
@@ -8900,7 +8904,7 @@ var LandingGifCreateResponseSchema = z24.object({
8900
8904
  operation: LandingGifOperationStatusSchema
8901
8905
  }).strict();
8902
8906
  var LandingGifStatusResponseSchema = z24.object({
8903
- ownerTaskId: z24.string().uuid(),
8907
+ ownerTaskId: z24.string().guid(),
8904
8908
  landingRevision: Revision2,
8905
8909
  gifRevision: Revision2,
8906
8910
  demoGif: LandingGifReadableSchema.nullable(),
@@ -8938,9 +8942,9 @@ var LandingGifPresentationResponseSchema = z24.object({
8938
8942
  }).strict();
8939
8943
  var LandingGifCompletionReceiptBase = z24.object({
8940
8944
  version: z24.literal(1),
8941
- operationId: z24.string().uuid(),
8942
- taskId: z24.string().uuid(),
8943
- stepId: z24.string().uuid(),
8945
+ operationId: z24.string().guid(),
8946
+ taskId: z24.string().guid(),
8947
+ stepId: z24.string().guid(),
8944
8948
  stepEpoch: Revision2,
8945
8949
  acceptedGifRevision: z24.number().finite().int().positive(),
8946
8950
  gifAssetKey: z24.string().min(1),
@@ -8952,7 +8956,7 @@ var LandingGifCompletionReceiptSchema = z24.discriminatedUnion("version", [
8952
8956
  LandingGifCompletionReceiptBase,
8953
8957
  LandingGifCompletionReceiptBase.extend({
8954
8958
  version: z24.literal(2),
8955
- gifId: z24.string().uuid(),
8959
+ gifId: z24.string().guid(),
8956
8960
  disposition: z24.enum([
8957
8961
  "activated",
8958
8962
  "retained"
@@ -9253,7 +9257,7 @@ var VideoCreativeContext = z27.object({
9253
9257
  productTitle: z27.string(),
9254
9258
  primaryAngle: z27.string(),
9255
9259
  buyerPersona: z27.string().optional(),
9256
- brandId: z27.string().uuid().optional(),
9260
+ brandId: z27.string().guid().optional(),
9257
9261
  features: z27.array(z27.string()).default([]),
9258
9262
  scriptNotes: z27.string().optional(),
9259
9263
  cta: z27.string().optional(),
@@ -9412,19 +9416,19 @@ var ImageCreativeJobStatusEnum = z27.enum([
9412
9416
  "error"
9413
9417
  ]);
9414
9418
  var ImageCreativeJobStatus = z27.object({
9415
- jobId: z27.string().uuid(),
9419
+ jobId: z27.string().guid(),
9416
9420
  status: ImageCreativeJobStatusEnum,
9417
9421
  error: z27.string().optional(),
9418
9422
  result: ImageCreativeResult.nullable().optional(),
9419
9423
  request: ImageCreativeEditableRequest.optional()
9420
9424
  });
9421
9425
  var ImageCreativeJobPayload = z27.object({
9422
- jobId: z27.string().uuid(),
9426
+ jobId: z27.string().guid(),
9423
9427
  status: ImageCreativeJobStatusEnum,
9424
9428
  replayed: z27.boolean().optional()
9425
9429
  });
9426
9430
  var ImageCreativeHistoryEntry = z27.object({
9427
- id: z27.string().uuid(),
9431
+ id: z27.string().guid(),
9428
9432
  createdAt: z27.string().datetime(),
9429
9433
  status: ImageCreativeJobStatusEnum,
9430
9434
  result: ImageCreativeResult.nullable(),
@@ -9444,27 +9448,27 @@ var LandingCreativeResult = z27.object({
9444
9448
  createdAt: z27.string().datetime().optional()
9445
9449
  });
9446
9450
  var LandingCreativeJobStatus = z27.object({
9447
- jobId: z27.string().uuid(),
9451
+ jobId: z27.string().guid(),
9448
9452
  status: LandingCreativeJobStatusEnum,
9449
9453
  error: z27.string().optional(),
9450
9454
  result: LandingCreativeResult.nullable().optional()
9451
9455
  });
9452
9456
  var LandingCreativeJobPayload = z27.object({
9453
- jobId: z27.string().uuid(),
9457
+ jobId: z27.string().guid(),
9454
9458
  status: LandingCreativeJobStatusEnum,
9455
9459
  replayed: z27.boolean().optional()
9456
9460
  });
9457
9461
  var LandingCreativeHistoryEntry = z27.object({
9458
- id: z27.string().uuid(),
9462
+ id: z27.string().guid(),
9459
9463
  createdAt: z27.string().datetime(),
9460
9464
  status: LandingCreativeJobStatusEnum,
9461
9465
  result: LandingCreativeResult.nullable(),
9462
9466
  error: z27.string().optional()
9463
9467
  });
9464
9468
  var CreativeGeneratorJob = z27.object({
9465
- taskId: z27.string().uuid(),
9469
+ taskId: z27.string().guid(),
9466
9470
  /** Immutable approved product-reference snapshot consumed by the worker. */
9467
- referenceVersionId: z27.string().uuid().optional(),
9471
+ referenceVersionId: z27.string().guid().optional(),
9468
9472
  cleanImagesWaitAttempt: z27.number().int().nonnegative().optional()
9469
9473
  });
9470
9474
  var ImageCreativeEditStatus = z27.enum([
@@ -9480,8 +9484,8 @@ var ImageCreativeRegenerateRequest = z27.object({
9480
9484
  });
9481
9485
  var ImageCreativeEditStatusResponse = z27.object({
9482
9486
  ok: z27.literal(true),
9483
- operationId: z27.string().uuid(),
9484
- taskId: z27.string().uuid(),
9487
+ operationId: z27.string().guid(),
9488
+ taskId: z27.string().guid(),
9485
9489
  variantIndex: z27.number().int().nonnegative(),
9486
9490
  status: ImageCreativeEditStatus,
9487
9491
  assetKey: z27.string().optional(),
@@ -9622,20 +9626,20 @@ var CreativeGenderPin = z33.enum([
9622
9626
  var CreativeDirectionSchema = z33.string().transform((value) => value.trim()).pipe(z33.string().max(CREATIVE_DIRECTION_MAX_CHARS));
9623
9627
  var IngestOptions = z33.object({
9624
9628
  /** Optional owner-scoped guided journey context. Never bypasses ingest gates. */
9625
- dropshippingProjectId: z33.string().uuid().optional(),
9626
- languageCode: LanguageCodeSchema.default("es-CO"),
9627
- ugcFormat: VideoFormat.default("single_15s"),
9629
+ dropshippingProjectId: z33.string().guid().optional(),
9630
+ languageCode: LanguageCodeSchema.default("es-CO").nonoptional(),
9631
+ ugcFormat: VideoFormat.default("single_15s").nonoptional(),
9628
9632
  country: CountrySchema,
9629
9633
  price: PriceSchema,
9630
9634
  offer: OfferSchema,
9631
9635
  compareAtPrice: CompareAtPriceSchema,
9632
9636
  pricingInput: SellerPricingInputSchema.optional(),
9633
9637
  paymentMethods: PaymentMethodsSchema,
9634
- videoStyle: VideoStyle.default("ugc"),
9638
+ videoStyle: VideoStyle.default("ugc").nonoptional(),
9635
9639
  /** Canonical public route axes; legacy provider fields remain compatibility aliases. */
9636
9640
  videoStructure: VideoStructure.optional(),
9637
9641
  videoQuality: VideoQuality.optional(),
9638
- videoModel: VideoModel.default("veo"),
9642
+ videoModel: VideoModel.default("veo").nonoptional(),
9639
9643
  /**
9640
9644
  * An explicit registry model id for Free mode (Defect 1, follow-up to the
9641
9645
  * model-agnostic video plan). Validated against `activeVideoModels()` in
@@ -9650,15 +9654,15 @@ var IngestOptions = z33.object({
9650
9654
  ]).optional(),
9651
9655
  rawPrompt: FreeVideoOptionsSchema.shape.rawPrompt.optional(),
9652
9656
  durationSeconds: FreeVideoOptionsSchema.shape.durationSeconds.optional(),
9653
- addSubtitles: FreeVideoOptionsSchema.shape.addSubtitles.optional(),
9657
+ addSubtitles: FreeVideoOptionsSchema.shape.addSubtitles.nonoptional().optional(),
9654
9658
  subtitleText: z33.string().transform((value) => value.trim()).pipe(z33.string().max(FREE_VIDEO_SUBTITLE_MAX_CHARS)).optional(),
9655
- videoTier: WritableVideoTier.default(DEFAULT_VIDEO_TIER),
9656
- narrativeStyle: NarrativeStyle.default("review"),
9659
+ videoTier: WritableVideoTier.default(WritableVideoTier.parse(DEFAULT_VIDEO_TIER)).nonoptional(),
9660
+ narrativeStyle: NarrativeStyle.default("review").nonoptional(),
9657
9661
  videoPreset: VideoPreset.optional(),
9658
9662
  /** Orthogonal visual style for animated narratives only. The API rejects it
9659
9663
  * on non-animated presets; absent → the pipeline resolves 'pixar_3d'. */
9660
9664
  animationStyle: AnimationStyleSchema.optional(),
9661
- multiAngleVideos: z33.boolean().default(false),
9665
+ multiAngleVideos: z33.boolean().default(false).nonoptional(),
9662
9666
  videoAngleCount: z33.number().int().min(1).max(3).optional(),
9663
9667
  /** Per-angle narrative override (positional). angleNarratives[i] forces the
9664
9668
  * narrative of angle position i, overriding the batch auto-selector; a list
@@ -9670,7 +9674,7 @@ var IngestOptions = z33.object({
9670
9674
  // quality levels; an explicit 720p pick wins. Callers that omit the field
9671
9675
  // use the same 480p compatibility fallback in resolveSingleCallAwareResolution.
9672
9676
  videoResolution: VideoResolution.optional(),
9673
- generateAdCopy: z33.boolean().default(true),
9677
+ generateAdCopy: z33.boolean().default(true).nonoptional(),
9674
9678
  generateAiMusic: z33.boolean().optional(),
9675
9679
  /** «Edición con IA» opt-in; a music request aliases to it. */
9676
9680
  generateAiEdit: AiEditRequestSchema.optional(),
@@ -9681,7 +9685,7 @@ var IngestOptions = z33.object({
9681
9685
  * the multipart path on 2026-09-01, so an unbounded opaque string was newly persistable
9682
9686
  * per task. Length only, never `.uuid()` — Actor.id is a CUID. */
9683
9687
  actorId: z33.string().min(1).max(120).optional(),
9684
- isCombo: z33.boolean().default(false),
9688
+ isCombo: z33.boolean().default(false).nonoptional(),
9685
9689
  productContext: z33.string().transform(canonicalizeProductContext).pipe(z33.string().max(PRODUCT_CONTEXT_MAX_CHARS)).optional(),
9686
9690
  creativeDirection: CreativeDirectionSchema.optional(),
9687
9691
  /** Exact copy the user pinned. Rendered VERBATIM on the image creatives this task
@@ -9754,8 +9758,8 @@ var IngestOptions = z33.object({
9754
9758
  * chosen videoPreset. Default true preserves the 2026-08-04 decision;
9755
9759
  * only a deliberate `false` suspends replication. See
9756
9760
  * `shouldAskReplicationConsent` for when this is even asked. */
9757
- replicateWinnerWhenFound: z33.boolean().default(true),
9758
- brandId: z33.string().uuid().optional()
9761
+ replicateWinnerWhenFound: z33.boolean().default(true).nonoptional(),
9762
+ brandId: z33.string().guid().optional()
9759
9763
  }).partial().transform(normalizeSellerPricingFields).superRefine((data, ctx) => {
9760
9764
  const message = validatePriceInversion(data.price, data.compareAtPrice);
9761
9765
  if (message) {
@@ -10502,7 +10506,7 @@ var CreativeEngineWinnerContextSchema = z38.object({
10502
10506
  version: z38.literal(1),
10503
10507
  winnerAdId: z38.string().min(1).max(200),
10504
10508
  /** Owned parsed gap blueprint of the selected winner (opaque evidence). */
10505
- gapBlueprint: z38.unknown(),
10509
+ gapBlueprint: z38.unknown().optional(),
10506
10510
  observed: z38.object({
10507
10511
  scenes: z38.array(CreativeEngineWinnerObservedSceneSchema).max(40),
10508
10512
  /**
@@ -11673,7 +11677,7 @@ var VideoGenerator = z39.object({
11673
11677
  ctx.addIssue({
11674
11678
  code: z39.ZodIssueCode.too_small,
11675
11679
  minimum: 1,
11676
- type: "string",
11680
+ origin: "string",
11677
11681
  inclusive: true,
11678
11682
  path: [
11679
11683
  "prompt"
@@ -11781,7 +11785,7 @@ var RegenerateVideoScriptNarrativeResponse = z39.object({
11781
11785
  var RegenerateVideoRequest = z39.object({
11782
11786
  angleKey: z39.string().min(1),
11783
11787
  /** Stable new-intent identity for regeneration of an already delivered engine video. */
11784
- clientRequestId: z39.string().uuid().optional()
11788
+ clientRequestId: z39.string().guid().optional()
11785
11789
  }).strict();
11786
11790
  var RegenerateVideoResponse = z39.object({
11787
11791
  ok: z39.literal(true),
@@ -11792,7 +11796,7 @@ var RegenerateVideoResponse = z39.object({
11792
11796
  "single_call"
11793
11797
  ]),
11794
11798
  /** New immutable child, when this command bought a new delivered-video intent. */
11795
- taskId: z39.string().uuid().optional()
11799
+ taskId: z39.string().guid().optional()
11796
11800
  });
11797
11801
 
11798
11802
  // ../../packages/types/src/billing.ts
@@ -11834,16 +11838,16 @@ var BillingProvider = z40.enum([
11834
11838
  ]);
11835
11839
  var BillingRecordInput = z40.object({
11836
11840
  userId: z40.string().min(1),
11837
- taskId: z40.string().uuid().optional(),
11838
- mixTaskId: z40.string().uuid().optional(),
11839
- productResearchRunId: z40.string().uuid().optional(),
11840
- servicePageId: z40.string().uuid().optional(),
11841
+ taskId: z40.string().guid().optional(),
11842
+ mixTaskId: z40.string().guid().optional(),
11843
+ productResearchRunId: z40.string().guid().optional(),
11844
+ servicePageId: z40.string().guid().optional(),
11841
11845
  provider: BillingProvider,
11842
11846
  label: z40.string().optional(),
11843
11847
  units: z40.number().int().nonnegative().optional(),
11844
11848
  ourCostCents: BillingNonNegativeAmount,
11845
11849
  userPriceCents: BillingNonNegativeAmount,
11846
- metadata: z40.record(z40.unknown()).optional()
11850
+ metadata: z40.record(z40.string(), z40.unknown()).optional()
11847
11851
  }).superRefine((value, ctx) => {
11848
11852
  const scopedIds = [
11849
11853
  value.taskId,
@@ -11865,7 +11869,7 @@ var BillingSummary = z40.object({
11865
11869
  // ../../packages/types/src/shopify.ts
11866
11870
  import { z as z41 } from "zod";
11867
11871
  var ShopifyShopSummary = z41.object({
11868
- id: z41.string().uuid(),
11872
+ id: z41.string().guid(),
11869
11873
  shopDomain: z41.string(),
11870
11874
  primaryDomain: z41.string().nullable(),
11871
11875
  scopes: z41.array(z41.string()),
@@ -11912,7 +11916,7 @@ var ShopifyPublicationMode = z41.enum([
11912
11916
  var SHOPIFY_ANNOUNCEMENT_BAR_MAX_LENGTH = 160;
11913
11917
  var ShopifyPublishRequest = z41.object({
11914
11918
  /** Correlates a mutation with read-only recovery after a lost response. */
11915
- publishAttemptId: z41.string().uuid().optional(),
11919
+ publishAttemptId: z41.string().guid().optional(),
11916
11920
  /** Omitted keeps legacy publication behavior; null explicitly excludes the GIF. */
11917
11921
  selectedLandingGif: LandingGifSelectionSchema.nullable().optional(),
11918
11922
  classicSelection: ClassicLandingSelectionSnapshotSchema.optional(),
@@ -11971,7 +11975,7 @@ var ShopifyPublishRequest = z41.object({
11971
11975
  });
11972
11976
  }
11973
11977
  });
11974
- var CodeLandingThemeSetupRequest = ShopifyPublishRequest.innerType().omit({
11978
+ var CodeLandingThemeSetupRequest = z41.object(ShopifyPublishRequest.shape).omit({
11975
11979
  publishAttemptId: true,
11976
11980
  commerceCorrection: true
11977
11981
  });
@@ -12041,8 +12045,8 @@ var ShopifyBundleMappingResult = z41.discriminatedUnion("status", [
12041
12045
  ]);
12042
12046
  var ShopifyPublishResponse = z41.object({
12043
12047
  pricingNotices: z41.array(SellerPricingNoticeSchema).max(32).optional(),
12044
- publicationId: z41.string().uuid(),
12045
- taskId: z41.string().uuid(),
12048
+ publicationId: z41.string().guid(),
12049
+ taskId: z41.string().guid(),
12046
12050
  status: ShopifyPublicationStatus,
12047
12051
  shopDomain: z41.string(),
12048
12052
  productId: z41.string().optional(),
@@ -12113,8 +12117,8 @@ var ShopifyImportOutcomeResponse = z41.discriminatedUnion("status", [
12113
12117
  ]);
12114
12118
  var ShopifyPublishAttemptStatus = z41.discriminatedUnion("status", [
12115
12119
  z41.object({
12116
- publicationId: z41.string().uuid(),
12117
- taskId: z41.string().uuid(),
12120
+ publicationId: z41.string().guid(),
12121
+ taskId: z41.string().guid(),
12118
12122
  status: z41.enum([
12119
12123
  "pending",
12120
12124
  "processing"
@@ -12122,8 +12126,8 @@ var ShopifyPublishAttemptStatus = z41.discriminatedUnion("status", [
12122
12126
  productId: z41.string().optional()
12123
12127
  }),
12124
12128
  z41.object({
12125
- publicationId: z41.string().uuid(),
12126
- taskId: z41.string().uuid(),
12129
+ publicationId: z41.string().guid(),
12130
+ taskId: z41.string().guid(),
12127
12131
  status: z41.literal("error"),
12128
12132
  productId: z41.string().optional(),
12129
12133
  failure: z41.discriminatedUnion("kind", [
@@ -12277,7 +12281,7 @@ var CreateShopifyBillingChargeRequest = z41.object({
12277
12281
  });
12278
12282
  var ShopifyBillingCallbackQuery = z41.object({
12279
12283
  charge_id: z41.string().regex(/^\d+$/),
12280
- transactionId: z41.string().uuid()
12284
+ transactionId: z41.string().guid()
12281
12285
  });
12282
12286
  var CancelShopifySubscriptionRequest = z41.object({
12283
12287
  subscriptionId: z41.string().min(1)
@@ -12343,12 +12347,12 @@ var ApproveAnglesRefusalReason = z42.enum([
12343
12347
  ]);
12344
12348
  var ApproveAnglesResponse = z42.object({
12345
12349
  success: z42.boolean(),
12346
- taskId: z42.string().uuid(),
12350
+ taskId: z42.string().guid(),
12347
12351
  reason: ApproveAnglesRefusalReason.optional()
12348
12352
  });
12349
12353
  var IngestResumeRefusalResponse = z42.object({
12350
12354
  success: z42.literal(false),
12351
- taskId: z42.string().uuid(),
12355
+ taskId: z42.string().guid(),
12352
12356
  reason: ApproveAnglesRefusalReason.optional()
12353
12357
  });
12354
12358
  var GenerateSuggestionsResponse = z42.object({
@@ -12363,7 +12367,7 @@ var SaveDraftRequest = z42.object({
12363
12367
  });
12364
12368
  var SaveDraftResponse = z42.object({
12365
12369
  success: z42.boolean(),
12366
- taskId: z42.string().uuid()
12370
+ taskId: z42.string().guid()
12367
12371
  });
12368
12372
  var ProductReferenceRecoveryImageMimeType = z42.enum([
12369
12373
  "image/jpeg",
@@ -12408,7 +12412,7 @@ var ConfirmProductReferencesRequest = z42.object({
12408
12412
  "keep_selection"
12409
12413
  ]),
12410
12414
  affectedRefKeys: z42.array(z42.string().min(1).max(200)).min(1).max(5).optional(),
12411
- expectedReferenceVersionId: z42.string().uuid().optional(),
12415
+ expectedReferenceVersionId: z42.string().guid().optional(),
12412
12416
  expectedEvidenceHash: z42.string().min(1).max(128).optional(),
12413
12417
  uploadedImages: z42.array(ProductReferenceRecoveryUpload).max(INGEST_MAX_REFERENCE_IMAGES).optional()
12414
12418
  }).optional()
@@ -12445,7 +12449,7 @@ var ConfirmProductReferencesRequest = z42.object({
12445
12449
  });
12446
12450
  var ConfirmProductReferencesResponse = z42.object({
12447
12451
  success: z42.boolean(),
12448
- taskId: z42.string().uuid(),
12452
+ taskId: z42.string().guid(),
12449
12453
  anglesQueued: z42.boolean()
12450
12454
  });
12451
12455
  var UpdateProductFeaturesRequest = z42.object({
@@ -12512,7 +12516,7 @@ var ApproveVideoAnglesRequest = z42.object({
12512
12516
  "meta",
12513
12517
  "upload"
12514
12518
  ]).optional(),
12515
- sourceUploadIds: z42.array(z42.string().uuid()).min(2).max(5).optional(),
12519
+ sourceUploadIds: z42.array(z42.string().guid()).min(2).max(5).optional(),
12516
12520
  /** Whether to pause for video script review before final generation */
12517
12521
  pauseForVideoScriptReview: z42.boolean().optional(),
12518
12522
  /** Whether to produce an additional AI-music video variant */
@@ -12526,7 +12530,7 @@ var ApproveVideoAnglesRequest = z42.object({
12526
12530
  }).superRefine((value, ctx) => validateFrankensteinDraftSources(value, ctx, true));
12527
12531
  var ApproveVideoAnglesResponse = z42.object({
12528
12532
  success: z42.boolean(),
12529
- taskId: z42.string().uuid(),
12533
+ taskId: z42.string().guid(),
12530
12534
  /** Persisted keys scheduled by this approval; visible candidate indices are not worker keys. */
12531
12535
  approvedAngleKeys: z42.array(z42.string().regex(/^angle_\d+$/)).min(1).max(3).optional(),
12532
12536
  reason: ApproveAnglesRefusalReason.optional()
@@ -12546,11 +12550,11 @@ var SaveVideoDraftRequest = z42.object({
12546
12550
  "meta",
12547
12551
  "upload"
12548
12552
  ]).optional(),
12549
- sourceUploadIds: z42.array(z42.string().uuid()).min(2).max(5).optional()
12553
+ sourceUploadIds: z42.array(z42.string().guid()).min(2).max(5).optional()
12550
12554
  }).superRefine((value, ctx) => validateFrankensteinDraftSources(value, ctx, false));
12551
12555
  var SaveVideoDraftResponse = z42.object({
12552
12556
  success: z42.boolean(),
12553
- taskId: z42.string().uuid()
12557
+ taskId: z42.string().guid()
12554
12558
  });
12555
12559
  var ApproveImageAnglesRequest = z42.object({
12556
12560
  /** Zero-based index of the generated angle explicitly selected for production. */
@@ -12574,7 +12578,7 @@ var ApproveImageAnglesRequest = z42.object({
12574
12578
  });
12575
12579
  var ApproveImageAnglesResponse = z42.object({
12576
12580
  success: z42.boolean(),
12577
- taskId: z42.string().uuid(),
12581
+ taskId: z42.string().guid(),
12578
12582
  reason: ApproveAnglesRefusalReason.optional()
12579
12583
  });
12580
12584
  var SaveImageDraftRequest = z42.object({
@@ -12585,7 +12589,7 @@ var SaveImageDraftRequest = z42.object({
12585
12589
  });
12586
12590
  var SaveImageDraftResponse = z42.object({
12587
12591
  success: z42.boolean(),
12588
- taskId: z42.string().uuid()
12592
+ taskId: z42.string().guid()
12589
12593
  });
12590
12594
  var ImageSuggestionsResponse = z42.object({
12591
12595
  painPoints: z42.array(z42.string()),
@@ -12631,8 +12635,8 @@ var QualityReportReason = z43.enum([
12631
12635
  "other"
12632
12636
  ]);
12633
12637
  var QualityReportRequest = z43.object({
12634
- taskId: z43.string().uuid().optional(),
12635
- mixTaskId: z43.string().uuid().optional(),
12638
+ taskId: z43.string().guid().optional(),
12639
+ mixTaskId: z43.string().guid().optional(),
12636
12640
  kind: QualityReportKind,
12637
12641
  /**
12638
12642
  * URL or internal proxy path (e.g. `/api/assets/...`).
@@ -12658,9 +12662,9 @@ var QualityReportRequest = z43.object({
12658
12662
  ]
12659
12663
  });
12660
12664
  var QualityReportResponse = z43.object({
12661
- reportId: z43.string().uuid(),
12662
- taskId: z43.string().uuid().optional(),
12663
- mixTaskId: z43.string().uuid().optional(),
12665
+ reportId: z43.string().guid(),
12666
+ taskId: z43.string().guid().optional(),
12667
+ mixTaskId: z43.string().guid().optional(),
12664
12668
  kind: QualityReportKind,
12665
12669
  resourceUrl: z43.string().min(1),
12666
12670
  reason: QualityReportReason,
@@ -13089,7 +13093,7 @@ var TaskCreativeVariantVideoPreset = VideoPreset.exclude([
13089
13093
  ...BLOCKED_VIDEO_PRESETS
13090
13094
  ]);
13091
13095
  var CreateTaskCreativeVariantBase = z47.object({
13092
- clientRequestId: z47.string().uuid(),
13096
+ clientRequestId: z47.string().guid(),
13093
13097
  angle: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.angle),
13094
13098
  buyerPersona: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.buyerPersona).optional()
13095
13099
  });
@@ -13112,7 +13116,7 @@ var CreateTaskImageVariantRequest = CreateTaskCreativeVariantBase.extend({
13112
13116
  styleMix: z47.boolean().optional()
13113
13117
  }).strict();
13114
13118
  var CreateTaskLandingSectionVariantRequest = z47.object({
13115
- clientRequestId: z47.string().uuid(),
13119
+ clientRequestId: z47.string().guid(),
13116
13120
  kind: z47.literal("landing"),
13117
13121
  sectionKey: LandingSectionKeySchema,
13118
13122
  instructions: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.landingInstructions).optional()
@@ -13140,8 +13144,8 @@ var EstimateTaskCreativeVariantRequest = z47.discriminatedUnion("kind", [
13140
13144
  ]);
13141
13145
  var CreateTaskCreativeVariantResponse = z47.object({
13142
13146
  ok: z47.literal(true),
13143
- sourceTaskId: z47.string().uuid(),
13144
- variantTaskId: z47.string().uuid(),
13147
+ sourceTaskId: z47.string().guid(),
13148
+ variantTaskId: z47.string().guid(),
13145
13149
  kind: TaskCreativeVariantKind,
13146
13150
  status: TaskCreativeVariantStatus
13147
13151
  }).strict();
@@ -13164,15 +13168,15 @@ var TaskCreativeVariantRecommendationRequest = z47.object({
13164
13168
  }).strict();
13165
13169
  var TaskCreativeVariantRecommendationResponse = z47.object({
13166
13170
  ok: z47.literal(true),
13167
- sourceTaskId: z47.string().uuid(),
13171
+ sourceTaskId: z47.string().guid(),
13168
13172
  kind: TaskCreativeVariantKind,
13169
13173
  field: TaskCreativeVariantRecommendationField,
13170
13174
  value: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.scriptNotes),
13171
13175
  rationale: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.recommendationRationale).optional()
13172
13176
  }).strict();
13173
13177
  var TaskCreativeVariantBaseResult = z47.object({
13174
- variantTaskId: z47.string().uuid(),
13175
- sourceTaskId: z47.string().uuid(),
13178
+ variantTaskId: z47.string().guid(),
13179
+ sourceTaskId: z47.string().guid(),
13176
13180
  kind: TaskCreativeVariantKind,
13177
13181
  status: TaskCreativeVariantStatus,
13178
13182
  angle: z47.string().min(1),
@@ -13346,7 +13350,7 @@ var ResultAngle = Angle.extend({
13346
13350
  aiEdit: AiEditTierSchema.nullable().optional()
13347
13351
  });
13348
13352
  var MVPResult = z49.object({
13349
- taskId: z49.string().uuid(),
13353
+ taskId: z49.string().guid(),
13350
13354
  /** Read-only identity derived from validated persisted request context.
13351
13355
  * Optional for older APIs and content-only tasks; absence never implies a service. */
13352
13356
  subjectKind: z49.enum([
@@ -13524,7 +13528,7 @@ var PendingUserActionSchema = z49.discriminatedUnion("kind", [
13524
13528
  z49.object({
13525
13529
  kind: z49.literal("service_angle_approval"),
13526
13530
  angles: z49.array(z49.object({
13527
- id: z49.string().uuid(),
13531
+ id: z49.string().guid(),
13528
13532
  content: z49.string(),
13529
13533
  creativeDirection: z49.string(),
13530
13534
  actor: z49.string(),
@@ -13603,7 +13607,7 @@ var CommercialStudySummarySchema = z49.union([
13603
13607
  })
13604
13608
  ]);
13605
13609
  var StatusResponse = z49.object({
13606
- taskId: z49.string().uuid(),
13610
+ taskId: z49.string().guid(),
13607
13611
  status: TaskStatusSchema,
13608
13612
  /** ENGINEERING string (`Task.error`). Never render this to a seller. */
13609
13613
  error: z49.string().optional(),
@@ -13811,7 +13815,7 @@ var StatusResponse = z49.object({
13811
13815
  frankensteinRun: FrankensteinRunProgressSchema.optional()
13812
13816
  });
13813
13817
  var TaskSummary = z49.object({
13814
- taskId: z49.string().uuid(),
13818
+ taskId: z49.string().guid(),
13815
13819
  /** A projected ServicePage, opened through its own editor and lifecycle. */
13816
13820
  resourceType: z49.literal("service_page").optional(),
13817
13821
  status: TaskStatusSchema,
@@ -14240,7 +14244,7 @@ var RegenerateLandingRoleBody = z50.object({
14240
14244
  comment: z50.string().max(2e3).optional(),
14241
14245
  sourceKey: z50.string().max(200).optional(),
14242
14246
  /** Client-generated key makes a lost response safe to retry without another charge. */
14243
- clientRequestId: z50.string().uuid().optional()
14247
+ clientRequestId: z50.string().guid().optional()
14244
14248
  }).strict();
14245
14249
  var LandingRegenerateEstimationOptions = z50.object({
14246
14250
  /** KIE image endpoint has non-linear pricing by nVariants; for landing we default to 2. */
@@ -15227,7 +15231,7 @@ var UpdateUserCreditsRequest = z53.object({
15227
15231
  /** Free-text detail. Required when the enum alone does not explain the grant. */
15228
15232
  notes: z53.string().trim().min(1).max(500).optional(),
15229
15233
  /** The task the grant compensates, when there is one. */
15230
- taskId: z53.string().uuid().optional()
15234
+ taskId: z53.string().guid().optional()
15231
15235
  });
15232
15236
  var QualityReportStatus = z53.enum([
15233
15237
  "open",
@@ -15287,7 +15291,7 @@ var AdminSupportDeliveryStatus = z53.enum([
15287
15291
  "blocked"
15288
15292
  ]);
15289
15293
  var AdminSupportMessage = z53.object({
15290
- id: z53.string().uuid(),
15294
+ id: z53.string().guid(),
15291
15295
  direction: z53.enum([
15292
15296
  "inbound",
15293
15297
  "outbound"
@@ -15311,7 +15315,7 @@ var AdminSupportMessage = z53.object({
15311
15315
  createdAt: z53.string().datetime()
15312
15316
  });
15313
15317
  var AdminSupportTicket = z53.object({
15314
- id: z53.string().uuid(),
15318
+ id: z53.string().guid(),
15315
15319
  category: z53.enum([
15316
15320
  "how_to",
15317
15321
  "credits",
@@ -15340,7 +15344,7 @@ var AdminSupportTicket = z53.object({
15340
15344
  updatedAt: z53.string().datetime()
15341
15345
  });
15342
15346
  var AdminSupportConversation = z53.object({
15343
- id: z53.string().uuid(),
15347
+ id: z53.string().guid(),
15344
15348
  status: AdminSupportConversationStatus,
15345
15349
  priority: z53.enum([
15346
15350
  "low",
@@ -15355,7 +15359,7 @@ var AdminSupportConversation = z53.object({
15355
15359
  createdAt: z53.string().datetime(),
15356
15360
  updatedAt: z53.string().datetime(),
15357
15361
  contact: z53.object({
15358
- id: z53.string().uuid(),
15362
+ id: z53.string().guid(),
15359
15363
  userId: z53.string().nullable(),
15360
15364
  verifiedAt: z53.string().datetime().nullable(),
15361
15365
  botMode: z53.enum([
@@ -15371,11 +15375,11 @@ var AdminSupportConversation = z53.object({
15371
15375
  var AdminSupportListQuery = z53.object({
15372
15376
  status: AdminSupportConversationStatus.optional(),
15373
15377
  take: z53.coerce.number().int().min(1).max(100).default(50),
15374
- cursorId: z53.string().uuid().optional()
15378
+ cursorId: z53.string().guid().optional()
15375
15379
  }).strict();
15376
15380
  var AdminSupportListResponse = z53.object({
15377
15381
  conversations: z53.array(AdminSupportConversation),
15378
- nextCursor: z53.string().uuid().nullable()
15382
+ nextCursor: z53.string().guid().nullable()
15379
15383
  });
15380
15384
  var AdminSupportReplyRequest = z53.object({
15381
15385
  body: z53.string().trim().min(1).max(4096),
@@ -15386,7 +15390,7 @@ var AdminSupportActionResponse = z53.object({
15386
15390
  conversation: AdminSupportConversation
15387
15391
  });
15388
15392
  var AdminSupportReplyResponse = z53.object({
15389
- messageId: z53.string().uuid(),
15393
+ messageId: z53.string().guid(),
15390
15394
  deliveryStatus: AdminSupportDeliveryStatus,
15391
15395
  duplicate: z53.boolean()
15392
15396
  });
@@ -15516,7 +15520,7 @@ var VideoVoiceJobSchema = z57.object({
15516
15520
  wakeRevision: z57.number().int().nonnegative()
15517
15521
  }).strict();
15518
15522
  var ExtractJobSchema = z57.object({
15519
- taskId: z57.string().uuid(),
15523
+ taskId: z57.string().guid(),
15520
15524
  imageKey: z57.string().min(1).optional(),
15521
15525
  imageKeys: z57.array(z57.string().min(1)).min(1).max(INGEST_MAX_REFERENCE_IMAGES).optional(),
15522
15526
  /** Existing clean references carried through a recovery extract. They are
@@ -15635,20 +15639,20 @@ var BrandExtractDocumentSchema = z57.object({
15635
15639
  ])
15636
15640
  });
15637
15641
  var VideoMixSubmitJobSchema = z57.object({
15638
- mixTaskId: z57.string().uuid()
15642
+ mixTaskId: z57.string().guid()
15639
15643
  });
15640
15644
  var VideoMixAssembleJobSchema = z57.object({
15641
- mixTaskId: z57.string().uuid()
15645
+ mixTaskId: z57.string().guid()
15642
15646
  });
15643
15647
  var VideoMixQaJobSchema = z57.object({
15644
- mixSceneTaskId: z57.string().uuid(),
15648
+ mixSceneTaskId: z57.string().guid(),
15645
15649
  // externalId is included in the BullMQ payload by the producer (used in the
15646
15650
  // jobId for retry uniqueness) but the worker only reads mixSceneTaskId.
15647
15651
  externalId: z57.string().min(1).optional()
15648
15652
  });
15649
15653
  var BrandExtractLocaleSchema = z57.string().regex(/^[A-Za-z]{2,3}(?:[-_][A-Za-z0-9]{2,8})?$/, "invalid locale");
15650
15654
  var BrandExtractJobSchema = z57.object({
15651
- brandId: z57.string().uuid(),
15655
+ brandId: z57.string().guid(),
15652
15656
  // Generation is part of the durable paid-spend identity. Default 1 keeps
15653
15657
  // pre-migration BullMQ payloads parseable; their DB state fails safe.
15654
15658
  generation: z57.number().int().positive().default(1),
@@ -15680,23 +15684,23 @@ import { z as z58 } from "zod";
15680
15684
  var WhatsAppDeliveryConsumerSchema = z58.discriminatedUnion("kind", [
15681
15685
  z58.object({
15682
15686
  kind: z58.literal("presentation"),
15683
- presentationId: z58.string().uuid(),
15687
+ presentationId: z58.string().guid(),
15684
15688
  pollAt: z58.number().int().nonnegative()
15685
15689
  }).strict(),
15686
15690
  z58.object({
15687
15691
  kind: z58.literal("message"),
15688
- messageId: z58.string().uuid(),
15692
+ messageId: z58.string().guid(),
15689
15693
  providerMessageId: z58.string().min(1).max(256)
15690
15694
  }).strict(),
15691
15695
  z58.object({
15692
15696
  kind: z58.literal("task_watch"),
15693
- commandId: z58.string().uuid(),
15697
+ commandId: z58.string().guid(),
15694
15698
  pollAt: z58.number().int().nonnegative()
15695
15699
  }).strict(),
15696
15700
  z58.object({
15697
15701
  kind: z58.literal("research_watch"),
15698
- commandId: z58.string().uuid(),
15699
- runId: z58.string().uuid(),
15702
+ commandId: z58.string().guid(),
15703
+ runId: z58.string().guid(),
15700
15704
  pollAt: z58.number().int().nonnegative()
15701
15705
  }).strict()
15702
15706
  ]);
@@ -15745,9 +15749,9 @@ var ComboItemSchema = z60.object({
15745
15749
  /** Physical details for this specific product */
15746
15750
  details: z60.object({
15747
15751
  packagingType: z60.string().optional(),
15748
- geometry: z60.record(z60.unknown()).optional(),
15749
- morphology: z60.record(z60.unknown()).optional(),
15750
- estimatedDimensions: z60.record(z60.unknown()).optional()
15752
+ geometry: z60.record(z60.string(), z60.unknown()).optional(),
15753
+ morphology: z60.record(z60.string(), z60.unknown()).optional(),
15754
+ estimatedDimensions: z60.record(z60.string(), z60.unknown()).optional()
15751
15755
  }).optional(),
15752
15756
  /** Per-item usage spec extracted individually (fallback: global combo usageSpec) */
15753
15757
  usageSpec: ProductUsageSpec.optional()
@@ -15786,7 +15790,7 @@ var FacebookConnectionStatusSchema = z61.object({
15786
15790
  message: z61.string().optional()
15787
15791
  });
15788
15792
  var FacebookCreateCampaignRequestSchema = z61.object({
15789
- taskId: z61.string().uuid(),
15793
+ taskId: z61.string().guid(),
15790
15794
  pixelId: z61.string().optional(),
15791
15795
  landingUrl: HttpUrl2.optional()
15792
15796
  });
@@ -15911,29 +15915,14 @@ var FacebookCreateCampaignResponseSchema = z61.object({
15911
15915
  appliedBudget: z61.number().int().positive()
15912
15916
  });
15913
15917
  var FacebookCreateCampaignFromCreativesBodySchema = z61.object({
15914
- /** Caller-owned retry fence. Required before any provider operation. */
15915
- publishAttemptId: MetaPublishAttemptId,
15916
- creatives: z61.array(z61.object({
15917
- type: MediaKind,
15918
- title: z61.string().max(120),
15919
- description: z61.string().max(500),
15920
- cta: MetaCtaType,
15918
+ ...UploadToMetaRequest.shape,
15919
+ creatives: z61.array(UploadToMetaRequest.shape.creatives.element.extend({
15920
+ // Retain this endpoint's HTTP URL policy; the upload owner additionally
15921
+ // forbids credentials. Sharing its field shape must not tighten ours.
15921
15922
  mediaUrl: HttpUrl2.optional(),
15922
- mediaAssetId: z61.string().uuid().optional(),
15923
- thumbnailUrl: HttpUrl2.optional(),
15924
- thumbnailAssetId: z61.string().uuid().optional(),
15925
- creativeId: z61.string().min(1).optional()
15923
+ thumbnailUrl: HttpUrl2.optional()
15926
15924
  })).min(1).max(CAMPAIGN_LIMITS.MAX_CREATIVES),
15927
- adAccountId: MetaAdAccountId,
15928
- portfolioId: z61.string().min(1).optional(),
15929
- pageId: z61.string().min(1).optional(),
15930
- pixelId: z61.string().optional(),
15931
- /** Required unless campaignConfig.destination is 'whatsapp' (see superRefine below). */
15932
15925
  landingUrl: HttpUrl2.optional(),
15933
- /** Target country for ad targeting (ISO 3166-1 alpha-2 code or resolvable name) */
15934
- targetCountry: CountryIso2Schema.default("US"),
15935
- /** Custom campaign name */
15936
- campaignName: z61.string().min(1).max(100).optional(),
15937
15926
  campaignConfig: MetaCampaignConfig.optional()
15938
15927
  }).superRefine((value, ctx) => {
15939
15928
  const isWhatsapp = value.campaignConfig?.destination?.type === "whatsapp";
@@ -15946,30 +15935,7 @@ var FacebookCreateCampaignFromCreativesBodySchema = z61.object({
15946
15935
  message: "landingUrl is required unless destination is whatsapp"
15947
15936
  });
15948
15937
  }
15949
- value.creatives.forEach((creative, index) => {
15950
- if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
15951
- ctx.addIssue({
15952
- code: z61.ZodIssueCode.custom,
15953
- path: [
15954
- "creatives",
15955
- index,
15956
- "mediaUrl"
15957
- ],
15958
- message: "Provide exactly one of mediaUrl or mediaAssetId"
15959
- });
15960
- }
15961
- if (creative.thumbnailUrl && creative.thumbnailAssetId) {
15962
- ctx.addIssue({
15963
- code: z61.ZodIssueCode.custom,
15964
- path: [
15965
- "creatives",
15966
- index,
15967
- "thumbnailUrl"
15968
- ],
15969
- message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
15970
- });
15971
- }
15972
- });
15938
+ refineMetaCreativeSources(value, ctx);
15973
15939
  if (value.campaignConfig?.destination?.type === "landing" && value.landingUrl && value.campaignConfig.destination.landingUrl !== value.landingUrl) {
15974
15940
  ctx.addIssue({
15975
15941
  code: z61.ZodIssueCode.custom,
@@ -16048,9 +16014,9 @@ var FacebookTaskCreativeSourceSchema = z61.object({
16048
16014
  var FacebookMediaCreativeSourceSchema = z61.object({
16049
16015
  type: z61.literal("media"),
16050
16016
  mediaUrl: HttpUrl2.optional(),
16051
- mediaAssetId: z61.string().uuid().optional(),
16017
+ mediaAssetId: z61.string().guid().optional(),
16052
16018
  thumbnailUrl: HttpUrl2.optional(),
16053
- thumbnailAssetId: z61.string().uuid().optional()
16019
+ thumbnailAssetId: z61.string().guid().optional()
16054
16020
  });
16055
16021
  var FacebookCreativeSourceSchema = z61.discriminatedUnion("type", [
16056
16022
  FacebookTaskCreativeSourceSchema,
@@ -16073,15 +16039,15 @@ var FacebookCreateCampaignFromTasksBodySchema = z61.object({
16073
16039
  pageId: z61.string().min(1),
16074
16040
  pixelId: z61.string().optional(),
16075
16041
  /**
16076
- * Omitted: a campaign with task creatives lands on the published service
16077
- * landing of its service tasks (resolved server side, META_NO_LANDING_URL
16078
- * when there is none); a media-only campaign must name it.
16079
- */
16042
+ * Omitted: a campaign with task creatives lands on the published service
16043
+ * landing of its service tasks (resolved server side, META_NO_LANDING_URL
16044
+ * when there is none); a media-only campaign must name it.
16045
+ */
16080
16046
  landingUrl: HttpUrl2.optional(),
16081
16047
  /**
16082
- * Omitted: the brand country of its service tasks; a product-only campaign
16083
- * keeps "US". Never a hardcoded country for a service (META_NO_TARGET_COUNTRY).
16084
- */
16048
+ * Omitted: the brand country of its service tasks; a product-only campaign
16049
+ * keeps "US". Never a hardcoded country for a service (META_NO_TARGET_COUNTRY).
16050
+ */
16085
16051
  targetCountry: CountryIso2Schema.optional(),
16086
16052
  campaignName: z61.string().min(1).max(100),
16087
16053
  campaignConfig: MetaCampaignConfig.optional()
@@ -16642,7 +16608,7 @@ var VideoSpeechAssetSchema = z64.object({
16642
16608
  var VoiceProgressSchema = z64.discriminatedUnion("status", [
16643
16609
  z64.object({
16644
16610
  status: z64.literal("ready"),
16645
- value: z64.unknown()
16611
+ value: z64.unknown().optional()
16646
16612
  }).strict(),
16647
16613
  z64.object({
16648
16614
  status: z64.literal("waiting"),
@@ -17192,7 +17158,7 @@ var MixSceneResult = z67.object({
17192
17158
  degradedReason: MixDegradationReasonSchema.optional()
17193
17159
  });
17194
17160
  var MixResult = z67.object({
17195
- mixTaskId: z67.string().uuid(),
17161
+ mixTaskId: z67.string().guid(),
17196
17162
  status: z67.enum([
17197
17163
  "queued",
17198
17164
  "processing",
@@ -17235,7 +17201,7 @@ var PreparedImagePreviewUrlSchema = z68.string().url().max(2048).refine((value)
17235
17201
  return protocol === "https:" || protocol === "http:";
17236
17202
  }, "Prepared image preview URLs must use HTTP(S)");
17237
17203
  var WinningProductPreparedImageSchema = z68.object({
17238
- assetId: z68.string().uuid(),
17204
+ assetId: z68.string().guid(),
17239
17205
  previewUrl: PreparedImagePreviewUrlSchema,
17240
17206
  productName: z68.string().trim().min(1).max(240),
17241
17207
  presentation: MediaPresentationImageSchema
@@ -17534,14 +17500,16 @@ var LandingOperationStepSelectionSchema = CodeLandingStepSelectionSchema.extend(
17534
17500
  var LandingOperationReceiptStepSchema = LandingOperationStepSelectionSchema.extend({
17535
17501
  receipt: CodeLandingEffectiveReceiptSchema.optional()
17536
17502
  });
17537
- var LandingOperationEnvelopeNodeSchema = CodeLandingEnvelopeNodeSchema.innerType().extend({
17503
+ var LandingOperationEnvelopeNodeSchema = z73.object(CodeLandingEnvelopeNodeSchema.shape).strict().extend({
17538
17504
  phase: LandingOperationStepPhaseSchema
17539
17505
  }).superRefine((node, ctx) => {
17540
17506
  const legacy = CodeLandingEnvelopeNodeSchema.safeParse({
17541
17507
  ...node,
17542
17508
  phase: "asset"
17543
17509
  });
17544
- if (!legacy.success) for (const issue of legacy.error.issues) ctx.addIssue(issue);
17510
+ if (!legacy.success) for (const issue of legacy.error.issues) ctx.addIssue({
17511
+ ...issue
17512
+ });
17545
17513
  });
17546
17514
  var LandingGifGenerationPolicySchema = z73.discriminatedUnion("model", [
17547
17515
  z73.object({
@@ -17928,7 +17896,7 @@ var LandingRegenerationStatusResponse = z75.object({
17928
17896
  });
17929
17897
 
17930
17898
  // ../../packages/types/src/shopify-meta-tracking.ts
17931
- import { z as z76 } from "zod";
17899
+ import * as z76 from "zod";
17932
17900
  var MetaTrackingOwnerSchema = z76.enum([
17933
17901
  "auto",
17934
17902
  "external",
@@ -18136,7 +18104,7 @@ var UploadedAssetRole = z78.enum([
18136
18104
  ]);
18137
18105
  var UPLOADED_ASSET_MAX_FILES = 10;
18138
18106
  var UPLOADED_ASSET_IMAGE_MAX_FILES = 5;
18139
- var UploadedAssetId = z78.string().uuid();
18107
+ var UploadedAssetId = z78.string().guid();
18140
18108
  var HttpsUrl = z78.string().url().refine((value) => {
18141
18109
  try {
18142
18110
  const url2 = new URL(value);
@@ -18277,7 +18245,7 @@ var DropshippingProjectRewardMilestoneStateSchema = z79.object({
18277
18245
  credits: z79.number().int().positive(),
18278
18246
  available: z79.boolean().optional(),
18279
18247
  earned: z79.boolean(),
18280
- grantId: z79.string().uuid().nullable(),
18248
+ grantId: z79.string().guid().nullable(),
18281
18249
  grantedAt: z79.string().datetime().nullable()
18282
18250
  });
18283
18251
  var DropshippingProjectRewardProgressSchema = z79.object({
@@ -18343,16 +18311,16 @@ var HttpUrlSchema = z79.string().url().max(2e3).refine((value) => {
18343
18311
  }, "Product URL must use HTTP(S)");
18344
18312
  var ResearchCandidateOriginSchema = z79.object({
18345
18313
  type: z79.literal("research_candidate"),
18346
- runId: z79.string().uuid(),
18314
+ runId: z79.string().guid(),
18347
18315
  candidateSourceId: z79.string().min(1).max(160)
18348
18316
  });
18349
18317
  var TaskOriginSchema = z79.object({
18350
18318
  type: z79.literal("task"),
18351
- taskId: z79.string().uuid()
18319
+ taskId: z79.string().guid()
18352
18320
  });
18353
18321
  var ManualOriginSchema = z79.object({
18354
18322
  type: z79.literal("manual"),
18355
- clientRequestId: z79.string().uuid(),
18323
+ clientRequestId: z79.string().guid(),
18356
18324
  country: z79.string().min(2).max(3).optional()
18357
18325
  });
18358
18326
  var CreateDropshippingProjectRequestSchema = z79.object({
@@ -18425,11 +18393,11 @@ var DropshippingProjectNextActionSchema = z79.discriminatedUnion("kind", [
18425
18393
  })
18426
18394
  ]);
18427
18395
  var DropshippingProjectResponseSchema = z79.object({
18428
- id: z79.string().uuid(),
18429
- taskId: z79.string().uuid().nullable(),
18396
+ id: z79.string().guid(),
18397
+ taskId: z79.string().guid().nullable(),
18430
18398
  status: DropshippingProjectStatusSchema,
18431
18399
  originKey: z79.string().min(1),
18432
- researchRunId: z79.string().uuid().nullable(),
18400
+ researchRunId: z79.string().guid().nullable(),
18433
18401
  candidateSourceId: z79.string().nullable(),
18434
18402
  productName: z79.string().nullable(),
18435
18403
  productUrl: HttpUrlSchema.nullable(),
@@ -18784,7 +18752,7 @@ var mediaVideoFields = {
18784
18752
  var mediaImageFields = {
18785
18753
  kind: z81.literal("image"),
18786
18754
  durationSec: z81.never({
18787
- invalid_type_error: "a photo has no duration"
18755
+ error: "a photo has no duration"
18788
18756
  }).optional()
18789
18757
  };
18790
18758
  var mediaOriginFields = {
@@ -19029,7 +18997,7 @@ var LegacyMotionGraphicsClipSpecSchema = z84.discriminatedUnion("kind", [
19029
18997
  ...clipSpecFields,
19030
18998
  kind: z84.literal("broll"),
19031
18999
  speech: z84.never({
19032
- invalid_type_error: "only a speaking clip carries speech"
19000
+ error: "only a speaking clip carries speech"
19033
19001
  }).optional()
19034
19002
  }).strict(),
19035
19003
  z84.object({
@@ -19602,8 +19570,8 @@ var MotionGraphicsCreativeBatchSchema = z89.object({
19602
19570
  version: z89.literal("v1"),
19603
19571
  count: MotionGraphicsHookVariantsSchema,
19604
19572
  index: MotionGraphicsHookVariantsSchema,
19605
- rootTaskId: z89.string().uuid().optional(),
19606
- taskIds: z89.array(z89.string().uuid()).min(1).max(3).optional(),
19573
+ rootTaskId: z89.string().guid().optional(),
19574
+ taskIds: z89.array(z89.string().guid()).min(1).max(3).optional(),
19607
19575
  plans: MotionGraphicsCreativePlansSchema.optional()
19608
19576
  }).strict().superRefine((batch, ctx) => {
19609
19577
  if (batch.index > batch.count) ctx.addIssue({
@@ -19699,7 +19667,7 @@ var MotionGraphicsMusicStatusResponseSchema = z90.discriminatedUnion("status", [
19699
19667
  // ../../packages/types/src/website-capture-artifact.ts
19700
19668
  import { z as z91 } from "zod";
19701
19669
  var WebsiteCaptureBindingSchema = z91.object({
19702
- captureId: z91.string().uuid(),
19670
+ captureId: z91.string().guid(),
19703
19671
  bundleKey: z91.string().min(1),
19704
19672
  sha256: z91.string().regex(/^[a-f0-9]{64}$/)
19705
19673
  });
@@ -19843,7 +19811,7 @@ var motionGraphicsStateSchema = z93.object({
19843
19811
  /** Durable, unpaid Generate intent. Removed only after capture admission and payment. */
19844
19812
  captureAdmission: z93.object({
19845
19813
  version: z93.literal("v1"),
19846
- captureId: z93.string().uuid().optional(),
19814
+ captureId: z93.string().guid().optional(),
19847
19815
  maxSocialAcquisitionPriceCents: z93.number().finite().nonnegative(),
19848
19816
  maxTotalPriceCents: z93.number().finite().nonnegative(),
19849
19817
  deadlineAt: z93.string().datetime(),
@@ -21807,7 +21775,7 @@ var DailyControlProductFactsSchema = z96.object({
21807
21775
  currency: z96.string()
21808
21776
  });
21809
21777
  var DailyControlProductSchema = z96.object({
21810
- projectId: z96.string().uuid(),
21778
+ projectId: z96.string().guid(),
21811
21779
  productName: z96.string().nullable(),
21812
21780
  status: DailyControlStatusSchema,
21813
21781
  /** Motivo legible cuando status !== 'ok'. Nunca se rellenan métricas en ese caso. */
@@ -21852,7 +21820,7 @@ var DailyControlQuerySchema = z96.object({
21852
21820
  * necesita ese producto; sin este filtro cada carga de página lee el gasto
21853
21821
  * de TODOS los proyectos activos del usuario contra Meta/TikTok/Shopify.
21854
21822
  */
21855
- projectId: z96.string().uuid().optional()
21823
+ projectId: z96.string().guid().optional()
21856
21824
  });
21857
21825
  var LinkableCampaignSchema = z96.object({
21858
21826
  provider: z96.enum([
@@ -22061,7 +22029,7 @@ var CreateFinanceOperationSchema = z97.object({
22061
22029
  label: z97.string().trim().min(1).max(60).optional()
22062
22030
  }).strict();
22063
22031
  var FinanceOperationSchema = z97.object({
22064
- id: z97.string().uuid(),
22032
+ id: z97.string().guid(),
22065
22033
  countryCode: z97.string().length(2),
22066
22034
  currency: z97.string().min(3).max(3),
22067
22035
  label: z97.string().min(1)
@@ -22070,7 +22038,7 @@ var MonthlyPLQuerySchema = z97.object({
22070
22038
  /** Opcional a propósito: con UNA sola operación —el caso de casi todo el
22071
22039
  * mundo— el servidor la resuelve solo. Con varias devuelve cuáles son,
22072
22040
  * para poder preguntar por país en vez de fallar. */
22073
- operationId: z97.string().uuid().optional(),
22041
+ operationId: z97.string().guid().optional(),
22074
22042
  /** YYYY-MM. Solo mes calendario: es el periodo con el que se piensa un
22075
22043
  * negocio, y prorratear gastos fijos sobre un rango libre confunde más de
22076
22044
  * lo que ayuda. */
@@ -22079,7 +22047,7 @@ var MonthlyPLQuerySchema = z97.object({
22079
22047
  var RESERVED_EXPENSE_LABEL_PREFIX = "__ad_spend__";
22080
22048
  var isReservedExpenseLabel = /* @__PURE__ */ __name((label) => label.trim().startsWith(RESERVED_EXPENSE_LABEL_PREFIX), "isReservedExpenseLabel");
22081
22049
  var SaveMonthlyExpenseSchema = z97.object({
22082
- operationId: z97.string().uuid().optional(),
22050
+ operationId: z97.string().guid().optional(),
22083
22051
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
22084
22052
  label: z97.string().trim().min(1).max(80).refine((label) => !isReservedExpenseLabel(label), {
22085
22053
  message: "reserved_expense_label"
@@ -22087,7 +22055,7 @@ var SaveMonthlyExpenseSchema = z97.object({
22087
22055
  /** Unidades mayores de la moneda; conserva decimales donde aplique. */
22088
22056
  amount: z97.number().finite().min(0),
22089
22057
  allocations: z97.array(z97.object({
22090
- operationId: z97.string().uuid(),
22058
+ operationId: z97.string().guid(),
22091
22059
  sharePct: z97.number().int().min(1).max(100)
22092
22060
  })).min(1).refine((allocations) => allocations.reduce((sum, one) => sum + one.sharePct, 0) <= 100, {
22093
22061
  message: "allocations_must_sum_to_100"
@@ -22096,7 +22064,7 @@ var SaveMonthlyExpenseSchema = z97.object({
22096
22064
  }).optional()
22097
22065
  }).strict();
22098
22066
  var DeleteMonthlyExpenseSchema = z97.object({
22099
- operationId: z97.string().uuid().optional(),
22067
+ operationId: z97.string().guid().optional(),
22100
22068
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/),
22101
22069
  label: z97.string().trim().min(1).max(80).refine((label) => !isReservedExpenseLabel(label), {
22102
22070
  message: "reserved_expense_label"
@@ -22104,11 +22072,11 @@ var DeleteMonthlyExpenseSchema = z97.object({
22104
22072
  }).strict();
22105
22073
  var SetAdSpendSchema = z97.object({
22106
22074
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
22107
- operationId: z97.string().uuid().optional(),
22075
+ operationId: z97.string().guid().optional(),
22108
22076
  amount: z97.number().finite().min(0).nullable()
22109
22077
  }).strict();
22110
22078
  var MonthlyExpensesQuerySchema = z97.object({
22111
- operationId: z97.string().uuid().optional(),
22079
+ operationId: z97.string().guid().optional(),
22112
22080
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional()
22113
22081
  }).strict();
22114
22082
 
@@ -22137,13 +22105,13 @@ var ResolveUnmatchedProductSchema = z98.object({
22137
22105
  provider: z98.enum(PRODUCT_ALIAS_PROVIDERS),
22138
22106
  externalId: z98.string().trim().min(1).max(64),
22139
22107
  label: z98.string().trim().min(1).max(PRODUCT_ALIAS_LABEL_MAX_LENGTH),
22140
- operationId: z98.string().uuid(),
22108
+ operationId: z98.string().guid(),
22141
22109
  /** Presente ⇒ es el producto al que pertenece. Ausente ⇒ es uno nuevo. */
22142
- productControlId: z98.string().uuid().optional()
22110
+ productControlId: z98.string().guid().optional()
22143
22111
  }).strict();
22144
22112
  var MergeProductsSchema = z98.object({
22145
- sourceId: z98.string().uuid(),
22146
- targetId: z98.string().uuid()
22113
+ sourceId: z98.string().guid(),
22114
+ targetId: z98.string().guid()
22147
22115
  }).strict().refine((value) => value.sourceId !== value.targetId, {
22148
22116
  message: "merge_same_product",
22149
22117
  path: [
@@ -22151,8 +22119,8 @@ var MergeProductsSchema = z98.object({
22151
22119
  ]
22152
22120
  });
22153
22121
  var CreateProductControlFromTaskSchema = z98.object({
22154
- taskId: z98.string().uuid(),
22155
- operationId: z98.string().uuid().optional()
22122
+ taskId: z98.string().guid(),
22123
+ operationId: z98.string().guid().optional()
22156
22124
  }).strict();
22157
22125
 
22158
22126
  // ../../packages/types/src/product-order-line.ts
@@ -22200,7 +22168,7 @@ var ProductOrderLineSchema = z99.object({
22200
22168
  }).strict();
22201
22169
  var ORDER_LINES_BATCH_MAX = 5e3;
22202
22170
  var ImportOrderLinesSchema = z99.object({
22203
- operationId: z99.string().uuid(),
22171
+ operationId: z99.string().guid(),
22204
22172
  provider: z99.string().min(1).max(32),
22205
22173
  source: z99.string().min(1).max(32),
22206
22174
  reportedAt: z99.string().datetime(),
@@ -22226,7 +22194,7 @@ var ImportOrderLinesFileSchema = z99.object({
22226
22194
  /** El archivo en base64. `.xlsx` del proveedor. */
22227
22195
  fileBase64: z99.string().min(1).max(Math.ceil(8 * 1024 * 1024 / 3) * 4),
22228
22196
  filename: z99.string().min(1).max(200),
22229
- operationId: z99.string().uuid().optional(),
22197
+ operationId: z99.string().guid().optional(),
22230
22198
  provider: z99.string().min(1).max(32).default("dropi"),
22231
22199
  /**
22232
22200
  * Solo mirar: devuelve el resumen y NO escribe nada.
@@ -22260,7 +22228,7 @@ var OrderLinesFileSummarySchema = z99.object({
22260
22228
  });
22261
22229
  var SyncShopifyOrdersSchema = z99.object({
22262
22230
  shopDomain: z99.string().min(3).max(120).optional(),
22263
- operationId: z99.string().uuid().optional(),
22231
+ operationId: z99.string().guid().optional(),
22264
22232
  /** YYYY-MM-DD. Sin rango, el mes en curso. */
22265
22233
  since: z99.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
22266
22234
  until: z99.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
@@ -22461,7 +22429,7 @@ var SaveProductControlCostingSchema = z100.object({
22461
22429
  /** El de Shopify, cuando el producto vive en la tienda. */
22462
22430
  shopifyProductId: z100.string().min(1).optional(),
22463
22431
  /** El NUESTRO, para el producto que nació del archivo del proveedor. */
22464
- productControlId: z100.string().uuid().optional(),
22432
+ productControlId: z100.string().guid().optional(),
22465
22433
  /** Su precio de venta, solo si el producto no vive en Shopify. */
22466
22434
  manualSellingPrice: z100.number().positive().nullable().optional(),
22467
22435
  targetCountry: z100.string().min(2).max(2),
@@ -22501,7 +22469,7 @@ var SaveProductControlCostingSchema = z100.object({
22501
22469
  });
22502
22470
  var SaveProductCatalogSchema = z100.object({
22503
22471
  shopDomain: z100.string().min(1).optional(),
22504
- productControlId: z100.string().uuid(),
22472
+ productControlId: z100.string().guid(),
22505
22473
  /** Nulo BORRA la meta. Cero sería una meta de no ganar nada. */
22506
22474
  targetMonthlyProfit: z100.number().finite().positive().nullable().optional(),
22507
22475
  lifecycleStatus: z100.enum([
@@ -22524,7 +22492,7 @@ var ProductControlCampaignFieldsSchema = z100.object({
22524
22492
  }).strict();
22525
22493
  var LinkProductControlCampaignSchema = z100.union([
22526
22494
  ProductControlCampaignFieldsSchema.extend({
22527
- productControlId: z100.string().uuid()
22495
+ productControlId: z100.string().guid()
22528
22496
  }).strict(),
22529
22497
  ProductControlCampaignFieldsSchema.extend({
22530
22498
  shopDomain: z100.string().min(1),
@@ -22671,7 +22639,7 @@ var ImportFulfillmentCountsResponseSchema = z100.object({
22671
22639
  });
22672
22640
  var CreateManualProductControlSchema = z100.object({
22673
22641
  /** UUID que el diálogo fija por apertura; es además el id del producto. */
22674
- requestId: z100.string().uuid(),
22642
+ requestId: z100.string().guid(),
22675
22643
  title: z100.string().trim().min(1).max(200),
22676
22644
  /** País donde vende este producto; la moneda sale de él en el servidor. */
22677
22645
  targetCountry: z100.string().regex(/^[A-Z]{2}$/).refine((code) => {
@@ -22683,7 +22651,7 @@ var CreateManualProductControlSchema = z100.object({
22683
22651
  }
22684
22652
  }, "unsupported_finance_country"),
22685
22653
  /** Solo cuando coincide con el país elegido; si no, se omite. */
22686
- operationId: z100.string().uuid().optional(),
22654
+ operationId: z100.string().guid().optional(),
22687
22655
  manualSellingPrice: z100.number().finite().positive().max(Number.MAX_SAFE_INTEGER),
22688
22656
  supplierCost: z100.number().finite().positive().max(Number.MAX_SAFE_INTEGER),
22689
22657
  shippingCost: z100.number().finite().nonnegative().max(Number.MAX_SAFE_INTEGER),
@@ -22701,7 +22669,7 @@ var CreateManualProductControlSchema = z100.object({
22701
22669
  }
22702
22670
  });
22703
22671
  var CreateManualProductControlResponseSchema = z100.object({
22704
- productControlId: z100.string().uuid(),
22672
+ productControlId: z100.string().guid(),
22705
22673
  created: z100.boolean()
22706
22674
  });
22707
22675
 
@@ -22792,7 +22760,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22792
22760
  "approve_video_script",
22793
22761
  // 2026-10-14: optional exact plan binding shared by legacy/unified review.
22794
22762
  // Hash captured from the real registered schema in apps/mcp/src/server.test.ts.
22795
- "242c9ce8db5e19c065d67d2e3f3cf9fca20e119b9485bcf854a2233832523b0b",
22763
+ "5f7722993798d952d4a920a9bc7929a8c6a54f8ca13bff1b824d555dd680a6d2",
22796
22764
  "credit_consuming",
22797
22765
  "creative",
22798
22766
  [
@@ -22834,7 +22802,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22834
22802
  ], [
22835
22803
  "staging_asset"
22836
22804
  ], WHATSAPP_ONLY_CHANNEL_EXPOSURE),
22837
- defineCapability("check_media_upload", "daf202e0ff3a7a14425d164a7be6a81922b12233e85dbb898894e7c3ba6c5876", "none", "read_only", [
22805
+ defineCapability("check_media_upload", "58acbc7574d140389efbddfd45e660a353429681891b3d85a08b74351bb5acab", "none", "read_only", [
22838
22806
  "read"
22839
22807
  ], [
22840
22808
  slot("upload_session", true, [
@@ -22845,7 +22813,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22845
22813
  ], [
22846
22814
  "uploaded_asset"
22847
22815
  ], MCP_ONLY_CHANNEL_EXPOSURE),
22848
- defineCapability("cost_dropshipping_project", "411c0e362f132e564d5f948f8d87e3ae55f03dad7d02d8224b949b899a187359", "state_change", "business", [
22816
+ defineCapability("cost_dropshipping_project", "fead3bca76b7531c52020cd64135072593783fe12c0c605865a08f1d7d028001", "state_change", "business", [
22849
22817
  "state_change"
22850
22818
  ], [
22851
22819
  slot("project_revision", true, [
@@ -22882,7 +22850,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22882
22850
  ], [
22883
22851
  "project_costing"
22884
22852
  ]),
22885
- defineCapability("cost_product", "6d1f85a999dbdabae4eda406ff4689cdff2016df375b5b6741b91f4308d819af", "none", "read_only", [
22853
+ defineCapability("cost_product", "2272a6a3375401ced9deba82e41796b037aef20d712bc7996221e7fee0d7a4d7", "none", "read_only", [
22886
22854
  "read"
22887
22855
  ], [
22888
22856
  slot("product_reference", false, [], [
@@ -22926,7 +22894,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22926
22894
  // MCP 8.6.0: + storyteller narrative family and animationStyle axis.
22927
22895
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
22928
22896
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
22929
- "3e02399a7785df328f1c4d63cfbb6d7481abaac9f91d4a5cf51d410e657d63aa",
22897
+ "5991b2e897aad7b10c4e38a93e8c58234741498393439cf0228ed9ffd966efef",
22930
22898
  "credit_consuming",
22931
22899
  "creative",
22932
22900
  [
@@ -22984,7 +22952,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22984
22952
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
22985
22953
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
22986
22954
  // MCP 12.4.0: landingStrategy narrowed to classic + social_proof.
22987
- "c35f8c65762db3ea077b09f5f165e5571abea0f40250e4c096d1ef7cad7e5f7a",
22955
+ "5a6dd48977702dbb92a315fb668054f13918fd1cfae5056de82e94144e6f5804",
22988
22956
  "credit_consuming",
22989
22957
  "creative",
22990
22958
  [
@@ -23144,7 +23112,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23144
23112
  // SHARED_CHANNEL_EXPOSURE to restore it.
23145
23113
  WHATSAPP_ONLY_CHANNEL_EXPOSURE
23146
23114
  ),
23147
- defineCapability("edit_image_creative", "50eca473829328dfb63b9cbae03a9835b79c510e29528563e09b7eb3e5e9bca4", "credit_consuming", "creative", [
23115
+ defineCapability("edit_image_creative", "eb487773c4a9ffd5d4472c5a1d77e0fef7b625dbf9ca15b5da700a903ba30945", "credit_consuming", "creative", [
23148
23116
  "credit_consuming",
23149
23117
  "state_change"
23150
23118
  ], [
@@ -23163,7 +23131,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23163
23131
  ], [
23164
23132
  "creative"
23165
23133
  ]),
23166
- defineCapability("get_image_edit_status", "fe59aefd433afe7e5a2d8b4a81084583750c1447c877b6bce698340326665141", "none", "read_only", [
23134
+ defineCapability("get_image_edit_status", "3feb680140ab8459c10c22fb3aba3a7d41e147fddfcdd7e4cdac050c0f7ea34e", "none", "read_only", [
23167
23135
  "read"
23168
23136
  ], [
23169
23137
  slot("creative_operation", true, [
@@ -23175,7 +23143,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23175
23143
  ], [
23176
23144
  "creative_edit_status"
23177
23145
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23178
- defineCapability("edit_task_draft", "1c9343bdce51aac36ec6254557c8a904037746523168527f012b4c5b6361e98e", "state_change", "creative", [
23146
+ defineCapability("edit_task_draft", "6df71b63f0c00ba9eac12f31fb0b71610225ece74df85032025bb77197bb7c22", "state_change", "creative", [
23179
23147
  "state_change"
23180
23148
  ], [
23181
23149
  slot("task_angle", true, [
@@ -23190,7 +23158,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23190
23158
  ], [
23191
23159
  "task_draft"
23192
23160
  ]),
23193
- defineCapability("estimate_creative_variant", "d4453364c0706bf88f480cebc977916f06d222d7eebebc9cfa91165929a1a998", "none", "read_only", [
23161
+ defineCapability("estimate_creative_variant", "468079ba24e5e0d3c5c707cd54fec64571be429e66cadc12019af4d6e9d10c4e", "none", "read_only", [
23194
23162
  "read"
23195
23163
  ], [
23196
23164
  slot("source_task", true, [
@@ -23212,7 +23180,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23212
23180
  ], [
23213
23181
  "cost_estimate"
23214
23182
  ]),
23215
- defineCapability("estimate_market_study_cost", "d89b2ddfd5020446d7d2b58001b75eedb8f737bc17d908bdbdde1a1c9120f387", "none", "read_only", [
23183
+ defineCapability("estimate_market_study_cost", "d1fbe8ead642d481258c419a1eed059f9c8188d1cd9f2d4eed12e202fc8800a4", "none", "read_only", [
23216
23184
  "read"
23217
23185
  ], [
23218
23186
  slot("creative_kind", true, [
@@ -23237,7 +23205,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23237
23205
  ], [
23238
23206
  "cost_estimate"
23239
23207
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23240
- defineCapability("find_winning_products", "7c4c4fd675f8c1ae9795bd6c7a379207a08cbf9ac5794593b76122294c31e818", "credit_consuming", "business", [
23208
+ defineCapability("find_winning_products", "b73a18bb9618b96067b17791bf2f8e7450e17e34881c4f997e117be89abe058d", "credit_consuming", "business", [
23241
23209
  "credit_consuming",
23242
23210
  "state_change"
23243
23211
  ], [
@@ -23265,7 +23233,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23265
23233
  // from `pnpm --filter @productmaker/mcp test` printing the real digest.
23266
23234
  // Re-baselined 2026-09-26: `idempotencyKey` field description corrected —
23267
23235
  // paid tools ignore caller-provided keys and derive their own semantic key.
23268
- "0e21a9ae925347de20cad321161cb3af0f6a4f9e342c5c7139baf8de70056734",
23236
+ "e9ae8370da117bae121714da12b78f234e07a0805093bce354d7fb9fcec2291e",
23269
23237
  "credit_consuming",
23270
23238
  "creative",
23271
23239
  [
@@ -23324,7 +23292,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23324
23292
  "video"
23325
23293
  ]
23326
23294
  ),
23327
- defineCapability("generate_image_creatives", "2f1698b623d98645b7c618a17988f3aac30f403a9c3f3dc26eb5bdbd9c6ef23e", "credit_consuming", "creative", [
23295
+ defineCapability("generate_image_creatives", "f0d1f771d83c50070ebdef6554072e984997336cb9b7f7f06acd818b021a0187", "credit_consuming", "creative", [
23328
23296
  "credit_consuming",
23329
23297
  "state_change"
23330
23298
  ], [
@@ -23430,7 +23398,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23430
23398
  defineCapability(
23431
23399
  "generate_landing",
23432
23400
  // MCP 12.4.0: guided landingStrategy narrowed to classic + social_proof.
23433
- "d3ef2376273a5a1b987c79182e63ff00a03de322e1a13e0dc69f7ffa8330536e",
23401
+ "6db8df9db5410d0abe0f44da7027af4cc40aff37ef6e66e82164edbd889eeb63",
23434
23402
  "credit_consuming",
23435
23403
  "creative",
23436
23404
  [
@@ -23543,7 +23511,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23543
23511
  // MCP 8.6.0: + storyteller narrative family and animationStyle axis.
23544
23512
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
23545
23513
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
23546
- "f6cb1097e049216da08e1fb130e53e53761c13198cbb76d56e78fbf2e35441c1",
23514
+ "66dee35d59da0e88e72e24c503f3f1dc46c17c1162d98d48705e2bfe552f3f02",
23547
23515
  "credit_consuming",
23548
23516
  "creative",
23549
23517
  [
@@ -23664,7 +23632,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23664
23632
  }
23665
23633
  ]
23666
23634
  ),
23667
- defineCapability("get_meta_campaign_status", "92077241cf4e9d14edefca410e85715cc383b1433081c3461c925f8fc3d6e8ab", "none", "read_only", [
23635
+ defineCapability("get_meta_campaign_status", "a89fa144b69309bffd3d402c63ab6697757c447022d4af2a20d321f084efb274", "none", "read_only", [
23668
23636
  "read"
23669
23637
  ], [
23670
23638
  slot("campaign", true, [
@@ -23675,7 +23643,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23675
23643
  ], [
23676
23644
  "campaign_status"
23677
23645
  ]),
23678
- defineCapability("get_product_research_run", "3d0bfa4409daa4a8126d18787c3dc619dbdf2fbb679a2cffe9ffcd1c0d96402f", "none", "read_only", [
23646
+ defineCapability("get_product_research_run", "fd6d6260b4c9cf9cac5c0d210ceec54f99825d6214f7e3625622e82305e69550", "none", "read_only", [
23679
23647
  "read"
23680
23648
  ], [
23681
23649
  slot("research_run", true, [
@@ -23686,7 +23654,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23686
23654
  ], [
23687
23655
  "product_research_run"
23688
23656
  ]),
23689
- defineCapability("get_task_status", "6876d865685dd371ae6c2da2d5a69b657731e5a032aff46ac95b6077e9a6d93e", "none", "read_only", [
23657
+ defineCapability("get_task_status", "308241071b3ec785b1f0eba0fc17383e9fe8f2452c6a5a5ef27fd792a99b9d4c", "none", "read_only", [
23690
23658
  "read"
23691
23659
  ], [
23692
23660
  slot("task", true, [
@@ -23700,7 +23668,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23700
23668
  ], [
23701
23669
  "task_status"
23702
23670
  ]),
23703
- defineCapability("get_tiktok_campaign_status", "7a2f90a9a9ba91506fbb57a0a881d5a7b9ca1bb1074b0a754520f02fd81b2801", "none", "read_only", [
23671
+ defineCapability("get_tiktok_campaign_status", "e19b1536d8e317185fb9662a244cc1e94986004b5a4bf84beaf473b5de28562f", "none", "read_only", [
23704
23672
  "read"
23705
23673
  ], [
23706
23674
  slot("campaign", true, [
@@ -23714,7 +23682,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23714
23682
  ], [
23715
23683
  "campaign_status"
23716
23684
  ]),
23717
- defineCapability("get_video_script", "e987ff48555dfdab439f9910fb1fa25af373c78c8a9a5ef26458c82add90f2a2", "none", "read_only", [
23685
+ defineCapability("get_video_script", "1de9980596c34b71ce8843c090549cf310ed52933f53c2b9c3fca13204441d64", "none", "read_only", [
23718
23686
  "read"
23719
23687
  ], [
23720
23688
  slot("task", true, [
@@ -23728,7 +23696,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23728
23696
  ], [
23729
23697
  "video_script"
23730
23698
  ]),
23731
- defineCapability("guide_dropshipping_launch", "0e7a1cb5ad5c6681473df5689336edcd7a63b8d68853359982e44bfd98a65db8", "none", "business", [
23699
+ defineCapability("guide_dropshipping_launch", "1ab3654ed7ef02fbc7b690826a475f27839a3402ca301b8cf26992c11e8f7cf8", "none", "business", [
23732
23700
  "read"
23733
23701
  ], [
23734
23702
  slot("project", false, [
@@ -23750,7 +23718,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23750
23718
  "get_actor_voice_capabilities",
23751
23719
  // Filled by the MCP schema fingerprint test (sha256 of the canonicalized
23752
23720
  // inputSchema) — run apps/mcp server.test.ts to compute.
23753
- "4c31630c2796cbcf250b58f2205c7f5882ac53ad0c9ac7fe929f1b6de78952a5",
23721
+ "862c210dd3c6bf0584ac61deb84617ecb41bf0219098995a1c5b84133af33239",
23754
23722
  "none",
23755
23723
  "read_only",
23756
23724
  [
@@ -23769,7 +23737,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23769
23737
  ],
23770
23738
  MCP_ONLY_CHANNEL_EXPOSURE
23771
23739
  ),
23772
- defineCapability("quote_actor_voice", "5b1deafe387305bc268cd8d58761860b4c02bf10f0c5cd455925f96b40e7b24d", "none", "read_only", [
23740
+ defineCapability("quote_actor_voice", "4d2e9a643abf4cfe5e02789fed36cdfebc9ede6ab4557d0e5be1e4edb46fb836", "none", "read_only", [
23773
23741
  "read"
23774
23742
  ], [
23775
23743
  slot("actor", true, [
@@ -23783,7 +23751,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23783
23751
  ], [
23784
23752
  "actor_voice_quote"
23785
23753
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23786
- defineCapability("generate_actor_voice_preview", "e0c856beacda2344fb0830b5822848c01e82f1b6a7749176e8973c07d5a7c769", "credit_consuming", "creative", [
23754
+ defineCapability("generate_actor_voice_preview", "cb5a0033621df9bc88f4dcea658885eb35a4ebdc6ef88865c3d8afbe3b229548", "credit_consuming", "creative", [
23787
23755
  "credit_consuming",
23788
23756
  "state_change"
23789
23757
  ], [
@@ -23807,7 +23775,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23807
23775
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23808
23776
  defineCapability(
23809
23777
  "get_actor_voice_preview",
23810
- "58cc8667847be5e521534d6a19853782b9d4c65539ede8eaa5dbe7815e10ae3f",
23778
+ "b28f1c7d7e7981ed672509398242b7b7256e2ab44185699e6a0ecd8f39882761",
23811
23779
  "none",
23812
23780
  "creative",
23813
23781
  // Recovery uses the original accepted quote; it must not ask to pay again.
@@ -23832,7 +23800,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23832
23800
  ],
23833
23801
  MCP_ONLY_CHANNEL_EXPOSURE
23834
23802
  ),
23835
- defineCapability("approve_actor_voice", "ae77a93a483b24e9ec79322ac5a7ed39372517c196488b04b3cdfd2ef5205784", "state_change", "creative", [
23803
+ defineCapability("approve_actor_voice", "5b1c61b992dce69b35f9fb1a388bbd73d41c99575fa86b72121b043045254944", "state_change", "creative", [
23836
23804
  "state_change"
23837
23805
  ], [
23838
23806
  slot("actor", true, [
@@ -23866,7 +23834,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23866
23834
  ], [
23867
23835
  "meta_destination"
23868
23836
  ]),
23869
- defineCapability("list_product_research_runs", "3b8fac903cd9e30c5b6a6c584cc70a819af5392bbdbb32b69eab4c65dc52b556", "none", "read_only", [
23837
+ defineCapability("list_product_research_runs", "ee2d750bfd65a34a9c16bb39dac584fe0784956eaf7b0428a88b1e886846f2af", "none", "read_only", [
23870
23838
  "read"
23871
23839
  ], [
23872
23840
  slot("pagination", false, [
@@ -23877,7 +23845,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23877
23845
  ], [
23878
23846
  "product_research_run"
23879
23847
  ]),
23880
- defineCapability("list_shopify_products", "152b137e01066f3b443987ad75f5be00de8696ce984144bd775416192be20667", "none", "read_only", [
23848
+ defineCapability("list_shopify_products", "c3daf527e345f737c8b23eb347b77fbf2290433257753122a8d55fdc65d58e78", "none", "read_only", [
23881
23849
  "read"
23882
23850
  ], [
23883
23851
  slot("shop", true, [
@@ -23901,7 +23869,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23901
23869
  ], [
23902
23870
  "shop"
23903
23871
  ]),
23904
- defineCapability("list_tasks", "cac5e9dda34b90550024cc546976fab1d6de4fc8fca85a3ec6abde65223cb56c", "none", "read_only", [
23872
+ defineCapability("list_tasks", "4a553c287e590c2dcb905c63eb92c8612093a82476093b9f55c0821cad486598", "none", "read_only", [
23905
23873
  "read"
23906
23874
  ], [
23907
23875
  slot("pagination", false, [
@@ -23923,7 +23891,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23923
23891
  ], [
23924
23892
  "tiktok_advertiser"
23925
23893
  ]),
23926
- defineCapability("publish_creatives_to_meta", "dff962c84ed7d0393444dcbe86cb6f4016b5928c1d0005f78ce9a365f1923ac3", "external_mutation", "publishing", [
23894
+ defineCapability("publish_creatives_to_meta", "d9b8961cb26c2357f45b0ed95eae479affc840742b5b09620a67ce325568cbee", "external_mutation", "publishing", [
23927
23895
  "external_mutation",
23928
23896
  "state_change"
23929
23897
  ], [
@@ -23958,7 +23926,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23958
23926
  ], [
23959
23927
  "meta_campaign"
23960
23928
  ]),
23961
- defineCapability("publish_to_meta", "2d2946fbb796cc8198acfed5e15935c690516259a9bfa9e9a75d1fb33548eef2", "external_mutation", "publishing", [
23929
+ defineCapability("publish_to_meta", "663d574b4aa005a5df41f6b8ff458e3f983f874fe6caef94ab0ae8a1477f70bb", "external_mutation", "publishing", [
23962
23930
  "external_mutation",
23963
23931
  "state_change"
23964
23932
  ], [
@@ -23996,7 +23964,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23996
23964
  ], [
23997
23965
  "meta_publication"
23998
23966
  ]),
23999
- defineCapability("publish_to_shopify", "e041e404ad9f6cf49231c9bc38df22e6bd0aa6e4082b4ab8dc655a132b79873f", "external_mutation", "publishing", [
23967
+ defineCapability("publish_to_shopify", "00c4c7af09bb45a72896118ca154a2dc9518f05d74bb9386c825be541fa10fdb", "external_mutation", "publishing", [
24000
23968
  "external_mutation",
24001
23969
  "state_change"
24002
23970
  ], [
@@ -24039,7 +24007,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24039
24007
  // capability set unchanged, so the live agent's parity gate (which forces
24040
24008
  // shadow mode on any canonical gap) is not tripped. Gated server-side by
24041
24009
  // SERVICE_MOTION_GRAPHICS_ENABLED + the `service-motion-graphics` feature.
24042
- defineCapability("create_animated_video", "1d375b3ad4f60d9337009cb86209d66f05da127fdf2748c1cf9d36503e4dce5c", "credit_consuming", "creative", [
24010
+ defineCapability("create_animated_video", "2177ed726e767978eb61fa007f621b389f3b1eb3a2da967fdb44c279bf20fecd", "credit_consuming", "creative", [
24043
24011
  "credit_consuming",
24044
24012
  "state_change"
24045
24013
  ], [
@@ -24090,7 +24058,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24090
24058
  // MCP-only service journey (2026-10-11): brand analysis → service landing →
24091
24059
  // create_animated_video. WhatsApp has no adapter for either, so both are
24092
24060
  // declared unavailable there and its parity gate is unchanged.
24093
- defineCapability("create_brand", "7f5680574f38f1005d162c2a2a3805be82896508793ebcdd5491b8459c803158", "credit_consuming", "creative", [
24061
+ defineCapability("create_brand", "0dba1e46eaaf3ae6ffda459de7eebbdfb2f04da1180b21f84ae4caae434dbbcf", "credit_consuming", "creative", [
24094
24062
  "credit_consuming",
24095
24063
  "state_change"
24096
24064
  ], [
@@ -24113,7 +24081,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24113
24081
  ], [
24114
24082
  "brand"
24115
24083
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24116
- defineCapability("create_service_landing", "ce99d75f4b00bea23b6bf4f56ef3331b266176cb0a9dead55611ee78d21c41b3", "credit_consuming", "creative", [
24084
+ defineCapability("create_service_landing", "9e0f68278d2daa3bcf0326dd8e796d4dc82423f850c765efd48881c99f04a14f", "credit_consuming", "creative", [
24117
24085
  "credit_consuming",
24118
24086
  "state_change"
24119
24087
  ], [
@@ -24138,7 +24106,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24138
24106
  ], [
24139
24107
  "service_landing"
24140
24108
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24141
- defineCapability("create_service_images", "ce729a35f8781dd301514075e2e4408b6660db7523e3705ff2c8cbde571cddf6", "credit_consuming", "creative", [
24109
+ defineCapability("create_service_images", "937e86a1b0e3e0678a029062cddb0a9b632c8bcbb9864225f66488e3e2abdbed", "credit_consuming", "creative", [
24142
24110
  "credit_consuming",
24143
24111
  "state_change"
24144
24112
  ], [
@@ -24175,7 +24143,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24175
24143
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24176
24144
  // MCP-only recovery of an existing code edit. WhatsApp has no code-landing
24177
24145
  // editor or edit receipt input; it hands this recovery to ProductMaker Web.
24178
- defineCapability("verify_landing_commerce", "4b98ea73f291428fa19ec91ec37deb44a776b76cb19b0d47aef20ee905da7d10", "external_mutation", "publishing", [
24146
+ defineCapability("verify_landing_commerce", "f6dcbfbf8e90c39246f0b377745cd2c6c0f76f314c9736a257087c6d00a90f29", "external_mutation", "publishing", [
24179
24147
  "read",
24180
24148
  "state_change",
24181
24149
  "external_mutation"
@@ -24194,7 +24162,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24194
24162
  defineCapability(
24195
24163
  "publish_to_tiktok",
24196
24164
  // MCP 11.7.0: native WhatsApp destination and major-currency budget inputs.
24197
- "50b932193b62929498ae342417427ef84b1982eb7620c6baffb62c8fb986e66e",
24165
+ "ce6e6572583a615203835f6e191a50883ba00f95b8813b3c2bc3d5d92746b24f",
24198
24166
  "external_mutation",
24199
24167
  "publishing",
24200
24168
  [
@@ -24232,7 +24200,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24232
24200
  "tiktok_publication"
24233
24201
  ]
24234
24202
  ),
24235
- defineCapability("prepare_winning_product_image", "6915790d22256a648374412ac4d11126fe3fabc9404f4552205057f9da3ce0db", "none", "business", [
24203
+ defineCapability("prepare_winning_product_image", "51c4795176c13b67901e2aad161124598675c7e5ae476b35a63be5b06906ccca", "none", "business", [
24236
24204
  "state_change"
24237
24205
  ], [
24238
24206
  slot("winner_reference", true, [
@@ -24244,7 +24212,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24244
24212
  ], [
24245
24213
  "product_media"
24246
24214
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24247
- defineCapability("regenerate_video_script", "eb9546e5cda3864de78ff119ae81dd17c893ea9ea5be1bf0fbfeb8b45302e639", "credit_consuming", "creative", [
24215
+ defineCapability("regenerate_video_script", "e68fa5f4f6adb37c4275c60dcb6983d14655a030450c0ed75012044cff0aa29c", "credit_consuming", "creative", [
24248
24216
  "credit_consuming",
24249
24217
  "state_change"
24250
24218
  ], [
@@ -24284,7 +24252,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24284
24252
  ], [
24285
24253
  "meta_upload_session"
24286
24254
  ], WHATSAPP_ONLY_CHANNEL_EXPOSURE),
24287
- defineCapability("request_media_upload", "9a50a4647c61f97fb12bbb9b25f7660f392e3cd9825151735cd66292058882ea", "none", "creative", [
24255
+ defineCapability("request_media_upload", "ab70248efd499351ff119e5563e31185040b57e42ccc0e09efe6b6fbeea794a5", "none", "creative", [
24288
24256
  "state_change"
24289
24257
  ], [
24290
24258
  slot("media_kind", true, [
@@ -24307,7 +24275,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24307
24275
  ], [
24308
24276
  "media_upload_session"
24309
24277
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24310
- defineCapability("resolve_pending_action", "9377ff126ec842cfb8278877846c5f8f6f1b9ba0c263e7200f080db9bbe9ae12", "credit_consuming", "creative", [
24278
+ defineCapability("resolve_pending_action", "a7fef1e3299c2bfb387a16b3e1e243fba8df1db961ebc1f27d2119209124c293", "credit_consuming", "creative", [
24311
24279
  "credit_consuming",
24312
24280
  "state_change"
24313
24281
  ], [
@@ -24343,7 +24311,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24343
24311
  ], [
24344
24312
  "task"
24345
24313
  ]),
24346
- defineCapability("start_dropshipping_project", "2b621702e8da8bb894d392060e5e4f677a8dc26f454e991dbb929053715a4f8b", "state_change", "business", [
24314
+ defineCapability("start_dropshipping_project", "996385df905ed85a933c5726fbebf5a29a98f29364badd8256ff306aff38797c", "state_change", "business", [
24347
24315
  "state_change"
24348
24316
  ], [
24349
24317
  slot("origin", true, [
@@ -24364,7 +24332,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24364
24332
  ], [
24365
24333
  "dropshipping_project"
24366
24334
  ]),
24367
- defineCapability("get_daily_control", "d2ee70df5be00618ad23ef558f91e0066e03a69547a4f2d9310bf9ae51ae9a03", "none", "read_only", [
24335
+ defineCapability("get_daily_control", "f68e63aeda284d8f07040f6ec55c84ba5e55a515667a20bfe3a60268a6827130", "none", "read_only", [
24368
24336
  "read"
24369
24337
  ], [
24370
24338
  slot("window_end", false, [
@@ -24382,7 +24350,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24382
24350
  ], [
24383
24351
  "daily_control_report"
24384
24352
  ]),
24385
- defineCapability("link_campaign_to_project", "42785a9781412e0ad7cf7095b7188f315dea4003002777d5a4b1b9cc79ea05e0", "state_change", "business", [
24353
+ defineCapability("link_campaign_to_project", "1a6d51234a38259e9fa00475c76919742818efb32491a75ffa768ff9fede4013", "state_change", "business", [
24386
24354
  "state_change"
24387
24355
  ], [
24388
24356
  slot("project", true, [
@@ -24402,7 +24370,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24402
24370
  ], [
24403
24371
  "campaign_link"
24404
24372
  ]),
24405
- defineCapability("list_importable_products", "8f3e48f6494c85a3fab82163e11536d9d48aa77b058153efaabf4263548a8f02", "none", "read_only", [
24373
+ defineCapability("list_importable_products", "30404855a9d9c61bd437703f0287041ac77bf997fb7c6e5c7dafdf68712020a9", "none", "read_only", [
24406
24374
  "read"
24407
24375
  ], [
24408
24376
  slot("search", false, [
@@ -24419,7 +24387,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24419
24387
  ], [
24420
24388
  "importable_product_page"
24421
24389
  ]),
24422
- defineCapability("import_product_controls", "b9dae191963ae88ad33060db64eedd1cb63856108f18dbec0e8a039b05117d99", "state_change", "business", [
24390
+ defineCapability("import_product_controls", "f0e1de3062389541317f1351977e77fdcb50ee5d0d5251bbc1f1e7e2ab034515", "state_change", "business", [
24423
24391
  "state_change"
24424
24392
  ], [
24425
24393
  slot("products", true, [
@@ -24436,7 +24404,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24436
24404
  ], [
24437
24405
  "product_control"
24438
24406
  ]),
24439
- defineCapability("set_product_costing", "cce7a31e434c7a1f0af2e3ecaf591eb63c6e3570c466c29e2cab00432ab26bc9", "state_change", "business", [
24407
+ defineCapability("set_product_costing", "de1353c7061d00bf793ecc789c0300c6dd54f758dbff86b10915a51592a99df9", "state_change", "business", [
24440
24408
  "state_change"
24441
24409
  ], [
24442
24410
  /* La identidad sin tienda solo existe en el contrato MCP: el
@@ -24474,7 +24442,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24474
24442
  ], [
24475
24443
  "product_control_costing"
24476
24444
  ]),
24477
- defineCapability("get_product_control", "9d448f8cb2d40fa6547f7265bf908925375c33d891993c1f6e8cae5409729f32", "none", "read_only", [
24445
+ defineCapability("get_product_control", "cc67eec02bc5fba649e705078ecebf4703a3e3e25b9d3189921a7e2bae7f6c0c", "none", "read_only", [
24478
24446
  "read"
24479
24447
  ], [
24480
24448
  slot("day", false, [
@@ -24492,7 +24460,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24492
24460
  ], [
24493
24461
  "product_control_report"
24494
24462
  ]),
24495
- defineCapability("report_product_counts", "0d2eb30d9be73cd818a149af365b165ad5739a36ffb591149f9735bfd9636773", "state_change", "business", [
24463
+ defineCapability("report_product_counts", "8fa2561901b7743506a3639038d7806186c0512470bc6988a54c6bee5dbbb0b0", "state_change", "business", [
24496
24464
  "state_change"
24497
24465
  ], [
24498
24466
  slot("product_control", true, [
@@ -24521,7 +24489,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24521
24489
  ], [
24522
24490
  "product_control_daily_counts"
24523
24491
  ]),
24524
- defineCapability("get_finances", "da5fdd11b49980f85dcee63386e5b443786f65581612ce9333770a631e1ccf45", "none", "read_only", [
24492
+ defineCapability("get_finances", "bb57d3594b204597e9abd2d9beb7df644d07f5683a159d4de1860fa9d03aa5b4", "none", "read_only", [
24525
24493
  "read"
24526
24494
  ], [
24527
24495
  slot("month", false, [
@@ -24535,7 +24503,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24535
24503
  ], [
24536
24504
  "monthly_pl"
24537
24505
  ]),
24538
- defineCapability("sync_shopify_orders", "6a43ef95dc4d4943292416d0f3ef71da9ae19a16593bf76a294ef4b3f8f0eaac", "state_change", "business", [
24506
+ defineCapability("sync_shopify_orders", "0f821de23aa171e89e7e03c1910be57d8dbd878491cbad45a43c4540b4872910", "state_change", "business", [
24539
24507
  "state_change"
24540
24508
  ], [
24541
24509
  slot("shop", false, [
@@ -24555,7 +24523,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24555
24523
  ], [
24556
24524
  "product_order_line"
24557
24525
  ]),
24558
- defineCapability("import_orders_file", "d4691f530dee83c40613d70b2830dc91fb21f5822449601caeaaab409622911c", "state_change", "business", [
24526
+ defineCapability("import_orders_file", "449352851f20e229d488fd10dcfde682774d5c6ef0c66294bedfd6da8d1d93e9", "state_change", "business", [
24559
24527
  "state_change"
24560
24528
  ], [
24561
24529
  slot("orders_file", true, [
@@ -24577,7 +24545,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24577
24545
  ], [
24578
24546
  "product_order_line"
24579
24547
  ]),
24580
- defineCapability("create_operation", "0e610436a98cec2815216d526294da3cfc835830bb960e5dc0381d65b6edf9e5", "state_change", "business", [
24548
+ defineCapability("create_operation", "569501e4e03e6f1782fcf7458e752864804b1ffaa9eb7bd9522e05260939c938", "state_change", "business", [
24581
24549
  "state_change"
24582
24550
  ], [
24583
24551
  slot("country", true, [
@@ -24591,7 +24559,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24591
24559
  ], [
24592
24560
  "finance_operation"
24593
24561
  ]),
24594
- defineCapability("merge_products", "062d0afbedc3309c61cb7eaaf1902a05e2725897f04f5e79ad7e354ac8f05f21", "state_change", "business", [
24562
+ defineCapability("merge_products", "8519963a68603ed7f4a2a82d24e43f317f0a9840e7fd7ba5a90832c4f4a6bcaf", "state_change", "business", [
24595
24563
  "state_change"
24596
24564
  ], [
24597
24565
  slot("source_product", true, [
@@ -24605,7 +24573,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24605
24573
  ], [
24606
24574
  "product_control"
24607
24575
  ]),
24608
- defineCapability("set_monthly_expense", "2ad9958b36fbfc6d665ff1fb33e8fbd446b01d71fc60dcc0b2074fcf8770f2c1", "state_change", "business", [
24576
+ defineCapability("set_monthly_expense", "5ff786a29b44e1961c31fa30decd779d0a18fdf4d7a0bdff7fe130eda59640a4", "state_change", "business", [
24609
24577
  "state_change"
24610
24578
  ], [
24611
24579
  slot("expense_label", true, [
@@ -24625,7 +24593,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24625
24593
  ], [
24626
24594
  "monthly_expense"
24627
24595
  ]),
24628
- defineCapability("set_ad_spend", "edbf19766900aafde76ad5b203fd5c9ecbd3e976705b67ab82867a303a6fa6c9", "state_change", "business", [
24596
+ defineCapability("set_ad_spend", "45f5515a91679304c27f2753ec568bcfe0343644363ec3d185eea3a3f220bbc0", "state_change", "business", [
24629
24597
  "state_change"
24630
24598
  ], [
24631
24599
  slot("amount", true, [
@@ -24646,7 +24614,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24646
24614
  "get_dropi_status",
24647
24615
  // Filled by the MCP schema fingerprint test (sha256 of the canonicalized
24648
24616
  // inputSchema) — run apps/mcp server.test.ts to compute.
24649
- "3465e644ebdcaa404d8bcc1af629012c858bb4aed5bb1b56cfaa2af0d53cfc6e",
24617
+ "dbbf0cae464909761b30d649f08ebf588bc34ab66a0b67abcf9ff3442e1ec457",
24650
24618
  "none",
24651
24619
  "read_only",
24652
24620
  [
@@ -24671,7 +24639,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24671
24639
  defineCapability(
24672
24640
  "sync_dropi_orders",
24673
24641
  // Filled by the MCP schema fingerprint test.
24674
- "46f1172e7afe42991957a2dc262cce235dbf31ededdf37ccf866a583bb19123b",
24642
+ "a2b107f6f36ed6e9ed698e89ff54decf180bfce372adabd3bc0d00739ebd6a02",
24675
24643
  "state_change",
24676
24644
  "business",
24677
24645
  [
@@ -24705,7 +24673,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24705
24673
  defineCapability(
24706
24674
  "create_manual_product",
24707
24675
  // Filled by the MCP schema fingerprint test.
24708
- "4da701236ab1fd460e66f6def729f61a392bad62e8fecdaf8b3b3098fdec53cb",
24676
+ "00b0366e3c23989c10243e8c34ea74d2786c7f521093a006e53cc6e68750e5ad",
24709
24677
  "state_change",
24710
24678
  "business",
24711
24679
  [
@@ -24748,7 +24716,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24748
24716
  defineCapability(
24749
24717
  "list_unmatched_products",
24750
24718
  // Filled by the MCP schema fingerprint test.
24751
- "2c89690b4282a881f29f3bae11268786abf385c2bec0e3d7a1643098f4986e1b",
24719
+ "d72bf2d563daabe2ce719aeee4d3f1899154daba063ebca1ef69499e0ff09034",
24752
24720
  "none",
24753
24721
  "read_only",
24754
24722
  [
@@ -24770,7 +24738,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24770
24738
  defineCapability(
24771
24739
  "resolve_unmatched_product",
24772
24740
  // Filled by the MCP schema fingerprint test.
24773
- "39ccb99a5d138f7f99e25c00b68eec8972e34dbcbd966d2081cdaa7c76ac63ba",
24741
+ "05fb2d978e2e878cbbfeca78b87b0f7e25decedfcfa8490b7cfc055139953574",
24774
24742
  "state_change",
24775
24743
  "business",
24776
24744
  [
@@ -24822,7 +24790,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24822
24790
  defineCapability(
24823
24791
  "link_product_campaign",
24824
24792
  // Filled by the MCP schema fingerprint test.
24825
- "a9976318693f137dd37f4608d382fe1deb13b44c2f5257580c8b52b015899dde",
24793
+ "a4ea2424df8482eb5f004676aa6d43a24f8ad8790644a41f521cdeb879a306a9",
24826
24794
  "state_change",
24827
24795
  "business",
24828
24796
  [
@@ -24860,7 +24828,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24860
24828
  defineCapability(
24861
24829
  "delete_monthly_expense",
24862
24830
  // Filled by the MCP schema fingerprint test.
24863
- "fe9c5d5896165b9c65fbfed779db7918dabf87c69e1601430a1509ad2d452de9",
24831
+ "e762a6d49f2ab0ce1f51315d0d0ec11e1456c8b8b8200c66b899808f89f706d5",
24864
24832
  "state_change",
24865
24833
  "business",
24866
24834
  [
@@ -24888,7 +24856,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24888
24856
  defineCapability(
24889
24857
  "remove_product_control",
24890
24858
  // Filled by the MCP schema fingerprint test.
24891
- "ff0b7411497a0b28eda7294c35b09c45f8beff842bbc6a9a4cc993ba3d766cae",
24859
+ "e29785ec81add0115499e3ae616f47224c2c01dc61c5d7f65d306bc1ac28929f",
24892
24860
  "state_change",
24893
24861
  "business",
24894
24862
  [
@@ -24907,7 +24875,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24907
24875
  ],
24908
24876
  MCP_ONLY_CHANNEL_EXPOSURE
24909
24877
  ),
24910
- defineCapability("report_daily_returns", "7130d216656cc29a47fc972b4edad5003a6653fca48d95052fbf2b561636e91a", "state_change", "business", [
24878
+ defineCapability("report_daily_returns", "c64af9e1750adf5892caa76c0c170feec91e617ba1769ee5c0af17cbbb4fc6d2", "state_change", "business", [
24911
24879
  "state_change"
24912
24880
  ], [
24913
24881
  slot("project", true, [
@@ -25205,7 +25173,7 @@ var WhatsAppQuoteRecoveryReceiptSchema = z103.discriminatedUnion("state", [
25205
25173
  z103.object({
25206
25174
  ...recoveryBase,
25207
25175
  state: z103.literal("consumed"),
25208
- successorCommandId: z103.string().uuid(),
25176
+ successorCommandId: z103.string().guid(),
25209
25177
  choice: z103.enum([
25210
25178
  "without_winner",
25211
25179
  "retry"
@@ -25215,7 +25183,7 @@ var WhatsAppQuoteRecoveryReceiptSchema = z103.discriminatedUnion("state", [
25215
25183
  ...recoveryBase,
25216
25184
  state: z103.literal("awaiting_media"),
25217
25185
  successorCommandId: z103.null(),
25218
- successorCollectionId: z103.string().uuid(),
25186
+ successorCollectionId: z103.string().guid(),
25219
25187
  choice: z103.enum([
25220
25188
  "without_winner",
25221
25189
  "retry"
@@ -25243,10 +25211,10 @@ var json = z103.lazy(() => z103.union([
25243
25211
  z103.number().finite(),
25244
25212
  z103.string(),
25245
25213
  z103.array(json),
25246
- z103.record(json)
25214
+ z103.record(z103.string(), json)
25247
25215
  ]));
25248
25216
  var commandBase = {
25249
- commandId: z103.string().uuid(),
25217
+ commandId: z103.string().guid(),
25250
25218
  requestHash: z103.string().min(1).max(256),
25251
25219
  expectedUpdatedAt: z103.string().datetime(),
25252
25220
  result: json,
@@ -25254,7 +25222,7 @@ var commandBase = {
25254
25222
  };
25255
25223
  var proposedSnapshot = {
25256
25224
  ...commandBase,
25257
- sourceMessageId: z103.string().uuid(),
25225
+ sourceMessageId: z103.string().guid(),
25258
25226
  expectedStatus: z103.literal("proposed"),
25259
25227
  expectedResult: json
25260
25228
  };
@@ -25315,19 +25283,19 @@ var WhatsAppPresentationFinalizerSchema = z103.object({
25315
25283
  ]).optional(),
25316
25284
  plan: z103.object({
25317
25285
  guardOnly: z103.boolean().optional(),
25318
- planId: z103.string().uuid(),
25286
+ planId: z103.string().guid(),
25319
25287
  expectedPlanRevision: z103.number().int().nonnegative(),
25320
- stepId: z103.string().uuid(),
25288
+ stepId: z103.string().guid(),
25321
25289
  expectedStepRevision: z103.number().int().nonnegative(),
25322
- expectedCommandId: z103.string().uuid().nullable(),
25290
+ expectedCommandId: z103.string().guid().nullable(),
25323
25291
  next: z103.object({
25324
- stepId: z103.string().uuid(),
25292
+ stepId: z103.string().guid(),
25325
25293
  expectedRevision: z103.number().int().nonnegative()
25326
25294
  }).strict().nullable(),
25327
25295
  outputArtifacts: json
25328
25296
  }).strict().optional(),
25329
25297
  collection: z103.object({
25330
- collectionId: z103.string().uuid(),
25298
+ collectionId: z103.string().guid(),
25331
25299
  expectedRevision: z103.number().int().nonnegative(),
25332
25300
  expiresAt: z103.string().datetime()
25333
25301
  }).strict().optional()
@@ -25412,9 +25380,9 @@ var WhatsAppPresentationStepSchema = z104.discriminatedUnion("kind", [
25412
25380
  "research_ready",
25413
25381
  "research_failed"
25414
25382
  ]).optional(),
25415
- commandId: z104.string().uuid().optional(),
25416
- taskId: z104.string().uuid().optional(),
25417
- researchRunId: z104.string().uuid().optional()
25383
+ commandId: z104.string().guid().optional(),
25384
+ taskId: z104.string().guid().optional(),
25385
+ researchRunId: z104.string().guid().optional()
25418
25386
  }).strict().refine((value) => value.resetSourceSequence === void 0 || value.conversationReset === "completed", "Reset source sequence requires a completed reset").optional(),
25419
25387
  intentKey
25420
25388
  }).strict(),
@@ -25446,16 +25414,16 @@ var WhatsAppPresentationStepSchema = z104.discriminatedUnion("kind", [
25446
25414
  "tiktok"
25447
25415
  ])).max(3),
25448
25416
  fullResultUrl: z104.string().url().max(8192),
25449
- commandId: z104.string().uuid(),
25450
- taskId: z104.string().uuid(),
25417
+ commandId: z104.string().guid(),
25418
+ taskId: z104.string().guid(),
25451
25419
  intentKey
25452
25420
  }).strict(),
25453
25421
  z104.object({
25454
25422
  kind: z104.literal("reference_review"),
25455
- commandId: z104.string().uuid(),
25456
- taskId: z104.string().uuid(),
25423
+ commandId: z104.string().guid(),
25424
+ taskId: z104.string().guid(),
25457
25425
  snapshotHash: z104.string().length(64).regex(/^[a-f0-9]+$/),
25458
- pendingAction: z104.record(z104.unknown()),
25426
+ pendingAction: z104.record(z104.string(), z104.unknown()),
25459
25427
  previews: z104.array(preview).max(20),
25460
25428
  expectedPreviewCount: z104.number().int().min(0).max(50),
25461
25429
  intentKey
@@ -25881,7 +25849,7 @@ var ProductTruthBody = z107.object({
25881
25849
  out[key2] = rawIndexes.filter((i) => typeof i === "number" && Number.isInteger(i) && i >= 0 && i < 20);
25882
25850
  }
25883
25851
  return out;
25884
- }, z107.record(z107.array(z107.number().int().min(0).max(19))))
25852
+ }, z107.record(z107.string(), z107.array(z107.number().int().min(0).max(19))))
25885
25853
  })),
25886
25854
  confidence: z107.preprocess((v) => typeof v === "number" && Number.isFinite(v) ? Math.min(1, Math.max(0, v)) : 0, z107.number().min(0).max(1))
25887
25855
  });
@@ -26224,15 +26192,16 @@ var CreativeCompositionExecutorRoleSchema = z109.enum(CREATIVE_COMPOSITION_EXECU
26224
26192
  var CreativeCompositionJobSchema = z109.object({
26225
26193
  kind: z109.literal("creative_composition"),
26226
26194
  protocolVersion: CreativeCompositionProtocolVersionSchema,
26227
- jobId: z109.string().uuid(),
26195
+ jobId: z109.string().guid(),
26228
26196
  owner: CreativeEngineOwnerSchema,
26229
26197
  attempt,
26230
26198
  leaseUntil: z109.string().datetime(),
26231
26199
  deadlineAtMs: z109.number().int().nonnegative(),
26232
26200
  /**
26233
26201
  * Contract digest of the API that wrote the job. The renderer refuses a
26234
- * job whose digest is not its own (`renderer_schema_stale`). Absent only
26235
- * on rows written before digests existed.
26202
+ * job whose digest is neither current nor explicitly verified compatible
26203
+ * (`renderer_schema_stale`). Accepted jobs still meet the current schema.
26204
+ * Absent only on rows written before digests existed.
26236
26205
  */
26237
26206
  contractDigest: hash2.optional(),
26238
26207
  width: z109.number().int().positive().max(4096),
@@ -26310,10 +26279,10 @@ var CreativeCompositionClaimResponseSchema = z109.object({
26310
26279
  job: CreativeCompositionJobSchema.nullable()
26311
26280
  }).strict();
26312
26281
  var CreativeCompositionHeartbeatSchema = MotionGraphicsStageReportSchema.extend({
26313
- jobId: z109.string().uuid()
26282
+ jobId: z109.string().guid()
26314
26283
  });
26315
26284
  var CreativeCompositionUploadRequestSchema = z109.object({
26316
- jobId: z109.string().uuid(),
26285
+ jobId: z109.string().guid(),
26317
26286
  attempt,
26318
26287
  files: z109.array(z109.object({
26319
26288
  kind: z109.enum([
@@ -26337,7 +26306,7 @@ var CreativeCompositionUploadResponseSchema = z109.object({
26337
26306
  }).strict()).min(1).max(3)
26338
26307
  }).strict();
26339
26308
  var CreativeCompositionDoneRequestSchema = z109.object({
26340
- jobId: z109.string().uuid(),
26309
+ jobId: z109.string().guid(),
26341
26310
  attempt,
26342
26311
  width: z109.number().int().positive(),
26343
26312
  height: z109.number().int().positive(),
@@ -26345,14 +26314,14 @@ var CreativeCompositionDoneRequestSchema = z109.object({
26345
26314
  durationSec: z109.number().positive()
26346
26315
  }).strict();
26347
26316
  var CreativeCompositionFailedRequestSchema = z109.object({
26348
- jobId: z109.string().uuid(),
26317
+ jobId: z109.string().guid(),
26349
26318
  attempt,
26350
26319
  reason: z109.string().min(1).max(1e3),
26351
26320
  retryable: z109.literal(false)
26352
26321
  }).strict();
26353
26322
  var CreativeCompositionLocalManifestSchema = z109.object({
26354
26323
  kind: z109.literal("creative_composition"),
26355
- jobId: z109.string().uuid(),
26324
+ jobId: z109.string().guid(),
26356
26325
  owner: CreativeEngineOwnerSchema,
26357
26326
  plan: z109.object({
26358
26327
  revision: z109.number().int().positive(),
@@ -26438,8 +26407,8 @@ var CreativeEngineEditContextSnapshotSchema = z111.object({
26438
26407
  hash: hash3,
26439
26408
  binding: CreativeEngineContextBindingSchema,
26440
26409
  data: z111.object({
26441
- physical: z111.record(z111.unknown()),
26442
- commercial: z111.record(z111.unknown())
26410
+ physical: z111.record(z111.string(), z111.unknown()),
26411
+ commercial: z111.record(z111.string(), z111.unknown())
26443
26412
  }).strict(),
26444
26413
  references: z111.array(z111.object({
26445
26414
  sourceId: id4,
@@ -26509,7 +26478,7 @@ var CreativeEngineEditExecutionSchema = z111.object({
26509
26478
  version: z111.literal(1),
26510
26479
  source: CreativeEngineEditSourceSchema,
26511
26480
  intent: z111.object({
26512
- clientRequestId: z111.string().uuid(),
26481
+ clientRequestId: z111.string().guid(),
26513
26482
  sectionsHash: hash3,
26514
26483
  sourceBindingHash: hash3,
26515
26484
  derivedPlanHash: hash3,
@@ -26621,7 +26590,7 @@ var CreativeEngineEditProposalSchema = z111.object({
26621
26590
  userId: id4,
26622
26591
  taskId: id4,
26623
26592
  angleKey: id4,
26624
- clientRequestId: z111.string().uuid(),
26593
+ clientRequestId: z111.string().guid(),
26625
26594
  createdAtMs: z111.number().int().nonnegative(),
26626
26595
  expiresAtMs: z111.number().int().positive(),
26627
26596
  source: CreativeEngineEditSourceSchema,
@@ -26630,7 +26599,7 @@ var CreativeEngineEditProposalSchema = z111.object({
26630
26599
  context: CreativeEngineEditContextSnapshotSchema,
26631
26600
  recipe: CreativeEngineRecipeSchema,
26632
26601
  // The API validates these with its canonical section schema before persistence/use.
26633
- sections: z111.array(z111.record(z111.unknown())).min(1).max(32)
26602
+ sections: z111.array(z111.record(z111.string(), z111.unknown())).min(1).max(32)
26634
26603
  }).strict();
26635
26604
 
26636
26605
  // ../../packages/types/src/creative-engine-retry.ts
@@ -26692,7 +26661,7 @@ var CreativeEngineFreshRetryProvenanceSchema = z112.object({
26692
26661
  import { z as z113 } from "zod";
26693
26662
  var CreativeEngineEntryRequestSchema = z113.object({
26694
26663
  creativeEngine: z113.literal("unified_v1"),
26695
- taskId: z113.string().uuid(),
26664
+ taskId: z113.string().guid(),
26696
26665
  angleKey: z113.string().min(1).max(200),
26697
26666
  requestId: z113.string().min(1).max(200),
26698
26667
  guide: z113.enum([
@@ -26904,7 +26873,7 @@ import { z as z116 } from "zod";
26904
26873
  // ../../packages/types/src/service-landing-primitives.ts
26905
26874
  import { z as z115 } from "zod";
26906
26875
  var OptionalTextSchema = z115.string().trim().min(1).max(500).optional();
26907
- var AssetIdSchema = z115.string().uuid().transform((value) => value.toLowerCase());
26876
+ var AssetIdSchema = z115.string().guid().transform((value) => value.toLowerCase());
26908
26877
  var ServiceLandingPrimaryCtaSchema = z115.object({
26909
26878
  channelIndex: z115.number().int().nonnegative(),
26910
26879
  label: z115.string().trim().min(1).max(80)
@@ -27040,7 +27009,7 @@ var ServiceLandingContactChannelSchema = z116.discriminatedUnion("kind", [
27040
27009
  BookingUrlChannelSchema
27041
27010
  ]);
27042
27011
  var ServiceLandingServiceSchema = z116.object({
27043
- id: z116.string().uuid(),
27012
+ id: z116.string().guid(),
27044
27013
  name: z116.string().trim().min(1).max(120),
27045
27014
  description: OptionalTextSchema,
27046
27015
  inclusions: z116.array(z116.string().trim().min(1).max(160)).max(12),
@@ -27268,7 +27237,7 @@ var ServiceLandingArtifactSchema = z116.preprocess(applyCodeArtifactDefaults, z1
27268
27237
  // ../../packages/types/src/service-landing-facts-brand.ts
27269
27238
  import { z as z117 } from "zod";
27270
27239
  var ServiceLandingServiceFactsSchema = z117.object({
27271
- id: z117.string().uuid(),
27240
+ id: z117.string().guid(),
27272
27241
  name: z117.string().trim().min(1).max(120).optional(),
27273
27242
  description: OptionalTextSchema,
27274
27243
  inclusions: z117.array(z117.string().trim().min(1).max(160)).max(12).default([]),
@@ -27420,7 +27389,7 @@ var ServicePageParserMetadataSchema = z117.object({
27420
27389
  }).strict()).max(100).optional()
27421
27390
  }).strict();
27422
27391
  var ServicePageSourceSchema = z117.object({
27423
- id: z117.string().uuid(),
27392
+ id: z117.string().guid(),
27424
27393
  kind: ServicePageSourceKindSchema,
27425
27394
  status: ServicePageSourceStatusSchema,
27426
27395
  displayName: z117.string().trim().min(1).max(180).optional(),
@@ -27431,14 +27400,14 @@ var ServicePageSourceSchema = z117.object({
27431
27400
  var ServicePageFactConflictSchema = z117.object({
27432
27401
  fieldPath: z117.string().trim().min(1).max(180),
27433
27402
  candidates: z117.array(z117.object({
27434
- id: z117.string().uuid(),
27403
+ id: z117.string().guid(),
27435
27404
  value: z117.string().trim().min(1).max(500),
27436
- sourceIds: z117.array(z117.string().uuid()).min(1).max(10)
27405
+ sourceIds: z117.array(z117.string().guid()).min(1).max(10)
27437
27406
  }).strict()).min(2).max(8)
27438
27407
  }).strict();
27439
27408
  var ServicePageFactProvenanceSchema = z117.object({
27440
27409
  fieldPath: z117.string().trim().min(1).max(180),
27441
- sourceIds: z117.array(z117.string().uuid()).min(1).max(10),
27410
+ sourceIds: z117.array(z117.string().guid()).min(1).max(10),
27442
27411
  evidence: z117.string().trim().max(1e3).optional()
27443
27412
  }).strict();
27444
27413
  var ServicePageFactsReviewSchema = z117.object({
@@ -27454,26 +27423,26 @@ var ServicePageFactsReviewSchema = z117.object({
27454
27423
  // ../../packages/types/src/service-landing-api.ts
27455
27424
  import { z as z118 } from "zod";
27456
27425
  var ServicePageCreateRequestSchema = z118.object({
27457
- brandId: z118.string().uuid(),
27426
+ brandId: z118.string().guid(),
27458
27427
  includeBrandLogo: z118.boolean().optional(),
27459
- idempotencyKey: z118.string().uuid().optional()
27428
+ idempotencyKey: z118.string().guid().optional()
27460
27429
  }).strict();
27461
27430
  var ServicePageFactsUpdateRequestSchema = z118.object({
27462
27431
  expectedRevision: z118.number().int().nonnegative(),
27463
- idempotencyKey: z118.string().uuid(),
27432
+ idempotencyKey: z118.string().guid(),
27464
27433
  facts: ServicePageFactsSchema
27465
27434
  }).strict();
27466
27435
  var ServicePageFactsConfirmRequestSchema = z118.object({
27467
27436
  expectedRevision: z118.number().int().nonnegative(),
27468
- idempotencyKey: z118.string().uuid(),
27437
+ idempotencyKey: z118.string().guid(),
27469
27438
  resolutions: z118.array(z118.object({
27470
27439
  fieldPath: z118.string().trim().min(1).max(180),
27471
- candidateId: z118.string().uuid()
27440
+ candidateId: z118.string().guid()
27472
27441
  }).strict()).max(30)
27473
27442
  }).strict();
27474
27443
  var ServicePageIntakeRequestSchema = z118.object({
27475
27444
  expectedRevision: z118.number().int().nonnegative(),
27476
- idempotencyKey: z118.string().uuid(),
27445
+ idempotencyKey: z118.string().guid(),
27477
27446
  text: z118.string().trim().max(3e4).optional(),
27478
27447
  profileUrl: z118.string().trim().url().max(2048).refine((value) => {
27479
27448
  try {
@@ -27504,7 +27473,7 @@ var ServicePageAttachmentRefSchema = z118.object({
27504
27473
  "source",
27505
27474
  "asset"
27506
27475
  ]),
27507
- id: z118.string().uuid().transform((id6) => id6.toLowerCase())
27476
+ id: z118.string().guid().transform((id6) => id6.toLowerCase())
27508
27477
  }).strict();
27509
27478
  var ServicePageAttachmentRefsSchema = z118.array(ServicePageAttachmentRefSchema).max(SERVICE_PAGE_CHAT_ATTACHMENT_MAX_SELECTION).superRefine((refs, ctx) => {
27510
27479
  const seen = /* @__PURE__ */ new Set();
@@ -27537,13 +27506,13 @@ var ServicePageChatAttachmentUploadResponseSchema = z118.object({
27537
27506
  }).strict();
27538
27507
  var ServicePageChatAttachmentUploadRequestSchema = z118.object({
27539
27508
  expectedRevision: z118.number().int().nonnegative(),
27540
- idempotencyKey: z118.string().uuid(),
27509
+ idempotencyKey: z118.string().guid(),
27541
27510
  profileUrl: z118.string().url().max(2048).optional()
27542
27511
  }).strict();
27543
27512
  var ServicePageEditInstructionSchema = z118.string().trim().min(3).max(SERVICE_PAGE_EDIT_INSTRUCTION_MAX_CHARS);
27544
27513
  var ServicePageEditEstimateRequestSchema = z118.object({
27545
27514
  expectedRevision: z118.number().int().nonnegative(),
27546
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27515
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27547
27516
  instruction: ServicePageEditInstructionSchema.optional(),
27548
27517
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27549
27518
  }).strict();
@@ -27555,12 +27524,12 @@ var ServicePageEditEstimateResponseSchema = z118.object({
27555
27524
  }).strict();
27556
27525
  var ServicePageGenerationQuoteRequestSchema = z118.object({
27557
27526
  expectedRevision: z118.number().int().nonnegative(),
27558
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27527
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27559
27528
  instruction: ServicePageEditInstructionSchema.optional(),
27560
27529
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27561
27530
  }).strict();
27562
27531
  var ServicePageQuoteResponseSchema = z118.object({
27563
- quoteId: z118.string().uuid(),
27532
+ quoteId: z118.string().guid(),
27564
27533
  purpose: ServicePageQuotePurposeSchema,
27565
27534
  expectedRevision: z118.number().int().nonnegative(),
27566
27535
  requestHash: z118.string().regex(/^[a-f0-9]{64}$/),
@@ -27574,16 +27543,16 @@ var ServicePageQuoteResponseSchema = z118.object({
27574
27543
  requiresConfirmation: z118.literal(true)
27575
27544
  }).strict();
27576
27545
  var ServicePageGenerateRequestSchema = z118.object({
27577
- quoteId: z118.string().uuid(),
27578
- idempotencyKey: z118.string().uuid(),
27546
+ quoteId: z118.string().guid(),
27547
+ idempotencyKey: z118.string().guid(),
27579
27548
  expectedRevision: z118.number().int().nonnegative(),
27580
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27549
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27581
27550
  instruction: ServicePageEditInstructionSchema.optional(),
27582
27551
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27583
27552
  }).strict();
27584
27553
  var SERVICE_PAGE_CREATION_MAX_ATTEMPTS = 3;
27585
27554
  var ServicePageCreationMarkerSchema = z118.object({
27586
- rootOperationId: z118.string().uuid().optional(),
27555
+ rootOperationId: z118.string().guid().optional(),
27587
27556
  attempt: z118.number().int().min(1).max(SERVICE_PAGE_CREATION_MAX_ATTEMPTS)
27588
27557
  }).strict();
27589
27558
  var ServicePageCreationEstimateRequestSchema = z118.object({
@@ -27618,8 +27587,8 @@ var ServicePageOperationStatusSchema = z118.enum([
27618
27587
  "requires_reconciliation"
27619
27588
  ]);
27620
27589
  var ServicePageOperationResponseSchema = z118.object({
27621
- opId: z118.string().uuid(),
27622
- servicePageId: z118.string().uuid(),
27590
+ opId: z118.string().guid(),
27591
+ servicePageId: z118.string().guid(),
27623
27592
  kind: z118.enum([
27624
27593
  "fact_extraction",
27625
27594
  "generation"
@@ -27634,7 +27603,7 @@ var ServicePageOperationResponseSchema = z118.object({
27634
27603
  recoverable: z118.boolean()
27635
27604
  }).strict();
27636
27605
  var ServicePageEditHistoryItemSchema = z118.object({
27637
- opId: z118.string().uuid(),
27606
+ opId: z118.string().guid(),
27638
27607
  instruction: ServicePageEditInstructionSchema,
27639
27608
  status: ServicePageOperationStatusSchema,
27640
27609
  expectedRevision: z118.number().int().nonnegative(),
@@ -27649,8 +27618,8 @@ var ServicePageEditHistoryItemSchema = z118.object({
27649
27618
  }).strict();
27650
27619
  var ServicePageEditHistorySchema = z118.array(ServicePageEditHistoryItemSchema).max(50).default([]);
27651
27620
  var ServicePageOperationJobSchema = z118.object({
27652
- operationId: z118.string().uuid(),
27653
- servicePageId: z118.string().uuid(),
27621
+ operationId: z118.string().guid(),
27622
+ servicePageId: z118.string().guid(),
27654
27623
  userId: z118.string().min(1).max(256),
27655
27624
  kind: z118.enum([
27656
27625
  "fact_extraction",
@@ -27659,22 +27628,22 @@ var ServicePageOperationJobSchema = z118.object({
27659
27628
  }).strict();
27660
27629
  var ServicePageDraftUpdateRequestSchema = z118.object({
27661
27630
  expectedRevision: z118.number().int().nonnegative(),
27662
- idempotencyKey: z118.string().uuid(),
27663
- candidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27631
+ idempotencyKey: z118.string().guid(),
27632
+ candidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27664
27633
  artifact: ServiceLandingArtifactSchema
27665
27634
  }).strict();
27666
27635
  var ServicePagePublishRequestSchema = z118.object({
27667
27636
  expectedRevision: z118.number().int().nonnegative(),
27668
27637
  slug: z118.string().trim().toLowerCase().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(64),
27669
- idempotencyKey: z118.string().uuid()
27638
+ idempotencyKey: z118.string().guid()
27670
27639
  }).strict();
27671
27640
  var ServicePageUnpublishRequestSchema = z118.object({
27672
27641
  publishedRevision: z118.number().int().positive(),
27673
- idempotencyKey: z118.string().uuid()
27642
+ idempotencyKey: z118.string().guid()
27674
27643
  }).strict();
27675
27644
  var ServicePageSummarySchema = z118.object({
27676
- id: z118.string().uuid(),
27677
- brandId: z118.string().uuid().nullable(),
27645
+ id: z118.string().guid(),
27646
+ brandId: z118.string().guid().nullable(),
27678
27647
  businessName: z118.string().trim().min(1).max(120).nullable(),
27679
27648
  status: ServicePageStatusSchema,
27680
27649
  draftRevision: z118.number().int().nonnegative(),
@@ -27718,7 +27687,7 @@ var ServicePageListResponseSchema = z118.object({
27718
27687
  pages: z118.array(ServicePageSummarySchema)
27719
27688
  }).strict();
27720
27689
  var ServicePageIntakeResponseSchema = z118.object({
27721
- servicePageId: z118.string().uuid(),
27690
+ servicePageId: z118.string().guid(),
27722
27691
  draftRevision: z118.number().int().nonnegative(),
27723
27692
  sources: z118.array(ServicePageSourceSchema).max(50),
27724
27693
  facts: ServicePageFactsSchema,
@@ -27727,13 +27696,13 @@ var ServicePageIntakeResponseSchema = z118.object({
27727
27696
  assetsById: z118.record(AssetIdSchema, ServicePagePublicAssetSchema)
27728
27697
  }).strict();
27729
27698
  var ServicePagePreviewResponseSchema = z118.object({
27730
- servicePageId: z118.string().uuid(),
27699
+ servicePageId: z118.string().guid(),
27731
27700
  revision: z118.number().int().nonnegative(),
27732
27701
  artifact: ServiceLandingArtifactSchema,
27733
27702
  assetsById: z118.record(AssetIdSchema, ServicePagePublicAssetSchema)
27734
27703
  }).strict();
27735
27704
  var ServicePageAdminViewSchema = z118.object({
27736
- id: z118.string().uuid(),
27705
+ id: z118.string().guid(),
27737
27706
  businessName: z118.string().trim().min(1).max(120).nullable(),
27738
27707
  state: z118.enum([
27739
27708
  "created",
@@ -27746,7 +27715,7 @@ var ServicePageAdminViewSchema = z118.object({
27746
27715
  }).strict();
27747
27716
  var ServicePagePreviewRequestSchema = z118.object({
27748
27717
  expectedRevision: z118.number().int().nonnegative(),
27749
- candidateOperationId: z118.string().uuid().optional(),
27718
+ candidateOperationId: z118.string().guid().optional(),
27750
27719
  artifact: ServiceLandingArtifactSchema.optional()
27751
27720
  }).strict().superRefine((request, context) => {
27752
27721
  if (!request.artifact && !request.candidateOperationId) {
@@ -27904,7 +27873,7 @@ var FlightRecorderEntrySchema = z120.object({
27904
27873
  elements: z120.array(FlightRecorderElementSchema).optional(),
27905
27874
  distillation: FlightRecorderDistillationSchema.optional(),
27906
27875
  // Raw payload (sanitized of secrets)
27907
- rawPayload: z120.record(z120.unknown())
27876
+ rawPayload: z120.record(z120.string(), z120.unknown())
27908
27877
  });
27909
27878
  var FlightRecorderQuerySchema = z120.object({
27910
27879
  taskId: z120.string().min(1),
@@ -27959,7 +27928,7 @@ var Url = z122.string().url().refine((value) => {
27959
27928
  var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
27960
27929
  z122.object({
27961
27930
  kind: z122.literal("image"),
27962
- ownerTaskId: z122.string().uuid(),
27931
+ ownerTaskId: z122.string().guid(),
27963
27932
  sourceIndex: z122.number().int().positive(),
27964
27933
  variantIndex: z122.number().int().nonnegative(),
27965
27934
  url: Url,
@@ -27969,8 +27938,8 @@ var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
27969
27938
  }).strict(),
27970
27939
  z122.object({
27971
27940
  kind: z122.literal("gif"),
27972
- ownerTaskId: z122.string().uuid(),
27973
- gifId: z122.string().uuid(),
27941
+ ownerTaskId: z122.string().guid(),
27942
+ gifId: z122.string().guid(),
27974
27943
  gifRevision: z122.number().int().nonnegative(),
27975
27944
  demo: LandingGifReadableSchema,
27976
27945
  historicalDelivery: z122.literal(true).optional()
@@ -27978,10 +27947,10 @@ var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
27978
27947
  ]);
27979
27948
  var PublishedClassicLandingSchema = z122.object({
27980
27949
  version: z122.literal(1),
27981
- ownerTaskId: z122.string().uuid(),
27950
+ ownerTaskId: z122.string().guid(),
27982
27951
  documentRevision: z122.number().int().nonnegative(),
27983
27952
  ownerRevisions: z122.array(z122.object({
27984
- ownerTaskId: z122.string().uuid(),
27953
+ ownerTaskId: z122.string().guid(),
27985
27954
  landingRevision: z122.number().int().nonnegative()
27986
27955
  }).strict()).max(100),
27987
27956
  blocks: z122.array(ClassicLandingAssetBlockSchema).max(100)
@@ -28028,18 +27997,18 @@ import { z as z123 } from "zod";
28028
27997
  var DropiCountrySchema = z123.enum(DROPI_COUNTRY_CODES);
28029
27998
  var DropiCountryQuerySchema = z123.object({
28030
27999
  countryCode: DropiCountrySchema.default("CO"),
28031
- connectionId: z123.string().uuid().optional()
28000
+ connectionId: z123.string().guid().optional()
28032
28001
  }).strict();
28033
28002
  var ConnectDropiFinancialSchema = z123.object({
28034
28003
  countryCode: DropiCountrySchema.default("CO"),
28035
- connectionId: z123.string().uuid().optional(),
28004
+ connectionId: z123.string().guid().optional(),
28036
28005
  label: z123.string().trim().min(1).max(80).optional(),
28037
28006
  integrationKey: z123.string().trim().min(1).max(4096).regex(/^[\x21-\x7e]+$/)
28038
28007
  }).strict();
28039
28008
  var SyncDropiFinancialSchema = z123.object({
28040
28009
  countryCode: DropiCountrySchema.optional(),
28041
- operationId: z123.string().uuid().optional(),
28042
- connectionId: z123.string().uuid().optional(),
28010
+ operationId: z123.string().guid().optional(),
28011
+ connectionId: z123.string().guid().optional(),
28043
28012
  since: z123.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
28044
28013
  until: z123.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
28045
28014
  }).strict();
@@ -28047,7 +28016,7 @@ var connectionCountries = z123.array(DropiCountrySchema).max(DROPI_COUNTRY_CODES
28047
28016
  var DropiFinancialConnectionsSchema = z123.object({
28048
28017
  connectedCountries: connectionCountries,
28049
28018
  connections: z123.array(z123.object({
28050
- connectionId: z123.string().uuid(),
28019
+ connectionId: z123.string().guid(),
28051
28020
  countryCode: DropiCountrySchema,
28052
28021
  label: z123.string().min(1).max(80)
28053
28022
  }).strict()).max(21).optional(),
@@ -28057,7 +28026,7 @@ var DropiFinancialConnectionsSchema = z123.object({
28057
28026
  var DropiFinancialStatusSchema = z123.object({
28058
28027
  enabled: z123.boolean(),
28059
28028
  connected: z123.boolean(),
28060
- connectionId: z123.string().uuid().optional(),
28029
+ connectionId: z123.string().guid().optional(),
28061
28030
  connectionCount: z123.number().int().nonnegative().optional(),
28062
28031
  label: z123.string().min(1).max(80).optional(),
28063
28032
  countryCode: DropiCountrySchema,
@@ -28184,7 +28153,7 @@ var ServiceImageContextSchema = z124.object({
28184
28153
  // ../../packages/types/src/brand-creation.ts
28185
28154
  import { z as z125 } from "zod";
28186
28155
  var BrandCreationReceiptSchema = z125.object({
28187
- brandId: z125.string().uuid(),
28156
+ brandId: z125.string().guid(),
28188
28157
  status: z125.enum([
28189
28158
  "extracting",
28190
28159
  "ready",
@@ -28327,7 +28296,7 @@ var WebsiteCaptureRequestSchema = z127.object({
28327
28296
  language: MotionGraphicsLanguageSchema
28328
28297
  }).strict();
28329
28298
  var WebsiteCaptureResponseSchema = z127.object({
28330
- captureId: z127.string().uuid(),
28299
+ captureId: z127.string().guid(),
28331
28300
  status: WebsiteCaptureStatusSchema,
28332
28301
  expiresAt: z127.string().datetime(),
28333
28302
  previewUrl: z127.string().url().optional(),
@@ -28336,7 +28305,7 @@ var WebsiteCaptureResponseSchema = z127.object({
28336
28305
  cause: WebsiteCaptureCauseSchema.optional()
28337
28306
  });
28338
28307
  var WebsiteCaptureJobSchema = WebsiteCaptureRequestSchema.extend({
28339
- captureId: z127.string().uuid(),
28308
+ captureId: z127.string().guid(),
28340
28309
  attempt: z127.number().int().positive(),
28341
28310
  leaseUntil: z127.string().datetime(),
28342
28311
  /** Public profile document prepared by the API; never contains a provider credential. */
@@ -28499,7 +28468,7 @@ var image = z128.object({
28499
28468
  width: z128.number().int().positive(),
28500
28469
  height: z128.number().int().positive(),
28501
28470
  adCopy: nullableText,
28502
- rawResponse: z128.unknown()
28471
+ rawResponse: z128.unknown().optional()
28503
28472
  });
28504
28473
  var ProductDemoSnapshotSchema = z128.object({
28505
28474
  /** Optional only for packs frozen before seller review drafts were captured. */
@@ -28512,12 +28481,12 @@ var ProductDemoSnapshotSchema = z128.object({
28512
28481
  country: nullableText,
28513
28482
  features: z128.array(text3).max(100),
28514
28483
  form: nullableText,
28515
- details: z128.unknown(),
28484
+ details: z128.unknown().optional(),
28516
28485
  isCombo: z128.boolean(),
28517
- comboItems: z128.unknown(),
28486
+ comboItems: z128.unknown().optional(),
28518
28487
  images: z128.array(text3).min(1).max(50),
28519
28488
  cleanImages: z128.array(text3).max(50),
28520
- cleanImagesMeta: z128.unknown()
28489
+ cleanImagesMeta: z128.unknown().optional()
28521
28490
  }),
28522
28491
  angles: z128.array(z128.object({
28523
28492
  content: text3,
@@ -28536,7 +28505,7 @@ var ProductDemoSnapshotSchema = z128.object({
28536
28505
  durationSeconds: z128.number().int().positive().nullable(),
28537
28506
  format: VideoFormat,
28538
28507
  resultUrls: z128.array(text3).min(1).max(10),
28539
- rawResponse: z128.unknown(),
28508
+ rawResponse: z128.unknown().optional(),
28540
28509
  adCopy: nullableText
28541
28510
  })).min(1).max(10),
28542
28511
  landingImages: z128.array(z128.object({
@@ -28547,17 +28516,17 @@ var ProductDemoSnapshotSchema = z128.object({
28547
28516
  height: z128.number().int().positive(),
28548
28517
  notes: nullableText
28549
28518
  })).max(20),
28550
- landingConfig: z128.unknown(),
28519
+ landingConfig: z128.unknown().optional(),
28551
28520
  image,
28552
- productUseSheet: z128.unknown(),
28553
- productTruth: z128.unknown(),
28521
+ productUseSheet: z128.unknown().optional(),
28522
+ productTruth: z128.unknown().optional(),
28554
28523
  productReference: z128.object({
28555
28524
  referenceEvidenceVersion: z128.number().int().nonnegative(),
28556
28525
  planVersion: z128.number().int().positive(),
28557
28526
  baseReferenceSetHash: text3,
28558
- referenceSet: z128.unknown(),
28559
- preparationPlan: z128.unknown(),
28560
- canonicalIdentityAnchors: z128.unknown()
28527
+ referenceSet: z128.unknown().optional(),
28528
+ preparationPlan: z128.unknown().optional(),
28529
+ canonicalIdentityAnchors: z128.unknown().optional()
28561
28530
  })
28562
28531
  });
28563
28532
  var ProductDemoPhaseSchema = z128.enum([
@@ -28586,10 +28555,10 @@ var ProductDemoTaskStateSchema = z128.object({
28586
28555
  // ../../packages/types/src/demo-mode-service-page-assets.ts
28587
28556
  import { z as z129 } from "zod";
28588
28557
  var DemoServicePageAssetSourceSchema = z129.object({
28589
- pageId: z129.string().uuid(),
28558
+ pageId: z129.string().guid(),
28590
28559
  ownerId: z129.string().min(1),
28591
28560
  assets: z129.array(z129.object({
28592
- id: z129.string().uuid(),
28561
+ id: z129.string().guid(),
28593
28562
  storageKey: z129.string().min(1).max(1024),
28594
28563
  mediaType: z129.enum([
28595
28564
  "image/webp",
@@ -28665,14 +28634,14 @@ var DEMO_MODE_OPTIONAL_TEMPLATE_KEYS = [
28665
28634
  ...DEMO_MODE_OPTIONAL_MOTION_TEMPLATE_KEYS,
28666
28635
  ...DEMO_MODE_PRODUCT_ALL_TEMPLATE_KEYS
28667
28636
  ];
28668
- var optionalTemplateId = z130.preprocess((value) => value === "" ? void 0 : value, z130.string().uuid().optional());
28637
+ var optionalTemplateId = z130.preprocess((value) => value === "" ? void 0 : value, z130.string().guid().optional());
28669
28638
  var DemoModeTemplatesSchema = z130.object({
28670
- brandId: z130.string().uuid(),
28671
- servicePageId: z130.string().uuid(),
28672
- motionTaskId: z130.string().uuid(),
28639
+ brandId: z130.string().guid(),
28640
+ servicePageId: z130.string().guid(),
28641
+ motionTaskId: z130.string().guid(),
28673
28642
  motionVariantTaskId: optionalTemplateId,
28674
28643
  motionThirdTaskId: optionalTemplateId,
28675
- imageTaskId: z130.string().uuid(),
28644
+ imageTaskId: z130.string().guid(),
28676
28645
  productLandingTaskId: optionalTemplateId,
28677
28646
  productVideoTaskId: optionalTemplateId,
28678
28647
  productVideoVariantTaskId: optionalTemplateId,
@@ -28713,7 +28682,7 @@ var DemoModeSnapshotSchema = z130.object({
28713
28682
  product: ProductDemoSnapshotSchema.optional(),
28714
28683
  brand: z130.object({
28715
28684
  /** Columnas de identidad de `Brand` listas para un `update` (sin id/userId/slug/estado/fechas). */
28716
- identity: z130.record(z130.unknown()),
28685
+ identity: z130.record(z130.string(), z130.unknown()),
28717
28686
  productSamples: z130.array(z130.object({
28718
28687
  name: z130.string(),
28719
28688
  priceCents: z130.number().int().nullable(),
@@ -28733,9 +28702,9 @@ var DemoModeSnapshotSchema = z130.object({
28733
28702
  }))
28734
28703
  }),
28735
28704
  servicePage: z130.object({
28736
- facts: z130.unknown(),
28737
- review: z130.unknown(),
28738
- artifact: z130.unknown(),
28705
+ facts: z130.unknown().optional(),
28706
+ review: z130.unknown().optional(),
28707
+ artifact: z130.unknown().optional(),
28739
28708
  /** Optional only for snapshots saved before page-owned demo media. */
28740
28709
  assetSource: DemoServicePageAssetSourceSchema.optional()
28741
28710
  }),
@@ -28761,7 +28730,7 @@ var DemoModeSnapshotSchema = z130.object({
28761
28730
  width: z130.number().int(),
28762
28731
  height: z130.number().int(),
28763
28732
  adCopy: nullableString,
28764
- rawResponse: z130.unknown()
28733
+ rawResponse: z130.unknown().optional()
28765
28734
  })
28766
28735
  });
28767
28736
  var DemoModeConfigSchema = DemoModeEditableObjectSchema.extend({
@@ -28826,7 +28795,7 @@ var DemoModeJobSchema = z130.object({
28826
28795
  productPhase: ProductDemoJobPhaseSchema.optional(),
28827
28796
  step: DemoModeStepSchema,
28828
28797
  /** brandId | servicePageOperationId | taskId según el flujo. */
28829
- targetId: z130.string().uuid(),
28798
+ targetId: z130.string().guid(),
28830
28799
  userId: z130.string().min(1),
28831
28800
  /** Solo marca: la generación de extracción que el guion completa. */
28832
28801
  generation: z130.number().int().positive().optional(),
@@ -29307,7 +29276,7 @@ var ApiClient = class {
29307
29276
  };
29308
29277
 
29309
29278
  // src/index.ts
29310
- var MCP_VERSION = "12.4.0";
29279
+ var MCP_VERSION = "12.4.1";
29311
29280
 
29312
29281
  // src/meta-upload-app.ts
29313
29282
  import { readFileSync } from "fs";
@@ -30469,7 +30438,7 @@ var ImageCreativeAspectRatioEnum = ImageCreativeAspectRatio;
30469
30438
  var ImageRefSchema = z132.object({
30470
30439
  url: z132.string().url().optional().describe('URL p\xFAblica HTTPS de la foto. Ej: una URL de Shopify CDN, Cloudinary, Imgur. \xDAsala cuando el usuario te diga "est\xE1 en X.com/foto.jpg" o cuando la foto ya est\xE9 hospedada.'),
30471
30440
  path: z132.string().min(1).optional().describe('Ruta del archivo en el computador del usuario. Ej: "/Users/maria/Desktop/foto.jpg", "~/Pictures/camiseta.png", "C:\\Users\\Maria\\Desktop\\foto.jpg". El MCP local la lee del disco y la sube. SOLO funciona cuando el MCP corre local (stdio). NO funciona en mcp.productmaker.app (HTTP) \u2014 ah\xED usa `url`.'),
30472
- assetId: z132.string().uuid().optional().describe("ID opaco devuelto por check_media_upload. \xDAsalo para una imagen subida desde el MCP App; ProductMaker adopta el archivo directamente y el MCP nunca descarga sus bytes.")
30441
+ assetId: z132.string().guid().optional().describe("ID opaco devuelto por check_media_upload. \xDAsalo para una imagen subida desde el MCP App; ProductMaker adopta el archivo directamente y el MCP nunca descarga sus bytes.")
30473
30442
  }).refine((v) => [
30474
30443
  v.url,
30475
30444
  v.path,
@@ -31554,8 +31523,8 @@ function serviceVideoResultMedia(result) {
31554
31523
  }
31555
31524
  __name(serviceVideoResultMedia, "serviceVideoResultMedia");
31556
31525
  var CreativeVariantIdentity = z133.object({
31557
- variantTaskId: z133.string().uuid(),
31558
- sourceTaskId: z133.string().uuid(),
31526
+ variantTaskId: z133.string().guid(),
31527
+ sourceTaskId: z133.string().guid(),
31559
31528
  kind: TaskCreativeVariantKind,
31560
31529
  status: TaskStatusSchema,
31561
31530
  error: z133.string().optional()
@@ -32799,9 +32768,9 @@ var CreateAnimatedVideoInput = z135.object({
32799
32768
  "cancel",
32800
32769
  "generate"
32801
32770
  ]).default("prepare").describe("prepare inicia una captura gratuita; status consulta websiteCaptureId; cancel la cancela; generate requiere captura ready y confirmaci\xF3n expl\xEDcita del usuario despu\xE9s de mostrar vista previa y precio."),
32802
- brandId: z135.string().uuid().optional().describe("ID de un servicio propio y listo (de create_brand). Obligatorio al preparar y crear videos nuevos. Conserva el mismo brandId en reintentos; si recuperas una generaci\xF3n hist\xF3rica aceptada sin este campo, om\xEDtelo como en la petici\xF3n original. status/cancel no lo necesitan."),
32803
- websiteCaptureId: z135.string().uuid().optional().describe("ID de la captura preparada. Obligatorio para status/cancel/generate; no inventarlo."),
32804
- generationRequestId: z135.string().uuid().optional().describe("Identidad opcional de una generaci\xF3n confirmada. Repite el mismo UUID al recuperar una respuesta perdida; usa otro \xFAnicamente cuando el usuario pida y confirme otro video, nunca por un error de transporte."),
32771
+ brandId: z135.string().guid().optional().describe("ID de un servicio propio y listo (de create_brand). Obligatorio al preparar y crear videos nuevos. Conserva el mismo brandId en reintentos; si recuperas una generaci\xF3n hist\xF3rica aceptada sin este campo, om\xEDtelo como en la petici\xF3n original. status/cancel no lo necesitan."),
32772
+ websiteCaptureId: z135.string().guid().optional().describe("ID de la captura preparada. Obligatorio para status/cancel/generate; no inventarlo."),
32773
+ generationRequestId: z135.string().guid().optional().describe("Identidad opcional de una generaci\xF3n confirmada. Repite el mismo UUID al recuperar una respuesta perdida; usa otro \xFAnicamente cuando el usuario pida y confirme otro video, nunca por un error de transporte."),
32805
32774
  confirmed: z135.boolean().optional().describe("Solo true despu\xE9s de que el usuario confirme esta captura, formato, duraci\xF3n, idioma y precio. Obligatorio para generate; preparar no genera ni cobra."),
32806
32775
  // Plain text, not `.url()`: users type «cal.com», and the web accepts it.
32807
32776
  // normalizeWebAddress (shared with the web) adds https:// and refuses
@@ -32891,7 +32860,7 @@ var AnimatedVideoResultSchema = z135.object({
32891
32860
  index: MotionGraphicsHookVariantsSchema,
32892
32861
  count: MotionGraphicsHookVariantsSchema,
32893
32862
  tasks: z135.array(z135.object({
32894
- taskId: z135.string().uuid(),
32863
+ taskId: z135.string().guid(),
32895
32864
  index: MotionGraphicsHookVariantsSchema,
32896
32865
  status: z135.enum([
32897
32866
  "queued",
@@ -33202,7 +33171,7 @@ function registerAnimatedVideoTools(server, api) {
33202
33171
  nowMs: 0
33203
33172
  })
33204
33173
  });
33205
- const parsedTaskIds = z135.array(z135.string().uuid()).min(1).max(MOTION_GRAPHICS_HOOK_VARIANTS_MAX).safeParse(created.taskIds);
33174
+ const parsedTaskIds = z135.array(z135.string().guid()).min(1).max(MOTION_GRAPHICS_HOOK_VARIANTS_MAX).safeParse(created.taskIds);
33206
33175
  const taskIds = parsedTaskIds.success && parsedTaskIds.data[0] === created.taskId ? parsedTaskIds.data : void 0;
33207
33176
  const receipt = {
33208
33177
  taskId: created.taskId,
@@ -33246,7 +33215,7 @@ __name(registerAnimatedVideoTools, "registerAnimatedVideoTools");
33246
33215
  // src/tools/winning-product-image.ts
33247
33216
  import { z as z136 } from "zod";
33248
33217
  var WinnerReferenceInput = z136.object({
33249
- runId: z136.string().uuid(),
33218
+ runId: z136.string().guid(),
33250
33219
  candidateSourceId: z136.string().trim().min(1).max(160)
33251
33220
  }).strict().describe("Referencia opaca de un producto devuelto por find_winning_products/get_product_research_run.");
33252
33221
  async function resolveWinnerImages(api, winnerReference, images) {
@@ -33287,7 +33256,7 @@ var editTaskDraftGuidance = getProductMakerCapabilityModelGuidance("edit_task_dr
33287
33256
  var CreateProductTaskInput = z137.object({
33288
33257
  images: ImagesInput.optional().describe("1\u20135 fotos del mismo producto. Omitir \xFAnicamente cuando projectId apunta a un proyecto propio con imagen guardada."),
33289
33258
  winnerReference: WinnerReferenceInput.optional().describe(WINNER_IMAGE_CHOICE_GUIDANCE),
33290
- projectId: z137.string().uuid().optional().describe("Opcional. Proyecto guiado propio. Permite continuar sin volver a subir la imagen guardada; nunca evita cr\xE9ditos, cuotas ni confirmaciones."),
33259
+ projectId: z137.string().guid().optional().describe("Opcional. Proyecto guiado propio. Permite continuar sin volver a subir la imagen guardada; nunca evita cr\xE9ditos, cuotas ni confirmaciones."),
33291
33260
  productUrl: z137.string().url().optional().describe("Opcional. URL de la p\xE1gina del producto (Shopify, AliExpress, Amazon, etc.) para enriquecer el contexto. Si se omite, la IA infiere todo desde la imagen."),
33292
33261
  language: Lang.describe('C\xF3digo de idioma para el contenido generado. Ejemplos: "es", "en", "pt". REQUERIDO \u2014 si el usuario no lo especific\xF3, PREG\xDANTALE antes de invocar. NUNCA infieras desde el contexto del chat ni asumas "es" por default.'),
33293
33262
  country: Country.describe('C\xF3digo ISO del pa\xEDs objetivo. Ejemplos: "CO", "MX", "US", "AR". Define moneda, m\xE9todos de pago locales y tono. REQUERIDO \u2014 si el usuario no lo especific\xF3, PREG\xDANTALE antes de invocar. NUNCA infieras desde el contexto del chat.'),
@@ -33320,7 +33289,7 @@ var CreateProductTaskInput = z137.object({
33320
33289
  competitorScanEnabled: z137.boolean().optional().describe("Opcional. Default false: omitirlo significa SIN estudio de mercado. Antes de crear, llama estimate_market_study_cost con kind=product_task, muestra al usuario el costo con y sin estudio y preg\xFAntale si lo quiere; env\xEDa true solo si lo acepta (o si solicita la narrativa an\xE1lisis de mercado). Si la tarea incluye video, true analiza anuncios de la competencia y desbloquea la narrativa an\xE1lisis de mercado; si el estudio no encuentra datos suficientes, degrada al planner cl\xE1sico."),
33321
33290
  generateAiEdit: AiEditRequestSchema.optional().describe('Opcional. Pide la Edici\xF3n con IA: una pasada que a\xF1ade texto, efectos y m\xFAsica sobre cada video entregado (variante with_ai_edit; se cobra al entregar, por video). Nivel: "economy" (Econ\xF3mica, Sonnet 5.5, m\xE1s barata) o "pro" (Opus 5.5, mejor calidad, ~10 min). true equivale a "pro"; false/omitido = sin edici\xF3n.'),
33322
33291
  replicateWinnerWhenFound: z137.boolean().optional().describe("Conserva la preferencia de copiar un ganador si existe. false estudia el mercado sin reemplazar un \xE1ngulo por el anuncio ganador. No a\xF1ade una pregunta obligatoria."),
33323
- brandId: z137.string().uuid().optional().describe("Opcional. ID de una marca del usuario; si se env\xEDa, el sistema usa su voz, colores y persona para enriquecer los outputs generados."),
33292
+ brandId: z137.string().guid().optional().describe("Opcional. ID de una marca del usuario; si se env\xEDa, el sistema usa su voz, colores y persona para enriquecer los outputs generados."),
33324
33293
  actorId: z137.string().trim().min(1).max(120).optional().describe("Opcional. ID de un personaje guardado (usa list_actors para verlos). Si lo env\xEDas, su foto y su voz mandan sobre la descripci\xF3n de texto."),
33325
33294
  creativeGender: CreativeGenderEnum.optional().describe('Opcional. QUI\xC9N APARECE EN PANTALLA en todos los creativos de la task: el presentador del video, las personas fotografiadas en la landing y la persona del anuncio. NO es la voz. M\xE1ndalo en cuanto el usuario lo diga en cualquier momento de la conversaci\xF3n y con cualquier redacci\xF3n ("quiero una mujer", "que salga un hombre", "esto es para hombres"): si no lo mandas, el g\xE9nero lo inventa la IA y el usuario recibe lo contrario de lo que pidi\xF3 sin ning\xFAn aviso. "mixed" solo cuando pida expl\xEDcitamente ambos. Si adem\xE1s mandas actorId, el personaje guardado manda sobre este campo.'),
33326
33295
  creativeDirection: z137.string().max(500).optional().describe('Opcional. Direcci\xF3n creativa en texto libre (colores, mood, estilo) que aplica a los outputs de IMAGEN y LANDING (no al video \u2014 el estilo/ambiente del video se dirige con scriptNotes). M\xC1XIMA PRIORIDAD: anula marca, colores y estilo por defecto. Ej. "amarillo y azul, minimalista". M\xE1x 500 caracteres.'),
@@ -33334,7 +33303,7 @@ var CreateServiceVideoInput = z137.object({
33334
33303
  additionalContext: z137.string().max(3e3).optional().describe('Instrucci\xF3n natural prioritaria. Ej.: "adapta el ritmo de estos competidores", "enfatiza reservas de demos" o restricciones de claims.'),
33335
33304
  language: Lang.describe("Idioma del video: es, en o pt."),
33336
33305
  voiceId: z137.string().trim().min(1).pipe(VoiceId).optional().describe('Opcional. Voz para toda la narraci\xF3n. Usa "auto" para que la IA la alinee con el presentador. Las voces del banco compartido fueron retiradas.'),
33337
- brandId: z137.string().uuid().optional().describe("Marca guardada del usuario. Aplica voz, mensajes, paleta y persona predeterminada."),
33306
+ brandId: z137.string().guid().optional().describe("Marca guardada del usuario. Aplica voz, mensajes, paleta y persona predeterminada."),
33338
33307
  reviewMode: z137.enum([
33339
33308
  "automatic",
33340
33309
  "guided"
@@ -33380,7 +33349,7 @@ var PendingActionPayload = z137.discriminatedUnion("kind", [
33380
33349
  kind: z137.literal("product_reference_set_approval"),
33381
33350
  scope: ProductReferenceScopeEnum.optional(),
33382
33351
  scopeKey: z137.string().min(1).max(120).optional(),
33383
- scopeSnapshotId: z137.string().uuid().optional(),
33352
+ scopeSnapshotId: z137.string().guid().optional(),
33384
33353
  expectedScopeHash: z137.string().min(1).max(128).optional(),
33385
33354
  decision: ProductReferenceResolutionDecisionEnum,
33386
33355
  reason: ProductReferenceRejectionReasonEnum.optional(),
@@ -33445,7 +33414,7 @@ var PendingActionPayload = z137.discriminatedUnion("kind", [
33445
33414
  }),
33446
33415
  z137.object({
33447
33416
  kind: z137.literal("service_angle_approval"),
33448
- angleId: z137.string().uuid().optional(),
33417
+ angleId: z137.string().guid().optional(),
33449
33418
  angleNumber: z137.number().int().positive().optional(),
33450
33419
  content: z137.string().min(1).max(480).optional(),
33451
33420
  creativeDirection: z137.string().min(1).max(1500).optional(),
@@ -33548,7 +33517,7 @@ var StatusForResolveSchema = z137.object({
33548
33517
  }).optional(),
33549
33518
  scope: ProductReferenceScopeEnum.optional(),
33550
33519
  scopeKey: z137.string().optional(),
33551
- scopeSnapshotId: z137.string().uuid().optional(),
33520
+ scopeSnapshotId: z137.string().guid().optional(),
33552
33521
  scopeHash: z137.string().optional(),
33553
33522
  baseReferenceSetHash: z137.string().optional(),
33554
33523
  phase: z137.enum([
@@ -33577,7 +33546,7 @@ var StatusForResolveSchema = z137.object({
33577
33546
  // dropped here, so the approval handler below could not echo it back on the
33578
33547
  // PATCH — the selection looked accepted and reached no render.
33579
33548
  angles: z137.array(z137.object({
33580
- id: z137.string().uuid(),
33549
+ id: z137.string().guid(),
33581
33550
  content: z137.string(),
33582
33551
  creativeDirection: z137.string(),
33583
33552
  actor: z137.string(),
@@ -33939,8 +33908,8 @@ ANTES de invocar, resume outputs, cantidad de videos y datos comerciales, explic
33939
33908
  server.registerTool("verify_landing_commerce", {
33940
33909
  description: getProductMakerCapabilityModelGuidance("verify_landing_commerce").summary + " Verifica una correcci\xF3n manual de precios, tachados o packs de una landing editable existente. Solo relee Shopify y los recibos externos; no cambia precios, inventario, SKU ni compra una edici\xF3n. Pasa taskId y editId de la edici\xF3n ya conocida; nunca inventes IDs ni pidas repetir el cambio. Devuelve el estado can\xF3nico por proveedor: conserva el aviso pendiente hasta confirmar los valores reales. Solo despu\xE9s de confirmar todos los valores, el servidor puede volver a habilitar la compra. Web guardada no demuestra publicaci\xF3n p\xFAblica ni checkout; muestra las correcciones y enlaces pendientes sin c\xF3digos t\xE9cnicos. La disponibilidad del editor conserva sus permisos actuales.",
33941
33910
  inputSchema: {
33942
- taskId: z137.string().uuid(),
33943
- editId: z137.string().uuid()
33911
+ taskId: z137.string().guid(),
33912
+ editId: z137.string().guid()
33944
33913
  },
33945
33914
  annotations: OVERWRITES_EXTERNAL
33946
33915
  }, async (input) => {
@@ -34219,7 +34188,7 @@ ANTES de invocar, resume outputs, cantidad de videos y datos comerciales, explic
34219
34188
  ...page.data,
34220
34189
  items: page.data.items.map((item) => {
34221
34190
  const servicePage = z137.object({
34222
- taskId: z137.string().uuid(),
34191
+ taskId: z137.string().guid(),
34223
34192
  resourceType: z137.literal("service_page")
34224
34193
  }).passthrough().safeParse(item);
34225
34194
  if (!servicePage.success) return item;
@@ -34731,7 +34700,7 @@ var CreateBrandInput = z138.object({
34731
34700
  "pt"
34732
34701
  ]).optional().describe("Idioma de la conversaci\xF3n. Solo se usa si la p\xE1gina del negocio no deja claro su idioma."),
34733
34702
  confirmed: z138.boolean().optional().describe("Solo true despu\xE9s de mostrar el precio y que el usuario acepte. Sin confirmed, start solo cotiza y no cobra."),
34734
- brandId: z138.string().uuid().optional().describe("ID de la marca. Obligatorio para status; no lo inventes.")
34703
+ brandId: z138.string().guid().optional().describe("ID de la marca. Obligatorio para status; no lo inventes.")
34735
34704
  }).strict();
34736
34705
  function normalizeBrandSourceUrl(raw) {
34737
34706
  const value = raw.trim();
@@ -35026,12 +34995,12 @@ var CreateServiceLandingInput = z139.object({
35026
34995
  "status",
35027
34996
  "publish"
35028
34997
  ]).default("prepare").describe("prepare (gratis) crea o retoma la landing de la marca y da el precio; build (pagado, confirmed=true) genera la p\xE1gina directamente con la marca y los datos guardados; status sigue el avance; publish la publica y devuelve su enlace."),
35029
- brandId: z139.string().uuid().optional().describe("ID de la marca (de create_brand). Obligatorio para prepare. Nunca un taskId de producto."),
35030
- servicePageId: z139.string().uuid().optional().describe("ID de la landing que devolvi\xF3 prepare. Obligatorio para build, status y publish."),
34998
+ brandId: z139.string().guid().optional().describe("ID de la marca (de create_brand). Obligatorio para prepare. Nunca un taskId de producto."),
34999
+ servicePageId: z139.string().guid().optional().describe("ID de la landing que devolvi\xF3 prepare. Obligatorio para build, status y publish."),
35031
35000
  businessInfo: z139.string().trim().max(SERVICE_LANDING_INFO_MAX_CHARS).optional().describe("Opcional. Lo que el usuario cont\xF3 del negocio y no estaba en su marca: servicios y precios, WhatsApp o tel\xE9fono, ciudad o zona, horarios. Copia sus palabras; no inventes datos."),
35032
35001
  confirmed: z139.boolean().optional().describe("Solo true despu\xE9s de mostrar el precio total y que el usuario acepte. Obligatorio para build."),
35033
35002
  maxCredits: z139.number().int().positive().optional().describe("El total en cr\xE9ditos que el usuario acept\xF3 (el que devolvi\xF3 prepare). Obligatorio para build: ninguna etapa se inicia si su precio supera este total."),
35034
- operationId: z139.string().uuid().optional().describe("Opcional en status: la operaci\xF3n que devolvi\xF3 build."),
35003
+ operationId: z139.string().guid().optional().describe("Opcional en status: la operaci\xF3n que devolvi\xF3 build."),
35035
35004
  slug: z139.string().trim().toLowerCase().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(64).optional().describe("Opcional en publish: la direcci\xF3n corta de la p\xE1gina (ej. sanlucas-barberia). Si falta se usa la sugerida desde el nombre del negocio.")
35036
35005
  }).strict();
35037
35006
  function serviceKey(...parts) {
@@ -35425,7 +35394,7 @@ var LANGUAGE_TAGS = {
35425
35394
  pt: "pt-BR"
35426
35395
  };
35427
35396
  var CreateServiceImagesInput = z140.object({
35428
- brandId: z140.string().uuid().optional().describe("ID de un servicio propio y listo (de create_brand), obligatorio para cotizar y crear im\xE1genes nuevas. En un retry hist\xF3rico ya confirmado que originalmente no ten\xEDa este campo, conserva la petici\xF3n original. Nunca un taskId de producto."),
35397
+ brandId: z140.string().guid().optional().describe("ID de un servicio propio y listo (de create_brand), obligatorio para cotizar y crear im\xE1genes nuevas. En un retry hist\xF3rico ya confirmado que originalmente no ten\xEDa este campo, conserva la petici\xF3n original. Nunca un taskId de producto."),
35429
35398
  instruction: z140.string().trim().max(4e3).optional().describe("Opcional. Qu\xE9 servicio o promoci\xF3n mostrar, con las palabras del usuario (ej. \xABcorte + barba a $35.000 los martes\xBB). Si se omite, la IA propone la imagen usando la informaci\xF3n del servicio."),
35430
35399
  delegateToAi: z140.boolean().optional().describe("true si el usuario prefiere que la IA elija qu\xE9 mostrar a partir de su servicio. Tambi\xE9n se delega cuando instruction est\xE1 vac\xEDo."),
35431
35400
  format: z140.enum(SERVICE_IMAGE_FORMATS).optional().describe('Formato: "4:5" (feed, por defecto), "9:16" (historias/reels) o "1:1" (cuadrado).'),
@@ -35584,7 +35553,7 @@ var CreativeRefs = {
35584
35553
  buyerPersona: z141.string().optional().describe('Opcional. Descripci\xF3n del comprador objetivo. Ej. "Mujeres 35-50, profesionales urbanas". Si se omite, la IA infiere desde el \xE1ngulo y producto.'),
35585
35554
  isCombo: z141.boolean().optional().describe("Opcional. Si true, el creativo presenta el producto como combo/pack. Default false."),
35586
35555
  competitorScanEnabled: z141.boolean().optional().describe("Opcional. Default false: omitirlo significa SIN estudio de mercado. Antes de crear, llama estimate_market_study_cost, muestra al usuario el costo con y sin estudio y preg\xFAntale si lo quiere; env\xEDa true solo si lo acepta (o si solicita la narrativa an\xE1lisis de mercado). En video, true analiza anuncios de la competencia y desbloquea la narrativa an\xE1lisis de mercado; si el estudio no encuentra datos suficientes, degrada al planner cl\xE1sico."),
35587
- brandId: z141.string().uuid().optional().describe("Opcional. ID de una marca del usuario; si se env\xEDa, el sistema usa su voz, colores y persona para enriquecer el creativo.")
35556
+ brandId: z141.string().guid().optional().describe("Opcional. ID de una marca del usuario; si se env\xEDa, el sistema usa su voz, colores y persona para enriquecer el creativo.")
35588
35557
  };
35589
35558
  var VideoPresenter = z141.discriminatedUnion("mode", [
35590
35559
  z141.object({
@@ -35689,7 +35658,7 @@ var FreeVideoInput = z141.object({
35689
35658
  generateAiMusic: z141.boolean().default(false).describe('Opcional. Agrega m\xFAsica instrumental IA debajo del audio nativo. Default false. Equivale a generateAiEdit (nivel "pro"): la Edici\xF3n con IA trae su propia m\xFAsica.'),
35690
35659
  generateAiEdit: AiEditRequestSchema.optional().describe('Opcional. Pide la Edici\xF3n con IA: una pasada que a\xF1ade texto, gr\xE1ficos y m\xFAsica sobre el video ya entregado (variante with_ai_edit; se cobra al entregar). Nivel: "economy" (Econ\xF3mica, Sonnet 5.5, m\xE1s barata) o "pro" (Opus 5.5, mejor calidad, ~10 min). true equivale a "pro". Default sin edici\xF3n.'),
35691
35660
  addSubtitles: z141.boolean().default(false).describe("Opcional. Quema subt\xEDtulos usando el rawPrompt exacto. Default false."),
35692
- idempotencyKey: z141.string().uuid().optional().describe("Opcional. Se acepta por compatibilidad pero se ignora: la identidad del reintento se deriva autom\xE1ticamente de los argumentos sem\xE1nticos, as\xED que un retry con los mismos argumentos ya es idempotente sin este campo.")
35661
+ idempotencyKey: z141.string().guid().optional().describe("Opcional. Se acepta por compatibilidad pero se ignora: la identidad del reintento se deriva autom\xE1ticamente de los argumentos sem\xE1nticos, as\xED que un retry con los mismos argumentos ya es idempotente sin este campo.")
35693
35662
  }).strict();
35694
35663
  var imageStyleList = ImageCreativeStyleEnum.options.join(" | ");
35695
35664
  var ImageCreativeSetup = z141.discriminatedUnion("mode", [
@@ -35791,7 +35760,7 @@ var ImageInput = z141.object({
35791
35760
  brandId: CreativeRefs.brandId
35792
35761
  });
35793
35762
  var EditImageCreativeInput = z141.object({
35794
- taskId: z141.string().uuid().describe("ID de la tarea de imagen ya finalizada."),
35763
+ taskId: z141.string().guid().describe("ID de la tarea de imagen ya finalizada."),
35795
35764
  variantIndex: z141.number().int().min(0).max(10).describe("\xCDndice de la variante a corregir (0 = primera imagen)."),
35796
35765
  clientRequestId: z141.string().min(1).max(160).optional().describe("Identidad estable de esta correcci\xF3n; reutil\xEDzala al reconciliar una respuesta perdida, no para otra instrucci\xF3n."),
35797
35766
  instruction: z141.string().min(1).max(1e3).describe('Qu\xE9 cambiar en esa imagen. Ej. "quita el badge de env\xEDo gratis", "cambia el fondo a blanco".')
@@ -36086,8 +36055,8 @@ function registerCreativeTools(server, api, { transport = "http", proxyBaseUrl =
36086
36055
  server.registerTool("get_image_edit_status", {
36087
36056
  description: imageEditStatusGuidance.summary,
36088
36057
  inputSchema: {
36089
- taskId: z141.string().uuid(),
36090
- operationId: z141.string().uuid()
36058
+ taskId: z141.string().guid(),
36059
+ operationId: z141.string().guid()
36091
36060
  },
36092
36061
  annotations: READS_INTERNAL,
36093
36062
  _meta: taskResultsToolMeta()
@@ -36226,7 +36195,7 @@ var CreativeVariantKindEnum = z142.enum([
36226
36195
  "landing"
36227
36196
  ]);
36228
36197
  var EstimateCreativeVariantInputBase = z142.object({
36229
- sourceTaskId: z142.string().uuid().describe("ID de la tarea original completada."),
36198
+ sourceTaskId: z142.string().guid().describe("ID de la tarea original completada."),
36230
36199
  kind: CreativeVariantKindEnum,
36231
36200
  videoPreset: TaskCreativeVariantVideoPresetEnum.optional().describe("Opcional para video. Solo cambia el preset p\xFAblico; el servidor conserva el modelo/tier del task origen."),
36232
36201
  videoResolution: VideoResolutionEnum.optional().describe("Opcional para video. Resoluci\xF3n del nuevo render."),
@@ -36295,10 +36264,10 @@ var EstimateCreativeVariantInput = EstimateCreativeVariantInputBase.superRefine(
36295
36264
  }
36296
36265
  });
36297
36266
  var CreateCreativeVariantInputBase = z142.object({
36298
- sourceTaskId: z142.string().uuid().describe("ID de la tarea original completada."),
36267
+ sourceTaskId: z142.string().guid().describe("ID de la tarea original completada."),
36299
36268
  kind: CreativeVariantKindEnum,
36300
36269
  confirm: z142.literal(true).describe("Confirmaci\xF3n expl\xEDcita del usuario despu\xE9s de mostrarle el estimado de cr\xE9ditos."),
36301
- clientRequestId: z142.string().uuid().describe("UUID estable para esta intenci\xF3n (obligatorio por compatibilidad de contrato; el servidor deriva la identidad real del request desde los argumentos sem\xE1nticos, as\xED que un UUID nuevo en un retry NO crea una variante duplicada). Si la API devuelve status=error, una nueva generaci\xF3n exige otra confirmaci\xF3n."),
36270
+ clientRequestId: z142.string().guid().describe("UUID estable para esta intenci\xF3n (obligatorio por compatibilidad de contrato; el servidor deriva la identidad real del request desde los argumentos sem\xE1nticos, as\xED que un UUID nuevo en un retry NO crea una variante duplicada). Si la API devuelve status=error, una nueva generaci\xF3n exige otra confirmaci\xF3n."),
36302
36271
  angle: z142.string().trim().min(1).max(500).optional().describe("\xC1ngulo nuevo para video o imagen."),
36303
36272
  buyerPersona: z142.string().trim().min(1).max(360).optional().describe("Buyer persona coherente con el \xE1ngulo."),
36304
36273
  scriptNotes: z142.string().trim().min(1).max(2e3).optional().describe("Direcci\xF3n breve del guion para una variante de video."),
@@ -36667,7 +36636,7 @@ function registerConnectionTools(server, api) {
36667
36636
  inputSchema: z144.object({
36668
36637
  shopDomain: z144.string().min(3).max(120),
36669
36638
  query: z144.string().trim().max(120).optional(),
36670
- taskId: z144.string().uuid().optional()
36639
+ taskId: z144.string().guid().optional()
36671
36640
  }).shape,
36672
36641
  annotations: READS_EXTERNAL
36673
36642
  }, async ({ shopDomain, query, taskId }) => {
@@ -37019,8 +36988,8 @@ var GroupedMediaSource = z146.object({
37019
36988
  var GroupedUploadedAssetSource = z146.object({
37020
36989
  type: z146.literal("asset"),
37021
36990
  /** Returned by check_media_upload. ProductMaker resolves ownership server-side. */
37022
- assetId: z146.string().uuid(),
37023
- thumbnailAssetId: z146.string().uuid().optional()
36991
+ assetId: z146.string().guid(),
36992
+ thumbnailAssetId: z146.string().guid().optional()
37024
36993
  });
37025
36994
  var GroupedCreative = z146.object({
37026
36995
  type: z146.enum([
@@ -37167,7 +37136,7 @@ var PresignUploadResponseSchema = z146.object({
37167
37136
  const url2 = new URL(value);
37168
37137
  return !url2.username && !url2.password;
37169
37138
  }, "public media URL must not contain embedded credentials"),
37170
- stagingAssetId: z146.string().uuid()
37139
+ stagingAssetId: z146.string().guid()
37171
37140
  });
37172
37141
  async function uploadResolvedMedia(api, media, assetRole) {
37173
37142
  if (!media.buffer) throw new ResolveMediaError("INVALID_INPUT", "resolved media has no bytes");
@@ -37656,7 +37625,7 @@ var UploadSessionToolInput = z147.object(UploadSessionToolInputShape).superRefin
37656
37625
  }
37657
37626
  });
37658
37627
  var UploadSessionResponse = z147.object({
37659
- sessionId: z147.string().uuid(),
37628
+ sessionId: z147.string().guid(),
37660
37629
  uploadPageUrl: z147.string().url(),
37661
37630
  mediaKind: z147.enum([
37662
37631
  "image",
@@ -37671,7 +37640,7 @@ var UploadSessionResponse = z147.object({
37671
37640
  expiresAt: z147.string().datetime()
37672
37641
  });
37673
37642
  var UploadStatusInput = z147.object({
37674
- sessionId: z147.string().uuid().describe("The sessionId returned by request_media_upload.")
37643
+ sessionId: z147.string().guid().describe("The sessionId returned by request_media_upload.")
37675
37644
  });
37676
37645
  var UniversalUploadStatusResponse = z147.discriminatedUnion("status", [
37677
37646
  z147.object({
@@ -37681,7 +37650,7 @@ var UniversalUploadStatusResponse = z147.discriminatedUnion("status", [
37681
37650
  z147.object({
37682
37651
  status: z147.literal("uploaded"),
37683
37652
  assets: z147.array(z147.object({
37684
- assetId: z147.string().uuid(),
37653
+ assetId: z147.string().guid(),
37685
37654
  mediaKind: z147.enum([
37686
37655
  "image",
37687
37656
  "video"
@@ -37993,7 +37962,7 @@ var ShippingReferenceSchema = z149.object({
37993
37962
  });
37994
37963
  }
37995
37964
  });
37996
- var SHIPPING_REFERENCES = z149.record(ShippingReferenceSchema).parse(product_costing_shipping_references_default);
37965
+ var SHIPPING_REFERENCES = z149.record(z149.string(), ShippingReferenceSchema).parse(product_costing_shipping_references_default);
37997
37966
  var PRODUCT_COSTING_COUNTRY_CODES = Object.freeze(Object.keys(SHIPPING_REFERENCES));
37998
37967
  var SPANISH_LOCALE_COUNTRIES = /* @__PURE__ */ new Set([
37999
37968
  "MX",
@@ -38832,7 +38801,7 @@ var FindInput = z152.object({
38832
38801
  waitSeconds: z152.number().int().min(0).max(MAX_WAIT_SECONDS).optional().describe("Segundos a esperar el reporte antes de devolver el runId. M\xE1ximo 120.")
38833
38802
  });
38834
38803
  var GetInput = z152.object({
38835
- runId: z152.string().uuid().describe("ID del run devuelto por find_winning_products.")
38804
+ runId: z152.string().guid().describe("ID del run devuelto por find_winning_products.")
38836
38805
  });
38837
38806
  var ListInput = z152.object({
38838
38807
  limit: z152.number().int().min(1).max(20).default(10)
@@ -38978,7 +38947,7 @@ import { z as z153 } from "zod";
38978
38947
  var startDropshippingProjectGuidance = getProductMakerCapabilityModelGuidance("start_dropshipping_project");
38979
38948
  var costDropshippingProjectGuidance = getProductMakerCapabilityModelGuidance("cost_dropshipping_project");
38980
38949
  var guideDropshippingLaunchGuidance = getProductMakerCapabilityModelGuidance("guide_dropshipping_launch");
38981
- var ProjectId = z153.string().uuid();
38950
+ var ProjectId = z153.string().guid();
38982
38951
  var DropshippingProjectStatus = z153.enum([
38983
38952
  "active",
38984
38953
  "completed",
@@ -39092,15 +39061,7 @@ var DropshippingProjectNextAction = z153.discriminatedUnion("kind", NEXT_ACTION_
39092
39061
  kind: z153.literal(kind2),
39093
39062
  href: z153.string().min(1)
39094
39063
  })));
39095
- var CostingInputSchema = z153.object({
39096
- country: z153.string().min(2).max(3),
39097
- supplierCost: z153.number().finite().positive(),
39098
- shippingCost: z153.number().finite().nonnegative(),
39099
- returnRate: z153.number().finite().min(0).lt(1),
39100
- cancellationRate: z153.number().finite().min(0).lt(1),
39101
- adsManagerCpa: z153.number().finite().nonnegative(),
39102
- desiredMargin: z153.number().finite().min(0).lt(1)
39103
- }).superRefine(({ returnRate, cancellationRate }, context) => {
39064
+ var CostingInputSchema = z153.object(DropshippingProjectCostingInputSchema.shape).superRefine(({ returnRate, cancellationRate }, context) => {
39104
39065
  if (returnRate + cancellationRate >= 1) context.addIssue({
39105
39066
  code: z153.ZodIssueCode.custom,
39106
39067
  path: [
@@ -39290,10 +39251,10 @@ var DateOnly = z154.string().regex(/^\d{4}-\d{2}-\d{2}$/);
39290
39251
  var DailyControlInput = z154.object({
39291
39252
  date: DateOnly.optional().describe("D\xEDa final de la ventana (YYYY-MM-DD). Si se omite, la ventana termina AYER en UTC \u2014 nunca hoy, porque el d\xEDa en curso est\xE1 incompleto \u2014 y el servidor puede correrla un d\xEDa m\xE1s atr\xE1s si en la zona horaria de la tienda ese d\xEDa todav\xEDa no ha cerrado."),
39292
39253
  days: z154.number().int().min(1).max(14).default(3).describe("Tama\xF1o de la ventana, 1 a 14 d\xEDas."),
39293
- projectId: z154.string().uuid().optional().describe("Opcional: limita el reporte a un solo proyecto en vez de todos los productos activos.")
39254
+ projectId: z154.string().guid().optional().describe("Opcional: limita el reporte a un solo proyecto en vez de todos los productos activos.")
39294
39255
  }).strict();
39295
39256
  var LinkCampaignInput = z154.object({
39296
- projectId: z154.string().uuid(),
39257
+ projectId: z154.string().guid(),
39297
39258
  provider: z154.enum([
39298
39259
  "meta",
39299
39260
  "tiktok"
@@ -39302,7 +39263,7 @@ var LinkCampaignInput = z154.object({
39302
39263
  campaignId: ProviderCampaignIdentifier
39303
39264
  }).strict();
39304
39265
  var ReportReturnsInput = z154.object({
39305
- projectId: z154.string().uuid(),
39266
+ projectId: z154.string().guid(),
39306
39267
  date: DateOnly,
39307
39268
  returnedOrders: z154.number().int().min(0).max(1e5),
39308
39269
  note: z154.string().trim().max(280).optional()
@@ -39320,7 +39281,7 @@ var DailyControlDayMirror = z154.object({
39320
39281
  light: DailyControlLightMirror
39321
39282
  }).passthrough();
39322
39283
  var DailyControlProductMirror = z154.object({
39323
- projectId: z154.string().uuid(),
39284
+ projectId: z154.string().guid(),
39324
39285
  productName: z154.string().nullable(),
39325
39286
  status: DailyControlStatusMirror,
39326
39287
  statusMessage: z154.string().nullable(),
@@ -39453,7 +39414,7 @@ var SetProductCostingInput = z155.object({
39453
39414
  tienda + id de Shopify. El esquema canónico también las admite juntas,
39454
39415
  pero pedirlas por separado evita que el modelo emita una mezcla que
39455
39416
  diga dos productos a la vez. */
39456
- productControlId: z155.string().uuid().optional().describe("El id nuestro (lo devuelven get_product_control y create_manual_product). Obligatorio para productos manuales o importados sin tienda."),
39417
+ productControlId: z155.string().guid().optional().describe("El id nuestro (lo devuelven get_product_control y create_manual_product). Obligatorio para productos manuales o importados sin tienda."),
39457
39418
  manualSellingPrice: z155.number().positive().nullable().optional().describe("Precio de venta \u2014 SOLO con productControlId: para el producto sin tienda no hay otra verdad. En un producto de Shopify NO se manda: el precio lo manda la tienda."),
39458
39419
  shopDomain: z155.string().min(1).optional(),
39459
39420
  shopifyProductId: z155.string().min(1).max(64).optional(),
@@ -39465,7 +39426,7 @@ var SetProductCostingInput = z155.object({
39465
39426
  }).strict();
39466
39427
  var Count = z155.number().int().min(0).max(1e5).nullable().optional();
39467
39428
  var ReportProductCountsInput = z155.object({
39468
- productControlId: z155.string().uuid().describe("El identificador que devuelve get_product_control."),
39429
+ productControlId: z155.string().guid().describe("El identificador que devuelve get_product_control."),
39469
39430
  date: DateOnly2,
39470
39431
  orders: Count.describe("Pedidos que entraron ese d\xEDa."),
39471
39432
  cancelledOrders: Count,
@@ -39478,7 +39439,7 @@ var SyncShopifyOrdersInput = SyncShopifyOrdersSchema;
39478
39439
  var ImportOrdersFileInput = z155.object({
39479
39440
  /** Ruta ABSOLUTA en la máquina de quien usa el MCP. */
39480
39441
  path: z155.string().min(1),
39481
- operationId: z155.string().uuid().optional(),
39442
+ operationId: z155.string().guid().optional(),
39482
39443
  /** Solo mirar: devuelve el resumen y no escribe nada. */
39483
39444
  dryRun: z155.boolean().optional()
39484
39445
  }).strict();
@@ -39487,35 +39448,35 @@ var CreateOperationInput = z155.object({
39487
39448
  label: z155.string().trim().min(1).max(60).optional()
39488
39449
  }).strict();
39489
39450
  var MergeProductsInput = z155.object({
39490
- sourceId: z155.string().uuid(),
39491
- targetId: z155.string().uuid()
39451
+ sourceId: z155.string().guid(),
39452
+ targetId: z155.string().guid()
39492
39453
  }).strict();
39493
39454
  var SetMonthlyExpenseInput = z155.object({
39494
39455
  month: z155.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
39495
39456
  label: SaveMonthlyExpenseSchema.shape.label,
39496
39457
  amount: z155.number().finite().min(0),
39497
- operationId: z155.string().uuid().optional()
39458
+ operationId: z155.string().guid().optional()
39498
39459
  }).strict();
39499
39460
  var SetAdSpendInput = z155.object({
39500
39461
  month: z155.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
39501
- operationId: z155.string().uuid().optional(),
39462
+ operationId: z155.string().guid().optional(),
39502
39463
  /** null RETIRA la corrección; cero afirma que no pautó. */
39503
39464
  amount: z155.number().finite().min(0).nullable()
39504
39465
  }).strict();
39505
39466
  var GetFinancesInput = z155.object({
39506
39467
  month: z155.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional().describe("Mes en YYYY-MM. Si se omite, el mes en curso. Solo mes calendario."),
39507
- operationId: z155.string().uuid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
39468
+ operationId: z155.string().guid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
39508
39469
  }).strict();
39509
39470
  var GetDropiStatusInput = DropiCountryQuerySchema.extend({
39510
39471
  countryCode: DropiCountrySchema.optional().describe("Pa\xEDs de la cuenta (ISO-2). Si se omite, el servidor responde por Colombia (CO)."),
39511
- connectionId: z155.string().uuid().optional().describe("Una cuenta concreta cuando el pa\xEDs tiene varias. Sale de la lista de conexiones; nunca se inventa.")
39472
+ connectionId: z155.string().guid().optional().describe("Una cuenta concreta cuando el pa\xEDs tiene varias. Sale de la lista de conexiones; nunca se inventa.")
39512
39473
  });
39513
39474
  var SyncDropiOrdersInput = SyncDropiFinancialSchema;
39514
- var CreateManualProductInput = CreateManualProductControlSchema.innerType().omit({
39475
+ var CreateManualProductInput = z155.strictObject(CreateManualProductControlSchema.shape).omit({
39515
39476
  requestId: true
39516
39477
  });
39517
39478
  var ListUnmatchedProductsInput = z155.object({
39518
- operationId: z155.string().uuid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
39479
+ operationId: z155.string().guid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
39519
39480
  }).strict();
39520
39481
  var ResolveUnmatchedProductInput = ResolveUnmatchedProductSchema;
39521
39482
  var ListLinkableCampaignsInput = z155.object({}).strict();
@@ -39526,13 +39487,13 @@ var LinkProductCampaignInput = z155.object({
39526
39487
  ]).describe("La red publicitaria de la campa\xF1a."),
39527
39488
  accountId: z155.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/).describe("La cuenta publicitaria. Sale de list_linkable_campaigns; nunca se inventa."),
39528
39489
  campaignId: z155.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/).describe("La campa\xF1a. Sale de list_linkable_campaigns; nunca se inventa."),
39529
- productControlId: z155.string().uuid().optional().describe("El id del producto en su control financiero."),
39490
+ productControlId: z155.string().guid().optional().describe("El id del producto en su control financiero."),
39530
39491
  shopDomain: z155.string().min(1).optional().describe("La tienda del producto; con shopifyProductId es la otra forma de decir cu\xE1l es."),
39531
39492
  shopifyProductId: z155.string().min(1).optional().describe("El id del producto en su tienda. Va junto a shopDomain.")
39532
39493
  }).strict();
39533
39494
  var DeleteMonthlyExpenseInput = DeleteMonthlyExpenseSchema;
39534
39495
  var RemoveProductControlInput = z155.object({
39535
- productControlId: z155.string().uuid().describe("El id del producto en su control. Sale del listado; nunca se inventa.")
39496
+ productControlId: z155.string().guid().describe("El id del producto en su control. Sale del listado; nunca se inventa.")
39536
39497
  }).strict();
39537
39498
  function manualProductRequestId(input) {
39538
39499
  const digest3 = createHash4("sha256").update(JSON.stringify(input, [
@@ -40086,6 +40047,8 @@ function createServer(opts) {
40086
40047
  },
40087
40048
  logging: {}
40088
40049
  },
40050
+ // Bound structural work before parsing hosted tool arguments; stdio remains local.
40051
+ maxToolInputElements: transport === "http" ? 1e4 : void 0,
40089
40052
  instructions
40090
40053
  });
40091
40054
  const api = new ApiClient(apiBaseUrl, opts.credential, {