@clipform/mcp-server 2.10.10 → 2.11.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.
@@ -3,7 +3,7 @@ import {
3
3
  WORKFLOW_TYPES,
4
4
  getDiscoveryParams,
5
5
  getSessionContextWithAuth
6
- } from "./chunk-SAAH4U7O.js";
6
+ } from "./chunk-ETX3HYZE.js";
7
7
  import {
8
8
  __export
9
9
  } from "./chunk-G3PMV62Z.js";
@@ -4856,4 +4856,4 @@ export {
4856
4856
  getWorkflowText,
4857
4857
  registerPrompts
4858
4858
  };
4859
- //# sourceMappingURL=chunk-RMMQVPZN.js.map
4859
+ //# sourceMappingURL=chunk-3P4ARF7X.js.map
@@ -34,6 +34,13 @@ var FEATURES = {
34
34
  status: "live",
35
35
  category: "builder"
36
36
  },
37
+ consent_documents: {
38
+ name: "Agreement documents",
39
+ description: "Attach a PDF agreement to a consent item, read inline in the viewer with scroll-to-accept",
40
+ enabled: false,
41
+ status: "beta",
42
+ category: "builder"
43
+ },
37
44
  node_logic: {
38
45
  name: "Node routing logic",
39
46
  description: "Define the order nodes appear in - currently supports linear paths (A to B to C)",
@@ -1094,7 +1101,21 @@ var NODE_TYPES = {
1094
1101
  name: { type: "string" },
1095
1102
  label: { type: "string" },
1096
1103
  order: { type: "number" },
1097
- type: { type: "string", enum: CONSENT_TYPES }
1104
+ type: { type: "string", enum: CONSENT_TYPES },
1105
+ // Optional attached agreement document (PDF only in v1, #2760). Served
1106
+ // from the public node-media bucket; `version` bumps on file replace.
1107
+ document: {
1108
+ type: "object",
1109
+ properties: {
1110
+ storage_path: { type: "string" },
1111
+ filename: { type: "string" },
1112
+ url: { type: "string" },
1113
+ version: { type: "string" }
1114
+ }
1115
+ },
1116
+ // When true, the consent checkbox stays disabled until the respondent
1117
+ // scrolls the attached document to the end (scrollwrap gating, #2760).
1118
+ require_scroll_to_accept: { type: "boolean" }
1098
1119
  }
1099
1120
  }
1100
1121
  }
@@ -1128,7 +1149,13 @@ var NODE_TYPES = {
1128
1149
  name: { type: "string" },
1129
1150
  label: { type: "string" },
1130
1151
  accepted: { type: "boolean" },
1131
- type: { type: "string", enum: CONSENT_TYPES }
1152
+ type: { type: "string", enum: CONSENT_TYPES },
1153
+ // Scrollwrap audit trail (#2760), present only for document-gated
1154
+ // consent items: whether they scrolled to the end, the exact
1155
+ // document version they saw, and when they accepted.
1156
+ reached_end: { type: "boolean" },
1157
+ document_version: { type: "string" },
1158
+ accepted_at: { type: "string" }
1132
1159
  }
1133
1160
  },
1134
1161
  description: "Consent checkbox entries"
@@ -1163,7 +1190,11 @@ var NODE_TYPES = {
1163
1190
  name: { type: "string" },
1164
1191
  accepted: { type: "boolean" },
1165
1192
  type: { type: "string", enum: CONSENT_TYPES },
1166
- label: { type: "string" }
1193
+ label: { type: "string" },
1194
+ // Scrollwrap audit trail (#2760), emitted only for document-gated items.
1195
+ reached_end: { type: "boolean" },
1196
+ document_version: { type: "string" },
1197
+ accepted_at: { type: "string" }
1167
1198
  }
1168
1199
  }
1169
1200
  }
@@ -1434,7 +1465,7 @@ var NODE_TYPES = {
1434
1465
  shorthand: "Camera",
1435
1466
  icon: "Camera",
1436
1467
  color: "#FCE7F3",
1437
- description: "Capture a photo from the device camera",
1468
+ description: "Capture a photo or video from the device camera",
1438
1469
  category: "input",
1439
1470
  sort_order: 6.6,
1440
1471
  has_options: false,
@@ -1462,11 +1493,20 @@ var NODE_TYPES = {
1462
1493
  default: true,
1463
1494
  label: "Allow choosing from photo library",
1464
1495
  description: "Show a secondary option to pick an existing photo instead of taking a new one"
1496
+ },
1497
+ allowed_capture: {
1498
+ type: "array",
1499
+ items: { type: "string", enum: ["photo", "video"] },
1500
+ default: ["photo"],
1501
+ label: "What can respondents capture?",
1502
+ description: "Which capture types this node accepts - photo, video, or both (existing nodes stay photo-only)",
1503
+ enumLabels: { photo: "Photo", video: "Video" }
1465
1504
  }
1466
1505
  }
1467
1506
  },
1468
1507
  // Reuses file_upload's response shape verbatim (single-item array) so
1469
1508
  // Results/exports/webhooks treat it the same way (scaffold skill: shape reuse).
1509
+ // A video submission carries a video mime_type - the shape doesn't change (#2759).
1470
1510
  response_schema: {
1471
1511
  type: "object",
1472
1512
  required: ["files"],
@@ -1481,14 +1521,14 @@ var NODE_TYPES = {
1481
1521
  url: { type: "string", format: "uri", description: "Signed Supabase Storage URL for download" },
1482
1522
  name: { type: "string", description: "Original filename" },
1483
1523
  size: { type: "integer", minimum: 1, description: "File size in bytes" },
1484
- mime_type: { type: "string", description: "File MIME type" },
1524
+ mime_type: { type: "string", description: "File MIME type (image/* or video/*)" },
1485
1525
  uploaded_at: { type: "string", format: "date-time", description: "ISO timestamp of upload completion" },
1486
- storage_path: { type: "string", description: "Full storage path: workspace_id/form_id/node_id/uuid.ext" }
1526
+ storage_path: { type: "string", description: "Bucket-prefixed storage path: respondent-captures/workspace_id/form_id/session_id/uuid.ext" }
1487
1527
  }
1488
1528
  },
1489
1529
  minItems: 1,
1490
1530
  maxItems: 1,
1491
- description: "The captured photo (single-item array, mirroring file_upload)"
1531
+ description: "The captured photo or video (single-item array, mirroring file_upload)"
1492
1532
  }
1493
1533
  }
1494
1534
  },
@@ -2955,4 +2995,4 @@ export {
2955
2995
  getSessionContextWithAuth,
2956
2996
  getSessionContext
2957
2997
  };
2958
- //# sourceMappingURL=chunk-SAAH4U7O.js.map
2998
+ //# sourceMappingURL=chunk-ETX3HYZE.js.map