@clipform/mcp-server 4.0.0 → 4.1.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.
- package/dist/api-client.js +1 -1
- package/dist/{chunk-JRASOR5T.js → chunk-4IAURGG7.js} +3 -3
- package/dist/chunk-4IAURGG7.js.map +1 -0
- package/dist/{chunk-MSLK3FRO.js → chunk-5A66GD3U.js} +1975 -24
- package/dist/{chunk-MSLK3FRO.js.map → chunk-5A66GD3U.js.map} +1 -1
- package/dist/{chunk-54RZGUSA.js → chunk-5RUWQOYD.js} +88 -239
- package/dist/{chunk-54RZGUSA.js.map → chunk-5RUWQOYD.js.map} +1 -1
- package/dist/{chunk-S6RYUVDM.js → chunk-PDI6VJYQ.js} +2 -2
- package/dist/{chunk-5MJGBBKA.js → chunk-TXUWAYBZ.js} +3 -3
- package/dist/index.js +5 -5
- package/dist/prompts.d.ts +11 -2
- package/dist/prompts.js +13 -3
- package/dist/resources.js +3 -3
- package/dist/server.d.ts +1 -0
- package/dist/server.js +11 -7
- package/package.json +1 -1
- package/dist/chunk-JRASOR5T.js.map +0 -1
- /package/dist/{chunk-S6RYUVDM.js.map → chunk-PDI6VJYQ.js.map} +0 -0
- /package/dist/{chunk-5MJGBBKA.js.map → chunk-TXUWAYBZ.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FULL_CAPS,
|
|
3
3
|
getSessionContextWithAuth
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PDI6VJYQ.js";
|
|
5
5
|
import {
|
|
6
6
|
WORKFLOW_TYPES,
|
|
7
7
|
getDiscoveryParams
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4IAURGG7.js";
|
|
9
9
|
import {
|
|
10
10
|
__export
|
|
11
11
|
} from "./chunk-PZ5AY32C.js";
|
|
@@ -14526,14 +14526,43 @@ config(en_default());
|
|
|
14526
14526
|
|
|
14527
14527
|
// src/prompts.ts
|
|
14528
14528
|
var WORKFLOW_TYPES2 = WORKFLOW_TYPES;
|
|
14529
|
-
var
|
|
14529
|
+
var MAX_PROMPT_QUESTIONS = 20;
|
|
14530
|
+
var clean = (v) => typeof v === "string" ? v.trim().toLowerCase() : "";
|
|
14531
|
+
function normalizeMediaStyle(v) {
|
|
14532
|
+
const t = clean(v);
|
|
14533
|
+
if (/\b(video|slide\w*|narrat\w*|motion)\b/.test(t)) return "video";
|
|
14534
|
+
if (/\b(text|plain|none)\b/.test(t)) return "text";
|
|
14535
|
+
if (/\b(image\w*|photo\w*|still\w*|picture\w*)\b/.test(t)) return "images";
|
|
14536
|
+
return "video";
|
|
14537
|
+
}
|
|
14538
|
+
function normalizeResponseFormat(v) {
|
|
14539
|
+
const t = clean(v);
|
|
14540
|
+
if (!t) return void 0;
|
|
14541
|
+
if (/(all|any|every|both)/.test(t)) return "all";
|
|
14542
|
+
const mentioned = ["video", "audio", "text"].filter((f) => t.includes(f));
|
|
14543
|
+
return mentioned.length === 1 ? mentioned[0] : "all";
|
|
14544
|
+
}
|
|
14545
|
+
function normalizeQuestionCount(v) {
|
|
14546
|
+
const n = parseInt(clean(v), 10);
|
|
14547
|
+
if (Number.isNaN(n) || n < 1) return void 0;
|
|
14548
|
+
return Math.min(n, MAX_PROMPT_QUESTIONS);
|
|
14549
|
+
}
|
|
14550
|
+
function normalizeBool(v) {
|
|
14551
|
+
const t = clean(v);
|
|
14552
|
+
if (["true", "yes", "y", "1", "on"].includes(t)) return true;
|
|
14553
|
+
if (["false", "no", "n", "0", "off"].includes(t)) return false;
|
|
14554
|
+
return void 0;
|
|
14555
|
+
}
|
|
14530
14556
|
function coercePromptArgs(args) {
|
|
14557
|
+
const { media_style, response_format, question_count, needs_consent, anonymous, needs_contact, ...rest } = args;
|
|
14531
14558
|
return {
|
|
14532
|
-
...
|
|
14533
|
-
|
|
14534
|
-
|
|
14535
|
-
|
|
14536
|
-
|
|
14559
|
+
...rest,
|
|
14560
|
+
media_style: media_style !== void 0 && clean(media_style) !== "" ? normalizeMediaStyle(media_style) : void 0,
|
|
14561
|
+
response_format: normalizeResponseFormat(response_format),
|
|
14562
|
+
question_count: normalizeQuestionCount(question_count),
|
|
14563
|
+
needs_consent: normalizeBool(needs_consent),
|
|
14564
|
+
anonymous: normalizeBool(anonymous),
|
|
14565
|
+
needs_contact: normalizeBool(needs_contact)
|
|
14537
14566
|
};
|
|
14538
14567
|
}
|
|
14539
14568
|
function buildDiscovery(params, args, authMode = "authenticated") {
|
|
@@ -14561,16 +14590,17 @@ ${rows}
|
|
|
14561
14590
|
|
|
14562
14591
|
`;
|
|
14563
14592
|
}
|
|
14564
|
-
function
|
|
14593
|
+
function promptMessage(request, guides, workflow) {
|
|
14594
|
+
const parts = [];
|
|
14595
|
+
if (request) parts.push(request);
|
|
14596
|
+
if (guides.length > 0) {
|
|
14597
|
+
const refs = guides.map((g) => `${g.title}: \`${g.uri}\``).join("; ");
|
|
14598
|
+
parts.push(`Read the guide first (${refs}) - or call clipform_get_guide.`);
|
|
14599
|
+
}
|
|
14600
|
+
parts.push(workflow);
|
|
14565
14601
|
return {
|
|
14566
|
-
role: "
|
|
14567
|
-
content: {
|
|
14568
|
-
type: "resource_link",
|
|
14569
|
-
uri,
|
|
14570
|
-
name,
|
|
14571
|
-
title,
|
|
14572
|
-
mimeType: "text/markdown"
|
|
14573
|
-
}
|
|
14602
|
+
role: "user",
|
|
14603
|
+
content: { type: "text", text: parts.join("\n\n") }
|
|
14574
14604
|
};
|
|
14575
14605
|
}
|
|
14576
14606
|
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:";
|
|
@@ -14658,37 +14688,37 @@ var comprehensionQuizWorkflow = (args, sessionContext, authMode, caps) => {
|
|
|
14658
14688
|
const audienceLabel = args.audience ? ` (${args.audience})` : "";
|
|
14659
14689
|
const discovery = buildDiscovery(getDiscoveryParams("quiz", "comprehension", authMode === "anonymous" ? "demo" : "full"), args, authMode);
|
|
14660
14690
|
const steps = numbered([
|
|
14661
|
-
`**Get the
|
|
14691
|
+
`**Get the source material** - ask the user to paste the transcript, document text, or notes (or a detailed summary of the key points) the quiz should test. Use any link they give only as a reference${caps.research ? " for the audit log" : ""}, not as something to fetch.`,
|
|
14662
14692
|
`**Analyse the content** - identify:
|
|
14663
|
-
- Key claims, facts, or arguments made in the
|
|
14664
|
-
- Specific details a casual viewer might miss
|
|
14665
|
-
- The
|
|
14693
|
+
- Key claims, facts, or arguments made in the source
|
|
14694
|
+
- Specific details a casual reader or viewer might miss
|
|
14695
|
+
- The source's main thesis or conclusion
|
|
14666
14696
|
- Any surprising or counterintuitive points`,
|
|
14667
|
-
`**Write comprehension questions** - these test whether someone
|
|
14668
|
-
- "According to the
|
|
14669
|
-
- "What example does the
|
|
14670
|
-
- Include 1-2 inference questions: "Based on the
|
|
14671
|
-
- Avoid questions answerable without
|
|
14697
|
+
`**Write comprehension questions** - these test whether someone engaged with the source, not general knowledge:
|
|
14698
|
+
- "According to the source, what is the main reason...?"
|
|
14699
|
+
- "What example does the source use to illustrate...?"
|
|
14700
|
+
- Include 1-2 inference questions: "Based on the source, why does the author believe...?"
|
|
14701
|
+
- Avoid questions answerable without the source (e.g., common knowledge about the topic)`,
|
|
14672
14702
|
`**Adapt to the audience**${audienceLabel} - simplify language for younger audiences, focus on concrete/visual details rather than abstract arguments`,
|
|
14673
14703
|
`${BUILD_ONCE_STEP}
|
|
14674
14704
|
- Settings: show_step_counter: true, disable_back_navigation: true
|
|
14675
|
-
- 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
|
|
14705
|
+
- 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 the source. The viewer shuffles options at render time, so list them in any order. Scored options enable correct-answer marking automatically.
|
|
14676
14706
|
- Final end_screen node:
|
|
14677
14707
|
- show_score: true, icon: "trophy"
|
|
14678
14708
|
- show_share_button: true
|
|
14679
|
-
- cta_type: "restart", cta_text: "
|
|
14680
|
-
- title and message that reference the
|
|
14709
|
+
- cta_type: "restart", cta_text: "Try again?"
|
|
14710
|
+
- title and message that reference the source. Example: title: "How well do you know this?", message: "Share your score and see if your friends were really paying attention."
|
|
14681
14711
|
- NOTE: Personalised messages per score tier (score_ranges) are coming soon. For now, write one great end screen message.
|
|
14682
|
-
- tags: ["quiz", "comprehension"
|
|
14683
|
-
caps.media && `**Generate narration** with clipform_generate_tts - batch ALL questions in a single call. Reference the
|
|
14712
|
+
- tags: ["quiz", "comprehension"] + 2-3 topic words from the source`,
|
|
14713
|
+
caps.media && `**Generate narration** with clipform_generate_tts - batch ALL questions in a single call. Reference the source naturally: "If you were paying attention, you'll know this one..." Keep each narration 5-10 seconds.`,
|
|
14684
14714
|
caps.media && `**Build video** for each question:
|
|
14685
14715
|
- clipform_search_media (kind: "image") - 3 images per question, batch all queries in one call
|
|
14686
14716
|
- clipform_render_video_template (template: "slideshow", controls.items + controls.audio_url) with wait: false per question - fires all renders in parallel - then collect URLs with clipform_check_render`,
|
|
14687
14717
|
caps.media && ATTACH_MEDIA_STEP,
|
|
14688
14718
|
REPUBLISH_STEP,
|
|
14689
|
-
caps.research && `${LOG_STEP} - include the
|
|
14719
|
+
caps.research && `${LOG_STEP} - include the source title and link as sources, using whatever of those the user provided`
|
|
14690
14720
|
]);
|
|
14691
|
-
return `${intro(sessionContext, discovery)}Here's how to build a ${count}-question comprehension quiz from
|
|
14721
|
+
return `${intro(sessionContext, discovery)}Here's how to build a ${count}-question comprehension quiz from source material. Read the attached quiz and comprehension guides for craft knowledge on question design and distractor techniques.
|
|
14692
14722
|
|
|
14693
14723
|
## Comprehension Quiz Workflow
|
|
14694
14724
|
|
|
@@ -14959,7 +14989,7 @@ function blankAsOmitted(schema) {
|
|
|
14959
14989
|
function registerPrompts(server, caps = FULL_CAPS) {
|
|
14960
14990
|
const _registerPrompt = server.registerPrompt.bind(server);
|
|
14961
14991
|
const registerPrompt = ((name, config2, cb) => _registerPrompt(name, config2?.argsSchema ? { ...config2, argsSchema: blankAsOmitted(config2.argsSchema) } : config2, cb));
|
|
14962
|
-
const mediaStyleArg = caps.media ? { media_style: external_exports.
|
|
14992
|
+
const mediaStyleArg = caps.media ? { media_style: external_exports.string().optional().describe("Media style: text, images, or video (default: video)") } : {};
|
|
14963
14993
|
const styleNote = (args) => caps.media ? `, ${args.media_style ?? "video"} style` : "";
|
|
14964
14994
|
registerPrompt(
|
|
14965
14995
|
"create-quiz",
|
|
@@ -14968,7 +14998,7 @@ function registerPrompts(server, caps = FULL_CAPS) {
|
|
|
14968
14998
|
description: "Build a scored knowledge quiz with narrated video questions",
|
|
14969
14999
|
argsSchema: external_exports.object({
|
|
14970
15000
|
topic: external_exports.string().optional().describe("Quiz topic (e.g. 'Space exploration', 'Premier League')"),
|
|
14971
|
-
question_count: external_exports.string().optional().
|
|
15001
|
+
question_count: external_exports.string().optional().describe("Number of questions (default: 8)"),
|
|
14972
15002
|
...mediaStyleArg
|
|
14973
15003
|
})
|
|
14974
15004
|
},
|
|
@@ -14976,21 +15006,7 @@ function registerPrompts(server, caps = FULL_CAPS) {
|
|
|
14976
15006
|
const args = coercePromptArgs(rawArgs);
|
|
14977
15007
|
return {
|
|
14978
15008
|
messages: [
|
|
14979
|
-
{
|
|
14980
|
-
role: "user",
|
|
14981
|
-
content: {
|
|
14982
|
-
type: "text",
|
|
14983
|
-
text: `I want to create a quiz${args.topic ? ` about "${args.topic}"` : ""}. ${args.question_count ?? 8} questions${styleNote(args)}.`
|
|
14984
|
-
}
|
|
14985
|
-
},
|
|
14986
|
-
resourceLink("guide-quiz", "clipform://guides/quiz", "Quiz Writing Guide"),
|
|
14987
|
-
{
|
|
14988
|
-
role: "assistant",
|
|
14989
|
-
content: {
|
|
14990
|
-
type: "text",
|
|
14991
|
-
text: await getWorkflowText("quiz", args, void 0, caps)
|
|
14992
|
-
}
|
|
14993
|
-
}
|
|
15009
|
+
promptMessage(`I want to create a quiz${args.topic ? ` about "${args.topic}"` : ""}. ${args.question_count ?? 8} questions${styleNote(args)}.`, [{ title: "Quiz Writing Guide", uri: "clipform://guides/quiz" }], await getWorkflowText("quiz", args, void 0, caps))
|
|
14994
15010
|
]
|
|
14995
15011
|
};
|
|
14996
15012
|
}
|
|
@@ -15003,7 +15019,7 @@ function registerPrompts(server, caps = FULL_CAPS) {
|
|
|
15003
15019
|
argsSchema: external_exports.object({
|
|
15004
15020
|
topic: external_exports.string().optional().describe("Quiz theme (e.g. 'Which city are you?', 'What's your work style?')"),
|
|
15005
15021
|
categories: external_exports.string().optional().describe("Comma-separated outcome categories (e.g. 'Creative, Analytical, Leader, Collaborator')"),
|
|
15006
|
-
question_count: external_exports.string().optional().
|
|
15022
|
+
question_count: external_exports.string().optional().describe("Number of questions (default: 8)"),
|
|
15007
15023
|
...mediaStyleArg
|
|
15008
15024
|
})
|
|
15009
15025
|
},
|
|
@@ -15014,22 +15030,7 @@ function registerPrompts(server, caps = FULL_CAPS) {
|
|
|
15014
15030
|
Outcome categories: ${args.categories}` : "";
|
|
15015
15031
|
return {
|
|
15016
15032
|
messages: [
|
|
15017
|
-
{
|
|
15018
|
-
role: "user",
|
|
15019
|
-
content: {
|
|
15020
|
-
type: "text",
|
|
15021
|
-
text: `I want to create a personality quiz${args.topic ? ` - "${args.topic}"` : ""}. ${args.question_count ?? 8} questions${styleNote(args)}.${categoriesNote}`
|
|
15022
|
-
}
|
|
15023
|
-
},
|
|
15024
|
-
resourceLink("guide-quiz", "clipform://guides/quiz", "Quiz Writing Guide"),
|
|
15025
|
-
resourceLink("guide-quiz-personality", "clipform://guides/quiz/personality", "Personality Quiz Addendum"),
|
|
15026
|
-
{
|
|
15027
|
-
role: "assistant",
|
|
15028
|
-
content: {
|
|
15029
|
-
type: "text",
|
|
15030
|
-
text: await getWorkflowText("quiz", args, "personality", caps)
|
|
15031
|
-
}
|
|
15032
|
-
}
|
|
15033
|
+
promptMessage(`I want to create a personality quiz${args.topic ? ` - "${args.topic}"` : ""}. ${args.question_count ?? 8} questions${styleNote(args)}.${categoriesNote}`, [{ title: "Quiz Writing Guide", uri: "clipform://guides/quiz" }, { title: "Personality Quiz Addendum", uri: "clipform://guides/quiz/personality" }], await getWorkflowText("quiz", args, "personality", caps))
|
|
15033
15034
|
]
|
|
15034
15035
|
};
|
|
15035
15036
|
}
|
|
@@ -15041,29 +15042,15 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15041
15042
|
description: "Build a form to collect case studies, async video interviews, expert input, or journalist responses",
|
|
15042
15043
|
argsSchema: external_exports.object({
|
|
15043
15044
|
purpose: external_exports.string().optional().describe("What you're collecting (e.g. 'case study', 'expert input', 'journalist responses')"),
|
|
15044
|
-
response_format: external_exports.
|
|
15045
|
-
needs_consent: external_exports.string().optional().
|
|
15045
|
+
response_format: external_exports.string().optional().describe("How respondents reply: video, audio, text, or all (default: all)"),
|
|
15046
|
+
needs_consent: external_exports.string().optional().describe("Include a consent statement: yes or no (default: yes)")
|
|
15046
15047
|
})
|
|
15047
15048
|
},
|
|
15048
15049
|
async (rawArgs) => {
|
|
15049
15050
|
const args = coercePromptArgs(rawArgs);
|
|
15050
15051
|
return {
|
|
15051
15052
|
messages: [
|
|
15052
|
-
{
|
|
15053
|
-
role: "user",
|
|
15054
|
-
content: {
|
|
15055
|
-
type: "text",
|
|
15056
|
-
text: `I want to collect ${args.purpose ?? "responses"} from people. Responses via ${args.response_format ?? "all"}.${args.needs_consent ?? true ? " Include consent." : ""}`
|
|
15057
|
-
}
|
|
15058
|
-
},
|
|
15059
|
-
resourceLink("guide-interview", "clipform://guides/interview", "Interview Guide"),
|
|
15060
|
-
{
|
|
15061
|
-
role: "assistant",
|
|
15062
|
-
content: {
|
|
15063
|
-
type: "text",
|
|
15064
|
-
text: await getWorkflowText("interview", args, void 0, caps)
|
|
15065
|
-
}
|
|
15066
|
-
}
|
|
15053
|
+
promptMessage(`I want to collect ${args.purpose ?? "responses"} from people. Responses via ${args.response_format ?? "all"}.${args.needs_consent ?? true ? " Include consent." : ""}`, [{ title: "Interview Guide", uri: "clipform://guides/interview" }], await getWorkflowText("interview", args, void 0, caps))
|
|
15067
15054
|
]
|
|
15068
15055
|
};
|
|
15069
15056
|
}
|
|
@@ -15075,66 +15062,14 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15075
15062
|
description: "Build a feedback survey, NPS form, or research questionnaire",
|
|
15076
15063
|
argsSchema: external_exports.object({
|
|
15077
15064
|
topic: external_exports.string().optional().describe("What feedback you're collecting (e.g. 'NPS', 'event feedback', 'product satisfaction')"),
|
|
15078
|
-
anonymous: external_exports.string().optional().
|
|
15065
|
+
anonymous: external_exports.string().optional().describe("Whether the survey is anonymous: yes or no (default: yes)")
|
|
15079
15066
|
})
|
|
15080
15067
|
},
|
|
15081
15068
|
async (rawArgs) => {
|
|
15082
15069
|
const args = coercePromptArgs(rawArgs);
|
|
15083
15070
|
return {
|
|
15084
15071
|
messages: [
|
|
15085
|
-
{
|
|
15086
|
-
role: "user",
|
|
15087
|
-
content: {
|
|
15088
|
-
type: "text",
|
|
15089
|
-
text: `I want to create a survey${args.topic ? ` for ${args.topic}` : ""}. ${args.anonymous ?? true ? "Anonymous" : "Identified"} respondents.`
|
|
15090
|
-
}
|
|
15091
|
-
},
|
|
15092
|
-
resourceLink("guide-survey", "clipform://guides/survey", "Survey & Feedback Guide"),
|
|
15093
|
-
{
|
|
15094
|
-
role: "assistant",
|
|
15095
|
-
content: {
|
|
15096
|
-
type: "text",
|
|
15097
|
-
text: await getWorkflowText("survey", args, void 0, caps)
|
|
15098
|
-
}
|
|
15099
|
-
}
|
|
15100
|
-
]
|
|
15101
|
-
};
|
|
15102
|
-
}
|
|
15103
|
-
);
|
|
15104
|
-
registerPrompt(
|
|
15105
|
-
"create-comprehension-quiz",
|
|
15106
|
-
{
|
|
15107
|
-
title: "Create a YouTube Comprehension Quiz",
|
|
15108
|
-
description: "Build a comprehension quiz from a YouTube video - tests whether the viewer actually watched and understood the content",
|
|
15109
|
-
argsSchema: external_exports.object({
|
|
15110
|
-
youtube_url: external_exports.string().optional().describe("YouTube video URL to create the quiz from"),
|
|
15111
|
-
question_count: external_exports.string().optional().default("8").describe("Number of questions (default: 8)"),
|
|
15112
|
-
audience: external_exports.string().optional().describe("Target audience (e.g. 'children aged 5-8', 'university students', 'general')"),
|
|
15113
|
-
...mediaStyleArg
|
|
15114
|
-
})
|
|
15115
|
-
},
|
|
15116
|
-
async (rawArgs) => {
|
|
15117
|
-
const args = coercePromptArgs(rawArgs);
|
|
15118
|
-
const urlNote = args.youtube_url ? ` The video is: ${args.youtube_url}` : "";
|
|
15119
|
-
const audienceNote = args.audience ? ` Target audience: ${args.audience}.` : "";
|
|
15120
|
-
return {
|
|
15121
|
-
messages: [
|
|
15122
|
-
{
|
|
15123
|
-
role: "user",
|
|
15124
|
-
content: {
|
|
15125
|
-
type: "text",
|
|
15126
|
-
text: `I want to create a comprehension quiz based on a YouTube video. ${args.question_count ?? 8} questions${styleNote(args)}.${urlNote}${audienceNote}`
|
|
15127
|
-
}
|
|
15128
|
-
},
|
|
15129
|
-
resourceLink("guide-quiz", "clipform://guides/quiz", "Quiz Writing Guide"),
|
|
15130
|
-
resourceLink("guide-quiz-comprehension", "clipform://guides/quiz/comprehension", "Comprehension Quiz Addendum"),
|
|
15131
|
-
{
|
|
15132
|
-
role: "assistant",
|
|
15133
|
-
content: {
|
|
15134
|
-
type: "text",
|
|
15135
|
-
text: await getWorkflowText("quiz", args, "comprehension", caps)
|
|
15136
|
-
}
|
|
15137
|
-
}
|
|
15072
|
+
promptMessage(`I want to create a survey${args.topic ? ` for ${args.topic}` : ""}. ${args.anonymous ?? true ? "Anonymous" : "Identified"} respondents.`, [{ title: "Survey & Feedback Guide", uri: "clipform://guides/survey" }], await getWorkflowText("survey", args, void 0, caps))
|
|
15138
15073
|
]
|
|
15139
15074
|
};
|
|
15140
15075
|
}
|
|
@@ -15146,29 +15081,14 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15146
15081
|
description: "Build a guess-and-reveal quiz from rendered compositions - flag sweeps, Rebus puzzles, blur reveals, odd-one-out grids - instead of stock-image slideshows",
|
|
15147
15082
|
argsSchema: external_exports.object({
|
|
15148
15083
|
topic: external_exports.string().optional().describe("Quiz topic (e.g. 'world flags', 'movie emoji', '90s music')"),
|
|
15149
|
-
question_count: external_exports.string().optional().
|
|
15084
|
+
question_count: external_exports.string().optional().describe("Number of questions (default: 5 - one scored choice node per question)")
|
|
15150
15085
|
})
|
|
15151
15086
|
},
|
|
15152
15087
|
async (rawArgs) => {
|
|
15153
15088
|
const args = coercePromptArgs(rawArgs);
|
|
15154
15089
|
return {
|
|
15155
15090
|
messages: [
|
|
15156
|
-
{
|
|
15157
|
-
role: "user",
|
|
15158
|
-
content: {
|
|
15159
|
-
type: "text",
|
|
15160
|
-
text: `I want to create a composition quiz${args.topic ? ` about "${args.topic}"` : ""}. ${args.question_count ?? 5} questions, guess-and-reveal style.`
|
|
15161
|
-
}
|
|
15162
|
-
},
|
|
15163
|
-
resourceLink("guide-quiz", "clipform://guides/quiz", "Quiz Writing Guide"),
|
|
15164
|
-
resourceLink("guide-quiz-composition", "clipform://guides/quiz/composition", "Composition Quiz Addendum"),
|
|
15165
|
-
{
|
|
15166
|
-
role: "assistant",
|
|
15167
|
-
content: {
|
|
15168
|
-
type: "text",
|
|
15169
|
-
text: await getWorkflowText("quiz", args, "composition", caps)
|
|
15170
|
-
}
|
|
15171
|
-
}
|
|
15091
|
+
promptMessage(`I want to create a composition quiz${args.topic ? ` about "${args.topic}"` : ""}. ${args.question_count ?? 5} questions, guess-and-reveal style.`, [{ title: "Quiz Writing Guide", uri: "clipform://guides/quiz" }, { title: "Composition Quiz Addendum", uri: "clipform://guides/quiz/composition" }], await getWorkflowText("quiz", args, "composition", caps))
|
|
15172
15092
|
]
|
|
15173
15093
|
};
|
|
15174
15094
|
}
|
|
@@ -15182,13 +15102,7 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15182
15102
|
},
|
|
15183
15103
|
async () => ({
|
|
15184
15104
|
messages: [
|
|
15185
|
-
|
|
15186
|
-
role: "assistant",
|
|
15187
|
-
content: {
|
|
15188
|
-
type: "text",
|
|
15189
|
-
text: await getWorkflowText("funnel")
|
|
15190
|
-
}
|
|
15191
|
-
}
|
|
15105
|
+
promptMessage(null, [], await getWorkflowText("funnel"))
|
|
15192
15106
|
]
|
|
15193
15107
|
})
|
|
15194
15108
|
);
|
|
@@ -15204,21 +15118,7 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15204
15118
|
},
|
|
15205
15119
|
async (args) => ({
|
|
15206
15120
|
messages: [
|
|
15207
|
-
{
|
|
15208
|
-
role: "user",
|
|
15209
|
-
content: {
|
|
15210
|
-
type: "text",
|
|
15211
|
-
text: `I want to collect ${args.use_case ?? "testimonials"} from people on video.`
|
|
15212
|
-
}
|
|
15213
|
-
},
|
|
15214
|
-
resourceLink("guide-testimonial", "clipform://guides/testimonial", "Testimonial & Story Collection Guide"),
|
|
15215
|
-
{
|
|
15216
|
-
role: "assistant",
|
|
15217
|
-
content: {
|
|
15218
|
-
type: "text",
|
|
15219
|
-
text: await getWorkflowText("testimonial", args, void 0, caps)
|
|
15220
|
-
}
|
|
15221
|
-
}
|
|
15121
|
+
promptMessage(`I want to collect ${args.use_case ?? "testimonials"} from people on video.`, [{ title: "Testimonial & Story Collection Guide", uri: "clipform://guides/testimonial" }], await getWorkflowText("testimonial", coercePromptArgs(args), void 0, caps))
|
|
15222
15122
|
]
|
|
15223
15123
|
})
|
|
15224
15124
|
);
|
|
@@ -15233,21 +15133,7 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15233
15133
|
},
|
|
15234
15134
|
async (args) => ({
|
|
15235
15135
|
messages: [
|
|
15236
|
-
{
|
|
15237
|
-
role: "user",
|
|
15238
|
-
content: {
|
|
15239
|
-
type: "text",
|
|
15240
|
-
text: `I want to create an application form${args.role ? ` for ${args.role}` : ""}.`
|
|
15241
|
-
}
|
|
15242
|
-
},
|
|
15243
|
-
resourceLink("guide-application", "clipform://guides/application", "Application & Evaluation Guide"),
|
|
15244
|
-
{
|
|
15245
|
-
role: "assistant",
|
|
15246
|
-
content: {
|
|
15247
|
-
type: "text",
|
|
15248
|
-
text: await getWorkflowText("application", args, void 0, caps)
|
|
15249
|
-
}
|
|
15250
|
-
}
|
|
15136
|
+
promptMessage(`I want to create an application form${args.role ? ` for ${args.role}` : ""}.`, [{ title: "Application & Evaluation Guide", uri: "clipform://guides/application" }], await getWorkflowText("application", coercePromptArgs(args), void 0, caps))
|
|
15251
15137
|
]
|
|
15252
15138
|
})
|
|
15253
15139
|
);
|
|
@@ -15263,21 +15149,7 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15263
15149
|
},
|
|
15264
15150
|
async (args) => ({
|
|
15265
15151
|
messages: [
|
|
15266
|
-
{
|
|
15267
|
-
role: "user",
|
|
15268
|
-
content: {
|
|
15269
|
-
type: "text",
|
|
15270
|
-
text: `I want to create a registration form for ${args.event_name ?? "an event"}.${args.event_type ? ` Type: ${args.event_type}.` : ""}`
|
|
15271
|
-
}
|
|
15272
|
-
},
|
|
15273
|
-
resourceLink("guide-booking", "clipform://guides/booking", "Booking & Registration Guide"),
|
|
15274
|
-
{
|
|
15275
|
-
role: "assistant",
|
|
15276
|
-
content: {
|
|
15277
|
-
type: "text",
|
|
15278
|
-
text: await getWorkflowText("booking", args, void 0, caps)
|
|
15279
|
-
}
|
|
15280
|
-
}
|
|
15152
|
+
promptMessage(`I want to create a registration form for ${args.event_name ?? "an event"}.${args.event_type ? ` Type: ${args.event_type}.` : ""}`, [{ title: "Booking & Registration Guide", uri: "clipform://guides/booking" }], await getWorkflowText("booking", coercePromptArgs(args), void 0, caps))
|
|
15281
15153
|
]
|
|
15282
15154
|
})
|
|
15283
15155
|
);
|
|
@@ -15288,26 +15160,12 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15288
15160
|
description: "Build a warm client intake or onboarding form - capture contact details and what the client needs",
|
|
15289
15161
|
argsSchema: external_exports.object({
|
|
15290
15162
|
use_case: external_exports.string().optional().describe("What kind of business or service (e.g. 'massage', 'coaching', 'personal training', 'agency')"),
|
|
15291
|
-
response_format: external_exports.
|
|
15163
|
+
response_format: external_exports.string().optional().describe("How people answer the open question: video, audio, text, or all (default: all)")
|
|
15292
15164
|
})
|
|
15293
15165
|
},
|
|
15294
15166
|
async (args) => ({
|
|
15295
15167
|
messages: [
|
|
15296
|
-
{
|
|
15297
|
-
role: "user",
|
|
15298
|
-
content: {
|
|
15299
|
-
type: "text",
|
|
15300
|
-
text: `I want to create a client intake form${args.use_case ? ` for a ${args.use_case} business` : ""}.`
|
|
15301
|
-
}
|
|
15302
|
-
},
|
|
15303
|
-
resourceLink("guide-intake", "clipform://guides/intake", "Client Intake & Onboarding Guide"),
|
|
15304
|
-
{
|
|
15305
|
-
role: "assistant",
|
|
15306
|
-
content: {
|
|
15307
|
-
type: "text",
|
|
15308
|
-
text: await getWorkflowText("intake", args, void 0, caps)
|
|
15309
|
-
}
|
|
15310
|
-
}
|
|
15168
|
+
promptMessage(`I want to create a client intake form${args.use_case ? ` for a ${args.use_case} business` : ""}.`, [{ title: "Client Intake & Onboarding Guide", uri: "clipform://guides/intake" }], await getWorkflowText("intake", coercePromptArgs(args), void 0, caps))
|
|
15311
15169
|
]
|
|
15312
15170
|
})
|
|
15313
15171
|
);
|
|
@@ -15322,21 +15180,7 @@ Outcome categories: ${args.categories}` : "";
|
|
|
15322
15180
|
},
|
|
15323
15181
|
async (args) => ({
|
|
15324
15182
|
messages: [
|
|
15325
|
-
{
|
|
15326
|
-
role: "user",
|
|
15327
|
-
content: {
|
|
15328
|
-
type: "text",
|
|
15329
|
-
text: `I want to create a lead capture form${args.use_case ? ` for ${args.use_case}` : ""}.`
|
|
15330
|
-
}
|
|
15331
|
-
},
|
|
15332
|
-
resourceLink("guide-lead-capture", "clipform://guides/lead-capture", "Lead Capture Guide"),
|
|
15333
|
-
{
|
|
15334
|
-
role: "assistant",
|
|
15335
|
-
content: {
|
|
15336
|
-
type: "text",
|
|
15337
|
-
text: await getWorkflowText("lead-capture", args, void 0, caps)
|
|
15338
|
-
}
|
|
15339
|
-
}
|
|
15183
|
+
promptMessage(`I want to create a lead capture form${args.use_case ? ` for ${args.use_case}` : ""}.`, [{ title: "Lead Capture Guide", uri: "clipform://guides/lead-capture" }], await getWorkflowText("lead-capture", coercePromptArgs(args), void 0, caps))
|
|
15340
15184
|
]
|
|
15341
15185
|
})
|
|
15342
15186
|
);
|
|
@@ -15371,8 +15215,13 @@ export {
|
|
|
15371
15215
|
coerce_exports,
|
|
15372
15216
|
external_exports,
|
|
15373
15217
|
WORKFLOW_TYPES2 as WORKFLOW_TYPES,
|
|
15218
|
+
normalizeMediaStyle,
|
|
15219
|
+
normalizeResponseFormat,
|
|
15220
|
+
normalizeQuestionCount,
|
|
15221
|
+
normalizeBool,
|
|
15222
|
+
coercePromptArgs,
|
|
15374
15223
|
buildDiscovery,
|
|
15375
15224
|
getWorkflowText,
|
|
15376
15225
|
registerPrompts
|
|
15377
15226
|
};
|
|
15378
|
-
//# sourceMappingURL=chunk-
|
|
15227
|
+
//# sourceMappingURL=chunk-5RUWQOYD.js.map
|