@clipform/mcp-server 4.4.0 → 4.4.1

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.
@@ -6,7 +6,7 @@ import {
6
6
  recoveryHint,
7
7
  structuredResult,
8
8
  textResult
9
- } from "./chunk-K2JHO4A4.js";
9
+ } from "./chunk-N4PLZPKS.js";
10
10
  import "./chunk-BV3KA6HC.js";
11
11
  import "./chunk-PBQ5BQWD.js";
12
12
  import "./chunk-PZ5AY32C.js";
@@ -29,7 +29,7 @@ import {
29
29
  union,
30
30
  unknown,
31
31
  url
32
- } from "./chunk-HWOV2WRK.js";
32
+ } from "./chunk-VFZMLB2S.js";
33
33
  import {
34
34
  GUIDE_TYPES,
35
35
  QUIZ_VARIANTS,
@@ -38,7 +38,7 @@ import {
38
38
  getGuideUri,
39
39
  guideFallbackText,
40
40
  registerResources
41
- } from "./chunk-F4AFULRJ.js";
41
+ } from "./chunk-XMQWZCRX.js";
42
42
  import {
43
43
  ANON_PREVIEW_LINK_LABEL,
44
44
  ANON_PREVIEW_NOTICE,
@@ -50,7 +50,7 @@ import {
50
50
  capsFromToolsets,
51
51
  isPreviewViewerUrl,
52
52
  withAdoptedNotice
53
- } from "./chunk-5JFU4OEI.js";
53
+ } from "./chunk-HOBEHRFH.js";
54
54
  import {
55
55
  ACTIVE_NODE_TYPES,
56
56
  CONTACT_FIELDS,
@@ -75,7 +75,7 @@ import {
75
75
  stripGatedConfigKeys,
76
76
  structuredResult,
77
77
  textResult
78
- } from "./chunk-K2JHO4A4.js";
78
+ } from "./chunk-N4PLZPKS.js";
79
79
  import {
80
80
  getMcpAuth,
81
81
  runWithMcpAuth,
@@ -20290,4 +20290,4 @@ export {
20290
20290
  * MIT Licensed
20291
20291
  *)
20292
20292
  */
20293
- //# sourceMappingURL=chunk-E2T3UTF3.js.map
20293
+ //# sourceMappingURL=chunk-5PSK2FWH.js.map
@@ -2,7 +2,7 @@ import {
2
2
  CURRENT_PLAN_VERSIONS,
3
3
  PLAN_LIMITS,
4
4
  callApi
5
- } from "./chunk-K2JHO4A4.js";
5
+ } from "./chunk-N4PLZPKS.js";
6
6
  import {
7
7
  getMcpAuth
8
8
  } from "./chunk-BV3KA6HC.js";
@@ -123,4 +123,4 @@ export {
123
123
  getSessionContextWithAuth,
124
124
  getSessionContext
125
125
  };
126
- //# sourceMappingURL=chunk-5JFU4OEI.js.map
126
+ //# sourceMappingURL=chunk-HOBEHRFH.js.map
@@ -1220,6 +1220,9 @@ var NODE_TYPES = {
1220
1220
  // is absent from the publish gate below (pre-existing drift, not widened
1221
1221
  // here) because calendar_id is owner-scoped regardless.
1222
1222
  owner_scoped_config_keys: ["calendly", "calcom", "google_meet"],
1223
+ // The viewer iframes calendly / calcom scheduling_url (Booking.tsx): an outbound embed.
1224
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847).
1225
+ blocked_for_anon_mcp: true,
1223
1226
  default_config: null,
