@clipform/mcp-server 2.3.0 → 2.4.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-WCPHQ4GU.js → chunk-4G4MF3ME.js} +2 -2
- package/dist/{chunk-YZJZ5NPL.js → chunk-5LV55T7F.js} +182 -3
- package/dist/chunk-5LV55T7F.js.map +1 -0
- package/dist/{chunk-WNXTF76M.js → chunk-IDOG3ZTF.js} +2 -2
- package/dist/{chunk-QC4JULCW.js → chunk-NMIUCFJT.js} +4 -4
- 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-YZJZ5NPL.js.map +0 -1
- /package/dist/{chunk-WCPHQ4GU.js.map → chunk-4G4MF3ME.js.map} +0 -0
- /package/dist/{chunk-WNXTF76M.js.map → chunk-IDOG3ZTF.js.map} +0 -0
- /package/dist/{chunk-QC4JULCW.js.map → chunk-NMIUCFJT.js.map} +0 -0
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
WORKFLOW_TYPES,
|
|
3
3
|
getDiscoveryParams,
|
|
4
4
|
getSessionContextWithAuth
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5LV55T7F.js";
|
|
6
6
|
import {
|
|
7
7
|
__export
|
|
8
8
|
} from "./chunk-G3PMV62Z.js";
|
|
@@ -4708,4 +4708,4 @@ export {
|
|
|
4708
4708
|
getWorkflowText,
|
|
4709
4709
|
registerPrompts
|
|
4710
4710
|
};
|
|
4711
|
-
//# sourceMappingURL=chunk-
|
|
4711
|
+
//# sourceMappingURL=chunk-4G4MF3ME.js.map
|
|
@@ -544,6 +544,9 @@ var DRAW_GAME_DEFAULT_TIERS = [
|
|
|
544
544
|
{ min_score: 75, label: "Great match" },
|
|
545
545
|
{ min_score: 92, label: "Perfect" }
|
|
546
546
|
];
|
|
547
|
+
var DEFAULT_MAX_RECORDING_SECONDS = 120;
|
|
548
|
+
var MAX_RECORDING_SECONDS_MIN = 10;
|
|
549
|
+
var MAX_RECORDING_SECONDS_MAX = 300;
|
|
547
550
|
var NODE_TYPES = {
|
|
548
551
|
start: {
|
|
549
552
|
label: "Start",
|
|
@@ -719,6 +722,14 @@ var NODE_TYPES = {
|
|
|
719
722
|
type: "string",
|
|
720
723
|
label: "Content media type",
|
|
721
724
|
description: "How the node media was provided"
|
|
725
|
+
},
|
|
726
|
+
max_recording_seconds: {
|
|
727
|
+
type: "number",
|
|
728
|
+
default: DEFAULT_MAX_RECORDING_SECONDS,
|
|
729
|
+
minimum: MAX_RECORDING_SECONDS_MIN,
|
|
730
|
+
maximum: MAX_RECORDING_SECONDS_MAX,
|
|
731
|
+
label: "Max recording length (seconds)",
|
|
732
|
+
description: "Cap on the audio/video recorder for this node, in seconds"
|
|
722
733
|
}
|
|
723
734
|
}
|
|
724
735
|
},
|
|
@@ -1029,6 +1040,22 @@ var NODE_TYPES = {
|
|
|
1029
1040
|
value: { type: "string" }
|
|
1030
1041
|
}
|
|
1031
1042
|
}
|
|
1043
|
+
},
|
|
1044
|
+
// Consent/opt-in agreements the respondent was shown. Present only when
|
|
1045
|
+
// the node has consent items. `accepted` is their choice; `label` is the
|
|
1046
|
+
// exact wording they agreed to, snapshotted per response (#2828).
|
|
1047
|
+
consent: {
|
|
1048
|
+
type: "array",
|
|
1049
|
+
items: {
|
|
1050
|
+
type: "object",
|
|
1051
|
+
required: ["name", "accepted", "type", "label"],
|
|
1052
|
+
properties: {
|
|
1053
|
+
name: { type: "string" },
|
|
1054
|
+
accepted: { type: "boolean" },
|
|
1055
|
+
type: { type: "string", enum: CONSENT_TYPES },
|
|
1056
|
+
label: { type: "string" }
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1032
1059
|
}
|
|
1033
1060
|
}
|
|
1034
1061
|
}
|
|
@@ -1810,7 +1837,10 @@ var NODE_TYPES = {
|
|
|
1810
1837
|
supports_media: false,
|
|
1811
1838
|
is_system: false,
|
|
1812
1839
|
show_in_results: false,
|
|
1813
|
-
default_config:
|
|
1840
|
+
default_config: {
|
|
1841
|
+
title: "Thank you!",
|
|
1842
|
+
message: "Your response has been submitted."
|
|
1843
|
+
},
|
|
1814
1844
|
config_schema: {
|
|
1815
1845
|
type: "object",
|
|
1816
1846
|
properties: {
|
|
@@ -2115,7 +2145,8 @@ var HELP_TOPICS = {
|
|
|
2115
2145
|
liveAndDraft: { path: "/help/managing-forms", anchor: "live-and-draft" },
|
|
2116
2146
|
publishingChanges: { path: "/help/managing-forms", anchor: "publishing-changes" },
|
|
2117
2147
|
embedding: { path: "/help/embed", anchor: null },
|
|
2118
|
-
publicResults: { path: "/help/public-results", anchor: null }
|
|
2148
|
+
publicResults: { path: "/help/public-results", anchor: null },
|
|
2149
|
+
trash: { path: "/help/managing-forms", anchor: "trash" }
|
|
2119
2150
|
};
|
|
2120
2151
|
function buildHelpLinks(docsBaseUrl) {
|
|
2121
2152
|
const links = {};
|
|
@@ -2206,6 +2237,154 @@ var MEDIA_DIRECT_MAX_BYTES = 20 * 1024 * 1024;
|
|
|
2206
2237
|
var SUPABASE_STORAGE_MAX_BYTES = 50 * 1024 * 1024;
|
|
2207
2238
|
var VIDEO_COMPRESS_FLOOR_BYTES = 1 * 1024 * 1024;
|
|
2208
2239
|
var HELP_LINKS = buildHelpLinks(BUSINESS.urls.docs);
|
|
2240
|
+
var PLAN_LIMITS = {
|
|
2241
|
+
free_v1: {
|
|
2242
|
+
tier: 0,
|
|
2243
|
+
name: "Free",
|
|
2244
|
+
price: "$0",
|
|
2245
|
+
period: "forever",
|
|
2246
|
+
price_cents: 0,
|
|
2247
|
+
stripe_price_id: { test: null, live: null },
|
|
2248
|
+
// Shopify App Pricing plan NAME (must match the Partner Dashboard plan
|
|
2249
|
+
// exactly - the app_subscriptions/update payload carries this name). Free
|
|
2250
|
+
// generates no subscription, so this is only used by the drift check.
|
|
2251
|
+
shopify_plan_handle: "Free",
|
|
2252
|
+
node_limit: null,
|
|
2253
|
+
form_limit: 5,
|
|
2254
|
+
workspace_limit: 1,
|
|
2255
|
+
show_branding: true,
|
|
2256
|
+
custom_theme: false,
|
|
2257
|
+
response_limit: 100,
|
|
2258
|
+
features: [
|
|
2259
|
+
"Up to 5 forms",
|
|
2260
|
+
"Unlimited questions per form",
|
|
2261
|
+
// "completed" is not a tightening: response_limit has always been 100,
|
|
2262
|
+
// but the counter now excludes partials (#2618), so this wording is both
|
|
2263
|
+
// accurate and strictly more generous than what it replaced.
|
|
2264
|
+
"100 completed responses per month",
|
|
2265
|
+
"Full AI tooling (TTS, media, video)",
|
|
2266
|
+
"Clipform branding"
|
|
2267
|
+
]
|
|
2268
|
+
},
|
|
2269
|
+
pro_v1: {
|
|
2270
|
+
tier: 1,
|
|
2271
|
+
name: "Pro",
|
|
2272
|
+
price: "$25",
|
|
2273
|
+
period: "/month",
|
|
2274
|
+
price_cents: 2500,
|
|
2275
|
+
stripe_price_id: { test: "price_1TZnmhCWdEPD0KoNWWJTc3B6", live: "price_1TZnrZEJOD9ik3LhhFwGZ6ut" },
|
|
2276
|
+
// Must match the Partner Dashboard plan name exactly (drives webhook plan
|
|
2277
|
+
// mapping + the price drift check). Keep in step with price_cents above.
|
|
2278
|
+
shopify_plan_handle: "Pro",
|
|
2279
|
+
node_limit: null,
|
|
2280
|
+
form_limit: null,
|
|
2281
|
+
workspace_limit: null,
|
|
2282
|
+
show_branding: false,
|
|
2283
|
+
custom_theme: true,
|
|
2284
|
+
response_limit: null,
|
|
2285
|
+
features: [
|
|
2286
|
+
"Unlimited forms",
|
|
2287
|
+
"Unlimited questions",
|
|
2288
|
+
"Unlimited responses",
|
|
2289
|
+
"Custom themes & colors",
|
|
2290
|
+
"Remove Clipform branding"
|
|
2291
|
+
]
|
|
2292
|
+
},
|
|
2293
|
+
// Banded Pro (#1937). pro_v2_1k IS the current tier-1 version (#2671) - new
|
|
2294
|
+
// Pro signups land here; pro_v1 is retained only to grandfather the accounts
|
|
2295
|
+
// that predate the flip.
|
|
2296
|
+
//
|
|
2297
|
+
// Billing is one subscription with TWO Stripe items: this licensed base
|
|
2298
|
+
// billed in advance, plus a volume-tiered metered top-up (STRIPE_BAND_PRICE_ID
|
|
2299
|
+
// below) billed in arrears - so the band a workspace lands in is decided by
|
|
2300
|
+
// usage, never by swapping plan version. Completed responses report to the
|
|
2301
|
+
// Stripe usage meter (#2651, apps/api/src/lib/usage-metering.ts) via
|
|
2302
|
+
// planMetersUsage below, and checkout appends the metered item whenever a band
|
|
2303
|
+
// price is configured for the mode (#2652). The band price now exists in BOTH
|
|
2304
|
+
// test and live (STRIPE_BAND_PRICE_ID), so a new Pro checkout is two-item and
|
|
2305
|
+
// usage above the base band IS charged once this deploys - the HUMAN LEGAL
|
|
2306
|
+
// REVIEW on LEGAL.billing below must clear before that go-live.
|
|
2307
|
+
//
|
|
2308
|
+
// `response_limit` counts COMPLETED response sets only; partials never
|
|
2309
|
+
// consume allowance.
|
|
2310
|
+
//
|
|
2311
|
+
// shopify_plan_handle is null until the matching Partner Dashboard plans
|
|
2312
|
+
// exist - so planVersionForShopifyPlan still maps Shopify's "Pro" to pro_v1
|
|
2313
|
+
// ($25 unlimited) while web signups get this band. Creating those plans is
|
|
2314
|
+
// what closes that cross-channel gap.
|
|
2315
|
+
pro_v2_1k: {
|
|
2316
|
+
tier: 1,
|
|
2317
|
+
name: "Pro",
|
|
2318
|
+
price: "$24",
|
|
2319
|
+
period: "/month",
|
|
2320
|
+
price_cents: 2400,
|
|
2321
|
+
stripe_price_id: {
|
|
2322
|
+
test: "price_1U0lA6EJOD9ik3Lhube5eBcK",
|
|
2323
|
+
live: "price_1U115SEJOD9ik3LhOU9OkqJk"
|
|
2324
|
+
},
|
|
2325
|
+
shopify_plan_handle: null,
|
|
2326
|
+
node_limit: null,
|
|
2327
|
+
form_limit: null,
|
|
2328
|
+
workspace_limit: null,
|
|
2329
|
+
show_branding: false,
|
|
2330
|
+
custom_theme: true,
|
|
2331
|
+
response_limit: 1e3,
|
|
2332
|
+
features: [
|
|
2333
|
+
"Unlimited forms",
|
|
2334
|
+
"Unlimited questions",
|
|
2335
|
+
"1,000 completed responses per month",
|
|
2336
|
+
"Custom themes & colors",
|
|
2337
|
+
"Remove Clipform branding"
|
|
2338
|
+
]
|
|
2339
|
+
},
|
|
2340
|
+
pro_v2_5k: {
|
|
2341
|
+
tier: 1,
|
|
2342
|
+
name: "Pro",
|
|
2343
|
+
price: "$49",
|
|
2344
|
+
period: "/month",
|
|
2345
|
+
price_cents: 4900,
|
|
2346
|
+
stripe_price_id: { test: null, live: null },
|
|
2347
|
+
shopify_plan_handle: null,
|
|
2348
|
+
node_limit: null,
|
|
2349
|
+
form_limit: null,
|
|
2350
|
+
workspace_limit: null,
|
|
2351
|
+
show_branding: false,
|
|
2352
|
+
custom_theme: true,
|
|
2353
|
+
response_limit: 5e3,
|
|
2354
|
+
features: [
|
|
2355
|
+
"Unlimited forms",
|
|
2356
|
+
"Unlimited questions",
|
|
2357
|
+
"5,000 completed responses per month",
|
|
2358
|
+
"Custom themes & colors",
|
|
2359
|
+
"Remove Clipform branding"
|
|
2360
|
+
]
|
|
2361
|
+
},
|
|
2362
|
+
pro_v2_20k: {
|
|
2363
|
+
tier: 1,
|
|
2364
|
+
name: "Pro",
|
|
2365
|
+
price: "$99",
|
|
2366
|
+
period: "/month",
|
|
2367
|
+
price_cents: 9900,
|
|
2368
|
+
stripe_price_id: { test: null, live: null },
|
|
2369
|
+
shopify_plan_handle: null,
|
|
2370
|
+
node_limit: null,
|
|
2371
|
+
form_limit: null,
|
|
2372
|
+
workspace_limit: null,
|
|
2373
|
+
show_branding: false,
|
|
2374
|
+
custom_theme: true,
|
|
2375
|
+
response_limit: 2e4,
|
|
2376
|
+
features: [
|
|
2377
|
+
"Unlimited forms",
|
|
2378
|
+
"Unlimited questions",
|
|
2379
|
+
"20,000 completed responses per month",
|
|
2380
|
+
"Custom themes & colors",
|
|
2381
|
+
"Remove Clipform branding"
|
|
2382
|
+
]
|
|
2383
|
+
}
|
|
2384
|
+
};
|
|
2385
|
+
var PRO_BANDS = ["pro_v2_1k", "pro_v2_5k", "pro_v2_20k"].map(
|
|
2386
|
+
(version) => ({ version, ...PLAN_LIMITS[version] })
|
|
2387
|
+
);
|
|
2209
2388
|
var CONTACT_FIELDS = [
|
|
2210
2389
|
{ id: "first_name", label: "First Name", type: "text", placeholder: "Enter first name", order: 1 },
|
|
2211
2390
|
{ id: "last_name", label: "Last Name", type: "text", placeholder: "Enter last name", order: 2 },
|
|
@@ -2494,4 +2673,4 @@ export {
|
|
|
2494
2673
|
getSessionContextWithAuth,
|
|
2495
2674
|
getSessionContext
|
|
2496
2675
|
};
|
|
2497
|
-
//# sourceMappingURL=chunk-
|
|
2676
|
+
//# sourceMappingURL=chunk-5LV55T7F.js.map
|