@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/http.js CHANGED
@@ -134,7 +134,7 @@ var FrankensteinSourceProviderSchema = z2.enum([
134
134
  "meta",
135
135
  "upload"
136
136
  ]);
137
- var FrankensteinSourceUploadIdSchema = z2.string().uuid();
137
+ var FrankensteinSourceUploadIdSchema = z2.string().guid();
138
138
  var FrankensteinSourceUploadPresignRequestSchema = z2.object({
139
139
  fileName: z2.string().trim().min(1).max(255),
140
140
  contentType: z2.enum([
@@ -4182,8 +4182,8 @@ var AiEditJobSchema = z5.object({
4182
4182
  tier: AiEditTierSchema.default(DEFAULT_AI_EDIT_TIER),
4183
4183
  /** Explicit false suppresses generated music; absent keeps the legacy default. */
4184
4184
  music: z5.boolean().optional(),
4185
- editId: z5.string().uuid(),
4186
- taskId: z5.string().uuid(),
4185
+ editId: z5.string().guid(),
4186
+ taskId: z5.string().guid(),
4187
4187
  angleKey: z5.string().min(1),
4188
4188
  sourceVideoUrl: z5.string().url(),
4189
4189
  /** Medidas del video entregado (Grok 480p/720p también existen). */
@@ -4509,7 +4509,7 @@ var ProductReferencePreviewSchema = z9.object({
4509
4509
  isAuthoritative: z9.boolean()
4510
4510
  });
4511
4511
  var ApprovedProductReferencesSchema = z9.object({
4512
- scopeSnapshotId: z9.string().uuid(),
4512
+ scopeSnapshotId: z9.string().guid(),
4513
4513
  scopeHash: z9.string().min(1).max(128),
4514
4514
  previews: z9.array(ProductReferencePreviewSchema).min(1)
4515
4515
  });
@@ -4521,8 +4521,8 @@ var ProductReferencePendingActionSchema = z9.object({
4521
4521
  ]).default("final"),
4522
4522
  scope: ProductReferenceScopeSchema,
4523
4523
  scopeKey: z9.string().min(1).max(120),
4524
- referenceVersionId: z9.string().uuid(),
4525
- scopeSnapshotId: z9.string().uuid(),
4524
+ referenceVersionId: z9.string().guid(),
4525
+ scopeSnapshotId: z9.string().guid(),
4526
4526
  baseReferenceSetHash: z9.string().min(1).max(128),
4527
4527
  scopeHash: z9.string().min(1).max(128),
4528
4528
  approvedRefKeys: z9.array(z9.string().min(1).max(200)).min(1),
@@ -4563,7 +4563,7 @@ var ResolutionEnvelopeSchema = z9.object({
4563
4563
  expectedScopeHash: z9.string().min(1).max(128),
4564
4564
  scope: ProductReferenceScopeSchema,
4565
4565
  scopeKey: z9.string().min(1).max(120),
4566
- scopeSnapshotId: z9.string().uuid()
4566
+ scopeSnapshotId: z9.string().guid()
4567
4567
  });
4568
4568
  var ResolveProductReferenceSetRequestSchema = z9.discriminatedUnion("decision", [
4569
4569
  ResolutionEnvelopeSchema.extend({
@@ -4613,8 +4613,8 @@ var ResolveProductReferenceSetRequestSchema = z9.discriminatedUnion("decision",
4613
4613
  });
4614
4614
  var ResolveProductReferenceSetResponseSchema = z9.object({
4615
4615
  success: z9.literal(true),
4616
- taskId: z9.string().uuid(),
4617
- resolutionId: z9.string().uuid(),
4616
+ taskId: z9.string().guid(),
4617
+ resolutionId: z9.string().guid(),
4618
4618
  decision: ProductReferenceResolutionDecisionSchema
4619
4619
  });
4620
4620
  var ProductReferenceResolutionSchema = z9.object({
@@ -4652,7 +4652,7 @@ var ReferencePreparationPlanSchema = z9.object({
4652
4652
  reusableOutputs: z9.array(z9.object({
4653
4653
  outputKey: z9.string().min(1).max(200),
4654
4654
  refKey: z9.string().min(1).max(200),
4655
- sourceSnapshotId: z9.string().uuid()
4655
+ sourceSnapshotId: z9.string().guid()
4656
4656
  })),
4657
4657
  execution: z9.object({
4658
4658
  inputKeys: z9.array(z9.string().min(1)),
@@ -5188,7 +5188,7 @@ var ProductPhysicalDetails = z10.object({
5188
5188
  contentAppearance: z10.string().optional()
5189
5189
  });
5190
5190
  var Product = z10.object({
5191
- id: z10.string().uuid().optional(),
5191
+ id: z10.string().guid().optional(),
5192
5192
  title: z10.string(),
5193
5193
  url: z10.string().optional(),
5194
5194
  // Free-video tasks intentionally skip product extraction and may have no
@@ -6256,7 +6256,7 @@ var LandingImageReadable = z15.object({
6256
6256
  */
6257
6257
  index: z15.number().int().min(1).max(20),
6258
6258
  /** Child task that owns this image when variants are rendered alongside the root task. */
6259
- variantTaskId: z15.string().uuid().optional(),
6259
+ variantTaskId: z15.string().guid().optional(),
6260
6260
  /**
6261
6261
  * The image's own `indexNum` within its OWN task (root or variant) — set
6262
6262
  * once at render time and never recomputed. Unlike `index`, this is stable
@@ -6459,7 +6459,7 @@ var JsonValueSchema = z16.lazy(() => z16.union([
6459
6459
  z16.boolean(),
6460
6460
  z16.null(),
6461
6461
  z16.array(JsonValueSchema),
6462
- z16.custom(isPlainJsonRecord, "content objects must be plain JSON records").pipe(z16.record(JsonValueSchema))
6462
+ z16.custom(isPlainJsonRecord, "content objects must be plain JSON records").pipe(z16.record(z16.string(), JsonValueSchema))
6463
6463
  ]));
6464
6464
  var CodeLandingRecipeSelectionSchema = z16.object({
6465
6465
  blockId: z16.string().trim().min(1),
@@ -6918,7 +6918,7 @@ var PresignUploadResponse = z19.object({
6918
6918
  /** Present only for purpose=service. */
6919
6919
  assetToken: z19.string().min(1).optional(),
6920
6920
  /** Present only for purpose=meta_staging. */
6921
- stagingAssetId: z19.string().uuid().optional()
6921
+ stagingAssetId: z19.string().guid().optional()
6922
6922
  });
6923
6923
  var MetaUploadMediaKind = z19.enum([
6924
6924
  "image",
@@ -6928,7 +6928,7 @@ var MetaUploadMediaKind = z19.enum([
6928
6928
  var META_UPLOAD_MAX_FILES = CAMPAIGN_LIMITS.MAX_CREATIVES;
6929
6929
  var META_UPLOAD_IMAGE_MAX_FILES = 5;
6930
6930
  var MetaUploadAssetSummary = z19.object({
6931
- stagingAssetId: z19.string().uuid(),
6931
+ stagingAssetId: z19.string().guid(),
6932
6932
  mediaKind: MediaKind
6933
6933
  }).strict();
6934
6934
  var MetaCampaignType = z19.enum([
@@ -6936,7 +6936,7 @@ var MetaCampaignType = z19.enum([
6936
6936
  "traffic",
6937
6937
  "engagement"
6938
6938
  ]);
6939
- var MetaPublishAttemptId = z19.string().uuid();
6939
+ var MetaPublishAttemptId = z19.string().guid();
6940
6940
  var MetaOptimizationMode = z19.enum([
6941
6941
  "advantage_plus",
6942
6942
  "manual"
@@ -7009,14 +7009,14 @@ var ResolveMetaUploadSessionRequest = z19.object({
7009
7009
  /** Opaque signed token embedded in the one-click upload page URL. */
7010
7010
  token: z19.string().min(1).max(4096),
7011
7011
  /** Stable browser-generated id so failed PUT retries reuse the same slot. */
7012
- uploadId: z19.string().uuid().optional(),
7012
+ uploadId: z19.string().guid().optional(),
7013
7013
  /** Browser-selected metadata; the API checks it against the session kind/role. */
7014
7014
  contentType: z19.enum(META_STAGING_CONTENT_TYPES),
7015
7015
  fileName: z19.string().min(1).max(255),
7016
7016
  fileSize: z19.number().int().positive().max(CAMPAIGN_LIMITS.MAX_FILE_SIZE_BYTES)
7017
7017
  }).strict();
7018
7018
  var MetaUploadSessionResponse = z19.object({
7019
- sessionId: z19.string().uuid(),
7019
+ sessionId: z19.string().guid(),
7020
7020
  uploadPageUrl: HttpUrl,
7021
7021
  mediaKind: MetaUploadMediaKind,
7022
7022
  assetRole: z19.enum([
@@ -7028,18 +7028,18 @@ var MetaUploadSessionResponse = z19.object({
7028
7028
  }).strict();
7029
7029
  var ResolveMetaUploadSessionResponse = z19.object({
7030
7030
  uploadUrl: z19.string().url(),
7031
- stagingAssetId: z19.string().uuid(),
7031
+ stagingAssetId: z19.string().guid(),
7032
7032
  expiresAt: z19.string().datetime()
7033
7033
  }).strict();
7034
7034
  var MetaUploadSessionStatusResponse = z19.object({
7035
- sessionId: z19.string().uuid(),
7035
+ sessionId: z19.string().guid(),
7036
7036
  status: z19.enum([
7037
7037
  "pending",
7038
7038
  "uploaded"
7039
7039
  ]),
7040
7040
  assets: z19.array(MetaUploadAssetSummary).max(META_UPLOAD_MAX_FILES),
7041
7041
  /** Legacy single-file response field retained for older callers. */
7042
- stagingAssetId: z19.string().uuid().optional()
7042
+ stagingAssetId: z19.string().guid().optional()
7043
7043
  }).strict();
7044
7044
  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), {
7045
7045
  message: 'adAccountId must look like "act_1234567890" (a bare numeric id is also accepted)'
@@ -7119,6 +7119,33 @@ var MetaCampaignDefaults = MetaCampaignConfigBase.omit({
7119
7119
  */
7120
7120
  currency: z19.string().length(3).regex(/^[A-Z]{3}$/).nullable().optional()
7121
7121
  });
7122
+ function refineMetaCreativeSources(value, ctx) {
7123
+ value.creatives.forEach((creative, index) => {
7124
+ if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
7125
+ ctx.addIssue({
7126
+ code: z19.ZodIssueCode.custom,
7127
+ path: [
7128
+ "creatives",
7129
+ index,
7130
+ "mediaUrl"
7131
+ ],
7132
+ message: "Provide exactly one of mediaUrl or mediaAssetId"
7133
+ });
7134
+ }
7135
+ if (creative.thumbnailUrl && creative.thumbnailAssetId) {
7136
+ ctx.addIssue({
7137
+ code: z19.ZodIssueCode.custom,
7138
+ path: [
7139
+ "creatives",
7140
+ index,
7141
+ "thumbnailUrl"
7142
+ ],
7143
+ message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
7144
+ });
7145
+ }
7146
+ });
7147
+ }
7148
+ __name(refineMetaCreativeSources, "refineMetaCreativeSources");
7122
7149
  var UploadToMetaRequest = z19.object({
7123
7150
  /** Caller-owned retry fence. Required before any provider operation. */
7124
7151
  publishAttemptId: MetaPublishAttemptId,
@@ -7132,7 +7159,7 @@ var UploadToMetaRequest = z19.object({
7132
7159
  /** Legacy public URL; new Meta flows should use mediaAssetId. */
7133
7160
  mediaUrl: HttpUrl.optional(),
7134
7161
  /** Owner-scoped temporary asset created by the Meta staging upload flow. */
7135
- mediaAssetId: z19.string().uuid().optional(),
7162
+ mediaAssetId: z19.string().guid().optional(),
7136
7163
  /**
7137
7164
  * Public URL of an extracted thumbnail. Required for video ads — Meta
7138
7165
  * rejects video ad creatives without `image_hash`/`image_url` in
@@ -7141,7 +7168,7 @@ var UploadToMetaRequest = z19.object({
7141
7168
  */
7142
7169
  thumbnailUrl: HttpUrl.optional(),
7143
7170
  /** Owner-scoped temporary thumbnail created by the Meta staging upload flow. */
7144
- thumbnailAssetId: z19.string().uuid().optional()
7171
+ thumbnailAssetId: z19.string().guid().optional()
7145
7172
  })).min(1).max(CAMPAIGN_LIMITS.MAX_CREATIVES),
7146
7173
  /** Meta Ad Account ID */
7147
7174
  adAccountId: MetaAdAccountId,
@@ -7168,30 +7195,7 @@ var UploadToMetaRequest = z19.object({
7168
7195
  message: "landingUrl is required for landing destinations"
7169
7196
  });
7170
7197
  }
7171
- value.creatives.forEach((creative, index) => {
7172
- if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
7173
- ctx.addIssue({
7174
- code: z19.ZodIssueCode.custom,
7175
- path: [
7176
- "creatives",
7177
- index,
7178
- "mediaUrl"
7179
- ],
7180
- message: "Provide exactly one of mediaUrl or mediaAssetId"
7181
- });
7182
- }
7183
- if (creative.thumbnailUrl && creative.thumbnailAssetId) {
7184
- ctx.addIssue({
7185
- code: z19.ZodIssueCode.custom,
7186
- path: [
7187
- "creatives",
7188
- index,
7189
- "thumbnailUrl"
7190
- ],
7191
- message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
7192
- });
7193
- }
7194
- });
7198
+ refineMetaCreativeSources(value, ctx);
7195
7199
  });
7196
7200
  var CampaignLifetimeMetricsSchema = z19.object({
7197
7201
  spend: z19.number().nonnegative(),
@@ -7229,13 +7233,13 @@ var Revision = z20.number().finite().int().nonnegative();
7229
7233
  var ClassicLandingBlockSchema = z20.discriminatedUnion("kind", [
7230
7234
  z20.object({
7231
7235
  kind: z20.literal("image"),
7232
- ownerTaskId: z20.string().uuid(),
7236
+ ownerTaskId: z20.string().guid(),
7233
7237
  sourceIndex: z20.number().int().positive()
7234
7238
  }).strict(),
7235
7239
  z20.object({
7236
7240
  kind: z20.literal("gif"),
7237
- ownerTaskId: z20.string().uuid(),
7238
- gifId: z20.string().uuid()
7241
+ ownerTaskId: z20.string().guid(),
7242
+ gifId: z20.string().guid()
7239
7243
  }).strict()
7240
7244
  ]);
7241
7245
  function classicLandingBlockId(block) {
@@ -7258,17 +7262,17 @@ var Blocks = z20.array(ClassicLandingBlockSchema).max(100).superRefine((blocks,
7258
7262
  });
7259
7263
  var ClassicLandingDocumentSchema = z20.object({
7260
7264
  version: z20.literal(1),
7261
- ownerTaskId: z20.string().uuid(),
7265
+ ownerTaskId: z20.string().guid(),
7262
7266
  revision: Revision,
7263
7267
  blocks: Blocks
7264
7268
  }).strict();
7265
7269
  var LandingGifBlockSelectionSchema = z20.object({
7266
- ownerTaskId: z20.string().uuid(),
7267
- gifId: z20.string().uuid(),
7270
+ ownerTaskId: z20.string().guid(),
7271
+ gifId: z20.string().guid(),
7268
7272
  gifRevision: Revision
7269
7273
  }).strict();
7270
7274
  var ClassicLandingImageSelectionSchema = z20.object({
7271
- ownerTaskId: z20.string().uuid(),
7275
+ ownerTaskId: z20.string().guid(),
7272
7276
  sourceIndex: z20.number().int().positive(),
7273
7277
  variantIndex: z20.number().int().nonnegative()
7274
7278
  }).strict();
@@ -7319,7 +7323,7 @@ var ClassicLandingBlockMutationSchema = z20.object({
7319
7323
  blocks: Blocks
7320
7324
  }).strict();
7321
7325
  var LandingGifVisibilityMutationSchema = z20.object({
7322
- gifId: z20.string().uuid(),
7326
+ gifId: z20.string().guid(),
7323
7327
  expectedGifRevision: Revision,
7324
7328
  expectedDocumentRevision: Revision,
7325
7329
  action: z20.enum([
@@ -8105,7 +8109,7 @@ var CodeLandingProvenanceSchema = z23.object({
8105
8109
  editorGifOwnership: z23.object({
8106
8110
  version: z23.literal(1),
8107
8111
  source: z23.object({
8108
- ownerTaskId: z23.string().uuid(),
8112
+ ownerTaskId: z23.string().guid(),
8109
8113
  gifRevision: z23.number().int().nonnegative(),
8110
8114
  contentHash: z23.string().regex(/^[a-f0-9]{64}$/),
8111
8115
  posterHash: z23.string().regex(/^[a-f0-9]{64}$/)
@@ -8113,7 +8117,7 @@ var CodeLandingProvenanceSchema = z23.object({
8113
8117
  }).strict().optional(),
8114
8118
  mode: LandingDocumentModeSchema,
8115
8119
  strategyVersion: z23.string().min(1).max(60),
8116
- sourceTaskId: z23.string().uuid().optional(),
8120
+ sourceTaskId: z23.string().guid().optional(),
8117
8121
  winnerSourceUrl: CodeLandingUrlSchema.optional(),
8118
8122
  notes: z23.array(z23.string().max(240)).max(16),
8119
8123
  /**
@@ -8545,8 +8549,8 @@ var QuotedLandingEditRequest = z23.object({
8545
8549
  "full"
8546
8550
  ]),
8547
8551
  attachmentIds: z23.array(CodeLandingIdSchema).max(4).default([]),
8548
- quoteId: z23.string().uuid(),
8549
- idempotencyKey: z23.string().uuid()
8552
+ quoteId: z23.string().guid(),
8553
+ idempotencyKey: z23.string().guid()
8550
8554
  });
8551
8555
  var CreateLandingEditRequest = z23.union([
8552
8556
  QuotedLandingEditRequest,
@@ -8626,7 +8630,7 @@ var LandingEditDto = z23.object({
8626
8630
  costCents: z23.number(),
8627
8631
  error: z23.string().nullable(),
8628
8632
  createdAt: z23.string(),
8629
- operationId: z23.string().uuid().nullable().optional(),
8633
+ operationId: z23.string().guid().nullable().optional(),
8630
8634
  expectedRevision: z23.number().int().nonnegative().optional(),
8631
8635
  appliedRevision: z23.number().int().positive().nullable().optional(),
8632
8636
  refundStatus: z23.enum([
@@ -8641,10 +8645,10 @@ var LandingEditDto = z23.object({
8641
8645
  commerceReconciliation: CommerceReconciliationSchema.nullable().optional(),
8642
8646
  delivery: z23.lazy(() => LandingEditDeliverySchema).optional(),
8643
8647
  /** Photos the seller attached to this message (see LandingEditAttachmentDto). */
8644
- attachmentIds: z23.array(z23.string().uuid()).max(4).optional()
8648
+ attachmentIds: z23.array(z23.string().guid()).max(4).optional()
8645
8649
  });
8646
8650
  var LandingEditAttachmentDto = z23.object({
8647
- id: z23.string().uuid(),
8651
+ id: z23.string().guid(),
8648
8652
  url: z23.string().url(),
8649
8653
  width: z23.number().int().positive().nullable(),
8650
8654
  height: z23.number().int().positive().nullable()
@@ -8670,12 +8674,12 @@ var LandingEditQuoteRequest = z23.object({
8670
8674
  attachmentIds: z23.array(CodeLandingIdSchema).max(4).default([])
8671
8675
  });
8672
8676
  var LandingEditSubmitRequest = LandingEditQuoteRequest.extend({
8673
- quoteId: z23.string().uuid(),
8674
- idempotencyKey: z23.string().uuid()
8677
+ quoteId: z23.string().guid(),
8678
+ idempotencyKey: z23.string().guid()
8675
8679
  });
8676
8680
  var LandingOperationQuoteDto = z23.object({
8677
8681
  editPlanSummary: z23.lazy(() => LandingEditPlanSummarySchema).optional(),
8678
- id: z23.string().uuid(),
8682
+ id: z23.string().guid(),
8679
8683
  kind: z23.enum([
8680
8684
  "edit_patch",
8681
8685
  "edit_full",
@@ -8697,7 +8701,7 @@ var LandingRevisionHistoryItemDto = z23.object({
8697
8701
  parentRevision: z23.number().int().positive().nullable(),
8698
8702
  source: z23.string().min(1),
8699
8703
  summary: z23.string().nullable(),
8700
- editId: z23.string().uuid().nullable(),
8704
+ editId: z23.string().guid().nullable(),
8701
8705
  createdAt: z23.string().datetime(),
8702
8706
  isActive: z23.boolean(),
8703
8707
  isRedoTarget: z23.boolean(),
@@ -8743,7 +8747,7 @@ var LandingGifSourceSchema = z24.discriminatedUnion("kind", [
8743
8747
  z24.object({
8744
8748
  kind: z24.literal("generated"),
8745
8749
  referenceSelectionRevision: Revision2,
8746
- referenceImageAssetId: z24.string().uuid().optional(),
8750
+ referenceImageAssetId: z24.string().guid().optional(),
8747
8751
  motionBrief: z24.string().trim().min(1).max(1500)
8748
8752
  }).strict()
8749
8753
  ]);
@@ -8768,7 +8772,7 @@ var ReuseIdentity = z24.object({
8768
8772
  byteSize: z24.number().finite().int().positive().max(50 * 1024 * 1024),
8769
8773
  contentHash: Hash,
8770
8774
  provenance: z24.object({
8771
- taskId: z24.string().uuid(),
8775
+ taskId: z24.string().guid(),
8772
8776
  scanId: z24.string().min(1).max(200).optional(),
8773
8777
  sourceUrl: z24.string().url().max(4096).optional(),
8774
8778
  externalAdId: z24.string().min(1).max(200).optional()
@@ -8798,7 +8802,7 @@ var LandingGifReuseCandidateSchema = z24.discriminatedUnion("kind", [
8798
8802
  var GeneratedResolvedSourceSchema = z24.object({
8799
8803
  kind: z24.literal("generated"),
8800
8804
  referenceSelectionRevision: Revision2,
8801
- referenceImageAssetId: z24.string().uuid().optional(),
8805
+ referenceImageAssetId: z24.string().guid().optional(),
8802
8806
  referenceKeys: z24.array(StorageKey).min(1).max(4),
8803
8807
  identityReferenceKeys: z24.array(StorageKey).min(1).max(4).optional(),
8804
8808
  identityReferenceFingerprint: Hash.optional(),
@@ -8820,7 +8824,7 @@ var AutomaticResolvedSourceSchema = GeneratedResolvedSourceSchema.omit({
8820
8824
  referenceImageAssetId: true
8821
8825
  }).extend({
8822
8826
  kind: z24.literal("automatic"),
8823
- ownerTaskId: z24.string().uuid(),
8827
+ ownerTaskId: z24.string().guid(),
8824
8828
  productName: z24.string().min(1).max(500),
8825
8829
  productTruth: JsonValueSchema.optional(),
8826
8830
  useSheet: JsonValueSchema.optional(),
@@ -8884,7 +8888,7 @@ var LandingGifPlacementSchema = z24.discriminatedUnion("kind", [
8884
8888
  }).strict(),
8885
8889
  z24.object({
8886
8890
  kind: z24.literal("classic"),
8887
- ownerTaskId: z24.string().uuid(),
8891
+ ownerTaskId: z24.string().guid(),
8888
8892
  afterSourceIndex: z24.number().finite().int().min(1)
8889
8893
  }).strict(),
8890
8894
  z24.object({
@@ -8899,7 +8903,7 @@ var LandingGifCreateRequestSchema = z24.object({
8899
8903
  placement: LandingGifPlacementSchema,
8900
8904
  expectedLandingRevision: Revision2,
8901
8905
  expectedGifRevision: Revision2,
8902
- gifId: z24.string().uuid().optional(),
8906
+ gifId: z24.string().guid().optional(),
8903
8907
  expectedDocumentRevision: Revision2.optional()
8904
8908
  }).strict().superRefine((request, ctx) => {
8905
8909
  if (request.gifId === void 0 !== (request.expectedDocumentRevision === void 0)) {
@@ -8939,7 +8943,7 @@ var LandingGifCreateRequestSchema = z24.object({
8939
8943
  });
8940
8944
  var LandingGifSubmitRequestSchema = z24.object({
8941
8945
  request: LandingGifCreateRequestSchema,
8942
- quoteId: z24.string().uuid(),
8946
+ quoteId: z24.string().guid(),
8943
8947
  idempotencyKey: z24.string().trim().min(1).max(200)
8944
8948
  }).strict();
8945
8949
  var LandingGifRemoveRequestSchema = z24.object({
@@ -8975,17 +8979,17 @@ var LandingGifStoredDescriptorSchema = GifTechnicalMetadataSchema.extend({
8975
8979
  quality: LandingGifQualitySchema
8976
8980
  }).strict();
8977
8981
  var LandingGifReadableSchema = LandingGifStoredDescriptorSchema.extend({
8978
- ownerTaskId: z24.string().uuid(),
8982
+ ownerTaskId: z24.string().guid(),
8979
8983
  gifRevision: Revision2,
8980
8984
  gifUrl: z24.string().url(),
8981
8985
  posterUrl: z24.string().url()
8982
8986
  }).strict();
8983
8987
  var LandingGifSelectionSchema = z24.object({
8984
- ownerTaskId: z24.string().uuid(),
8988
+ ownerTaskId: z24.string().guid(),
8985
8989
  gifRevision: Revision2
8986
8990
  }).strict();
8987
8991
  var LandingGifOperationStatusSchema = z24.object({
8988
- operationId: z24.string().uuid(),
8992
+ operationId: z24.string().guid(),
8989
8993
  status: z24.enum([
8990
8994
  "reserved",
8991
8995
  "queued",
@@ -9007,13 +9011,13 @@ var LandingGifOperationStatusSchema = z24.object({
9007
9011
  reservedUserCents: z24.number().finite().int().nonnegative()
9008
9012
  }).strict();
9009
9013
  var LandingGifUseProposalSchema = z24.object({
9010
- id: z24.string().uuid(),
9011
- gifId: z24.string().uuid(),
9014
+ id: z24.string().guid(),
9015
+ gifId: z24.string().guid(),
9012
9016
  idea: z24.string().trim().min(1).max(300),
9013
9017
  motionBrief: z24.string().trim().min(1).max(1500),
9014
9018
  productFingerprint: Hash,
9015
9019
  referenceFingerprint: Hash.nullable(),
9016
- referenceImageAssetId: z24.string().uuid().optional(),
9020
+ referenceImageAssetId: z24.string().guid().optional(),
9017
9021
  referenceImageAssetKey: StorageKey.optional(),
9018
9022
  referenceImageUrl: z24.string().url().optional(),
9019
9023
  identityReferenceKeys: z24.array(StorageKey).min(1).max(4).optional(),
@@ -9034,8 +9038,8 @@ var LandingGifStateSchema = z24.enum([
9034
9038
  "removed"
9035
9039
  ]);
9036
9040
  var LandingGifItemSchema = z24.object({
9037
- gifId: z24.string().uuid(),
9038
- ownerTaskId: z24.string().uuid(),
9041
+ gifId: z24.string().guid(),
9042
+ ownerTaskId: z24.string().guid(),
9039
9043
  gifRevision: Revision2,
9040
9044
  state: LandingGifStateSchema,
9041
9045
  /** Server-derived compatibility for an already delivered singular primary. */
@@ -9075,8 +9079,8 @@ function isDeliverableLandingGif(item) {
9075
9079
  }
9076
9080
  __name(isDeliverableLandingGif, "isDeliverableLandingGif");
9077
9081
  var InitialLandingGifStatusSchema = z24.object({
9078
- intentId: z24.string().uuid(),
9079
- gifId: z24.string().uuid(),
9082
+ intentId: z24.string().guid(),
9083
+ gifId: z24.string().guid(),
9080
9084
  status: z24.enum([
9081
9085
  "funded",
9082
9086
  "awaiting_usage",
@@ -9092,7 +9096,7 @@ var InitialLandingGifStatusSchema = z24.object({
9092
9096
  refundStatus: LandingGifOperationStatusSchema.shape.refundStatus
9093
9097
  }).strict();
9094
9098
  var LandingGifCollectionResponseSchema = z24.object({
9095
- ownerTaskId: z24.string().uuid(),
9099
+ ownerTaskId: z24.string().guid(),
9096
9100
  landingRevision: Revision2,
9097
9101
  document: ClassicLandingDocumentSchema,
9098
9102
  gifs: z24.array(LandingGifItemSchema).max(100),
@@ -9106,15 +9110,15 @@ var LandingGifCollectionResponseSchema = z24.object({
9106
9110
  }
9107
9111
  });
9108
9112
  var LandingGifTargetSchema = z24.object({
9109
- gifId: z24.string().uuid(),
9113
+ gifId: z24.string().guid(),
9110
9114
  expectedGifRevision: Revision2
9111
9115
  }).strict();
9112
9116
  var LandingGifProposalRequestSchema = z24.object({
9113
- gifId: z24.string().uuid().optional(),
9117
+ gifId: z24.string().guid().optional(),
9114
9118
  expectedDocumentRevision: Revision2,
9115
9119
  afterBlockId: z24.string().min(1).max(300).optional(),
9116
9120
  merchantIdea: z24.string().trim().min(8).max(300).optional(),
9117
- referenceImageAssetId: z24.string().uuid().nullable().optional()
9121
+ referenceImageAssetId: z24.string().guid().nullable().optional()
9118
9122
  }).strict();
9119
9123
  var LandingGifQuoteResponseSchema = z24.object({
9120
9124
  quote: LandingOperationQuoteDto.extend({
@@ -9125,7 +9129,7 @@ var LandingGifCreateResponseSchema = z24.object({
9125
9129
  operation: LandingGifOperationStatusSchema
9126
9130
  }).strict();
9127
9131
  var LandingGifStatusResponseSchema = z24.object({
9128
- ownerTaskId: z24.string().uuid(),
9132
+ ownerTaskId: z24.string().guid(),
9129
9133
  landingRevision: Revision2,
9130
9134
  gifRevision: Revision2,
9131
9135
  demoGif: LandingGifReadableSchema.nullable(),
@@ -9163,9 +9167,9 @@ var LandingGifPresentationResponseSchema = z24.object({
9163
9167
  }).strict();
9164
9168
  var LandingGifCompletionReceiptBase = z24.object({
9165
9169
  version: z24.literal(1),
9166
- operationId: z24.string().uuid(),
9167
- taskId: z24.string().uuid(),
9168
- stepId: z24.string().uuid(),
9170
+ operationId: z24.string().guid(),
9171
+ taskId: z24.string().guid(),
9172
+ stepId: z24.string().guid(),
9169
9173
  stepEpoch: Revision2,
9170
9174
  acceptedGifRevision: z24.number().finite().int().positive(),
9171
9175
  gifAssetKey: z24.string().min(1),
@@ -9177,7 +9181,7 @@ var LandingGifCompletionReceiptSchema = z24.discriminatedUnion("version", [
9177
9181
  LandingGifCompletionReceiptBase,
9178
9182
  LandingGifCompletionReceiptBase.extend({
9179
9183
  version: z24.literal(2),
9180
- gifId: z24.string().uuid(),
9184
+ gifId: z24.string().guid(),
9181
9185
  disposition: z24.enum([
9182
9186
  "activated",
9183
9187
  "retained"
@@ -9478,7 +9482,7 @@ var VideoCreativeContext = z27.object({
9478
9482
  productTitle: z27.string(),
9479
9483
  primaryAngle: z27.string(),
9480
9484
  buyerPersona: z27.string().optional(),
9481
- brandId: z27.string().uuid().optional(),
9485
+ brandId: z27.string().guid().optional(),
9482
9486
  features: z27.array(z27.string()).default([]),
9483
9487
  scriptNotes: z27.string().optional(),
9484
9488
  cta: z27.string().optional(),
@@ -9637,19 +9641,19 @@ var ImageCreativeJobStatusEnum = z27.enum([
9637
9641
  "error"
9638
9642
  ]);
9639
9643
  var ImageCreativeJobStatus = z27.object({
9640
- jobId: z27.string().uuid(),
9644
+ jobId: z27.string().guid(),
9641
9645
  status: ImageCreativeJobStatusEnum,
9642
9646
  error: z27.string().optional(),
9643
9647
  result: ImageCreativeResult.nullable().optional(),
9644
9648
  request: ImageCreativeEditableRequest.optional()
9645
9649
  });
9646
9650
  var ImageCreativeJobPayload = z27.object({
9647
- jobId: z27.string().uuid(),
9651
+ jobId: z27.string().guid(),
9648
9652
  status: ImageCreativeJobStatusEnum,
9649
9653
  replayed: z27.boolean().optional()
9650
9654
  });
9651
9655
  var ImageCreativeHistoryEntry = z27.object({
9652
- id: z27.string().uuid(),
9656
+ id: z27.string().guid(),
9653
9657
  createdAt: z27.string().datetime(),
9654
9658
  status: ImageCreativeJobStatusEnum,
9655
9659
  result: ImageCreativeResult.nullable(),
@@ -9669,27 +9673,27 @@ var LandingCreativeResult = z27.object({
9669
9673
  createdAt: z27.string().datetime().optional()
9670
9674
  });
9671
9675
  var LandingCreativeJobStatus = z27.object({
9672
- jobId: z27.string().uuid(),
9676
+ jobId: z27.string().guid(),
9673
9677
  status: LandingCreativeJobStatusEnum,
9674
9678
  error: z27.string().optional(),
9675
9679
  result: LandingCreativeResult.nullable().optional()
9676
9680
  });
9677
9681
  var LandingCreativeJobPayload = z27.object({
9678
- jobId: z27.string().uuid(),
9682
+ jobId: z27.string().guid(),
9679
9683
  status: LandingCreativeJobStatusEnum,
9680
9684
  replayed: z27.boolean().optional()
9681
9685
  });
9682
9686
  var LandingCreativeHistoryEntry = z27.object({
9683
- id: z27.string().uuid(),
9687
+ id: z27.string().guid(),
9684
9688
  createdAt: z27.string().datetime(),
9685
9689
  status: LandingCreativeJobStatusEnum,
9686
9690
  result: LandingCreativeResult.nullable(),
9687
9691
  error: z27.string().optional()
9688
9692
  });
9689
9693
  var CreativeGeneratorJob = z27.object({
9690
- taskId: z27.string().uuid(),
9694
+ taskId: z27.string().guid(),
9691
9695
  /** Immutable approved product-reference snapshot consumed by the worker. */
9692
- referenceVersionId: z27.string().uuid().optional(),
9696
+ referenceVersionId: z27.string().guid().optional(),
9693
9697
  cleanImagesWaitAttempt: z27.number().int().nonnegative().optional()
9694
9698
  });
9695
9699
  var ImageCreativeEditStatus = z27.enum([
@@ -9705,8 +9709,8 @@ var ImageCreativeRegenerateRequest = z27.object({
9705
9709
  });
9706
9710
  var ImageCreativeEditStatusResponse = z27.object({
9707
9711
  ok: z27.literal(true),
9708
- operationId: z27.string().uuid(),
9709
- taskId: z27.string().uuid(),
9712
+ operationId: z27.string().guid(),
9713
+ taskId: z27.string().guid(),
9710
9714
  variantIndex: z27.number().int().nonnegative(),
9711
9715
  status: ImageCreativeEditStatus,
9712
9716
  assetKey: z27.string().optional(),
@@ -9847,20 +9851,20 @@ var CreativeGenderPin = z33.enum([
9847
9851
  var CreativeDirectionSchema = z33.string().transform((value) => value.trim()).pipe(z33.string().max(CREATIVE_DIRECTION_MAX_CHARS));
9848
9852
  var IngestOptions = z33.object({
9849
9853
  /** Optional owner-scoped guided journey context. Never bypasses ingest gates. */
9850
- dropshippingProjectId: z33.string().uuid().optional(),
9851
- languageCode: LanguageCodeSchema.default("es-CO"),
9852
- ugcFormat: VideoFormat.default("single_15s"),
9854
+ dropshippingProjectId: z33.string().guid().optional(),
9855
+ languageCode: LanguageCodeSchema.default("es-CO").nonoptional(),
9856
+ ugcFormat: VideoFormat.default("single_15s").nonoptional(),
9853
9857
  country: CountrySchema,
9854
9858
  price: PriceSchema,
9855
9859
  offer: OfferSchema,
9856
9860
  compareAtPrice: CompareAtPriceSchema,
9857
9861
  pricingInput: SellerPricingInputSchema.optional(),
9858
9862
  paymentMethods: PaymentMethodsSchema,
9859
- videoStyle: VideoStyle.default("ugc"),
9863
+ videoStyle: VideoStyle.default("ugc").nonoptional(),
9860
9864
  /** Canonical public route axes; legacy provider fields remain compatibility aliases. */
9861
9865
  videoStructure: VideoStructure.optional(),
9862
9866
  videoQuality: VideoQuality.optional(),
9863
- videoModel: VideoModel.default("veo"),
9867
+ videoModel: VideoModel.default("veo").nonoptional(),
9864
9868
  /**
9865
9869
  * An explicit registry model id for Free mode (Defect 1, follow-up to the
9866
9870
  * model-agnostic video plan). Validated against `activeVideoModels()` in
@@ -9875,15 +9879,15 @@ var IngestOptions = z33.object({
9875
9879
  ]).optional(),
9876
9880
  rawPrompt: FreeVideoOptionsSchema.shape.rawPrompt.optional(),
9877
9881
  durationSeconds: FreeVideoOptionsSchema.shape.durationSeconds.optional(),
9878
- addSubtitles: FreeVideoOptionsSchema.shape.addSubtitles.optional(),
9882
+ addSubtitles: FreeVideoOptionsSchema.shape.addSubtitles.nonoptional().optional(),
9879
9883
  subtitleText: z33.string().transform((value) => value.trim()).pipe(z33.string().max(FREE_VIDEO_SUBTITLE_MAX_CHARS)).optional(),
9880
- videoTier: WritableVideoTier.default(DEFAULT_VIDEO_TIER),
9881
- narrativeStyle: NarrativeStyle.default("review"),
9884
+ videoTier: WritableVideoTier.default(WritableVideoTier.parse(DEFAULT_VIDEO_TIER)).nonoptional(),
9885
+ narrativeStyle: NarrativeStyle.default("review").nonoptional(),
9882
9886
  videoPreset: VideoPreset.optional(),
9883
9887
  /** Orthogonal visual style for animated narratives only. The API rejects it
9884
9888
  * on non-animated presets; absent → the pipeline resolves 'pixar_3d'. */
9885
9889
  animationStyle: AnimationStyleSchema.optional(),
9886
- multiAngleVideos: z33.boolean().default(false),
9890
+ multiAngleVideos: z33.boolean().default(false).nonoptional(),
9887
9891
  videoAngleCount: z33.number().int().min(1).max(3).optional(),
9888
9892
  /** Per-angle narrative override (positional). angleNarratives[i] forces the
9889
9893
  * narrative of angle position i, overriding the batch auto-selector; a list
@@ -9895,7 +9899,7 @@ var IngestOptions = z33.object({
9895
9899
  // quality levels; an explicit 720p pick wins. Callers that omit the field
9896
9900
  // use the same 480p compatibility fallback in resolveSingleCallAwareResolution.
9897
9901
  videoResolution: VideoResolution.optional(),
9898
- generateAdCopy: z33.boolean().default(true),
9902
+ generateAdCopy: z33.boolean().default(true).nonoptional(),
9899
9903
  generateAiMusic: z33.boolean().optional(),
9900
9904
  /** «Edición con IA» opt-in; a music request aliases to it. */
9901
9905
  generateAiEdit: AiEditRequestSchema.optional(),
@@ -9906,7 +9910,7 @@ var IngestOptions = z33.object({
9906
9910
  * the multipart path on 2026-09-01, so an unbounded opaque string was newly persistable
9907
9911
  * per task. Length only, never `.uuid()` — Actor.id is a CUID. */
9908
9912
  actorId: z33.string().min(1).max(120).optional(),
9909
- isCombo: z33.boolean().default(false),
9913
+ isCombo: z33.boolean().default(false).nonoptional(),
9910
9914
  productContext: z33.string().transform(canonicalizeProductContext).pipe(z33.string().max(PRODUCT_CONTEXT_MAX_CHARS)).optional(),
9911
9915
  creativeDirection: CreativeDirectionSchema.optional(),
9912
9916
  /** Exact copy the user pinned. Rendered VERBATIM on the image creatives this task
@@ -9979,8 +9983,8 @@ var IngestOptions = z33.object({
9979
9983
  * chosen videoPreset. Default true preserves the 2026-08-04 decision;
9980
9984
  * only a deliberate `false` suspends replication. See
9981
9985
  * `shouldAskReplicationConsent` for when this is even asked. */
9982
- replicateWinnerWhenFound: z33.boolean().default(true),
9983
- brandId: z33.string().uuid().optional()
9986
+ replicateWinnerWhenFound: z33.boolean().default(true).nonoptional(),
9987
+ brandId: z33.string().guid().optional()
9984
9988
  }).partial().transform(normalizeSellerPricingFields).superRefine((data, ctx) => {
9985
9989
  const message = validatePriceInversion(data.price, data.compareAtPrice);
9986
9990
  if (message) {
@@ -10727,7 +10731,7 @@ var CreativeEngineWinnerContextSchema = z38.object({
10727
10731
  version: z38.literal(1),
10728
10732
  winnerAdId: z38.string().min(1).max(200),
10729
10733
  /** Owned parsed gap blueprint of the selected winner (opaque evidence). */
10730
- gapBlueprint: z38.unknown(),
10734
+ gapBlueprint: z38.unknown().optional(),
10731
10735
  observed: z38.object({
10732
10736
  scenes: z38.array(CreativeEngineWinnerObservedSceneSchema).max(40),
10733
10737
  /**
@@ -11898,7 +11902,7 @@ var VideoGenerator = z39.object({
11898
11902
  ctx.addIssue({
11899
11903
  code: z39.ZodIssueCode.too_small,
11900
11904
  minimum: 1,
11901
- type: "string",
11905
+ origin: "string",
11902
11906
  inclusive: true,
11903
11907
  path: [
11904
11908
  "prompt"
@@ -12006,7 +12010,7 @@ var RegenerateVideoScriptNarrativeResponse = z39.object({
12006
12010
  var RegenerateVideoRequest = z39.object({
12007
12011
  angleKey: z39.string().min(1),
12008
12012
  /** Stable new-intent identity for regeneration of an already delivered engine video. */
12009
- clientRequestId: z39.string().uuid().optional()
12013
+ clientRequestId: z39.string().guid().optional()
12010
12014
  }).strict();
12011
12015
  var RegenerateVideoResponse = z39.object({
12012
12016
  ok: z39.literal(true),
@@ -12017,7 +12021,7 @@ var RegenerateVideoResponse = z39.object({
12017
12021
  "single_call"
12018
12022
  ]),
12019
12023
  /** New immutable child, when this command bought a new delivered-video intent. */
12020
- taskId: z39.string().uuid().optional()
12024
+ taskId: z39.string().guid().optional()
12021
12025
  });
12022
12026
 
12023
12027
  // ../../packages/types/src/billing.ts
@@ -12059,16 +12063,16 @@ var BillingProvider = z40.enum([
12059
12063
  ]);
12060
12064
  var BillingRecordInput = z40.object({
12061
12065
  userId: z40.string().min(1),
12062
- taskId: z40.string().uuid().optional(),
12063
- mixTaskId: z40.string().uuid().optional(),
12064
- productResearchRunId: z40.string().uuid().optional(),
12065
- servicePageId: z40.string().uuid().optional(),
12066
+ taskId: z40.string().guid().optional(),
12067
+ mixTaskId: z40.string().guid().optional(),
12068
+ productResearchRunId: z40.string().guid().optional(),
12069
+ servicePageId: z40.string().guid().optional(),
12066
12070
  provider: BillingProvider,
12067
12071
  label: z40.string().optional(),
12068
12072
  units: z40.number().int().nonnegative().optional(),
12069
12073
  ourCostCents: BillingNonNegativeAmount,
12070
12074
  userPriceCents: BillingNonNegativeAmount,
12071
- metadata: z40.record(z40.unknown()).optional()
12075
+ metadata: z40.record(z40.string(), z40.unknown()).optional()
12072
12076
  }).superRefine((value, ctx) => {
12073
12077
  const scopedIds = [
12074
12078
  value.taskId,
@@ -12090,7 +12094,7 @@ var BillingSummary = z40.object({
12090
12094
  // ../../packages/types/src/shopify.ts
12091
12095
  import { z as z41 } from "zod";
12092
12096
  var ShopifyShopSummary = z41.object({
12093
- id: z41.string().uuid(),
12097
+ id: z41.string().guid(),
12094
12098
  shopDomain: z41.string(),
12095
12099
  primaryDomain: z41.string().nullable(),
12096
12100
  scopes: z41.array(z41.string()),
@@ -12137,7 +12141,7 @@ var ShopifyPublicationMode = z41.enum([
12137
12141
  var SHOPIFY_ANNOUNCEMENT_BAR_MAX_LENGTH = 160;
12138
12142
  var ShopifyPublishRequest = z41.object({
12139
12143
  /** Correlates a mutation with read-only recovery after a lost response. */
12140
- publishAttemptId: z41.string().uuid().optional(),
12144
+ publishAttemptId: z41.string().guid().optional(),
12141
12145
  /** Omitted keeps legacy publication behavior; null explicitly excludes the GIF. */
12142
12146
  selectedLandingGif: LandingGifSelectionSchema.nullable().optional(),
12143
12147
  classicSelection: ClassicLandingSelectionSnapshotSchema.optional(),
@@ -12196,7 +12200,7 @@ var ShopifyPublishRequest = z41.object({
12196
12200
  });
12197
12201
  }
12198
12202
  });
12199
- var CodeLandingThemeSetupRequest = ShopifyPublishRequest.innerType().omit({
12203
+ var CodeLandingThemeSetupRequest = z41.object(ShopifyPublishRequest.shape).omit({
12200
12204
  publishAttemptId: true,
12201
12205
  commerceCorrection: true
12202
12206
  });
@@ -12266,8 +12270,8 @@ var ShopifyBundleMappingResult = z41.discriminatedUnion("status", [
12266
12270
  ]);
12267
12271
  var ShopifyPublishResponse = z41.object({
12268
12272
  pricingNotices: z41.array(SellerPricingNoticeSchema).max(32).optional(),
12269
- publicationId: z41.string().uuid(),
12270
- taskId: z41.string().uuid(),
12273
+ publicationId: z41.string().guid(),
12274
+ taskId: z41.string().guid(),
12271
12275
  status: ShopifyPublicationStatus,
12272
12276
  shopDomain: z41.string(),
12273
12277
  productId: z41.string().optional(),
@@ -12338,8 +12342,8 @@ var ShopifyImportOutcomeResponse = z41.discriminatedUnion("status", [
12338
12342
  ]);
12339
12343
  var ShopifyPublishAttemptStatus = z41.discriminatedUnion("status", [
12340
12344
  z41.object({
12341
- publicationId: z41.string().uuid(),
12342
- taskId: z41.string().uuid(),
12345
+ publicationId: z41.string().guid(),
12346
+ taskId: z41.string().guid(),
12343
12347
  status: z41.enum([
12344
12348
  "pending",
12345
12349
  "processing"
@@ -12347,8 +12351,8 @@ var ShopifyPublishAttemptStatus = z41.discriminatedUnion("status", [
12347
12351
  productId: z41.string().optional()
12348
12352
  }),
12349
12353
  z41.object({
12350
- publicationId: z41.string().uuid(),
12351
- taskId: z41.string().uuid(),
12354
+ publicationId: z41.string().guid(),
12355
+ taskId: z41.string().guid(),
12352
12356
  status: z41.literal("error"),
12353
12357
  productId: z41.string().optional(),
12354
12358
  failure: z41.discriminatedUnion("kind", [
@@ -12502,7 +12506,7 @@ var CreateShopifyBillingChargeRequest = z41.object({
12502
12506
  });
12503
12507
  var ShopifyBillingCallbackQuery = z41.object({
12504
12508
  charge_id: z41.string().regex(/^\d+$/),
12505
- transactionId: z41.string().uuid()
12509
+ transactionId: z41.string().guid()
12506
12510
  });
12507
12511
  var CancelShopifySubscriptionRequest = z41.object({
12508
12512
  subscriptionId: z41.string().min(1)
@@ -12568,12 +12572,12 @@ var ApproveAnglesRefusalReason = z42.enum([
12568
12572
  ]);
12569
12573
  var ApproveAnglesResponse = z42.object({
12570
12574
  success: z42.boolean(),
12571
- taskId: z42.string().uuid(),
12575
+ taskId: z42.string().guid(),
12572
12576
  reason: ApproveAnglesRefusalReason.optional()
12573
12577
  });
12574
12578
  var IngestResumeRefusalResponse = z42.object({
12575
12579
  success: z42.literal(false),
12576
- taskId: z42.string().uuid(),
12580
+ taskId: z42.string().guid(),
12577
12581
  reason: ApproveAnglesRefusalReason.optional()
12578
12582
  });
12579
12583
  var GenerateSuggestionsResponse = z42.object({
@@ -12588,7 +12592,7 @@ var SaveDraftRequest = z42.object({
12588
12592
  });
12589
12593
  var SaveDraftResponse = z42.object({
12590
12594
  success: z42.boolean(),
12591
- taskId: z42.string().uuid()
12595
+ taskId: z42.string().guid()
12592
12596
  });
12593
12597
  var ProductReferenceRecoveryImageMimeType = z42.enum([
12594
12598
  "image/jpeg",
@@ -12633,7 +12637,7 @@ var ConfirmProductReferencesRequest = z42.object({
12633
12637
  "keep_selection"
12634
12638
  ]),
12635
12639
  affectedRefKeys: z42.array(z42.string().min(1).max(200)).min(1).max(5).optional(),
12636
- expectedReferenceVersionId: z42.string().uuid().optional(),
12640
+ expectedReferenceVersionId: z42.string().guid().optional(),
12637
12641
  expectedEvidenceHash: z42.string().min(1).max(128).optional(),
12638
12642
  uploadedImages: z42.array(ProductReferenceRecoveryUpload).max(INGEST_MAX_REFERENCE_IMAGES).optional()
12639
12643
  }).optional()
@@ -12670,7 +12674,7 @@ var ConfirmProductReferencesRequest = z42.object({
12670
12674
  });
12671
12675
  var ConfirmProductReferencesResponse = z42.object({
12672
12676
  success: z42.boolean(),
12673
- taskId: z42.string().uuid(),
12677
+ taskId: z42.string().guid(),
12674
12678
  anglesQueued: z42.boolean()
12675
12679
  });
12676
12680
  var UpdateProductFeaturesRequest = z42.object({
@@ -12737,7 +12741,7 @@ var ApproveVideoAnglesRequest = z42.object({
12737
12741
  "meta",
12738
12742
  "upload"
12739
12743
  ]).optional(),
12740
- sourceUploadIds: z42.array(z42.string().uuid()).min(2).max(5).optional(),
12744
+ sourceUploadIds: z42.array(z42.string().guid()).min(2).max(5).optional(),
12741
12745
  /** Whether to pause for video script review before final generation */
12742
12746
  pauseForVideoScriptReview: z42.boolean().optional(),
12743
12747
  /** Whether to produce an additional AI-music video variant */
@@ -12751,7 +12755,7 @@ var ApproveVideoAnglesRequest = z42.object({
12751
12755
  }).superRefine((value, ctx) => validateFrankensteinDraftSources(value, ctx, true));
12752
12756
  var ApproveVideoAnglesResponse = z42.object({
12753
12757
  success: z42.boolean(),
12754
- taskId: z42.string().uuid(),
12758
+ taskId: z42.string().guid(),
12755
12759
  /** Persisted keys scheduled by this approval; visible candidate indices are not worker keys. */
12756
12760
  approvedAngleKeys: z42.array(z42.string().regex(/^angle_\d+$/)).min(1).max(3).optional(),
12757
12761
  reason: ApproveAnglesRefusalReason.optional()
@@ -12771,11 +12775,11 @@ var SaveVideoDraftRequest = z42.object({
12771
12775
  "meta",
12772
12776
  "upload"
12773
12777
  ]).optional(),
12774
- sourceUploadIds: z42.array(z42.string().uuid()).min(2).max(5).optional()
12778
+ sourceUploadIds: z42.array(z42.string().guid()).min(2).max(5).optional()
12775
12779
  }).superRefine((value, ctx) => validateFrankensteinDraftSources(value, ctx, false));
12776
12780
  var SaveVideoDraftResponse = z42.object({
12777
12781
  success: z42.boolean(),
12778
- taskId: z42.string().uuid()
12782
+ taskId: z42.string().guid()
12779
12783
  });
12780
12784
  var ApproveImageAnglesRequest = z42.object({
12781
12785
  /** Zero-based index of the generated angle explicitly selected for production. */
@@ -12799,7 +12803,7 @@ var ApproveImageAnglesRequest = z42.object({
12799
12803
  });
12800
12804
  var ApproveImageAnglesResponse = z42.object({
12801
12805
  success: z42.boolean(),
12802
- taskId: z42.string().uuid(),
12806
+ taskId: z42.string().guid(),
12803
12807
  reason: ApproveAnglesRefusalReason.optional()
12804
12808
  });
12805
12809
  var SaveImageDraftRequest = z42.object({
@@ -12810,7 +12814,7 @@ var SaveImageDraftRequest = z42.object({
12810
12814
  });
12811
12815
  var SaveImageDraftResponse = z42.object({
12812
12816
  success: z42.boolean(),
12813
- taskId: z42.string().uuid()
12817
+ taskId: z42.string().guid()
12814
12818
  });
12815
12819
  var ImageSuggestionsResponse = z42.object({
12816
12820
  painPoints: z42.array(z42.string()),
@@ -12856,8 +12860,8 @@ var QualityReportReason = z43.enum([
12856
12860
  "other"
12857
12861
  ]);
12858
12862
  var QualityReportRequest = z43.object({
12859
- taskId: z43.string().uuid().optional(),
12860
- mixTaskId: z43.string().uuid().optional(),
12863
+ taskId: z43.string().guid().optional(),
12864
+ mixTaskId: z43.string().guid().optional(),
12861
12865
  kind: QualityReportKind,
12862
12866
  /**
12863
12867
  * URL or internal proxy path (e.g. `/api/assets/...`).
@@ -12883,9 +12887,9 @@ var QualityReportRequest = z43.object({
12883
12887
  ]
12884
12888
  });
12885
12889
  var QualityReportResponse = z43.object({
12886
- reportId: z43.string().uuid(),
12887
- taskId: z43.string().uuid().optional(),
12888
- mixTaskId: z43.string().uuid().optional(),
12890
+ reportId: z43.string().guid(),
12891
+ taskId: z43.string().guid().optional(),
12892
+ mixTaskId: z43.string().guid().optional(),
12889
12893
  kind: QualityReportKind,
12890
12894
  resourceUrl: z43.string().min(1),
12891
12895
  reason: QualityReportReason,
@@ -13314,7 +13318,7 @@ var TaskCreativeVariantVideoPreset = VideoPreset.exclude([
13314
13318
  ...BLOCKED_VIDEO_PRESETS
13315
13319
  ]);
13316
13320
  var CreateTaskCreativeVariantBase = z47.object({
13317
- clientRequestId: z47.string().uuid(),
13321
+ clientRequestId: z47.string().guid(),
13318
13322
  angle: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.angle),
13319
13323
  buyerPersona: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.buyerPersona).optional()
13320
13324
  });
@@ -13337,7 +13341,7 @@ var CreateTaskImageVariantRequest = CreateTaskCreativeVariantBase.extend({
13337
13341
  styleMix: z47.boolean().optional()
13338
13342
  }).strict();
13339
13343
  var CreateTaskLandingSectionVariantRequest = z47.object({
13340
- clientRequestId: z47.string().uuid(),
13344
+ clientRequestId: z47.string().guid(),
13341
13345
  kind: z47.literal("landing"),
13342
13346
  sectionKey: LandingSectionKeySchema,
13343
13347
  instructions: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.landingInstructions).optional()
@@ -13365,8 +13369,8 @@ var EstimateTaskCreativeVariantRequest = z47.discriminatedUnion("kind", [
13365
13369
  ]);
13366
13370
  var CreateTaskCreativeVariantResponse = z47.object({
13367
13371
  ok: z47.literal(true),
13368
- sourceTaskId: z47.string().uuid(),
13369
- variantTaskId: z47.string().uuid(),
13372
+ sourceTaskId: z47.string().guid(),
13373
+ variantTaskId: z47.string().guid(),
13370
13374
  kind: TaskCreativeVariantKind,
13371
13375
  status: TaskCreativeVariantStatus
13372
13376
  }).strict();
@@ -13389,15 +13393,15 @@ var TaskCreativeVariantRecommendationRequest = z47.object({
13389
13393
  }).strict();
13390
13394
  var TaskCreativeVariantRecommendationResponse = z47.object({
13391
13395
  ok: z47.literal(true),
13392
- sourceTaskId: z47.string().uuid(),
13396
+ sourceTaskId: z47.string().guid(),
13393
13397
  kind: TaskCreativeVariantKind,
13394
13398
  field: TaskCreativeVariantRecommendationField,
13395
13399
  value: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.scriptNotes),
13396
13400
  rationale: z47.string().trim().min(1).max(TASK_CREATIVE_VARIANT_TEXT_LIMITS.recommendationRationale).optional()
13397
13401
  }).strict();
13398
13402
  var TaskCreativeVariantBaseResult = z47.object({
13399
- variantTaskId: z47.string().uuid(),
13400
- sourceTaskId: z47.string().uuid(),
13403
+ variantTaskId: z47.string().guid(),
13404
+ sourceTaskId: z47.string().guid(),
13401
13405
  kind: TaskCreativeVariantKind,
13402
13406
  status: TaskCreativeVariantStatus,
13403
13407
  angle: z47.string().min(1),
@@ -13571,7 +13575,7 @@ var ResultAngle = Angle.extend({
13571
13575
  aiEdit: AiEditTierSchema.nullable().optional()
13572
13576
  });
13573
13577
  var MVPResult = z49.object({
13574
- taskId: z49.string().uuid(),
13578
+ taskId: z49.string().guid(),
13575
13579
  /** Read-only identity derived from validated persisted request context.
13576
13580
  * Optional for older APIs and content-only tasks; absence never implies a service. */
13577
13581
  subjectKind: z49.enum([
@@ -13749,7 +13753,7 @@ var PendingUserActionSchema = z49.discriminatedUnion("kind", [
13749
13753
  z49.object({
13750
13754
  kind: z49.literal("service_angle_approval"),
13751
13755
  angles: z49.array(z49.object({
13752
- id: z49.string().uuid(),
13756
+ id: z49.string().guid(),
13753
13757
  content: z49.string(),
13754
13758
  creativeDirection: z49.string(),
13755
13759
  actor: z49.string(),
@@ -13828,7 +13832,7 @@ var CommercialStudySummarySchema = z49.union([
13828
13832
  })
13829
13833
  ]);
13830
13834
  var StatusResponse = z49.object({
13831
- taskId: z49.string().uuid(),
13835
+ taskId: z49.string().guid(),
13832
13836
  status: TaskStatusSchema,
13833
13837
  /** ENGINEERING string (`Task.error`). Never render this to a seller. */
13834
13838
  error: z49.string().optional(),
@@ -14036,7 +14040,7 @@ var StatusResponse = z49.object({
14036
14040
  frankensteinRun: FrankensteinRunProgressSchema.optional()
14037
14041
  });
14038
14042
  var TaskSummary = z49.object({
14039
- taskId: z49.string().uuid(),
14043
+ taskId: z49.string().guid(),
14040
14044
  /** A projected ServicePage, opened through its own editor and lifecycle. */
14041
14045
  resourceType: z49.literal("service_page").optional(),
14042
14046
  status: TaskStatusSchema,
@@ -14465,7 +14469,7 @@ var RegenerateLandingRoleBody = z50.object({
14465
14469
  comment: z50.string().max(2e3).optional(),
14466
14470
  sourceKey: z50.string().max(200).optional(),
14467
14471
  /** Client-generated key makes a lost response safe to retry without another charge. */
14468
- clientRequestId: z50.string().uuid().optional()
14472
+ clientRequestId: z50.string().guid().optional()
14469
14473
  }).strict();
14470
14474
  var LandingRegenerateEstimationOptions = z50.object({
14471
14475
  /** KIE image endpoint has non-linear pricing by nVariants; for landing we default to 2. */
@@ -15452,7 +15456,7 @@ var UpdateUserCreditsRequest = z53.object({
15452
15456
  /** Free-text detail. Required when the enum alone does not explain the grant. */
15453
15457
  notes: z53.string().trim().min(1).max(500).optional(),
15454
15458
  /** The task the grant compensates, when there is one. */
15455
- taskId: z53.string().uuid().optional()
15459
+ taskId: z53.string().guid().optional()
15456
15460
  });
15457
15461
  var QualityReportStatus = z53.enum([
15458
15462
  "open",
@@ -15512,7 +15516,7 @@ var AdminSupportDeliveryStatus = z53.enum([
15512
15516
  "blocked"
15513
15517
  ]);
15514
15518
  var AdminSupportMessage = z53.object({
15515
- id: z53.string().uuid(),
15519
+ id: z53.string().guid(),
15516
15520
  direction: z53.enum([
15517
15521
  "inbound",
15518
15522
  "outbound"
@@ -15536,7 +15540,7 @@ var AdminSupportMessage = z53.object({
15536
15540
  createdAt: z53.string().datetime()
15537
15541
  });
15538
15542
  var AdminSupportTicket = z53.object({
15539
- id: z53.string().uuid(),
15543
+ id: z53.string().guid(),
15540
15544
  category: z53.enum([
15541
15545
  "how_to",
15542
15546
  "credits",
@@ -15565,7 +15569,7 @@ var AdminSupportTicket = z53.object({
15565
15569
  updatedAt: z53.string().datetime()
15566
15570
  });
15567
15571
  var AdminSupportConversation = z53.object({
15568
- id: z53.string().uuid(),
15572
+ id: z53.string().guid(),
15569
15573
  status: AdminSupportConversationStatus,
15570
15574
  priority: z53.enum([
15571
15575
  "low",
@@ -15580,7 +15584,7 @@ var AdminSupportConversation = z53.object({
15580
15584
  createdAt: z53.string().datetime(),
15581
15585
  updatedAt: z53.string().datetime(),
15582
15586
  contact: z53.object({
15583
- id: z53.string().uuid(),
15587
+ id: z53.string().guid(),
15584
15588
  userId: z53.string().nullable(),
15585
15589
  verifiedAt: z53.string().datetime().nullable(),
15586
15590
  botMode: z53.enum([
@@ -15596,11 +15600,11 @@ var AdminSupportConversation = z53.object({
15596
15600
  var AdminSupportListQuery = z53.object({
15597
15601
  status: AdminSupportConversationStatus.optional(),
15598
15602
  take: z53.coerce.number().int().min(1).max(100).default(50),
15599
- cursorId: z53.string().uuid().optional()
15603
+ cursorId: z53.string().guid().optional()
15600
15604
  }).strict();
15601
15605
  var AdminSupportListResponse = z53.object({
15602
15606
  conversations: z53.array(AdminSupportConversation),
15603
- nextCursor: z53.string().uuid().nullable()
15607
+ nextCursor: z53.string().guid().nullable()
15604
15608
  });
15605
15609
  var AdminSupportReplyRequest = z53.object({
15606
15610
  body: z53.string().trim().min(1).max(4096),
@@ -15611,7 +15615,7 @@ var AdminSupportActionResponse = z53.object({
15611
15615
  conversation: AdminSupportConversation
15612
15616
  });
15613
15617
  var AdminSupportReplyResponse = z53.object({
15614
- messageId: z53.string().uuid(),
15618
+ messageId: z53.string().guid(),
15615
15619
  deliveryStatus: AdminSupportDeliveryStatus,
15616
15620
  duplicate: z53.boolean()
15617
15621
  });
@@ -15741,7 +15745,7 @@ var VideoVoiceJobSchema = z57.object({
15741
15745
  wakeRevision: z57.number().int().nonnegative()
15742
15746
  }).strict();
15743
15747
  var ExtractJobSchema = z57.object({
15744
- taskId: z57.string().uuid(),
15748
+ taskId: z57.string().guid(),
15745
15749
  imageKey: z57.string().min(1).optional(),
15746
15750
  imageKeys: z57.array(z57.string().min(1)).min(1).max(INGEST_MAX_REFERENCE_IMAGES).optional(),
15747
15751
  /** Existing clean references carried through a recovery extract. They are
@@ -15860,20 +15864,20 @@ var BrandExtractDocumentSchema = z57.object({
15860
15864
  ])
15861
15865
  });
15862
15866
  var VideoMixSubmitJobSchema = z57.object({
15863
- mixTaskId: z57.string().uuid()
15867
+ mixTaskId: z57.string().guid()
15864
15868
  });
15865
15869
  var VideoMixAssembleJobSchema = z57.object({
15866
- mixTaskId: z57.string().uuid()
15870
+ mixTaskId: z57.string().guid()
15867
15871
  });
15868
15872
  var VideoMixQaJobSchema = z57.object({
15869
- mixSceneTaskId: z57.string().uuid(),
15873
+ mixSceneTaskId: z57.string().guid(),
15870
15874
  // externalId is included in the BullMQ payload by the producer (used in the
15871
15875
  // jobId for retry uniqueness) but the worker only reads mixSceneTaskId.
15872
15876
  externalId: z57.string().min(1).optional()
15873
15877
  });
15874
15878
  var BrandExtractLocaleSchema = z57.string().regex(/^[A-Za-z]{2,3}(?:[-_][A-Za-z0-9]{2,8})?$/, "invalid locale");
15875
15879
  var BrandExtractJobSchema = z57.object({
15876
- brandId: z57.string().uuid(),
15880
+ brandId: z57.string().guid(),
15877
15881
  // Generation is part of the durable paid-spend identity. Default 1 keeps
15878
15882
  // pre-migration BullMQ payloads parseable; their DB state fails safe.
15879
15883
  generation: z57.number().int().positive().default(1),
@@ -15905,23 +15909,23 @@ import { z as z58 } from "zod";
15905
15909
  var WhatsAppDeliveryConsumerSchema = z58.discriminatedUnion("kind", [
15906
15910
  z58.object({
15907
15911
  kind: z58.literal("presentation"),
15908
- presentationId: z58.string().uuid(),
15912
+ presentationId: z58.string().guid(),
15909
15913
  pollAt: z58.number().int().nonnegative()
15910
15914
  }).strict(),
15911
15915
  z58.object({
15912
15916
  kind: z58.literal("message"),
15913
- messageId: z58.string().uuid(),
15917
+ messageId: z58.string().guid(),
15914
15918
  providerMessageId: z58.string().min(1).max(256)
15915
15919
  }).strict(),
15916
15920
  z58.object({
15917
15921
  kind: z58.literal("task_watch"),
15918
- commandId: z58.string().uuid(),
15922
+ commandId: z58.string().guid(),
15919
15923
  pollAt: z58.number().int().nonnegative()
15920
15924
  }).strict(),
15921
15925
  z58.object({
15922
15926
  kind: z58.literal("research_watch"),
15923
- commandId: z58.string().uuid(),
15924
- runId: z58.string().uuid(),
15927
+ commandId: z58.string().guid(),
15928
+ runId: z58.string().guid(),
15925
15929
  pollAt: z58.number().int().nonnegative()
15926
15930
  }).strict()
15927
15931
  ]);
@@ -15970,9 +15974,9 @@ var ComboItemSchema = z60.object({
15970
15974
  /** Physical details for this specific product */
15971
15975
  details: z60.object({
15972
15976
  packagingType: z60.string().optional(),
15973
- geometry: z60.record(z60.unknown()).optional(),
15974
- morphology: z60.record(z60.unknown()).optional(),
15975
- estimatedDimensions: z60.record(z60.unknown()).optional()
15977
+ geometry: z60.record(z60.string(), z60.unknown()).optional(),
15978
+ morphology: z60.record(z60.string(), z60.unknown()).optional(),
15979
+ estimatedDimensions: z60.record(z60.string(), z60.unknown()).optional()
15976
15980
  }).optional(),
15977
15981
  /** Per-item usage spec extracted individually (fallback: global combo usageSpec) */
15978
15982
  usageSpec: ProductUsageSpec.optional()
@@ -16011,7 +16015,7 @@ var FacebookConnectionStatusSchema = z61.object({
16011
16015
  message: z61.string().optional()
16012
16016
  });
16013
16017
  var FacebookCreateCampaignRequestSchema = z61.object({
16014
- taskId: z61.string().uuid(),
16018
+ taskId: z61.string().guid(),
16015
16019
  pixelId: z61.string().optional(),
16016
16020
  landingUrl: HttpUrl2.optional()
16017
16021
  });
@@ -16136,29 +16140,14 @@ var FacebookCreateCampaignResponseSchema = z61.object({
16136
16140
  appliedBudget: z61.number().int().positive()
16137
16141
  });
16138
16142
  var FacebookCreateCampaignFromCreativesBodySchema = z61.object({
16139
- /** Caller-owned retry fence. Required before any provider operation. */
16140
- publishAttemptId: MetaPublishAttemptId,
16141
- creatives: z61.array(z61.object({
16142
- type: MediaKind,
16143
- title: z61.string().max(120),
16144
- description: z61.string().max(500),
16145
- cta: MetaCtaType,
16143
+ ...UploadToMetaRequest.shape,
16144
+ creatives: z61.array(UploadToMetaRequest.shape.creatives.element.extend({
16145
+ // Retain this endpoint's HTTP URL policy; the upload owner additionally
16146
+ // forbids credentials. Sharing its field shape must not tighten ours.
16146
16147
  mediaUrl: HttpUrl2.optional(),
16147
- mediaAssetId: z61.string().uuid().optional(),
16148
- thumbnailUrl: HttpUrl2.optional(),
16149
- thumbnailAssetId: z61.string().uuid().optional(),
16150
- creativeId: z61.string().min(1).optional()
16148
+ thumbnailUrl: HttpUrl2.optional()
16151
16149
  })).min(1).max(CAMPAIGN_LIMITS.MAX_CREATIVES),
16152
- adAccountId: MetaAdAccountId,
16153
- portfolioId: z61.string().min(1).optional(),
16154
- pageId: z61.string().min(1).optional(),
16155
- pixelId: z61.string().optional(),
16156
- /** Required unless campaignConfig.destination is 'whatsapp' (see superRefine below). */
16157
16150
  landingUrl: HttpUrl2.optional(),
16158
- /** Target country for ad targeting (ISO 3166-1 alpha-2 code or resolvable name) */
16159
- targetCountry: CountryIso2Schema.default("US"),
16160
- /** Custom campaign name */
16161
- campaignName: z61.string().min(1).max(100).optional(),
16162
16151
  campaignConfig: MetaCampaignConfig.optional()
16163
16152
  }).superRefine((value, ctx) => {
16164
16153
  const isWhatsapp = value.campaignConfig?.destination?.type === "whatsapp";
@@ -16171,30 +16160,7 @@ var FacebookCreateCampaignFromCreativesBodySchema = z61.object({
16171
16160
  message: "landingUrl is required unless destination is whatsapp"
16172
16161
  });
16173
16162
  }
16174
- value.creatives.forEach((creative, index) => {
16175
- if (Boolean(creative.mediaUrl) === Boolean(creative.mediaAssetId)) {
16176
- ctx.addIssue({
16177
- code: z61.ZodIssueCode.custom,
16178
- path: [
16179
- "creatives",
16180
- index,
16181
- "mediaUrl"
16182
- ],
16183
- message: "Provide exactly one of mediaUrl or mediaAssetId"
16184
- });
16185
- }
16186
- if (creative.thumbnailUrl && creative.thumbnailAssetId) {
16187
- ctx.addIssue({
16188
- code: z61.ZodIssueCode.custom,
16189
- path: [
16190
- "creatives",
16191
- index,
16192
- "thumbnailUrl"
16193
- ],
16194
- message: "Provide at most one of thumbnailUrl or thumbnailAssetId"
16195
- });
16196
- }
16197
- });
16163
+ refineMetaCreativeSources(value, ctx);
16198
16164
  if (value.campaignConfig?.destination?.type === "landing" && value.landingUrl && value.campaignConfig.destination.landingUrl !== value.landingUrl) {
16199
16165
  ctx.addIssue({
16200
16166
  code: z61.ZodIssueCode.custom,
@@ -16273,9 +16239,9 @@ var FacebookTaskCreativeSourceSchema = z61.object({
16273
16239
  var FacebookMediaCreativeSourceSchema = z61.object({
16274
16240
  type: z61.literal("media"),
16275
16241
  mediaUrl: HttpUrl2.optional(),
16276
- mediaAssetId: z61.string().uuid().optional(),
16242
+ mediaAssetId: z61.string().guid().optional(),
16277
16243
  thumbnailUrl: HttpUrl2.optional(),
16278
- thumbnailAssetId: z61.string().uuid().optional()
16244
+ thumbnailAssetId: z61.string().guid().optional()
16279
16245
  });
16280
16246
  var FacebookCreativeSourceSchema = z61.discriminatedUnion("type", [
16281
16247
  FacebookTaskCreativeSourceSchema,
@@ -16298,15 +16264,15 @@ var FacebookCreateCampaignFromTasksBodySchema = z61.object({
16298
16264
  pageId: z61.string().min(1),
16299
16265
  pixelId: z61.string().optional(),
16300
16266
  /**
16301
- * Omitted: a campaign with task creatives lands on the published service
16302
- * landing of its service tasks (resolved server side, META_NO_LANDING_URL
16303
- * when there is none); a media-only campaign must name it.
16304
- */
16267
+ * Omitted: a campaign with task creatives lands on the published service
16268
+ * landing of its service tasks (resolved server side, META_NO_LANDING_URL
16269
+ * when there is none); a media-only campaign must name it.
16270
+ */
16305
16271
  landingUrl: HttpUrl2.optional(),
16306
16272
  /**
16307
- * Omitted: the brand country of its service tasks; a product-only campaign
16308
- * keeps "US". Never a hardcoded country for a service (META_NO_TARGET_COUNTRY).
16309
- */
16273
+ * Omitted: the brand country of its service tasks; a product-only campaign
16274
+ * keeps "US". Never a hardcoded country for a service (META_NO_TARGET_COUNTRY).
16275
+ */
16310
16276
  targetCountry: CountryIso2Schema.optional(),
16311
16277
  campaignName: z61.string().min(1).max(100),
16312
16278
  campaignConfig: MetaCampaignConfig.optional()
@@ -16867,7 +16833,7 @@ var VideoSpeechAssetSchema = z64.object({
16867
16833
  var VoiceProgressSchema = z64.discriminatedUnion("status", [
16868
16834
  z64.object({
16869
16835
  status: z64.literal("ready"),
16870
- value: z64.unknown()
16836
+ value: z64.unknown().optional()
16871
16837
  }).strict(),
16872
16838
  z64.object({
16873
16839
  status: z64.literal("waiting"),
@@ -17417,7 +17383,7 @@ var MixSceneResult = z67.object({
17417
17383
  degradedReason: MixDegradationReasonSchema.optional()
17418
17384
  });
17419
17385
  var MixResult = z67.object({
17420
- mixTaskId: z67.string().uuid(),
17386
+ mixTaskId: z67.string().guid(),
17421
17387
  status: z67.enum([
17422
17388
  "queued",
17423
17389
  "processing",
@@ -17460,7 +17426,7 @@ var PreparedImagePreviewUrlSchema = z68.string().url().max(2048).refine((value)
17460
17426
  return protocol === "https:" || protocol === "http:";
17461
17427
  }, "Prepared image preview URLs must use HTTP(S)");
17462
17428
  var WinningProductPreparedImageSchema = z68.object({
17463
- assetId: z68.string().uuid(),
17429
+ assetId: z68.string().guid(),
17464
17430
  previewUrl: PreparedImagePreviewUrlSchema,
17465
17431
  productName: z68.string().trim().min(1).max(240),
17466
17432
  presentation: MediaPresentationImageSchema
@@ -17759,14 +17725,16 @@ var LandingOperationStepSelectionSchema = CodeLandingStepSelectionSchema.extend(
17759
17725
  var LandingOperationReceiptStepSchema = LandingOperationStepSelectionSchema.extend({
17760
17726
  receipt: CodeLandingEffectiveReceiptSchema.optional()
17761
17727
  });
17762
- var LandingOperationEnvelopeNodeSchema = CodeLandingEnvelopeNodeSchema.innerType().extend({
17728
+ var LandingOperationEnvelopeNodeSchema = z73.object(CodeLandingEnvelopeNodeSchema.shape).strict().extend({
17763
17729
  phase: LandingOperationStepPhaseSchema
17764
17730
  }).superRefine((node, ctx) => {
17765
17731
  const legacy = CodeLandingEnvelopeNodeSchema.safeParse({
17766
17732
  ...node,
17767
17733
  phase: "asset"
17768
17734
  });
17769
- if (!legacy.success) for (const issue of legacy.error.issues) ctx.addIssue(issue);
17735
+ if (!legacy.success) for (const issue of legacy.error.issues) ctx.addIssue({
17736
+ ...issue
17737
+ });
17770
17738
  });
17771
17739
  var LandingGifGenerationPolicySchema = z73.discriminatedUnion("model", [
17772
17740
  z73.object({
@@ -18153,7 +18121,7 @@ var LandingRegenerationStatusResponse = z75.object({
18153
18121
  });
18154
18122
 
18155
18123
  // ../../packages/types/src/shopify-meta-tracking.ts
18156
- import { z as z76 } from "zod";
18124
+ import * as z76 from "zod";
18157
18125
  var MetaTrackingOwnerSchema = z76.enum([
18158
18126
  "auto",
18159
18127
  "external",
@@ -18361,7 +18329,7 @@ var UploadedAssetRole = z78.enum([
18361
18329
  ]);
18362
18330
  var UPLOADED_ASSET_MAX_FILES = 10;
18363
18331
  var UPLOADED_ASSET_IMAGE_MAX_FILES = 5;
18364
- var UploadedAssetId = z78.string().uuid();
18332
+ var UploadedAssetId = z78.string().guid();
18365
18333
  var HttpsUrl = z78.string().url().refine((value) => {
18366
18334
  try {
18367
18335
  const url2 = new URL(value);
@@ -18502,7 +18470,7 @@ var DropshippingProjectRewardMilestoneStateSchema = z79.object({
18502
18470
  credits: z79.number().int().positive(),
18503
18471
  available: z79.boolean().optional(),
18504
18472
  earned: z79.boolean(),
18505
- grantId: z79.string().uuid().nullable(),
18473
+ grantId: z79.string().guid().nullable(),
18506
18474
  grantedAt: z79.string().datetime().nullable()
18507
18475
  });
18508
18476
  var DropshippingProjectRewardProgressSchema = z79.object({
@@ -18568,16 +18536,16 @@ var HttpUrlSchema = z79.string().url().max(2e3).refine((value) => {
18568
18536
  }, "Product URL must use HTTP(S)");
18569
18537
  var ResearchCandidateOriginSchema = z79.object({
18570
18538
  type: z79.literal("research_candidate"),
18571
- runId: z79.string().uuid(),
18539
+ runId: z79.string().guid(),
18572
18540
  candidateSourceId: z79.string().min(1).max(160)
18573
18541
  });
18574
18542
  var TaskOriginSchema = z79.object({
18575
18543
  type: z79.literal("task"),
18576
- taskId: z79.string().uuid()
18544
+ taskId: z79.string().guid()
18577
18545
  });
18578
18546
  var ManualOriginSchema = z79.object({
18579
18547
  type: z79.literal("manual"),
18580
- clientRequestId: z79.string().uuid(),
18548
+ clientRequestId: z79.string().guid(),
18581
18549
  country: z79.string().min(2).max(3).optional()
18582
18550
  });
18583
18551
  var CreateDropshippingProjectRequestSchema = z79.object({
@@ -18650,11 +18618,11 @@ var DropshippingProjectNextActionSchema = z79.discriminatedUnion("kind", [
18650
18618
  })
18651
18619
  ]);
18652
18620
  var DropshippingProjectResponseSchema = z79.object({
18653
- id: z79.string().uuid(),
18654
- taskId: z79.string().uuid().nullable(),
18621
+ id: z79.string().guid(),
18622
+ taskId: z79.string().guid().nullable(),
18655
18623
  status: DropshippingProjectStatusSchema,
18656
18624
  originKey: z79.string().min(1),
18657
- researchRunId: z79.string().uuid().nullable(),
18625
+ researchRunId: z79.string().guid().nullable(),
18658
18626
  candidateSourceId: z79.string().nullable(),
18659
18627
  productName: z79.string().nullable(),
18660
18628
  productUrl: HttpUrlSchema.nullable(),
@@ -19009,7 +18977,7 @@ var mediaVideoFields = {
19009
18977
  var mediaImageFields = {
19010
18978
  kind: z81.literal("image"),
19011
18979
  durationSec: z81.never({
19012
- invalid_type_error: "a photo has no duration"
18980
+ error: "a photo has no duration"
19013
18981
  }).optional()
19014
18982
  };
19015
18983
  var mediaOriginFields = {
@@ -19254,7 +19222,7 @@ var LegacyMotionGraphicsClipSpecSchema = z84.discriminatedUnion("kind", [
19254
19222
  ...clipSpecFields,
19255
19223
  kind: z84.literal("broll"),
19256
19224
  speech: z84.never({
19257
- invalid_type_error: "only a speaking clip carries speech"
19225
+ error: "only a speaking clip carries speech"
19258
19226
  }).optional()
19259
19227
  }).strict(),
19260
19228
  z84.object({
@@ -19827,8 +19795,8 @@ var MotionGraphicsCreativeBatchSchema = z89.object({
19827
19795
  version: z89.literal("v1"),
19828
19796
  count: MotionGraphicsHookVariantsSchema,
19829
19797
  index: MotionGraphicsHookVariantsSchema,
19830
- rootTaskId: z89.string().uuid().optional(),
19831
- taskIds: z89.array(z89.string().uuid()).min(1).max(3).optional(),
19798
+ rootTaskId: z89.string().guid().optional(),
19799
+ taskIds: z89.array(z89.string().guid()).min(1).max(3).optional(),
19832
19800
  plans: MotionGraphicsCreativePlansSchema.optional()
19833
19801
  }).strict().superRefine((batch, ctx) => {
19834
19802
  if (batch.index > batch.count) ctx.addIssue({
@@ -19924,7 +19892,7 @@ var MotionGraphicsMusicStatusResponseSchema = z90.discriminatedUnion("status", [
19924
19892
  // ../../packages/types/src/website-capture-artifact.ts
19925
19893
  import { z as z91 } from "zod";
19926
19894
  var WebsiteCaptureBindingSchema = z91.object({
19927
- captureId: z91.string().uuid(),
19895
+ captureId: z91.string().guid(),
19928
19896
  bundleKey: z91.string().min(1),
19929
19897
  sha256: z91.string().regex(/^[a-f0-9]{64}$/)
19930
19898
  });
@@ -20068,7 +20036,7 @@ var motionGraphicsStateSchema = z93.object({
20068
20036
  /** Durable, unpaid Generate intent. Removed only after capture admission and payment. */
20069
20037
  captureAdmission: z93.object({
20070
20038
  version: z93.literal("v1"),
20071
- captureId: z93.string().uuid().optional(),
20039
+ captureId: z93.string().guid().optional(),
20072
20040
  maxSocialAcquisitionPriceCents: z93.number().finite().nonnegative(),
20073
20041
  maxTotalPriceCents: z93.number().finite().nonnegative(),
20074
20042
  deadlineAt: z93.string().datetime(),
@@ -22032,7 +22000,7 @@ var DailyControlProductFactsSchema = z96.object({
22032
22000
  currency: z96.string()
22033
22001
  });
22034
22002
  var DailyControlProductSchema = z96.object({
22035
- projectId: z96.string().uuid(),
22003
+ projectId: z96.string().guid(),
22036
22004
  productName: z96.string().nullable(),
22037
22005
  status: DailyControlStatusSchema,
22038
22006
  /** Motivo legible cuando status !== 'ok'. Nunca se rellenan métricas en ese caso. */
@@ -22077,7 +22045,7 @@ var DailyControlQuerySchema = z96.object({
22077
22045
  * necesita ese producto; sin este filtro cada carga de página lee el gasto
22078
22046
  * de TODOS los proyectos activos del usuario contra Meta/TikTok/Shopify.
22079
22047
  */
22080
- projectId: z96.string().uuid().optional()
22048
+ projectId: z96.string().guid().optional()
22081
22049
  });
22082
22050
  var LinkableCampaignSchema = z96.object({
22083
22051
  provider: z96.enum([
@@ -22286,7 +22254,7 @@ var CreateFinanceOperationSchema = z97.object({
22286
22254
  label: z97.string().trim().min(1).max(60).optional()
22287
22255
  }).strict();
22288
22256
  var FinanceOperationSchema = z97.object({
22289
- id: z97.string().uuid(),
22257
+ id: z97.string().guid(),
22290
22258
  countryCode: z97.string().length(2),
22291
22259
  currency: z97.string().min(3).max(3),
22292
22260
  label: z97.string().min(1)
@@ -22295,7 +22263,7 @@ var MonthlyPLQuerySchema = z97.object({
22295
22263
  /** Opcional a propósito: con UNA sola operación —el caso de casi todo el
22296
22264
  * mundo— el servidor la resuelve solo. Con varias devuelve cuáles son,
22297
22265
  * para poder preguntar por país en vez de fallar. */
22298
- operationId: z97.string().uuid().optional(),
22266
+ operationId: z97.string().guid().optional(),
22299
22267
  /** YYYY-MM. Solo mes calendario: es el periodo con el que se piensa un
22300
22268
  * negocio, y prorratear gastos fijos sobre un rango libre confunde más de
22301
22269
  * lo que ayuda. */
@@ -22304,7 +22272,7 @@ var MonthlyPLQuerySchema = z97.object({
22304
22272
  var RESERVED_EXPENSE_LABEL_PREFIX = "__ad_spend__";
22305
22273
  var isReservedExpenseLabel = /* @__PURE__ */ __name((label) => label.trim().startsWith(RESERVED_EXPENSE_LABEL_PREFIX), "isReservedExpenseLabel");
22306
22274
  var SaveMonthlyExpenseSchema = z97.object({
22307
- operationId: z97.string().uuid().optional(),
22275
+ operationId: z97.string().guid().optional(),
22308
22276
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
22309
22277
  label: z97.string().trim().min(1).max(80).refine((label) => !isReservedExpenseLabel(label), {
22310
22278
  message: "reserved_expense_label"
@@ -22312,7 +22280,7 @@ var SaveMonthlyExpenseSchema = z97.object({
22312
22280
  /** Unidades mayores de la moneda; conserva decimales donde aplique. */
22313
22281
  amount: z97.number().finite().min(0),
22314
22282
  allocations: z97.array(z97.object({
22315
- operationId: z97.string().uuid(),
22283
+ operationId: z97.string().guid(),
22316
22284
  sharePct: z97.number().int().min(1).max(100)
22317
22285
  })).min(1).refine((allocations) => allocations.reduce((sum, one) => sum + one.sharePct, 0) <= 100, {
22318
22286
  message: "allocations_must_sum_to_100"
@@ -22321,7 +22289,7 @@ var SaveMonthlyExpenseSchema = z97.object({
22321
22289
  }).optional()
22322
22290
  }).strict();
22323
22291
  var DeleteMonthlyExpenseSchema = z97.object({
22324
- operationId: z97.string().uuid().optional(),
22292
+ operationId: z97.string().guid().optional(),
22325
22293
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/),
22326
22294
  label: z97.string().trim().min(1).max(80).refine((label) => !isReservedExpenseLabel(label), {
22327
22295
  message: "reserved_expense_label"
@@ -22329,11 +22297,11 @@ var DeleteMonthlyExpenseSchema = z97.object({
22329
22297
  }).strict();
22330
22298
  var SetAdSpendSchema = z97.object({
22331
22299
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
22332
- operationId: z97.string().uuid().optional(),
22300
+ operationId: z97.string().guid().optional(),
22333
22301
  amount: z97.number().finite().min(0).nullable()
22334
22302
  }).strict();
22335
22303
  var MonthlyExpensesQuerySchema = z97.object({
22336
- operationId: z97.string().uuid().optional(),
22304
+ operationId: z97.string().guid().optional(),
22337
22305
  month: z97.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional()
22338
22306
  }).strict();
22339
22307
 
@@ -22362,13 +22330,13 @@ var ResolveUnmatchedProductSchema = z98.object({
22362
22330
  provider: z98.enum(PRODUCT_ALIAS_PROVIDERS),
22363
22331
  externalId: z98.string().trim().min(1).max(64),
22364
22332
  label: z98.string().trim().min(1).max(PRODUCT_ALIAS_LABEL_MAX_LENGTH),
22365
- operationId: z98.string().uuid(),
22333
+ operationId: z98.string().guid(),
22366
22334
  /** Presente ⇒ es el producto al que pertenece. Ausente ⇒ es uno nuevo. */
22367
- productControlId: z98.string().uuid().optional()
22335
+ productControlId: z98.string().guid().optional()
22368
22336
  }).strict();
22369
22337
  var MergeProductsSchema = z98.object({
22370
- sourceId: z98.string().uuid(),
22371
- targetId: z98.string().uuid()
22338
+ sourceId: z98.string().guid(),
22339
+ targetId: z98.string().guid()
22372
22340
  }).strict().refine((value) => value.sourceId !== value.targetId, {
22373
22341
  message: "merge_same_product",
22374
22342
  path: [
@@ -22376,8 +22344,8 @@ var MergeProductsSchema = z98.object({
22376
22344
  ]
22377
22345
  });
22378
22346
  var CreateProductControlFromTaskSchema = z98.object({
22379
- taskId: z98.string().uuid(),
22380
- operationId: z98.string().uuid().optional()
22347
+ taskId: z98.string().guid(),
22348
+ operationId: z98.string().guid().optional()
22381
22349
  }).strict();
22382
22350
 
22383
22351
  // ../../packages/types/src/product-order-line.ts
@@ -22425,7 +22393,7 @@ var ProductOrderLineSchema = z99.object({
22425
22393
  }).strict();
22426
22394
  var ORDER_LINES_BATCH_MAX = 5e3;
22427
22395
  var ImportOrderLinesSchema = z99.object({
22428
- operationId: z99.string().uuid(),
22396
+ operationId: z99.string().guid(),
22429
22397
  provider: z99.string().min(1).max(32),
22430
22398
  source: z99.string().min(1).max(32),
22431
22399
  reportedAt: z99.string().datetime(),
@@ -22451,7 +22419,7 @@ var ImportOrderLinesFileSchema = z99.object({
22451
22419
  /** El archivo en base64. `.xlsx` del proveedor. */
22452
22420
  fileBase64: z99.string().min(1).max(Math.ceil(8 * 1024 * 1024 / 3) * 4),
22453
22421
  filename: z99.string().min(1).max(200),
22454
- operationId: z99.string().uuid().optional(),
22422
+ operationId: z99.string().guid().optional(),
22455
22423
  provider: z99.string().min(1).max(32).default("dropi"),
22456
22424
  /**
22457
22425
  * Solo mirar: devuelve el resumen y NO escribe nada.
@@ -22485,7 +22453,7 @@ var OrderLinesFileSummarySchema = z99.object({
22485
22453
  });
22486
22454
  var SyncShopifyOrdersSchema = z99.object({
22487
22455
  shopDomain: z99.string().min(3).max(120).optional(),
22488
- operationId: z99.string().uuid().optional(),
22456
+ operationId: z99.string().guid().optional(),
22489
22457
  /** YYYY-MM-DD. Sin rango, el mes en curso. */
22490
22458
  since: z99.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
22491
22459
  until: z99.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
@@ -22686,7 +22654,7 @@ var SaveProductControlCostingSchema = z100.object({
22686
22654
  /** El de Shopify, cuando el producto vive en la tienda. */
22687
22655
  shopifyProductId: z100.string().min(1).optional(),
22688
22656
  /** El NUESTRO, para el producto que nació del archivo del proveedor. */
22689
- productControlId: z100.string().uuid().optional(),
22657
+ productControlId: z100.string().guid().optional(),
22690
22658
  /** Su precio de venta, solo si el producto no vive en Shopify. */
22691
22659
  manualSellingPrice: z100.number().positive().nullable().optional(),
22692
22660
  targetCountry: z100.string().min(2).max(2),
@@ -22726,7 +22694,7 @@ var SaveProductControlCostingSchema = z100.object({
22726
22694
  });
22727
22695
  var SaveProductCatalogSchema = z100.object({
22728
22696
  shopDomain: z100.string().min(1).optional(),
22729
- productControlId: z100.string().uuid(),
22697
+ productControlId: z100.string().guid(),
22730
22698
  /** Nulo BORRA la meta. Cero sería una meta de no ganar nada. */
22731
22699
  targetMonthlyProfit: z100.number().finite().positive().nullable().optional(),
22732
22700
  lifecycleStatus: z100.enum([
@@ -22749,7 +22717,7 @@ var ProductControlCampaignFieldsSchema = z100.object({
22749
22717
  }).strict();
22750
22718
  var LinkProductControlCampaignSchema = z100.union([
22751
22719
  ProductControlCampaignFieldsSchema.extend({
22752
- productControlId: z100.string().uuid()
22720
+ productControlId: z100.string().guid()
22753
22721
  }).strict(),
22754
22722
  ProductControlCampaignFieldsSchema.extend({
22755
22723
  shopDomain: z100.string().min(1),
@@ -22896,7 +22864,7 @@ var ImportFulfillmentCountsResponseSchema = z100.object({
22896
22864
  });
22897
22865
  var CreateManualProductControlSchema = z100.object({
22898
22866
  /** UUID que el diálogo fija por apertura; es además el id del producto. */
22899
- requestId: z100.string().uuid(),
22867
+ requestId: z100.string().guid(),
22900
22868
  title: z100.string().trim().min(1).max(200),
22901
22869
  /** País donde vende este producto; la moneda sale de él en el servidor. */
22902
22870
  targetCountry: z100.string().regex(/^[A-Z]{2}$/).refine((code) => {
@@ -22908,7 +22876,7 @@ var CreateManualProductControlSchema = z100.object({
22908
22876
  }
22909
22877
  }, "unsupported_finance_country"),
22910
22878
  /** Solo cuando coincide con el país elegido; si no, se omite. */
22911
- operationId: z100.string().uuid().optional(),
22879
+ operationId: z100.string().guid().optional(),
22912
22880
  manualSellingPrice: z100.number().finite().positive().max(Number.MAX_SAFE_INTEGER),
22913
22881
  supplierCost: z100.number().finite().positive().max(Number.MAX_SAFE_INTEGER),
22914
22882
  shippingCost: z100.number().finite().nonnegative().max(Number.MAX_SAFE_INTEGER),
@@ -22926,7 +22894,7 @@ var CreateManualProductControlSchema = z100.object({
22926
22894
  }
22927
22895
  });
22928
22896
  var CreateManualProductControlResponseSchema = z100.object({
22929
- productControlId: z100.string().uuid(),
22897
+ productControlId: z100.string().guid(),
22930
22898
  created: z100.boolean()
22931
22899
  });
22932
22900
 
@@ -23017,7 +22985,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23017
22985
  "approve_video_script",
23018
22986
  // 2026-10-14: optional exact plan binding shared by legacy/unified review.
23019
22987
  // Hash captured from the real registered schema in apps/mcp/src/server.test.ts.
23020
- "242c9ce8db5e19c065d67d2e3f3cf9fca20e119b9485bcf854a2233832523b0b",
22988
+ "5f7722993798d952d4a920a9bc7929a8c6a54f8ca13bff1b824d555dd680a6d2",
23021
22989
  "credit_consuming",
23022
22990
  "creative",
23023
22991
  [
@@ -23059,7 +23027,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23059
23027
  ], [
23060
23028
  "staging_asset"
23061
23029
  ], WHATSAPP_ONLY_CHANNEL_EXPOSURE),
23062
- defineCapability("check_media_upload", "daf202e0ff3a7a14425d164a7be6a81922b12233e85dbb898894e7c3ba6c5876", "none", "read_only", [
23030
+ defineCapability("check_media_upload", "58acbc7574d140389efbddfd45e660a353429681891b3d85a08b74351bb5acab", "none", "read_only", [
23063
23031
  "read"
23064
23032
  ], [
23065
23033
  slot("upload_session", true, [
@@ -23070,7 +23038,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23070
23038
  ], [
23071
23039
  "uploaded_asset"
23072
23040
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23073
- defineCapability("cost_dropshipping_project", "411c0e362f132e564d5f948f8d87e3ae55f03dad7d02d8224b949b899a187359", "state_change", "business", [
23041
+ defineCapability("cost_dropshipping_project", "fead3bca76b7531c52020cd64135072593783fe12c0c605865a08f1d7d028001", "state_change", "business", [
23074
23042
  "state_change"
23075
23043
  ], [
23076
23044
  slot("project_revision", true, [
@@ -23107,7 +23075,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23107
23075
  ], [
23108
23076
  "project_costing"
23109
23077
  ]),
23110
- defineCapability("cost_product", "6d1f85a999dbdabae4eda406ff4689cdff2016df375b5b6741b91f4308d819af", "none", "read_only", [
23078
+ defineCapability("cost_product", "2272a6a3375401ced9deba82e41796b037aef20d712bc7996221e7fee0d7a4d7", "none", "read_only", [
23111
23079
  "read"
23112
23080
  ], [
23113
23081
  slot("product_reference", false, [], [
@@ -23151,7 +23119,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23151
23119
  // MCP 8.6.0: + storyteller narrative family and animationStyle axis.
23152
23120
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
23153
23121
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
23154
- "3e02399a7785df328f1c4d63cfbb6d7481abaac9f91d4a5cf51d410e657d63aa",
23122
+ "5991b2e897aad7b10c4e38a93e8c58234741498393439cf0228ed9ffd966efef",
23155
23123
  "credit_consuming",
23156
23124
  "creative",
23157
23125
  [
@@ -23209,7 +23177,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23209
23177
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
23210
23178
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
23211
23179
  // MCP 12.4.0: landingStrategy narrowed to classic + social_proof.
23212
- "c35f8c65762db3ea077b09f5f165e5571abea0f40250e4c096d1ef7cad7e5f7a",
23180
+ "5a6dd48977702dbb92a315fb668054f13918fd1cfae5056de82e94144e6f5804",
23213
23181
  "credit_consuming",
23214
23182
  "creative",
23215
23183
  [
@@ -23369,7 +23337,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23369
23337
  // SHARED_CHANNEL_EXPOSURE to restore it.
23370
23338
  WHATSAPP_ONLY_CHANNEL_EXPOSURE
23371
23339
  ),
23372
- defineCapability("edit_image_creative", "50eca473829328dfb63b9cbae03a9835b79c510e29528563e09b7eb3e5e9bca4", "credit_consuming", "creative", [
23340
+ defineCapability("edit_image_creative", "eb487773c4a9ffd5d4472c5a1d77e0fef7b625dbf9ca15b5da700a903ba30945", "credit_consuming", "creative", [
23373
23341
  "credit_consuming",
23374
23342
  "state_change"
23375
23343
  ], [
@@ -23388,7 +23356,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23388
23356
  ], [
23389
23357
  "creative"
23390
23358
  ]),
23391
- defineCapability("get_image_edit_status", "fe59aefd433afe7e5a2d8b4a81084583750c1447c877b6bce698340326665141", "none", "read_only", [
23359
+ defineCapability("get_image_edit_status", "3feb680140ab8459c10c22fb3aba3a7d41e147fddfcdd7e4cdac050c0f7ea34e", "none", "read_only", [
23392
23360
  "read"
23393
23361
  ], [
23394
23362
  slot("creative_operation", true, [
@@ -23400,7 +23368,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23400
23368
  ], [
23401
23369
  "creative_edit_status"
23402
23370
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23403
- defineCapability("edit_task_draft", "1c9343bdce51aac36ec6254557c8a904037746523168527f012b4c5b6361e98e", "state_change", "creative", [
23371
+ defineCapability("edit_task_draft", "6df71b63f0c00ba9eac12f31fb0b71610225ece74df85032025bb77197bb7c22", "state_change", "creative", [
23404
23372
  "state_change"
23405
23373
  ], [
23406
23374
  slot("task_angle", true, [
@@ -23415,7 +23383,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23415
23383
  ], [
23416
23384
  "task_draft"
23417
23385
  ]),
23418
- defineCapability("estimate_creative_variant", "d4453364c0706bf88f480cebc977916f06d222d7eebebc9cfa91165929a1a998", "none", "read_only", [
23386
+ defineCapability("estimate_creative_variant", "468079ba24e5e0d3c5c707cd54fec64571be429e66cadc12019af4d6e9d10c4e", "none", "read_only", [
23419
23387
  "read"
23420
23388
  ], [
23421
23389
  slot("source_task", true, [
@@ -23437,7 +23405,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23437
23405
  ], [
23438
23406
  "cost_estimate"
23439
23407
  ]),
23440
- defineCapability("estimate_market_study_cost", "d89b2ddfd5020446d7d2b58001b75eedb8f737bc17d908bdbdde1a1c9120f387", "none", "read_only", [
23408
+ defineCapability("estimate_market_study_cost", "d1fbe8ead642d481258c419a1eed059f9c8188d1cd9f2d4eed12e202fc8800a4", "none", "read_only", [
23441
23409
  "read"
23442
23410
  ], [
23443
23411
  slot("creative_kind", true, [
@@ -23462,7 +23430,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23462
23430
  ], [
23463
23431
  "cost_estimate"
23464
23432
  ], MCP_ONLY_CHANNEL_EXPOSURE),
23465
- defineCapability("find_winning_products", "7c4c4fd675f8c1ae9795bd6c7a379207a08cbf9ac5794593b76122294c31e818", "credit_consuming", "business", [
23433
+ defineCapability("find_winning_products", "b73a18bb9618b96067b17791bf2f8e7450e17e34881c4f997e117be89abe058d", "credit_consuming", "business", [
23466
23434
  "credit_consuming",
23467
23435
  "state_change"
23468
23436
  ], [
@@ -23490,7 +23458,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23490
23458
  // from `pnpm --filter @productmaker/mcp test` printing the real digest.
23491
23459
  // Re-baselined 2026-09-26: `idempotencyKey` field description corrected —
23492
23460
  // paid tools ignore caller-provided keys and derive their own semantic key.
23493
- "0e21a9ae925347de20cad321161cb3af0f6a4f9e342c5c7139baf8de70056734",
23461
+ "e9ae8370da117bae121714da12b78f234e07a0805093bce354d7fb9fcec2291e",
23494
23462
  "credit_consuming",
23495
23463
  "creative",
23496
23464
  [
@@ -23549,7 +23517,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23549
23517
  "video"
23550
23518
  ]
23551
23519
  ),
23552
- defineCapability("generate_image_creatives", "2f1698b623d98645b7c618a17988f3aac30f403a9c3f3dc26eb5bdbd9c6ef23e", "credit_consuming", "creative", [
23520
+ defineCapability("generate_image_creatives", "f0d1f771d83c50070ebdef6554072e984997336cb9b7f7f06acd818b021a0187", "credit_consuming", "creative", [
23553
23521
  "credit_consuming",
23554
23522
  "state_change"
23555
23523
  ], [
@@ -23655,7 +23623,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23655
23623
  defineCapability(
23656
23624
  "generate_landing",
23657
23625
  // MCP 12.4.0: guided landingStrategy narrowed to classic + social_proof.
23658
- "d3ef2376273a5a1b987c79182e63ff00a03de322e1a13e0dc69f7ffa8330536e",
23626
+ "6db8df9db5410d0abe0f44da7027af4cc40aff37ef6e66e82164edbd889eeb63",
23659
23627
  "credit_consuming",
23660
23628
  "creative",
23661
23629
  [
@@ -23768,7 +23736,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23768
23736
  // MCP 8.6.0: + storyteller narrative family and animationStyle axis.
23769
23737
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
23770
23738
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
23771
- "f6cb1097e049216da08e1fb130e53e53761c13198cbb76d56e78fbf2e35441c1",
23739
+ "66dee35d59da0e88e72e24c503f3f1dc46c17c1162d98d48705e2bfe552f3f02",
23772
23740
  "credit_consuming",
23773
23741
  "creative",
23774
23742
  [
@@ -23889,7 +23857,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23889
23857
  }
23890
23858
  ]
23891
23859
  ),
23892
- defineCapability("get_meta_campaign_status", "92077241cf4e9d14edefca410e85715cc383b1433081c3461c925f8fc3d6e8ab", "none", "read_only", [
23860
+ defineCapability("get_meta_campaign_status", "a89fa144b69309bffd3d402c63ab6697757c447022d4af2a20d321f084efb274", "none", "read_only", [
23893
23861
  "read"
23894
23862
  ], [
23895
23863
  slot("campaign", true, [
@@ -23900,7 +23868,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23900
23868
  ], [
23901
23869
  "campaign_status"
23902
23870
  ]),
23903
- defineCapability("get_product_research_run", "3d0bfa4409daa4a8126d18787c3dc619dbdf2fbb679a2cffe9ffcd1c0d96402f", "none", "read_only", [
23871
+ defineCapability("get_product_research_run", "fd6d6260b4c9cf9cac5c0d210ceec54f99825d6214f7e3625622e82305e69550", "none", "read_only", [
23904
23872
  "read"
23905
23873
  ], [
23906
23874
  slot("research_run", true, [
@@ -23911,7 +23879,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23911
23879
  ], [
23912
23880
  "product_research_run"
23913
23881
  ]),
23914
- defineCapability("get_task_status", "6876d865685dd371ae6c2da2d5a69b657731e5a032aff46ac95b6077e9a6d93e", "none", "read_only", [
23882
+ defineCapability("get_task_status", "308241071b3ec785b1f0eba0fc17383e9fe8f2452c6a5a5ef27fd792a99b9d4c", "none", "read_only", [
23915
23883
  "read"
23916
23884
  ], [
23917
23885
  slot("task", true, [
@@ -23925,7 +23893,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23925
23893
  ], [
23926
23894
  "task_status"
23927
23895
  ]),
23928
- defineCapability("get_tiktok_campaign_status", "7a2f90a9a9ba91506fbb57a0a881d5a7b9ca1bb1074b0a754520f02fd81b2801", "none", "read_only", [
23896
+ defineCapability("get_tiktok_campaign_status", "e19b1536d8e317185fb9662a244cc1e94986004b5a4bf84beaf473b5de28562f", "none", "read_only", [
23929
23897
  "read"
23930
23898
  ], [
23931
23899
  slot("campaign", true, [
@@ -23939,7 +23907,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23939
23907
  ], [
23940
23908
  "campaign_status"
23941
23909
  ]),
23942
- defineCapability("get_video_script", "e987ff48555dfdab439f9910fb1fa25af373c78c8a9a5ef26458c82add90f2a2", "none", "read_only", [
23910
+ defineCapability("get_video_script", "1de9980596c34b71ce8843c090549cf310ed52933f53c2b9c3fca13204441d64", "none", "read_only", [
23943
23911
  "read"
23944
23912
  ], [
23945
23913
  slot("task", true, [
@@ -23953,7 +23921,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23953
23921
  ], [
23954
23922
  "video_script"
23955
23923
  ]),
23956
- defineCapability("guide_dropshipping_launch", "0e7a1cb5ad5c6681473df5689336edcd7a63b8d68853359982e44bfd98a65db8", "none", "business", [
23924
+ defineCapability("guide_dropshipping_launch", "1ab3654ed7ef02fbc7b690826a475f27839a3402ca301b8cf26992c11e8f7cf8", "none", "business", [
23957
23925
  "read"
23958
23926
  ], [
23959
23927
  slot("project", false, [
@@ -23975,7 +23943,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23975
23943
  "get_actor_voice_capabilities",
23976
23944
  // Filled by the MCP schema fingerprint test (sha256 of the canonicalized
23977
23945
  // inputSchema) — run apps/mcp server.test.ts to compute.
23978
- "4c31630c2796cbcf250b58f2205c7f5882ac53ad0c9ac7fe929f1b6de78952a5",
23946
+ "862c210dd3c6bf0584ac61deb84617ecb41bf0219098995a1c5b84133af33239",
23979
23947
  "none",
23980
23948
  "read_only",
23981
23949
  [
@@ -23994,7 +23962,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23994
23962
  ],
23995
23963
  MCP_ONLY_CHANNEL_EXPOSURE
23996
23964
  ),
23997
- defineCapability("quote_actor_voice", "5b1deafe387305bc268cd8d58761860b4c02bf10f0c5cd455925f96b40e7b24d", "none", "read_only", [
23965
+ defineCapability("quote_actor_voice", "4d2e9a643abf4cfe5e02789fed36cdfebc9ede6ab4557d0e5be1e4edb46fb836", "none", "read_only", [
23998
23966
  "read"
23999
23967
  ], [
24000
23968
  slot("actor", true, [
@@ -24008,7 +23976,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24008
23976
  ], [
24009
23977
  "actor_voice_quote"
24010
23978
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24011
- defineCapability("generate_actor_voice_preview", "e0c856beacda2344fb0830b5822848c01e82f1b6a7749176e8973c07d5a7c769", "credit_consuming", "creative", [
23979
+ defineCapability("generate_actor_voice_preview", "cb5a0033621df9bc88f4dcea658885eb35a4ebdc6ef88865c3d8afbe3b229548", "credit_consuming", "creative", [
24012
23980
  "credit_consuming",
24013
23981
  "state_change"
24014
23982
  ], [
@@ -24032,7 +24000,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24032
24000
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24033
24001
  defineCapability(
24034
24002
  "get_actor_voice_preview",
24035
- "58cc8667847be5e521534d6a19853782b9d4c65539ede8eaa5dbe7815e10ae3f",
24003
+ "b28f1c7d7e7981ed672509398242b7b7256e2ab44185699e6a0ecd8f39882761",
24036
24004
  "none",
24037
24005
  "creative",
24038
24006
  // Recovery uses the original accepted quote; it must not ask to pay again.
@@ -24057,7 +24025,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24057
24025
  ],
24058
24026
  MCP_ONLY_CHANNEL_EXPOSURE
24059
24027
  ),
24060
- defineCapability("approve_actor_voice", "ae77a93a483b24e9ec79322ac5a7ed39372517c196488b04b3cdfd2ef5205784", "state_change", "creative", [
24028
+ defineCapability("approve_actor_voice", "5b1c61b992dce69b35f9fb1a388bbd73d41c99575fa86b72121b043045254944", "state_change", "creative", [
24061
24029
  "state_change"
24062
24030
  ], [
24063
24031
  slot("actor", true, [
@@ -24091,7 +24059,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24091
24059
  ], [
24092
24060
  "meta_destination"
24093
24061
  ]),
24094
- defineCapability("list_product_research_runs", "3b8fac903cd9e30c5b6a6c584cc70a819af5392bbdbb32b69eab4c65dc52b556", "none", "read_only", [
24062
+ defineCapability("list_product_research_runs", "ee2d750bfd65a34a9c16bb39dac584fe0784956eaf7b0428a88b1e886846f2af", "none", "read_only", [
24095
24063
  "read"
24096
24064
  ], [
24097
24065
  slot("pagination", false, [
@@ -24102,7 +24070,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24102
24070
  ], [
24103
24071
  "product_research_run"
24104
24072
  ]),
24105
- defineCapability("list_shopify_products", "152b137e01066f3b443987ad75f5be00de8696ce984144bd775416192be20667", "none", "read_only", [
24073
+ defineCapability("list_shopify_products", "c3daf527e345f737c8b23eb347b77fbf2290433257753122a8d55fdc65d58e78", "none", "read_only", [
24106
24074
  "read"
24107
24075
  ], [
24108
24076
  slot("shop", true, [
@@ -24126,7 +24094,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24126
24094
  ], [
24127
24095
  "shop"
24128
24096
  ]),
24129
- defineCapability("list_tasks", "cac5e9dda34b90550024cc546976fab1d6de4fc8fca85a3ec6abde65223cb56c", "none", "read_only", [
24097
+ defineCapability("list_tasks", "4a553c287e590c2dcb905c63eb92c8612093a82476093b9f55c0821cad486598", "none", "read_only", [
24130
24098
  "read"
24131
24099
  ], [
24132
24100
  slot("pagination", false, [
@@ -24148,7 +24116,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24148
24116
  ], [
24149
24117
  "tiktok_advertiser"
24150
24118
  ]),
24151
- defineCapability("publish_creatives_to_meta", "dff962c84ed7d0393444dcbe86cb6f4016b5928c1d0005f78ce9a365f1923ac3", "external_mutation", "publishing", [
24119
+ defineCapability("publish_creatives_to_meta", "d9b8961cb26c2357f45b0ed95eae479affc840742b5b09620a67ce325568cbee", "external_mutation", "publishing", [
24152
24120
  "external_mutation",
24153
24121
  "state_change"
24154
24122
  ], [
@@ -24183,7 +24151,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24183
24151
  ], [
24184
24152
  "meta_campaign"
24185
24153
  ]),
24186
- defineCapability("publish_to_meta", "2d2946fbb796cc8198acfed5e15935c690516259a9bfa9e9a75d1fb33548eef2", "external_mutation", "publishing", [
24154
+ defineCapability("publish_to_meta", "663d574b4aa005a5df41f6b8ff458e3f983f874fe6caef94ab0ae8a1477f70bb", "external_mutation", "publishing", [
24187
24155
  "external_mutation",
24188
24156
  "state_change"
24189
24157
  ], [
@@ -24221,7 +24189,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24221
24189
  ], [
24222
24190
  "meta_publication"
24223
24191
  ]),
24224
- defineCapability("publish_to_shopify", "e041e404ad9f6cf49231c9bc38df22e6bd0aa6e4082b4ab8dc655a132b79873f", "external_mutation", "publishing", [
24192
+ defineCapability("publish_to_shopify", "00c4c7af09bb45a72896118ca154a2dc9518f05d74bb9386c825be541fa10fdb", "external_mutation", "publishing", [
24225
24193
  "external_mutation",
24226
24194
  "state_change"
24227
24195
  ], [
@@ -24264,7 +24232,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24264
24232
  // capability set unchanged, so the live agent's parity gate (which forces
24265
24233
  // shadow mode on any canonical gap) is not tripped. Gated server-side by
24266
24234
  // SERVICE_MOTION_GRAPHICS_ENABLED + the `service-motion-graphics` feature.
24267
- defineCapability("create_animated_video", "1d375b3ad4f60d9337009cb86209d66f05da127fdf2748c1cf9d36503e4dce5c", "credit_consuming", "creative", [
24235
+ defineCapability("create_animated_video", "2177ed726e767978eb61fa007f621b389f3b1eb3a2da967fdb44c279bf20fecd", "credit_consuming", "creative", [
24268
24236
  "credit_consuming",
24269
24237
  "state_change"
24270
24238
  ], [
@@ -24315,7 +24283,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24315
24283
  // MCP-only service journey (2026-10-11): brand analysis → service landing →
24316
24284
  // create_animated_video. WhatsApp has no adapter for either, so both are
24317
24285
  // declared unavailable there and its parity gate is unchanged.
24318
- defineCapability("create_brand", "7f5680574f38f1005d162c2a2a3805be82896508793ebcdd5491b8459c803158", "credit_consuming", "creative", [
24286
+ defineCapability("create_brand", "0dba1e46eaaf3ae6ffda459de7eebbdfb2f04da1180b21f84ae4caae434dbbcf", "credit_consuming", "creative", [
24319
24287
  "credit_consuming",
24320
24288
  "state_change"
24321
24289
  ], [
@@ -24338,7 +24306,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24338
24306
  ], [
24339
24307
  "brand"
24340
24308
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24341
- defineCapability("create_service_landing", "ce99d75f4b00bea23b6bf4f56ef3331b266176cb0a9dead55611ee78d21c41b3", "credit_consuming", "creative", [
24309
+ defineCapability("create_service_landing", "9e0f68278d2daa3bcf0326dd8e796d4dc82423f850c765efd48881c99f04a14f", "credit_consuming", "creative", [
24342
24310
  "credit_consuming",
24343
24311
  "state_change"
24344
24312
  ], [
@@ -24363,7 +24331,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24363
24331
  ], [
24364
24332
  "service_landing"
24365
24333
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24366
- defineCapability("create_service_images", "ce729a35f8781dd301514075e2e4408b6660db7523e3705ff2c8cbde571cddf6", "credit_consuming", "creative", [
24334
+ defineCapability("create_service_images", "937e86a1b0e3e0678a029062cddb0a9b632c8bcbb9864225f66488e3e2abdbed", "credit_consuming", "creative", [
24367
24335
  "credit_consuming",
24368
24336
  "state_change"
24369
24337
  ], [
@@ -24400,7 +24368,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24400
24368
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24401
24369
  // MCP-only recovery of an existing code edit. WhatsApp has no code-landing
24402
24370
  // editor or edit receipt input; it hands this recovery to ProductMaker Web.
24403
- defineCapability("verify_landing_commerce", "4b98ea73f291428fa19ec91ec37deb44a776b76cb19b0d47aef20ee905da7d10", "external_mutation", "publishing", [
24371
+ defineCapability("verify_landing_commerce", "f6dcbfbf8e90c39246f0b377745cd2c6c0f76f314c9736a257087c6d00a90f29", "external_mutation", "publishing", [
24404
24372
  "read",
24405
24373
  "state_change",
24406
24374
  "external_mutation"
@@ -24419,7 +24387,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24419
24387
  defineCapability(
24420
24388
  "publish_to_tiktok",
24421
24389
  // MCP 11.7.0: native WhatsApp destination and major-currency budget inputs.
24422
- "50b932193b62929498ae342417427ef84b1982eb7620c6baffb62c8fb986e66e",
24390
+ "ce6e6572583a615203835f6e191a50883ba00f95b8813b3c2bc3d5d92746b24f",
24423
24391
  "external_mutation",
24424
24392
  "publishing",
24425
24393
  [
@@ -24457,7 +24425,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24457
24425
  "tiktok_publication"
24458
24426
  ]
24459
24427
  ),
24460
- defineCapability("prepare_winning_product_image", "6915790d22256a648374412ac4d11126fe3fabc9404f4552205057f9da3ce0db", "none", "business", [
24428
+ defineCapability("prepare_winning_product_image", "51c4795176c13b67901e2aad161124598675c7e5ae476b35a63be5b06906ccca", "none", "business", [
24461
24429
  "state_change"
24462
24430
  ], [
24463
24431
  slot("winner_reference", true, [
@@ -24469,7 +24437,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24469
24437
  ], [
24470
24438
  "product_media"
24471
24439
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24472
- defineCapability("regenerate_video_script", "eb9546e5cda3864de78ff119ae81dd17c893ea9ea5be1bf0fbfeb8b45302e639", "credit_consuming", "creative", [
24440
+ defineCapability("regenerate_video_script", "e68fa5f4f6adb37c4275c60dcb6983d14655a030450c0ed75012044cff0aa29c", "credit_consuming", "creative", [
24473
24441
  "credit_consuming",
24474
24442
  "state_change"
24475
24443
  ], [
@@ -24509,7 +24477,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24509
24477
  ], [
24510
24478
  "meta_upload_session"
24511
24479
  ], WHATSAPP_ONLY_CHANNEL_EXPOSURE),
24512
- defineCapability("request_media_upload", "9a50a4647c61f97fb12bbb9b25f7660f392e3cd9825151735cd66292058882ea", "none", "creative", [
24480
+ defineCapability("request_media_upload", "ab70248efd499351ff119e5563e31185040b57e42ccc0e09efe6b6fbeea794a5", "none", "creative", [
24513
24481
  "state_change"
24514
24482
  ], [
24515
24483
  slot("media_kind", true, [
@@ -24532,7 +24500,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24532
24500
  ], [
24533
24501
  "media_upload_session"
24534
24502
  ], MCP_ONLY_CHANNEL_EXPOSURE),
24535
- defineCapability("resolve_pending_action", "9377ff126ec842cfb8278877846c5f8f6f1b9ba0c263e7200f080db9bbe9ae12", "credit_consuming", "creative", [
24503
+ defineCapability("resolve_pending_action", "a7fef1e3299c2bfb387a16b3e1e243fba8df1db961ebc1f27d2119209124c293", "credit_consuming", "creative", [
24536
24504
  "credit_consuming",
24537
24505
  "state_change"
24538
24506
  ], [
@@ -24568,7 +24536,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24568
24536
  ], [
24569
24537
  "task"
24570
24538
  ]),
24571
- defineCapability("start_dropshipping_project", "2b621702e8da8bb894d392060e5e4f677a8dc26f454e991dbb929053715a4f8b", "state_change", "business", [
24539
+ defineCapability("start_dropshipping_project", "996385df905ed85a933c5726fbebf5a29a98f29364badd8256ff306aff38797c", "state_change", "business", [
24572
24540
  "state_change"
24573
24541
  ], [
24574
24542
  slot("origin", true, [
@@ -24589,7 +24557,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24589
24557
  ], [
24590
24558
  "dropshipping_project"
24591
24559
  ]),
24592
- defineCapability("get_daily_control", "d2ee70df5be00618ad23ef558f91e0066e03a69547a4f2d9310bf9ae51ae9a03", "none", "read_only", [
24560
+ defineCapability("get_daily_control", "f68e63aeda284d8f07040f6ec55c84ba5e55a515667a20bfe3a60268a6827130", "none", "read_only", [
24593
24561
  "read"
24594
24562
  ], [
24595
24563
  slot("window_end", false, [
@@ -24607,7 +24575,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24607
24575
  ], [
24608
24576
  "daily_control_report"
24609
24577
  ]),
24610
- defineCapability("link_campaign_to_project", "42785a9781412e0ad7cf7095b7188f315dea4003002777d5a4b1b9cc79ea05e0", "state_change", "business", [
24578
+ defineCapability("link_campaign_to_project", "1a6d51234a38259e9fa00475c76919742818efb32491a75ffa768ff9fede4013", "state_change", "business", [
24611
24579
  "state_change"
24612
24580
  ], [
24613
24581
  slot("project", true, [
@@ -24627,7 +24595,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24627
24595
  ], [
24628
24596
  "campaign_link"
24629
24597
  ]),
24630
- defineCapability("list_importable_products", "8f3e48f6494c85a3fab82163e11536d9d48aa77b058153efaabf4263548a8f02", "none", "read_only", [
24598
+ defineCapability("list_importable_products", "30404855a9d9c61bd437703f0287041ac77bf997fb7c6e5c7dafdf68712020a9", "none", "read_only", [
24631
24599
  "read"
24632
24600
  ], [
24633
24601
  slot("search", false, [
@@ -24644,7 +24612,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24644
24612
  ], [
24645
24613
  "importable_product_page"
24646
24614
  ]),
24647
- defineCapability("import_product_controls", "b9dae191963ae88ad33060db64eedd1cb63856108f18dbec0e8a039b05117d99", "state_change", "business", [
24615
+ defineCapability("import_product_controls", "f0e1de3062389541317f1351977e77fdcb50ee5d0d5251bbc1f1e7e2ab034515", "state_change", "business", [
24648
24616
  "state_change"
24649
24617
  ], [
24650
24618
  slot("products", true, [
@@ -24661,7 +24629,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24661
24629
  ], [
24662
24630
  "product_control"
24663
24631
  ]),
24664
- defineCapability("set_product_costing", "cce7a31e434c7a1f0af2e3ecaf591eb63c6e3570c466c29e2cab00432ab26bc9", "state_change", "business", [
24632
+ defineCapability("set_product_costing", "de1353c7061d00bf793ecc789c0300c6dd54f758dbff86b10915a51592a99df9", "state_change", "business", [
24665
24633
  "state_change"
24666
24634
  ], [
24667
24635
  /* La identidad sin tienda solo existe en el contrato MCP: el
@@ -24699,7 +24667,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24699
24667
  ], [
24700
24668
  "product_control_costing"
24701
24669
  ]),
24702
- defineCapability("get_product_control", "9d448f8cb2d40fa6547f7265bf908925375c33d891993c1f6e8cae5409729f32", "none", "read_only", [
24670
+ defineCapability("get_product_control", "cc67eec02bc5fba649e705078ecebf4703a3e3e25b9d3189921a7e2bae7f6c0c", "none", "read_only", [
24703
24671
  "read"
24704
24672
  ], [
24705
24673
  slot("day", false, [
@@ -24717,7 +24685,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24717
24685
  ], [
24718
24686
  "product_control_report"
24719
24687
  ]),
24720
- defineCapability("report_product_counts", "0d2eb30d9be73cd818a149af365b165ad5739a36ffb591149f9735bfd9636773", "state_change", "business", [
24688
+ defineCapability("report_product_counts", "8fa2561901b7743506a3639038d7806186c0512470bc6988a54c6bee5dbbb0b0", "state_change", "business", [
24721
24689
  "state_change"
24722
24690
  ], [
24723
24691
  slot("product_control", true, [
@@ -24746,7 +24714,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24746
24714
  ], [
24747
24715
  "product_control_daily_counts"
24748
24716
  ]),
24749
- defineCapability("get_finances", "da5fdd11b49980f85dcee63386e5b443786f65581612ce9333770a631e1ccf45", "none", "read_only", [
24717
+ defineCapability("get_finances", "bb57d3594b204597e9abd2d9beb7df644d07f5683a159d4de1860fa9d03aa5b4", "none", "read_only", [
24750
24718
  "read"
24751
24719
  ], [
24752
24720
  slot("month", false, [
@@ -24760,7 +24728,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24760
24728
  ], [
24761
24729
  "monthly_pl"
24762
24730
  ]),
24763
- defineCapability("sync_shopify_orders", "6a43ef95dc4d4943292416d0f3ef71da9ae19a16593bf76a294ef4b3f8f0eaac", "state_change", "business", [
24731
+ defineCapability("sync_shopify_orders", "0f821de23aa171e89e7e03c1910be57d8dbd878491cbad45a43c4540b4872910", "state_change", "business", [
24764
24732
  "state_change"
24765
24733
  ], [
24766
24734
  slot("shop", false, [
@@ -24780,7 +24748,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24780
24748
  ], [
24781
24749
  "product_order_line"
24782
24750
  ]),
24783
- defineCapability("import_orders_file", "d4691f530dee83c40613d70b2830dc91fb21f5822449601caeaaab409622911c", "state_change", "business", [
24751
+ defineCapability("import_orders_file", "449352851f20e229d488fd10dcfde682774d5c6ef0c66294bedfd6da8d1d93e9", "state_change", "business", [
24784
24752
  "state_change"
24785
24753
  ], [
24786
24754
  slot("orders_file", true, [
@@ -24802,7 +24770,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24802
24770
  ], [
24803
24771
  "product_order_line"
24804
24772
  ]),
24805
- defineCapability("create_operation", "0e610436a98cec2815216d526294da3cfc835830bb960e5dc0381d65b6edf9e5", "state_change", "business", [
24773
+ defineCapability("create_operation", "569501e4e03e6f1782fcf7458e752864804b1ffaa9eb7bd9522e05260939c938", "state_change", "business", [
24806
24774
  "state_change"
24807
24775
  ], [
24808
24776
  slot("country", true, [
@@ -24816,7 +24784,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24816
24784
  ], [
24817
24785
  "finance_operation"
24818
24786
  ]),
24819
- defineCapability("merge_products", "062d0afbedc3309c61cb7eaaf1902a05e2725897f04f5e79ad7e354ac8f05f21", "state_change", "business", [
24787
+ defineCapability("merge_products", "8519963a68603ed7f4a2a82d24e43f317f0a9840e7fd7ba5a90832c4f4a6bcaf", "state_change", "business", [
24820
24788
  "state_change"
24821
24789
  ], [
24822
24790
  slot("source_product", true, [
@@ -24830,7 +24798,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24830
24798
  ], [
24831
24799
  "product_control"
24832
24800
  ]),
24833
- defineCapability("set_monthly_expense", "2ad9958b36fbfc6d665ff1fb33e8fbd446b01d71fc60dcc0b2074fcf8770f2c1", "state_change", "business", [
24801
+ defineCapability("set_monthly_expense", "5ff786a29b44e1961c31fa30decd779d0a18fdf4d7a0bdff7fe130eda59640a4", "state_change", "business", [
24834
24802
  "state_change"
24835
24803
  ], [
24836
24804
  slot("expense_label", true, [
@@ -24850,7 +24818,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24850
24818
  ], [
24851
24819
  "monthly_expense"
24852
24820
  ]),
24853
- defineCapability("set_ad_spend", "edbf19766900aafde76ad5b203fd5c9ecbd3e976705b67ab82867a303a6fa6c9", "state_change", "business", [
24821
+ defineCapability("set_ad_spend", "45f5515a91679304c27f2753ec568bcfe0343644363ec3d185eea3a3f220bbc0", "state_change", "business", [
24854
24822
  "state_change"
24855
24823
  ], [
24856
24824
  slot("amount", true, [
@@ -24871,7 +24839,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24871
24839
  "get_dropi_status",
24872
24840
  // Filled by the MCP schema fingerprint test (sha256 of the canonicalized
24873
24841
  // inputSchema) — run apps/mcp server.test.ts to compute.
24874
- "3465e644ebdcaa404d8bcc1af629012c858bb4aed5bb1b56cfaa2af0d53cfc6e",
24842
+ "dbbf0cae464909761b30d649f08ebf588bc34ab66a0b67abcf9ff3442e1ec457",
24875
24843
  "none",
24876
24844
  "read_only",
24877
24845
  [
@@ -24896,7 +24864,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24896
24864
  defineCapability(
24897
24865
  "sync_dropi_orders",
24898
24866
  // Filled by the MCP schema fingerprint test.
24899
- "46f1172e7afe42991957a2dc262cce235dbf31ededdf37ccf866a583bb19123b",
24867
+ "a2b107f6f36ed6e9ed698e89ff54decf180bfce372adabd3bc0d00739ebd6a02",
24900
24868
  "state_change",
24901
24869
  "business",
24902
24870
  [
@@ -24930,7 +24898,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24930
24898
  defineCapability(
24931
24899
  "create_manual_product",
24932
24900
  // Filled by the MCP schema fingerprint test.
24933
- "4da701236ab1fd460e66f6def729f61a392bad62e8fecdaf8b3b3098fdec53cb",
24901
+ "00b0366e3c23989c10243e8c34ea74d2786c7f521093a006e53cc6e68750e5ad",
24934
24902
  "state_change",
24935
24903
  "business",
24936
24904
  [
@@ -24973,7 +24941,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24973
24941
  defineCapability(
24974
24942
  "list_unmatched_products",
24975
24943
  // Filled by the MCP schema fingerprint test.
24976
- "2c89690b4282a881f29f3bae11268786abf385c2bec0e3d7a1643098f4986e1b",
24944
+ "d72bf2d563daabe2ce719aeee4d3f1899154daba063ebca1ef69499e0ff09034",
24977
24945
  "none",
24978
24946
  "read_only",
24979
24947
  [
@@ -24995,7 +24963,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
24995
24963
  defineCapability(
24996
24964
  "resolve_unmatched_product",
24997
24965
  // Filled by the MCP schema fingerprint test.
24998
- "39ccb99a5d138f7f99e25c00b68eec8972e34dbcbd966d2081cdaa7c76ac63ba",
24966
+ "05fb2d978e2e878cbbfeca78b87b0f7e25decedfcfa8490b7cfc055139953574",
24999
24967
  "state_change",
25000
24968
  "business",
25001
24969
  [
@@ -25047,7 +25015,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
25047
25015
  defineCapability(
25048
25016
  "link_product_campaign",
25049
25017
  // Filled by the MCP schema fingerprint test.
25050
- "a9976318693f137dd37f4608d382fe1deb13b44c2f5257580c8b52b015899dde",
25018
+ "a4ea2424df8482eb5f004676aa6d43a24f8ad8790644a41f521cdeb879a306a9",
25051
25019
  "state_change",
25052
25020
  "business",
25053
25021
  [
@@ -25085,7 +25053,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
25085
25053
  defineCapability(
25086
25054
  "delete_monthly_expense",
25087
25055
  // Filled by the MCP schema fingerprint test.
25088
- "fe9c5d5896165b9c65fbfed779db7918dabf87c69e1601430a1509ad2d452de9",
25056
+ "e762a6d49f2ab0ce1f51315d0d0ec11e1456c8b8b8200c66b899808f89f706d5",
25089
25057
  "state_change",
25090
25058
  "business",
25091
25059
  [
@@ -25113,7 +25081,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
25113
25081
  defineCapability(
25114
25082
  "remove_product_control",
25115
25083
  // Filled by the MCP schema fingerprint test.
25116
- "ff0b7411497a0b28eda7294c35b09c45f8beff842bbc6a9a4cc993ba3d766cae",
25084
+ "e29785ec81add0115499e3ae616f47224c2c01dc61c5d7f65d306bc1ac28929f",
25117
25085
  "state_change",
25118
25086
  "business",
25119
25087
  [
@@ -25132,7 +25100,7 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
25132
25100
  ],
25133
25101
  MCP_ONLY_CHANNEL_EXPOSURE
25134
25102
  ),
25135
- defineCapability("report_daily_returns", "7130d216656cc29a47fc972b4edad5003a6653fca48d95052fbf2b561636e91a", "state_change", "business", [
25103
+ defineCapability("report_daily_returns", "c64af9e1750adf5892caa76c0c170feec91e617ba1769ee5c0af17cbbb4fc6d2", "state_change", "business", [
25136
25104
  "state_change"
25137
25105
  ], [
25138
25106
  slot("project", true, [
@@ -25437,7 +25405,7 @@ var WhatsAppQuoteRecoveryReceiptSchema = z103.discriminatedUnion("state", [
25437
25405
  z103.object({
25438
25406
  ...recoveryBase,
25439
25407
  state: z103.literal("consumed"),
25440
- successorCommandId: z103.string().uuid(),
25408
+ successorCommandId: z103.string().guid(),
25441
25409
  choice: z103.enum([
25442
25410
  "without_winner",
25443
25411
  "retry"
@@ -25447,7 +25415,7 @@ var WhatsAppQuoteRecoveryReceiptSchema = z103.discriminatedUnion("state", [
25447
25415
  ...recoveryBase,
25448
25416
  state: z103.literal("awaiting_media"),
25449
25417
  successorCommandId: z103.null(),
25450
- successorCollectionId: z103.string().uuid(),
25418
+ successorCollectionId: z103.string().guid(),
25451
25419
  choice: z103.enum([
25452
25420
  "without_winner",
25453
25421
  "retry"
@@ -25475,10 +25443,10 @@ var json = z103.lazy(() => z103.union([
25475
25443
  z103.number().finite(),
25476
25444
  z103.string(),
25477
25445
  z103.array(json),
25478
- z103.record(json)
25446
+ z103.record(z103.string(), json)
25479
25447
  ]));
25480
25448
  var commandBase = {
25481
- commandId: z103.string().uuid(),
25449
+ commandId: z103.string().guid(),
25482
25450
  requestHash: z103.string().min(1).max(256),
25483
25451
  expectedUpdatedAt: z103.string().datetime(),
25484
25452
  result: json,
@@ -25486,7 +25454,7 @@ var commandBase = {
25486
25454
  };
25487
25455
  var proposedSnapshot = {
25488
25456
  ...commandBase,
25489
- sourceMessageId: z103.string().uuid(),
25457
+ sourceMessageId: z103.string().guid(),
25490
25458
  expectedStatus: z103.literal("proposed"),
25491
25459
  expectedResult: json
25492
25460
  };
@@ -25547,19 +25515,19 @@ var WhatsAppPresentationFinalizerSchema = z103.object({
25547
25515
  ]).optional(),
25548
25516
  plan: z103.object({
25549
25517
  guardOnly: z103.boolean().optional(),
25550
- planId: z103.string().uuid(),
25518
+ planId: z103.string().guid(),
25551
25519
  expectedPlanRevision: z103.number().int().nonnegative(),
25552
- stepId: z103.string().uuid(),
25520
+ stepId: z103.string().guid(),
25553
25521
  expectedStepRevision: z103.number().int().nonnegative(),
25554
- expectedCommandId: z103.string().uuid().nullable(),
25522
+ expectedCommandId: z103.string().guid().nullable(),
25555
25523
  next: z103.object({
25556
- stepId: z103.string().uuid(),
25524
+ stepId: z103.string().guid(),
25557
25525
  expectedRevision: z103.number().int().nonnegative()
25558
25526
  }).strict().nullable(),
25559
25527
  outputArtifacts: json
25560
25528
  }).strict().optional(),
25561
25529
  collection: z103.object({
25562
- collectionId: z103.string().uuid(),
25530
+ collectionId: z103.string().guid(),
25563
25531
  expectedRevision: z103.number().int().nonnegative(),
25564
25532
  expiresAt: z103.string().datetime()
25565
25533
  }).strict().optional()
@@ -25644,9 +25612,9 @@ var WhatsAppPresentationStepSchema = z104.discriminatedUnion("kind", [
25644
25612
  "research_ready",
25645
25613
  "research_failed"
25646
25614
  ]).optional(),
25647
- commandId: z104.string().uuid().optional(),
25648
- taskId: z104.string().uuid().optional(),
25649
- researchRunId: z104.string().uuid().optional()
25615
+ commandId: z104.string().guid().optional(),
25616
+ taskId: z104.string().guid().optional(),
25617
+ researchRunId: z104.string().guid().optional()
25650
25618
  }).strict().refine((value) => value.resetSourceSequence === void 0 || value.conversationReset === "completed", "Reset source sequence requires a completed reset").optional(),
25651
25619
  intentKey
25652
25620
  }).strict(),
@@ -25678,16 +25646,16 @@ var WhatsAppPresentationStepSchema = z104.discriminatedUnion("kind", [
25678
25646
  "tiktok"
25679
25647
  ])).max(3),
25680
25648
  fullResultUrl: z104.string().url().max(8192),
25681
- commandId: z104.string().uuid(),
25682
- taskId: z104.string().uuid(),
25649
+ commandId: z104.string().guid(),
25650
+ taskId: z104.string().guid(),
25683
25651
  intentKey
25684
25652
  }).strict(),
25685
25653
  z104.object({
25686
25654
  kind: z104.literal("reference_review"),
25687
- commandId: z104.string().uuid(),
25688
- taskId: z104.string().uuid(),
25655
+ commandId: z104.string().guid(),
25656
+ taskId: z104.string().guid(),
25689
25657
  snapshotHash: z104.string().length(64).regex(/^[a-f0-9]+$/),
25690
- pendingAction: z104.record(z104.unknown()),
25658
+ pendingAction: z104.record(z104.string(), z104.unknown()),
25691
25659
  previews: z104.array(preview).max(20),
25692
25660
  expectedPreviewCount: z104.number().int().min(0).max(50),
25693
25661
  intentKey
@@ -26113,7 +26081,7 @@ var ProductTruthBody = z107.object({
26113
26081
  out[key2] = rawIndexes.filter((i) => typeof i === "number" && Number.isInteger(i) && i >= 0 && i < 20);
26114
26082
  }
26115
26083
  return out;
26116
- }, z107.record(z107.array(z107.number().int().min(0).max(19))))
26084
+ }, z107.record(z107.string(), z107.array(z107.number().int().min(0).max(19))))
26117
26085
  })),
26118
26086
  confidence: z107.preprocess((v) => typeof v === "number" && Number.isFinite(v) ? Math.min(1, Math.max(0, v)) : 0, z107.number().min(0).max(1))
26119
26087
  });
@@ -26456,15 +26424,16 @@ var CreativeCompositionExecutorRoleSchema = z109.enum(CREATIVE_COMPOSITION_EXECU
26456
26424
  var CreativeCompositionJobSchema = z109.object({
26457
26425
  kind: z109.literal("creative_composition"),
26458
26426
  protocolVersion: CreativeCompositionProtocolVersionSchema,
26459
- jobId: z109.string().uuid(),
26427
+ jobId: z109.string().guid(),
26460
26428
  owner: CreativeEngineOwnerSchema,
26461
26429
  attempt,
26462
26430
  leaseUntil: z109.string().datetime(),
26463
26431
  deadlineAtMs: z109.number().int().nonnegative(),
26464
26432
  /**
26465
26433
  * Contract digest of the API that wrote the job. The renderer refuses a
26466
- * job whose digest is not its own (`renderer_schema_stale`). Absent only
26467
- * on rows written before digests existed.
26434
+ * job whose digest is neither current nor explicitly verified compatible
26435
+ * (`renderer_schema_stale`). Accepted jobs still meet the current schema.
26436
+ * Absent only on rows written before digests existed.
26468
26437
  */
26469
26438
  contractDigest: hash2.optional(),
26470
26439
  width: z109.number().int().positive().max(4096),
@@ -26542,10 +26511,10 @@ var CreativeCompositionClaimResponseSchema = z109.object({
26542
26511
  job: CreativeCompositionJobSchema.nullable()
26543
26512
  }).strict();
26544
26513
  var CreativeCompositionHeartbeatSchema = MotionGraphicsStageReportSchema.extend({
26545
- jobId: z109.string().uuid()
26514
+ jobId: z109.string().guid()
26546
26515
  });
26547
26516
  var CreativeCompositionUploadRequestSchema = z109.object({
26548
- jobId: z109.string().uuid(),
26517
+ jobId: z109.string().guid(),
26549
26518
  attempt,
26550
26519
  files: z109.array(z109.object({
26551
26520
  kind: z109.enum([
@@ -26569,7 +26538,7 @@ var CreativeCompositionUploadResponseSchema = z109.object({
26569
26538
  }).strict()).min(1).max(3)
26570
26539
  }).strict();
26571
26540
  var CreativeCompositionDoneRequestSchema = z109.object({
26572
- jobId: z109.string().uuid(),
26541
+ jobId: z109.string().guid(),
26573
26542
  attempt,
26574
26543
  width: z109.number().int().positive(),
26575
26544
  height: z109.number().int().positive(),
@@ -26577,14 +26546,14 @@ var CreativeCompositionDoneRequestSchema = z109.object({
26577
26546
  durationSec: z109.number().positive()
26578
26547
  }).strict();
26579
26548
  var CreativeCompositionFailedRequestSchema = z109.object({
26580
- jobId: z109.string().uuid(),
26549
+ jobId: z109.string().guid(),
26581
26550
  attempt,
26582
26551
  reason: z109.string().min(1).max(1e3),
26583
26552
  retryable: z109.literal(false)
26584
26553
  }).strict();
26585
26554
  var CreativeCompositionLocalManifestSchema = z109.object({
26586
26555
  kind: z109.literal("creative_composition"),
26587
- jobId: z109.string().uuid(),
26556
+ jobId: z109.string().guid(),
26588
26557
  owner: CreativeEngineOwnerSchema,
26589
26558
  plan: z109.object({
26590
26559
  revision: z109.number().int().positive(),
@@ -26670,8 +26639,8 @@ var CreativeEngineEditContextSnapshotSchema = z111.object({
26670
26639
  hash: hash3,
26671
26640
  binding: CreativeEngineContextBindingSchema,
26672
26641
  data: z111.object({
26673
- physical: z111.record(z111.unknown()),
26674
- commercial: z111.record(z111.unknown())
26642
+ physical: z111.record(z111.string(), z111.unknown()),
26643
+ commercial: z111.record(z111.string(), z111.unknown())
26675
26644
  }).strict(),
26676
26645
  references: z111.array(z111.object({
26677
26646
  sourceId: id4,
@@ -26741,7 +26710,7 @@ var CreativeEngineEditExecutionSchema = z111.object({
26741
26710
  version: z111.literal(1),
26742
26711
  source: CreativeEngineEditSourceSchema,
26743
26712
  intent: z111.object({
26744
- clientRequestId: z111.string().uuid(),
26713
+ clientRequestId: z111.string().guid(),
26745
26714
  sectionsHash: hash3,
26746
26715
  sourceBindingHash: hash3,
26747
26716
  derivedPlanHash: hash3,
@@ -26853,7 +26822,7 @@ var CreativeEngineEditProposalSchema = z111.object({
26853
26822
  userId: id4,
26854
26823
  taskId: id4,
26855
26824
  angleKey: id4,
26856
- clientRequestId: z111.string().uuid(),
26825
+ clientRequestId: z111.string().guid(),
26857
26826
  createdAtMs: z111.number().int().nonnegative(),
26858
26827
  expiresAtMs: z111.number().int().positive(),
26859
26828
  source: CreativeEngineEditSourceSchema,
@@ -26862,7 +26831,7 @@ var CreativeEngineEditProposalSchema = z111.object({
26862
26831
  context: CreativeEngineEditContextSnapshotSchema,
26863
26832
  recipe: CreativeEngineRecipeSchema,
26864
26833
  // The API validates these with its canonical section schema before persistence/use.
26865
- sections: z111.array(z111.record(z111.unknown())).min(1).max(32)
26834
+ sections: z111.array(z111.record(z111.string(), z111.unknown())).min(1).max(32)
26866
26835
  }).strict();
26867
26836
 
26868
26837
  // ../../packages/types/src/creative-engine-retry.ts
@@ -26924,7 +26893,7 @@ var CreativeEngineFreshRetryProvenanceSchema = z112.object({
26924
26893
  import { z as z113 } from "zod";
26925
26894
  var CreativeEngineEntryRequestSchema = z113.object({
26926
26895
  creativeEngine: z113.literal("unified_v1"),
26927
- taskId: z113.string().uuid(),
26896
+ taskId: z113.string().guid(),
26928
26897
  angleKey: z113.string().min(1).max(200),
26929
26898
  requestId: z113.string().min(1).max(200),
26930
26899
  guide: z113.enum([
@@ -27136,7 +27105,7 @@ import { z as z116 } from "zod";
27136
27105
  // ../../packages/types/src/service-landing-primitives.ts
27137
27106
  import { z as z115 } from "zod";
27138
27107
  var OptionalTextSchema = z115.string().trim().min(1).max(500).optional();
27139
- var AssetIdSchema = z115.string().uuid().transform((value) => value.toLowerCase());
27108
+ var AssetIdSchema = z115.string().guid().transform((value) => value.toLowerCase());
27140
27109
  var ServiceLandingPrimaryCtaSchema = z115.object({
27141
27110
  channelIndex: z115.number().int().nonnegative(),
27142
27111
  label: z115.string().trim().min(1).max(80)
@@ -27272,7 +27241,7 @@ var ServiceLandingContactChannelSchema = z116.discriminatedUnion("kind", [
27272
27241
  BookingUrlChannelSchema
27273
27242
  ]);
27274
27243
  var ServiceLandingServiceSchema = z116.object({
27275
- id: z116.string().uuid(),
27244
+ id: z116.string().guid(),
27276
27245
  name: z116.string().trim().min(1).max(120),
27277
27246
  description: OptionalTextSchema,
27278
27247
  inclusions: z116.array(z116.string().trim().min(1).max(160)).max(12),
@@ -27500,7 +27469,7 @@ var ServiceLandingArtifactSchema = z116.preprocess(applyCodeArtifactDefaults, z1
27500
27469
  // ../../packages/types/src/service-landing-facts-brand.ts
27501
27470
  import { z as z117 } from "zod";
27502
27471
  var ServiceLandingServiceFactsSchema = z117.object({
27503
- id: z117.string().uuid(),
27472
+ id: z117.string().guid(),
27504
27473
  name: z117.string().trim().min(1).max(120).optional(),
27505
27474
  description: OptionalTextSchema,
27506
27475
  inclusions: z117.array(z117.string().trim().min(1).max(160)).max(12).default([]),
@@ -27652,7 +27621,7 @@ var ServicePageParserMetadataSchema = z117.object({
27652
27621
  }).strict()).max(100).optional()
27653
27622
  }).strict();
27654
27623
  var ServicePageSourceSchema = z117.object({
27655
- id: z117.string().uuid(),
27624
+ id: z117.string().guid(),
27656
27625
  kind: ServicePageSourceKindSchema,
27657
27626
  status: ServicePageSourceStatusSchema,
27658
27627
  displayName: z117.string().trim().min(1).max(180).optional(),
@@ -27663,14 +27632,14 @@ var ServicePageSourceSchema = z117.object({
27663
27632
  var ServicePageFactConflictSchema = z117.object({
27664
27633
  fieldPath: z117.string().trim().min(1).max(180),
27665
27634
  candidates: z117.array(z117.object({
27666
- id: z117.string().uuid(),
27635
+ id: z117.string().guid(),
27667
27636
  value: z117.string().trim().min(1).max(500),
27668
- sourceIds: z117.array(z117.string().uuid()).min(1).max(10)
27637
+ sourceIds: z117.array(z117.string().guid()).min(1).max(10)
27669
27638
  }).strict()).min(2).max(8)
27670
27639
  }).strict();
27671
27640
  var ServicePageFactProvenanceSchema = z117.object({
27672
27641
  fieldPath: z117.string().trim().min(1).max(180),
27673
- sourceIds: z117.array(z117.string().uuid()).min(1).max(10),
27642
+ sourceIds: z117.array(z117.string().guid()).min(1).max(10),
27674
27643
  evidence: z117.string().trim().max(1e3).optional()
27675
27644
  }).strict();
27676
27645
  var ServicePageFactsReviewSchema = z117.object({
@@ -27686,26 +27655,26 @@ var ServicePageFactsReviewSchema = z117.object({
27686
27655
  // ../../packages/types/src/service-landing-api.ts
27687
27656
  import { z as z118 } from "zod";
27688
27657
  var ServicePageCreateRequestSchema = z118.object({
27689
- brandId: z118.string().uuid(),
27658
+ brandId: z118.string().guid(),
27690
27659
  includeBrandLogo: z118.boolean().optional(),
27691
- idempotencyKey: z118.string().uuid().optional()
27660
+ idempotencyKey: z118.string().guid().optional()
27692
27661
  }).strict();
27693
27662
  var ServicePageFactsUpdateRequestSchema = z118.object({
27694
27663
  expectedRevision: z118.number().int().nonnegative(),
27695
- idempotencyKey: z118.string().uuid(),
27664
+ idempotencyKey: z118.string().guid(),
27696
27665
  facts: ServicePageFactsSchema
27697
27666
  }).strict();
27698
27667
  var ServicePageFactsConfirmRequestSchema = z118.object({
27699
27668
  expectedRevision: z118.number().int().nonnegative(),
27700
- idempotencyKey: z118.string().uuid(),
27669
+ idempotencyKey: z118.string().guid(),
27701
27670
  resolutions: z118.array(z118.object({
27702
27671
  fieldPath: z118.string().trim().min(1).max(180),
27703
- candidateId: z118.string().uuid()
27672
+ candidateId: z118.string().guid()
27704
27673
  }).strict()).max(30)
27705
27674
  }).strict();
27706
27675
  var ServicePageIntakeRequestSchema = z118.object({
27707
27676
  expectedRevision: z118.number().int().nonnegative(),
27708
- idempotencyKey: z118.string().uuid(),
27677
+ idempotencyKey: z118.string().guid(),
27709
27678
  text: z118.string().trim().max(3e4).optional(),
27710
27679
  profileUrl: z118.string().trim().url().max(2048).refine((value) => {
27711
27680
  try {
@@ -27736,7 +27705,7 @@ var ServicePageAttachmentRefSchema = z118.object({
27736
27705
  "source",
27737
27706
  "asset"
27738
27707
  ]),
27739
- id: z118.string().uuid().transform((id6) => id6.toLowerCase())
27708
+ id: z118.string().guid().transform((id6) => id6.toLowerCase())
27740
27709
  }).strict();
27741
27710
  var ServicePageAttachmentRefsSchema = z118.array(ServicePageAttachmentRefSchema).max(SERVICE_PAGE_CHAT_ATTACHMENT_MAX_SELECTION).superRefine((refs, ctx) => {
27742
27711
  const seen = /* @__PURE__ */ new Set();
@@ -27769,13 +27738,13 @@ var ServicePageChatAttachmentUploadResponseSchema = z118.object({
27769
27738
  }).strict();
27770
27739
  var ServicePageChatAttachmentUploadRequestSchema = z118.object({
27771
27740
  expectedRevision: z118.number().int().nonnegative(),
27772
- idempotencyKey: z118.string().uuid(),
27741
+ idempotencyKey: z118.string().guid(),
27773
27742
  profileUrl: z118.string().url().max(2048).optional()
27774
27743
  }).strict();
27775
27744
  var ServicePageEditInstructionSchema = z118.string().trim().min(3).max(SERVICE_PAGE_EDIT_INSTRUCTION_MAX_CHARS);
27776
27745
  var ServicePageEditEstimateRequestSchema = z118.object({
27777
27746
  expectedRevision: z118.number().int().nonnegative(),
27778
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27747
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27779
27748
  instruction: ServicePageEditInstructionSchema.optional(),
27780
27749
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27781
27750
  }).strict();
@@ -27787,12 +27756,12 @@ var ServicePageEditEstimateResponseSchema = z118.object({
27787
27756
  }).strict();
27788
27757
  var ServicePageGenerationQuoteRequestSchema = z118.object({
27789
27758
  expectedRevision: z118.number().int().nonnegative(),
27790
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27759
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27791
27760
  instruction: ServicePageEditInstructionSchema.optional(),
27792
27761
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27793
27762
  }).strict();
27794
27763
  var ServicePageQuoteResponseSchema = z118.object({
27795
- quoteId: z118.string().uuid(),
27764
+ quoteId: z118.string().guid(),
27796
27765
  purpose: ServicePageQuotePurposeSchema,
27797
27766
  expectedRevision: z118.number().int().nonnegative(),
27798
27767
  requestHash: z118.string().regex(/^[a-f0-9]{64}$/),
@@ -27806,16 +27775,16 @@ var ServicePageQuoteResponseSchema = z118.object({
27806
27775
  requiresConfirmation: z118.literal(true)
27807
27776
  }).strict();
27808
27777
  var ServicePageGenerateRequestSchema = z118.object({
27809
- quoteId: z118.string().uuid(),
27810
- idempotencyKey: z118.string().uuid(),
27778
+ quoteId: z118.string().guid(),
27779
+ idempotencyKey: z118.string().guid(),
27811
27780
  expectedRevision: z118.number().int().nonnegative(),
27812
- baseCandidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27781
+ baseCandidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27813
27782
  instruction: ServicePageEditInstructionSchema.optional(),
27814
27783
  attachmentRefs: ServicePageAttachmentRefsSchema.optional()
27815
27784
  }).strict();
27816
27785
  var SERVICE_PAGE_CREATION_MAX_ATTEMPTS = 3;
27817
27786
  var ServicePageCreationMarkerSchema = z118.object({
27818
- rootOperationId: z118.string().uuid().optional(),
27787
+ rootOperationId: z118.string().guid().optional(),
27819
27788
  attempt: z118.number().int().min(1).max(SERVICE_PAGE_CREATION_MAX_ATTEMPTS)
27820
27789
  }).strict();
27821
27790
  var ServicePageCreationEstimateRequestSchema = z118.object({
@@ -27850,8 +27819,8 @@ var ServicePageOperationStatusSchema = z118.enum([
27850
27819
  "requires_reconciliation"
27851
27820
  ]);
27852
27821
  var ServicePageOperationResponseSchema = z118.object({
27853
- opId: z118.string().uuid(),
27854
- servicePageId: z118.string().uuid(),
27822
+ opId: z118.string().guid(),
27823
+ servicePageId: z118.string().guid(),
27855
27824
  kind: z118.enum([
27856
27825
  "fact_extraction",
27857
27826
  "generation"
@@ -27866,7 +27835,7 @@ var ServicePageOperationResponseSchema = z118.object({
27866
27835
  recoverable: z118.boolean()
27867
27836
  }).strict();
27868
27837
  var ServicePageEditHistoryItemSchema = z118.object({
27869
- opId: z118.string().uuid(),
27838
+ opId: z118.string().guid(),
27870
27839
  instruction: ServicePageEditInstructionSchema,
27871
27840
  status: ServicePageOperationStatusSchema,
27872
27841
  expectedRevision: z118.number().int().nonnegative(),
@@ -27881,8 +27850,8 @@ var ServicePageEditHistoryItemSchema = z118.object({
27881
27850
  }).strict();
27882
27851
  var ServicePageEditHistorySchema = z118.array(ServicePageEditHistoryItemSchema).max(50).default([]);
27883
27852
  var ServicePageOperationJobSchema = z118.object({
27884
- operationId: z118.string().uuid(),
27885
- servicePageId: z118.string().uuid(),
27853
+ operationId: z118.string().guid(),
27854
+ servicePageId: z118.string().guid(),
27886
27855
  userId: z118.string().min(1).max(256),
27887
27856
  kind: z118.enum([
27888
27857
  "fact_extraction",
@@ -27891,22 +27860,22 @@ var ServicePageOperationJobSchema = z118.object({
27891
27860
  }).strict();
27892
27861
  var ServicePageDraftUpdateRequestSchema = z118.object({
27893
27862
  expectedRevision: z118.number().int().nonnegative(),
27894
- idempotencyKey: z118.string().uuid(),
27895
- candidateOperationId: z118.string().uuid().transform((id6) => id6.toLowerCase()).optional(),
27863
+ idempotencyKey: z118.string().guid(),
27864
+ candidateOperationId: z118.string().guid().transform((id6) => id6.toLowerCase()).optional(),
27896
27865
  artifact: ServiceLandingArtifactSchema
27897
27866
  }).strict();
27898
27867
  var ServicePagePublishRequestSchema = z118.object({
27899
27868
  expectedRevision: z118.number().int().nonnegative(),
27900
27869
  slug: z118.string().trim().toLowerCase().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/).max(64),
27901
- idempotencyKey: z118.string().uuid()
27870
+ idempotencyKey: z118.string().guid()
27902
27871
  }).strict();
27903
27872
  var ServicePageUnpublishRequestSchema = z118.object({
27904
27873
  publishedRevision: z118.number().int().positive(),
27905
- idempotencyKey: z118.string().uuid()
27874
+ idempotencyKey: z118.string().guid()
27906
27875
  }).strict();
27907
27876
  var ServicePageSummarySchema = z118.object({
27908
- id: z118.string().uuid(),
27909
- brandId: z118.string().uuid().nullable(),
27877
+ id: z118.string().guid(),
27878
+ brandId: z118.string().guid().nullable(),
27910
27879
  businessName: z118.string().trim().min(1).max(120).nullable(),
27911
27880
  status: ServicePageStatusSchema,
27912
27881
  draftRevision: z118.number().int().nonnegative(),
@@ -27950,7 +27919,7 @@ var ServicePageListResponseSchema = z118.object({
27950
27919
  pages: z118.array(ServicePageSummarySchema)
27951
27920
  }).strict();
27952
27921
  var ServicePageIntakeResponseSchema = z118.object({
27953
- servicePageId: z118.string().uuid(),
27922
+ servicePageId: z118.string().guid(),
27954
27923
  draftRevision: z118.number().int().nonnegative(),
27955
27924
  sources: z118.array(ServicePageSourceSchema).max(50),
27956
27925
  facts: ServicePageFactsSchema,
@@ -27959,13 +27928,13 @@ var ServicePageIntakeResponseSchema = z118.object({
27959
27928
  assetsById: z118.record(AssetIdSchema, ServicePagePublicAssetSchema)
27960
27929
  }).strict();
27961
27930
  var ServicePagePreviewResponseSchema = z118.object({
27962
- servicePageId: z118.string().uuid(),
27931
+ servicePageId: z118.string().guid(),
27963
27932
  revision: z118.number().int().nonnegative(),
27964
27933
  artifact: ServiceLandingArtifactSchema,
27965
27934
  assetsById: z118.record(AssetIdSchema, ServicePagePublicAssetSchema)
27966
27935
  }).strict();
27967
27936
  var ServicePageAdminViewSchema = z118.object({
27968
- id: z118.string().uuid(),
27937
+ id: z118.string().guid(),
27969
27938
  businessName: z118.string().trim().min(1).max(120).nullable(),
27970
27939
  state: z118.enum([
27971
27940
  "created",
@@ -27978,7 +27947,7 @@ var ServicePageAdminViewSchema = z118.object({
27978
27947
  }).strict();
27979
27948
  var ServicePagePreviewRequestSchema = z118.object({
27980
27949
  expectedRevision: z118.number().int().nonnegative(),
27981
- candidateOperationId: z118.string().uuid().optional(),
27950
+ candidateOperationId: z118.string().guid().optional(),
27982
27951
  artifact: ServiceLandingArtifactSchema.optional()
27983
27952
  }).strict().superRefine((request, context) => {
27984
27953
  if (!request.artifact && !request.candidateOperationId) {
@@ -28136,7 +28105,7 @@ var FlightRecorderEntrySchema = z120.object({
28136
28105
  elements: z120.array(FlightRecorderElementSchema).optional(),
28137
28106
  distillation: FlightRecorderDistillationSchema.optional(),
28138
28107
  // Raw payload (sanitized of secrets)
28139
- rawPayload: z120.record(z120.unknown())
28108
+ rawPayload: z120.record(z120.string(), z120.unknown())
28140
28109
  });
28141
28110
  var FlightRecorderQuerySchema = z120.object({
28142
28111
  taskId: z120.string().min(1),
@@ -28191,7 +28160,7 @@ var Url = z122.string().url().refine((value) => {
28191
28160
  var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
28192
28161
  z122.object({
28193
28162
  kind: z122.literal("image"),
28194
- ownerTaskId: z122.string().uuid(),
28163
+ ownerTaskId: z122.string().guid(),
28195
28164
  sourceIndex: z122.number().int().positive(),
28196
28165
  variantIndex: z122.number().int().nonnegative(),
28197
28166
  url: Url,
@@ -28201,8 +28170,8 @@ var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
28201
28170
  }).strict(),
28202
28171
  z122.object({
28203
28172
  kind: z122.literal("gif"),
28204
- ownerTaskId: z122.string().uuid(),
28205
- gifId: z122.string().uuid(),
28173
+ ownerTaskId: z122.string().guid(),
28174
+ gifId: z122.string().guid(),
28206
28175
  gifRevision: z122.number().int().nonnegative(),
28207
28176
  demo: LandingGifReadableSchema,
28208
28177
  historicalDelivery: z122.literal(true).optional()
@@ -28210,10 +28179,10 @@ var ClassicLandingAssetBlockSchema = z122.discriminatedUnion("kind", [
28210
28179
  ]);
28211
28180
  var PublishedClassicLandingSchema = z122.object({
28212
28181
  version: z122.literal(1),
28213
- ownerTaskId: z122.string().uuid(),
28182
+ ownerTaskId: z122.string().guid(),
28214
28183
  documentRevision: z122.number().int().nonnegative(),
28215
28184
  ownerRevisions: z122.array(z122.object({
28216
- ownerTaskId: z122.string().uuid(),
28185
+ ownerTaskId: z122.string().guid(),
28217
28186
  landingRevision: z122.number().int().nonnegative()
28218
28187
  }).strict()).max(100),
28219
28188
  blocks: z122.array(ClassicLandingAssetBlockSchema).max(100)
@@ -28260,18 +28229,18 @@ import { z as z123 } from "zod";
28260
28229
  var DropiCountrySchema = z123.enum(DROPI_COUNTRY_CODES);
28261
28230
  var DropiCountryQuerySchema = z123.object({
28262
28231
  countryCode: DropiCountrySchema.default("CO"),
28263
- connectionId: z123.string().uuid().optional()
28232
+ connectionId: z123.string().guid().optional()
28264
28233
  }).strict();
28265
28234
  var ConnectDropiFinancialSchema = z123.object({
28266
28235
  countryCode: DropiCountrySchema.default("CO"),
28267
- connectionId: z123.string().uuid().optional(),
28236
+ connectionId: z123.string().guid().optional(),
28268
28237
  label: z123.string().trim().min(1).max(80).optional(),
28269
28238
  integrationKey: z123.string().trim().min(1).max(4096).regex(/^[\x21-\x7e]+$/)
28270
28239
  }).strict();
28271
28240
  var SyncDropiFinancialSchema = z123.object({
28272
28241
  countryCode: DropiCountrySchema.optional(),
28273
- operationId: z123.string().uuid().optional(),
28274
- connectionId: z123.string().uuid().optional(),
28242
+ operationId: z123.string().guid().optional(),
28243
+ connectionId: z123.string().guid().optional(),
28275
28244
  since: z123.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional(),
28276
28245
  until: z123.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional()
28277
28246
  }).strict();
@@ -28279,7 +28248,7 @@ var connectionCountries = z123.array(DropiCountrySchema).max(DROPI_COUNTRY_CODES
28279
28248
  var DropiFinancialConnectionsSchema = z123.object({
28280
28249
  connectedCountries: connectionCountries,
28281
28250
  connections: z123.array(z123.object({
28282
- connectionId: z123.string().uuid(),
28251
+ connectionId: z123.string().guid(),
28283
28252
  countryCode: DropiCountrySchema,
28284
28253
  label: z123.string().min(1).max(80)
28285
28254
  }).strict()).max(21).optional(),
@@ -28289,7 +28258,7 @@ var DropiFinancialConnectionsSchema = z123.object({
28289
28258
  var DropiFinancialStatusSchema = z123.object({
28290
28259
  enabled: z123.boolean(),
28291
28260
  connected: z123.boolean(),
28292
- connectionId: z123.string().uuid().optional(),
28261
+ connectionId: z123.string().guid().optional(),
28293
28262
  connectionCount: z123.number().int().nonnegative().optional(),
28294
28263
  label: z123.string().min(1).max(80).optional(),
28295
28264
  countryCode: DropiCountrySchema,
@@ -28416,7 +28385,7 @@ var ServiceImageContextSchema = z124.object({
28416
28385
  // ../../packages/types/src/brand-creation.ts
28417
28386
  import { z as z125 } from "zod";
28418
28387
  var BrandCreationReceiptSchema = z125.object({
28419
- brandId: z125.string().uuid(),
28388
+ brandId: z125.string().guid(),
28420
28389
  status: z125.enum([
28421
28390
  "extracting",
28422
28391
  "ready",
@@ -28559,7 +28528,7 @@ var WebsiteCaptureRequestSchema = z127.object({
28559
28528
  language: MotionGraphicsLanguageSchema
28560
28529
  }).strict();
28561
28530
  var WebsiteCaptureResponseSchema = z127.object({
28562
- captureId: z127.string().uuid(),
28531
+ captureId: z127.string().guid(),
28563
28532
  status: WebsiteCaptureStatusSchema,
28564
28533
  expiresAt: z127.string().datetime(),
28565
28534
  previewUrl: z127.string().url().optional(),
@@ -28568,7 +28537,7 @@ var WebsiteCaptureResponseSchema = z127.object({
28568
28537
  cause: WebsiteCaptureCauseSchema.optional()
28569
28538
  });
28570
28539
  var WebsiteCaptureJobSchema = WebsiteCaptureRequestSchema.extend({
28571
- captureId: z127.string().uuid(),
28540
+ captureId: z127.string().guid(),
28572
28541
  attempt: z127.number().int().positive(),
28573
28542
  leaseUntil: z127.string().datetime(),
28574
28543
  /** Public profile document prepared by the API; never contains a provider credential. */
@@ -28731,7 +28700,7 @@ var image = z128.object({
28731
28700
  width: z128.number().int().positive(),
28732
28701
  height: z128.number().int().positive(),
28733
28702
  adCopy: nullableText,
28734
- rawResponse: z128.unknown()
28703
+ rawResponse: z128.unknown().optional()
28735
28704
  });
28736
28705
  var ProductDemoSnapshotSchema = z128.object({
28737
28706
  /** Optional only for packs frozen before seller review drafts were captured. */
@@ -28744,12 +28713,12 @@ var ProductDemoSnapshotSchema = z128.object({
28744
28713
  country: nullableText,
28745
28714
  features: z128.array(text3).max(100),
28746
28715
  form: nullableText,
28747
- details: z128.unknown(),
28716
+ details: z128.unknown().optional(),
28748
28717
  isCombo: z128.boolean(),
28749
- comboItems: z128.unknown(),
28718
+ comboItems: z128.unknown().optional(),
28750
28719
  images: z128.array(text3).min(1).max(50),
28751
28720
  cleanImages: z128.array(text3).max(50),
28752
- cleanImagesMeta: z128.unknown()
28721
+ cleanImagesMeta: z128.unknown().optional()
28753
28722
  }),
28754
28723
  angles: z128.array(z128.object({
28755
28724
  content: text3,
@@ -28768,7 +28737,7 @@ var ProductDemoSnapshotSchema = z128.object({
28768
28737
  durationSeconds: z128.number().int().positive().nullable(),
28769
28738
  format: VideoFormat,
28770
28739
  resultUrls: z128.array(text3).min(1).max(10),
28771
- rawResponse: z128.unknown(),
28740
+ rawResponse: z128.unknown().optional(),
28772
28741
  adCopy: nullableText
28773
28742
  })).min(1).max(10),
28774
28743
  landingImages: z128.array(z128.object({
@@ -28779,17 +28748,17 @@ var ProductDemoSnapshotSchema = z128.object({
28779
28748
  height: z128.number().int().positive(),
28780
28749
  notes: nullableText
28781
28750
  })).max(20),
28782
- landingConfig: z128.unknown(),
28751
+ landingConfig: z128.unknown().optional(),
28783
28752
  image,
28784
- productUseSheet: z128.unknown(),
28785
- productTruth: z128.unknown(),
28753
+ productUseSheet: z128.unknown().optional(),
28754
+ productTruth: z128.unknown().optional(),
28786
28755
  productReference: z128.object({
28787
28756
  referenceEvidenceVersion: z128.number().int().nonnegative(),
28788
28757
  planVersion: z128.number().int().positive(),
28789
28758
  baseReferenceSetHash: text3,
28790
- referenceSet: z128.unknown(),
28791
- preparationPlan: z128.unknown(),
28792
- canonicalIdentityAnchors: z128.unknown()
28759
+ referenceSet: z128.unknown().optional(),
28760
+ preparationPlan: z128.unknown().optional(),
28761
+ canonicalIdentityAnchors: z128.unknown().optional()
28793
28762
  })
28794
28763
  });
28795
28764
  var ProductDemoPhaseSchema = z128.enum([
@@ -28818,10 +28787,10 @@ var ProductDemoTaskStateSchema = z128.object({
28818
28787
  // ../../packages/types/src/demo-mode-service-page-assets.ts
28819
28788
  import { z as z129 } from "zod";
28820
28789
  var DemoServicePageAssetSourceSchema = z129.object({
28821
- pageId: z129.string().uuid(),
28790
+ pageId: z129.string().guid(),
28822
28791
  ownerId: z129.string().min(1),
28823
28792
  assets: z129.array(z129.object({
28824
- id: z129.string().uuid(),
28793
+ id: z129.string().guid(),
28825
28794
  storageKey: z129.string().min(1).max(1024),
28826
28795
  mediaType: z129.enum([
28827
28796
  "image/webp",
@@ -28897,14 +28866,14 @@ var DEMO_MODE_OPTIONAL_TEMPLATE_KEYS = [
28897
28866
  ...DEMO_MODE_OPTIONAL_MOTION_TEMPLATE_KEYS,
28898
28867
  ...DEMO_MODE_PRODUCT_ALL_TEMPLATE_KEYS
28899
28868
  ];
28900
- var optionalTemplateId = z130.preprocess((value) => value === "" ? void 0 : value, z130.string().uuid().optional());
28869
+ var optionalTemplateId = z130.preprocess((value) => value === "" ? void 0 : value, z130.string().guid().optional());
28901
28870
  var DemoModeTemplatesSchema = z130.object({
28902
- brandId: z130.string().uuid(),
28903
- servicePageId: z130.string().uuid(),
28904
- motionTaskId: z130.string().uuid(),
28871
+ brandId: z130.string().guid(),
28872
+ servicePageId: z130.string().guid(),
28873
+ motionTaskId: z130.string().guid(),
28905
28874
  motionVariantTaskId: optionalTemplateId,
28906
28875
  motionThirdTaskId: optionalTemplateId,
28907
- imageTaskId: z130.string().uuid(),
28876
+ imageTaskId: z130.string().guid(),
28908
28877
  productLandingTaskId: optionalTemplateId,
28909
28878
  productVideoTaskId: optionalTemplateId,
28910
28879
  productVideoVariantTaskId: optionalTemplateId,
@@ -28945,7 +28914,7 @@ var DemoModeSnapshotSchema = z130.object({
28945
28914
  product: ProductDemoSnapshotSchema.optional(),
28946
28915
  brand: z130.object({
28947
28916
  /** Columnas de identidad de `Brand` listas para un `update` (sin id/userId/slug/estado/fechas). */
28948
- identity: z130.record(z130.unknown()),
28917
+ identity: z130.record(z130.string(), z130.unknown()),
28949
28918
  productSamples: z130.array(z130.object({
28950
28919
  name: z130.string(),
28951
28920
  priceCents: z130.number().int().nullable(),
@@ -28965,9 +28934,9 @@ var DemoModeSnapshotSchema = z130.object({
28965
28934
  }))
28966
28935
  }),
28967
28936
  servicePage: z130.object({
28968
- facts: z130.unknown(),
28969
- review: z130.unknown(),
28970
- artifact: z130.unknown(),
28937
+ facts: z130.unknown().optional(),
28938
+ review: z130.unknown().optional(),
28939
+ artifact: z130.unknown().optional(),
28971
28940
  /** Optional only for snapshots saved before page-owned demo media. */
28972
28941
  assetSource: DemoServicePageAssetSourceSchema.optional()
28973
28942
  }),
@@ -28993,7 +28962,7 @@ var DemoModeSnapshotSchema = z130.object({
28993
28962
  width: z130.number().int(),
28994
28963
  height: z130.number().int(),
28995
28964
  adCopy: nullableString,
28996
- rawResponse: z130.unknown()
28965
+ rawResponse: z130.unknown().optional()
28997
28966
  })
28998
28967
  });
28999
28968
  var DemoModeConfigSchema = DemoModeEditableObjectSchema.extend({
@@ -29058,7 +29027,7 @@ var DemoModeJobSchema = z130.object({
29058
29027
  productPhase: ProductDemoJobPhaseSchema.optional(),
29059
29028
  step: DemoModeStepSchema,
29060
29029
  /** brandId | servicePageOperationId | taskId según el flujo. */
29061
- targetId: z130.string().uuid(),
29030
+ targetId: z130.string().guid(),
29062
29031
  userId: z130.string().min(1),
29063
29032
  /** Solo marca: la generación de extracción que el guion completa. */
29064
29033
  generation: z130.number().int().positive().optional(),
@@ -30980,7 +30949,7 @@ var ApiClient = class {
30980
30949
  };
30981
30950
 
30982
30951
  // src/index.ts
30983
- var MCP_VERSION = "12.4.0";
30952
+ var MCP_VERSION = "12.4.1";
30984
30953
 
30985
30954
  // src/meta-upload-app.ts
30986
30955
  import { readFileSync } from "fs";
@@ -32138,7 +32107,7 @@ var ImageCreativeAspectRatioEnum = ImageCreativeAspectRatio;
32138
32107
  var ImageRefSchema = z133.object({
32139
32108
  url: z133.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.'),
32140
32109
  path: z133.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`.'),
32141
- assetId: z133.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.")
32110
+ assetId: z133.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.")
32142
32111
  }).refine((v) => [
32143
32112
  v.url,
32144
32113
  v.path,
@@ -33170,8 +33139,8 @@ function serviceVideoResultMedia(result) {
33170
33139
  }
33171
33140
  __name(serviceVideoResultMedia, "serviceVideoResultMedia");
33172
33141
  var CreativeVariantIdentity = z134.object({
33173
- variantTaskId: z134.string().uuid(),
33174
- sourceTaskId: z134.string().uuid(),
33142
+ variantTaskId: z134.string().guid(),
33143
+ sourceTaskId: z134.string().guid(),
33175
33144
  kind: TaskCreativeVariantKind,
33176
33145
  status: TaskStatusSchema,
33177
33146
  error: z134.string().optional()
@@ -34314,9 +34283,9 @@ var CreateAnimatedVideoInput = z136.object({
34314
34283
  "cancel",
34315
34284
  "generate"
34316
34285
  ]).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."),
34317
- brandId: z136.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."),
34318
- websiteCaptureId: z136.string().uuid().optional().describe("ID de la captura preparada. Obligatorio para status/cancel/generate; no inventarlo."),
34319
- generationRequestId: z136.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."),
34286
+ brandId: z136.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."),
34287
+ websiteCaptureId: z136.string().guid().optional().describe("ID de la captura preparada. Obligatorio para status/cancel/generate; no inventarlo."),
34288
+ generationRequestId: z136.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."),
34320
34289
  confirmed: z136.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."),
34321
34290
  // Plain text, not `.url()`: users type «cal.com», and the web accepts it.
34322
34291
  // normalizeWebAddress (shared with the web) adds https:// and refuses
@@ -34406,7 +34375,7 @@ var AnimatedVideoResultSchema = z136.object({
34406
34375
  index: MotionGraphicsHookVariantsSchema,
34407
34376
  count: MotionGraphicsHookVariantsSchema,
34408
34377
  tasks: z136.array(z136.object({
34409
- taskId: z136.string().uuid(),
34378
+ taskId: z136.string().guid(),
34410
34379
  index: MotionGraphicsHookVariantsSchema,
34411
34380
  status: z136.enum([
34412
34381
  "queued",
@@ -34717,7 +34686,7 @@ function registerAnimatedVideoTools(server, api) {
34717
34686
  nowMs: 0
34718
34687
  })
34719
34688
  });
34720
- const parsedTaskIds = z136.array(z136.string().uuid()).min(1).max(MOTION_GRAPHICS_HOOK_VARIANTS_MAX).safeParse(created.taskIds);
34689
+ const parsedTaskIds = z136.array(z136.string().guid()).min(1).max(MOTION_GRAPHICS_HOOK_VARIANTS_MAX).safeParse(created.taskIds);
34721
34690
  const taskIds = parsedTaskIds.success && parsedTaskIds.data[0] === created.taskId ? parsedTaskIds.data : void 0;
34722
34691
  const receipt = {
34723
34692
  taskId: created.taskId,
@@ -34761,7 +34730,7 @@ __name(registerAnimatedVideoTools, "registerAnimatedVideoTools");
34761
34730
  // src/tools/winning-product-image.ts
34762
34731
  import { z as z137 } from "zod";
34763
34732
  var WinnerReferenceInput = z137.object({
34764
- runId: z137.string().uuid(),
34733
+ runId: z137.string().guid(),
34765
34734
  candidateSourceId: z137.string().trim().min(1).max(160)
34766
34735
  }).strict().describe("Referencia opaca de un producto devuelto por find_winning_products/get_product_research_run.");
34767
34736
  async function resolveWinnerImages(api, winnerReference, images) {
@@ -34802,7 +34771,7 @@ var editTaskDraftGuidance = getProductMakerCapabilityModelGuidance("edit_task_dr
34802
34771
  var CreateProductTaskInput = z138.object({
34803
34772
  images: ImagesInput.optional().describe("1\u20135 fotos del mismo producto. Omitir \xFAnicamente cuando projectId apunta a un proyecto propio con imagen guardada."),
34804
34773
  winnerReference: WinnerReferenceInput.optional().describe(WINNER_IMAGE_CHOICE_GUIDANCE),
34805
- projectId: z138.string().uuid().optional().describe("Opcional. Proyecto guiado propio. Permite continuar sin volver a subir la imagen guardada; nunca evita cr\xE9ditos, cuotas ni confirmaciones."),
34774
+ projectId: z138.string().guid().optional().describe("Opcional. Proyecto guiado propio. Permite continuar sin volver a subir la imagen guardada; nunca evita cr\xE9ditos, cuotas ni confirmaciones."),
34806
34775
  productUrl: z138.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."),
34807
34776
  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.'),
34808
34777
  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.'),
@@ -34835,7 +34804,7 @@ var CreateProductTaskInput = z138.object({
34835
34804
  competitorScanEnabled: z138.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."),
34836
34805
  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.'),
34837
34806
  replicateWinnerWhenFound: z138.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."),
34838
- brandId: z138.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."),
34807
+ brandId: z138.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."),
34839
34808
  actorId: z138.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."),
34840
34809
  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.'),
34841
34810
  creativeDirection: z138.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.'),
@@ -34849,7 +34818,7 @@ var CreateServiceVideoInput = z138.object({
34849
34818
  additionalContext: z138.string().max(3e3).optional().describe('Instrucci\xF3n natural prioritaria. Ej.: "adapta el ritmo de estos competidores", "enfatiza reservas de demos" o restricciones de claims.'),
34850
34819
  language: Lang.describe("Idioma del video: es, en o pt."),
34851
34820
  voiceId: z138.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.'),
34852
- brandId: z138.string().uuid().optional().describe("Marca guardada del usuario. Aplica voz, mensajes, paleta y persona predeterminada."),
34821
+ brandId: z138.string().guid().optional().describe("Marca guardada del usuario. Aplica voz, mensajes, paleta y persona predeterminada."),
34853
34822
  reviewMode: z138.enum([
34854
34823
  "automatic",
34855
34824
  "guided"
@@ -34895,7 +34864,7 @@ var PendingActionPayload = z138.discriminatedUnion("kind", [
34895
34864
  kind: z138.literal("product_reference_set_approval"),
34896
34865
  scope: ProductReferenceScopeEnum.optional(),
34897
34866
  scopeKey: z138.string().min(1).max(120).optional(),
34898
- scopeSnapshotId: z138.string().uuid().optional(),
34867
+ scopeSnapshotId: z138.string().guid().optional(),
34899
34868
  expectedScopeHash: z138.string().min(1).max(128).optional(),
34900
34869
  decision: ProductReferenceResolutionDecisionEnum,
34901
34870
  reason: ProductReferenceRejectionReasonEnum.optional(),
@@ -34960,7 +34929,7 @@ var PendingActionPayload = z138.discriminatedUnion("kind", [
34960
34929
  }),
34961
34930
  z138.object({
34962
34931
  kind: z138.literal("service_angle_approval"),
34963
- angleId: z138.string().uuid().optional(),
34932
+ angleId: z138.string().guid().optional(),
34964
34933
  angleNumber: z138.number().int().positive().optional(),
34965
34934
  content: z138.string().min(1).max(480).optional(),
34966
34935
  creativeDirection: z138.string().min(1).max(1500).optional(),
@@ -35063,7 +35032,7 @@ var StatusForResolveSchema = z138.object({
35063
35032
  }).optional(),
35064
35033
  scope: ProductReferenceScopeEnum.optional(),
35065
35034
  scopeKey: z138.string().optional(),
35066
- scopeSnapshotId: z138.string().uuid().optional(),
35035
+ scopeSnapshotId: z138.string().guid().optional(),
35067
35036
  scopeHash: z138.string().optional(),
35068
35037
  baseReferenceSetHash: z138.string().optional(),
35069
35038
  phase: z138.enum([
@@ -35092,7 +35061,7 @@ var StatusForResolveSchema = z138.object({
35092
35061
  // dropped here, so the approval handler below could not echo it back on the
35093
35062
  // PATCH — the selection looked accepted and reached no render.
35094
35063
  angles: z138.array(z138.object({
35095
- id: z138.string().uuid(),
35064
+ id: z138.string().guid(),
35096
35065
  content: z138.string(),
35097
35066
  creativeDirection: z138.string(),
35098
35067
  actor: z138.string(),
@@ -35454,8 +35423,8 @@ ANTES de invocar, resume outputs, cantidad de videos y datos comerciales, explic
35454
35423
  server.registerTool("verify_landing_commerce", {
35455
35424
  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.",
35456
35425
  inputSchema: {
35457
- taskId: z138.string().uuid(),
35458
- editId: z138.string().uuid()
35426
+ taskId: z138.string().guid(),
35427
+ editId: z138.string().guid()
35459
35428
  },
35460
35429
  annotations: OVERWRITES_EXTERNAL
35461
35430
  }, async (input) => {
@@ -35734,7 +35703,7 @@ ANTES de invocar, resume outputs, cantidad de videos y datos comerciales, explic
35734
35703
  ...page.data,
35735
35704
  items: page.data.items.map((item) => {
35736
35705
  const servicePage = z138.object({
35737
- taskId: z138.string().uuid(),
35706
+ taskId: z138.string().guid(),
35738
35707
  resourceType: z138.literal("service_page")
35739
35708
  }).passthrough().safeParse(item);
35740
35709
  if (!servicePage.success) return item;
@@ -36246,7 +36215,7 @@ var CreateBrandInput = z139.object({
36246
36215
  "pt"
36247
36216
  ]).optional().describe("Idioma de la conversaci\xF3n. Solo se usa si la p\xE1gina del negocio no deja claro su idioma."),
36248
36217
  confirmed: z139.boolean().optional().describe("Solo true despu\xE9s de mostrar el precio y que el usuario acepte. Sin confirmed, start solo cotiza y no cobra."),
36249
- brandId: z139.string().uuid().optional().describe("ID de la marca. Obligatorio para status; no lo inventes.")
36218
+ brandId: z139.string().guid().optional().describe("ID de la marca. Obligatorio para status; no lo inventes.")
36250
36219
  }).strict();
36251
36220
  function normalizeBrandSourceUrl(raw) {
36252
36221
  const value = raw.trim();
@@ -36541,12 +36510,12 @@ var CreateServiceLandingInput = z140.object({
36541
36510
  "status",
36542
36511
  "publish"
36543
36512
  ]).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."),
36544
- brandId: z140.string().uuid().optional().describe("ID de la marca (de create_brand). Obligatorio para prepare. Nunca un taskId de producto."),
36545
- servicePageId: z140.string().uuid().optional().describe("ID de la landing que devolvi\xF3 prepare. Obligatorio para build, status y publish."),
36513
+ brandId: z140.string().guid().optional().describe("ID de la marca (de create_brand). Obligatorio para prepare. Nunca un taskId de producto."),
36514
+ servicePageId: z140.string().guid().optional().describe("ID de la landing que devolvi\xF3 prepare. Obligatorio para build, status y publish."),
36546
36515
  businessInfo: z140.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."),
36547
36516
  confirmed: z140.boolean().optional().describe("Solo true despu\xE9s de mostrar el precio total y que el usuario acepte. Obligatorio para build."),
36548
36517
  maxCredits: z140.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."),
36549
- operationId: z140.string().uuid().optional().describe("Opcional en status: la operaci\xF3n que devolvi\xF3 build."),
36518
+ operationId: z140.string().guid().optional().describe("Opcional en status: la operaci\xF3n que devolvi\xF3 build."),
36550
36519
  slug: z140.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.")
36551
36520
  }).strict();
36552
36521
  function serviceKey(...parts) {
@@ -36940,7 +36909,7 @@ var LANGUAGE_TAGS = {
36940
36909
  pt: "pt-BR"
36941
36910
  };
36942
36911
  var CreateServiceImagesInput = z141.object({
36943
- brandId: z141.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."),
36912
+ brandId: z141.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."),
36944
36913
  instruction: z141.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."),
36945
36914
  delegateToAi: z141.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."),
36946
36915
  format: z141.enum(SERVICE_IMAGE_FORMATS).optional().describe('Formato: "4:5" (feed, por defecto), "9:16" (historias/reels) o "1:1" (cuadrado).'),
@@ -37099,7 +37068,7 @@ var CreativeRefs = {
37099
37068
  buyerPersona: z142.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.'),
37100
37069
  isCombo: z142.boolean().optional().describe("Opcional. Si true, el creativo presenta el producto como combo/pack. Default false."),
37101
37070
  competitorScanEnabled: z142.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."),
37102
- brandId: z142.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.")
37071
+ brandId: z142.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.")
37103
37072
  };
37104
37073
  var VideoPresenter = z142.discriminatedUnion("mode", [
37105
37074
  z142.object({
@@ -37204,7 +37173,7 @@ var FreeVideoInput = z142.object({
37204
37173
  generateAiMusic: z142.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.'),
37205
37174
  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.'),
37206
37175
  addSubtitles: z142.boolean().default(false).describe("Opcional. Quema subt\xEDtulos usando el rawPrompt exacto. Default false."),
37207
- idempotencyKey: z142.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.")
37176
+ idempotencyKey: z142.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.")
37208
37177
  }).strict();
37209
37178
  var imageStyleList = ImageCreativeStyleEnum.options.join(" | ");
37210
37179
  var ImageCreativeSetup = z142.discriminatedUnion("mode", [
@@ -37306,7 +37275,7 @@ var ImageInput = z142.object({
37306
37275
  brandId: CreativeRefs.brandId
37307
37276
  });
37308
37277
  var EditImageCreativeInput = z142.object({
37309
- taskId: z142.string().uuid().describe("ID de la tarea de imagen ya finalizada."),
37278
+ taskId: z142.string().guid().describe("ID de la tarea de imagen ya finalizada."),
37310
37279
  variantIndex: z142.number().int().min(0).max(10).describe("\xCDndice de la variante a corregir (0 = primera imagen)."),
37311
37280
  clientRequestId: z142.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."),
37312
37281
  instruction: z142.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".')
@@ -37601,8 +37570,8 @@ function registerCreativeTools(server, api, { transport = "http", proxyBaseUrl =
37601
37570
  server.registerTool("get_image_edit_status", {
37602
37571
  description: imageEditStatusGuidance.summary,
37603
37572
  inputSchema: {
37604
- taskId: z142.string().uuid(),
37605
- operationId: z142.string().uuid()
37573
+ taskId: z142.string().guid(),
37574
+ operationId: z142.string().guid()
37606
37575
  },
37607
37576
  annotations: READS_INTERNAL,
37608
37577
  _meta: taskResultsToolMeta()
@@ -37741,7 +37710,7 @@ var CreativeVariantKindEnum = z143.enum([
37741
37710
  "landing"
37742
37711
  ]);
37743
37712
  var EstimateCreativeVariantInputBase = z143.object({
37744
- sourceTaskId: z143.string().uuid().describe("ID de la tarea original completada."),
37713
+ sourceTaskId: z143.string().guid().describe("ID de la tarea original completada."),
37745
37714
  kind: CreativeVariantKindEnum,
37746
37715
  videoPreset: TaskCreativeVariantVideoPresetEnum.optional().describe("Opcional para video. Solo cambia el preset p\xFAblico; el servidor conserva el modelo/tier del task origen."),
37747
37716
  videoResolution: VideoResolutionEnum.optional().describe("Opcional para video. Resoluci\xF3n del nuevo render."),
@@ -37810,10 +37779,10 @@ var EstimateCreativeVariantInput = EstimateCreativeVariantInputBase.superRefine(
37810
37779
  }
37811
37780
  });
37812
37781
  var CreateCreativeVariantInputBase = z143.object({
37813
- sourceTaskId: z143.string().uuid().describe("ID de la tarea original completada."),
37782
+ sourceTaskId: z143.string().guid().describe("ID de la tarea original completada."),
37814
37783
  kind: CreativeVariantKindEnum,
37815
37784
  confirm: z143.literal(true).describe("Confirmaci\xF3n expl\xEDcita del usuario despu\xE9s de mostrarle el estimado de cr\xE9ditos."),
37816
- clientRequestId: z143.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."),
37785
+ clientRequestId: z143.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."),
37817
37786
  angle: z143.string().trim().min(1).max(500).optional().describe("\xC1ngulo nuevo para video o imagen."),
37818
37787
  buyerPersona: z143.string().trim().min(1).max(360).optional().describe("Buyer persona coherente con el \xE1ngulo."),
37819
37788
  scriptNotes: z143.string().trim().min(1).max(2e3).optional().describe("Direcci\xF3n breve del guion para una variante de video."),
@@ -38182,7 +38151,7 @@ function registerConnectionTools(server, api) {
38182
38151
  inputSchema: z145.object({
38183
38152
  shopDomain: z145.string().min(3).max(120),
38184
38153
  query: z145.string().trim().max(120).optional(),
38185
- taskId: z145.string().uuid().optional()
38154
+ taskId: z145.string().guid().optional()
38186
38155
  }).shape,
38187
38156
  annotations: READS_EXTERNAL
38188
38157
  }, async ({ shopDomain, query, taskId }) => {
@@ -38534,8 +38503,8 @@ var GroupedMediaSource = z147.object({
38534
38503
  var GroupedUploadedAssetSource = z147.object({
38535
38504
  type: z147.literal("asset"),
38536
38505
  /** Returned by check_media_upload. ProductMaker resolves ownership server-side. */
38537
- assetId: z147.string().uuid(),
38538
- thumbnailAssetId: z147.string().uuid().optional()
38506
+ assetId: z147.string().guid(),
38507
+ thumbnailAssetId: z147.string().guid().optional()
38539
38508
  });
38540
38509
  var GroupedCreative = z147.object({
38541
38510
  type: z147.enum([
@@ -38682,7 +38651,7 @@ var PresignUploadResponseSchema = z147.object({
38682
38651
  const url2 = new URL(value);
38683
38652
  return !url2.username && !url2.password;
38684
38653
  }, "public media URL must not contain embedded credentials"),
38685
- stagingAssetId: z147.string().uuid()
38654
+ stagingAssetId: z147.string().guid()
38686
38655
  });
38687
38656
  async function uploadResolvedMedia(api, media, assetRole) {
38688
38657
  if (!media.buffer) throw new ResolveMediaError("INVALID_INPUT", "resolved media has no bytes");
@@ -39171,7 +39140,7 @@ var UploadSessionToolInput = z148.object(UploadSessionToolInputShape).superRefin
39171
39140
  }
39172
39141
  });
39173
39142
  var UploadSessionResponse = z148.object({
39174
- sessionId: z148.string().uuid(),
39143
+ sessionId: z148.string().guid(),
39175
39144
  uploadPageUrl: z148.string().url(),
39176
39145
  mediaKind: z148.enum([
39177
39146
  "image",
@@ -39186,7 +39155,7 @@ var UploadSessionResponse = z148.object({
39186
39155
  expiresAt: z148.string().datetime()
39187
39156
  });
39188
39157
  var UploadStatusInput = z148.object({
39189
- sessionId: z148.string().uuid().describe("The sessionId returned by request_media_upload.")
39158
+ sessionId: z148.string().guid().describe("The sessionId returned by request_media_upload.")
39190
39159
  });
39191
39160
  var UniversalUploadStatusResponse = z148.discriminatedUnion("status", [
39192
39161
  z148.object({
@@ -39196,7 +39165,7 @@ var UniversalUploadStatusResponse = z148.discriminatedUnion("status", [
39196
39165
  z148.object({
39197
39166
  status: z148.literal("uploaded"),
39198
39167
  assets: z148.array(z148.object({
39199
- assetId: z148.string().uuid(),
39168
+ assetId: z148.string().guid(),
39200
39169
  mediaKind: z148.enum([
39201
39170
  "image",
39202
39171
  "video"
@@ -39508,7 +39477,7 @@ var ShippingReferenceSchema = z150.object({
39508
39477
  });
39509
39478
  }
39510
39479
  });
39511
- var SHIPPING_REFERENCES = z150.record(ShippingReferenceSchema).parse(product_costing_shipping_references_default);
39480
+ var SHIPPING_REFERENCES = z150.record(z150.string(), ShippingReferenceSchema).parse(product_costing_shipping_references_default);
39512
39481
  var PRODUCT_COSTING_COUNTRY_CODES = Object.freeze(Object.keys(SHIPPING_REFERENCES));
39513
39482
  var SPANISH_LOCALE_COUNTRIES = /* @__PURE__ */ new Set([
39514
39483
  "MX",
@@ -40347,7 +40316,7 @@ var FindInput = z153.object({
40347
40316
  waitSeconds: z153.number().int().min(0).max(MAX_WAIT_SECONDS).optional().describe("Segundos a esperar el reporte antes de devolver el runId. M\xE1ximo 120.")
40348
40317
  });
40349
40318
  var GetInput = z153.object({
40350
- runId: z153.string().uuid().describe("ID del run devuelto por find_winning_products.")
40319
+ runId: z153.string().guid().describe("ID del run devuelto por find_winning_products.")
40351
40320
  });
40352
40321
  var ListInput = z153.object({
40353
40322
  limit: z153.number().int().min(1).max(20).default(10)
@@ -40493,7 +40462,7 @@ import { z as z154 } from "zod";
40493
40462
  var startDropshippingProjectGuidance = getProductMakerCapabilityModelGuidance("start_dropshipping_project");
40494
40463
  var costDropshippingProjectGuidance = getProductMakerCapabilityModelGuidance("cost_dropshipping_project");
40495
40464
  var guideDropshippingLaunchGuidance = getProductMakerCapabilityModelGuidance("guide_dropshipping_launch");
40496
- var ProjectId = z154.string().uuid();
40465
+ var ProjectId = z154.string().guid();
40497
40466
  var DropshippingProjectStatus = z154.enum([
40498
40467
  "active",
40499
40468
  "completed",
@@ -40607,15 +40576,7 @@ var DropshippingProjectNextAction = z154.discriminatedUnion("kind", NEXT_ACTION_
40607
40576
  kind: z154.literal(kind2),
40608
40577
  href: z154.string().min(1)
40609
40578
  })));
40610
- var CostingInputSchema = z154.object({
40611
- country: z154.string().min(2).max(3),
40612
- supplierCost: z154.number().finite().positive(),
40613
- shippingCost: z154.number().finite().nonnegative(),
40614
- returnRate: z154.number().finite().min(0).lt(1),
40615
- cancellationRate: z154.number().finite().min(0).lt(1),
40616
- adsManagerCpa: z154.number().finite().nonnegative(),
40617
- desiredMargin: z154.number().finite().min(0).lt(1)
40618
- }).superRefine(({ returnRate, cancellationRate }, context) => {
40579
+ var CostingInputSchema = z154.object(DropshippingProjectCostingInputSchema.shape).superRefine(({ returnRate, cancellationRate }, context) => {
40619
40580
  if (returnRate + cancellationRate >= 1) context.addIssue({
40620
40581
  code: z154.ZodIssueCode.custom,
40621
40582
  path: [
@@ -40805,10 +40766,10 @@ var DateOnly = z155.string().regex(/^\d{4}-\d{2}-\d{2}$/);
40805
40766
  var DailyControlInput = z155.object({
40806
40767
  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."),
40807
40768
  days: z155.number().int().min(1).max(14).default(3).describe("Tama\xF1o de la ventana, 1 a 14 d\xEDas."),
40808
- projectId: z155.string().uuid().optional().describe("Opcional: limita el reporte a un solo proyecto en vez de todos los productos activos.")
40769
+ projectId: z155.string().guid().optional().describe("Opcional: limita el reporte a un solo proyecto en vez de todos los productos activos.")
40809
40770
  }).strict();
40810
40771
  var LinkCampaignInput = z155.object({
40811
- projectId: z155.string().uuid(),
40772
+ projectId: z155.string().guid(),
40812
40773
  provider: z155.enum([
40813
40774
  "meta",
40814
40775
  "tiktok"
@@ -40817,7 +40778,7 @@ var LinkCampaignInput = z155.object({
40817
40778
  campaignId: ProviderCampaignIdentifier
40818
40779
  }).strict();
40819
40780
  var ReportReturnsInput = z155.object({
40820
- projectId: z155.string().uuid(),
40781
+ projectId: z155.string().guid(),
40821
40782
  date: DateOnly,
40822
40783
  returnedOrders: z155.number().int().min(0).max(1e5),
40823
40784
  note: z155.string().trim().max(280).optional()
@@ -40835,7 +40796,7 @@ var DailyControlDayMirror = z155.object({
40835
40796
  light: DailyControlLightMirror
40836
40797
  }).passthrough();
40837
40798
  var DailyControlProductMirror = z155.object({
40838
- projectId: z155.string().uuid(),
40799
+ projectId: z155.string().guid(),
40839
40800
  productName: z155.string().nullable(),
40840
40801
  status: DailyControlStatusMirror,
40841
40802
  statusMessage: z155.string().nullable(),
@@ -40968,7 +40929,7 @@ var SetProductCostingInput = z156.object({
40968
40929
  tienda + id de Shopify. El esquema canónico también las admite juntas,
40969
40930
  pero pedirlas por separado evita que el modelo emita una mezcla que
40970
40931
  diga dos productos a la vez. */
40971
- productControlId: z156.string().uuid().optional().describe("El id nuestro (lo devuelven get_product_control y create_manual_product). Obligatorio para productos manuales o importados sin tienda."),
40932
+ productControlId: z156.string().guid().optional().describe("El id nuestro (lo devuelven get_product_control y create_manual_product). Obligatorio para productos manuales o importados sin tienda."),
40972
40933
  manualSellingPrice: z156.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."),
40973
40934
  shopDomain: z156.string().min(1).optional(),
40974
40935
  shopifyProductId: z156.string().min(1).max(64).optional(),
@@ -40980,7 +40941,7 @@ var SetProductCostingInput = z156.object({
40980
40941
  }).strict();
40981
40942
  var Count = z156.number().int().min(0).max(1e5).nullable().optional();
40982
40943
  var ReportProductCountsInput = z156.object({
40983
- productControlId: z156.string().uuid().describe("El identificador que devuelve get_product_control."),
40944
+ productControlId: z156.string().guid().describe("El identificador que devuelve get_product_control."),
40984
40945
  date: DateOnly2,
40985
40946
  orders: Count.describe("Pedidos que entraron ese d\xEDa."),
40986
40947
  cancelledOrders: Count,
@@ -40993,7 +40954,7 @@ var SyncShopifyOrdersInput = SyncShopifyOrdersSchema;
40993
40954
  var ImportOrdersFileInput = z156.object({
40994
40955
  /** Ruta ABSOLUTA en la máquina de quien usa el MCP. */
40995
40956
  path: z156.string().min(1),
40996
- operationId: z156.string().uuid().optional(),
40957
+ operationId: z156.string().guid().optional(),
40997
40958
  /** Solo mirar: devuelve el resumen y no escribe nada. */
40998
40959
  dryRun: z156.boolean().optional()
40999
40960
  }).strict();
@@ -41002,35 +40963,35 @@ var CreateOperationInput = z156.object({
41002
40963
  label: z156.string().trim().min(1).max(60).optional()
41003
40964
  }).strict();
41004
40965
  var MergeProductsInput = z156.object({
41005
- sourceId: z156.string().uuid(),
41006
- targetId: z156.string().uuid()
40966
+ sourceId: z156.string().guid(),
40967
+ targetId: z156.string().guid()
41007
40968
  }).strict();
41008
40969
  var SetMonthlyExpenseInput = z156.object({
41009
40970
  month: z156.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
41010
40971
  label: SaveMonthlyExpenseSchema.shape.label,
41011
40972
  amount: z156.number().finite().min(0),
41012
- operationId: z156.string().uuid().optional()
40973
+ operationId: z156.string().guid().optional()
41013
40974
  }).strict();
41014
40975
  var SetAdSpendInput = z156.object({
41015
40976
  month: z156.string().regex(/^\d{4}-(0[1-9]|1[0-2])$/).optional(),
41016
- operationId: z156.string().uuid().optional(),
40977
+ operationId: z156.string().guid().optional(),
41017
40978
  /** null RETIRA la corrección; cero afirma que no pautó. */
41018
40979
  amount: z156.number().finite().min(0).nullable()
41019
40980
  }).strict();
41020
40981
  var GetFinancesInput = z156.object({
41021
40982
  month: z156.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."),
41022
- operationId: z156.string().uuid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
40983
+ operationId: z156.string().guid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
41023
40984
  }).strict();
41024
40985
  var GetDropiStatusInput = DropiCountryQuerySchema.extend({
41025
40986
  countryCode: DropiCountrySchema.optional().describe("Pa\xEDs de la cuenta (ISO-2). Si se omite, el servidor responde por Colombia (CO)."),
41026
- connectionId: z156.string().uuid().optional().describe("Una cuenta concreta cuando el pa\xEDs tiene varias. Sale de la lista de conexiones; nunca se inventa.")
40987
+ connectionId: z156.string().guid().optional().describe("Una cuenta concreta cuando el pa\xEDs tiene varias. Sale de la lista de conexiones; nunca se inventa.")
41027
40988
  });
41028
40989
  var SyncDropiOrdersInput = SyncDropiFinancialSchema;
41029
- var CreateManualProductInput = CreateManualProductControlSchema.innerType().omit({
40990
+ var CreateManualProductInput = z156.strictObject(CreateManualProductControlSchema.shape).omit({
41030
40991
  requestId: true
41031
40992
  });
41032
40993
  var ListUnmatchedProductsInput = z156.object({
41033
- operationId: z156.string().uuid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
40994
+ operationId: z156.string().guid().optional().describe("El negocio, si tiene mas de uno. Con uno solo no hace falta decirlo.")
41034
40995
  }).strict();
41035
40996
  var ResolveUnmatchedProductInput = ResolveUnmatchedProductSchema;
41036
40997
  var ListLinkableCampaignsInput = z156.object({}).strict();
@@ -41041,13 +41002,13 @@ var LinkProductCampaignInput = z156.object({
41041
41002
  ]).describe("La red publicitaria de la campa\xF1a."),
41042
41003
  accountId: z156.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/).describe("La cuenta publicitaria. Sale de list_linkable_campaigns; nunca se inventa."),
41043
41004
  campaignId: z156.string().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/).describe("La campa\xF1a. Sale de list_linkable_campaigns; nunca se inventa."),
41044
- productControlId: z156.string().uuid().optional().describe("El id del producto en su control financiero."),
41005
+ productControlId: z156.string().guid().optional().describe("El id del producto en su control financiero."),
41045
41006
  shopDomain: z156.string().min(1).optional().describe("La tienda del producto; con shopifyProductId es la otra forma de decir cu\xE1l es."),
41046
41007
  shopifyProductId: z156.string().min(1).optional().describe("El id del producto en su tienda. Va junto a shopDomain.")
41047
41008
  }).strict();
41048
41009
  var DeleteMonthlyExpenseInput = DeleteMonthlyExpenseSchema;
41049
41010
  var RemoveProductControlInput = z156.object({
41050
- productControlId: z156.string().uuid().describe("El id del producto en su control. Sale del listado; nunca se inventa.")
41011
+ productControlId: z156.string().guid().describe("El id del producto en su control. Sale del listado; nunca se inventa.")
41051
41012
  }).strict();
41052
41013
  function manualProductRequestId(input) {
41053
41014
  const digest3 = createHash5("sha256").update(JSON.stringify(input, [
@@ -41541,6 +41502,8 @@ function createServer(opts) {
41541
41502
  },
41542
41503
  logging: {}
41543
41504
  },
41505
+ // Bound structural work before parsing hosted tool arguments; stdio remains local.
41506
+ maxToolInputElements: transport === "http" ? 1e4 : void 0,
41544
41507
  instructions
41545
41508
  });
41546
41509
  const api = new ApiClient(apiBaseUrl, opts.credential, {