@clipform/mcp-server 2.15.6 → 2.15.8

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.
@@ -5,7 +5,7 @@ import {
5
5
  FULL_CAPS,
6
6
  callApi,
7
7
  getSessionContext
8
- } from "./chunk-XJZKMMY2.js";
8
+ } from "./chunk-4DVA4LDZ.js";
9
9
 
10
10
  // src/lib/guides.ts
11
11
  var guidesPromise = null;
@@ -143,4 +143,4 @@ export {
143
143
  getGuideUri,
144
144
  registerResources
145
145
  };
146
- //# sourceMappingURL=chunk-R4UBAYL4.js.map
146
+ //# sourceMappingURL=chunk-5POJOTRI.js.map
@@ -3,7 +3,7 @@ import {
3
3
  WORKFLOW_TYPES,
4
4
  getDiscoveryParams,
5
5
  getSessionContextWithAuth
6
- } from "./chunk-XJZKMMY2.js";
6
+ } from "./chunk-4DVA4LDZ.js";
7
7
  import {
8
8
  __export
9
9
  } from "./chunk-G3PMV62Z.js";
@@ -4856,4 +4856,4 @@ export {
4856
4856
  getWorkflowText,
4857
4857
  registerPrompts
4858
4858
  };
4859
- //# sourceMappingURL=chunk-T3VQC2RR.js.map
4859
+ //# sourceMappingURL=chunk-AE4G2LMQ.js.map
@@ -6,7 +6,7 @@ import {
6
6
  getWorkflowText,
7
7
  objectType,
8
8
  registerPrompts
9
- } from "./chunk-T3VQC2RR.js";
9
+ } from "./chunk-AE4G2LMQ.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-R4UBAYL4.js";
18
+ } from "./chunk-5POJOTRI.js";
19
19
  import {
20
20
  ACTIVE_NODE_TYPES,
21
21
  CONTACT_FIELDS,
@@ -29,7 +29,8 @@ import {
29
29
  MCP_TOOL_TOOLSETS,
30
30
  NODE_TYPES,
31
31
  NON_COUNTABLE_TYPES,
32
- SLIDESHOW_TRANSITIONS,
32
+ SLIDESHOW_COMPOSITION_TRANSITIONS,
33
+ VIDEO_LOOK_NAMES,
33
34
  bfsOrder,
34
35
  callApi,
35
36
  capsFromToolsets,
@@ -39,7 +40,7 @@ import {
39
40
  resolveFormType,
40
41
  structuredResult,
41
42
  textResult
42
- } from "./chunk-XJZKMMY2.js";
43
+ } from "./chunk-4DVA4LDZ.js";
43
44
  import {
44
45
  getMcpAuth,
45
46
  runWithMcpTool
@@ -17922,7 +17923,20 @@ function registerUpdateFormTool(server) {
17922
17923
  updates.push(`Tags \u2192 [${tags.join(", ")}]`);
17923
17924
  updatedFields.push("tags");
17924
17925
  }
17925
- return structuredResult(`Form updated: ${updates.join(", ")}`, { form_id, updated_fields: updatedFields });
17926
+ let resultText = `Form updated: ${updates.join(", ")}`;
17927
+ if (is_live === true) {
17928
+ const meta = await callApi(`/forms/${form_id}`, { timeoutMs: 5e3 });
17929
+ const urls = meta.ok ? meta.data.urls : void 0;
17930
+ const viewerUrl = urls?.viewer;
17931
+ const responsesUrl = urls?.responses;
17932
+ if (viewerUrl) {
17933
+ resultText += `
17934
+
17935
+ Your form is live at: ${viewerUrl}
17936
+ Share this URL with respondents. View responses any time with clipform_get_results (form_id: ${form_id})${responsesUrl ? `, or in the dashboard: ${responsesUrl}` : ""}`;
17937
+ }
17938
+ }
17939
+ return structuredResult(resultText, { form_id, updated_fields: updatedFields });
17926
17940
  }
17927
17941
  );
17928
17942
  }
