@productmaker/mcp 12.4.1 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/http.js CHANGED
@@ -6108,7 +6108,8 @@ var LANDING_STRATEGIES = [
6108
6108
  var LandingStrategySchema = z14.enum(LANDING_STRATEGIES);
6109
6109
  var SELECTABLE_LANDING_STRATEGIES = [
6110
6110
  "classic",
6111
- "social_proof"
6111
+ "social_proof",
6112
+ "pain_solution"
6112
6113
  ];
6113
6114
  var SelectableLandingStrategySchema = z14.enum(SELECTABLE_LANDING_STRATEGIES);
6114
6115
  var EffectiveLandingStrategySchema = LandingStrategySchema.exclude([
@@ -6389,6 +6390,13 @@ var CODE_LANDING_USAGE_VARIANTS = [
6389
6390
  "steps"
6390
6391
  ];
6391
6392
  var CodeLandingUsageVariantSchema = z16.enum(CODE_LANDING_USAGE_VARIANTS);
6393
+ var CODE_LANDING_BUY_BOX_FORMATS = [
6394
+ "classic",
6395
+ "benefits",
6396
+ "impact",
6397
+ "pop"
6398
+ ];
6399
+ var CodeLandingBuyBoxFormatSchema = z16.enum(CODE_LANDING_BUY_BOX_FORMATS);
6392
6400
  var CodeLandingRecipeVariantsSchema = z16.object({
6393
6401
  hero: CodeLandingHeroVariantSchema,
6394
6402
  "benefits-grid": CodeLandingBenefitsVariantSchema,
@@ -6429,7 +6437,8 @@ var CodeLandingRecipePlanFields = {
6429
6437
  var CodeLandingRecipeProposalSchema = z16.object(CodeLandingRecipePlanFields).strict();
6430
6438
  var CodeLandingRecipePlanObjectSchema = z16.object({
6431
6439
  version: z16.literal(1),
6432
- ...CodeLandingRecipePlanFields
6440
+ ...CodeLandingRecipePlanFields,
6441
+ buyBoxFormat: CodeLandingBuyBoxFormatSchema.optional()
6433
6442
  }).strict();
6434
6443
  function hasDuplicateIds(ids) {
6435
6444
  return new Set(ids).size !== ids.length;
@@ -8653,6 +8662,16 @@ var LandingEditAttachmentDto = z23.object({
8653
8662
  width: z23.number().int().positive().nullable(),
8654
8663
  height: z23.number().int().positive().nullable()
8655
8664
  });
8665
+ var ApplyLandingCarouselGifRequest = z23.object({
8666
+ attachmentId: z23.string().uuid(),
8667
+ expectedRevision: z23.number().int().nonnegative(),
8668
+ idempotencyKey: z23.string().uuid()
8669
+ }).strict();
8670
+ var ApplyLandingCarouselGifResponse = z23.object({
8671
+ artifact: CodeLandingArtifactSchema,
8672
+ appliedRevision: z23.number().int().positive(),
8673
+ replayed: z23.boolean()
8674
+ });
8656
8675
  var UploadLandingEditAttachmentResponse = z23.object({
8657
8676
  attachment: LandingEditAttachmentDto
8658
8677
  });
@@ -11491,6 +11510,13 @@ var CreativeEngineRepairAuthorContractRetrySchema = z38.object({
11491
11510
  requestedAtMs: z38.number().int().nonnegative(),
11492
11511
  token: id2
11493
11512
  }).strict();
11513
+ var CreativeEngineReplanAuthorContractRetrySchema = z38.object({
11514
+ failedOperationId: id2,
11515
+ planHash: hash,
11516
+ context: CreativeEngineContextBindingSchema,
11517
+ requestedAtMs: z38.number().int().nonnegative(),
11518
+ token: id2
11519
+ }).strict();
11494
11520
  var CreativeEngineCompositionRepairSchema = z38.object({
11495
11521
  reviewId: id2,
11496
11522
  outputHash: hash,
@@ -11624,6 +11650,7 @@ var CreativeEngineStateSchema = z38.object({
11624
11650
  token: id2
11625
11651
  }).strict().optional(),
11626
11652
  repairAuthorContractRetry: CreativeEngineRepairAuthorContractRetrySchema.optional(),
11653
+ replanAuthorContractRetry: CreativeEngineReplanAuthorContractRetrySchema.optional(),
11627
11654
  final: CreativeEngineFinalSchema.optional()
11628
11655
  }).strict().superRefine((state, ctx) => {
11629
11656
  const repairAuthorContractRetry = state.repairAuthorContractRetry;
@@ -11782,6 +11809,13 @@ var CreativeEngineEventSchema = z38.discriminatedUnion("type", [
11782
11809
  context: CreativeEngineContextBindingSchema,
11783
11810
  token: id2
11784
11811
  }).strict(),
11812
+ z38.object({
11813
+ type: z38.literal("replan_author_contract_retry_requested"),
11814
+ failedOperationId: id2,
11815
+ planHash: hash,
11816
+ context: CreativeEngineContextBindingSchema,
11817
+ token: id2
11818
+ }).strict(),
11785
11819
  z38.object({
11786
11820
  type: z38.literal("repair_author_contract_retry_requested"),
11787
11821
  failedOperationId: id2,
@@ -12029,10 +12063,10 @@ import { z as z40 } from "zod";
12029
12063
  var MAX_BILLING_DECIMAL_PLACES = 10;
12030
12064
  function countDecimalPlaces(value) {
12031
12065
  if (!Number.isFinite(value)) return MAX_BILLING_DECIMAL_PLACES + 1;
12032
- const normalized = value.toString();
12066
+ let normalized = value.toString();
12033
12067
  if (/e/i.test(normalized)) {
12034
- const fixed = value.toFixed(MAX_BILLING_DECIMAL_PLACES);
12035
- return countDecimalPlaces(Number(fixed));
12068
+ if (Math.abs(value) >= 1e21) return 0;
12069
+ normalized = value.toFixed(MAX_BILLING_DECIMAL_PLACES);
12036
12070
  }
12037
12071
  const parts = normalized.split(".");
12038
12072
  if (parts.length < 2) return 0;
@@ -14575,6 +14609,8 @@ var CostEstimationRequest = z50.discriminatedUnion("type", [
14575
14609
  var CostEstimationResponse = z50.object({
14576
14610
  /** Server confirms the range includes the first generated classic-landing GIF. */
14577
14611
  includesInitialLandingGif: z50.boolean().optional(),
14612
+ /** The initial-GIF choice is offerable for this config (code landings only quote it after explicit consent). */
14613
+ initialLandingGifOffered: z50.boolean().optional(),
14578
14614
  estimatedCostCents: z50.number().nonnegative(),
14579
14615
  estimatedCostCredits: z50.number().int().nonnegative(),
14580
14616
  /** Scan-only midpoint; excludes generating a winner replica. Not an admission limit. */
@@ -23177,7 +23213,8 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23177
23213
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
23178
23214
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
23179
23215
  // MCP 12.4.0: landingStrategy narrowed to classic + social_proof.
23180
- "5a6dd48977702dbb92a315fb668054f13918fd1cfae5056de82e94144e6f5804",
23216
+ // MCP 12.5.0: pain_solution restored to landingStrategy.
23217
+ "68a740d97238e720000c16db56ae5748ceb560e342f8fbfe605c954e6284fda7",
23181
23218
  "credit_consuming",
23182
23219
  "creative",
23183
23220
  [
@@ -23623,7 +23660,8 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23623
23660
  defineCapability(
23624
23661
  "generate_landing",
23625
23662
  // MCP 12.4.0: guided landingStrategy narrowed to classic + social_proof.
23626
- "6db8df9db5410d0abe0f44da7027af4cc40aff37ef6e66e82164edbd889eeb63",
23663
+ // MCP 12.5.0: pain_solution restored to guided landingStrategy.
23664
+ "16c4e1ea0cd12ee3367e06b4f73a177c94e16ab7d5323d971d577301ba2c7b70",
23627
23665
  "credit_consuming",
23628
23666
  "creative",
23629
23667
  [
@@ -30949,7 +30987,7 @@ var ApiClient = class {
30949
30987
  };
30950
30988
 
30951
30989
  // src/index.ts
30952
- var MCP_VERSION = "12.4.1";
30990
+ var MCP_VERSION = "12.5.0";
30953
30991
 
30954
30992
  // src/meta-upload-app.ts
30955
30993
  import { readFileSync } from "fs";
@@ -34810,7 +34848,7 @@ var CreateProductTaskInput = z138.object({
34810
34848
  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.'),
34811
34849
  headline: z138.string().max(120).optional().describe("Opcional. Titular EXACTO a renderizar. Se imprime tal cual: la IA no lo reescribe, no lo acorta y no lo traduce. Se aplica a las IM\xC1GENES y a la portada de la landing de esta task (el video no lo usa; para el video usa scriptNotes). \xDAsalo cuando el copy es de marca y no es negociable. M\xE1x 120 caracteres. Si lo omites, la IA escribe el titular."),
34812
34850
  subheadline: z138.string().max(160).optional().describe("Opcional. Subt\xEDtulo EXACTO a renderizar, misma regla que headline. Independiente: puedes fijar solo el subt\xEDtulo. M\xE1x 160 caracteres."),
34813
- landingStrategy: LandingStrategyEnum.optional().describe('Opcional. Estructura de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "classic" (Landing cl\xE1sica de ProductMaker: estructura original probada y recomendada) o "social_proof" (Landing Viral: UGC, WhatsApp, Instagram y evidencia social). Default "classic".'),
34851
+ landingStrategy: LandingStrategyEnum.optional().describe('Opcional. Estructura de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "classic" (Landing cl\xE1sica de ProductMaker: estructura original probada y recomendada) , "social_proof" (Landing Viral: UGC, WhatsApp, Instagram y evidencia social) o "pain_solution" (Problema y soluci\xF3n: dolor reconocible, demostraci\xF3n y transformaci\xF3n). Default "classic".'),
34814
34852
  landingImageFormat: LandingImageFormatEnum.default("9:16").describe('Opcional. Formato/relaci\xF3n de aspecto de las im\xE1genes de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "9:16" (vertical, por defecto), "4:5" (vertical compacto para feed) o "1:1" (cuadrado). Default "9:16".')
34815
34853
  }).strict();
34816
34854
  var CreateServiceVideoInput = z138.object({
package/dist/stdio.js CHANGED
@@ -5883,7 +5883,8 @@ var LANDING_STRATEGIES = [
5883
5883
  var LandingStrategySchema = z14.enum(LANDING_STRATEGIES);
5884
5884
  var SELECTABLE_LANDING_STRATEGIES = [
5885
5885
  "classic",
5886
- "social_proof"
5886
+ "social_proof",
5887
+ "pain_solution"
5887
5888
  ];
5888
5889
  var SelectableLandingStrategySchema = z14.enum(SELECTABLE_LANDING_STRATEGIES);
5889
5890
  var EffectiveLandingStrategySchema = LandingStrategySchema.exclude([
@@ -6164,6 +6165,13 @@ var CODE_LANDING_USAGE_VARIANTS = [
6164
6165
  "steps"
6165
6166
  ];
6166
6167
  var CodeLandingUsageVariantSchema = z16.enum(CODE_LANDING_USAGE_VARIANTS);
6168
+ var CODE_LANDING_BUY_BOX_FORMATS = [
6169
+ "classic",
6170
+ "benefits",
6171
+ "impact",
6172
+ "pop"
6173
+ ];
6174
+ var CodeLandingBuyBoxFormatSchema = z16.enum(CODE_LANDING_BUY_BOX_FORMATS);
6167
6175
  var CodeLandingRecipeVariantsSchema = z16.object({
6168
6176
  hero: CodeLandingHeroVariantSchema,
6169
6177
  "benefits-grid": CodeLandingBenefitsVariantSchema,
@@ -6204,7 +6212,8 @@ var CodeLandingRecipePlanFields = {
6204
6212
  var CodeLandingRecipeProposalSchema = z16.object(CodeLandingRecipePlanFields).strict();
6205
6213
  var CodeLandingRecipePlanObjectSchema = z16.object({
6206
6214
  version: z16.literal(1),
6207
- ...CodeLandingRecipePlanFields
6215
+ ...CodeLandingRecipePlanFields,
6216
+ buyBoxFormat: CodeLandingBuyBoxFormatSchema.optional()
6208
6217
  }).strict();
6209
6218
  function hasDuplicateIds(ids) {
6210
6219
  return new Set(ids).size !== ids.length;
@@ -8428,6 +8437,16 @@ var LandingEditAttachmentDto = z23.object({
8428
8437
  width: z23.number().int().positive().nullable(),
8429
8438
  height: z23.number().int().positive().nullable()
8430
8439
  });
8440
+ var ApplyLandingCarouselGifRequest = z23.object({
8441
+ attachmentId: z23.string().uuid(),
8442
+ expectedRevision: z23.number().int().nonnegative(),
8443
+ idempotencyKey: z23.string().uuid()
8444
+ }).strict();
8445
+ var ApplyLandingCarouselGifResponse = z23.object({
8446
+ artifact: CodeLandingArtifactSchema,
8447
+ appliedRevision: z23.number().int().positive(),
8448
+ replayed: z23.boolean()
8449
+ });
8431
8450
  var UploadLandingEditAttachmentResponse = z23.object({
8432
8451
  attachment: LandingEditAttachmentDto
8433
8452
  });
@@ -11266,6 +11285,13 @@ var CreativeEngineRepairAuthorContractRetrySchema = z38.object({
11266
11285
  requestedAtMs: z38.number().int().nonnegative(),
11267
11286
  token: id2
11268
11287
  }).strict();
11288
+ var CreativeEngineReplanAuthorContractRetrySchema = z38.object({
11289
+ failedOperationId: id2,
11290
+ planHash: hash,
11291
+ context: CreativeEngineContextBindingSchema,
11292
+ requestedAtMs: z38.number().int().nonnegative(),
11293
+ token: id2
11294
+ }).strict();
11269
11295
  var CreativeEngineCompositionRepairSchema = z38.object({
11270
11296
  reviewId: id2,
11271
11297
  outputHash: hash,
@@ -11399,6 +11425,7 @@ var CreativeEngineStateSchema = z38.object({
11399
11425
  token: id2
11400
11426
  }).strict().optional(),
11401
11427
  repairAuthorContractRetry: CreativeEngineRepairAuthorContractRetrySchema.optional(),
11428
+ replanAuthorContractRetry: CreativeEngineReplanAuthorContractRetrySchema.optional(),
11402
11429
  final: CreativeEngineFinalSchema.optional()
11403
11430
  }).strict().superRefine((state, ctx) => {
11404
11431
  const repairAuthorContractRetry = state.repairAuthorContractRetry;
@@ -11557,6 +11584,13 @@ var CreativeEngineEventSchema = z38.discriminatedUnion("type", [
11557
11584
  context: CreativeEngineContextBindingSchema,
11558
11585
  token: id2
11559
11586
  }).strict(),
11587
+ z38.object({
11588
+ type: z38.literal("replan_author_contract_retry_requested"),
11589
+ failedOperationId: id2,
11590
+ planHash: hash,
11591
+ context: CreativeEngineContextBindingSchema,
11592
+ token: id2
11593
+ }).strict(),
11560
11594
  z38.object({
11561
11595
  type: z38.literal("repair_author_contract_retry_requested"),
11562
11596
  failedOperationId: id2,
@@ -11804,10 +11838,10 @@ import { z as z40 } from "zod";
11804
11838
  var MAX_BILLING_DECIMAL_PLACES = 10;
11805
11839
  function countDecimalPlaces(value) {
11806
11840
  if (!Number.isFinite(value)) return MAX_BILLING_DECIMAL_PLACES + 1;
11807
- const normalized = value.toString();
11841
+ let normalized = value.toString();
11808
11842
  if (/e/i.test(normalized)) {
11809
- const fixed = value.toFixed(MAX_BILLING_DECIMAL_PLACES);
11810
- return countDecimalPlaces(Number(fixed));
11843
+ if (Math.abs(value) >= 1e21) return 0;
11844
+ normalized = value.toFixed(MAX_BILLING_DECIMAL_PLACES);
11811
11845
  }
11812
11846
  const parts = normalized.split(".");
11813
11847
  if (parts.length < 2) return 0;
@@ -14350,6 +14384,8 @@ var CostEstimationRequest = z50.discriminatedUnion("type", [
14350
14384
  var CostEstimationResponse = z50.object({
14351
14385
  /** Server confirms the range includes the first generated classic-landing GIF. */
14352
14386
  includesInitialLandingGif: z50.boolean().optional(),
14387
+ /** The initial-GIF choice is offerable for this config (code landings only quote it after explicit consent). */
14388
+ initialLandingGifOffered: z50.boolean().optional(),
14353
14389
  estimatedCostCents: z50.number().nonnegative(),
14354
14390
  estimatedCostCredits: z50.number().int().nonnegative(),
14355
14391
  /** Scan-only midpoint; excludes generating a winner replica. Not an admission limit. */
@@ -22952,7 +22988,8 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
22952
22988
  // MCP 8.10.0: storyteller family blocked (BLOCKED_NARRATIVE_STYLES).
22953
22989
  // MCP 9.1.0: combine current animated-video controls and initial GIF choice.
22954
22990
  // MCP 12.4.0: landingStrategy narrowed to classic + social_proof.
22955
- "5a6dd48977702dbb92a315fb668054f13918fd1cfae5056de82e94144e6f5804",
22991
+ // MCP 12.5.0: pain_solution restored to landingStrategy.
22992
+ "68a740d97238e720000c16db56ae5748ceb560e342f8fbfe605c954e6284fda7",
22956
22993
  "credit_consuming",
22957
22994
  "creative",
22958
22995
  [
@@ -23398,7 +23435,8 @@ var PRODUCTMAKER_CAPABILITY_REGISTRY = deepFreeze([
23398
23435
  defineCapability(
23399
23436
  "generate_landing",
23400
23437
  // MCP 12.4.0: guided landingStrategy narrowed to classic + social_proof.
23401
- "6db8df9db5410d0abe0f44da7027af4cc40aff37ef6e66e82164edbd889eeb63",
23438
+ // MCP 12.5.0: pain_solution restored to guided landingStrategy.
23439
+ "16c4e1ea0cd12ee3367e06b4f73a177c94e16ab7d5323d971d577301ba2c7b70",
23402
23440
  "credit_consuming",
23403
23441
  "creative",
23404
23442
  [
@@ -29276,7 +29314,7 @@ var ApiClient = class {
29276
29314
  };
29277
29315
 
29278
29316
  // src/index.ts
29279
- var MCP_VERSION = "12.4.1";
29317
+ var MCP_VERSION = "12.5.0";
29280
29318
 
29281
29319
  // src/meta-upload-app.ts
29282
29320
  import { readFileSync } from "fs";
@@ -33295,7 +33333,7 @@ var CreateProductTaskInput = z137.object({
33295
33333
  creativeDirection: z137.string().max(500).optional().describe('Opcional. Direcci\xF3n creativa en texto libre (colores, mood, estilo) que aplica a los outputs de IMAGEN y LANDING (no al video \u2014 el estilo/ambiente del video se dirige con scriptNotes). M\xC1XIMA PRIORIDAD: anula marca, colores y estilo por defecto. Ej. "amarillo y azul, minimalista". M\xE1x 500 caracteres.'),
33296
33334
  headline: z137.string().max(120).optional().describe("Opcional. Titular EXACTO a renderizar. Se imprime tal cual: la IA no lo reescribe, no lo acorta y no lo traduce. Se aplica a las IM\xC1GENES y a la portada de la landing de esta task (el video no lo usa; para el video usa scriptNotes). \xDAsalo cuando el copy es de marca y no es negociable. M\xE1x 120 caracteres. Si lo omites, la IA escribe el titular."),
33297
33335
  subheadline: z137.string().max(160).optional().describe("Opcional. Subt\xEDtulo EXACTO a renderizar, misma regla que headline. Independiente: puedes fijar solo el subt\xEDtulo. M\xE1x 160 caracteres."),
33298
- landingStrategy: LandingStrategyEnum.optional().describe('Opcional. Estructura de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "classic" (Landing cl\xE1sica de ProductMaker: estructura original probada y recomendada) o "social_proof" (Landing Viral: UGC, WhatsApp, Instagram y evidencia social). Default "classic".'),
33336
+ landingStrategy: LandingStrategyEnum.optional().describe('Opcional. Estructura de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "classic" (Landing cl\xE1sica de ProductMaker: estructura original probada y recomendada) , "social_proof" (Landing Viral: UGC, WhatsApp, Instagram y evidencia social) o "pain_solution" (Problema y soluci\xF3n: dolor reconocible, demostraci\xF3n y transformaci\xF3n). Default "classic".'),
33299
33337
  landingImageFormat: LandingImageFormatEnum.default("9:16").describe('Opcional. Formato/relaci\xF3n de aspecto de las im\xE1genes de la landing cl\xE1sica cuando landing est\xE1 entre outputs: "9:16" (vertical, por defecto), "4:5" (vertical compacto para feed) o "1:1" (cuadrado). Default "9:16".')
33300
33338
  }).strict();
33301
33339
  var CreateServiceVideoInput = z137.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productmaker/mcp",
3
- "version": "12.4.1",
3
+ "version": "12.5.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "description": "ProductMaker MCP server — cost products, generate landing pages, UGC videos, and ad creatives, and publish to Shopify, Meta Ads, and TikTok Ads.",