@oobe-protocol-labs/sap-mcp-server 0.9.37 → 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.
Files changed (191) hide show
  1. package/.env.example +14 -0
  2. package/CHANGELOG.md +85 -0
  3. package/README.md +3 -3
  4. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
  5. package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
  6. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
  7. package/dist/config/env.d.ts +51 -0
  8. package/dist/config/env.d.ts.map +1 -1
  9. package/dist/config/env.js +32 -2
  10. package/dist/config/env.js.map +1 -1
  11. package/dist/core/constants.d.ts +1 -1
  12. package/dist/core/constants.js +1 -1
  13. package/dist/core/logger.js +1 -1
  14. package/dist/payments/monetization-gate.d.ts +5 -0
  15. package/dist/payments/monetization-gate.d.ts.map +1 -1
  16. package/dist/payments/monetization-gate.js +39 -2
  17. package/dist/payments/monetization-gate.js.map +1 -1
  18. package/dist/payments/prepaid-credit-store.d.ts +111 -0
  19. package/dist/payments/prepaid-credit-store.d.ts.map +1 -0
  20. package/dist/payments/prepaid-credit-store.js +230 -0
  21. package/dist/payments/prepaid-credit-store.js.map +1 -0
  22. package/dist/payments/pricing.d.ts.map +1 -1
  23. package/dist/payments/pricing.js +40 -1
  24. package/dist/payments/pricing.js.map +1 -1
  25. package/dist/payments/schema-validation.d.ts +52 -0
  26. package/dist/payments/schema-validation.d.ts.map +1 -0
  27. package/dist/payments/schema-validation.js +112 -0
  28. package/dist/payments/schema-validation.js.map +1 -0
  29. package/dist/payments/x402-paid-call.d.ts +21 -0
  30. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  31. package/dist/payments/x402-paid-call.js +108 -3
  32. package/dist/payments/x402-paid-call.js.map +1 -1
  33. package/dist/perps/adrena/adrena-builder-commodity.d.ts +63 -0
  34. package/dist/perps/adrena/adrena-builder-commodity.d.ts.map +1 -0
  35. package/dist/perps/adrena/adrena-builder-commodity.js +200 -0
  36. package/dist/perps/adrena/adrena-builder-commodity.js.map +1 -0
  37. package/dist/perps/adrena/adrena-builder-core.d.ts +319 -0
  38. package/dist/perps/adrena/adrena-builder-core.d.ts.map +1 -0
  39. package/dist/perps/adrena/adrena-builder-core.js +517 -0
  40. package/dist/perps/adrena/adrena-builder-core.js.map +1 -0
  41. package/dist/perps/adrena/adrena-builder-liquidity.d.ts +50 -0
  42. package/dist/perps/adrena/adrena-builder-liquidity.d.ts.map +1 -0
  43. package/dist/perps/adrena/adrena-builder-liquidity.js +196 -0
  44. package/dist/perps/adrena/adrena-builder-liquidity.js.map +1 -0
  45. package/dist/perps/adrena/adrena-builder-staking.d.ts +57 -0
  46. package/dist/perps/adrena/adrena-builder-staking.d.ts.map +1 -0
  47. package/dist/perps/adrena/adrena-builder-staking.js +368 -0
  48. package/dist/perps/adrena/adrena-builder-staking.js.map +1 -0
  49. package/dist/perps/adrena/adrena-builder-trading.d.ts +160 -0
  50. package/dist/perps/adrena/adrena-builder-trading.d.ts.map +1 -0
  51. package/dist/perps/adrena/adrena-builder-trading.js +835 -0
  52. package/dist/perps/adrena/adrena-builder-trading.js.map +1 -0
  53. package/dist/perps/adrena/adrena-builder.d.ts +22 -0
  54. package/dist/perps/adrena/adrena-builder.d.ts.map +1 -0
  55. package/dist/perps/adrena/adrena-builder.js +22 -0
  56. package/dist/perps/adrena/adrena-builder.js.map +1 -0
  57. package/dist/perps/adrena/adrena-constants.d.ts +163 -0
  58. package/dist/perps/adrena/adrena-constants.d.ts.map +1 -0
  59. package/dist/perps/adrena/adrena-constants.js +122 -0
  60. package/dist/perps/adrena/adrena-constants.js.map +1 -0
  61. package/dist/perps/adrena/adrena-data-api.d.ts +180 -0
  62. package/dist/perps/adrena/adrena-data-api.d.ts.map +1 -0
  63. package/dist/perps/adrena/adrena-data-api.js +169 -0
  64. package/dist/perps/adrena/adrena-data-api.js.map +1 -0
  65. package/dist/perps/adrena/adrena-idl.d.ts +15084 -0
  66. package/dist/perps/adrena/adrena-idl.d.ts.map +1 -0
  67. package/dist/perps/adrena/adrena-idl.js +29903 -0
  68. package/dist/perps/adrena/adrena-idl.js.map +1 -0
  69. package/dist/perps/adrena/adrena-pda.d.ts +147 -0
  70. package/dist/perps/adrena/adrena-pda.d.ts.map +1 -0
  71. package/dist/perps/adrena/adrena-pda.js +211 -0
  72. package/dist/perps/adrena/adrena-pda.js.map +1 -0
  73. package/dist/perps/adrena/index.d.ts +12 -0
  74. package/dist/perps/adrena/index.d.ts.map +1 -0
  75. package/dist/perps/adrena/index.js +12 -0
  76. package/dist/perps/adrena/index.js.map +1 -0
  77. package/dist/perps/chart-indicators.d.ts +27 -0
  78. package/dist/perps/chart-indicators.d.ts.map +1 -0
  79. package/dist/perps/chart-indicators.js +345 -0
  80. package/dist/perps/chart-indicators.js.map +1 -0
  81. package/dist/perps/chart-tools.d.ts +45 -0
  82. package/dist/perps/chart-tools.d.ts.map +1 -0
  83. package/dist/perps/chart-tools.js +341 -0
  84. package/dist/perps/chart-tools.js.map +1 -0
  85. package/dist/perps/perp-analytics-tools.d.ts +20 -0
  86. package/dist/perps/perp-analytics-tools.d.ts.map +1 -0
  87. package/dist/perps/perp-analytics-tools.js +868 -0
  88. package/dist/perps/perp-analytics-tools.js.map +1 -0
  89. package/dist/perps/perp-constants.d.ts +362 -0
  90. package/dist/perps/perp-constants.d.ts.map +1 -0
  91. package/dist/perps/perp-constants.js +210 -0
  92. package/dist/perps/perp-constants.js.map +1 -0
  93. package/dist/perps/perp-decoders.d.ts +47 -0
  94. package/dist/perps/perp-decoders.d.ts.map +1 -0
  95. package/dist/perps/perp-decoders.js +332 -0
  96. package/dist/perps/perp-decoders.js.map +1 -0
  97. package/dist/policy/policy-engine.d.ts +42 -0
  98. package/dist/policy/policy-engine.d.ts.map +1 -1
  99. package/dist/policy/policy-engine.js +43 -0
  100. package/dist/policy/policy-engine.js.map +1 -1
  101. package/dist/premium/activation-manager.d.ts.map +1 -1
  102. package/dist/premium/activation-manager.js +20 -2
  103. package/dist/premium/activation-manager.js.map +1 -1
  104. package/dist/prompts/context/sap-agent-context.prompt.js +15 -1
  105. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  106. package/dist/server/server-metadata.d.ts +15 -0
  107. package/dist/server/server-metadata.d.ts.map +1 -1
  108. package/dist/server/server-metadata.js +16 -1
  109. package/dist/server/server-metadata.js.map +1 -1
  110. package/dist/solana/ata-utils.d.ts +39 -0
  111. package/dist/solana/ata-utils.d.ts.map +1 -0
  112. package/dist/solana/ata-utils.js +49 -0
  113. package/dist/solana/ata-utils.js.map +1 -0
  114. package/dist/strategies/trade-journal.d.ts +78 -0
  115. package/dist/strategies/trade-journal.d.ts.map +1 -0
  116. package/dist/strategies/trade-journal.js +92 -0
  117. package/dist/strategies/trade-journal.js.map +1 -0
  118. package/dist/tools/adrena/adrena-commodity-tools.d.ts +15 -0
  119. package/dist/tools/adrena/adrena-commodity-tools.d.ts.map +1 -0
  120. package/dist/tools/adrena/adrena-commodity-tools.js +137 -0
  121. package/dist/tools/adrena/adrena-commodity-tools.js.map +1 -0
  122. package/dist/tools/adrena/adrena-data-tools.d.ts +23 -0
  123. package/dist/tools/adrena/adrena-data-tools.d.ts.map +1 -0
  124. package/dist/tools/adrena/adrena-data-tools.js +437 -0
  125. package/dist/tools/adrena/adrena-data-tools.js.map +1 -0
  126. package/dist/tools/adrena/adrena-helpers.d.ts +46 -0
  127. package/dist/tools/adrena/adrena-helpers.d.ts.map +1 -0
  128. package/dist/tools/adrena/adrena-helpers.js +41 -0
  129. package/dist/tools/adrena/adrena-helpers.js.map +1 -0
  130. package/dist/tools/adrena/adrena-index.d.ts +20 -0
  131. package/dist/tools/adrena/adrena-index.d.ts.map +1 -0
  132. package/dist/tools/adrena/adrena-index.js +75 -0
  133. package/dist/tools/adrena/adrena-index.js.map +1 -0
  134. package/dist/tools/adrena/adrena-limit-order-tools.d.ts +22 -0
  135. package/dist/tools/adrena/adrena-limit-order-tools.d.ts.map +1 -0
  136. package/dist/tools/adrena/adrena-limit-order-tools.js +91 -0
  137. package/dist/tools/adrena/adrena-limit-order-tools.js.map +1 -0
  138. package/dist/tools/adrena/adrena-liquidity-tools.d.ts +15 -0
  139. package/dist/tools/adrena/adrena-liquidity-tools.d.ts.map +1 -0
  140. package/dist/tools/adrena/adrena-liquidity-tools.js +108 -0
  141. package/dist/tools/adrena/adrena-liquidity-tools.js.map +1 -0
  142. package/dist/tools/adrena/adrena-snapshot-tools.d.ts +42 -0
  143. package/dist/tools/adrena/adrena-snapshot-tools.d.ts.map +1 -0
  144. package/dist/tools/adrena/adrena-snapshot-tools.js +124 -0
  145. package/dist/tools/adrena/adrena-snapshot-tools.js.map +1 -0
  146. package/dist/tools/adrena/adrena-staking-tools.d.ts +15 -0
  147. package/dist/tools/adrena/adrena-staking-tools.d.ts.map +1 -0
  148. package/dist/tools/adrena/adrena-staking-tools.js +139 -0
  149. package/dist/tools/adrena/adrena-staking-tools.js.map +1 -0
  150. package/dist/tools/adrena/adrena-trading-tools.d.ts +78 -0
  151. package/dist/tools/adrena/adrena-trading-tools.d.ts.map +1 -0
  152. package/dist/tools/adrena/adrena-trading-tools.js +556 -0
  153. package/dist/tools/adrena/adrena-trading-tools.js.map +1 -0
  154. package/dist/tools/adrena-tools.d.ts +2 -0
  155. package/dist/tools/adrena-tools.d.ts.map +1 -0
  156. package/dist/tools/adrena-tools.js +2 -0
  157. package/dist/tools/adrena-tools.js.map +1 -0
  158. package/dist/tools/client-sdk-tools.d.ts +8 -0
  159. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  160. package/dist/tools/client-sdk-tools.js +32 -7
  161. package/dist/tools/client-sdk-tools.js.map +1 -1
  162. package/dist/tools/memory-tools.d.ts.map +1 -1
  163. package/dist/tools/memory-tools.js +170 -0
  164. package/dist/tools/memory-tools.js.map +1 -1
  165. package/dist/tools/perp-tools.d.ts +6 -31
  166. package/dist/tools/perp-tools.d.ts.map +1 -1
  167. package/dist/tools/perp-tools.js +6 -1141
  168. package/dist/tools/perp-tools.js.map +1 -1
  169. package/dist/tools/premium-tools.d.ts.map +1 -1
  170. package/dist/tools/premium-tools.js +123 -5
  171. package/dist/tools/premium-tools.js.map +1 -1
  172. package/dist/tools/quick-context-tool.js +1 -0
  173. package/dist/tools/quick-context-tool.js.map +1 -1
  174. package/dist/tools/register-tools.d.ts.map +1 -1
  175. package/dist/tools/register-tools.js +4 -0
  176. package/dist/tools/register-tools.js.map +1 -1
  177. package/dist/tools/transaction-tools.d.ts +21 -1
  178. package/dist/tools/transaction-tools.d.ts.map +1 -1
  179. package/dist/tools/transaction-tools.js +114 -30
  180. package/dist/tools/transaction-tools.js.map +1 -1
  181. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  182. package/dist/tools/x402-paid-call-tool.js +288 -0
  183. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  184. package/docs/07_ENDPOINTS_AND_CLIENTS.md +1 -1
  185. package/docs/10_OPERATIONS_RELEASE_AND_PM2.md +54 -6
  186. package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
  187. package/docs/BRANCH_AND_CI.md +2 -2
  188. package/package.json +3 -2
  189. package/server.json +3 -3
  190. package/skills/sap-defi/SKILL.md +93 -22
  191. package/skills/sap-mcp/TOOL_REFERENCE.md +39 -4
