@clipform/mcp-server 2.11.1 → 2.12.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/{chunk-LWHXSMFA.js → chunk-JHCN23OK.js} +2 -2
- package/dist/{chunk-WXZB54NP.js → chunk-SHOP5J2M.js} +2 -2
- package/dist/{chunk-E46OAHEX.js → chunk-UVRL2EXF.js} +26 -7
- package/dist/{chunk-E46OAHEX.js.map → chunk-UVRL2EXF.js.map} +1 -1
- package/dist/{chunk-NJIIT3HX.js → chunk-YSLAOZBU.js} +59 -3
- package/dist/chunk-YSLAOZBU.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.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-NJIIT3HX.js.map +0 -1
- /package/dist/{chunk-LWHXSMFA.js.map → chunk-JHCN23OK.js.map} +0 -0
- /package/dist/{chunk-WXZB54NP.js.map → chunk-SHOP5J2M.js.map} +0 -0
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
FULL_CAPS,
|
|
6
6
|
callApi,
|
|
7
7
|
getSessionContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YSLAOZBU.js";
|
|
9
9
|
|
|
10
10
|
// src/lib/guides.ts
|
|
11
11
|
var guidesPromise = null;
|
|
@@ -143,4 +143,4 @@ export {
|
|
|
143
143
|
getGuideUri,
|
|
144
144
|
registerResources
|
|
145
145
|
};
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-JHCN23OK.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
WORKFLOW_TYPES,
|
|
4
4
|
getDiscoveryParams,
|
|
5
5
|
getSessionContextWithAuth
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YSLAOZBU.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-
|
|
4859
|
+
//# sourceMappingURL=chunk-SHOP5J2M.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getWorkflowText,
|
|
7
7
|
objectType,
|
|
8
8
|
registerPrompts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-SHOP5J2M.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-JHCN23OK.js";
|
|
19
19
|
import {
|
|
20
20
|
ACTIVE_NODE_TYPES,
|
|
21
21
|
CONTACT_FIELDS,
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
resolveFormType,
|
|
40
40
|
structuredResult,
|
|
41
41
|
textResult
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-YSLAOZBU.js";
|
|
43
43
|
import {
|
|
44
44
|
getMcpAuth,
|
|
45
45
|
runWithMcpTool
|
|
@@ -18117,7 +18117,8 @@ var REDACTED_TYPES = {
|
|
|
18117
18117
|
details: "[contact details - view in dashboard]",
|
|
18118
18118
|
contact: "[contact details - view in dashboard]",
|
|
18119
18119
|
file_upload: "[file upload - view in dashboard]",
|
|
18120
|
-
|
|
18120
|
+
// payment is handled by paymentSummary() before this map - it surfaces a
|
|
18121
|
+
// non-PII amount/status line rather than a flat placeholder.
|
|
18121
18122
|
open: ""
|
|
18122
18123
|
// open is redacted ONLY when the answer is a recording (handled below)
|
|
18123
18124
|
};
|
|
@@ -18127,12 +18128,21 @@ function truncate(s, n = MAX_ANSWER_LENGTH) {
|
|
|
18127
18128
|
function looksLikeMediaReference(display) {
|
|
18128
18129
|
return /https?:\/\/|storage\/|\.(webm|mp4|mp3|wav|m4a|mov)\b/i.test(display);
|
|
18129
18130
|
}
|
|
18131
|
+
function paymentSummary(value) {
|
|
18132
|
+
const stripe = value?.stripe;
|
|
18133
|
+
if (!stripe) return null;
|
|
18134
|
+
const amount = typeof stripe.amount === "number" ? stripe.amount : null;
|
|
18135
|
+
const currency = typeof stripe.currency === "string" ? stripe.currency : null;
|
|
18136
|
+
const status = typeof stripe.status === "string" ? stripe.status : "unknown";
|
|
18137
|
+
if (amount === null || !currency) return null;
|
|
18138
|
+
return `${(amount / 100).toFixed(2)} ${currency.toUpperCase()} - ${status}`;
|
|
18139
|
+
}
|
|
18130
18140
|
function registerGetResponsesTool(server) {
|
|
18131
18141
|
server.registerTool(
|
|
18132
18142
|
"clipform_get_responses",
|
|
18133
18143
|
{
|
|
18134
18144
|
title: "List form responses",
|
|
18135
|
-
description: "List a Clipform form's individual responses (submissions) with time filtering - complements clipform_get_results (aggregates). Answers questions like 'what came in during the last 24 hours', 'what's the longest answer', 'what did people say'. Text answers
|
|
18145
|
+
description: "List a Clipform form's individual responses (submissions) with time filtering - complements clipform_get_results (aggregates). Answers questions like 'what came in during the last 24 hours', 'what's the longest answer', 'what did people say'. Text answers plus a non-PII payment summary (amount and status); contact details, file uploads, and audio/video answers are redacted to placeholders and the customer's payment details stay in the dashboard (the responses URL from clipform_get_form). Responses are sorted newest first unless sort: 'oldest'.",
|
|
18136
18146
|
inputSchema: {
|
|
18137
18147
|
form_id: external_exports.string().describe("Form UUID (from clipform_list_forms / clipform_create_form)"),
|
|
18138
18148
|
since: external_exports.string().datetime({ offset: true }).optional().describe("Only responses submitted at or after this ISO 8601 time (e.g. '2026-08-29T00:00:00Z')"),
|
|
@@ -18200,6 +18210,15 @@ function registerGetResponsesTool(server) {
|
|
|
18200
18210
|
const node = nodeById.get(nodeId);
|
|
18201
18211
|
const type = node?.type ?? (typeof resp?.type === "string" ? resp.type : "unknown");
|
|
18202
18212
|
const question = truncate(node?.prompt || type, 120);
|
|
18213
|
+
if (type === "payment") {
|
|
18214
|
+
const summary = paymentSummary(resp?.value);
|
|
18215
|
+
answers.push({
|
|
18216
|
+
question,
|
|
18217
|
+
type,
|
|
18218
|
+
answer: summary ?? "[payment - view in dashboard]"
|
|
18219
|
+
});
|
|
18220
|
+
continue;
|
|
18221
|
+
}
|
|
18203
18222
|
const placeholder = REDACTED_TYPES[type];
|
|
18204
18223
|
if (placeholder) {
|
|
18205
18224
|
answers.push({ question, type, answer: placeholder });
|
|
@@ -18242,7 +18261,7 @@ function registerGetResponsesTool(server) {
|
|
|
18242
18261
|
...r.answers.map((a) => ` ${a.question}: ${a.answer}`)
|
|
18243
18262
|
]),
|
|
18244
18263
|
``,
|
|
18245
|
-
`Contact details, files,
|
|
18264
|
+
`Contact details, files, and recordings are redacted here; payments show an amount/status summary only (the customer's details stay in the dashboard, which shows full response detail). For aggregate stats use clipform_get_results.`
|
|
18246
18265
|
];
|
|
18247
18266
|
return structuredResult(lines.join("\n"), {
|
|
18248
18267
|
total_matching: totalMatching,
|
|
@@ -20685,4 +20704,4 @@ export {
|
|
|
20685
20704
|
buildInstructions,
|
|
20686
20705
|
createServer
|
|
20687
20706
|
};
|
|
20688
|
-
//# sourceMappingURL=chunk-
|
|
20707
|
+
//# sourceMappingURL=chunk-UVRL2EXF.js.map
|