@clipform/mcp-server 3.8.0 → 4.0.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.
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-JRASOR5T.js";
10
10
  import "./chunk-VPF6MLKM.js";
11
11
  import "./chunk-PBQ5BQWD.js";
12
- import "./chunk-G3PMV62Z.js";
12
+ import "./chunk-PZ5AY32C.js";
13
13
  export {
14
14
  authChallengeMeta,
15
15
  callApi,
@@ -8,7 +8,7 @@ import {
8
8
  runWithMcpAuth,
9
9
  runWithMcpTool
10
10
  } from "./chunk-VPF6MLKM.js";
11
- import "./chunk-G3PMV62Z.js";
11
+ import "./chunk-PZ5AY32C.js";
12
12
  export {
13
13
  MCP_ANONYMOUS_HEADER,
14
14
  MCP_AUTH_VIA_HEADER,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-JRASOR5T.js";
9
9
  import {
10
10
  __export
11
- } from "./chunk-G3PMV62Z.js";
11
+ } from "./chunk-PZ5AY32C.js";
12
12
 
13
13
  // ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/external.js
14
14
  var external_exports = {};
@@ -14937,19 +14937,40 @@ async function getWorkflowText(type, args = {}, variant, caps = FULL_CAPS) {
14937
14937
  }
14938
14938
  return WORKFLOW_BUILDERS[type](args, sessionContext, authMode, caps);
14939
14939
  }
