@soulcraft/sdk 1.5.2 → 1.5.4
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/modules/billing/index.d.ts +3 -4
- package/dist/modules/billing/index.d.ts.map +1 -1
- package/dist/modules/billing/index.js +7 -22
- package/dist/modules/billing/index.js.map +1 -1
- package/dist/modules/billing/local-provider.d.ts +3 -3
- package/dist/modules/billing/local-provider.js +3 -3
- package/dist/modules/billing/model-pricing.d.ts +3 -4
- package/dist/modules/billing/model-pricing.d.ts.map +1 -1
- package/dist/modules/billing/model-pricing.js +3 -4
- package/dist/modules/billing/model-pricing.js.map +1 -1
- package/dist/modules/billing/portal-provider.d.ts +5 -6
- package/dist/modules/billing/portal-provider.d.ts.map +1 -1
- package/dist/modules/billing/portal-provider.js +5 -6
- package/dist/modules/billing/portal-provider.js.map +1 -1
- package/dist/modules/billing/types.d.ts +5 -6
- package/dist/modules/billing/types.d.ts.map +1 -1
- package/dist/modules/billing/types.js +3 -4
- package/dist/modules/billing/types.js.map +1 -1
- package/dist/modules/license/index.d.ts +1 -1
- package/dist/modules/license/index.js +1 -1
- package/dist/modules/license/types.d.ts +1 -1
- package/dist/modules/license/types.js +1 -1
- package/dist/server/create-sdk.d.ts +1 -1
- package/dist/server/create-sdk.js +1 -1
- package/dist/server/from-license.d.ts +0 -2
- package/dist/server/from-license.d.ts.map +1 -1
- package/dist/server/from-license.js +0 -1
- package/dist/server/from-license.js.map +1 -1
- package/package.json +2 -6
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* **Provider selection (priority order):**
|
|
7
7
|
* 1. `options.provider` — explicit override (primarily for testing)
|
|
8
|
-
* 2. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (
|
|
9
|
-
* 3.
|
|
10
|
-
* 4. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
8
|
+
* 2. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (calls `soulcraft.com/api/credits/*`)
|
|
9
|
+
* 3. Neither → `LocalBillingProvider` (dev/free tier, no external calls)
|
|
11
10
|
*
|
|
12
11
|
* **Usage metering:** Fire-and-forget via a 5-second write-behind buffer. Recording
|
|
13
12
|
* usage never blocks the AI response path.
|
|
@@ -33,7 +32,7 @@ export interface CreateBillingModuleOptions {
|
|
|
33
32
|
/**
|
|
34
33
|
* Override the billing provider directly.
|
|
35
34
|
* When not provided, the provider is selected from the environment
|
|
36
|
-
* (Portal →
|
|
35
|
+
* (Portal → Local).
|
|
37
36
|
*/
|
|
38
37
|
provider?: BillingProvider;
|
|
39
38
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EAOhB,MAAM,YAAY,CAAA;AAMnB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAA;IAE1B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAgBD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,aAAa,CA2H3F;AAGD,YAAY,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,YAAY,CAAA"}
|
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* **Provider selection (priority order):**
|
|
7
7
|
* 1. `options.provider` — explicit override (primarily for testing)
|
|
8
|
-
* 2. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (
|
|
9
|
-
* 3.
|
|
10
|
-
* 4. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
8
|
+
* 2. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (calls `soulcraft.com/api/credits/*`)
|
|
9
|
+
* 3. Neither → `LocalBillingProvider` (dev/free tier, no external calls)
|
|
11
10
|
*
|
|
12
11
|
* **Usage metering:** Fire-and-forget via a 5-second write-behind buffer. Recording
|
|
13
12
|
* usage never blocks the AI response path.
|
|
@@ -27,7 +26,6 @@
|
|
|
27
26
|
*/
|
|
28
27
|
import Stripe from 'stripe';
|
|
29
28
|
import { LocalBillingProvider } from './local-provider.js';
|
|
30
|
-
import { FirestoreBillingProvider } from './firestore-provider.js';
|
|
31
29
|
import { PortalBillingProvider } from './portal-provider.js';
|
|
32
30
|
import { UsageBuffer } from './usage-buffer.js';
|
|
33
31
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
@@ -52,10 +50,7 @@ export function createBillingModule(options = {}) {
|
|
|
52
50
|
const _selectProvider = () => {
|
|
53
51
|
const portalSecret = process.env['PORTAL_CREDIT_SECRET'];
|
|
54
52
|
if (portalSecret) {
|
|
55
|
-
return new PortalBillingProvider('https://
|
|
56
|
-
}
|
|
57
|
-
if (process.env['FIREBASE_SERVICE_ACCOUNT_KEY']) {
|
|
58
|
-
return new FirestoreBillingProvider();
|
|
53
|
+
return new PortalBillingProvider('https://soulcraft.com', portalSecret, options.product ?? 'unknown');
|
|
59
54
|
}
|
|
60
55
|
return new LocalBillingProvider();
|
|
61
56
|
};
|
|
@@ -122,29 +117,19 @@ export function createBillingModule(options = {}) {
|
|
|
122
117
|
return provider.getTopUpBalance(userId);
|
|
123
118
|
},
|
|
124
119
|
async addTopUp(userId, amount) {
|
|
125
|
-
// Portal manages top-up credits
|
|
126
|
-
//
|
|
127
|
-
// to portal.soulcraft.com to purchase top-up credits.
|
|
120
|
+
// Portal manages top-up credits — products redirect users to soulcraft.com
|
|
121
|
+
// to purchase credits. This method is a no-op for the Portal provider.
|
|
128
122
|
if (provider instanceof PortalBillingProvider) {
|
|
129
123
|
return provider.getTopUpBalance(userId);
|
|
130
124
|
}
|
|
131
|
-
//
|
|
125
|
+
// Local provider (dev): directly update the balance.
|
|
132
126
|
if (provider instanceof LocalBillingProvider) {
|
|
133
127
|
const current = await provider.getTopUpBalance(userId);
|
|
134
128
|
const newBalance = current + amount;
|
|
135
129
|
await provider.setTopUpBalance(userId, newBalance);
|
|
136
130
|
return newBalance;
|
|
137
131
|
}
|
|
138
|
-
//
|
|
139
|
-
if (provider instanceof FirestoreBillingProvider) {
|
|
140
|
-
await provider.batchIncrementUsage(userId, {
|
|
141
|
-
messageCount: 0, inputTokens: 0, outputTokens: 0,
|
|
142
|
-
topUpUsed: -amount, // Negative topUpUsed = add credits
|
|
143
|
-
byModel: {},
|
|
144
|
-
});
|
|
145
|
-
return provider.getTopUpBalance(userId);
|
|
146
|
-
}
|
|
147
|
-
// Generic fallback for custom providers — not atomic but correct.
|
|
132
|
+
// Generic fallback for custom providers.
|
|
148
133
|
const current = await provider.getTopUpBalance(userId);
|
|
149
134
|
return current + amount;
|
|
150
135
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/billing/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/billing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Stores usage data, subscription state, and top-up balances in JSON files under
|
|
6
6
|
* `.soulcraft/billing/` in the process working directory. This is the default
|
|
7
|
-
* provider when `
|
|
7
|
+
* provider when `PORTAL_CREDIT_SECRET` is not set.
|
|
8
8
|
*
|
|
9
9
|
* Each user's billing data is stored in a separate file:
|
|
10
10
|
* `.soulcraft/billing/{userId}.json`
|
|
11
11
|
*
|
|
12
|
-
* This provider is fully functional for single-server deployments.
|
|
13
|
-
*
|
|
12
|
+
* This provider is fully functional for development and single-server deployments.
|
|
13
|
+
* For production, set `PORTAL_CREDIT_SECRET` to use the Portal billing provider.
|
|
14
14
|
*/
|
|
15
15
|
import type { BillingProvider, UsageData, SubscriptionData, LimitCheckResult, UsageStatus, BatchIncrementData } from './types.js';
|
|
16
16
|
/**
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Stores usage data, subscription state, and top-up balances in JSON files under
|
|
6
6
|
* `.soulcraft/billing/` in the process working directory. This is the default
|
|
7
|
-
* provider when `
|
|
7
|
+
* provider when `PORTAL_CREDIT_SECRET` is not set.
|
|
8
8
|
*
|
|
9
9
|
* Each user's billing data is stored in a separate file:
|
|
10
10
|
* `.soulcraft/billing/{userId}.json`
|
|
11
11
|
*
|
|
12
|
-
* This provider is fully functional for single-server deployments.
|
|
13
|
-
*
|
|
12
|
+
* This provider is fully functional for development and single-server deployments.
|
|
13
|
+
* For production, set `PORTAL_CREDIT_SECRET` to use the Portal billing provider.
|
|
14
14
|
*/
|
|
15
15
|
import { promises as fs } from 'node:fs';
|
|
16
16
|
import path from 'node:path';
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* @module billing/model-pricing
|
|
3
3
|
* @description Shared model pricing table for AI token cost estimation.
|
|
4
4
|
*
|
|
5
|
-
* Prices are in USD per 1M tokens. Used by
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
* in sync when model prices change.
|
|
5
|
+
* Prices are in USD per 1M tokens. Used by `LocalBillingProvider` to compute
|
|
6
|
+
* `estimatedCostUSD` in usage status responses. The Portal provider computes
|
|
7
|
+
* costs server-side, but this table ensures consistent estimates in dev mode.
|
|
9
8
|
*
|
|
10
9
|
* All values are the public list prices at time of SDK release. Update this
|
|
11
10
|
* table whenever Anthropic adjusts pricing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/model-pricing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model-pricing.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAI3E,CAAA"}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
* @module billing/model-pricing
|
|
3
3
|
* @description Shared model pricing table for AI token cost estimation.
|
|
4
4
|
*
|
|
5
|
-
* Prices are in USD per 1M tokens. Used by
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
* in sync when model prices change.
|
|
5
|
+
* Prices are in USD per 1M tokens. Used by `LocalBillingProvider` to compute
|
|
6
|
+
* `estimatedCostUSD` in usage status responses. The Portal provider computes
|
|
7
|
+
* costs server-side, but this table ensures consistent estimates in dev mode.
|
|
9
8
|
*
|
|
10
9
|
* All values are the public list prices at time of SDK release. Update this
|
|
11
10
|
* table whenever Anthropic adjusts pricing.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../../src/modules/billing/model-pricing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"model-pricing.js","sourceRoot":"","sources":["../../../src/modules/billing/model-pricing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAsD;IAC9E,2BAA2B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1D,mBAAmB,EAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;IAC3D,iBAAiB,EAAY,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;CAC7D,CAAA"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
* @description Portal-backed billing provider for unified cross-product credit tracking.
|
|
4
4
|
*
|
|
5
5
|
* Delegates all credit checks and usage recording to the Portal credit API at
|
|
6
|
-
* `https://
|
|
7
|
-
*
|
|
8
|
-
* per product.
|
|
6
|
+
* `https://soulcraft.com/api/credits/*`. This ensures that a user's monthly
|
|
7
|
+
* credits are shared across Workshop, Venue, and Academy — not siloed per product.
|
|
9
8
|
*
|
|
10
9
|
* Activated when `PORTAL_CREDIT_SECRET` is set in the environment. Takes precedence
|
|
11
|
-
* over the
|
|
10
|
+
* over the local provider.
|
|
12
11
|
*
|
|
13
12
|
* **Endpoint summary:**
|
|
14
13
|
* ```
|
|
@@ -31,7 +30,7 @@
|
|
|
31
30
|
*
|
|
32
31
|
* // Explicit override (e.g. for testing):
|
|
33
32
|
* const billing = createBillingModule({
|
|
34
|
-
* provider: new PortalBillingProvider('https://
|
|
33
|
+
* provider: new PortalBillingProvider('https://soulcraft.com', secret, 'workshop'),
|
|
35
34
|
* })
|
|
36
35
|
* ```
|
|
37
36
|
*/
|
|
@@ -50,7 +49,7 @@ export declare class PortalBillingProvider implements BillingProvider {
|
|
|
50
49
|
private readonly secret;
|
|
51
50
|
private readonly product;
|
|
52
51
|
/**
|
|
53
|
-
* @param baseUrl - Portal base URL (e.g. `"https://
|
|
52
|
+
* @param baseUrl - Portal base URL (e.g. `"https://soulcraft.com"`).
|
|
54
53
|
* @param secret - The value of `PORTAL_CREDIT_SECRET`.
|
|
55
54
|
* @param product - The product name sent with consume/batch calls (`'workshop'`, `'venue'`, `'academy'`).
|
|
56
55
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-provider.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/portal-provider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"portal-provider.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/portal-provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAmBnB;;;;;;;;GAQG;AACH,qBAAa,qBAAsB,YAAW,eAAe;IAOzD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAR1B;;;;OAIG;gBAEgB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM;IAKlC,OAAO,CAAC,QAAQ;YAOF,KAAK;IAeb,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2B9E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAgB5C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAgC7E,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IAeV,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7E,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAKvE,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKhD,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAG7D"}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
* @description Portal-backed billing provider for unified cross-product credit tracking.
|
|
4
4
|
*
|
|
5
5
|
* Delegates all credit checks and usage recording to the Portal credit API at
|
|
6
|
-
* `https://
|
|
7
|
-
*
|
|
8
|
-
* per product.
|
|
6
|
+
* `https://soulcraft.com/api/credits/*`. This ensures that a user's monthly
|
|
7
|
+
* credits are shared across Workshop, Venue, and Academy — not siloed per product.
|
|
9
8
|
*
|
|
10
9
|
* Activated when `PORTAL_CREDIT_SECRET` is set in the environment. Takes precedence
|
|
11
|
-
* over the
|
|
10
|
+
* over the local provider.
|
|
12
11
|
*
|
|
13
12
|
* **Endpoint summary:**
|
|
14
13
|
* ```
|
|
@@ -31,7 +30,7 @@
|
|
|
31
30
|
*
|
|
32
31
|
* // Explicit override (e.g. for testing):
|
|
33
32
|
* const billing = createBillingModule({
|
|
34
|
-
* provider: new PortalBillingProvider('https://
|
|
33
|
+
* provider: new PortalBillingProvider('https://soulcraft.com', secret, 'workshop'),
|
|
35
34
|
* })
|
|
36
35
|
* ```
|
|
37
36
|
*/
|
|
@@ -62,7 +61,7 @@ export class PortalBillingProvider {
|
|
|
62
61
|
secret;
|
|
63
62
|
product;
|
|
64
63
|
/**
|
|
65
|
-
* @param baseUrl - Portal base URL (e.g. `"https://
|
|
64
|
+
* @param baseUrl - Portal base URL (e.g. `"https://soulcraft.com"`).
|
|
66
65
|
* @param secret - The value of `PORTAL_CREDIT_SECRET`.
|
|
67
66
|
* @param product - The product name sent with consume/batch calls (`'workshop'`, `'venue'`, `'academy'`).
|
|
68
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portal-provider.js","sourceRoot":"","sources":["../../../src/modules/billing/portal-provider.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"portal-provider.js","sourceRoot":"","sources":["../../../src/modules/billing/portal-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
* - **Limit enforcement**: check whether a user can make another AI request
|
|
9
9
|
* - **Stripe subscriptions**: create checkout sessions, manage subscriptions, customer portal
|
|
10
10
|
* - **Top-up credits**: purchase additional credits beyond the monthly allowance
|
|
11
|
-
* - **Provider abstraction**: local file storage (dev) or
|
|
11
|
+
* - **Provider abstraction**: local file storage (dev) or Portal credits (production)
|
|
12
12
|
*
|
|
13
13
|
* The billing provider is selected automatically (priority order):
|
|
14
|
-
* 1. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (
|
|
15
|
-
* 2.
|
|
16
|
-
* 3. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
14
|
+
* 1. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (calls `soulcraft.com/api/credits/*`)
|
|
15
|
+
* 2. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
17
16
|
*
|
|
18
17
|
* @example Checking limits before an AI call
|
|
19
18
|
* ```typescript
|
|
@@ -32,7 +31,7 @@
|
|
|
32
31
|
*/
|
|
33
32
|
export type BillingPlanType = 'free' | 'standard' | 'byok';
|
|
34
33
|
/**
|
|
35
|
-
* Stripe
|
|
34
|
+
* Stripe subscription status.
|
|
36
35
|
*/
|
|
37
36
|
export type SubscriptionStatus = 'active' | 'past_due' | 'canceled' | 'trialing';
|
|
38
37
|
/**
|
|
@@ -164,7 +163,7 @@ export interface CreatePortalSessionOptions {
|
|
|
164
163
|
}
|
|
165
164
|
/**
|
|
166
165
|
* Internal billing provider interface. Implemented by `LocalBillingProvider`
|
|
167
|
-
* and `
|
|
166
|
+
* and `PortalBillingProvider`.
|
|
168
167
|
*
|
|
169
168
|
* @internal
|
|
170
169
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/modules/billing/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,12 +8,11 @@
|
|
|
8
8
|
* - **Limit enforcement**: check whether a user can make another AI request
|
|
9
9
|
* - **Stripe subscriptions**: create checkout sessions, manage subscriptions, customer portal
|
|
10
10
|
* - **Top-up credits**: purchase additional credits beyond the monthly allowance
|
|
11
|
-
* - **Provider abstraction**: local file storage (dev) or
|
|
11
|
+
* - **Provider abstraction**: local file storage (dev) or Portal credits (production)
|
|
12
12
|
*
|
|
13
13
|
* The billing provider is selected automatically (priority order):
|
|
14
|
-
* 1. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (
|
|
15
|
-
* 2.
|
|
16
|
-
* 3. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
14
|
+
* 1. `PORTAL_CREDIT_SECRET` set → `PortalBillingProvider` (calls `soulcraft.com/api/credits/*`)
|
|
15
|
+
* 2. Neither → `LocalBillingProvider` (dev, stores state in `.soulcraft/billing/`)
|
|
17
16
|
*
|
|
18
17
|
* @example Checking limits before an AI call
|
|
19
18
|
* ```typescript
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/billing/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/modules/billing/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Validates the product license against the Portal license server. Initialization
|
|
7
7
|
* is lazy: the first call to `validate()` performs an online check against
|
|
8
|
-
* `
|
|
8
|
+
* `soulcraft.com` and starts the background heartbeat.
|
|
9
9
|
*
|
|
10
10
|
* License state is read from the `SOULCRAFT_LICENSE_KEY` environment variable
|
|
11
11
|
* or a `.soulcraft.json` file in the working directory. On free-tier deployments
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Validates the product license against the Portal license server. Initialization
|
|
7
7
|
* is lazy: the first call to `validate()` performs an online check against
|
|
8
|
-
* `
|
|
8
|
+
* `soulcraft.com` and starts the background heartbeat.
|
|
9
9
|
*
|
|
10
10
|
* License state is read from the `SOULCRAFT_LICENSE_KEY` environment variable
|
|
11
11
|
* or a `.soulcraft.json` file in the working directory. On free-tier deployments
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @description Type definitions for sdk.license.* — Soulcraft license validation,
|
|
4
4
|
* AI credit management, and BYOK API key support.
|
|
5
5
|
*
|
|
6
|
-
* License state is validated against the Portal license server (`
|
|
6
|
+
* License state is validated against the Portal license server (`soulcraft.com`).
|
|
7
7
|
* Initialization is lazy: the first call to any `sdk.license.*` method triggers an
|
|
8
8
|
* online validation. Subsequent calls use the cached result and a background heartbeat.
|
|
9
9
|
*
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @description Type definitions for sdk.license.* — Soulcraft license validation,
|
|
4
4
|
* AI credit management, and BYOK API key support.
|
|
5
5
|
*
|
|
6
|
-
* License state is validated against the Portal license server (`
|
|
6
|
+
* License state is validated against the Portal license server (`soulcraft.com`).
|
|
7
7
|
* Initialization is lazy: the first call to any `sdk.license.*` method triggers an
|
|
8
8
|
* online validation. Subsequent calls use the cached result and a background heartbeat.
|
|
9
9
|
*
|
|
@@ -52,7 +52,7 @@ export interface CreateSDKOptions {
|
|
|
52
52
|
* `sdk.ai.*` calls go directly to the Anthropic API (requires `ANTHROPIC_API_KEY`).
|
|
53
53
|
* `sdk.skills.*` reads from the Brainy VFS and falls back to `@soulcraft/kits`.
|
|
54
54
|
* `sdk.events` is a local EventEmitter — events do not cross process boundaries.
|
|
55
|
-
* `sdk.billing.*` stores usage locally (dev) or
|
|
55
|
+
* `sdk.billing.*` stores usage locally (dev) or via Portal credits (prod via `PORTAL_CREDIT_SECRET`).
|
|
56
56
|
* `sdk.license.*` activates via `@soulcraft/cortex` and delegates credit metering to `sdk.billing`.
|
|
57
57
|
* `sdk.kits.*` reads from the `@soulcraft/kits` registry (optional peer dependency).
|
|
58
58
|
* `sdk.notifications.*` sends via Postmark/Twilio or logs to the console in dev mode.
|
|
@@ -50,7 +50,7 @@ import { createCapabilityToken, verifyCapabilityToken } from '../modules/brainy/
|
|
|
50
50
|
* `sdk.ai.*` calls go directly to the Anthropic API (requires `ANTHROPIC_API_KEY`).
|
|
51
51
|
* `sdk.skills.*` reads from the Brainy VFS and falls back to `@soulcraft/kits`.
|
|
52
52
|
* `sdk.events` is a local EventEmitter — events do not cross process boundaries.
|
|
53
|
-
* `sdk.billing.*` stores usage locally (dev) or
|
|
53
|
+
* `sdk.billing.*` stores usage locally (dev) or via Portal credits (prod via `PORTAL_CREDIT_SECRET`).
|
|
54
54
|
* `sdk.license.*` activates via `@soulcraft/cortex` and delegates credit metering to `sdk.billing`.
|
|
55
55
|
* `sdk.kits.*` reads from the `@soulcraft/kits` registry (optional peer dependency).
|
|
56
56
|
* `sdk.notifications.*` sends via Postmark/Twilio or logs to the console in dev mode.
|
|
@@ -115,8 +115,6 @@ export interface LicenseConfigBundle {
|
|
|
115
115
|
twilioToken?: string;
|
|
116
116
|
/** Twilio from-number for SMS. */
|
|
117
117
|
twilioFromNumber?: string;
|
|
118
|
-
/** Firebase service account key (base64-encoded JSON) for Firestore billing. */
|
|
119
|
-
firebaseServiceAccountKey?: string;
|
|
120
118
|
/**
|
|
121
119
|
* Internal Cortex Ed25519 JWT license key for this product.
|
|
122
120
|
* Written to `.soulcraft.json` before Brainy/Cortex initializes so that
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-license.d.ts","sourceRoot":"","sources":["../../src/server/from-license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA2BjE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAAA;IACjD,kCAAkC;IAClC,YAAY,CAAC,EAAE,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAA;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB
|
|
1
|
+
{"version":3,"file":"from-license.d.ts","sourceRoot":"","sources":["../../src/server/from-license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AA2BjE;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,yCAAyC;IACzC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAAA;IACjD,kCAAkC;IAClC,YAAY,CAAC,EAAE,iBAAiB,GAAG,cAAc,GAAG,QAAQ,CAAA;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qCAAqC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,2CAA2C;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAwBD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,OAAO,EAAE,gBAAgB,CAAA;IAEzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;;;;OAQG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAA;IAEtC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;IAErC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAA;IAEpC;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;IAE9D;;;;OAIG;IACH,QAAQ,IAAI,IAAI,CAAA;CACjB;AA6HD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAe,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC,CA6H1E;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe;;CAE3B,CAAA"}
|
|
@@ -157,7 +157,6 @@ function _injectEnv(config) {
|
|
|
157
157
|
['twilioSid', 'TWILIO_ACCOUNT_SID'],
|
|
158
158
|
['twilioToken', 'TWILIO_AUTH_TOKEN'],
|
|
159
159
|
['twilioFromNumber', 'TWILIO_FROM_NUMBER'],
|
|
160
|
-
['firebaseServiceAccountKey', 'FIREBASE_SERVICE_ACCOUNT_KEY'],
|
|
161
160
|
];
|
|
162
161
|
for (const [configKey, envKey] of mappings) {
|
|
163
162
|
const value = config[configKey];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-license.js","sourceRoot":"","sources":["../../src/server/from-license.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,0CAA0C;AAC1C,MAAM,YAAY,GAAG,4CAA4C,CAAA;AAEjE,uCAAuC;AACvC,MAAM,sBAAsB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAEjD;;;;;GAKG;AACH,SAAS,YAAY;IACnB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,wBAAwB,CAAC,CAAA;AACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"from-license.js","sourceRoot":"","sources":["../../src/server/from-license.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soulcraft/sdk",
|
|
3
|
-
"version": "1.5.
|
|
4
|
-
"description": "The unified Soulcraft platform SDK
|
|
3
|
+
"version": "1.5.4",
|
|
4
|
+
"description": "The unified Soulcraft platform SDK \u2014 data, auth, AI, billing, and notifications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "restricted",
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"@soulcraft/kit-schema": ">=2.0.0",
|
|
42
42
|
"@soulcraft/kits": ">=1.0.0",
|
|
43
43
|
"better-auth": ">=1.0.0",
|
|
44
|
-
"firebase-admin": ">=12.0.0",
|
|
45
44
|
"stripe": ">=20.0.0"
|
|
46
45
|
},
|
|
47
46
|
"peerDependenciesMeta": {
|
|
@@ -60,9 +59,6 @@
|
|
|
60
59
|
"better-auth": {
|
|
61
60
|
"optional": true
|
|
62
61
|
},
|
|
63
|
-
"firebase-admin": {
|
|
64
|
-
"optional": true
|
|
65
|
-
},
|
|
66
62
|
"stripe": {
|
|
67
63
|
"optional": true
|
|
68
64
|
}
|