@oobe-protocol-labs/sap-mcp-server 0.9.38 → 0.9.50
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/config/env.d.ts +19 -0
- package/dist/config/env.d.ts.map +1 -1
- package/dist/config/env.js +9 -2
- package/dist/config/env.js.map +1 -1
- package/dist/payments/monetization-gate.d.ts +5 -0
- package/dist/payments/monetization-gate.d.ts.map +1 -1
- package/dist/payments/monetization-gate.js +39 -2
- package/dist/payments/monetization-gate.js.map +1 -1
- package/dist/payments/prepaid-credit-store.d.ts +111 -0
- package/dist/payments/prepaid-credit-store.d.ts.map +1 -0
- package/dist/payments/prepaid-credit-store.js +230 -0
- package/dist/payments/prepaid-credit-store.js.map +1 -0
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +1 -0
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/schema-validation.d.ts +52 -0
- package/dist/payments/schema-validation.d.ts.map +1 -0
- package/dist/payments/schema-validation.js +112 -0
- package/dist/payments/schema-validation.js.map +1 -0
- package/dist/payments/x402-paid-call.d.ts +21 -0
- package/dist/payments/x402-paid-call.d.ts.map +1 -1
- package/dist/payments/x402-paid-call.js +108 -3
- package/dist/payments/x402-paid-call.js.map +1 -1
- package/dist/perps/adrena/adrena-builder-commodity.d.ts +63 -0
- package/dist/perps/adrena/adrena-builder-commodity.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-builder-commodity.js +200 -0
- package/dist/perps/adrena/adrena-builder-commodity.js.map +1 -0
- package/dist/perps/adrena/adrena-builder-core.d.ts +319 -0
- package/dist/perps/adrena/adrena-builder-core.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-builder-core.js +517 -0
- package/dist/perps/adrena/adrena-builder-core.js.map +1 -0
- package/dist/perps/adrena/adrena-builder-liquidity.d.ts +50 -0
- package/dist/perps/adrena/adrena-builder-liquidity.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-builder-liquidity.js +196 -0
- package/dist/perps/adrena/adrena-builder-liquidity.js.map +1 -0
- package/dist/perps/adrena/adrena-builder-staking.d.ts +57 -0
- package/dist/perps/adrena/adrena-builder-staking.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-builder-staking.js +368 -0
- package/dist/perps/adrena/adrena-builder-staking.js.map +1 -0
- package/dist/perps/adrena/adrena-builder-trading.d.ts +160 -0
- package/dist/perps/adrena/adrena-builder-trading.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-builder-trading.js +835 -0
- package/dist/perps/adrena/adrena-builder-trading.js.map +1 -0
- package/dist/perps/adrena/adrena-builder.d.ts +14 -293
- package/dist/perps/adrena/adrena-builder.d.ts.map +1 -1
- package/dist/perps/adrena/adrena-builder.js +14 -1140
- package/dist/perps/adrena/adrena-builder.js.map +1 -1
- package/dist/perps/adrena/adrena-constants.d.ts +33 -5
- package/dist/perps/adrena/adrena-constants.d.ts.map +1 -1
- package/dist/perps/adrena/adrena-constants.js +29 -7
- package/dist/perps/adrena/adrena-constants.js.map +1 -1
- package/dist/perps/adrena/adrena-idl.d.ts +15084 -0
- package/dist/perps/adrena/adrena-idl.d.ts.map +1 -0
- package/dist/perps/adrena/adrena-idl.js +29903 -0
- package/dist/perps/adrena/adrena-idl.js.map +1 -0
- package/dist/perps/adrena/adrena-pda.d.ts +5 -4
- package/dist/perps/adrena/adrena-pda.d.ts.map +1 -1
- package/dist/perps/adrena/adrena-pda.js +6 -10
- package/dist/perps/adrena/adrena-pda.js.map +1 -1
- package/dist/perps/adrena/index.d.ts +1 -0
- package/dist/perps/adrena/index.d.ts.map +1 -1
- package/dist/perps/adrena/index.js +1 -0
- package/dist/perps/adrena/index.js.map +1 -1
- package/dist/perps/chart-indicators.d.ts +27 -0
- package/dist/perps/chart-indicators.d.ts.map +1 -0
- package/dist/perps/chart-indicators.js +345 -0
- package/dist/perps/chart-indicators.js.map +1 -0
- package/dist/perps/chart-tools.d.ts +45 -0
- package/dist/perps/chart-tools.d.ts.map +1 -0
- package/dist/perps/chart-tools.js +341 -0
- package/dist/perps/chart-tools.js.map +1 -0
- package/dist/perps/perp-analytics-tools.d.ts +20 -0
- package/dist/perps/perp-analytics-tools.d.ts.map +1 -0
- package/dist/perps/perp-analytics-tools.js +868 -0
- package/dist/perps/perp-analytics-tools.js.map +1 -0
- package/dist/perps/perp-constants.d.ts +362 -0
- package/dist/perps/perp-constants.d.ts.map +1 -0
- package/dist/perps/perp-constants.js +210 -0
- package/dist/perps/perp-constants.js.map +1 -0
- package/dist/perps/perp-decoders.d.ts +47 -0
- package/dist/perps/perp-decoders.d.ts.map +1 -0
- package/dist/perps/perp-decoders.js +332 -0
- package/dist/perps/perp-decoders.js.map +1 -0
- package/dist/policy/policy-engine.d.ts +42 -0
- package/dist/policy/policy-engine.d.ts.map +1 -1
- package/dist/policy/policy-engine.js +43 -0
- package/dist/policy/policy-engine.js.map +1 -1
- package/dist/premium/activation-manager.d.ts.map +1 -1
- package/dist/premium/activation-manager.js +20 -2
- package/dist/premium/activation-manager.js.map +1 -1
- package/dist/prompts/context/sap-agent-context.prompt.js +15 -1
- package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
- package/dist/server/server-metadata.d.ts +13 -0
- package/dist/server/server-metadata.d.ts.map +1 -1
- package/dist/server/server-metadata.js +15 -2
- package/dist/server/server-metadata.js.map +1 -1
- package/dist/solana/ata-utils.d.ts +39 -0
- package/dist/solana/ata-utils.d.ts.map +1 -0
- package/dist/solana/ata-utils.js +49 -0
- package/dist/solana/ata-utils.js.map +1 -0
- package/dist/strategies/trade-journal.d.ts +78 -0
- package/dist/strategies/trade-journal.d.ts.map +1 -0
- package/dist/strategies/trade-journal.js +92 -0
- package/dist/strategies/trade-journal.js.map +1 -0
- package/dist/tools/adrena/adrena-commodity-tools.d.ts +15 -0
- package/dist/tools/adrena/adrena-commodity-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-commodity-tools.js +137 -0
- package/dist/tools/adrena/adrena-commodity-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-data-tools.d.ts +23 -0
- package/dist/tools/adrena/adrena-data-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-data-tools.js +437 -0
- package/dist/tools/adrena/adrena-data-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-helpers.d.ts +46 -0
- package/dist/tools/adrena/adrena-helpers.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-helpers.js +41 -0
- package/dist/tools/adrena/adrena-helpers.js.map +1 -0
- package/dist/tools/adrena/adrena-index.d.ts +20 -0
- package/dist/tools/adrena/adrena-index.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-index.js +75 -0
- package/dist/tools/adrena/adrena-index.js.map +1 -0
- package/dist/tools/adrena/adrena-limit-order-tools.d.ts +22 -0
- package/dist/tools/adrena/adrena-limit-order-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-limit-order-tools.js +91 -0
- package/dist/tools/adrena/adrena-limit-order-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-liquidity-tools.d.ts +15 -0
- package/dist/tools/adrena/adrena-liquidity-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-liquidity-tools.js +108 -0
- package/dist/tools/adrena/adrena-liquidity-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-snapshot-tools.d.ts +42 -0
- package/dist/tools/adrena/adrena-snapshot-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-snapshot-tools.js +124 -0
- package/dist/tools/adrena/adrena-snapshot-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-staking-tools.d.ts +15 -0
- package/dist/tools/adrena/adrena-staking-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-staking-tools.js +139 -0
- package/dist/tools/adrena/adrena-staking-tools.js.map +1 -0
- package/dist/tools/adrena/adrena-trading-tools.d.ts +78 -0
- package/dist/tools/adrena/adrena-trading-tools.d.ts.map +1 -0
- package/dist/tools/adrena/adrena-trading-tools.js +556 -0
- package/dist/tools/adrena/adrena-trading-tools.js.map +1 -0
- package/dist/tools/adrena-tools.d.ts +1 -66
- package/dist/tools/adrena-tools.d.ts.map +1 -1
- package/dist/tools/adrena-tools.js +1 -1061
- package/dist/tools/adrena-tools.js.map +1 -1
- package/dist/tools/client-sdk-tools.js +1 -1
- package/dist/tools/client-sdk-tools.js.map +1 -1
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +170 -0
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/perp-tools.d.ts +6 -174
- package/dist/tools/perp-tools.d.ts.map +1 -1
- package/dist/tools/perp-tools.js +6 -1716
- package/dist/tools/perp-tools.js.map +1 -1
- package/dist/tools/premium-tools.d.ts.map +1 -1
- package/dist/tools/premium-tools.js +123 -5
- package/dist/tools/premium-tools.js.map +1 -1
- package/dist/tools/transaction-tools.d.ts +21 -1
- package/dist/tools/transaction-tools.d.ts.map +1 -1
- package/dist/tools/transaction-tools.js +114 -30
- package/dist/tools/transaction-tools.js.map +1 -1
- package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
- package/dist/tools/x402-paid-call-tool.js +288 -0
- package/dist/tools/x402-paid-call-tool.js.map +1 -1
- package/package.json +3 -2
- package/server.json +3 -3
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name payments/prepaid-credit-store
|
|
3
|
+
* @description In-memory + file-persisted prepaid credit store for x402 sessions.
|
|
4
|
+
*
|
|
5
|
+
* Allows agents to prepay a USDC balance once (via standard x402 challenge →
|
|
6
|
+
* sign → settle) and then make multiple tool calls without per-call 402
|
|
7
|
+
* challenges. The server checks the prepaid balance in `onProtectedRequest`
|
|
8
|
+
* and grants access by returning `{ grantAccess: true }` (standard x402
|
|
9
|
+
* Lifecycle Hooks extension) when sufficient balance exists.
|
|
10
|
+
*
|
|
11
|
+
* The store is backed by a JSON file at ~/.config/mcp-sap/payments/prepaid.json
|
|
12
|
+
* so credits survive server restarts. An in-memory Map provides fast lookups.
|
|
13
|
+
*
|
|
14
|
+
* @module payments/prepaid-credit-store
|
|
15
|
+
*/
|
|
16
|
+
/** Prepaid credit entry for a wallet. */
|
|
17
|
+
export interface PrepaidCredit {
|
|
18
|
+
/** Unique session ID used as the X-SAP-Prepaid-Session header value. */
|
|
19
|
+
sessionId: string;
|
|
20
|
+
/** Wallet address that funded the session (payer). */
|
|
21
|
+
wallet: string;
|
|
22
|
+
/** Total USDC deposited when the session was created. */
|
|
23
|
+
totalUsd: number;
|
|
24
|
+
/** Remaining USDC balance. */
|
|
25
|
+
remainingUsd: number;
|
|
26
|
+
/** Per-call cost deducted on each granted request. */
|
|
27
|
+
perCallCostUsd: number;
|
|
28
|
+
/** ISO timestamp when the session was created. */
|
|
29
|
+
createdAt: string;
|
|
30
|
+
/** ISO timestamp when the session expires. */
|
|
31
|
+
expiresAt: string;
|
|
32
|
+
/** Number of calls made using this session. */
|
|
33
|
+
callCount: number;
|
|
34
|
+
}
|
|
35
|
+
/** Result of checking prepaid credit. */
|
|
36
|
+
export interface PrepaidCheckResult {
|
|
37
|
+
/** True if the session has enough balance for a call. */
|
|
38
|
+
hasCredit: boolean;
|
|
39
|
+
/** The session that was checked, if found. */
|
|
40
|
+
sessionId?: string;
|
|
41
|
+
/** Remaining balance after this call (if hasCredit). */
|
|
42
|
+
remainingUsd?: number;
|
|
43
|
+
/** Reason if no credit. */
|
|
44
|
+
reason?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Prepaid credit store with file persistence.
|
|
48
|
+
* Uses a Map for fast lookups and a JSON file for durability.
|
|
49
|
+
*/
|
|
50
|
+
export declare class PrepaidCreditStore {
|
|
51
|
+
private readonly credits;
|
|
52
|
+
private readonly filePath;
|
|
53
|
+
private dirty;
|
|
54
|
+
constructor(configDir?: string);
|
|
55
|
+
/**
|
|
56
|
+
* Create a new prepaid session. Called after a successful x402 settlement
|
|
57
|
+
* for the `sap_payments_fund_prepaid` hosted tool.
|
|
58
|
+
*
|
|
59
|
+
* @param wallet — Payer wallet address.
|
|
60
|
+
* @param amountUsd — Total USDC deposited.
|
|
61
|
+
* @param perCallCostUsd — Cost per call that will be deducted.
|
|
62
|
+
* @param ttlHours — Session TTL in hours (default 24).
|
|
63
|
+
* @returns The created PrepaidCredit entry.
|
|
64
|
+
*/
|
|
65
|
+
createSession(wallet: string, amountUsd: number, perCallCostUsd: number, ttlHours?: number): PrepaidCredit;
|
|
66
|
+
/**
|
|
67
|
+
* Check if a session has enough credit for a call and deduct it if so.
|
|
68
|
+
* This is called by the monetization gate's `onProtectedRequest` hook.
|
|
69
|
+
*
|
|
70
|
+
* @param sessionId — Session ID from the X-SAP-Prepaid-Session header.
|
|
71
|
+
* @param costUsd — Cost to deduct (defaults to session's perCallCostUsd).
|
|
72
|
+
* @returns PrepaidCheckResult with hasCredit and remaining balance.
|
|
73
|
+
*/
|
|
74
|
+
checkAndDeduct(sessionId: string, costUsd?: number): PrepaidCheckResult;
|
|
75
|
+
/**
|
|
76
|
+
* Get the remaining balance for a session without deducting.
|
|
77
|
+
* @param sessionId — Session ID.
|
|
78
|
+
* @returns PrepaidCredit or null if not found.
|
|
79
|
+
*/
|
|
80
|
+
getBalance(sessionId: string): PrepaidCredit | null;
|
|
81
|
+
/**
|
|
82
|
+
* Get all active sessions for a wallet.
|
|
83
|
+
* @param wallet — Wallet address.
|
|
84
|
+
* @returns Array of PrepaidCredit entries.
|
|
85
|
+
*/
|
|
86
|
+
getSessionsByWallet(wallet: string): PrepaidCredit[];
|
|
87
|
+
/**
|
|
88
|
+
* Manually close a session (refund unused balance is out of scope —
|
|
89
|
+
* the balance simply becomes unavailable).
|
|
90
|
+
* @param sessionId — Session ID to close.
|
|
91
|
+
*/
|
|
92
|
+
closeSession(sessionId: string): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Prune expired sessions. Called periodically.
|
|
95
|
+
*/
|
|
96
|
+
pruneExpired(): number;
|
|
97
|
+
private load;
|
|
98
|
+
private save;
|
|
99
|
+
private startSyncTimer;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the global PrepaidCreditStore singleton used by free payment tools.
|
|
103
|
+
* Lazily creates the store on first access.
|
|
104
|
+
*/
|
|
105
|
+
export declare function getGlobalPrepaidStore(): PrepaidCreditStore;
|
|
106
|
+
/**
|
|
107
|
+
* Set the global PrepaidCreditStore singleton. Called by the server when the
|
|
108
|
+
* monetization gate is initialized so the tools share the same store instance.
|
|
109
|
+
*/
|
|
110
|
+
export declare function setGlobalPrepaidStore(store: PrepaidCreditStore): void;
|
|
111
|
+
//# sourceMappingURL=prepaid-credit-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepaid-credit-store.d.ts","sourceRoot":"","sources":["../../src/payments/prepaid-credit-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,yCAAyC;AACzC,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,SAAS,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoC;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,KAAK,CAAS;gBAEV,SAAS,CAAC,EAAE,MAAM;IAO9B;;;;;;;;;OASG;IACI,aAAa,CAClB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,QAAQ,GAAE,MAAW,GACpB,aAAa;IAwBhB;;;;;;;OAOG;IACI,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAmC9E;;;;OAIG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAW1D;;;;OAIG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,EAAE;IAU3D;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAM/C;;OAEG;IACI,YAAY,IAAI,MAAM;IAe7B,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,IAAI;IAYZ,OAAO,CAAC,cAAc;CAOvB;AAUD;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAErE"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name payments/prepaid-credit-store
|
|
3
|
+
* @description In-memory + file-persisted prepaid credit store for x402 sessions.
|
|
4
|
+
*
|
|
5
|
+
* Allows agents to prepay a USDC balance once (via standard x402 challenge →
|
|
6
|
+
* sign → settle) and then make multiple tool calls without per-call 402
|
|
7
|
+
* challenges. The server checks the prepaid balance in `onProtectedRequest`
|
|
8
|
+
* and grants access by returning `{ grantAccess: true }` (standard x402
|
|
9
|
+
* Lifecycle Hooks extension) when sufficient balance exists.
|
|
10
|
+
*
|
|
11
|
+
* The store is backed by a JSON file at ~/.config/mcp-sap/payments/prepaid.json
|
|
12
|
+
* so credits survive server restarts. An in-memory Map provides fast lookups.
|
|
13
|
+
*
|
|
14
|
+
* @module payments/prepaid-credit-store
|
|
15
|
+
*/
|
|
16
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
17
|
+
import { join, dirname } from 'path';
|
|
18
|
+
import { randomUUID } from 'crypto';
|
|
19
|
+
import { logger } from '../core/logger.js';
|
|
20
|
+
import { getPreferredConfigDir } from '../config/paths.js';
|
|
21
|
+
/**
|
|
22
|
+
* Prepaid credit store with file persistence.
|
|
23
|
+
* Uses a Map for fast lookups and a JSON file for durability.
|
|
24
|
+
*/
|
|
25
|
+
export class PrepaidCreditStore {
|
|
26
|
+
credits = new Map();
|
|
27
|
+
filePath;
|
|
28
|
+
dirty = false;
|
|
29
|
+
constructor(configDir) {
|
|
30
|
+
const dir = configDir ?? getPreferredConfigDir();
|
|
31
|
+
this.filePath = join(dir, 'payments', 'prepaid.json');
|
|
32
|
+
this.load();
|
|
33
|
+
this.startSyncTimer();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a new prepaid session. Called after a successful x402 settlement
|
|
37
|
+
* for the `sap_payments_fund_prepaid` hosted tool.
|
|
38
|
+
*
|
|
39
|
+
* @param wallet — Payer wallet address.
|
|
40
|
+
* @param amountUsd — Total USDC deposited.
|
|
41
|
+
* @param perCallCostUsd — Cost per call that will be deducted.
|
|
42
|
+
* @param ttlHours — Session TTL in hours (default 24).
|
|
43
|
+
* @returns The created PrepaidCredit entry.
|
|
44
|
+
*/
|
|
45
|
+
createSession(wallet, amountUsd, perCallCostUsd, ttlHours = 24) {
|
|
46
|
+
const now = new Date();
|
|
47
|
+
const expires = new Date(now.getTime() + ttlHours * 60 * 60 * 1000);
|
|
48
|
+
const credit = {
|
|
49
|
+
sessionId: randomUUID(),
|
|
50
|
+
wallet,
|
|
51
|
+
totalUsd: amountUsd,
|
|
52
|
+
remainingUsd: amountUsd,
|
|
53
|
+
perCallCostUsd,
|
|
54
|
+
createdAt: now.toISOString(),
|
|
55
|
+
expiresAt: expires.toISOString(),
|
|
56
|
+
callCount: 0,
|
|
57
|
+
};
|
|
58
|
+
this.credits.set(credit.sessionId, credit);
|
|
59
|
+
this.dirty = true;
|
|
60
|
+
logger.info('Prepaid session created', {
|
|
61
|
+
sessionId: credit.sessionId,
|
|
62
|
+
wallet,
|
|
63
|
+
totalUsd: amountUsd,
|
|
64
|
+
perCallCostUsd,
|
|
65
|
+
});
|
|
66
|
+
return credit;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Check if a session has enough credit for a call and deduct it if so.
|
|
70
|
+
* This is called by the monetization gate's `onProtectedRequest` hook.
|
|
71
|
+
*
|
|
72
|
+
* @param sessionId — Session ID from the X-SAP-Prepaid-Session header.
|
|
73
|
+
* @param costUsd — Cost to deduct (defaults to session's perCallCostUsd).
|
|
74
|
+
* @returns PrepaidCheckResult with hasCredit and remaining balance.
|
|
75
|
+
*/
|
|
76
|
+
checkAndDeduct(sessionId, costUsd) {
|
|
77
|
+
const credit = this.credits.get(sessionId);
|
|
78
|
+
if (!credit) {
|
|
79
|
+
return { hasCredit: false, reason: 'session_not_found' };
|
|
80
|
+
}
|
|
81
|
+
if (new Date(credit.expiresAt).getTime() < Date.now()) {
|
|
82
|
+
this.credits.delete(sessionId);
|
|
83
|
+
this.dirty = true;
|
|
84
|
+
return { hasCredit: false, reason: 'session_expired' };
|
|
85
|
+
}
|
|
86
|
+
const cost = costUsd ?? credit.perCallCostUsd;
|
|
87
|
+
if (credit.remainingUsd < cost) {
|
|
88
|
+
return {
|
|
89
|
+
hasCredit: false,
|
|
90
|
+
sessionId: credit.sessionId,
|
|
91
|
+
reason: 'insufficient_balance',
|
|
92
|
+
remainingUsd: credit.remainingUsd,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
credit.remainingUsd = Math.round((credit.remainingUsd - cost) * 1e6) / 1e6;
|
|
96
|
+
credit.callCount += 1;
|
|
97
|
+
this.dirty = true;
|
|
98
|
+
logger.debug('Prepaid credit deducted', {
|
|
99
|
+
sessionId,
|
|
100
|
+
cost,
|
|
101
|
+
remaining: credit.remainingUsd,
|
|
102
|
+
callCount: credit.callCount,
|
|
103
|
+
});
|
|
104
|
+
return {
|
|
105
|
+
hasCredit: true,
|
|
106
|
+
sessionId: credit.sessionId,
|
|
107
|
+
remainingUsd: credit.remainingUsd,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get the remaining balance for a session without deducting.
|
|
112
|
+
* @param sessionId — Session ID.
|
|
113
|
+
* @returns PrepaidCredit or null if not found.
|
|
114
|
+
*/
|
|
115
|
+
getBalance(sessionId) {
|
|
116
|
+
const credit = this.credits.get(sessionId);
|
|
117
|
+
if (!credit)
|
|
118
|
+
return null;
|
|
119
|
+
if (new Date(credit.expiresAt).getTime() < Date.now()) {
|
|
120
|
+
this.credits.delete(sessionId);
|
|
121
|
+
this.dirty = true;
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return { ...credit };
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get all active sessions for a wallet.
|
|
128
|
+
* @param wallet — Wallet address.
|
|
129
|
+
* @returns Array of PrepaidCredit entries.
|
|
130
|
+
*/
|
|
131
|
+
getSessionsByWallet(wallet) {
|
|
132
|
+
const result = [];
|
|
133
|
+
for (const credit of this.credits.values()) {
|
|
134
|
+
if (credit.wallet === wallet && new Date(credit.expiresAt).getTime() >= Date.now()) {
|
|
135
|
+
result.push({ ...credit });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Manually close a session (refund unused balance is out of scope —
|
|
142
|
+
* the balance simply becomes unavailable).
|
|
143
|
+
* @param sessionId — Session ID to close.
|
|
144
|
+
*/
|
|
145
|
+
closeSession(sessionId) {
|
|
146
|
+
const existed = this.credits.delete(sessionId);
|
|
147
|
+
if (existed)
|
|
148
|
+
this.dirty = true;
|
|
149
|
+
return existed;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Prune expired sessions. Called periodically.
|
|
153
|
+
*/
|
|
154
|
+
pruneExpired() {
|
|
155
|
+
const now = Date.now();
|
|
156
|
+
let pruned = 0;
|
|
157
|
+
for (const [id, credit] of this.credits) {
|
|
158
|
+
if (new Date(credit.expiresAt).getTime() < now) {
|
|
159
|
+
this.credits.delete(id);
|
|
160
|
+
pruned++;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (pruned > 0)
|
|
164
|
+
this.dirty = true;
|
|
165
|
+
return pruned;
|
|
166
|
+
}
|
|
167
|
+
// ─── Persistence ──────────────────────────────────────────────────────────
|
|
168
|
+
load() {
|
|
169
|
+
try {
|
|
170
|
+
if (!existsSync(this.filePath))
|
|
171
|
+
return;
|
|
172
|
+
const raw = readFileSync(this.filePath, 'utf-8');
|
|
173
|
+
const data = JSON.parse(raw);
|
|
174
|
+
for (const credit of data) {
|
|
175
|
+
// Don't load expired sessions
|
|
176
|
+
if (new Date(credit.expiresAt).getTime() >= Date.now()) {
|
|
177
|
+
this.credits.set(credit.sessionId, credit);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
logger.debug('Prepaid credits loaded', { count: this.credits.size });
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
logger.warn('Failed to load prepaid credits', { error });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
save() {
|
|
187
|
+
if (!this.dirty)
|
|
188
|
+
return;
|
|
189
|
+
try {
|
|
190
|
+
mkdirSync(dirname(this.filePath), { recursive: true, mode: 0o700 });
|
|
191
|
+
const data = Array.from(this.credits.values());
|
|
192
|
+
writeFileSync(this.filePath, JSON.stringify(data, null, 2), 'utf-8');
|
|
193
|
+
this.dirty = false;
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
logger.warn('Failed to save prepaid credits', { error });
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
startSyncTimer() {
|
|
200
|
+
const timer = setInterval(() => {
|
|
201
|
+
this.pruneExpired();
|
|
202
|
+
this.save();
|
|
203
|
+
}, 30_000);
|
|
204
|
+
timer.unref?.();
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// ─── Global singleton for tool access ─────────────────────────────────────
|
|
208
|
+
// The monetization gate creates its own PrepaidCreditStore instance, but the
|
|
209
|
+
// free local tools (sap_payments_prepaid_balance, sap_payments_start_prepaid)
|
|
210
|
+
// also need to access the store. We use a module-level singleton that is shared
|
|
211
|
+
// between the gate and the tools so both see the same sessions.
|
|
212
|
+
let globalPrepaidStore;
|
|
213
|
+
/**
|
|
214
|
+
* Get the global PrepaidCreditStore singleton used by free payment tools.
|
|
215
|
+
* Lazily creates the store on first access.
|
|
216
|
+
*/
|
|
217
|
+
export function getGlobalPrepaidStore() {
|
|
218
|
+
if (!globalPrepaidStore) {
|
|
219
|
+
globalPrepaidStore = new PrepaidCreditStore();
|
|
220
|
+
}
|
|
221
|
+
return globalPrepaidStore;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Set the global PrepaidCreditStore singleton. Called by the server when the
|
|
225
|
+
* monetization gate is initialized so the tools share the same store instance.
|
|
226
|
+
*/
|
|
227
|
+
export function setGlobalPrepaidStore(store) {
|
|
228
|
+
globalPrepaidStore = store;
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=prepaid-credit-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepaid-credit-store.js","sourceRoot":"","sources":["../../src/payments/prepaid-credit-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC;AAExG;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,GACD;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC;AAExG;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,eAAe,EAAE,MAAM,EAAE,CAAC;QAC1B,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;QAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,GACD;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AA0WN;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,CA+FpF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,gBAAgB,EAC/B,MAAM,EAAE,wBAAwB,GAC/B,eAAe,CAqCjB;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,wBAAwB,GAC/B,WAAW,CA6Db;AAYD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,aAAa,CAAC,GAAG,WAAW,CAwClH;AA6BD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvD"}
|
package/dist/payments/pricing.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name payments/schema-validation
|
|
3
|
+
* @description Pre-payment schema validation for x402 paid tool calls.
|
|
4
|
+
*
|
|
5
|
+
* Validates tool arguments against the local registration store's JSON Schema
|
|
6
|
+
* BEFORE the x402 challenge is fetched and paid. This prevents wasted USDC
|
|
7
|
+
* on calls with invalid schemas (e.g. wrong parameter names, missing required
|
|
8
|
+
* fields).
|
|
9
|
+
*
|
|
10
|
+
* If the tool name is not found in the local registration store (hosted-only
|
|
11
|
+
* tools), validation is skipped — we cannot validate what we don't have the
|
|
12
|
+
* schema for. This is intentionally non-breaking: existing behavior is
|
|
13
|
+
* preserved for unknown tools.
|
|
14
|
+
*
|
|
15
|
+
* @module payments/schema-validation
|
|
16
|
+
*/
|
|
17
|
+
import type { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
18
|
+
/**
|
|
19
|
+
* Store the server reference for pre-payment schema validation.
|
|
20
|
+
* Called once during registerX402PaidCallTool().
|
|
21
|
+
* @param server — The MCP server instance with registered tools.
|
|
22
|
+
*/
|
|
23
|
+
export declare function setValidationServer(server: Server): void;
|
|
24
|
+
/**
|
|
25
|
+
* Validation result for a tool's input arguments.
|
|
26
|
+
*/
|
|
27
|
+
export interface SchemaValidationResult {
|
|
28
|
+
/** True if arguments match the tool's schema. */
|
|
29
|
+
valid: boolean;
|
|
30
|
+
/** Human-readable validation errors (empty if valid). */
|
|
31
|
+
errors: string[];
|
|
32
|
+
/** True if validation was skipped (tool not found locally). */
|
|
33
|
+
skipped: boolean;
|
|
34
|
+
/** Tool name that was validated. */
|
|
35
|
+
toolName: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validate tool arguments against the local registration store's JSON Schema.
|
|
39
|
+
*
|
|
40
|
+
* Uses simple runtime type checking against the JSON Schema properties —
|
|
41
|
+
* checks required fields, enum values, and basic types. This is intentionally
|
|
42
|
+
* lightweight (no ajv dependency) to keep the bridge fast and dependency-free.
|
|
43
|
+
*
|
|
44
|
+
* If the tool is not registered locally, returns `skipped: true` and
|
|
45
|
+
* `valid: true` — the caller should proceed with the x402 flow as normal.
|
|
46
|
+
*
|
|
47
|
+
* @param toolName — Name of the tool to validate against.
|
|
48
|
+
* @param args — Arguments to validate.
|
|
49
|
+
* @returns SchemaValidationResult with validity and error details.
|
|
50
|
+
*/
|
|
51
|
+
export declare function validateToolArguments(toolName: string, args: unknown): SchemaValidationResult;
|
|
52
|
+
//# sourceMappingURL=schema-validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validation.d.ts","sourceRoot":"","sources":["../../src/payments/schema-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAOxE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,sBAAsB,CA0ExB"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name payments/schema-validation
|
|
3
|
+
* @description Pre-payment schema validation for x402 paid tool calls.
|
|
4
|
+
*
|
|
5
|
+
* Validates tool arguments against the local registration store's JSON Schema
|
|
6
|
+
* BEFORE the x402 challenge is fetched and paid. This prevents wasted USDC
|
|
7
|
+
* on calls with invalid schemas (e.g. wrong parameter names, missing required
|
|
8
|
+
* fields).
|
|
9
|
+
*
|
|
10
|
+
* If the tool name is not found in the local registration store (hosted-only
|
|
11
|
+
* tools), validation is skipped — we cannot validate what we don't have the
|
|
12
|
+
* schema for. This is intentionally non-breaking: existing behavior is
|
|
13
|
+
* preserved for unknown tools.
|
|
14
|
+
*
|
|
15
|
+
* @module payments/schema-validation
|
|
16
|
+
*/
|
|
17
|
+
import { getRegisteredTools } from '../adapters/mcp/sdk-compat.js';
|
|
18
|
+
import { logger } from '../core/logger.js';
|
|
19
|
+
/** Module-level server reference set during tool registration. */
|
|
20
|
+
let validationServer = null;
|
|
21
|
+
/**
|
|
22
|
+
* Store the server reference for pre-payment schema validation.
|
|
23
|
+
* Called once during registerX402PaidCallTool().
|
|
24
|
+
* @param server — The MCP server instance with registered tools.
|
|
25
|
+
*/
|
|
26
|
+
export function setValidationServer(server) {
|
|
27
|
+
validationServer = server;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate tool arguments against the local registration store's JSON Schema.
|
|
31
|
+
*
|
|
32
|
+
* Uses simple runtime type checking against the JSON Schema properties —
|
|
33
|
+
* checks required fields, enum values, and basic types. This is intentionally
|
|
34
|
+
* lightweight (no ajv dependency) to keep the bridge fast and dependency-free.
|
|
35
|
+
*
|
|
36
|
+
* If the tool is not registered locally, returns `skipped: true` and
|
|
37
|
+
* `valid: true` — the caller should proceed with the x402 flow as normal.
|
|
38
|
+
*
|
|
39
|
+
* @param toolName — Name of the tool to validate against.
|
|
40
|
+
* @param args — Arguments to validate.
|
|
41
|
+
* @returns SchemaValidationResult with validity and error details.
|
|
42
|
+
*/
|
|
43
|
+
export function validateToolArguments(toolName, args) {
|
|
44
|
+
if (!validationServer) {
|
|
45
|
+
return { valid: true, errors: [], skipped: true, toolName };
|
|
46
|
+
}
|
|
47
|
+
const tools = getRegisteredTools(validationServer);
|
|
48
|
+
const tool = tools.find((t) => t.name === toolName);
|
|
49
|
+
if (!tool) {
|
|
50
|
+
// Tool not registered locally — likely a hosted-only tool.
|
|
51
|
+
// Skip validation: we don't have the schema.
|
|
52
|
+
return { valid: true, errors: [], skipped: true, toolName };
|
|
53
|
+
}
|
|
54
|
+
const schema = tool.inputSchema;
|
|
55
|
+
if (!schema || typeof schema !== 'object') {
|
|
56
|
+
return { valid: true, errors: [], skipped: true, toolName };
|
|
57
|
+
}
|
|
58
|
+
const properties = schema['properties'];
|
|
59
|
+
const required = schema['required'];
|
|
60
|
+
const errors = [];
|
|
61
|
+
// Check required fields
|
|
62
|
+
if (required && Array.isArray(required)) {
|
|
63
|
+
const record = (args ?? {});
|
|
64
|
+
for (const field of required) {
|
|
65
|
+
if (!(field in record) || record[field] === undefined) {
|
|
66
|
+
errors.push(`Missing required parameter: "${field}"`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Check types and enums for provided fields
|
|
71
|
+
if (properties && args && typeof args === 'object' && !Array.isArray(args)) {
|
|
72
|
+
const record = args;
|
|
73
|
+
for (const [key, value] of Object.entries(record)) {
|
|
74
|
+
if (value === undefined)
|
|
75
|
+
continue;
|
|
76
|
+
const propSchema = properties[key];
|
|
77
|
+
if (!propSchema)
|
|
78
|
+
continue; // extra fields are OK if additionalProperties is not false
|
|
79
|
+
// Type check
|
|
80
|
+
const expectedType = propSchema['type'];
|
|
81
|
+
if (expectedType) {
|
|
82
|
+
const actualType = Array.isArray(value) ? 'array' : typeof value;
|
|
83
|
+
if (expectedType === 'integer' && typeof value === 'number') {
|
|
84
|
+
// OK — integer is a subset of number
|
|
85
|
+
}
|
|
86
|
+
else if (actualType !== expectedType && !(expectedType === 'number' && typeof value === 'number')) {
|
|
87
|
+
errors.push(`Parameter "${key}" expected type "${expectedType}", got "${actualType}"`);
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Enum check
|
|
92
|
+
const enumValues = propSchema['enum'];
|
|
93
|
+
if (enumValues && Array.isArray(enumValues)) {
|
|
94
|
+
const strValue = String(value).toUpperCase();
|
|
95
|
+
const enumUpper = enumValues.map((v) => v.toUpperCase());
|
|
96
|
+
if (!enumUpper.includes(strValue)) {
|
|
97
|
+
errors.push(`Parameter "${key}" must be one of: ${enumValues.join(', ')}. Got: "${value}"`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (errors.length > 0) {
|
|
103
|
+
logger.warn('Pre-payment schema validation failed', { toolName, errors });
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
valid: errors.length === 0,
|
|
107
|
+
errors,
|
|
108
|
+
skipped: false,
|
|
109
|
+
toolName,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=schema-validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validation.js","sourceRoot":"","sources":["../../src/payments/schema-validation.ts"],"names":[],"mappings":"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"}
|