spl-pay-per-suite 1.1.8 → 1.1.9

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
@@ -1,32 +1,19 @@
1
1
  # spl-pay-per-suite
2
2
 
3
- **SPL Pay Per Suite** — freemium quotes, Stripe (humans) + x402 (agents). Library, CLI, and MCP.
3
+ **SPL Pay Per Suite** — quote, checkout, and MCP helper for a hosted service. Stripe is available for humans; x402 is available for agents where offered. This package does not contain the private encoder.
4
4
 
5
5
  ## Pricing (canonical · matches live API)
6
6
 
7
7
  | Tier | Rule |
8
8
  |------|------|
9
- | **Free** | First **100 GB per job** — $0 |
10
- | **Usage** | Next 100 paid GB: **$0.05 / GB** · then **$0.04 / GB** |
9
+ | **Unpaid boundary** | First **6.9 GB** within **3 hours** — $0 |
10
+ | **Usage** | Then about **$0.05 / GB**; bulk pricing may apply where offered |
11
11
  | **Min paid** | **$0.05** once over free |
12
12
  | **Ref** | Under typical first paid cloud egress (~$0.09/GB) |
13
13
 
14
- **Try Gate is retired.** Evaluate on free suite — not a $9 chip-in.
14
+ Canonical catalog: [GET /api/x402-products](https://www.slidphilabs.com/api/x402-products)
15
15
 
16
- ### Standing license SKUs (not suite metered)
17
-
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)
16
+ Live Suite: [www.slidphilabs.com/pps](https://www.slidphilabs.com/pps) · Discovery: [GET /api/agent](https://www.slidphilabs.com/api/agent)
30
17
 
31
18
  ## Install
32
19
 
@@ -41,11 +28,11 @@ npx spl-pay-per-suite quote --bytes 500000000
41
28
  ```js
42
29
  import { computeQuote } from "spl-pay-per-suite";
43
30
 
44
- computeQuote({ product: "auto", op: "compress", bytes: 50 * 1024 ** 3 });
45
- // → free: true (under 100 GB)
31
+ computeQuote({ product: "auto", op: "compress", bytes: 1 * 1024 ** 3 });
32
+ // → unpaid (under 6.9 GB)
46
33
 
47
- computeQuote({ product: "auto", op: "compress", bytes: 110 * 1024 ** 3 });
48
- // → free: false · ~$0.50 class (10 GB × 5¢)
34
+ computeQuote({ product: "auto", op: "compress", bytes: 7 * 1024 ** 3 });
35
+ // → over 6.9 GB unpaid cap; inspect the returned quote before checkout
49
36
  ```
50
37
 
51
38
  ## MCP
@@ -55,10 +42,22 @@ npx spl-pay-per-suite mcp
55
42
  # or: node node_modules/spl-pay-per-suite/src/mcp-server.mjs
56
43
  ```
57
44
 
45
+ For the hosted public catalog server, configure your MCP client directly:
46
+
47
+ ```json
48
+ {
49
+ "mcpServers": {
50
+ "slid-phi-labs": {
51
+ "url": "https://www.slidphilabs.com/mcp"
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
58
57
  Tools: `spl_pps_info`, `spl_pps_quote`, `spl_pps_checkout`, `spl_pps_submit_job`, `spl_pps_classify`, `spl_pps_x402_*`.
59
58
 
60
59
  `spl_pps_info` returns the same suite rates as the live quote engine (`SUITE_PRICING`).
61
60
 
62
61
  ## IP Guard
63
62
 
64
- Quotes and commerce rails only — no private compression process or engines in this package.
63
+ Quotes and commerce rails only — no private compression process, issuer control, or production engine is included in this package.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spl-pay-per-suite",
3
- "version": "1.1.8",
3
+ "version": "1.1.9",
4
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",
@@ -85,15 +85,16 @@
85
85
  "site": "https://www.slidphilabs.com",
86
86
  "llms_txt": "https://www.slidphilabs.com/llms.txt",
87
87
  "agents_json": "https://www.slidphilabs.com/agents.json",
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
+ "one_liner": "Unpaid cap 6.9 GB / 3 h \u00b7 then ~5\u00a2/GB. Pay: https://www.slidphilabs.com/pay \u00b7 GET https://www.slidphilabs.com/api/agent",
89
89
  "agent_platform": {
90
90
  "cuni": "https://cuni-studio.fly.dev/",
91
- "agent_rider": "https://agentrider.vercel.app/",
91
+ "agent_rider": "https://agentrider.fly.dev/",
92
92
  "quikgater": "https://github.com/ceedot-rock/quikgater"
93
93
  },
94
94
  "suite": "https://www.slidphilabs.com/pps",
95
95
  "suite_pricing": {
96
- "free_cap_gb": 100,
96
+ "free_cap_gb": 6.9,
97
+ "free_window_hours": 3,
97
98
  "min_paid_usd": 0.05,
98
99
  "usd_per_gb_after_free": 0.05,
99
100
  "usd_per_gb_bulk": 0.04,
@@ -129,7 +130,8 @@
129
130
  "pay_ui": "https://www.slidphilabs.com/pay",
130
131
  "doc": "https://www.slidphilabs.com/pps",
131
132
  "suite_pricing": {
132
- "free_cap_gb": 100,
133
+ "free_cap_gb": 6.9,
134
+ "free_window_hours": 3,
133
135
  "usd_per_gb_after_free": 0.05,
134
136
  "usd_per_gb_bulk": 0.04
135
137
  }
package/src/cli.mjs CHANGED
@@ -120,7 +120,7 @@ async function main() {
120
120
  if (cmd === "buy" || cmd === "x402-buy") {
121
121
  const sku = args.sku || args.product || args._[0];
122
122
  if (!sku) {
123
- console.error("--sku required (e.g. cddg-split, zrw-n00b, blackjack)");
123
+ console.error("--sku required (e.g. chamber-year, gc-year, lab-pass)");
124
124
  process.exit(1);
125
125
  }
126
126
  const opts = {
package/src/index.mjs CHANGED
@@ -14,6 +14,8 @@ import {
14
14
  DATA_MULT,
15
15
  OP_MULT,
16
16
  FREE_BYTES,
17
+ FREE_GB,
18
+ FREE_WINDOW_HOURS,
17
19
  MIN_PAID_CENTS,
18
20
  MIN_CENTS,
19
21
  MAX_CENTS,
@@ -33,6 +35,8 @@ export {
33
35
  DATA_MULT,
34
36
  OP_MULT,
35
37
  FREE_BYTES,
38
+ FREE_GB,
39
+ FREE_WINDOW_HOURS,
36
40
  MIN_PAID_CENTS,
37
41
  MIN_CENTS,
38
42
  MAX_CENTS,
@@ -42,7 +42,7 @@ import {
42
42
  } from "./index.mjs";
43
43
 
44
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.";
45
+ "Unpaid cap 6.9 GB / 3 h · then ~5¢/GB (4¢ bulk) · min $0.05. Try Gate retired.";
46
46
 
47
47
  const TOOLS = [
48
48
  {
@@ -56,19 +56,19 @@ const TOOLS = [
56
56
  description:
57
57
  "SPL Pay Per Suite overview: " +
58
58
  SUITE_LINE +
59
- " Stripe (humans) + x402 (agents). Standing SKUs: CDDG $199 · ZRW $79/$249/$699 · blackjack/shards/slid-phi/support $199 · consulting $250.",
59
+ " Stripe (humans) + x402 (agents). Seats: Chamber $9/$99 · AWARE $9/$49/$490 · Rider $79/$790 · Lab Pass $668 · consulting $250.",
60
60
  inputSchema: { type: "object", properties: {} },
61
61
  },
62
62
  {
63
63
  name: "spl_pps_x402_info",
64
64
  description:
65
- "Agentic commerce discovery: standing product catalog + freemium suite jobs (free under 100 GB), headers, flow. Stripe remains for humans.",
65
+ "Agentic commerce discovery: standing product catalog + freemium suite jobs (free under 6.9 GB / 3 h), headers, flow. Stripe remains for humans.",
66
66
  inputSchema: { type: "object", properties: {} },
67
67
  },
68
68
  {
69
69
  name: "spl_pps_x402_catalog",
70
70
  description:
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.",
71
+ "List standing Slid Phi Labs seats agents can buy via x402 (Chamber, AWARE, Rider, Lab Pass, TruGame, consulting). Suite jobs are separate.",
72
72
  inputSchema: { type: "object", properties: {} },
73
73
  },
74
74
  {
@@ -81,7 +81,7 @@ const TOOLS = [
81
81
  sku: {
82
82
  type: "string",
83
83
  description:
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)",
84
+ "chamber-year($99) | gc-year($490) | rider-year($790) | lab-pass($668) | trugame-year($79) | consulting($250) | oss-support($199)",
85
85
  },
86
86
  email: { type: "string" },
87
87
  note: { type: "string" },
@@ -94,7 +94,7 @@ const TOOLS = [
94
94
  {
95
95
  name: "spl_pps_x402_requirements",
96
96
  description:
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).",
97
+ "Probe POST /api/x402-suite. Free under 6.9 GB / 3 h (no pay). Over free → 402 accepts[] for usage (~5¢/GB then 4¢ · min $0.05).",
98
98
  inputSchema: {
99
99
  type: "object",
100
100
  properties: {
@@ -103,7 +103,7 @@ const TOOLS = [
103
103
  op: { type: "string" },
104
104
  bytes: {
105
105
  type: "number",
106
- description: "Payload bytes (≤100 GiB free; over free requires payment)",
106
+ description: "Payload bytes (≤6.9 GB unpaid cap; over cap requires payment)",
107
107
  },
108
108
  email: { type: "string" },
109
109
  note: { type: "string" },
@@ -113,7 +113,7 @@ const TOOLS = [
113
113
  {
114
114
  name: "spl_pps_x402_submit",
115
115
  description:
116
- "Submit freemium suite job via x402. Under 100 GB free (no paymentHeader). Over free: pass paymentHeader after paying, or devBypass for staging.",
116
+ "Submit freemium suite job via x402. Under 6.9 GB / 3 h free (no paymentHeader). Over free: pass paymentHeader after paying, or devBypass for staging.",
117
117
  inputSchema: {
118
118
  type: "object",
119
119
  properties: {
@@ -126,7 +126,7 @@ const TOOLS = [
126
126
  fileName: { type: "string" },
127
127
  paymentHeader: {
128
128
  type: "string",
129
- description: "Base64 X-PAYMENT proof (only if over free 100 GB cap)",
129
+ description: "Base64 X-PAYMENT proof (only if over free 6.9 GB / 3 h cap)",
130
130
  },
131
131
  devBypass: { type: "boolean", description: "Staging only if server allows" },
132
132
  },
@@ -135,7 +135,7 @@ const TOOLS = [
135
135
  {
136
136
  name: "spl_pps_quote",
137
137
  description:
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.",
138
+ "Instant freemium quote: free first 6.9 GB / 3 h ($0), then ~5¢/GB (4¢ bulk) · min $0.05. Inputs: product, dataClass, op, bytes. Returns free flag + USD amount.",
139
139
  inputSchema: {
140
140
  type: "object",
141
141
  properties: {
@@ -151,7 +151,7 @@ const TOOLS = [
151
151
  op: { type: "string", description: "compress | decompress | roundtrip" },
152
152
  bytes: {
153
153
  type: "number",
154
- description: "Payload size in bytes (≤100 GiB = free)",
154
+ description: "Payload size in bytes (≤6.9 GB unpaid = $0)",
155
155
  },
156
156
  remote: { type: "boolean", description: "If true, use live site API" },
157
157
  },
@@ -160,7 +160,7 @@ const TOOLS = [
160
160
  {
161
161
  name: "spl_pps_checkout",
162
162
  description:
163
- "Checkout for suite quote. Under 100 GB returns free_showcase (no Stripe). Over free returns Stripe Checkout URL.",
163
+ "Checkout for suite quote. Under 6.9 GB / 3 h returns free_showcase (no Stripe). Over free returns Stripe Checkout URL.",
164
164
  inputSchema: {
165
165
  type: "object",
166
166
  properties: {
@@ -175,7 +175,7 @@ const TOOLS = [
175
175
  {
176
176
  name: "spl_pps_submit_job",
177
177
  description:
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.",
178
+ "Submit a Pay Per Suite job (free under 6.9 GB / 3 h after free_showcase, or after paid). Lab runs best tool and emails results. Requires email.",
179
179
  inputSchema: {
180
180
  type: "object",
181
181
  properties: {
@@ -236,19 +236,20 @@ async function callTool(name, args = {}) {
236
236
  site: SITE_PPS,
237
237
  pricing: { ...SUITE_PRICING, free_cap_bytes: FREE_BYTES, min_paid_cents: MIN_PAID_CENTS },
238
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,
239
+ "chamber-month": 9,
240
+ "chamber-year": 99,
241
+ "gc-day": 9,
242
+ "gc-month": 49,
243
+ "gc-year": 490,
244
+ "rider-month": 79,
245
+ "rider-year": 790,
246
+ "rider-ops-month": 29,
247
+ "rider-ops-year": 290,
248
+ "lab-pass": 668,
249
+ "trugame-month": 12,
250
+ "trugame-year": 79,
248
251
  consulting: 250,
249
- sponsor: 29,
250
- donate: 29.99,
251
- "gao-entry": 1,
252
+ "oss-support": 199,
252
253
  },
253
254
  catalog: X402_PRODUCTS_URL,
254
255
  pay_human: STRIPE_PAYMENT_LINK,
@@ -260,8 +261,8 @@ async function callTool(name, args = {}) {
260
261
  ops: Object.keys(OP_MULT),
261
262
  npm: "spl-pay-per-suite",
262
263
  cli: "npx spl-pay-per-suite quote|pay|job|x402|catalog|buy",
263
- discovery: "https://slidphilabs.fly.dev/api/agent",
264
- pay_ui: "https://slidphilabs.fly.dev/pay",
264
+ discovery: "https://www.slidphilabs.com/api/agent",
265
+ pay_ui: "https://www.slidphilabs.com/pay",
265
266
  canonical_doc: "docs/NPM_PRICING.md",
266
267
  one_liner: SUITE_LINE,
267
268
  };
package/src/quote.mjs CHANGED
@@ -1,9 +1,11 @@
1
1
  /**
2
- * SPL Pay Per Suite — local quote (matches site).
3
- * Free first 100 GiB (equal when competitor free-tier size is $0).
4
- * Over free: under first paid egress (~$0.09/GB) at ~5¢/GB.
2
+ * SPL Pay Per Suite — local quote (matches site API suite-pricing.js).
3
+ * Unpaid cap: 6.9 GB and 3 hours. Then ~5¢/GB ( bulk after 100 paid GB).
4
+ * Time window is enforced on the host; this quote is bytes-only.
5
5
  */
6
- export const FREE_BYTES = 100 * 1024 * 1024 * 1024;
6
+ export const FREE_GB = 6.9;
7
+ export const FREE_WINDOW_HOURS = 3;
8
+ export const FREE_BYTES = Math.round(FREE_GB * 1024 * 1024 * 1024);
7
9
  export const MAX_BYTES = 1024 * 1024 * 1024 * 1024;
8
10
  export const MAX_CENTS = 1_000_000;
9
11
  export const MIN_PAID_CENTS = 5;
@@ -11,8 +13,9 @@ export const MIN_CENTS = 0;
11
13
 
12
14
  /** Canonical suite rates — MCP, package.json, site, API must match */
13
15
  export const SUITE_PRICING = {
14
- model: "freemium_suite_v4_undercut",
15
- free_cap_gb: 100,
16
+ model: "unpaid_cap_6_9_3h",
17
+ free_cap_gb: FREE_GB,
18
+ free_window_hours: FREE_WINDOW_HOURS,
16
19
  free_cap_bytes: FREE_BYTES,
17
20
  usd_per_gb_after_free: 0.05,
18
21
  usd_per_gb_first_100: 0.05,
@@ -22,7 +25,7 @@ export const SUITE_PRICING = {
22
25
  first_paid_egress_ref_usd: 0.09,
23
26
  try_gate: "retired",
24
27
  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",
28
+ "Unpaid cap 6.9 GB / 3 h · then ~5¢/GB (4¢ bulk) · min $0.05",
26
29
  };
27
30
 
28
31
  export const PRODUCT_ADD_CENTS = {
@@ -41,7 +44,7 @@ export const OP_MULT = {
41
44
 
42
45
  export const STRIPE_PAYMENT_LINK =
43
46
  process.env.SPL_PPS_PAYMENT_LINK ||
44
- "https://buy.stripe.com/aFa00k4B70OYetL0O46wE0g";
47
+ "https://www.slidphilabs.com/pps";
45
48
  export const SITE_PPS =
46
49
  process.env.SPL_PPS_SITE || "https://www.slidphilabs.com/pps";
47
50
  export const API_BASE =
@@ -69,7 +72,8 @@ export function computeQuote({
69
72
  const billable = Math.max(0, b - free_bytes);
70
73
  const free = billable <= 0;
71
74
  const rates = {
72
- free_cap_gb: 100,
75
+ free_cap_gb: FREE_GB,
76
+ free_window_hours: FREE_WINDOW_HOURS,
73
77
  min_paid_usd: 0.05,
74
78
  usd_per_gb_first_100: 0.05,
75
79
  usd_per_gb_after_100: 0.04,
@@ -79,11 +83,11 @@ export function computeQuote({
79
83
  if (free) {
80
84
  return {
81
85
  ok: true, service: "SPL Pay Per Suite", currency: "usd",
82
- amount_cents: 0, amount_display: "0.00", free: true, tier: "free_match",
83
- message: "Free through 100 GB (equal when competitor free-tier size is $0).",
86
+ amount_cents: 0, amount_display: "0.00", free: true, tier: "unpaid_cap",
87
+ message: "Unpaid cap 6.9 GB and 3 hours. Then ~5¢/GB.",
84
88
  breakdown: {
85
89
  product: prod, product_add_cents: 0, product_base_cents: 0,
86
- free_bytes, free_gb: 100, billable_bytes: 0, usage_cents: 0, size_cents: 0,
90
+ free_bytes, free_gb: FREE_GB, billable_bytes: 0, usage_cents: 0, size_cents: 0,
87
91
  data_class: cls, data_multiplier: DATA_MULT[cls],
88
92
  op: operation, op_multiplier: OP_MULT[operation],
89
93
  bytes: b, mb: +(b/1024/1024).toFixed(4), gb: +(b/1024/1024/1024).toFixed(6),
@@ -100,10 +104,10 @@ export function computeQuote({
100
104
  ok: true, service: "SPL Pay Per Suite", currency: "usd",
101
105
  amount_cents: cents, amount_display: (cents / 100).toFixed(2),
102
106
  free: false, tier: "usage_undercut",
103
- message: "Over free: ~5¢/GB (under first paid egress ~9¢/GB).",
107
+ message: "Over 6.9 GB unpaid cap ~5¢/GB (4¢ bulk).",
104
108
  breakdown: {
105
109
  product: prod, product_add_cents: add, product_base_cents: add,
106
- free_bytes, free_gb: 100, billable_bytes: billable, usage_cents: usage, size_cents: usage,
110
+ free_bytes, free_gb: FREE_GB, billable_bytes: billable, usage_cents: usage, size_cents: usage,
107
111
  data_class: cls, data_multiplier: DATA_MULT[cls],
108
112
  op: operation, op_multiplier: OP_MULT[operation],
109
113
  bytes: b, mb: +(b/1024/1024).toFixed(4), gb: +(b/1024/1024/1024).toFixed(6),