spl-pay-per-suite 1.1.5 → 1.1.8

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/README.md CHANGED
@@ -2,19 +2,31 @@
2
2
 
3
3
  **SPL Pay Per Suite** — freemium quotes, Stripe (humans) + x402 (agents). Library, CLI, and MCP.
4
4
 
5
- ## Pricing (v2 freemium)
5
+ ## Pricing (canonical · matches live API)
6
6
 
7
7
  | Tier | Rule |
8
8
  |------|------|
9
- | **Free** | First **1 GiB per job** — $0 (showcase) |
10
- | **Usage** | Bytes over free: **~ $0.03/GB** (2¢/GB after 50 GB over free) |
11
- | **Min paid** | $2.00 once over free |
9
+ | **Free** | First **100 GB per job** — $0 |
10
+ | **Usage** | Next 100 paid GB: **$0.05 / GB** · then **$0.04 / GB** |
11
+ | **Min paid** | **$0.05** once over free |
12
+ | **Ref** | Under typical first paid cloud egress (~$0.09/GB) |
12
13
 
13
14
  **Try Gate is retired.** Evaluate on free suite — not a $9 chip-in.
14
15
 
15
- License packages (CDDG:Split, ZRW tiers, etc.) remain separate fixed SKUs via catalog/x402.
16
+ ### Standing license SKUs (not suite metered)
16
17
 