@@ -57,6 +57,7 @@ const FREE_TOOLS = new Set([
57
57
  'sap_premium_webhook_relay_status',
58
58
  'sap_premium_metrics',
59
59
  'sap_quick_context',
60
+ 'sap_perp_builder_status',
60
61
  // Payment readiness and single-asset price checks stay free so agents can
61
62
  // decide whether a user wallet needs SOL/USDC before any paid attempt.
62
63
  'sol_get_balance',
@@ -132,6 +133,7 @@ const STRICT_FREE_TOOLS = new Set([
132
133
  'sap_premium_webhook_relay_status',
133
134
  'sap_premium_metrics',
134
135
  'sap_quick_context',
136
+ 'sap_perp_builder_status',
135
137
  // Payment readiness and single-asset price checks stay free in strict mode too.
136
138
  'sol_get_balance',
137
139
  'spl-token_getBalance',
@@ -188,6 +190,17 @@ const MICRO_READ_TOOLS = new Set([
188
190
  'sap_chart_ohlc',
189
191
  'sap_chart_long_term',
190
192
  'sap_chart_volume_profile',
193
+ // Adrena Data API — lightweight REST reads from datapi.adrena.trade.
194
+ 'sap_adrena_get_positions',
195
+ 'sap_adrena_get_pool_info',
196
+ 'sap_adrena_get_custody_info',
197
+ 'sap_adrena_get_trader_info',
198
+ 'sap_adrena_get_trader_leaderboard',
199
+ 'sap_adrena_get_mutagen',
200
+ 'sap_adrena_get_mutagen_leaderboard',
201
+ 'sap_adrena_get_prices',
202
+ 'sap_adrena_get_trading_prices',
203
+ 'sap_adrena_get_position_status',
191
204
  ]);
192
205
  const READ_PREMIUM_TOOLS = new Set([
193
206
  'sap_list_all_agents',
@@ -240,12 +253,36 @@ const BUILDER_TOOLS = new Set([
240
253
  'sap_x402_build_headers_from_escrow',
241
254
  'sap_build_sol_transfer',
242
255
  'sap_build_spl_transfer',
256
+ 'sap_perp_build_order_transaction',
243
257
  'jupiter_swapInstructions',
244
258
  'magicblock_deposit',
245
259
  'magicblock_transfer',
246
260
  'magicblock_withdraw',
247
261
  'magicblock_initializeMint',
248
262
  'magicblock_requestRandomness',
263
+ // Adrena perps protocol — local unsigned transaction builders.
264
+ 'sap_adrena_build_open_long',
265
+ 'sap_adrena_build_open_short',
266
+ 'sap_adrena_build_close_long',
267
+ 'sap_adrena_build_close_short',
268
+ 'sap_adrena_build_set_stop_loss',
269
+ 'sap_adrena_build_set_take_profit',
270
+ 'sap_adrena_build_cancel_stop_loss',
271
+ 'sap_adrena_build_cancel_take_profit',
272
+ 'sap_adrena_build_add_limit_order',
273
+ 'sap_adrena_build_cancel_limit_order',
274
+ 'sap_adrena_build_open_commodity_long',
275
+ 'sap_adrena_build_open_commodity_short',
276
+ 'sap_adrena_build_close_commodity_long',
277
+ 'sap_adrena_build_close_commodity_short',
278
+ 'sap_adrena_build_add_liquidity',
279
+ 'sap_adrena_build_remove_liquidity',
280
+ 'sap_adrena_build_swap',
281
+ 'sap_adrena_build_init_user_staking',
282
+ 'sap_adrena_build_add_liquid_stake',
283
+ 'sap_adrena_build_remove_liquid_stake',
284
+ 'sap_adrena_build_add_locked_stake',
285
+ 'sap_adrena_build_claim_stakes',
249
286
  ]);
250
287
  const VALUE_ACTION_TOOLS = new Set([
251
288
  'jupiter_getOrder',
@@ -263,6 +300,7 @@ const VALUE_ACTION_TOOLS = new Set([
263
300
  'sap_x402_prepare_payment',
264
301
  'sap_x402_settle',
265
302
  'sap_x402_settle_batch',
303
+ 'sap_payments_fund_prepaid',
266
304
  ]);
267
305
  const HEAVY_VALUE_ACTION_TOOLS = new Set([
268
306
  'jupiter_executeOrder',
@@ -367,7 +405,7 @@ export function buildPricingCatalog(config) {
367
405
  paymentRequired: true,
368
406
  priceUsd: clampPrice(config.prices.builderUsd, config),
369
407
  pricingRule: 'Flat builder fee for unsigned transaction builders, batched domain checks, payment-header builders, routing builders, and complex pre-execution preparation.',
370
- examples: ['sap_escrow_build_create_transaction', 'sap_sns_build_manage_record_transaction', 'jupiter_swapInstructions'],
408
+ examples: ['sap_escrow_build_create_transaction', 'sap_sns_build_manage_record_transaction', 'sap_perp_build_order_transaction', 'jupiter_swapInstructions'],
371
409
  },
372
410
  'value-action': {
373
411
  paymentRequired: true,
@@ -400,6 +438,7 @@ export function buildPricingCatalog(config) {
400
438
  'Use sap_estimate_tool_cost before any paid tool call to know the exact tier, estimated USD cost, and recommended maxPriceUsd. This avoids silent cap aborts and failed x402 attempts on local-signer-only tools.',
401
439
  'Call sap_agent_next_action before retrying payment_required, hosted_local_signer_required, transient RPC failures, missing sap_payments, or submitted signatures that have not confirmed.',
402
440
  'Call sap_prepare_action before swaps, registry writes, escrow, external x402 calls, premium streams, or transaction finalization. It returns the fresh-data requirements, local/hosted route, confirmation policy, retry rules, and proof-tape shape without charging x402.',
441
+ 'Call sap_perp_builder_status before any perps execution request. Perps analytics can run from hosted data/RPC, but sap_perp_build_order_transaction is registered only when a real unsigned builder provider is configured.',
403
442
  'Use session memory for operational context and audit only. Never use memory as cached truth for token prices, Jupiter quotes/orders, balances, blockhashes, simulations, liquidity, routes, or agent account state.',
404
443
  `sap_list_agents compact pages with limit <= ${FREE_DIRECTORY_LIMIT} are micro-read. Larger pages, full hydration, sap_discover_agents, and sap_list_all_agents are read-premium.`,
405
444
  'Use sap_payments_call_paid_tool for hosted paid tools when the runtime does not replay x402 natively.',
@@ -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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"}
@@ -19,6 +19,10 @@ export interface X402PaidCallInput {
19
19
  maxPriceUsd: number;
20
20
  maxAttempts?: number;
21
21
  confirm: boolean;
22
+ /** Prepaid session ID. When set, the bridge injects an X-SAP-Prepaid-Session
23
+ * header into both the unpaid probe and paid retry. If the server grants
24
+ * access via prepaid balance (HTTP 200), no x402 payment is charged. */
25
+ prepaidSessionId?: string;
22
26
  }
23
27
  /**
24
28
  * @name X402ExternalCallInput
@@ -182,6 +186,23 @@ export interface X402PaidCallResult {
182
186
  response: unknown;
183
187
  attempts: number;
184
188
  transientRetries: readonly string[];
189
+ /** HTTP status code from the upstream server after payment. Present when
190
+ * payment was charged but the upstream returned a non-OK response (401,
191
+ * 500, etc.). The agent can use this to request a credit or refund. */
192
+ upstreamHttpStatus?: number;
193
+ /** True when the payment was charged but the upstream failed. Agent should
194
+ * not retry with the same parameters — the failure is upstream, not local. */
195
+ paymentChargedButUpstreamFailed?: boolean;
196
+ /** True when an x402 payment was actually charged (signed and settled).
197
+ * False when the call was granted via prepaid session balance or when no
198
+ * payment was needed. Agents can use this to distinguish prepaid vs paid. */
199
+ paymentCharged?: boolean;
200
+ /** True when a prepaid session was used to grant access without x402
201
+ * payment. The prepaidSessionId field identifies which session was used. */
202
+ prepaidUsed?: boolean;
203
+ /** The prepaid session ID used for this call, if any. Present when
204
+ * prepaidUsed is true. */
205
+ prepaidSessionId?: string;
185
206
  audit: X402PaidCallAudit;
186
207
  }
187
208
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"x402-paid-call.d.ts","sourceRoot":"","sources":["../../src/payments/x402-paid-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402-paid-call.d.ts","sourceRoot":"","sources":["../../src/payments/x402-paid-call.ts"],"names":[],"mappings":"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"}
@@ -70,6 +70,7 @@ export async function executeX402PaidCall(input) {
70
70
  maxPriceUsd: input.maxPriceUsd,
71
71
  attempt,
72
72
  transientRetries,
73
+ prepaidSessionId: input.prepaidSessionId,
73
74
  });
74
75
  }
75
76
  catch (error) {
@@ -413,7 +414,11 @@ export function inspectX402Receipt(receiptHeader) {
413
414
  };
414
415
  }
415
416
  async function executePaidAttempt(options) {
416
- const unpaid = await postMcp(options.endpoint, options.requestBody, options.sessionId);
417
+ // Build prepaid header if a prepaid session ID was provided
418
+ const prepaidHeaders = options.prepaidSessionId
419
+ ? { 'X-SAP-Prepaid-Session': options.prepaidSessionId }
420
+ : {};
421
+ const unpaid = await postMcp(options.endpoint, options.requestBody, options.sessionId, prepaidHeaders);
417
422
  // If the cached session expired server-side, invalidate and re-initialize once
418
423
  if (unpaid.response.status === 404 || isSessionNotFound(unpaid.body)) {
419
424
  if (options.sessionRefreshAttempted) {
@@ -423,6 +428,55 @@ async function executePaidAttempt(options) {
423
428
  const freshSession = await initializeMcpSession(options.endpoint);
424
429
  return executePaidAttempt({ ...options, sessionId: freshSession, sessionRefreshAttempted: true });
425
430
  }
431
+ // ── Prepaid session bypass ──────────────────────────────────────────────
432
+ // If the server returned 200 (not 402), the prepaid session had sufficient
433
+ // balance and granted access. Return the result directly without x402 payment.
434
+ if (options.prepaidSessionId && unpaid.response.status === 200) {
435
+ if (isJsonRpcError(unpaid.body)) {
436
+ throw new Error(`Paid MCP call returned JSON-RPC error: ${JSON.stringify(unpaid.body.error)}`);
437
+ }
438
+ const toolName = extractToolName(options.requestBody);
439
+ const audit = {
440
+ intentId: buildIntentId(options.requestBody, options.sessionId),
441
+ profileName: options.profileName,
442
+ signerAddress: options.signerAddress,
443
+ endpoint: options.endpoint,
444
+ ...(toolName ? { toolName } : {}),
445
+ requestMethod: options.requestBody.method,
446
+ payment: {
447
+ amountUsd: 0,
448
+ network: 'prepaid',
449
+ asset: 'prepaid-session',
450
+ payTo: 'prepaid-session',
451
+ },
452
+ receipt: {
453
+ present: false,
454
+ },
455
+ attempts: options.attempt,
456
+ transientRetries: options.transientRetries,
457
+ secretMaterial: 'keypair-bytes-never-returned',
458
+ };
459
+ return {
460
+ success: true,
461
+ endpoint: options.endpoint,
462
+ sessionId: options.sessionId,
463
+ signerAddress: options.signerAddress,
464
+ payment: {
465
+ amountUsd: 0,
466
+ network: 'prepaid',
467
+ asset: 'prepaid-session',
468
+ payTo: 'prepaid-session',
469
+ },
470
+ response: unpaid.body,
471
+ attempts: options.attempt,
472
+ transientRetries: options.transientRetries,
473
+ paymentCharged: false,
474
+ prepaidUsed: true,
475
+ prepaidSessionId: options.prepaidSessionId,
476
+ audit,
477
+ };
478
+ }
479
+ // ── Normal x402 flow: 402 challenge → sign → paid retry ───────────────────
426
480
  const paymentRequired = getPaymentRequiredResponse(options.httpClient, unpaid.response, unpaid.body);
427
481
  const selectedRequirements = selectSingleRequirement(paymentRequired, options.maxPriceUsd);
428
482
  const amountUsd = paymentRequirementsAmountUsd(selectedRequirements);
@@ -431,10 +485,60 @@ async function executePaidAttempt(options) {
431
485
  accepts: [selectedRequirements],
432
486
  });
433
487
  const paymentHeaders = options.httpClient.encodePaymentSignatureHeader(paymentPayload);
434
- const paid = await postMcp(options.endpoint, options.requestBody, options.sessionId, paymentHeaders);
488
+ // Merge prepaid header with payment header for the paid retry
489
+ const paid = await postMcp(options.endpoint, options.requestBody, options.sessionId, { ...prepaidHeaders, ...paymentHeaders });
435
490
  const paymentResult = await options.httpClient.processPaymentResult(paymentPayload, name => paid.response.headers.get(name), paid.response.status);
436
491
  if (!paid.response.ok) {
437
- throw new Error(`Paid MCP call failed with HTTP ${paid.response.status}: ${JSON.stringify(paid.body)}`);
492
+ // Payment was already settled, but the upstream returned an error (401,
493
+ // 500, etc.). Return a structured failure instead of throwing so the
494
+ // agent knows the payment was charged but the service failed.
495
+ // This enables future credit/refund workflows.
496
+ const toolName = extractToolName(options.requestBody);
497
+ const audit = {
498
+ intentId: buildIntentId(options.requestBody, options.sessionId),
499
+ profileName: options.profileName,
500
+ signerAddress: options.signerAddress,
501
+ endpoint: options.endpoint,
502
+ ...(toolName ? { toolName } : {}),
503
+ requestMethod: options.requestBody.method,
504
+ payment: {
505
+ amountUsd,
506
+ network: selectedRequirements.network,
507
+ asset: selectedRequirements.asset,
508
+ payTo: selectedRequirements.payTo,
509
+ },
510
+ receipt: {
511
+ present: Boolean(paymentResult.settleResponse),
512
+ ...(paymentResult.settleResponse?.transaction ? { transaction: paymentResult.settleResponse.transaction } : {}),
513
+ ...(paymentResult.settleResponse?.network ? { network: paymentResult.settleResponse.network } : {}),
514
+ ...(paymentResult.settleResponse?.amount ? { amount: paymentResult.settleResponse.amount } : {}),
515
+ ...(paymentResult.settleResponse?.payer ? { payer: paymentResult.settleResponse.payer } : {}),
516
+ },
517
+ attempts: options.attempt,
518
+ transientRetries: options.transientRetries,
519
+ secretMaterial: 'keypair-bytes-never-returned',
520
+ };
521
+ appendLocalPaymentAudit('hosted-paid-tool-upstream-failed', audit);
522
+ return {
523
+ success: false,
524
+ endpoint: options.endpoint,
525
+ sessionId: options.sessionId,
526
+ signerAddress: options.signerAddress,
527
+ payment: {
528
+ amountUsd,
529
+ network: selectedRequirements.network,
530
+ asset: selectedRequirements.asset,
531
+ payTo: selectedRequirements.payTo,
532
+ },
533
+ settlement: paymentResult.settleResponse,
534
+ response: paid.body,
535
+ attempts: options.attempt,
536
+ transientRetries: options.transientRetries,
537
+ upstreamHttpStatus: paid.response.status,
538
+ paymentChargedButUpstreamFailed: true,
539
+ paymentCharged: true,
540
+ audit,
541
+ };
438
542
  }
439
543
  if (isJsonRpcError(paid.body)) {
440
544
  throw new Error(`Paid MCP call returned JSON-RPC error: ${JSON.stringify(paid.body.error)}`);
@@ -480,6 +584,7 @@ async function executePaidAttempt(options) {
480
584
  response: paid.body,
481
585
  attempts: options.attempt,
482
586
  transientRetries: options.transientRetries,
587
+ paymentCharged: true,
483
588
  audit,
484
589
  };
485
590
  }