@productmaker/mcp 11.6.7 → 11.6.10

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
@@ -15230,6 +15230,7 @@ var clipSpecFields = {
15230
15230
  references: z77.never().optional(),
15231
15231
  voice: MotionGraphicsVoiceDirectionSchema.optional(),
15232
15232
  taggedSpeech: MotionGraphicsTaggedSpeechSchema.optional(),
15233
+ userLiteral: z77.never().optional(),
15233
15234
  shot: MotionGraphicsClipShotSchema,
15234
15235
  subject: clipSlotSchema,
15235
15236
  action: clipSlotSchema,
@@ -15299,6 +15300,7 @@ var FreeMotionGraphicsClipSpecSchema = z77.discriminatedUnion("kind", [
15299
15300
  kind: z77.literal("speaking"),
15300
15301
  speech: clipSpeechSchema,
15301
15302
  voice: MotionGraphicsVoiceDirectionSchema,
15303
+ userLiteral: z77.literal(true).optional(),
15302
15304
  taggedSpeech: MotionGraphicsTaggedSpeechSchema.optional()
15303
15305
  }).strict()
15304
15306
  ]).superRefine((clip, ctx) => {
@@ -15362,7 +15364,44 @@ var MOTION_GRAPHICS_CLIP_VOICES = [
15362
15364
  "character"
15363
15365
  ];
15364
15366
  var MotionGraphicsClipVoiceSchema = z78.enum(MOTION_GRAPHICS_CLIP_VOICES);
15367
+ var MotionGraphicsClipSpeechFitSchema = z78.object({
15368
+ status: z78.literal("revision_required"),
15369
+ measuredDurationSec: z78.number().finite().positive(),
15370
+ targetDurationSec: z78.literal(5.5),
15371
+ attempts: z78.number().int().min(1).max(3),
15372
+ maxAttempts: z78.literal(3),
15373
+ text: z78.string().min(1).max(120),
15374
+ revision: z78.number().int().min(0).max(2)
15375
+ }).strict();
15376
+ var MotionGraphicsClipSpeechPreparationSchema = z78.object({
15377
+ revision: z78.number().int().min(0).max(2),
15378
+ history: z78.array(z78.object({
15379
+ text: z78.string().min(1).max(120),
15380
+ durationSec: z78.number().finite().positive(),
15381
+ revision: z78.number().int().min(0).max(2)
15382
+ }).strict()).max(3).optional(),
15383
+ deadlineAt: z78.number().finite(),
15384
+ status: z78.enum([
15385
+ "preparing",
15386
+ "revision_required",
15387
+ "approved",
15388
+ "fallback"
15389
+ ]),
15390
+ measuredDurationSec: z78.number().finite().positive().optional(),
15391
+ audioKey: z78.string().min(1).optional(),
15392
+ words: MotionGraphicsWordListSchema.optional()
15393
+ }).strict().superRefine((preparation, ctx) => {
15394
+ if (preparation.status === "approved" && (!preparation.audioKey || !preparation.words?.length || !preparation.measuredDurationSec || preparation.measuredDurationSec > 6)) ctx.addIssue({
15395
+ code: z78.ZodIssueCode.custom,
15396
+ message: "Approved speech requires complete measured audio fitting its clip"
15397
+ });
15398
+ if (preparation.status === "revision_required" && (!preparation.audioKey || !preparation.words?.length || !preparation.measuredDurationSec || preparation.measuredDurationSec <= 6)) ctx.addIssue({
15399
+ code: z78.ZodIssueCode.custom,
15400
+ message: "A revision requires the measured overlong utterance"
15401
+ });
15402
+ });
15365
15403
  var clipStateFields = {
15404
+ speechPreparation: MotionGraphicsClipSpeechPreparationSchema.optional(),
15366
15405
  index: MotionGraphicsClipIndexSchema,
15367
15406
  /** `speaking` clips keep their audio; `broll` ones are silent. Always the spec's kind. */
15368
15407
  kind: MotionGraphicsClipKindSchema,
@@ -15801,6 +15840,13 @@ var SpeechAttemptSchema = z83.object({
15801
15840
  });
15802
15841
  var MotionGraphicsSpeechOperationSchema = z83.object({
15803
15842
  fingerprint: z83.string().regex(/^[a-f0-9]{64}$/),
15843
+ billingKey: z83.string().min(1).max(512).optional(),
15844
+ billingChars: z83.number().int().min(0).max(1e4).optional(),
15845
+ manualCostReconciliationReportedAt: z83.number().finite().optional(),
15846
+ model: z83.enum([
15847
+ "google/gemini-3-1-flash-tts",
15848
+ "google/gemini-3-8-flash-tts"
15849
+ ]).optional(),
15804
15850
  deadlineAt: z83.number().finite(),
15805
15851
  attempts: z83.array(SpeechAttemptSchema).min(1).max(MOTION_GRAPHICS_SPEECH_ATTEMPTS),
15806
15852
  audio: z83.object({
@@ -15860,10 +15906,11 @@ var MotionGraphicsLipsyncReceiptSchema = z84.record(z84.string(), z84.union([
15860
15906
  z84.record(z84.string(), receiptScalar)
15861
15907
  ]));
15862
15908
  var motionGraphicsStateSchema = z84.object({
15909
+ speechRecoveryVersion: z84.literal("v1").optional(),
15863
15910
  freeDirectionVersion: z84.literal(MOTION_GRAPHICS_FREE_DIRECTION_VERSION).optional(),
15864
15911
  videoQuality: MotionGraphicsVideoQualitySchema.optional(),
15865
15912
  videoResolution: MotionGraphicsVideoResolutionSchema.optional(),
15866
- speechOperations: z84.record(z84.string().regex(/^[a-f0-9]{64}$/), MotionGraphicsSpeechOperationSchema).refine((operations) => Object.keys(operations).length <= MOTION_GRAPHICS_VO_SEGMENTS_MAX + MOTION_GRAPHICS_LIPSYNC_MAX_CLIPS, {
15913
+ speechOperations: z84.record(z84.string().regex(/^[a-f0-9]{64}$/), MotionGraphicsSpeechOperationSchema).refine((operations) => Object.keys(operations).length <= MOTION_GRAPHICS_VO_SEGMENTS_MAX + 3 * MOTION_GRAPHICS_LIPSYNC_MAX_CLIPS, {
15867
15914
  message: "too many speech receipts"
15868
15915
  }).optional(),
15869
15916
  websiteCapture: WebsiteCaptureBindingSchema.optional(),
@@ -16016,6 +16063,7 @@ var MotionGraphicsExistingClipSchema = z85.object({
16016
16063
  }
16017
16064
  });
16018
16065
  var MotionGraphicsJobSchema = z85.object({
16066
+ speechRecoveryVersion: z85.literal("v1").optional(),
16019
16067
  freeDirectionVersion: z85.literal(MOTION_GRAPHICS_FREE_DIRECTION_VERSION).optional(),
16020
16068
  videoQuality: MotionGraphicsVideoQualitySchema.optional(),
16021
16069
  videoResolution: MotionGraphicsVideoResolutionSchema.optional(),
@@ -16232,7 +16280,8 @@ var clipStatusSpecFields = {
16232
16280
  var MotionGraphicsClipStatusSchema = z85.discriminatedUnion("status", [
16233
16281
  z85.object({
16234
16282
  ...clipStatusSpecFields,
16235
- status: z85.literal("pending")
16283
+ status: z85.literal("pending"),
16284
+ speechFit: MotionGraphicsClipSpeechFitSchema.optional()
16236
16285
  }).strict(),
16237
16286
  z85.object({
16238
16287
  ...clipStatusSpecFields,
@@ -16256,7 +16305,12 @@ var MotionGraphicsClipStatusSchema = z85.discriminatedUnion("status", [
16256
16305
  z85.object({
16257
16306
  ...clipStatusSpecFields,
16258
16307
  status: z85.literal("skipped"),
16259
- reason: MotionGraphicsClipSkipReasonSchema
16308
+ reason: MotionGraphicsClipSkipReasonSchema,
16309
+ fallbackAudio: z85.object({
16310
+ url: z85.string().url(),
16311
+ words: MotionGraphicsWordListSchema,
16312
+ durationSec: z85.number().finite().positive()
16313
+ }).strict().optional()
16260
16314
  }).strict()
16261
16315
  ]).superRefine((clip, ctx) => {
16262
16316
  if (clip.kind !== void 0 && clip.spec !== void 0 && clip.spec.kind !== clip.kind) {
@@ -25040,7 +25094,7 @@ var ApiClient = class {
25040
25094
  };
25041
25095
 
25042
25096
  // src/index.ts
25043
- var MCP_VERSION = "11.6.7";
25097
+ var MCP_VERSION = "11.6.10";
25044
25098
 
25045
25099
  // src/meta-upload-app.ts
25046
25100
  import { readFileSync } from "fs";
package/dist/stdio.js CHANGED
@@ -15005,6 +15005,7 @@ var clipSpecFields = {
15005
15005
  references: z77.never().optional(),
15006
15006
  voice: MotionGraphicsVoiceDirectionSchema.optional(),
15007
15007
  taggedSpeech: MotionGraphicsTaggedSpeechSchema.optional(),
15008
+ userLiteral: z77.never().optional(),
15008
15009
  shot: MotionGraphicsClipShotSchema,
15009
15010
  subject: clipSlotSchema,
15010
15011
  action: clipSlotSchema,
@@ -15074,6 +15075,7 @@ var FreeMotionGraphicsClipSpecSchema = z77.discriminatedUnion("kind", [
15074
15075
  kind: z77.literal("speaking"),
15075
15076
  speech: clipSpeechSchema,
15076
15077
  voice: MotionGraphicsVoiceDirectionSchema,
15078
+ userLiteral: z77.literal(true).optional(),
15077
15079
  taggedSpeech: MotionGraphicsTaggedSpeechSchema.optional()
15078
15080
  }).strict()
15079
15081
  ]).superRefine((clip, ctx) => {
@@ -15137,7 +15139,44 @@ var MOTION_GRAPHICS_CLIP_VOICES = [
15137
15139
  "character"
15138
15140
  ];
15139
15141
  var MotionGraphicsClipVoiceSchema = z78.enum(MOTION_GRAPHICS_CLIP_VOICES);
15142
+ var MotionGraphicsClipSpeechFitSchema = z78.object({
15143
+ status: z78.literal("revision_required"),
15144
+ measuredDurationSec: z78.number().finite().positive(),
15145
+ targetDurationSec: z78.literal(5.5),
15146
+ attempts: z78.number().int().min(1).max(3),
15147
+ maxAttempts: z78.literal(3),
15148
+ text: z78.string().min(1).max(120),
15149
+ revision: z78.number().int().min(0).max(2)
15150
+ }).strict();
15151
+ var MotionGraphicsClipSpeechPreparationSchema = z78.object({
15152
+ revision: z78.number().int().min(0).max(2),
15153
+ history: z78.array(z78.object({
15154
+ text: z78.string().min(1).max(120),
15155
+ durationSec: z78.number().finite().positive(),
15156
+ revision: z78.number().int().min(0).max(2)
15157
+ }).strict()).max(3).optional(),
15158
+ deadlineAt: z78.number().finite(),
15159
+ status: z78.enum([
15160
+ "preparing",
15161
+ "revision_required",
15162
+ "approved",
15163
+ "fallback"
15164
+ ]),
15165
+ measuredDurationSec: z78.number().finite().positive().optional(),
15166
+ audioKey: z78.string().min(1).optional(),
15167
+ words: MotionGraphicsWordListSchema.optional()
15168
+ }).strict().superRefine((preparation, ctx) => {
15169
+ if (preparation.status === "approved" && (!preparation.audioKey || !preparation.words?.length || !preparation.measuredDurationSec || preparation.measuredDurationSec > 6)) ctx.addIssue({
15170
+ code: z78.ZodIssueCode.custom,
15171
+ message: "Approved speech requires complete measured audio fitting its clip"
15172
+ });
15173
+ if (preparation.status === "revision_required" && (!preparation.audioKey || !preparation.words?.length || !preparation.measuredDurationSec || preparation.measuredDurationSec <= 6)) ctx.addIssue({
15174
+ code: z78.ZodIssueCode.custom,
15175
+ message: "A revision requires the measured overlong utterance"
15176
+ });
15177
+ });
15140
15178
  var clipStateFields = {
15179
+ speechPreparation: MotionGraphicsClipSpeechPreparationSchema.optional(),
15141
15180
  index: MotionGraphicsClipIndexSchema,
15142
15181
  /** `speaking` clips keep their audio; `broll` ones are silent. Always the spec's kind. */
15143
15182
  kind: MotionGraphicsClipKindSchema,
@@ -15576,6 +15615,13 @@ var SpeechAttemptSchema = z83.object({
15576
15615
  });
15577
15616
  var MotionGraphicsSpeechOperationSchema = z83.object({
15578
15617
  fingerprint: z83.string().regex(/^[a-f0-9]{64}$/),
15618
+ billingKey: z83.string().min(1).max(512).optional(),
15619
+ billingChars: z83.number().int().min(0).max(1e4).optional(),
15620
+ manualCostReconciliationReportedAt: z83.number().finite().optional(),
15621
+ model: z83.enum([
15622
+ "google/gemini-3-1-flash-tts",
15623
+ "google/gemini-3-8-flash-tts"
15624
+ ]).optional(),
15579
15625
  deadlineAt: z83.number().finite(),
15580
15626
  attempts: z83.array(SpeechAttemptSchema).min(1).max(MOTION_GRAPHICS_SPEECH_ATTEMPTS),
15581
15627
  audio: z83.object({
@@ -15635,10 +15681,11 @@ var MotionGraphicsLipsyncReceiptSchema = z84.record(z84.string(), z84.union([
15635
15681
  z84.record(z84.string(), receiptScalar)
15636
15682
  ]));
15637
15683
  var motionGraphicsStateSchema = z84.object({
15684
+ speechRecoveryVersion: z84.literal("v1").optional(),
15638
15685
  freeDirectionVersion: z84.literal(MOTION_GRAPHICS_FREE_DIRECTION_VERSION).optional(),
15639
15686
  videoQuality: MotionGraphicsVideoQualitySchema.optional(),
15640
15687
  videoResolution: MotionGraphicsVideoResolutionSchema.optional(),
15641
- speechOperations: z84.record(z84.string().regex(/^[a-f0-9]{64}$/), MotionGraphicsSpeechOperationSchema).refine((operations) => Object.keys(operations).length <= MOTION_GRAPHICS_VO_SEGMENTS_MAX + MOTION_GRAPHICS_LIPSYNC_MAX_CLIPS, {
15688
+ speechOperations: z84.record(z84.string().regex(/^[a-f0-9]{64}$/), MotionGraphicsSpeechOperationSchema).refine((operations) => Object.keys(operations).length <= MOTION_GRAPHICS_VO_SEGMENTS_MAX + 3 * MOTION_GRAPHICS_LIPSYNC_MAX_CLIPS, {
15642
15689
  message: "too many speech receipts"
15643
15690
  }).optional(),
15644
15691
  websiteCapture: WebsiteCaptureBindingSchema.optional(),
@@ -15791,6 +15838,7 @@ var MotionGraphicsExistingClipSchema = z85.object({
15791
15838
  }
15792
15839
  });
15793
15840
  var MotionGraphicsJobSchema = z85.object({
15841
+ speechRecoveryVersion: z85.literal("v1").optional(),
15794
15842
  freeDirectionVersion: z85.literal(MOTION_GRAPHICS_FREE_DIRECTION_VERSION).optional(),
15795
15843
  videoQuality: MotionGraphicsVideoQualitySchema.optional(),
15796
15844
  videoResolution: MotionGraphicsVideoResolutionSchema.optional(),
@@ -16007,7 +16055,8 @@ var clipStatusSpecFields = {
16007
16055
  var MotionGraphicsClipStatusSchema = z85.discriminatedUnion("status", [
16008
16056
  z85.object({
16009
16057
  ...clipStatusSpecFields,
16010
- status: z85.literal("pending")
16058
+ status: z85.literal("pending"),
16059
+ speechFit: MotionGraphicsClipSpeechFitSchema.optional()
16011
16060
  }).strict(),
16012
16061
  z85.object({
16013
16062
  ...clipStatusSpecFields,
@@ -16031,7 +16080,12 @@ var MotionGraphicsClipStatusSchema = z85.discriminatedUnion("status", [
16031
16080
  z85.object({
16032
16081
  ...clipStatusSpecFields,
16033
16082
  status: z85.literal("skipped"),
16034
- reason: MotionGraphicsClipSkipReasonSchema
16083
+ reason: MotionGraphicsClipSkipReasonSchema,
16084
+ fallbackAudio: z85.object({
16085
+ url: z85.string().url(),
16086
+ words: MotionGraphicsWordListSchema,
16087
+ durationSec: z85.number().finite().positive()
16088
+ }).strict().optional()
16035
16089
  }).strict()
16036
16090
  ]).superRefine((clip, ctx) => {
16037
16091
  if (clip.kind !== void 0 && clip.spec !== void 0 && clip.spec.kind !== clip.kind) {
@@ -23369,7 +23423,7 @@ var ApiClient = class {
23369
23423
  };
23370
23424
 
23371
23425
  // src/index.ts
23372
- var MCP_VERSION = "11.6.7";
23426
+ var MCP_VERSION = "11.6.10";
23373
23427
 
23374
23428
  // src/meta-upload-app.ts
23375
23429
  import { readFileSync } from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@productmaker/mcp",
3
- "version": "11.6.7",
3
+ "version": "11.6.10",
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.",
@@ -67,8 +67,8 @@
67
67
  "typescript": "^7.0.2",
68
68
  "vitest": "5.0.3",
69
69
  "@packages/product-economics": "0.1.0",
70
- "@packages/utils": "0.1.0",
71
- "@packages/types": "0.1.0"
70
+ "@packages/types": "0.1.0",
71
+ "@packages/utils": "0.1.0"
72
72
  },
73
73
  "publishConfig": {
74
74
  "access": "public"