@clipform/mcp-server 2.15.8 → 2.15.10
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/{chunk-DFR7RHPM.js → chunk-IP7263ND.js} +25 -6
- package/dist/chunk-IP7263ND.js.map +1 -0
- package/dist/{chunk-5POJOTRI.js → chunk-ORZYVIW3.js} +2 -2
- package/dist/{chunk-AE4G2LMQ.js → chunk-SKNKSZOA.js} +2 -2
- package/dist/{chunk-4DVA4LDZ.js → chunk-VLI2LYIB.js} +4 -4
- package/dist/chunk-VLI2LYIB.js.map +1 -0
- package/dist/index.js +4 -4
- package/dist/prompts.js +2 -2
- package/dist/resources.js +2 -2
- package/dist/server.d.ts +9 -0
- package/dist/server.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-4DVA4LDZ.js.map +0 -1
- package/dist/chunk-DFR7RHPM.js.map +0 -1
- /package/dist/{chunk-5POJOTRI.js.map → chunk-ORZYVIW3.js.map} +0 -0
- /package/dist/{chunk-AE4G2LMQ.js.map → chunk-SKNKSZOA.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getWorkflowText,
|
|
7
7
|
objectType,
|
|
8
8
|
registerPrompts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SKNKSZOA.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-
|
|
18
|
+
} from "./chunk-ORZYVIW3.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-
|
|
43
|
+
} from "./chunk-VLI2LYIB.js";
|
|
44
44
|
import {
|
|
45
45
|
getMcpAuth,
|
|
46
46
|
runWithMcpTool
|
|
@@ -16998,6 +16998,22 @@ import { readFileSync } from "fs";
|
|
|
16998
16998
|
import { dirname, join } from "path";
|
|
16999
16999
|
import { fileURLToPath } from "url";
|
|
17000
17000
|
|
|
17001
|
+
// src/lib/onboarding-copy.ts
|
|
17002
|
+
var ONBOARDING_OFFER_CONTROL_VARIANT = "control";
|
|
17003
|
+
var ONBOARDING_OFFER_COPY = {
|
|
17004
|
+
// #4089 review: this cohort has already completed OAuth to connect - they
|
|
17005
|
+
// have an account. Never claim "no account needed" or otherwise imply an
|
|
17006
|
+
// anonymous/no-sign-up lane here; that framing contradicts what they just
|
|
17007
|
+
// did and reads as broken. Acknowledge the connection instead, then offer
|
|
17008
|
+
// to build. (The anonymous/no-auth entry point is a different surface,
|
|
17009
|
+
// #4088 - not this cohort.)
|
|
17010
|
+
[ONBOARDING_OFFER_CONTROL_VARIANT]: "When this is the start of a new conversation and the user has not yet said what they want to build, welcome them as someone who is now connected to Clipform and offer to build their first form together, then offer these starting points as plain text: lead-gen, feedback, quiz, or something else - ask which one fits, or invite them to describe what they need instead. If the user's first message already states what they want to build, even loosely, skip that offer entirely and go straight into the brief-driven flow below."
|
|
17011
|
+
};
|
|
17012
|
+
function buildOnboardingOffer(variant = ONBOARDING_OFFER_CONTROL_VARIANT) {
|
|
17013
|
+
return ONBOARDING_OFFER_COPY[variant] ?? ONBOARDING_OFFER_COPY[ONBOARDING_OFFER_CONTROL_VARIANT];
|
|
17014
|
+
}
|
|
17015
|
+
var ONBOARDING_OFFER_TOOL_CUE = "If the user hasn't said what to build yet, offer to build their first form and suggest starting points: lead-gen, feedback, quiz, or something else.";
|
|
17016
|
+
|
|
17001
17017
|
// src/lib/config.ts
|
|
17002
17018
|
var _endScreen = NODE_TYPES.end_screen.config_schema.properties;
|
|
17003
17019
|
var END_SCREEN_ICONS = _endScreen.icon.enum;
|
|
@@ -17185,6 +17201,8 @@ function registerCreateFormTool(server) {
|
|
|
17185
17201
|
title: "Create Clipform",
|
|
17186
17202
|
description: `Create a new Clipform (interactive video-style form). Returns a viewer URL and form ID. When connected via an authenticated MCP client (e.g. claude.ai), the form lands directly in the user's workspace. Anonymous sessions get a claim URL to transfer ownership later.
|
|
17187
17203
|
|
|
17204
|
+
${ONBOARDING_OFFER_TOOL_CUE}
|
|
17205
|
+
|
|
17188
17206
|
${NODE_TYPES_DESCRIPTION}
|
|
17189
17207
|
|
|
17190
17208
|
All type definitions and config schemas are derived from @vid-master/config (node-types). Refer to the config descriptions above for the correct keys and shapes. AI-PROTECTED parameters have restrictions noted in their descriptions.
|
|
@@ -19589,7 +19607,7 @@ function registerRenderCompositionTool(server) {
|
|
|
19589
19607
|
title: "Render Composition",
|
|
19590
19608
|
description: `Render a specialised video composition to MP4 or PNG - custom animated visuals that clipform_generate_video can't provide, such as geography animations or designed motion graphics. Available composition names and their required input props schemas come from clipform_list_compositions.
|
|
19591
19609
|
|
|
19592
|
-
|
|
19610
|
+
Output formats: mp4 (H.264, best for social media) or png (single frame). Returns a public URL when complete.
|
|
19593
19611
|
|
|
19594
19612
|
For multi-render builds (e.g. one clip per quiz question), pass everything in ONE call via items (max 10): all renders fire in parallel and you get one job ID each - then collect the URLs in a single clipform_check_render call with job_ids. Single render: pass compositionId/inputProps at the top level (wait: true blocks and returns the URL; wait: false returns a job ID).
|
|
19595
19613
|
|
|
@@ -19822,7 +19840,7 @@ function registerListCompositionsTool(server) {
|
|
|
19822
19840
|
"clipform_list_compositions",
|
|
19823
19841
|
{
|
|
19824
19842
|
title: "List Compositions",
|
|
19825
|
-
description: `Browse available video compositions and their expected props schemas. Call this before using clipform_render_composition to discover visual styles and their input props. For
|
|
19843
|
+
description: `Browse available video compositions and their expected props schemas. Call this before using clipform_render_composition to discover visual styles and their input props. For an image or photo montage, reach for a video template (clipform_list_video_templates + clipform_render_video_template) or clipform_generate_video instead of a composition.`,
|
|
19826
19844
|
inputSchema: {},
|
|
19827
19845
|
outputSchema: {
|
|
19828
19846
|
compositions: external_exports.array(
|
|
@@ -20681,6 +20699,7 @@ var MCP_SERVER_IDENTITY = Object.freeze({
|
|
|
20681
20699
|
});
|
|
20682
20700
|
function buildInstructions(caps) {
|
|
20683
20701
|
return [
|
|
20702
|
+
buildOnboardingOffer(),
|
|
20684
20703
|
"Clipform builds interactive video-style forms. When the brief is clear, build the form directly; when it's vague, ask one or two short questions first.",
|
|
20685
20704
|
caps.media && "Prefer rich media: video over images over plain text.",
|
|
20686
20705
|
caps.media ? "Before building, derive a register from the topic and audience (e.g. hype, playful, warm, considered, elegant, sombre); if the user states a mood explicitly, that wins. State the register once, then apply it to every rendering choice - narration tone, motion preset, music, pacing. Never mix registers in one form." : "Before building, derive a register from the topic and audience (e.g. hype, playful, warm, considered, elegant, sombre); if the user states a mood explicitly, that wins. State the register once, then apply it to every question, option, and end-screen line. Never mix registers in one form.",
|
|
@@ -20773,4 +20792,4 @@ export {
|
|
|
20773
20792
|
buildInstructions,
|
|
20774
20793
|
createServer
|
|
20775
20794
|
};
|
|
20776
|
-
//# sourceMappingURL=chunk-
|
|
20795
|
+
//# sourceMappingURL=chunk-IP7263ND.js.map
|