@clipform/mcp-server 1.44.1 → 1.44.2
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/README.md +0 -7
- package/dist/{chunk-VW2HF4TZ.js → chunk-MIH452WS.js} +3 -3
- package/dist/{chunk-VW2HF4TZ.js.map → chunk-MIH452WS.js.map} +1 -1
- package/dist/{chunk-T6B4O3O7.js → chunk-VTRO7ZC3.js} +32 -28
- package/dist/{chunk-T6B4O3O7.js.map → chunk-VTRO7ZC3.js.map} +1 -1
- package/dist/index.js +2 -2
- package/dist/prompts.js +1 -1
- package/dist/server.js +2 -2
- package/package.json +1 -1
|
@@ -4097,6 +4097,10 @@ function resourceLink(name, uri, title) {
|
|
|
4097
4097
|
}
|
|
4098
4098
|
};
|
|
4099
4099
|
}
|
|
4100
|
+
var BUILD_ONCE_STEP = "**Build the whole form in ONE clipform_create_form call** - pass nodes, settings, and tags together; do NOT create an empty form and add nodes one by one:";
|
|
4101
|
+
var TAGS_LINE = "- tags: one format (quiz/survey/interview/feedback/lead-gen), one genre (trivia/personality/nps/poll/testimonial), and 2-3 topic words";
|
|
4102
|
+
var ATTACH_MEDIA_STEP = "**Attach media** with clipform_upload_node_media (batch all uploads in one call). Include captions, set show_captions: true and fit_media: true (generated renders must not be cropped).";
|
|
4103
|
+
var REPUBLISH_STEP = "**Republish** with clipform_update_form (is_live: true) - forms are live from creation, but media and edits added since are only visible in the live form after republishing. Never skip this when you attached anything.";
|
|
4100
4104
|
function quizWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
4101
4105
|
const topic = args.topic ? ` about "${args.topic}"` : "";
|
|
4102
4106
|
const count = args.question_count ?? 8;
|
|
@@ -4107,7 +4111,7 @@ function quizWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4107
4111
|
|
|
4108
4112
|
1. **Research** the topic - find surprising facts, common misconceptions, myth-busters
|
|
4109
4113
|
2. **Write questions** - follow the difficulty curve (easy start, hard middle, satisfying end). Target ${count} questions.
|
|
4110
|
-
3.
|
|
4114
|
+
3. ${BUILD_ONCE_STEP}
|
|
4111
4115
|
- Settings: show_step_counter: true, disable_back_navigation: true
|
|
4112
4116
|
- One choice node per question: config { choice: { show_answer_feedback: true }, randomise_options: true }, options with score: 1 on the correct answer and score: 0 on 3-4 plausible wrong ones. The viewer shuffles options at render time, so list them in any order. Scored options enable correct-answer marking automatically.
|
|
4113
4117
|
- Final end_screen node - EVERY quiz must have:
|
|
@@ -4116,13 +4120,13 @@ function quizWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4116
4120
|
- cta_type: "restart", cta_text: a short challenge like "Beat your score?" or "Try again?"
|
|
4117
4121
|
- title and message that fit the quiz's voice - short, punchy, and specific to the topic (not generic "Good job!"). Example: title: "Well played!", message: "Share your score and challenge a friend."
|
|
4118
4122
|
- NOTE: Personalised messages per score tier (score_ranges) are coming soon. For now, write one great end screen message that works for all scores.
|
|
4119
|
-
|
|
4123
|
+
${TAGS_LINE}
|
|
4120
4124
|
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
|
-
5. **Build video** for each question:
|
|
4122
|
-
- clipform_search_media (kind: "image"
|
|
4123
|
-
-
|
|
4124
|
-
6.
|
|
4125
|
-
7.
|
|
4125
|
+
5. **Build video** for each question - pick per question; mixing treatments across one quiz is fine:
|
|
4126
|
+
- Default - narrated slideshow: clipform_search_media (kind: "image", 3 images per question, batch all queries in one call), then clipform_generate_video with wait: false per question - fires all renders in parallel - then collect URLs with clipform_check_render.
|
|
4127
|
+
- Designed visual - when a composition fits the question or the user asks for one (e.g. a grid reveal): clipform_list_compositions to see what's available, then clipform_render_composition with wait: false per clip. Compositions take narration via sound.narration.
|
|
4128
|
+
6. ${ATTACH_MEDIA_STEP}
|
|
4129
|
+
7. ${REPUBLISH_STEP}
|
|
4126
4130
|
8. **Log** with clipform_log_generation (sources, images, attributions)
|
|
4127
4131
|
|
|
4128
4132
|
> **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.`;
|
|
@@ -4143,7 +4147,7 @@ There are NO correct answers. Each option should feel equally valid - the quiz i
|
|
|
4143
4147
|
|
|
4144
4148
|
1. **Define 3-5 outcome categories** conceptually - these guide your question design even though automated scoring is not yet available.
|
|
4145
4149
|
2. **Write questions** - each question should feel revealing but fun. Target ${count} questions.
|
|
4146
|
-
3.
|
|
4150
|
+
3. ${BUILD_ONCE_STEP}
|
|
4147
4151
|
- Settings: show_step_counter: true, disable_back_navigation: true
|
|
4148
4152
|
- One choice node per question: config { choice: { show_answer_feedback: false } } (no right/wrong!)
|
|
4149
4153
|
- Do NOT set randomise_options (option order matters for personality quizzes - lead with the most appealing)
|
|
@@ -4154,10 +4158,10 @@ There are NO correct answers. Each option should feel equally valid - the quiz i
|
|
|
4154
4158
|
- cta_type: "restart", cta_text: "Find out again?" or "Take it again?"
|
|
4155
4159
|
- Write a title and message that feel personal and shareable. Example: title: "Thanks for playing!", message: "Share this quiz with friends and compare your answers."
|
|
4156
4160
|
- NOTE: Automated result screens per category (scoring_results) are coming soon. For now, write one engaging end screen.
|
|
4157
|
-
|
|
4161
|
+
${TAGS_LINE}
|
|
4158
4162
|
4. **Generate narration** with clipform_generate_tts - batch ALL questions in a single call. Conversational, reflective tone. "What does this say about you?" not "Do you know the answer?"
|
|
4159
4163
|
5. **Build video** + **attach media** (same as knowledge quiz workflow)
|
|
4160
|
-
6.
|
|
4164
|
+
6. ${REPUBLISH_STEP}
|
|
4161
4165
|
7. **Log** with clipform_log_generation`;
|
|
4162
4166
|
}
|
|
4163
4167
|
function comprehensionQuizWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
@@ -4180,7 +4184,7 @@ function comprehensionQuizWorkflow(args, sessionContext, authMode = "authenticat
|
|
|
4180
4184
|
- Include 1-2 inference questions: "Based on the video, why does the presenter believe...?"
|
|
4181
4185
|
- Avoid questions answerable without watching (e.g., common knowledge about the topic)
|
|
4182
4186
|
4. **Adapt to the audience**${audienceLabel} - simplify language for younger audiences, focus on concrete/visual details rather than abstract arguments
|
|
4183
|
-
5.
|
|
4187
|
+
5. ${BUILD_ONCE_STEP}
|
|
4184
4188
|
- Settings: show_step_counter: true, disable_back_navigation: true
|
|
4185
4189
|
- One choice node per question: config { choice: { show_answer_feedback: true }, randomise_options: true }, options with score: 1 on the correct answer and score: 0 on 3-4 plausible wrong ones - make distractors things someone might guess without watching. The viewer shuffles options at render time, so list them in any order. Scored options enable correct-answer marking automatically.
|
|
4186
4190
|
- Final end_screen node:
|
|
@@ -4194,8 +4198,8 @@ function comprehensionQuizWorkflow(args, sessionContext, authMode = "authenticat
|
|
|
4194
4198
|
7. **Build video** for each question:
|
|
4195
4199
|
- clipform_search_media (kind: "image") - 3 images per question, batch all queries in one call
|
|
4196
4200
|
- clipform_generate_video with wait: false per question - fires all renders in parallel - then collect URLs with clipform_check_render
|
|
4197
|
-
8.
|
|
4198
|
-
9.
|
|
4201
|
+
8. ${ATTACH_MEDIA_STEP}
|
|
4202
|
+
9. ${REPUBLISH_STEP}
|
|
4199
4203
|
10. **Log** with clipform_log_generation - include the YouTube URL, video title, and channel as sources
|
|
4200
4204
|
|
|
4201
4205
|
## Question Types for Comprehension
|
|
@@ -4223,7 +4227,7 @@ function compositionQuizWorkflow(args, sessionContext, authMode = "authenticated
|
|
|
4223
4227
|
1. **Discover what's renderable** - call clipform_list_compositions. Availability varies by session; choose mechanics ONLY from what it returns. Match each question to a mechanic via the composition guide's matrix. Mix 2-3 mechanics across the quiz; for questions with no fitting composition, use the base quiz's Ken Burns pipeline instead.
|
|
4224
4228
|
2. **Write questions** - difficulty curve as in the base guide. Difficulty = subject obscurity (Japan's flag vs Kiribati's), never clue degradation. ${count} questions \u2248 ${count * 2 + 1} nodes (each question is a clue + reveal pair) - check the plan's node limit.
|
|
4225
4229
|
3. **Render all clips** with clipform_render_composition, wait: false on EVERY call - fire the full batch (clue clip + reveal clip per question), then collect URLs with clipform_check_render. Chain-state compositions: clue clip animate: true, reveal clip animate: false + answer props.
|
|
4226
|
-
4.
|
|
4230
|
+
4. ${BUILD_ONCE_STEP}
|
|
4227
4231
|
- Settings: show_step_counter: true, disable_back_navigation: true
|
|
4228
4232
|
- Per question, a PAIR of nodes:
|
|
4229
4233
|
- Clue node (type: "choice"): question as prompt, config { choice: { show_answer_feedback: true }, randomise_options: true }, options with score: 1 on the correct answer and score: 0 on 2-3 wrong ones. Scored options enable correct-answer marking automatically.
|
|
@@ -4232,7 +4236,7 @@ function compositionQuizWorkflow(args, sessionContext, authMode = "authenticated
|
|
|
4232
4236
|
- tags: format "quiz", genre "trivia", and 2-3 topic words
|
|
4233
4237
|
5. **Generate narration** with clipform_generate_tts - batch ALL items in one call. The visual does the teasing: set stakes, never describe what's on screen or read the clue aloud. Reveal narration can celebrate.
|
|
4234
4238
|
6. **Attach media** with clipform_upload_node_media (batch all uploads in one call) - clue clip on each choice node, reveal clip on each button node. Include captions, set show_captions: true and fit_media: true (generated renders must not be cropped).
|
|
4235
|
-
7.
|
|
4239
|
+
7. ${REPUBLISH_STEP}
|
|
4236
4240
|
8. **Log** with clipform_log_generation - record the composition IDs used per question alongside sources and attributions`;
|
|
4237
4241
|
}
|
|
4238
4242
|
function interviewWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
@@ -4245,16 +4249,16 @@ function interviewWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4245
4249
|
## Workflow
|
|
4246
4250
|
|
|
4247
4251
|
1. **Identify the ask** - what do you need from respondents? ${purpose}.
|
|
4248
|
-
2.
|
|
4252
|
+
2. ${BUILD_ONCE_STEP}
|
|
4249
4253
|
- Settings: show_step_counter: true, disable_back_navigation: false
|
|
4250
4254
|
- Warm-up question first (type: "open") - something easy: "Tell us your name and role"
|
|
4251
4255
|
- 2-3 core questions (type: "open") - one topic per question.${format === "all" ? " Enable text + audio + video responses." : ` Enable ${format} responses.`}
|
|
4252
4256
|
- Contact collection (type: "contact") - first name + email minimum${consent ? `
|
|
4253
4257
|
- Consent node - "I agree that my response may be used in [context]"` : ""}
|
|
4254
4258
|
- End screen that sets expectations: "Thanks! We'll be in touch."
|
|
4255
|
-
|
|
4259
|
+
${TAGS_LINE}
|
|
4256
4260
|
3. **Optional - Rich Media:** Add TTS narration (clipform_generate_tts, batch all questions in one call) with a warm, inviting tone - "We'd love to hear your story..." Video backgrounds (clipform_search_media \u2192 clipform_generate_video) on the intro question can set a professional tone.
|
|
4257
|
-
4.
|
|
4261
|
+
4. ${REPUBLISH_STEP}
|
|
4258
4262
|
5. **Log** with clipform_log_generation`;
|
|
4259
4263
|
}
|
|
4260
4264
|
function surveyWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
@@ -4266,16 +4270,16 @@ function surveyWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4266
4270
|
## Workflow
|
|
4267
4271
|
|
|
4268
4272
|
1. **Define the key metric** - what's the one number you care about? (NPS, satisfaction, likelihood to recommend)
|
|
4269
|
-
2.
|
|
4273
|
+
2. ${BUILD_ONCE_STEP}
|
|
4270
4274
|
- Settings: show_step_counter: true, disable_back_navigation: false
|
|
4271
4275
|
- Key metric question FIRST (type: "choice" or "rating") - while attention is highest
|
|
4272
4276
|
- One "why?" follow-up (type: "open") - "What's the main reason for your score?"
|
|
4273
4277
|
- 2-3 specific questions (type: "choice") - only ask what you'll act on${!anonymous ? `
|
|
4274
4278
|
- Contact collection (type: "contact") - name + email for follow-up` : ""}
|
|
4275
4279
|
- End screen: "Thanks for your feedback!"
|
|
4276
|
-
|
|
4280
|
+
${TAGS_LINE}
|
|
4277
4281
|
3. **Optional - Rich Media:** For a more engaging experience, add TTS narration (clipform_generate_tts) for the intro or key questions, video backgrounds (clipform_search_media \u2192 clipform_generate_video), or background music (clipform_search_music).
|
|
4278
|
-
4.
|
|
4282
|
+
4. ${REPUBLISH_STEP}
|
|
4279
4283
|
5. **Log** with clipform_log_generation
|
|
4280
4284
|
|
|
4281
4285
|
## Key rule: 5 questions max. Every extra question costs completions.`;
|
|
@@ -4293,7 +4297,7 @@ function testimonialWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4293
4297
|
## Workflow
|
|
4294
4298
|
|
|
4295
4299
|
1. **Define the story arc** - what transformation or experience do you want to capture?
|
|
4296
|
-
2.
|
|
4300
|
+
2. ${BUILD_ONCE_STEP}
|
|
4297
4301
|
- Settings: show_step_counter: true, disable_back_navigation: false
|
|
4298
4302
|
- Warm-up question (type: "open") - "Tell us your name and [role/relationship/context]". Enable video + audio + text responses.
|
|
4299
4303
|
- 2-3 storytelling prompts (type: "open") - follow the before \u2192 during \u2192 after arc. Enable video responses. Example prompts:
|
|
@@ -4305,7 +4309,7 @@ function testimonialWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4305
4309
|
- tags: format "testimonial", genre "story", and 2-3 topic words
|
|
4306
4310
|
3. **Generate narration** with clipform_generate_tts - batch all prompts in a single call. Warm, appreciative tone - "We'd love to hear your story..." Keep each narration 5-8 seconds.
|
|
4307
4311
|
4. **Optional: build video** for the intro/warm-up question to set the tone.
|
|
4308
|
-
5.
|
|
4312
|
+
5. ${REPUBLISH_STEP}
|
|
4309
4313
|
6. **Log** with clipform_log_generation
|
|
4310
4314
|
|
|
4311
4315
|
> **Text-only override:** If the user explicitly asked for text-only (no video), skip steps 3-4 (narration and video production).`;
|
|
@@ -4318,7 +4322,7 @@ function applicationWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4318
4322
|
## Workflow
|
|
4319
4323
|
|
|
4320
4324
|
1. **Define what you're screening for** - what qualifications matter, and what questions reveal fit?
|
|
4321
|
-
2.
|
|
4325
|
+
2. ${BUILD_ONCE_STEP}
|
|
4322
4326
|
- Settings: show_step_counter: true, disable_back_navigation: false
|
|
4323
4327
|
- Contact collection first (type: "contact") - name, email, phone - while motivation is high
|
|
4324
4328
|
- 2-3 structured screening questions (type: "choice") - experience level, availability, relevant qualifications. These help you filter quickly.
|
|
@@ -4327,7 +4331,7 @@ function applicationWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4327
4331
|
- End screen: "Your application has been submitted. We'll review it and get back to you." icon: "tick", no score, no restart
|
|
4328
4332
|
- tags: format "application", genre "screening", and 2-3 topic words
|
|
4329
4333
|
3. **Optional - Rich Media:** Add TTS narration (clipform_generate_tts) - professional and welcoming: "Thanks for your interest - let's get to know you." Video backgrounds (clipform_search_media \u2192 clipform_generate_video) on the intro can make the application feel more personal.
|
|
4330
|
-
4.
|
|
4334
|
+
4. ${REPUBLISH_STEP}
|
|
4331
4335
|
5. **Log** with clipform_log_generation`;
|
|
4332
4336
|
}
|
|
4333
4337
|
function bookingWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
@@ -4339,14 +4343,14 @@ function bookingWorkflow(args, sessionContext, authMode = "authenticated") {
|
|
|
4339
4343
|
## Workflow
|
|
4340
4344
|
|
|
4341
4345
|
1. **Define the essentials** - what info do you actually need from attendees? Keep the list short.
|
|
4342
|
-
2.
|
|
4346
|
+
2. ${BUILD_ONCE_STEP}
|
|
4343
4347
|
- Settings: show_step_counter: false (it's so short, a counter adds unnecessary UI), disable_back_navigation: false
|
|
4344
4348
|
- Contact collection (type: "contact") - name + email minimum. Add phone only if needed.
|
|
4345
4349
|
- 1-3 event-specific questions (type: "choice") - session preferences, dietary requirements, experience level. Only ask what you'll use.
|
|
4346
4350
|
- End screen: "You're registered! Here's what to expect." Include event details (date, time, location/link) in the message. icon: "tick", no score, no restart, cta_type: "external_link" with a URL to calendar invite or event page (if available)
|
|
4347
4351
|
- tags: format "registration", genre "${eventType}", and 2-3 topic words
|
|
4348
4352
|
3. **Optional: add welcome video** - a short intro from the host. Generate narration with clipform_generate_tts, then build a video with clipform_search_media + clipform_generate_video.
|
|
4349
|
-
4.
|
|
4353
|
+
4. ${REPUBLISH_STEP}
|
|
4350
4354
|
5. **Log** with clipform_log_generation
|
|
4351
4355
|
|
|
4352
4356
|
## Key rule: 3-5 fields max. Every extra field costs registrations.`;
|
|
@@ -4705,4 +4709,4 @@ export {
|
|
|
4705
4709
|
getWorkflowText,
|
|
4706
4710
|
registerPrompts
|
|
4707
4711
|
};
|
|
4708
|
-
//# sourceMappingURL=chunk-
|
|
4712
|
+
//# sourceMappingURL=chunk-VTRO7ZC3.js.map
|