14940
+ function blankAsOmitted(schema) {
14941
+ const std = schema?.["~standard"];
14942
+ if (!std?.validate) return schema;
14943
+ return Object.create(schema, {
14944
+ "~standard": {
14945
+ value: {
14946
+ ...std,
14947
+ validate: (value, ...rest) => {
14948
+ const cleaned = value && typeof value === "object" ? Object.fromEntries(
14949
+ Object.entries(value).filter(
14950
+ ([, v]) => !(typeof v === "string" && v.trim() === "")
14951
+ )
14952
+ ) : value;
14953
+ return std.validate(cleaned, ...rest);
14954
+ }
14955
+ }
14956
+ }
14957
+ });
14958
+ }
14940
14959
  function registerPrompts(server, caps = FULL_CAPS) {
14960
+ const _registerPrompt = server.registerPrompt.bind(server);
14961
+ const registerPrompt = ((name, config2, cb) => _registerPrompt(name, config2?.argsSchema ? { ...config2, argsSchema: blankAsOmitted(config2.argsSchema) } : config2, cb));
14941
14962
  const mediaStyleArg = caps.media ? { media_style: external_exports.enum(MEDIA_STYLE_ENUM).optional().default("video").describe("Media style: text only, still images, or slideshow video with narration (default: video)") } : {};
14942
14963
  const styleNote = (args) => caps.media ? `, ${args.media_style ?? "video"} style` : "";
14943
- server.registerPrompt(
14964
+ registerPrompt(
14944
14965
  "create-quiz",
14945
14966
  {
14946
14967
  title: "Create a Quiz",
14947
14968
  description: "Build a scored knowledge quiz with narrated video questions",
14948
- argsSchema: {
14969
+ argsSchema: external_exports.object({
14949
14970
  topic: external_exports.string().optional().describe("Quiz topic (e.g. 'Space exploration', 'Premier League')"),
14950
14971
  question_count: external_exports.string().optional().default("8").describe("Number of questions (default: 8)"),
14951
14972
  ...mediaStyleArg
14952
- }
14973
+ })
14953
14974
  },
14954
14975
  async (rawArgs) => {
14955
14976
  const args = coercePromptArgs(rawArgs);
@@ -14974,17 +14995,17 @@ function registerPrompts(server, caps = FULL_CAPS) {
14974
14995
  };
14975
14996
  }
14976
14997
  );
14977
- server.registerPrompt(
14998
+ registerPrompt(
14978
14999
  "create-personality-quiz",
14979
15000
  {
14980
15001
  title: "Create a Personality Quiz",
14981
15002
  description: "Build a 'Which X are you?' personality quiz with category-based scoring and outcome screens",
14982
- argsSchema: {
15003
+ argsSchema: external_exports.object({
14983
15004
  topic: external_exports.string().optional().describe("Quiz theme (e.g. 'Which city are you?', 'What's your work style?')"),
14984
15005
  categories: external_exports.string().optional().describe("Comma-separated outcome categories (e.g. 'Creative, Analytical, Leader, Collaborator')"),
14985
15006
  question_count: external_exports.string().optional().default("8").describe("Number of questions (default: 8)"),
14986
15007
  ...mediaStyleArg
14987
- }
15008
+ })
14988
15009
  },
14989
15010
  async (rawArgs) => {
14990
15011
  const args = coercePromptArgs(rawArgs);
@@ -15013,16 +15034,16 @@ Outcome categories: ${args.categories}` : "";
15013
15034
  };
15014
15035
  }
15015
15036
  );
15016
- server.registerPrompt(
15037
+ registerPrompt(
15017
15038
  "create-interview",
15018
15039
  {
15019
15040
  title: "Create an Interview",
15020
15041
  description: "Build a form to collect case studies, async video interviews, expert input, or journalist responses",
15021
- argsSchema: {
15042
+ argsSchema: external_exports.object({
15022
15043
  purpose: external_exports.string().optional().describe("What you're collecting (e.g. 'case study', 'expert input', 'journalist responses')"),
15023
15044
  response_format: external_exports.enum(["video", "audio", "text", "all"]).optional().default("all").describe("How respondents reply (default: all - video, audio, and text)"),
15024
15045
  needs_consent: external_exports.string().optional().default("true").describe("Include a consent statement (default: true)")
15025
- }
15046
+ })
15026
15047
  },
15027
15048
  async (rawArgs) => {
15028
15049
  const args = coercePromptArgs(rawArgs);
@@ -15047,15 +15068,15 @@ Outcome categories: ${args.categories}` : "";
15047
15068
  };
15048
15069
  }
15049
15070
  );
15050
- server.registerPrompt(
15071
+ registerPrompt(
15051
15072
  "create-survey",
15052
15073
  {
15053
15074
  title: "Create a Survey",
15054
15075
  description: "Build a feedback survey, NPS form, or research questionnaire",
15055
- argsSchema: {
15076
+ argsSchema: external_exports.object({
15056
15077
  topic: external_exports.string().optional().describe("What feedback you're collecting (e.g. 'NPS', 'event feedback', 'product satisfaction')"),
15057
15078
  anonymous: external_exports.string().optional().default("true").describe("Whether the survey is anonymous (default: true)")
15058
- }
15079
+ })
15059
15080
  },
15060
15081
  async (rawArgs) => {
15061
15082
  const args = coercePromptArgs(rawArgs);
@@ -15080,17 +15101,17 @@ Outcome categories: ${args.categories}` : "";
15080
15101
  };
15081
15102
  }
15082
15103
  );
15083
- server.registerPrompt(
15104
+ registerPrompt(
15084
15105
  "create-comprehension-quiz",
15085
15106
  {
15086
15107
  title: "Create a YouTube Comprehension Quiz",
15087
15108
  description: "Build a comprehension quiz from a YouTube video - tests whether the viewer actually watched and understood the content",
15088
- argsSchema: {
15109
+ argsSchema: external_exports.object({
15089
15110
  youtube_url: external_exports.string().optional().describe("YouTube video URL to create the quiz from"),
15090
15111
  question_count: external_exports.string().optional().default("8").describe("Number of questions (default: 8)"),
15091
15112
  audience: external_exports.string().optional().describe("Target audience (e.g. 'children aged 5-8', 'university students', 'general')"),
15092
15113
  ...mediaStyleArg
15093
- }
15114
+ })
15094
15115
  },
15095
15116
  async (rawArgs) => {
15096
15117
  const args = coercePromptArgs(rawArgs);
@@ -15118,15 +15139,15 @@ Outcome categories: ${args.categories}` : "";
15118
15139
  };
15119
15140
  }
15120
15141
  );
15121
- if (caps.media) server.registerPrompt(
15142
+ if (caps.media) registerPrompt(
15122
15143
  "create-composition-quiz",
15123
15144
  {
15124
15145
  title: "Create a Composition Quiz",
15125
15146
  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",
15126
- argsSchema: {
15147
+ argsSchema: external_exports.object({
15127
15148
  topic: external_exports.string().optional().describe("Quiz topic (e.g. 'world flags', 'movie emoji', '90s music')"),
15128
15149
  question_count: external_exports.string().optional().default("5").describe("Number of questions (default: 5 - one scored choice node per question)")
15129
- }
15150
+ })
15130
15151
  },
15131
15152
  async (rawArgs) => {
15132
15153
  const args = coercePromptArgs(rawArgs);
@@ -15152,12 +15173,12 @@ Outcome categories: ${args.categories}` : "";
15152
15173
  };
15153
15174
  }
15154
15175
  );
15155
- server.registerPrompt(
15176
+ registerPrompt(
15156
15177
  "create-funnel",
15157
15178
  {
15158
15179
  title: "Create a Funnel",
15159
15180
  description: "Lead qualification funnels with branching logic are planned but not yet available. Build a linear qualification survey or quiz directly with clipform_create_form now instead of branching.",
15160
- argsSchema: {}
15181
+ argsSchema: external_exports.object({})
15161
15182
  },
15162
15183
  async () => ({
15163
15184
  messages: [
@@ -15171,15 +15192,15 @@ Outcome categories: ${args.categories}` : "";
15171
15192
  ]
15172
15193
  })
15173
15194
  );
15174
- server.registerPrompt(
15195
+ registerPrompt(
15175
15196
  "create-testimonial",
15176
15197
  {
15177
15198
  title: "Collect Testimonials",
15178
15199
  description: "Build a video testimonial collection form - capture authentic customer stories on camera",
15179
- argsSchema: {
15200
+ argsSchema: external_exports.object({
15180
15201
  use_case: external_exports.string().optional().describe("What stories you're collecting (e.g. 'customer success', 'product review', 'case study')"),
15181
15202
  ...mediaStyleArg
15182
- }
15203
+ })
15183
15204
  },
15184
15205
  async (args) => ({
15185
15206
  messages: [
@@ -15201,14 +15222,14 @@ Outcome categories: ${args.categories}` : "";
15201
15222
  ]
15202
15223
  })
15203
15224
  );
15204
- server.registerPrompt(
15225
+ registerPrompt(
15205
15226
  "create-application",
15206
15227
  {
15207
15228
  title: "Create an Application Form",
15208
15229
  description: "Build a structured application form - job applications, programme admissions, grant proposals with video responses",
15209
- argsSchema: {
15230
+ argsSchema: external_exports.object({
15210
15231
  role: external_exports.string().optional().describe("What the application is for (e.g. 'Software Engineer', 'Scholarship', 'Membership')")
15211
- }
15232
+ })
15212
15233
  },
15213
15234
  async (args) => ({
15214
15235
  messages: [
@@ -15230,15 +15251,15 @@ Outcome categories: ${args.categories}` : "";
15230
15251
  ]
15231
15252
  })
15232
15253
  );
15233
- server.registerPrompt(
15254
+ registerPrompt(
15234
15255
  "create-booking",
15235
15256
  {
15236
15257
  title: "Create a Booking Form",
15237
15258
  description: "Build an event registration, course signup, or booking form with a personal video welcome",
15238
- argsSchema: {
15259
+ argsSchema: external_exports.object({
15239
15260
  event_name: external_exports.string().optional().describe("Name of the event or offering (e.g. 'Design Workshop', 'Intro Call')"),
15240
15261
  event_type: external_exports.string().optional().describe("Type of event (e.g. 'workshop', 'webinar', 'consultation', 'course')")
15241
- }
15262
+ })
15242
15263
  },
15243
15264
  async (args) => ({
15244
15265
  messages: [
@@ -15260,15 +15281,15 @@ Outcome categories: ${args.categories}` : "";
15260
15281
  ]
15261
15282
  })
15262
15283
  );
15263
- server.registerPrompt(
15284
+ registerPrompt(
15264
15285
  "create-intake",
15265
15286
  {
15266
15287
  title: "Create a Client Intake Form",
15267
15288
  description: "Build a warm client intake or onboarding form - capture contact details and what the client needs",
15268
- argsSchema: {
15289
+ argsSchema: external_exports.object({
15269
15290
  use_case: external_exports.string().optional().describe("What kind of business or service (e.g. 'massage', 'coaching', 'personal training', 'agency')"),
15270
15291
  response_format: external_exports.enum(["video", "audio", "text", "all"]).optional().describe("How people answer the open question (default: all)")
15271
- }
15292
+ })
15272
15293
  },
15273
15294
  async (args) => ({
15274
15295
  messages: [
@@ -15290,14 +15311,14 @@ Outcome categories: ${args.categories}` : "";
15290
15311
  ]
15291
15312
  })
15292
15313
  );
15293
- server.registerPrompt(
15314
+ registerPrompt(
15294
15315
  "create-lead-capture",
15295
15316
  {
15296
15317
  title: "Create a Lead Capture Form",
15297
15318
  description: "Build a short lead capture or enquiry form - turn interest into a contact with minimal friction",
15298
- argsSchema: {
15319
+ argsSchema: external_exports.object({
15299
15320
  use_case: external_exports.string().optional().describe("What you're capturing leads for (e.g. 'a service', 'a product', 'a waitlist', 'a quote')")
15300
- }
15321
+ })
15301
15322
  },
15302
15323
  async (args) => ({
15303
15324
  messages: [
@@ -15322,22 +15343,17 @@ Outcome categories: ${args.categories}` : "";
15322
15343
  }
15323
15344
 
15324
15345
  export {
15325
- $constructor,
15326
- defineLazy,
15327
- clone,
15328
- normalizeParams,
15329
- parse,
15330
- parseAsync,
15331
- safeParse,
15332
- safeParseAsync,
15333
- $ZodType,
15334
- $ZodObject,
15346
+ NEVER,
15335
15347
  toJSONSchema,
15336
15348
  iso_exports,
15349
+ safeParse2 as safeParse,
15337
15350
  string2 as string,
15351
+ email2 as email,
15352
+ url,
15338
15353
  number2 as number,
15339
15354
  boolean2 as boolean,
15340
15355
  _null3 as _null,
15356
+ any,
15341
15357
  unknown,
15342
15358
  array,
15343
15359
  object,
@@ -15348,14 +15364,15 @@ export {
15348
15364
  record,
15349
15365
  _enum2 as _enum,
15350
15366
  literal,
15351
- ZodOptional,
15352
15367
  optional,
15353
- custom,
15368
+ lazy,
15354
15369
  preprocess,
15370
+ ZodIssueCode,
15371
+ coerce_exports,
15355
15372
  external_exports,
15356
15373
  WORKFLOW_TYPES2 as WORKFLOW_TYPES,
15357
15374
  buildDiscovery,
15358
15375
  getWorkflowText,
15359
15376
  registerPrompts
15360
15377
  };
15361
- //# sourceMappingURL=chunk-KWR2WJQI.js.map
15378
+ //# sourceMappingURL=chunk-54RZGUSA.js.map