@clipform/mcp-server 1.31.0 → 1.33.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.
@@ -2,7 +2,7 @@ import {
2
2
  WORKFLOW_TYPES,
3
3
  getDiscoveryParams,
4
4
  getSessionContextWithAuth
5
- } from "./chunk-NHFRYNJ3.js";
5
+ } from "./chunk-KWEBCAPF.js";
6
6
  import {
7
7
  __export
8
8
  } from "./chunk-HCZI2UJ5.js";
@@ -4060,7 +4060,7 @@ function coercePromptArgs(args) {
4060
4060
  needs_contact: args.needs_contact != null ? args.needs_contact === "true" : void 0
4061
4061
  };
4062
4062
  }
4063
- function buildDiscovery(params, args, authMode = "oauth") {
4063
+ function buildDiscovery(params, args, authMode = "authenticated") {
4064
4064
  const effectiveParams = authMode === "anonymous" ? params.filter((p) => p.mode === "all") : [...params];
4065
4065
  const missing = effectiveParams.filter((p) => args[p.key] == null);
4066
4066
  if (missing.length === 0) return "";
@@ -4097,7 +4097,7 @@ function resourceLink(name, uri, title) {
4097
4097
  }
4098
4098
  };
4099
4099
  }
4100
- function quizWorkflow(args, sessionContext, authMode = "oauth") {
4100
+ function quizWorkflow(args, sessionContext, authMode = "authenticated") {
4101
4101
  const topic = args.topic ? ` about "${args.topic}"` : "";
4102
4102
  const count = args.question_count ?? 8;
4103
4103
  const discovery = buildDiscovery(getDiscoveryParams("quiz", void 0, authMode === "anonymous" ? "demo" : "full"), args, authMode);
@@ -4119,15 +4119,15 @@ function quizWorkflow(args, sessionContext, authMode = "oauth") {
4119
4119
  - tags: one format (quiz/survey/interview/feedback/lead-gen), one genre (trivia/personality/nps/poll/testimonial), and 2-3 topic words
4120
4120
  4. **Generate narration** with clipform_generate_tts - batch ALL questions in a single call (pass an array of items). Tease the question - do NOT reveal the answer or read options aloud. Keep each narration 5-15 seconds.
4121
4121
  5. **Build video** for each question:
4122
- - clipform_search_media (kind: "image") - 3 images per question
4123
- - clipform_generate_video - creates Ken Burns video synced to audio
4124
- 6. **Attach media** with clipform_upload_node_media. Include captions, set show_captions: true.
4122
+ - clipform_search_media (kind: "image") - 3 images per question, batch all queries in one call
4123
+ - clipform_generate_video with wait: false per question - fires all renders in parallel - then collect URLs with clipform_check_render
4124
+ 6. **Attach media** with clipform_upload_node_media (batch all uploads in one call). Include captions, set show_captions: true.
4125
4125
  7. **Publish** with clipform_update_form
4126
4126
  8. **Log** with clipform_log_generation (sources, images, attributions)
4127
4127
 
4128
4128
  > **Text-only override:** If the user explicitly asked for text-only (no video), skip steps 5-6 (video production and media attachment). Still generate narration in step 4.`;
4129
4129
  }
4130
- function personalityQuizWorkflow(args, sessionContext, authMode = "oauth") {
4130
+ function personalityQuizWorkflow(args, sessionContext, authMode = "authenticated") {
4131
4131
  const topic = args.topic ? ` - "${args.topic}"` : "";
4132
4132
  const count = args.question_count ?? 8;
4133
4133
  const discovery = buildDiscovery(getDiscoveryParams("quiz", "personality", authMode === "anonymous" ? "demo" : "full"), args, authMode);
@@ -4160,7 +4160,7 @@ There are NO correct answers. Each option should feel equally valid - the quiz i
4160
4160
  6. **Publish** with clipform_update_form
4161
4161
  7. **Log** with clipform_log_generation`;
4162
4162
  }
4163
- function comprehensionQuizWorkflow(args, sessionContext, authMode = "oauth") {
4163
+ function comprehensionQuizWorkflow(args, sessionContext, authMode = "authenticated") {
4164
4164
  const count = args.question_count ?? 8;
4165
4165
  const audienceLabel = args.audience ? ` (${args.audience})` : "";
4166
4166
  const discovery = buildDiscovery(getDiscoveryParams("quiz", "comprehension", authMode === "anonymous" ? "demo" : "full"), args, authMode);
@@ -4192,9 +4192,9 @@ function comprehensionQuizWorkflow(args, sessionContext, authMode = "oauth") {
4192
4192
  - tags: ["quiz", "comprehension", "youtube"] + 2-3 topic words from the video
4193
4193
  6. **Generate narration** with clipform_generate_tts - batch ALL questions in a single call. Reference the video naturally: "If you watched closely, you'll know this one..." Keep each narration 5-10 seconds.
4194
4194
  7. **Build video** for each question:
4195
- - clipform_search_media (kind: "image") - 3 images per question
4196
- - clipform_generate_video - Ken Burns video synced to audio
4197
- 8. **Attach media** with clipform_upload_node_media. Include captions, set show_captions: true.
4195
+ - clipform_search_media (kind: "image") - 3 images per question, batch all queries in one call
4196
+ - clipform_generate_video with wait: false per question - fires all renders in parallel - then collect URLs with clipform_check_render
4197
+ 8. **Attach media** with clipform_upload_node_media (batch all uploads in one call). Include captions, set show_captions: true.
4198
4198
  9. **Publish** with clipform_update_form
4199
4199
  10. **Log** with clipform_log_generation - include the YouTube URL, video title, and channel as sources
4200
4200
 
@@ -4212,7 +4212,7 @@ Wrong answers should sound right to someone who didn't watch but googled the top
4212
4212
 
4213
4213
  > **Text-only override:** If the user explicitly asked for text-only (no video), skip steps 7-8 (video production and media attachment). Still generate narration in step 6.`;
4214
4214
  }
4215
- function interviewWorkflow(args, sessionContext, authMode = "oauth") {
4215
+ function interviewWorkflow(args, sessionContext, authMode = "authenticated") {
4216
4216
  const purpose = args.purpose ?? "responses";
4217
4217
  const format = args.response_format ?? "all";
4218
4218
  const consent = args.needs_consent ?? true;
@@ -4235,7 +4235,7 @@ function interviewWorkflow(args, sessionContext, authMode = "oauth") {
4235
4235
  10. **Tag the form** - pass tags: one format (quiz/survey/interview/feedback/lead-gen), one genre (trivia/personality/nps/poll/testimonial), and 2-3 topic words
4236
4236
  11. **Log** with clipform_log_generation`;
4237
4237
  }
4238
- function surveyWorkflow(args, sessionContext, authMode = "oauth") {
4238
+ function surveyWorkflow(args, sessionContext, authMode = "authenticated") {
4239
4239
  const topic = args.topic ? ` for ${args.topic}` : "";
4240
4240
  const anonymous = args.anonymous ?? true;
4241
4241
  const discovery = buildDiscovery(getDiscoveryParams("survey", void 0, authMode === "anonymous" ? "demo" : "full"), args, authMode);
@@ -4259,12 +4259,12 @@ function surveyWorkflow(args, sessionContext, authMode = "oauth") {
4259
4259
 
4260
4260
  ## Key rule: 5 questions max. Every extra question costs completions.`;
4261
4261
  }
4262
- function funnelWorkflow(_args, sessionContext, _authMode = "oauth") {
4262
+ function funnelWorkflow(_args, sessionContext, _authMode = "authenticated") {
4263
4263
  return `${sessionContext ? sessionContext + "\n\n" : ""}Funnel capabilities with conditional routing and branching logic are planned but not yet available.
4264
4264
 
4265
4265
  In the meantime, you can build a simple linear qualification form using the survey or quiz workflow. Use the create-survey or create-quiz prompt instead.`;
4266
4266
  }
4267
- function testimonialWorkflow(args, sessionContext, authMode = "oauth") {
4267
+ function testimonialWorkflow(args, sessionContext, authMode = "authenticated") {
4268
4268
  const useCase = args.use_case ?? "customer stories";
4269
4269
  const discovery = buildDiscovery(getDiscoveryParams("testimonial", void 0, authMode === "anonymous" ? "demo" : "full"), args, authMode);
4270
4270
  return `${sessionContext ? sessionContext + "\n\n" : ""}${discovery}Here's how to build a testimonial collection form for ${useCase} with Clipform. Read the attached testimonial guide for craft knowledge on storytelling prompts and making respondents comfortable.
@@ -4292,7 +4292,7 @@ function testimonialWorkflow(args, sessionContext, authMode = "oauth") {
4292
4292
 
4293
4293
  > **Text-only override:** If the user explicitly asked for text-only (no video), skip steps 6-7 (narration and video production).`;
4294
4294
  }
4295
- function applicationWorkflow(args, sessionContext, authMode = "oauth") {
4295
+ function applicationWorkflow(args, sessionContext, authMode = "authenticated") {
4296
4296
  const role = args.role ?? "an application";
4297
4297
  const discovery = buildDiscovery(getDiscoveryParams("application", void 0, authMode === "anonymous" ? "demo" : "full"), args, authMode);
4298
4298
  return `${sessionContext ? sessionContext + "\n\n" : ""}${discovery}Here's how to build ${role} form with Clipform. Read the attached application guide for craft knowledge on structuring multi-section applications.
@@ -4315,7 +4315,7 @@ function applicationWorkflow(args, sessionContext, authMode = "oauth") {
4315
4315
  10. **Tag the form** - pass tags: format "application", genre "screening", and 2-3 topic words
4316
4316
  11. **Log** with clipform_log_generation`;
4317
4317
  }
4318
- function bookingWorkflow(args, sessionContext, authMode = "oauth") {
4318
+ function bookingWorkflow(args, sessionContext, authMode = "authenticated") {
4319
4319
  const eventName = args.event_name ?? "an event";
4320
4320
  const eventType = args.event_type ?? "event";
4321
4321
  const discovery = buildDiscovery(getDiscoveryParams("booking", void 0, authMode === "anonymous" ? "demo" : "full"), args, authMode);
@@ -4659,4 +4659,4 @@ export {
4659
4659
  getWorkflowText,
4660
4660
  registerPrompts
4661
4661
  };
4662
- //# sourceMappingURL=chunk-ELO7KCMZ.js.map
4662
+ //# sourceMappingURL=chunk-SY7YZPSC.js.map