@@ -18810,6 +18824,7 @@ function registerAttachNodeMediaTool(server) {
18810
18824
  `);
18811
18825
  }
18812
18826
  if (successCount === 0) return errorResult(lines.join("\n"));
18827
+ lines.push("Media attached. It becomes visible to respondents after you republish with clipform_update_form (is_live: true).");
18813
18828
  return structuredResult(lines.join("\n"), { results });
18814
18829
  }
18815
18830
  );
@@ -20122,7 +20137,7 @@ ${RENDER_ATTACH_RULE}`,
20122
20137
  external_exports.object({
20123
20138
  type: external_exports.enum(["image", "video"]).describe("'image' for still images with Ken Burns effects, 'video' for video clips"),
20124
20139
  url: external_exports.string().url().describe("Media URL"),
20125
- effect: external_exports.string().optional().describe(`Ken Burns effect (image only): ${[...KEN_BURNS_EFFECTS, "random"].join(", ")}`),
20140
+ 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"),
20126
20141
  aspect_ratio: external_exports.number().positive().optional().describe("Image width/height ratio (image only). Enables auto blur-pad for landscape images."),
20127
20142
  fit: external_exports.enum(KEN_BURNS_FIT_MODES).optional().describe("Framing mode (image only). auto = cover for portrait, blur-pad for landscape."),
20128
20143
  start_from: external_exports.number().min(0).optional().describe("Start time in seconds (video only). Trims the clip."),
@@ -20133,23 +20148,24 @@ ${RENDER_ATTACH_RULE}`,
20133
20148
  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."),
20134
20149
  background_audio_volume: external_exports.number().min(0).max(1).optional().describe("Background bed volume 0-1 (default 0.15 - sits under speech)"),
20135
20150
  duration_seconds: external_exports.number().positive().optional().describe("Video duration in seconds (required if no audio_url)"),
20151
+ 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.`),
20136
20152
  random_effects: external_exports.boolean().optional().default(true).describe("Shuffle Ken Burns effects across image items (default: true)"),
20137
20153
  transition: external_exports.object({
20138
- type: external_exports.string().optional().default("fade").describe(`Transition: ${SLIDESHOW_TRANSITIONS.join(", ")}`),
20139
- duration: external_exports.number().optional().default(1).describe("Transition duration in seconds (default: 1)")
20140
- }).optional(),
20141
- style_preset: STYLE_PRESET_ENUM.optional(),
20154
+ type: external_exports.enum(SLIDESHOW_COMPOSITION_TRANSITIONS).optional().describe(`Advanced override: ${SLIDESHOW_COMPOSITION_TRANSITIONS.join(", ")} - overrides the preset look's own transition`),
20155
+ duration: external_exports.number().optional().describe("Advanced override: transition duration in seconds")
20156
+ }).optional().describe("Advanced: overrides the preset look's transition"),
20157
+ style_preset: STYLE_PRESET_ENUM.optional().describe(`Advanced override: a raw Ken Burns motion preset, overriding the preset look's own motion.`),
20142
20158
  texture: external_exports.object({
20143
20159
  type: external_exports.enum(["checker", "halftone", "scanlines"]).describe("checker = square dither mesh, halftone = dot grid, scanlines = horizontal lines"),
20144
20160
  sizePx: external_exports.number().positive().optional().describe("Pattern cell size in px (default 4)"),
20145
20161
  opacity: external_exports.number().min(0).max(1).optional().describe("Pattern darkness 0-1 (default 0.35)")
20146
- }).optional().describe("Print-style pattern overlay on image items - makes stock imagery read as designed (screen-print dither look)"),
20162
+ }).optional().describe("Advanced override: print-style pattern overlay on image items, overriding the preset look's own texture - makes stock imagery read as designed (screen-print dither look)"),
20147
20163
  duotone: external_exports.object({
20148
20164
  shadow: external_exports.string().describe("Darker tone (maps to image shadows), e.g. '#1a1633'"),
20149
20165
  highlight: external_exports.string().describe("Lighter tone (maps to image highlights), e.g. '#f5c542'"),
20150
20166
  contrast: external_exports.number().positive().optional().describe("Contrast boost before mapping (default 1.1)")
20151
- }).optional().describe("Two-tone editorial recolour on image items - desaturates then maps to a shadow->highlight palette. Pair with a halftone texture for a screen-print poster look."),
20152
- background_color: external_exports.string().optional().describe("Background color (default '#000')"),
20167
+ }).optional().describe("Advanced override: two-tone editorial recolour on image items, overriding the preset look's own duotone - desaturates then maps to a shadow->highlight palette. Pair with a halftone texture for a screen-print poster look."),
20168
+ background_color: external_exports.string().optional().describe("Advanced override: background color, overriding the preset look's own background (default '#000')"),
20153
20169
  wait: external_exports.boolean().optional().default(true).describe("true (default) blocks until the video is ready and returns its URL. false returns a job ID immediately - fire all renders first, then poll clipform_check_render. Use false whenever rendering more than one video."),
20154
20170
  node_id: external_exports.string().optional().describe("Form node to attach this render to automatically once it completes - skips the manual clipform_upload_media_asset + clipform_attach_node_media steps and republishes the form if it's currently live. Requires form_id."),
20155
20171
  form_id: external_exports.string().uuid().optional().describe("The form UUID (required when node_id is set)."),
@@ -20171,7 +20187,7 @@ ${RENDER_ATTACH_RULE}`,
20171
20187
  // node_id too (destructive/openWorld apply "even in only select modes").
20172
20188
  annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true }
20173
20189
  },
20174
- async ({ items, audio_url, background_audio_url, background_audio_volume, duration_seconds, random_effects, transition, style_preset, texture, duotone, background_color, wait, node_id, form_id, captions }) => {
20190
+ async ({ items, audio_url, background_audio_url, background_audio_volume, duration_seconds, preset, random_effects, transition, style_preset, texture, duotone, background_color, wait, node_id, form_id, captions }) => {
20175
20191
  if (node_id && !form_id) {
20176
20192
  return errorResult("form_id is required when node_id is set.");
20177
20193
  }
@@ -20190,8 +20206,14 @@ ${RENDER_ATTACH_RULE}`,
20190
20206
  background_audio_url,
20191
20207
  background_audio_volume,
20192
20208
  duration_seconds,
20209
+ // preset expands to its base transition/style/background on the
20210
+ // API side (expandVideoLook); transition/default_style/background_color
20211
+ // below are only sent when the caller actually set the advanced
20212
+ // override, so the API can tell "explicit" apart from "unset" and
20213
+ // apply the look's own base value instead (#4038).
20214
+ preset,
20193
20215
  random_effects: random_effects ?? true,
20194
- transition: transition ?? { type: "fade", duration: 1 },
20216
+ transition,
20195
20217
  default_style,
20196
20218
  background_color,
20197
20219
  workspace_id
@@ -20751,4 +20773,4 @@ export {
20751
20773
  buildInstructions,
20752
20774
  createServer
20753
20775
  };
20754
- //# sourceMappingURL=chunk-TGVK6XPX.js.map
20776
+ //# sourceMappingURL=chunk-DFR7RHPM.js.map