@clipform/mcp-server 2.15.10 → 2.15.12

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.
@@ -6,7 +6,7 @@ import {
6
6
  getWorkflowText,
7
7
  objectType,
8
8
  registerPrompts
9
- } from "./chunk-SKNKSZOA.js";
9
+ } from "./chunk-PCRTQ4DJ.js";
10
10
  import {
11
11
  GUIDE_TYPES,
12
12
  QUIZ_VARIANTS,
@@ -15,7 +15,7 @@ import {
15
15
  getGuideUri,
16
16
  guideFallbackText,
17
17
  registerResources
18
- } from "./chunk-ORZYVIW3.js";
18
+ } from "./chunk-F3MU6JRT.js";
19
19
  import {
20
20
  ACTIVE_NODE_TYPES,
21
21
  CONTACT_FIELDS,
@@ -40,7 +40,7 @@ import {
40
40
  resolveFormType,
41
41
  structuredResult,
42
42
  textResult
43
- } from "./chunk-VLI2LYIB.js";
43
+ } from "./chunk-CW6LYA3K.js";
44
44
  import {
45
45
  getMcpAuth,
46
46
  runWithMcpTool
@@ -17315,7 +17315,13 @@ Example: A form that asks a question, collects contact info, then finishes:
17315
17315
  workspace_id: workspaceId,
17316
17316
  nodes,
17317
17317
  ...Object.keys(settings).length > 0 ? { settings } : {}
17318
- }
17318
+ },
17319
+ // The batch build (createFormFromNodes) does sequential node inserts
17320
+ // server-side - documented at ~62s for 50 nodes (#4070) - well past
17321
+ // callApi's 30s default. A fixed ceiling clears that worst case with
17322
+ // margin; the /me and /forms GET pre-flight checks above stay on the
17323
+ // fast default.
17324
+ timeoutMs: 12e4
17319
17325
  });
17320
17326
  if (!createResult.ok) {
17321
17327
  return errorResult(`Form NOT created (nothing was saved): ${createResult.error}`);
@@ -19173,7 +19179,9 @@ Pass one item or many (max 10) - multiple items run in parallel. Returns audio_u
19173
19179
  items.map(
19174
19180
  (item) => callApi("/internal/tts", {
19175
19181
  body: { text: item.text, voice: item.voice, tone: item.tone, workspace_id },
19176
- timeoutMs: 45e3
19182
+ // Synthesize + audio upload + caption store (#4070) occasionally
19183
+ // exceeds 45s; 90s clears the real tail with margin.
19184
+ timeoutMs: 9e4
19177
19185
  })
19178
19186
  )
19179
19187
  );
@@ -20136,6 +20144,9 @@ function registerListAssetsTool(server) {
20136
20144
  }
20137
20145
 
20138
20146
  // src/tools/generate-video.ts
20147
+ var httpUrl = () => external_exports.string().url().refine((v) => /^https?:\/\//i.test(v), {
20148
+ message: "URL must start with http:// or https://"
20149
+ });
20139
20150
  function registerGenerateVideoTool(server) {
20140
20151
  server.registerTool(
20141
20152
  "clipform_generate_video",
@@ -20154,7 +20165,7 @@ ${RENDER_ATTACH_RULE}`,
20154
20165
  items: external_exports.array(
20155
20166
  external_exports.object({
20156
20167
  type: external_exports.enum(["image", "video"]).describe("'image' for still images with Ken Burns effects, 'video' for video clips"),
20157
- url: external_exports.string().url().describe("Media URL"),
20168
+ url: httpUrl().describe("Media URL"),
20158
20169
  effect: external_exports.enum([...KEN_BURNS_EFFECTS, "random"]).optional().describe("Advanced override: a specific Ken Burns effect (image only), overriding the preset look's own effect choice"),
20159
20170
  aspect_ratio: external_exports.number().positive().optional().describe("Image width/height ratio (image only). Enables auto blur-pad for landscape images."),
20160
20171
  fit: external_exports.enum(KEN_BURNS_FIT_MODES).optional().describe("Framing mode (image only). auto = cover for portrait, blur-pad for landscape."),
@@ -20162,8 +20173,8 @@ ${RENDER_ATTACH_RULE}`,
20162
20173
  volume: external_exports.number().min(0).max(1).optional().describe("Clip audio volume 0-1 (video only, default 0 = muted)")
20163
20174
  })
20164
20175
  ).min(1).max(20).describe("Media items (images, video clips, or a mix)"),
20165
- audio_url: external_exports.string().url().optional().describe("Audio track URL. Video duration matches audio duration."),
20166
- background_audio_url: external_exports.string().url().optional().describe("Ambience/music bed under the narration (crowd noise, room tone). Loops to fill the video. Find tracks with clipform_search_music."),
20176
+ audio_url: httpUrl().optional().describe("Audio track URL. Video duration matches audio duration."),
20177
+ background_audio_url: httpUrl().optional().describe("Ambience/music bed under the narration (crowd noise, room tone). Loops to fill the video. Find tracks with clipform_search_music."),
20167
20178
  background_audio_volume: external_exports.number().min(0).max(1).optional().describe("Background bed volume 0-1 (default 0.15 - sits under speech)"),
20168
20179
  duration_seconds: external_exports.number().positive().optional().describe("Video duration in seconds (required if no audio_url)"),
20169
20180
  preset: external_exports.enum(VIDEO_LOOK_NAMES).optional().default("clean").describe(`Named look driving transition + motion + colour treatment together (default: 'clean'). One of: ${VIDEO_LOOK_NAMES.join(", ")}. The advanced fields below (transition, style_preset, texture, duotone, background_color, per-item effect) override individual pieces of the chosen look when set.`),
@@ -20792,4 +20803,4 @@ export {
20792
20803
  buildInstructions,
20793
20804
  createServer
20794
20805
  };
20795
- //# sourceMappingURL=chunk-IP7263ND.js.map
20806
+ //# sourceMappingURL=chunk-2ONI6XP5.js.map