1224
1227
  config_schema: {
1225
1228
  type: "object",
@@ -1479,6 +1482,8 @@ var NODE_TYPES = {
1479
1482
  // Files, not a flat value - a notification renders a typed placeholder (#4154).
1480
1483
  notify_inline: false,
1481
1484
  owner_scoped_config_keys: [],
1485
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847; derived into ANON_MCP_BLOCKED_NODE_TYPES).
1486
+ blocked_for_anon_mcp: true,
1482
1487
  default_config: null,
1483
1488
  config_schema: {
1484
1489
  type: "object",
@@ -1584,21 +1589,6 @@ var NODE_TYPES = {
1584
1589
  stroke_widths: [3, 6, 12],
1585
1590
  diagram: { opacity: 1, scale: 1 }
1586
1591
  },
1587
- // Named one-click setups shown as extra rows in the dashboard node picker
1588
- // (#5060). Same node type (no new id, no migration): a preset only overlays
1589
- // default_config. `open_media_picker` opens the template-image picker on the
1590
- // new node straight away. Each config key must exist in config_schema and
1591
- // `icon` must be a known node icon (packages/config/test/node-type-picker-presets.test.js).
1592
- picker_presets: [
1593
- {
1594
- id: "markup",
1595
- label: "Mark up",
1596
- icon: "Highlighter",
1597
- description: "Respondents mark a spot on a diagram or image - one red pen, undo and clear",
1598
- config: { stroke_colors: ["#EF4444"], stroke_widths: [6] },
1599
- open_media_picker: true
1600
- }
1601
- ],
1602
1592
  config_schema: {
1603
1593
  type: "object",
1604
1594
  properties: {
@@ -2001,6 +1991,8 @@ var NODE_TYPES = {
2001
1991
  // own showcase waiver (graph-validation.js) still names workspace_integration_id
2002
1992
  // directly since it's the only per-type check today.
2003
1993
  owner_scoped_config_keys: ["workspace_integration_id"],
1994
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847; derived into ANON_MCP_BLOCKED_NODE_TYPES).
1995
+ blocked_for_anon_mcp: true,
2004
1996
  // A payment confirmation line is the whole point of a notification for
2005
1997
  // this node type - always inline (#4154).
2006
1998
  notify_inline: true,
@@ -2258,6 +2250,8 @@ var NODE_TYPES = {
2258
2250
  // (filtered by NON_COUNTABLE_FILTER); false is a no-op default.
2259
2251
  notify_inline: false,
2260
2252
  owner_scoped_config_keys: [],
2253
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847; derived into ANON_MCP_BLOCKED_NODE_TYPES).
2254
+ blocked_for_anon_mcp: true,
2261
2255
  default_config: { url: "", auto_redirect: true },
2262
2256
  config_schema: {
2263
2257
  type: "object",
@@ -2292,6 +2286,8 @@ var NODE_TYPES = {
2292
2286
  // (filtered by NON_COUNTABLE_FILTER); false is a no-op default.
2293
2287
  notify_inline: false,
2294
2288
  owner_scoped_config_keys: [],
2289
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847; derived into ANON_MCP_BLOCKED_NODE_TYPES).
2290
+ blocked_for_anon_mcp: true,
2295
2291
  default_config: { links: [{ id: "default", url: "", title: "", description: "", order: 0 }], auto_redirect: false },
2296
2292
  config_schema: {
2297
2293
  type: "object",
@@ -2343,6 +2339,8 @@ var NODE_TYPES = {
2343
2339
  // copy so a forked node can't keep serving the source workspace's files;
2344
2340
  // the publish gate's "No files uploaded" check then forces a fresh upload.
2345
2341
  owner_scoped_config_keys: ["files"],
2342
+ // Unclaimed anonymous-MCP forms may not go live with this node (#4847; derived into ANON_MCP_BLOCKED_NODE_TYPES).
2343
+ blocked_for_anon_mcp: true,
2346
2344
  default_config: null,
2347
2345
  config_schema: {
2348
2346
  type: "object",
@@ -2512,7 +2510,7 @@ var NODE_TYPES = {
2512
2510
  show_share_button: { type: "boolean", label: "Show share button", default: false, description: "Show a share button above the CTA" },
2513
2511
  cta_type: { type: "string", label: "CTA type", enum: ["none", "restart", "external_link"], default: "none", description: "Primary call-to-action button type" },
2514
2512
  cta_text: { type: "string", label: "CTA button text", default: "Continue", description: "Button label for the CTA" },
2515
- cta_url: { type: "string", label: "CTA URL", format: "uri", description: "URL to open (only for external_link CTA type)", placeholder: "https://example.com" },
2513
+ cta_url: { type: "string", label: "CTA URL", format: "uri", description: "URL to open (only for external_link CTA type)", placeholder: "https://example.com", outbound_link: true },
2516
2514
  score_ranges: {
2517
2515
  type: "array",
2518
2516
  label: "Score-based content",
@@ -2539,7 +2537,7 @@ var NODE_TYPES = {
2539
2537
  category: { type: "string", label: "Category key (must match keys used in option scores)" },
2540
2538
  title: { type: "string", label: "Title" },
2541
2539
  message: { type: "string", label: "Message" },
2542
- cta_url: { type: "string", label: "CTA URL", format: "uri" },
2540
+ cta_url: { type: "string", label: "CTA URL", format: "uri", outbound_link: true },
2543
2541
  cta_text: { type: "string", label: "CTA button text" }
2544
2542
  }
2545
2543
  }
@@ -2612,6 +2610,25 @@ var RESULTS_EXCLUDED_TYPES = Object.entries(NODE_TYPES).filter(([, v]) => !v.sho
2612
2610
  var NON_STEP_TYPES = /* @__PURE__ */ new Set(["button"]);
2613
2611
  var STEP_COUNTED_TYPES = Object.entries(NODE_TYPES).filter(([k, v]) => v.show_nav_bar && !NON_STEP_TYPES.has(k)).map(([k]) => k);
2614
2612
  var RESPONSES_EXCLUDED_TYPES = Object.entries(NODE_TYPES).filter(([, v]) => !(v.show_in_responses ?? v.show_in_results)).map(([k]) => k);
2613
+ var ANON_MCP_BLOCKED_NODE_TYPES = Object.entries(NODE_TYPES).filter(([, v]) => v.blocked_for_anon_mcp === true).map(([k]) => k);
2614
+ var ANON_MCP_OUTBOUND_LINK_RULES = (() => {
2615
+ const rules = [];
2616
+ const walk = (type, schema, path) => {
2617
+ if (!schema || typeof schema !== "object") return;
2618
+ for (const [key, prop] of Object.entries(schema.properties ?? {})) {
2619
+ const next = [...path, key];
2620
+ if (prop.outbound_link === true) rules.push({ type, path: next, kind: "non_empty" });
2621
+ if (Array.isArray(prop.enum) && prop.enum.includes("external_link")) {
2622
+ rules.push({ type, path: next, kind: "equals", value: "external_link" });
2623
+ }
2624
+ walk(type, prop, next);
2625
+ if (prop.items) walk(type, prop.items, [...next, "[]"]);
2626
+ }
2627
+ for (const branch of [...schema.oneOf ?? [], ...schema.anyOf ?? []]) walk(type, branch, path);
2628
+ };
2629
+ for (const [type, def] of Object.entries(NODE_TYPES)) walk(type, def.config_schema, []);
2630
+ return rules;
2631
+ })();
2615
2632
 
2616
2633
  // ../config/form-types.js
2617
2634
  var FORM_TYPES = {
@@ -3526,4 +3543,4 @@ export {
3526
3543
  textResult,
3527
3544
  structuredResult
3528
3545
  };
3529
- //# sourceMappingURL=chunk-K2JHO4A4.js.map
3546
+ //# sourceMappingURL=chunk-N4PLZPKS.js.map