17
- Live: [www.slidphilabs.com/pps](https://www.slidphilabs.com/pps) · Discovery: [GET /api/agent](https://www.slidphilabs.com/api/agent)
18
+ | SKU | USD |
19
+ |-----|----:|
20
+ | CDDG:Split | 199 |
21
+ | ZRW N00b / Pro / L33t | 79 / 249 / 699 |
22
+ | blackjack · shard-zip · shard-tsdb · slid-phi · support | 199 |
23
+ | consulting | 250 |
24
+ | sponsor / donate | 29 / 29.99 |
25
+ | GAO entry | 1 |
26
+
27
+ Canonical table: [`docs/NPM_PRICING.md`](../../docs/NPM_PRICING.md) · Catalog: [GET /api/x402-products](https://slidphilabs.fly.dev/api/x402-products)
28
+
29
+ Live suite: [slidphilabs.fly.dev/pps](https://slidphilabs.fly.dev/pps) · Discovery: [GET /api/agent](https://slidphilabs.fly.dev/api/agent)
18
30
 
19
31
  ## Install
20
32
 
@@ -29,11 +41,11 @@ npx spl-pay-per-suite quote --bytes 500000000
29
41
  ```js
30
42
  import { computeQuote } from "spl-pay-per-suite";
31
43
 
32
- computeQuote({ product: "auto", op: "compress", bytes: 100e6 });
33
- // → free: true, amount_cents: 0
44
+ computeQuote({ product: "auto", op: "compress", bytes: 50 * 1024 ** 3 });
45
+ // → free: true (under 100 GB)
34
46
 
35
- computeQuote({ product: "auto", op: "compress", bytes: 9e9 });
36
- // → free: false, ~$2.00 class
47
+ computeQuote({ product: "auto", op: "compress", bytes: 110 * 1024 ** 3 });
48
+ // → free: false · ~$0.50 class (10 GB × 5¢)
37
49
  ```
38
50
 
39
51
  ## MCP
@@ -45,6 +57,8 @@ npx spl-pay-per-suite mcp
45
57
 
46
58
  Tools: `spl_pps_info`, `spl_pps_quote`, `spl_pps_checkout`, `spl_pps_submit_job`, `spl_pps_classify`, `spl_pps_x402_*`.
47
59
 
60
+ `spl_pps_info` returns the same suite rates as the live quote engine (`SUITE_PRICING`).
61
+
48
62
  ## IP Guard
49
63
 
50
64
  Quotes and commerce rails only — no private compression process or engines in this package.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "spl-pay-per-suite",
3
- "version": "1.1.5",
4
- "description": "SPL Pay Per Suite — freemium (free first 1 GB · then ~1.5¢/GB), Stripe + x402. Library, CLI, MCP. Try Gate retired.",
3
+ "version": "1.1.8",
4
+ "description": "SPL Pay Per Suite — unpaid cap 6.9 GB / 3 h, then ~5¢/GB (~4¢ bulk). Stripe + x402. MCP client. No encoder in this package.",
5
5
  "type": "module",
6
6
  "main": "src/index.mjs",
7
7
  "exports": {
@@ -11,7 +11,8 @@
11
11
  "bin": {
12
12
  "spl-pps": "src/cli.mjs",
13
13
  "spl-pay-per-suite": "src/cli.mjs",
14
- "pay-per-suite": "src/cli.mjs"
14
+ "pay-per-suite": "src/cli.mjs",
15
+ "spl-mcp": "src/mcp-server.mjs"
15
16
  },
16
17
  "files": [
17
18
  "src",
@@ -63,7 +64,7 @@
63
64
  },
64
65
  "funding": {
65
66
  "type": "individual",
66
- "url": "https://www.slidphilabs.com/api/agent"
67
+ "url": "https://www.slidphilabs.com/pay"
67
68
  },
68
69
  "agentic": {
69
70
  "modules": {
@@ -84,7 +85,7 @@
84
85
  "site": "https://www.slidphilabs.com",
85
86
  "llms_txt": "https://www.slidphilabs.com/llms.txt",
86
87
  "agents_json": "https://www.slidphilabs.com/agents.json",
87
- "one_liner": "Free first 100 GB suite (equal free-tier $0) · then ~5c/GB under ~9c first paid egress. GET https://www.slidphilabs.com/api/agent. Try Gate retired.",
88
+ "one_liner": "Free first 100 GB suite \u00b7 then ~5\u00a2/GB then ~4\u00a2/GB. Pay: https://www.slidphilabs.com/pay \u00b7 GET https://www.slidphilabs.com/api/agent",
88
89
  "agent_platform": {
89
90
  "cuni": "https://cuni-studio.fly.dev/",
90
91
  "agent_rider": "https://agentrider.vercel.app/",
@@ -101,7 +102,9 @@
101
102
  "model": "freemium_suite_v4_undercut"
102
103
  },
103
104
  "welcome": "https://www.slidphilabs.com/api/welcome",
104
- "platform_json": "https://www.slidphilabs.com/platform.json"
105
+ "platform_json": "https://www.slidphilabs.com/platform.json",
106
+ "pay_ui": "https://www.slidphilabs.com/pay",
107
+ "team_mesh": "https://spl-team-mesh.fly.dev"
105
108
  },
106
109
  "x402": {
107
110
  "discovery": "https://www.slidphilabs.com/api/agent",
@@ -114,5 +117,21 @@
114
117
  },
115
118
  "bugs": {
116
119
  "url": "https://www.slidphilabs.com"
120
+ },
121
+ "pricing": {
122
+ "sku": "suite",
123
+ "amount_usd": "metered",
124
+ "currency": "usd",
125
+ "buy": "https://www.slidphilabs.com/pps",
126
+ "checkout": "https://www.slidphilabs.com/api/checkout",
127
+ "access": "https://www.slidphilabs.com/access?product=suite",
128
+ "catalog": "https://www.slidphilabs.com/api/x402-products",
129
+ "pay_ui": "https://www.slidphilabs.com/pay",
130
+ "doc": "https://www.slidphilabs.com/pps",
131
+ "suite_pricing": {
132
+ "free_cap_gb": 100,
133
+ "usd_per_gb_after_free": 0.05,
134
+ "usd_per_gb_bulk": 0.04
135
+ }
117
136
  }
118
137
  }
package/src/cli.mjs CHANGED
@@ -102,14 +102,7 @@ async function main() {
102
102
  return;
103
103
  }
104
104
 
105
- if (cmd === "mcp") {
106
- console.log("Start MCP: node src/mcp-server.mjs");
107
- console.log("Or: npm run mcp --prefix packages/spl-pay-per-suite");
108
- console.log("Config: { \"command\": \"npx\", \"args\": [\"-y\", \"spl-pay-per-suite\", \"mcp-serve\"] }");
109
- return;
110
- }
111
-
112
- if (cmd === "mcp-serve") {
105
+ if (cmd === "mcp" || cmd === "mcp-serve") {
113
106
  await import("./mcp-server.mjs");
114
107
  return;
115
108
  }
package/src/index.mjs CHANGED
@@ -18,6 +18,7 @@ import {
18
18
  MIN_CENTS,
19
19
  MAX_CENTS,
20
20
  MAX_BYTES,
21
+ SUITE_PRICING,
21
22
  } from "./quote.mjs";
22
23
 
23
24
  export {
@@ -36,6 +37,7 @@ export {
36
37
  MIN_CENTS,
37
38
  MAX_CENTS,
38
39
  MAX_BYTES,
40
+ SUITE_PRICING,
39
41
  };
40
42
 
41
43
  export const SERVICE_NAME = "SPL Pay Per Suite";
@@ -38,25 +38,37 @@ import {
38
38
  OP_MULT,
39
39
  FREE_BYTES,
40
40
  MIN_PAID_CENTS,
41
+ SUITE_PRICING,
41
42
  } from "./index.mjs";
42
43
 
44
+ const SUITE_LINE =
45
+ "Free first 100 GB per job · then ~5¢/GB (4¢ after 100 paid GB) · min $0.05 · under ~9¢ cloud egress. Try Gate retired.";
46
+
43
47
  const TOOLS = [
48
+ {
49
+ name: "spl_lab_auth",
50
+ description:
51
+ "One lab account for every Slid Phi product. POST https://www.slidphilabs.com/api/auth {action:signup|login,email,password,name}. Then open CuNi, Rider, Chamber with the token. Humans: /signup /login /account.",
52
+ inputSchema: { type: "object", properties: {} },
53
+ },
44
54
  {
45
55
  name: "spl_pps_info",
46
56
  description:
47
- "SPL Pay Per Suite overview: freemium suite (free first 1 GB then ~3¢/GB · min $2), Stripe (humans) + x402 (agents), products, data classes, ops. Try Gate retired.",
57
+ "SPL Pay Per Suite overview: " +
58
+ SUITE_LINE +
59
+ " Stripe (humans) + x402 (agents). Standing SKUs: CDDG $199 · ZRW $79/$249/$699 · blackjack/shards/slid-phi/support $199 · consulting $250.",
48
60
  inputSchema: { type: "object", properties: {} },
49
61
  },
50
62
  {
51
63
  name: "spl_pps_x402_info",
52
64
  description:
53
- "Agentic commerce discovery: standing product catalog + freemium suite jobs (free under 1 GB), headers, flow. Stripe remains for humans.",
65
+ "Agentic commerce discovery: standing product catalog + freemium suite jobs (free under 100 GB), headers, flow. Stripe remains for humans.",
54
66
  inputSchema: { type: "object", properties: {} },
55
67
  },
56
68
  {
57
69
  name: "spl_pps_x402_catalog",
58
70
  description:
59
- "List standing Slid Phi Labs license products agents can buy via x402 (CDDG:Split, ZRW tiers, Blackjack, shards, support, etc.). No try-gate — use freemium suite for eval.",
71
+ "List standing Slid Phi Labs license products agents can buy via x402 (CDDG:Split $199, ZRW tiers $79/$249/$699, Blackjack/shards/slid-phi/support $199, consulting $250, etc.). Freemium suite for eval.",
60
72
  inputSchema: { type: "object", properties: {} },
61
73
  },
62
74
  {
@@ -69,7 +81,7 @@ const TOOLS = [
69
81
  sku: {
70
82
  type: "string",
71
83
  description:
72
- "cddg-split | zrw-n00b | zrw-pro | zrw-l33t | blackjack | shard-zip | shard-tsdb | slid-phi | support-integration | consulting | sponsor | donate",
84
+ "cddg-split($199) | zrw-n00b($79) | zrw-pro($249) | zrw-l33t($699) | blackjack($199) | shard-zip($199) | shard-tsdb($199) | slid-phi($199) | support-integration($199) | consulting($250) | sponsor($29) | donate($29.99) | gao-entry($1)",
73
85
  },
74
86
  email: { type: "string" },
75
87
  note: { type: "string" },
@@ -82,14 +94,17 @@ const TOOLS = [
82
94
  {
83
95
  name: "spl_pps_x402_requirements",
84
96
  description:
85
- "Probe POST /api/x402-suite. Free under 1 GB (no pay). Over free → 402 accepts[] for usage pricing (~3¢/GB · min $2).",
97
+ "Probe POST /api/x402-suite. Free under 100 GB (no pay). Over free → 402 accepts[] for usage (~5¢/GB then 4¢ · min $0.05).",
86
98
  inputSchema: {
87
99
  type: "object",
88
100
  properties: {
89
101
  product: { type: "string" },
90
102
  dataClass: { type: "string" },
91
103
  op: { type: "string" },
92
- bytes: { type: "number", description: "≤1GiB free; over free requires payment" },
104
+ bytes: {
105
+ type: "number",
106
+ description: "Payload bytes (≤100 GiB free; over free requires payment)",
107
+ },
93
108
  email: { type: "string" },
94
109
  note: { type: "string" },
95
110
  },
@@ -98,7 +113,7 @@ const TOOLS = [
98
113
  {
99
114
  name: "spl_pps_x402_submit",
100
115
  description:
101
- "Submit freemium suite job via x402. Under 1 GB free (no paymentHeader). Over free: pass paymentHeader after paying, or devBypass for staging.",
116
+ "Submit freemium suite job via x402. Under 100 GB free (no paymentHeader). Over free: pass paymentHeader after paying, or devBypass for staging.",
102
117
  inputSchema: {
103
118
  type: "object",
104
119
  properties: {
@@ -109,7 +124,10 @@ const TOOLS = [
109
124
  email: { type: "string" },
110
125
  note: { type: "string" },
111
126
  fileName: { type: "string" },
112
- paymentHeader: { type: "string", description: "Base64 X-PAYMENT proof (only if over free cap)" },
127
+ paymentHeader: {
128
+ type: "string",
129
+ description: "Base64 X-PAYMENT proof (only if over free 100 GB cap)",
130
+ },
113
131
  devBypass: { type: "boolean", description: "Staging only if server allows" },
114
132
  },
115
133
  },
@@ -117,7 +135,7 @@ const TOOLS = [
117
135
  {
118
136
  name: "spl_pps_quote",
119
137
  description:
120
- "Instant freemium quote: free first 1 GB ($0), then ~3¢/GB · min $2. Inputs: product, dataClass, op, bytes. Returns free flag + USD amount.",
138
+ "Instant freemium quote: free first 100 GB ($0), then ~5¢/GB (4¢ bulk) · min $0.05. Inputs: product, dataClass, op, bytes. Returns free flag + USD amount.",
121
139
  inputSchema: {
122
140
  type: "object",
123
141
  properties: {
@@ -131,7 +149,10 @@ const TOOLS = [
131
149
  "zeros | ramp | walk | mixed_ints | timeseries | json_series | binary | unknown",
132
150
  },
133
151
  op: { type: "string", description: "compress | decompress | roundtrip" },
134
- bytes: { type: "number", description: "Payload size in bytes (≤1GiB = free)" },
152
+ bytes: {
153
+ type: "number",
154
+ description: "Payload size in bytes (≤100 GiB = free)",
155
+ },
135
156
  remote: { type: "boolean", description: "If true, use live site API" },
136
157
  },
137
158
  },
@@ -139,7 +160,7 @@ const TOOLS = [
139
160
  {
140
161
  name: "spl_pps_checkout",
141
162
  description:
142
- "Checkout for suite quote. Under 1 GB returns free_showcase (no Stripe). Over free returns Stripe Checkout URL.",
163
+ "Checkout for suite quote. Under 100 GB returns free_showcase (no Stripe). Over free returns Stripe Checkout URL.",
143
164
  inputSchema: {
144
165
  type: "object",
145
166
  properties: {
@@ -154,7 +175,7 @@ const TOOLS = [
154
175
  {
155
176
  name: "spl_pps_submit_job",
156
177
  description:
157
- "Submit a Pay Per Suite job (free under 1 GB after free_showcase, or after paid). Lab runs best tool and emails results. Requires email.",
178
+ "Submit a Pay Per Suite job (free under 100 GB after free_showcase, or after paid). Lab runs best tool and emails results. Requires email.",
158
179
  inputSchema: {
159
180
  type: "object",
160
181
  properties: {
@@ -180,7 +201,10 @@ const TOOLS = [
180
201
  inputSchema: {
181
202
  type: "object",
182
203
  properties: {
183
- sample_base64: { type: "string", description: "Base64 of file head (≤8KB recommended)" },
204
+ sample_base64: {
205
+ type: "string",
206
+ description: "Base64 of file head (≤8KB recommended)",
207
+ },
184
208
  },
185
209
  required: ["sample_base64"],
186
210
  },
@@ -196,19 +220,37 @@ function err(id, code, message) {
196
220
 
197
221
  async function callTool(name, args = {}) {
198
222
  switch (name) {
223
+ case "spl_lab_auth":
224
+ return {
225
+ signup: "https://www.slidphilabs.com/signup",
226
+ login: "https://www.slidphilabs.com/login",
227
+ account: "https://www.slidphilabs.com/account",
228
+ api: "POST https://www.slidphilabs.com/api/auth",
229
+ body: { action: "signup|login", email: "", password: "", name: "" },
230
+ lead_product: "cuni",
231
+ cash_product: "chamber",
232
+ };
199
233
  case "spl_pps_info":
200
234
  return {
201
235
  service: SERVICE_NAME,
202
236
  site: SITE_PPS,
203
- pricing: {
204
- model: "freemium_suite_v2",
205
- free_cap_bytes: FREE_BYTES,
206
- free_cap_gb: 1,
207
- usd_per_gb_after_free: 0.03,
208
- usd_per_gb_bulk: 0.02,
209
- min_paid_cents: MIN_PAID_CENTS,
210
- try_gate: "retired",
237
+ pricing: { ...SUITE_PRICING, free_cap_bytes: FREE_BYTES, min_paid_cents: MIN_PAID_CENTS },
238
+ standing_skus_usd: {
239
+ "cddg-split": 199,
240
+ "zrw-n00b": 79,
241
+ "zrw-pro": 249,
242
+ "zrw-l33t": 699,
243
+ blackjack: 199,
244
+ "shard-zip": 199,
245
+ "shard-tsdb": 199,
246
+ "slid-phi": 199,
247
+ "support-integration": 199,
248
+ consulting: 250,
249
+ sponsor: 29,
250
+ donate: 29.99,
251
+ "gao-entry": 1,
211
252
  },
253
+ catalog: X402_PRODUCTS_URL,
212
254
  pay_human: STRIPE_PAYMENT_LINK,
213
255
  pay_agent_products: X402_PRODUCTS_URL,
214
256
  pay_agent_jobs: X402_SUITE_URL,
@@ -218,7 +260,10 @@ async function callTool(name, args = {}) {
218
260
  ops: Object.keys(OP_MULT),
219
261
  npm: "spl-pay-per-suite",
220
262
  cli: "npx spl-pay-per-suite quote|pay|job|x402|catalog|buy",
221
- discovery: "https://www.slidphilabs.com/api/agent",
263
+ discovery: "https://slidphilabs.fly.dev/api/agent",
264
+ pay_ui: "https://slidphilabs.fly.dev/pay",
265
+ canonical_doc: "docs/NPM_PRICING.md",
266
+ one_liner: SUITE_LINE,
222
267
  };
223
268
  case "spl_pps_x402_info":
224
269
  return agentDiscovery();
package/src/quote.mjs CHANGED
@@ -9,6 +9,22 @@ export const MAX_CENTS = 1_000_000;
9
9
  export const MIN_PAID_CENTS = 5;
10
10
  export const MIN_CENTS = 0;
11
11
 
12
+ /** Canonical suite rates — MCP, package.json, site, API must match */
13
+ export const SUITE_PRICING = {
14
+ model: "freemium_suite_v4_undercut",
15
+ free_cap_gb: 100,
16
+ free_cap_bytes: FREE_BYTES,
17
+ usd_per_gb_after_free: 0.05,
18
+ usd_per_gb_first_100: 0.05,
19
+ usd_per_gb_bulk: 0.04,
20
+ min_paid_usd: 0.05,
21
+ min_paid_cents: MIN_PAID_CENTS,
22
+ first_paid_egress_ref_usd: 0.09,
23
+ try_gate: "retired",
24
+ human_one_liner:
25
+ "Free first 100 GB per job · then ~5¢/GB (4¢ after 100 paid GB) · min $0.05 · under ~9¢ cloud egress",
26
+ };
27
+
12
28
  export const PRODUCT_ADD_CENTS = {
13
29
  auto: 0, zrw: 0, "cddg-split": 25, blackjack: 0,
14
30
  "shard-zip": 0, "shard-tsdb": 0, "slid-phi": 0,
@@ -26,8 +42,10 @@ export const OP_MULT = {
26
42
  export const STRIPE_PAYMENT_LINK =
27
43
  process.env.SPL_PPS_PAYMENT_LINK ||
28
44
  "https://buy.stripe.com/aFa00k4B70OYetL0O46wE0g";
29
- export const SITE_PPS = process.env.SPL_PPS_SITE || "https://www.slidphilabs.com/pps";
30
- export const API_BASE = process.env.SPL_PPS_API || "https://www.slidphilabs.com";
45
+ export const SITE_PPS =
46
+ process.env.SPL_PPS_SITE || "https://www.slidphilabs.com/pps";
47
+ export const API_BASE =
48
+ process.env.SPL_PPS_API || "https://www.slidphilabs.com";
31
49
 
32
50
  export function usageFeeCents(billableBytes) {
33
51
  const b = Math.max(0, Number(billableBytes) || 0);