@oobe-protocol-labs/sap-mcp-server 0.9.1 → 0.9.3

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 (703) hide show
  1. package/.env.example +8 -7
  2. package/CHANGELOG.md +732 -1
  3. package/README.md +9 -3
  4. package/USER_DOCS/00_START_HERE.md +51 -4
  5. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
  6. package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +32 -3
  7. package/USER_DOCS/04_CLIENT_CONFIGS.md +14 -7
  8. package/USER_DOCS/05_SKILLS_AND_TOOLS.md +68 -8
  9. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +20 -14
  10. package/USER_DOCS/07_SMITHERY_AND_MARKETPLACES.md +7 -0
  11. package/config.example.json +5 -4
  12. package/config.schema.json +9 -4
  13. package/config.secure-example.json +5 -4
  14. package/dist/adapters/index.d.ts +7 -1
  15. package/dist/adapters/index.d.ts.map +1 -1
  16. package/dist/adapters/index.js +7 -1
  17. package/dist/adapters/index.js.map +1 -1
  18. package/dist/adapters/mcp/errors.d.ts +13 -1
  19. package/dist/adapters/mcp/errors.d.ts.map +1 -1
  20. package/dist/adapters/mcp/errors.js +13 -1
  21. package/dist/adapters/mcp/errors.js.map +1 -1
  22. package/dist/adapters/mcp/index.d.ts +7 -1
  23. package/dist/adapters/mcp/index.d.ts.map +1 -1
  24. package/dist/adapters/mcp/index.js +7 -1
  25. package/dist/adapters/mcp/index.js.map +1 -1
  26. package/dist/adapters/mcp/prompt-response.d.ts +13 -1
  27. package/dist/adapters/mcp/prompt-response.d.ts.map +1 -1
  28. package/dist/adapters/mcp/prompt-response.js +13 -1
  29. package/dist/adapters/mcp/prompt-response.js.map +1 -1
  30. package/dist/adapters/mcp/resource-response.d.ts +14 -1
  31. package/dist/adapters/mcp/resource-response.d.ts.map +1 -1
  32. package/dist/adapters/mcp/resource-response.js +14 -1
  33. package/dist/adapters/mcp/resource-response.js.map +1 -1
  34. package/dist/adapters/mcp/sdk-compat.d.ts +11 -3
  35. package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -1
  36. package/dist/adapters/mcp/sdk-compat.js +232 -25
  37. package/dist/adapters/mcp/sdk-compat.js.map +1 -1
  38. package/dist/adapters/mcp/tool-response.d.ts +51 -3
  39. package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
  40. package/dist/adapters/mcp/tool-response.js +48 -3
  41. package/dist/adapters/mcp/tool-response.js.map +1 -1
  42. package/dist/adapters/solana/commitment.d.ts +14 -2
  43. package/dist/adapters/solana/commitment.d.ts.map +1 -1
  44. package/dist/adapters/solana/commitment.js +14 -2
  45. package/dist/adapters/solana/commitment.js.map +1 -1
  46. package/dist/adapters/solana/connection.d.ts +11 -2
  47. package/dist/adapters/solana/connection.d.ts.map +1 -1
  48. package/dist/adapters/solana/connection.js +11 -2
  49. package/dist/adapters/solana/connection.js.map +1 -1
  50. package/dist/adapters/solana/index.d.ts +7 -1
  51. package/dist/adapters/solana/index.d.ts.map +1 -1
  52. package/dist/adapters/solana/index.js +7 -1
  53. package/dist/adapters/solana/index.js.map +1 -1
  54. package/dist/adapters/solana/public-key.d.ts +11 -2
  55. package/dist/adapters/solana/public-key.d.ts.map +1 -1
  56. package/dist/adapters/solana/public-key.js +11 -2
  57. package/dist/adapters/solana/public-key.js.map +1 -1
  58. package/dist/config/defaults.d.ts +5 -0
  59. package/dist/config/defaults.d.ts.map +1 -1
  60. package/dist/config/defaults.js +5 -0
  61. package/dist/config/defaults.js.map +1 -1
  62. package/dist/config/env.d.ts +4 -0
  63. package/dist/config/env.d.ts.map +1 -1
  64. package/dist/config/env.js +15 -10
  65. package/dist/config/env.js.map +1 -1
  66. package/dist/config/index.d.ts +5 -0
  67. package/dist/config/index.d.ts.map +1 -1
  68. package/dist/config/index.js +5 -0
  69. package/dist/config/index.js.map +1 -1
  70. package/dist/config/mcp-client-injection.d.ts.map +1 -1
  71. package/dist/config/mcp-client-injection.js +136 -33
  72. package/dist/config/mcp-client-injection.js.map +1 -1
  73. package/dist/config/paths.d.ts +14 -1
  74. package/dist/config/paths.d.ts.map +1 -1
  75. package/dist/config/paths.js +20 -1
  76. package/dist/config/paths.js.map +1 -1
  77. package/dist/config/profiles.d.ts +3 -10
  78. package/dist/config/profiles.d.ts.map +1 -1
  79. package/dist/config/profiles.js +5 -0
  80. package/dist/config/profiles.js.map +1 -1
  81. package/dist/config/schema.d.ts +5 -0
  82. package/dist/config/schema.d.ts.map +1 -1
  83. package/dist/config/schema.js +5 -0
  84. package/dist/config/schema.js.map +1 -1
  85. package/dist/config/secure-config.d.ts +5 -0
  86. package/dist/config/secure-config.d.ts.map +1 -1
  87. package/dist/config/secure-config.js +5 -0
  88. package/dist/config/secure-config.js.map +1 -1
  89. package/dist/config/setup.d.ts +5 -0
  90. package/dist/config/setup.d.ts.map +1 -1
  91. package/dist/config/setup.js +5 -0
  92. package/dist/config/setup.js.map +1 -1
  93. package/dist/config/wizard.d.ts +6 -0
  94. package/dist/config/wizard.d.ts.map +1 -1
  95. package/dist/config/wizard.js +102 -18
  96. package/dist/config/wizard.js.map +1 -1
  97. package/dist/config-cli.d.ts +3 -13
  98. package/dist/config-cli.d.ts.map +1 -1
  99. package/dist/config-cli.js +14 -1
  100. package/dist/config-cli.js.map +1 -1
  101. package/dist/core/constants.d.ts +38 -6
  102. package/dist/core/constants.d.ts.map +1 -1
  103. package/dist/core/constants.js +49 -6
  104. package/dist/core/constants.js.map +1 -1
  105. package/dist/core/errors.d.ts +5 -0
  106. package/dist/core/errors.d.ts.map +1 -1
  107. package/dist/core/errors.js +5 -0
  108. package/dist/core/errors.js.map +1 -1
  109. package/dist/core/guards.d.ts +5 -0
  110. package/dist/core/guards.d.ts.map +1 -1
  111. package/dist/core/guards.js +3 -1
  112. package/dist/core/guards.js.map +1 -1
  113. package/dist/core/index.d.ts +7 -1
  114. package/dist/core/index.d.ts.map +1 -1
  115. package/dist/core/index.js +7 -1
  116. package/dist/core/index.js.map +1 -1
  117. package/dist/core/logger.js +1 -1
  118. package/dist/core/result.d.ts +77 -9
  119. package/dist/core/result.d.ts.map +1 -1
  120. package/dist/core/result.js +68 -9
  121. package/dist/core/result.js.map +1 -1
  122. package/dist/core/types.d.ts +5 -0
  123. package/dist/core/types.d.ts.map +1 -1
  124. package/dist/core/types.js +3 -4
  125. package/dist/core/types.js.map +1 -1
  126. package/dist/index.d.ts +5 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +5 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/memory/async-processor.d.ts +107 -0
  131. package/dist/memory/async-processor.d.ts.map +1 -0
  132. package/dist/memory/async-processor.js +204 -0
  133. package/dist/memory/async-processor.js.map +1 -0
  134. package/dist/memory/auto-record.d.ts +47 -0
  135. package/dist/memory/auto-record.d.ts.map +1 -0
  136. package/dist/memory/auto-record.js +133 -0
  137. package/dist/memory/auto-record.js.map +1 -0
  138. package/dist/memory/database.d.ts +103 -0
  139. package/dist/memory/database.d.ts.map +1 -0
  140. package/dist/memory/database.js +337 -0
  141. package/dist/memory/database.js.map +1 -0
  142. package/dist/memory/hermes-bridge.d.ts +70 -0
  143. package/dist/memory/hermes-bridge.d.ts.map +1 -0
  144. package/dist/memory/hermes-bridge.js +155 -0
  145. package/dist/memory/hermes-bridge.js.map +1 -0
  146. package/dist/memory/index.d.ts +23 -0
  147. package/dist/memory/index.d.ts.map +1 -0
  148. package/dist/memory/index.js +22 -0
  149. package/dist/memory/index.js.map +1 -0
  150. package/dist/memory/memory-store.d.ts +76 -0
  151. package/dist/memory/memory-store.d.ts.map +1 -0
  152. package/dist/memory/memory-store.js +231 -0
  153. package/dist/memory/memory-store.js.map +1 -0
  154. package/dist/memory/stream-buffer-store.d.ts +69 -0
  155. package/dist/memory/stream-buffer-store.d.ts.map +1 -0
  156. package/dist/memory/stream-buffer-store.js +182 -0
  157. package/dist/memory/stream-buffer-store.js.map +1 -0
  158. package/dist/memory/tool-call-store.d.ts +68 -0
  159. package/dist/memory/tool-call-store.d.ts.map +1 -0
  160. package/dist/memory/tool-call-store.js +189 -0
  161. package/dist/memory/tool-call-store.js.map +1 -0
  162. package/dist/memory/types.d.ts +197 -0
  163. package/dist/memory/types.d.ts.map +1 -0
  164. package/dist/memory/types.js +15 -0
  165. package/dist/memory/types.js.map +1 -0
  166. package/dist/memory/utils.d.ts +30 -0
  167. package/dist/memory/utils.d.ts.map +1 -0
  168. package/dist/memory/utils.js +47 -0
  169. package/dist/memory/utils.js.map +1 -0
  170. package/dist/payments/facilitator-rpc-fallback.d.ts.map +1 -1
  171. package/dist/payments/facilitator-rpc-fallback.js +95 -0
  172. package/dist/payments/facilitator-rpc-fallback.js.map +1 -1
  173. package/dist/payments/hosted-tool-eligibility.d.ts +22 -0
  174. package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -0
  175. package/dist/payments/hosted-tool-eligibility.js +173 -0
  176. package/dist/payments/hosted-tool-eligibility.js.map +1 -0
  177. package/dist/payments/index.d.ts +2 -2
  178. package/dist/payments/index.d.ts.map +1 -1
  179. package/dist/payments/index.js +1 -1
  180. package/dist/payments/index.js.map +1 -1
  181. package/dist/payments/mcp-session-cache.d.ts +35 -0
  182. package/dist/payments/mcp-session-cache.d.ts.map +1 -0
  183. package/dist/payments/mcp-session-cache.js +83 -0
  184. package/dist/payments/mcp-session-cache.js.map +1 -0
  185. package/dist/payments/monetization-gate.d.ts +33 -0
  186. package/dist/payments/monetization-gate.d.ts.map +1 -1
  187. package/dist/payments/monetization-gate.js +124 -12
  188. package/dist/payments/monetization-gate.js.map +1 -1
  189. package/dist/payments/pricing.d.ts +31 -0
  190. package/dist/payments/pricing.d.ts.map +1 -1
  191. package/dist/payments/pricing.js +317 -19
  192. package/dist/payments/pricing.js.map +1 -1
  193. package/dist/payments/usage-ledger.d.ts +36 -2
  194. package/dist/payments/usage-ledger.d.ts.map +1 -1
  195. package/dist/payments/usage-ledger.js +121 -4
  196. package/dist/payments/usage-ledger.js.map +1 -1
  197. package/dist/payments/x402-paid-call.d.ts +121 -0
  198. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  199. package/dist/payments/x402-paid-call.js +428 -1
  200. package/dist/payments/x402-paid-call.js.map +1 -1
  201. package/dist/policy/default-policies.d.ts +18 -2
  202. package/dist/policy/default-policies.d.ts.map +1 -1
  203. package/dist/policy/default-policies.js +18 -2
  204. package/dist/policy/default-policies.js.map +1 -1
  205. package/dist/policy/index.d.ts +6 -3
  206. package/dist/policy/index.d.ts.map +1 -1
  207. package/dist/policy/index.js +6 -3
  208. package/dist/policy/index.js.map +1 -1
  209. package/dist/policy/local-policy-engine.d.ts +71 -13
  210. package/dist/policy/local-policy-engine.d.ts.map +1 -1
  211. package/dist/policy/local-policy-engine.js +33 -11
  212. package/dist/policy/local-policy-engine.js.map +1 -1
  213. package/dist/policy/permission-checks.d.ts +29 -3
  214. package/dist/policy/permission-checks.d.ts.map +1 -1
  215. package/dist/policy/permission-checks.js +29 -3
  216. package/dist/policy/permission-checks.js.map +1 -1
  217. package/dist/policy/policy-engine.d.ts +22 -2
  218. package/dist/policy/policy-engine.d.ts.map +1 -1
  219. package/dist/policy/policy-engine.js +22 -2
  220. package/dist/policy/policy-engine.js.map +1 -1
  221. package/dist/policy/policy-types.d.ts +55 -5
  222. package/dist/policy/policy-types.d.ts.map +1 -1
  223. package/dist/policy/policy-types.js +8 -1
  224. package/dist/policy/policy-types.js.map +1 -1
  225. package/dist/policy/risk-level.d.ts +32 -3
  226. package/dist/policy/risk-level.d.ts.map +1 -1
  227. package/dist/policy/risk-level.js +32 -3
  228. package/dist/policy/risk-level.js.map +1 -1
  229. package/dist/policy/spending-limits.d.ts +29 -3
  230. package/dist/policy/spending-limits.d.ts.map +1 -1
  231. package/dist/policy/spending-limits.js +29 -3
  232. package/dist/policy/spending-limits.js.map +1 -1
  233. package/dist/premium/activation-manager.d.ts +43 -0
  234. package/dist/premium/activation-manager.d.ts.map +1 -0
  235. package/dist/premium/activation-manager.js +131 -0
  236. package/dist/premium/activation-manager.js.map +1 -0
  237. package/dist/premium/builtin-plugins.d.ts +165 -0
  238. package/dist/premium/builtin-plugins.d.ts.map +1 -0
  239. package/dist/premium/builtin-plugins.js +422 -0
  240. package/dist/premium/builtin-plugins.js.map +1 -0
  241. package/dist/premium/event-store.d.ts +61 -0
  242. package/dist/premium/event-store.d.ts.map +1 -0
  243. package/dist/premium/event-store.js +130 -0
  244. package/dist/premium/event-store.js.map +1 -0
  245. package/dist/premium/index.d.ts +54 -0
  246. package/dist/premium/index.d.ts.map +1 -0
  247. package/dist/premium/index.js +54 -0
  248. package/dist/premium/index.js.map +1 -0
  249. package/dist/premium/manifest-builder.d.ts +65 -0
  250. package/dist/premium/manifest-builder.d.ts.map +1 -0
  251. package/dist/premium/manifest-builder.js +182 -0
  252. package/dist/premium/manifest-builder.js.map +1 -0
  253. package/dist/premium/meme-radar-capabilities.d.ts +38 -0
  254. package/dist/premium/meme-radar-capabilities.d.ts.map +1 -0
  255. package/dist/premium/meme-radar-capabilities.js +306 -0
  256. package/dist/premium/meme-radar-capabilities.js.map +1 -0
  257. package/dist/premium/metrics.d.ts +27 -0
  258. package/dist/premium/metrics.d.ts.map +1 -0
  259. package/dist/premium/metrics.js +65 -0
  260. package/dist/premium/metrics.js.map +1 -0
  261. package/dist/premium/plugin-validator.d.ts +39 -0
  262. package/dist/premium/plugin-validator.d.ts.map +1 -0
  263. package/dist/premium/plugin-validator.js +325 -0
  264. package/dist/premium/plugin-validator.js.map +1 -0
  265. package/dist/premium/private-manifest-loader.d.ts +111 -0
  266. package/dist/premium/private-manifest-loader.d.ts.map +1 -0
  267. package/dist/premium/private-manifest-loader.js +285 -0
  268. package/dist/premium/private-manifest-loader.js.map +1 -0
  269. package/dist/premium/provider-bridge.d.ts +133 -0
  270. package/dist/premium/provider-bridge.d.ts.map +1 -0
  271. package/dist/premium/provider-bridge.js +349 -0
  272. package/dist/premium/provider-bridge.js.map +1 -0
  273. package/dist/premium/session-manager.d.ts +125 -0
  274. package/dist/premium/session-manager.d.ts.map +1 -0
  275. package/dist/premium/session-manager.js +337 -0
  276. package/dist/premium/session-manager.js.map +1 -0
  277. package/dist/premium/stream-broker.d.ts +98 -0
  278. package/dist/premium/stream-broker.d.ts.map +1 -0
  279. package/dist/premium/stream-broker.js +199 -0
  280. package/dist/premium/stream-broker.js.map +1 -0
  281. package/dist/premium/tech-fundamentals-capabilities.d.ts +37 -0
  282. package/dist/premium/tech-fundamentals-capabilities.d.ts.map +1 -0
  283. package/dist/premium/tech-fundamentals-capabilities.js +283 -0
  284. package/dist/premium/tech-fundamentals-capabilities.js.map +1 -0
  285. package/dist/premium/trading-capabilities.d.ts +36 -0
  286. package/dist/premium/trading-capabilities.d.ts.map +1 -0
  287. package/dist/premium/trading-capabilities.js +205 -0
  288. package/dist/premium/trading-capabilities.js.map +1 -0
  289. package/dist/premium/types.d.ts +518 -0
  290. package/dist/premium/types.d.ts.map +1 -0
  291. package/dist/premium/types.js +23 -0
  292. package/dist/premium/types.js.map +1 -0
  293. package/dist/premium/webhook-engine.d.ts +138 -0
  294. package/dist/premium/webhook-engine.d.ts.map +1 -0
  295. package/dist/premium/webhook-engine.js +516 -0
  296. package/dist/premium/webhook-engine.js.map +1 -0
  297. package/dist/prompts/context/sap-agent-context.prompt.d.ts +5 -0
  298. package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -1
  299. package/dist/prompts/context/sap-agent-context.prompt.js +20 -16
  300. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  301. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts +14 -0
  302. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts.map +1 -0
  303. package/dist/prompts/context/sap-agent-intent-router.prompt.js +155 -0
  304. package/dist/prompts/context/sap-agent-intent-router.prompt.js.map +1 -0
  305. package/dist/prompts/context/sap-agent-start.prompt.js +7 -0
  306. package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
  307. package/dist/prompts/developer/debug-sap-error.prompt.d.ts +5 -0
  308. package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -1
  309. package/dist/prompts/developer/debug-sap-error.prompt.js +3 -4
  310. package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -1
  311. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +5 -0
  312. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -1
  313. package/dist/prompts/developer/generate-sap-integration.prompt.js +3 -4
  314. package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -1
  315. package/dist/prompts/developer/index.d.ts +4 -1
  316. package/dist/prompts/developer/index.d.ts.map +1 -1
  317. package/dist/prompts/developer/index.js +4 -1
  318. package/dist/prompts/developer/index.js.map +1 -1
  319. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +5 -0
  320. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -1
  321. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +3 -4
  322. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -1
  323. package/dist/prompts/execution-proof/index.d.ts +4 -1
  324. package/dist/prompts/execution-proof/index.d.ts.map +1 -1
  325. package/dist/prompts/execution-proof/index.js +4 -1
  326. package/dist/prompts/execution-proof/index.js.map +1 -1
  327. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +5 -0
  328. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -1
  329. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +3 -4
  330. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -1
  331. package/dist/prompts/index.d.ts +4 -1
  332. package/dist/prompts/index.d.ts.map +1 -1
  333. package/dist/prompts/index.js +4 -1
  334. package/dist/prompts/index.js.map +1 -1
  335. package/dist/prompts/payments/create-paid-api.prompt.d.ts +5 -0
  336. package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -1
  337. package/dist/prompts/payments/create-paid-api.prompt.js +3 -4
  338. package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -1
  339. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +5 -0
  340. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -1
  341. package/dist/prompts/payments/explain-x402-settlement.prompt.js +16 -14
  342. package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -1
  343. package/dist/prompts/payments/index.d.ts +4 -1
  344. package/dist/prompts/payments/index.d.ts.map +1 -1
  345. package/dist/prompts/payments/index.js +4 -1
  346. package/dist/prompts/payments/index.js.map +1 -1
  347. package/dist/prompts/register-prompts.d.ts +18 -2
  348. package/dist/prompts/register-prompts.d.ts.map +1 -1
  349. package/dist/prompts/register-prompts.js +21 -3
  350. package/dist/prompts/register-prompts.js.map +1 -1
  351. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +5 -0
  352. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -1
  353. package/dist/prompts/registry/analyze-sap-agent.prompt.js +3 -4
  354. package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -1
  355. package/dist/prompts/registry/index.d.ts +4 -1
  356. package/dist/prompts/registry/index.d.ts.map +1 -1
  357. package/dist/prompts/registry/index.js +4 -1
  358. package/dist/prompts/registry/index.js.map +1 -1
  359. package/dist/prompts/registry/register-sap-agent.prompt.d.ts +5 -0
  360. package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -1
  361. package/dist/prompts/registry/register-sap-agent.prompt.js +22 -23
  362. package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
  363. package/dist/remote/premium-memory.d.ts +90 -0
  364. package/dist/remote/premium-memory.d.ts.map +1 -0
  365. package/dist/remote/premium-memory.js +161 -0
  366. package/dist/remote/premium-memory.js.map +1 -0
  367. package/dist/remote/premium-routes.d.ts +99 -0
  368. package/dist/remote/premium-routes.d.ts.map +1 -0
  369. package/dist/remote/premium-routes.js +347 -0
  370. package/dist/remote/premium-routes.js.map +1 -0
  371. package/dist/remote/public-home/sections.d.ts.map +1 -1
  372. package/dist/remote/public-home/sections.js +23 -4
  373. package/dist/remote/public-home/sections.js.map +1 -1
  374. package/dist/remote/public-home/types.d.ts +9 -0
  375. package/dist/remote/public-home/types.d.ts.map +1 -1
  376. package/dist/remote/server.d.ts +20 -0
  377. package/dist/remote/server.d.ts.map +1 -1
  378. package/dist/remote/server.js +370 -9
  379. package/dist/remote/server.js.map +1 -1
  380. package/dist/remote/tx-relay.d.ts +42 -0
  381. package/dist/remote/tx-relay.d.ts.map +1 -0
  382. package/dist/remote/tx-relay.js +118 -0
  383. package/dist/remote/tx-relay.js.map +1 -0
  384. package/dist/resources/current/sap-current-config.resource.d.ts +5 -0
  385. package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -1
  386. package/dist/resources/current/sap-current-config.resource.js +2 -5
  387. package/dist/resources/current/sap-current-config.resource.js.map +1 -1
  388. package/dist/resources/execution-proof/index.d.ts +5 -0
  389. package/dist/resources/execution-proof/index.d.ts.map +1 -1
  390. package/dist/resources/execution-proof/index.js +5 -0
  391. package/dist/resources/execution-proof/index.js.map +1 -1
  392. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +5 -0
  393. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -1
  394. package/dist/resources/execution-proof/sap-execution-record.resource.js +3 -4
  395. package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -1
  396. package/dist/resources/index.d.ts +5 -0
  397. package/dist/resources/index.d.ts.map +1 -1
  398. package/dist/resources/index.js +5 -0
  399. package/dist/resources/index.js.map +1 -1
  400. package/dist/resources/memory/index.d.ts +5 -0
  401. package/dist/resources/memory/index.d.ts.map +1 -1
  402. package/dist/resources/memory/index.js +5 -0
  403. package/dist/resources/memory/index.js.map +1 -1
  404. package/dist/resources/memory/sap-memory.resource.d.ts +5 -0
  405. package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -1
  406. package/dist/resources/memory/sap-memory.resource.js +3 -4
  407. package/dist/resources/memory/sap-memory.resource.js.map +1 -1
  408. package/dist/resources/profile/sap-active-profile.resource.d.ts +5 -0
  409. package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -1
  410. package/dist/resources/profile/sap-active-profile.resource.js +2 -5
  411. package/dist/resources/profile/sap-active-profile.resource.js.map +1 -1
  412. package/dist/resources/register-resources.d.ts +5 -0
  413. package/dist/resources/register-resources.d.ts.map +1 -1
  414. package/dist/resources/register-resources.js +3 -1
  415. package/dist/resources/register-resources.js.map +1 -1
  416. package/dist/resources/registry/index.d.ts +5 -0
  417. package/dist/resources/registry/index.d.ts.map +1 -1
  418. package/dist/resources/registry/index.js +5 -0
  419. package/dist/resources/registry/index.js.map +1 -1
  420. package/dist/resources/registry/sap-agent.resource.d.ts +5 -0
  421. package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -1
  422. package/dist/resources/registry/sap-agent.resource.js +3 -4
  423. package/dist/resources/registry/sap-agent.resource.js.map +1 -1
  424. package/dist/resources/registry/sap-global-registry.resource.d.ts +18 -4
  425. package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -1
  426. package/dist/resources/registry/sap-global-registry.resource.js +18 -4
  427. package/dist/resources/registry/sap-global-registry.resource.js.map +1 -1
  428. package/dist/resources/reputation/index.d.ts +4 -1
  429. package/dist/resources/reputation/index.d.ts.map +1 -1
  430. package/dist/resources/reputation/index.js +4 -1
  431. package/dist/resources/reputation/index.js.map +1 -1
  432. package/dist/resources/reputation/sap-reputation.resource.d.ts +18 -4
  433. package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -1
  434. package/dist/resources/reputation/sap-reputation.resource.js +18 -4
  435. package/dist/resources/reputation/sap-reputation.resource.js.map +1 -1
  436. package/dist/resources/tool-schema/index.d.ts +4 -1
  437. package/dist/resources/tool-schema/index.d.ts.map +1 -1
  438. package/dist/resources/tool-schema/index.js +4 -1
  439. package/dist/resources/tool-schema/index.js.map +1 -1
  440. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +18 -4
  441. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -1
  442. package/dist/resources/tool-schema/sap-tool-schema.resource.js +18 -4
  443. package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -1
  444. package/dist/sap/index.d.ts +7 -1
  445. package/dist/sap/index.d.ts.map +1 -1
  446. package/dist/sap/index.js +7 -1
  447. package/dist/sap/index.js.map +1 -1
  448. package/dist/sap/sap-client-manager.d.ts +80 -13
  449. package/dist/sap/sap-client-manager.d.ts.map +1 -1
  450. package/dist/sap/sap-client-manager.js +80 -13
  451. package/dist/sap/sap-client-manager.js.map +1 -1
  452. package/dist/sap/sap-errors.d.ts +22 -3
  453. package/dist/sap/sap-errors.d.ts.map +1 -1
  454. package/dist/sap/sap-errors.js +22 -3
  455. package/dist/sap/sap-errors.js.map +1 -1
  456. package/dist/sap/sap-types.d.ts +75 -6
  457. package/dist/sap/sap-types.d.ts.map +1 -1
  458. package/dist/sap/sap-types.js +11 -1
  459. package/dist/sap/sap-types.js.map +1 -1
  460. package/dist/schemas/common.schema.d.ts +45 -8
  461. package/dist/schemas/common.schema.d.ts.map +1 -1
  462. package/dist/schemas/common.schema.js +45 -8
  463. package/dist/schemas/common.schema.js.map +1 -1
  464. package/dist/schemas/developer.schema.d.ts +22 -3
  465. package/dist/schemas/developer.schema.d.ts.map +1 -1
  466. package/dist/schemas/developer.schema.js +22 -3
  467. package/dist/schemas/developer.schema.js.map +1 -1
  468. package/dist/schemas/execution-proof.schema.d.ts +29 -4
  469. package/dist/schemas/execution-proof.schema.d.ts.map +1 -1
  470. package/dist/schemas/execution-proof.schema.js +29 -4
  471. package/dist/schemas/execution-proof.schema.js.map +1 -1
  472. package/dist/schemas/identity.schema.d.ts +23 -3
  473. package/dist/schemas/identity.schema.d.ts.map +1 -1
  474. package/dist/schemas/identity.schema.js +23 -3
  475. package/dist/schemas/identity.schema.js.map +1 -1
  476. package/dist/schemas/index.d.ts +11 -1
  477. package/dist/schemas/index.d.ts.map +1 -1
  478. package/dist/schemas/index.js +11 -1
  479. package/dist/schemas/index.js.map +1 -1
  480. package/dist/schemas/memory.schema.d.ts +23 -3
  481. package/dist/schemas/memory.schema.d.ts.map +1 -1
  482. package/dist/schemas/memory.schema.js +23 -3
  483. package/dist/schemas/memory.schema.js.map +1 -1
  484. package/dist/schemas/payments.schema.d.ts +24 -3
  485. package/dist/schemas/payments.schema.d.ts.map +1 -1
  486. package/dist/schemas/payments.schema.js +24 -3
  487. package/dist/schemas/payments.schema.js.map +1 -1
  488. package/dist/schemas/registry.schema.d.ts +38 -6
  489. package/dist/schemas/registry.schema.d.ts.map +1 -1
  490. package/dist/schemas/registry.schema.js +36 -4
  491. package/dist/schemas/registry.schema.js.map +1 -1
  492. package/dist/schemas/reputation.schema.d.ts +22 -3
  493. package/dist/schemas/reputation.schema.d.ts.map +1 -1
  494. package/dist/schemas/reputation.schema.js +22 -3
  495. package/dist/schemas/reputation.schema.js.map +1 -1
  496. package/dist/schemas/settlement.schema.d.ts +31 -4
  497. package/dist/schemas/settlement.schema.d.ts.map +1 -1
  498. package/dist/schemas/settlement.schema.js +31 -4
  499. package/dist/schemas/settlement.schema.js.map +1 -1
  500. package/dist/schemas/tool-schema.schema.d.ts +29 -3
  501. package/dist/schemas/tool-schema.schema.d.ts.map +1 -1
  502. package/dist/schemas/tool-schema.schema.js +29 -3
  503. package/dist/schemas/tool-schema.schema.js.map +1 -1
  504. package/dist/schemas/transaction.schema.d.ts +23 -3
  505. package/dist/schemas/transaction.schema.d.ts.map +1 -1
  506. package/dist/schemas/transaction.schema.js +23 -3
  507. package/dist/schemas/transaction.schema.js.map +1 -1
  508. package/dist/security/approval-required.d.ts +19 -2
  509. package/dist/security/approval-required.d.ts.map +1 -1
  510. package/dist/security/approval-required.js +19 -2
  511. package/dist/security/approval-required.js.map +1 -1
  512. package/dist/security/index.d.ts +7 -1
  513. package/dist/security/index.d.ts.map +1 -1
  514. package/dist/security/index.js +7 -1
  515. package/dist/security/index.js.map +1 -1
  516. package/dist/security/private-key-guard.d.ts +18 -2
  517. package/dist/security/private-key-guard.d.ts.map +1 -1
  518. package/dist/security/private-key-guard.js +19 -2
  519. package/dist/security/private-key-guard.js.map +1 -1
  520. package/dist/security/prompt-injection-notes.d.ts +10 -1
  521. package/dist/security/prompt-injection-notes.d.ts.map +1 -1
  522. package/dist/security/prompt-injection-notes.js +10 -1
  523. package/dist/security/prompt-injection-notes.js.map +1 -1
  524. package/dist/security/tool-permissions.d.ts.map +1 -1
  525. package/dist/security/tool-permissions.js +12 -0
  526. package/dist/security/tool-permissions.js.map +1 -1
  527. package/dist/security/unsafe-action-guard.d.ts +36 -10
  528. package/dist/security/unsafe-action-guard.d.ts.map +1 -1
  529. package/dist/security/unsafe-action-guard.js +67 -15
  530. package/dist/security/unsafe-action-guard.js.map +1 -1
  531. package/dist/server/create-server.d.ts +18 -3
  532. package/dist/server/create-server.d.ts.map +1 -1
  533. package/dist/server/create-server.js +20 -4
  534. package/dist/server/create-server.js.map +1 -1
  535. package/dist/server/index.d.ts +6 -1
  536. package/dist/server/index.d.ts.map +1 -1
  537. package/dist/server/index.js +6 -1
  538. package/dist/server/index.js.map +1 -1
  539. package/dist/server/register-capabilities.d.ts +17 -2
  540. package/dist/server/register-capabilities.d.ts.map +1 -1
  541. package/dist/server/register-capabilities.js +17 -2
  542. package/dist/server/register-capabilities.js.map +1 -1
  543. package/dist/server/server-metadata.d.ts +35 -1
  544. package/dist/server/server-metadata.d.ts.map +1 -1
  545. package/dist/server/server-metadata.js +36 -2
  546. package/dist/server/server-metadata.js.map +1 -1
  547. package/dist/session/agent-session.d.ts +35 -4
  548. package/dist/session/agent-session.d.ts.map +1 -1
  549. package/dist/session/agent-session.js +35 -4
  550. package/dist/session/agent-session.js.map +1 -1
  551. package/dist/session/delegated-session.d.ts +31 -3
  552. package/dist/session/delegated-session.d.ts.map +1 -1
  553. package/dist/session/delegated-session.js +31 -3
  554. package/dist/session/delegated-session.js.map +1 -1
  555. package/dist/session/index.d.ts +7 -1
  556. package/dist/session/index.d.ts.map +1 -1
  557. package/dist/session/index.js +7 -1
  558. package/dist/session/index.js.map +1 -1
  559. package/dist/session/redis-session-store.d.ts +94 -21
  560. package/dist/session/redis-session-store.d.ts.map +1 -1
  561. package/dist/session/redis-session-store.js +87 -20
  562. package/dist/session/redis-session-store.js.map +1 -1
  563. package/dist/session/session-limits.d.ts +34 -4
  564. package/dist/session/session-limits.d.ts.map +1 -1
  565. package/dist/session/session-limits.js +34 -4
  566. package/dist/session/session-limits.js.map +1 -1
  567. package/dist/session/session-permissions.d.ts +57 -7
  568. package/dist/session/session-permissions.d.ts.map +1 -1
  569. package/dist/session/session-permissions.js +57 -7
  570. package/dist/session/session-permissions.js.map +1 -1
  571. package/dist/session/session-store.d.ts +9 -1
  572. package/dist/session/session-store.d.ts.map +1 -1
  573. package/dist/session/session-store.js +18 -3
  574. package/dist/session/session-store.js.map +1 -1
  575. package/dist/session/session-types.d.ts +33 -4
  576. package/dist/session/session-types.d.ts.map +1 -1
  577. package/dist/session/session-types.js +9 -1
  578. package/dist/session/session-types.js.map +1 -1
  579. package/dist/signer/index.d.ts +7 -1
  580. package/dist/signer/index.d.ts.map +1 -1
  581. package/dist/signer/index.js +7 -1
  582. package/dist/signer/index.js.map +1 -1
  583. package/dist/signer/load-keypair.d.ts +25 -4
  584. package/dist/signer/load-keypair.d.ts.map +1 -1
  585. package/dist/signer/load-keypair.js +25 -4
  586. package/dist/signer/load-keypair.js.map +1 -1
  587. package/dist/signer/local-keypair-signer.d.ts +19 -3
  588. package/dist/signer/local-keypair-signer.d.ts.map +1 -1
  589. package/dist/signer/local-keypair-signer.js +24 -4
  590. package/dist/signer/local-keypair-signer.js.map +1 -1
  591. package/dist/signer/signer-resolver.d.ts +19 -2
  592. package/dist/signer/signer-resolver.d.ts.map +1 -1
  593. package/dist/signer/signer-resolver.js +26 -3
  594. package/dist/signer/signer-resolver.js.map +1 -1
  595. package/dist/signer/signer-types.d.ts +47 -5
  596. package/dist/signer/signer-types.d.ts.map +1 -1
  597. package/dist/signer/signer-types.js +13 -1
  598. package/dist/signer/signer-types.js.map +1 -1
  599. package/dist/strategies/strategy-store.d.ts +82 -0
  600. package/dist/strategies/strategy-store.d.ts.map +1 -0
  601. package/dist/strategies/strategy-store.js +165 -0
  602. package/dist/strategies/strategy-store.js.map +1 -0
  603. package/dist/tools/agent-start-tool.d.ts.map +1 -1
  604. package/dist/tools/agent-start-tool.js +481 -5
  605. package/dist/tools/agent-start-tool.js.map +1 -1
  606. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  607. package/dist/tools/client-sdk-tools.js +32 -7
  608. package/dist/tools/client-sdk-tools.js.map +1 -1
  609. package/dist/tools/estimate-tool-cost.d.ts +13 -0
  610. package/dist/tools/estimate-tool-cost.d.ts.map +1 -0
  611. package/dist/tools/estimate-tool-cost.js +139 -0
  612. package/dist/tools/estimate-tool-cost.js.map +1 -0
  613. package/dist/tools/index.d.ts +8 -0
  614. package/dist/tools/index.d.ts.map +1 -1
  615. package/dist/tools/index.js +11 -0
  616. package/dist/tools/index.js.map +1 -1
  617. package/dist/tools/magicblock-tools.d.ts +31 -6
  618. package/dist/tools/magicblock-tools.d.ts.map +1 -1
  619. package/dist/tools/magicblock-tools.js +178 -53
  620. package/dist/tools/magicblock-tools.js.map +1 -1
  621. package/dist/tools/memory-tools.d.ts +26 -0
  622. package/dist/tools/memory-tools.d.ts.map +1 -0
  623. package/dist/tools/memory-tools.js +533 -0
  624. package/dist/tools/memory-tools.js.map +1 -0
  625. package/dist/tools/perp-tools.d.ts +39 -0
  626. package/dist/tools/perp-tools.d.ts.map +1 -0
  627. package/dist/tools/perp-tools.js +1110 -0
  628. package/dist/tools/perp-tools.js.map +1 -0
  629. package/dist/tools/premium-tools.d.ts +8 -0
  630. package/dist/tools/premium-tools.d.ts.map +1 -0
  631. package/dist/tools/premium-tools.js +1102 -0
  632. package/dist/tools/premium-tools.js.map +1 -0
  633. package/dist/tools/profile-tools.d.ts.map +1 -1
  634. package/dist/tools/profile-tools.js +18 -1
  635. package/dist/tools/profile-tools.js.map +1 -1
  636. package/dist/tools/quick-context-tool.d.ts +16 -0
  637. package/dist/tools/quick-context-tool.d.ts.map +1 -0
  638. package/dist/tools/quick-context-tool.js +304 -0
  639. package/dist/tools/quick-context-tool.js.map +1 -0
  640. package/dist/tools/register-tools.d.ts.map +1 -1
  641. package/dist/tools/register-tools.js +17 -0
  642. package/dist/tools/register-tools.js.map +1 -1
  643. package/dist/tools/sap-sdk-tools.d.ts +420 -1
  644. package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
  645. package/dist/tools/sap-sdk-tools.js +1548 -127
  646. package/dist/tools/sap-sdk-tools.js.map +1 -1
  647. package/dist/tools/sap-sns-tools.d.ts +2 -2
  648. package/dist/tools/sap-sns-tools.d.ts.map +1 -1
  649. package/dist/tools/sap-sns-tools.js +12 -8
  650. package/dist/tools/sap-sns-tools.js.map +1 -1
  651. package/dist/tools/skills-tools.d.ts +16 -0
  652. package/dist/tools/skills-tools.d.ts.map +1 -1
  653. package/dist/tools/skills-tools.js +282 -5
  654. package/dist/tools/skills-tools.js.map +1 -1
  655. package/dist/tools/tool-aliases.d.ts.map +1 -1
  656. package/dist/tools/tool-aliases.js +7 -0
  657. package/dist/tools/tool-aliases.js.map +1 -1
  658. package/dist/tools/transaction-tools.d.ts +135 -0
  659. package/dist/tools/transaction-tools.d.ts.map +1 -1
  660. package/dist/tools/transaction-tools.js +515 -16
  661. package/dist/tools/transaction-tools.js.map +1 -1
  662. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  663. package/dist/tools/x402-paid-call-tool.js +756 -23
  664. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  665. package/dist/transports/index.d.ts +6 -1
  666. package/dist/transports/index.d.ts.map +1 -1
  667. package/dist/transports/index.js +6 -1
  668. package/dist/transports/index.js.map +1 -1
  669. package/dist/transports/stdio.d.ts +17 -5
  670. package/dist/transports/stdio.d.ts.map +1 -1
  671. package/dist/transports/stdio.js +17 -5
  672. package/dist/transports/stdio.js.map +1 -1
  673. package/dist/tui/wizard-save.d.ts +88 -8
  674. package/dist/tui/wizard-save.d.ts.map +1 -1
  675. package/dist/tui/wizard-save.js +77 -8
  676. package/dist/tui/wizard-save.js.map +1 -1
  677. package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
  678. package/dist/wizard-core/desktop-flow.js +4 -2
  679. package/dist/wizard-core/desktop-flow.js.map +1 -1
  680. package/docs/03_CONFIGURATION_AND_WIZARD.md +5 -3
  681. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +82 -4
  682. package/docs/07_ENDPOINTS_AND_CLIENTS.md +7 -3
  683. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +21 -3
  684. package/docs/14_DESKTOP_WIZARD_RELEASE.md +8 -6
  685. package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +304 -0
  686. package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
  687. package/docs/BRANCH_AND_CI.md +67 -0
  688. package/docs/README.md +19 -2
  689. package/docs/magicblock-tools.md +70 -29
  690. package/package.json +10 -6
  691. package/server.json +3 -3
  692. package/skills/README.md +12 -2
  693. package/skills/sap-agent-registry/SKILL.md +99 -4
  694. package/skills/sap-defi/SKILL.md +8 -4
  695. package/skills/sap-discovery-indexing/SKILL.md +26 -4
  696. package/skills/sap-escrow-settlement/SKILL.md +22 -4
  697. package/skills/sap-mcp/SKILL.md +140 -22
  698. package/skills/sap-mcp/TOOL_REFERENCE.md +47 -7
  699. package/skills/sap-nft-metaplex/SKILL.md +22 -0
  700. package/skills/sap-operations/SKILL.md +32 -3
  701. package/skills/sap-payments-x402/SKILL.md +85 -8
  702. package/skills/sap-sns/SKILL.md +32 -10
  703. package/smithery.config.schema.json +7 -0
@@ -14,10 +14,16 @@ import { MCP_SERVER_VERSION } from '../core/constants.js';
14
14
  import { logger, initLogger } from '../core/logger.js';
15
15
  import { createSapMcpServer } from '../server/create-server.js';
16
16
  import { AuthManager } from './auth/index.js';
17
- import { McpMonetizationGate, resolvePaymentNetwork } from '../payments/index.js';
17
+ import { McpMonetizationGate, buildPricingCatalog, resolvePaymentNetwork } from '../payments/index.js';
18
18
  import { generatePayShProviderYaml } from '../payments/pay-sh-spec.js';
19
+ import { listPremiumPlugins, premiumPrivatePluginSupport, publicPremiumProviderStatus, getPremiumMetrics, } from '../premium/index.js';
19
20
  import { RemoteRateLimiter, buildRemoteRateLimitConfigFromEnv } from './rate-limiter.js';
20
21
  import { renderLandingPage } from './public-home/index.js';
22
+ import { TX_SUBMIT_PATH, submitSignedTransactionFromHttp } from './tx-relay.js';
23
+ import { tryPremiumRoute } from './premium-routes.js';
24
+ import { PremiumMemoryManager } from './premium-memory.js';
25
+ import { preloadPremiumProviders, disconnectAllProviders } from '../premium/provider-bridge.js';
26
+ import { asyncMemoryProcessor, memoryDatabase } from '../memory/index.js';
21
27
  const PUBLIC_SERVER_TITLE = 'SAP MCP Server | OOBE Protocol';
22
28
  const PUBLIC_SERVER_DESCRIPTION = 'Hosted Solana-native MCP gateway for Synapse Agent Protocol tools, x402/pay.sh monetization, SNS identity, and agent operations.';
23
29
  const LOGO_ASSET_PATH = join(dirname(fileURLToPath(import.meta.url)), '..', '..', 'assets', 'explorer_logo.png');
@@ -30,7 +36,8 @@ const PAYMENT_STATS_CACHE_MS = 15_000;
30
36
  const SERVER_CARD_CACHE_MS = 300_000;
31
37
  const RELEASE_DOWNLOAD_BASE_URL = `https://github.com/OOBE-PROTOCOL/sap-mcp/releases/download/${MCP_SERVER_VERSION}`;
32
38
  const WIZARD_NPM_COMMAND = 'npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config wizard';
33
- const X402_PAID_CALL_NPX_COMMAND = 'npx --yes --package @oobe-protocol-labs/sap-mcp-server sap-mcp-x402-paid-call --tool sap_list_all_agents --arguments \'{"limit":5}\' --max-usd 0.02 --confirm';
39
+ const REPAIR_NPM_COMMAND = 'npm exec --yes --package @oobe-protocol-labs/sap-mcp-server -- sap-mcp-config repair';
40
+ const X402_PAID_CALL_NPX_COMMAND = 'npx --yes --package @oobe-protocol-labs/sap-mcp-server sap-mcp-x402-paid-call --tool sap_list_all_agents --arguments \'{"limit":5}\' --max-usd 0.05 --confirm';
34
41
  const X402_PAID_CALL_ADDON_PATH = '~/.config/mcp-sap/addons/x402-paid-call';
35
42
  const SOLANA_DEVNET_CAIP2 = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1';
36
43
  const USDC_MAINNET_MINT = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
@@ -542,7 +549,10 @@ function readPaymentStatsFromLedger() {
542
549
  totalVolumeUsd: 0,
543
550
  totalSettlements: 0,
544
551
  totalPaymentRequests: 0,
552
+ totalChallengesReturned: 0,
545
553
  totalVerifiedPayments: 0,
554
+ totalVerificationFailures: 0,
555
+ totalEligibilityBlocks: 0,
546
556
  totalFailedSettlements: 0,
547
557
  uniqueRemoteCallers: 0,
548
558
  uniqueUserAgents: 0,
@@ -570,9 +580,18 @@ function readPaymentStatsFromLedger() {
570
580
  if (event.event === 'payment_required') {
571
581
  stats.totalPaymentRequests += 1;
572
582
  }
583
+ if (event.event === 'payment_challenge_returned') {
584
+ stats.totalChallengesReturned += 1;
585
+ }
573
586
  if (event.event === 'payment_verified') {
574
587
  stats.totalVerifiedPayments += 1;
575
588
  }
589
+ if (event.event === 'payment_verification_failed') {
590
+ stats.totalVerificationFailures += 1;
591
+ }
592
+ if (event.event === 'payment_eligibility_blocked') {
593
+ stats.totalEligibilityBlocks += 1;
594
+ }
576
595
  if (event.event === 'payment_settled') {
577
596
  stats.totalSettlements += 1;
578
597
  stats.totalVolumeUsd += event.priceUsd ?? 0;
@@ -684,9 +703,18 @@ export function buildPublicServerInfo(req, config) {
684
703
  landing: `${baseUrl}/`,
685
704
  docs: `${baseUrl}/docs`,
686
705
  mcp: `${baseUrl}/mcp`,
706
+ txSubmit: `${baseUrl}${TX_SUBMIT_PATH}`,
687
707
  health: `${baseUrl}/health`,
688
708
  serverInfo: `${baseUrl}/server.json`,
709
+ pricing: `${baseUrl}/pricing.json`,
689
710
  openApi: `${baseUrl}/openapi.json`,
711
+ premiumCatalog: `${baseUrl}/premium/catalog.json`,
712
+ premiumStreams: `${baseUrl}/premium/streams.json`,
713
+ premiumWebhooks: `${baseUrl}/premium/webhooks.json`,
714
+ premiumHealth: `${baseUrl}/premium/health.json`,
715
+ premiumActivate: `${baseUrl}/premium/activate`,
716
+ premiumStreamBase: `${baseUrl}/premium/stream`,
717
+ premiumWebhookRegister: `${baseUrl}/premium/webhook/register`,
690
718
  x402Discovery: `${baseUrl}/.well-known/x402`,
691
719
  smitheryConfigSchema: `${baseUrl}/smithery.config.schema.json`,
692
720
  smitheryServerCard: `${baseUrl}/.well-known/mcp/server-card.json`,
@@ -744,7 +772,7 @@ export function buildMarketplaceConfigurationMetadata(req, config) {
744
772
  configSchema: readSmitheryConfigSchema(),
745
773
  recommendedMode: 'free-discovery',
746
774
  paidToolModes: ['x402-native-client', 'local-sap-payments-bridge'],
747
- instructions: 'Start with free discovery tools in Smithery. Paid/write tools return x402 challenges; complete them with a native x402-capable client or with the local sap_payments bridge installed by the SAP MCP wizard.',
775
+ instructions: 'Start with free sap_agent_start, then sap_skills_bundle with includeContents=true so the agent loads SAP MCP skills before selecting tools. Paid/write tools return standard x402 challenges; complete them with a native x402-capable client or the local sap_payments bridge installed by the SAP MCP wizard. Hosted SAP MCP is non-custodial and never receives user keypair bytes.',
748
776
  setupCommand: WIZARD_NPM_COMMAND,
749
777
  localBridge: {
750
778
  serverName: 'sap_payments',
@@ -753,6 +781,49 @@ export function buildMarketplaceConfigurationMetadata(req, config) {
753
781
  },
754
782
  };
755
783
  }
784
+ /**
785
+ * @name buildPremiumDiscoveryDocument
786
+ * @description Builds public premium stream/webhook/plugin contracts for agent runtimes and marketplaces.
787
+ */
788
+ export function buildPremiumDiscoveryDocument(req, config, type) {
789
+ const baseUrl = buildPublicBaseUrl(req, config);
790
+ const plugins = listPremiumPlugins();
791
+ const capabilities = plugins.flatMap(plugin => plugin.capabilities
792
+ .filter(capability => !type || capability.type === type)
793
+ .map(capability => ({
794
+ ...capability,
795
+ pluginId: plugin.id,
796
+ providerReady: capability.providerEnv.every(envName => Boolean(process.env[envName])),
797
+ })));
798
+ return {
799
+ version: '1.0.0',
800
+ service: 'sap-mcp-server',
801
+ serverVersion: MCP_SERVER_VERSION,
802
+ kind: type ? `premium-${type}-catalog` : 'premium-plugin-catalog',
803
+ title: type ? `SAP MCP Premium ${type === 'stream' ? 'Stream' : 'Webhook'} Catalog` : 'SAP MCP Premium Plugin Catalog',
804
+ description: 'Public, secret-free premium capability contracts for SAP MCP. Discovery and planning are free; live delivery requires x402/pay.sh settlement and configured providers.',
805
+ links: {
806
+ catalog: `${baseUrl}/premium/catalog.json`,
807
+ streams: `${baseUrl}/premium/streams.json`,
808
+ webhooks: `${baseUrl}/premium/webhooks.json`,
809
+ docs: `${baseUrl}/docs/18_PREMIUM_PLUGIN_RUNTIME.md`,
810
+ mcp: `${baseUrl}/mcp`,
811
+ pricing: `${baseUrl}/pricing.json`,
812
+ x402Discovery: `${baseUrl}/.well-known/x402`,
813
+ payShProvider: `${baseUrl}/pay/provider.yml`,
814
+ },
815
+ monetization: {
816
+ planning: 'free',
817
+ liveDelivery: 'x402/pay.sh required when the selected provider is live and the session is activated.',
818
+ sourceOfTruth: `${baseUrl}/pricing.json`,
819
+ localBridgeTool: 'sap_payments_call_paid_tool',
820
+ },
821
+ providerStatus: publicPremiumProviderStatus(),
822
+ privatePluginSupport: premiumPrivatePluginSupport(),
823
+ capabilities,
824
+ ...(type ? {} : { plugins }),
825
+ };
826
+ }
756
827
  /**
757
828
  * @name readSmitheryConfigSchema
758
829
  * @description Reads the published Smithery JSON schema from the packaged root.
@@ -876,7 +947,7 @@ export function buildOpenApiSpec(req, config) {
876
947
  info: {
877
948
  title: 'SAP MCP Server',
878
949
  version: MCP_SERVER_VERSION,
879
- description: 'MCP gateway for Solana DeFi, SAP agent registry, and x402 micropayments. 248 tools across Jupiter, Drift, Metaplex, Pump.fun, Raydium, Orca, and more.',
950
+ description: 'MCP gateway for Solana DeFi, SAP agent registry, and x402 micropayments across Jupiter, Drift, Metaplex, Pump.fun, Raydium, Orca, and more.',
880
951
  'x-guidance': 'Connect to POST /mcp with Accept: application/json, text/event-stream. Initialize an MCP session first, then call tools. Paid tools return a payment_required JSON-RPC error (HTTP 200 for MCP SDK compatibility) or HTTP 402 for non-MCP clients. Use the local sap_payments_call_paid_tool bridge or npx sap-mcp-x402-paid-call to self-pay and retry.',
881
952
  contact: {
882
953
  name: 'OOBE Protocol Labs',
@@ -887,6 +958,14 @@ export function buildOpenApiSpec(req, config) {
887
958
  'x-discovery': {
888
959
  resources: [`${baseUrl}/mcp`],
889
960
  openApi: `${baseUrl}/openapi.json`,
961
+ pricing: `${baseUrl}/pricing.json`,
962
+ premiumCatalog: `${baseUrl}/premium/catalog.json`,
963
+ premiumStreams: `${baseUrl}/premium/streams.json`,
964
+ premiumWebhooks: `${baseUrl}/premium/webhooks.json`,
965
+ premiumHealth: `${baseUrl}/premium/health.json`,
966
+ premiumActivate: `${baseUrl}/premium/activate`,
967
+ premiumStreamBase: `${baseUrl}/premium/stream`,
968
+ premiumWebhookRegister: `${baseUrl}/premium/webhook/register`,
890
969
  x402Discovery: `${baseUrl}/.well-known/x402`,
891
970
  payShProvider: `${baseUrl}/pay/provider.yml`,
892
971
  ...(config.paymentDiscovery ? { payments: config.paymentDiscovery } : {}),
@@ -1064,6 +1143,171 @@ export function buildOpenApiSpec(req, config) {
1064
1143
  },
1065
1144
  },
1066
1145
  },
1146
+ '/premium/catalog.json': {
1147
+ get: {
1148
+ operationId: 'fetchPremiumCatalog',
1149
+ summary: 'Fetch premium plugin catalog',
1150
+ tags: ['Premium'],
1151
+ responses: {
1152
+ '200': {
1153
+ description: 'Secret-free premium plugin, stream, webhook, schema, pricing, and provider readiness metadata.',
1154
+ content: {
1155
+ 'application/json': {
1156
+ schema: {
1157
+ type: 'object',
1158
+ properties: {
1159
+ version: { type: 'string' },
1160
+ service: { type: 'string' },
1161
+ kind: { type: 'string' },
1162
+ capabilities: { type: 'array', items: { type: 'object', additionalProperties: true } },
1163
+ providerStatus: { type: 'object', additionalProperties: { type: 'boolean' } },
1164
+ },
1165
+ },
1166
+ },
1167
+ },
1168
+ },
1169
+ },
1170
+ },
1171
+ },
1172
+ '/premium/streams.json': {
1173
+ get: {
1174
+ operationId: 'fetchPremiumStreams',
1175
+ summary: 'Fetch premium stream catalog',
1176
+ tags: ['Premium'],
1177
+ responses: {
1178
+ '200': {
1179
+ description: 'Secret-free premium stream contracts with schemas, x402/pay.sh pricing, and provider readiness.',
1180
+ content: { 'application/json': { schema: { type: 'object' } } },
1181
+ },
1182
+ },
1183
+ },
1184
+ },
1185
+ '/premium/webhooks.json': {
1186
+ get: {
1187
+ operationId: 'fetchPremiumWebhooks',
1188
+ summary: 'Fetch premium webhook catalog',
1189
+ tags: ['Premium'],
1190
+ responses: {
1191
+ '200': {
1192
+ description: 'Secret-free premium webhook contracts with signed delivery expectations, pricing, and provider readiness.',
1193
+ content: { 'application/json': { schema: { type: 'object' } } },
1194
+ },
1195
+ },
1196
+ },
1197
+ },
1198
+ '/premium/health.json': {
1199
+ get: {
1200
+ operationId: 'fetchPremiumHealth',
1201
+ summary: 'Fetch premium subsystem health and metrics',
1202
+ tags: ['Premium'],
1203
+ responses: {
1204
+ '200': {
1205
+ description: 'Premium subsystem metrics: active/pending/blocked sessions, events delivered, revenue, active streams/webhooks, and provider health.',
1206
+ content: { 'application/json': { schema: { type: 'object' } } },
1207
+ },
1208
+ },
1209
+ },
1210
+ },
1211
+ '/premium/activate': {
1212
+ post: {
1213
+ operationId: 'activatePremiumSession',
1214
+ summary: 'Activate a premium session with a verified x402/pay.sh receipt',
1215
+ tags: ['Premium'],
1216
+ requestBody: {
1217
+ required: true,
1218
+ content: {
1219
+ 'application/json': {
1220
+ schema: {
1221
+ type: 'object',
1222
+ required: ['sessionId', 'paymentReceipt'],
1223
+ properties: {
1224
+ sessionId: { type: 'string' },
1225
+ paymentReceipt: { type: 'string' },
1226
+ payerAddress: { type: 'string' },
1227
+ },
1228
+ },
1229
+ },
1230
+ },
1231
+ },
1232
+ responses: {
1233
+ '200': {
1234
+ description: 'Session activated successfully.',
1235
+ content: { 'application/json': { schema: { type: 'object' } } },
1236
+ },
1237
+ '400': { description: 'Missing required fields.' },
1238
+ '402': { description: 'Session not in pending_payment status.' },
1239
+ },
1240
+ },
1241
+ },
1242
+ '/premium/stream/{sessionId}': {
1243
+ get: {
1244
+ operationId: 'openPremiumStream',
1245
+ summary: 'Open an SSE stream for an active premium session',
1246
+ tags: ['Premium'],
1247
+ parameters: [
1248
+ { name: 'sessionId', in: 'path', required: true, schema: { type: 'string' } },
1249
+ { name: 'subscriptionKey', in: 'query', schema: { type: 'string' } },
1250
+ { name: 'since', in: 'query', schema: { type: 'string' } },
1251
+ ],
1252
+ responses: {
1253
+ '200': {
1254
+ description: 'SSE event stream. Each event is `event: <type>\\ndata: <json>\\n\\n`.',
1255
+ content: { 'text/event-stream': { schema: { type: 'string' } } },
1256
+ },
1257
+ '403': { description: 'Session not active.' },
1258
+ '406': { description: 'Accept: text/event-stream required.' },
1259
+ },
1260
+ },
1261
+ },
1262
+ '/premium/webhook/register': {
1263
+ post: {
1264
+ operationId: 'registerPremiumWebhook',
1265
+ summary: 'Register an HTTPS webhook target for signed premium event delivery',
1266
+ tags: ['Premium'],
1267
+ requestBody: {
1268
+ required: true,
1269
+ content: {
1270
+ 'application/json': {
1271
+ schema: {
1272
+ type: 'object',
1273
+ required: ['sessionId', 'targetUrl', 'events'],
1274
+ properties: {
1275
+ sessionId: { type: 'string' },
1276
+ targetUrl: { type: 'string', format: 'uri' },
1277
+ events: { type: 'array', items: { type: 'string' }, minItems: 1 },
1278
+ signingPublicKey: { type: 'string' },
1279
+ },
1280
+ },
1281
+ },
1282
+ },
1283
+ },
1284
+ responses: {
1285
+ '201': {
1286
+ description: 'Webhook subscription created. Delivery worker started in background.',
1287
+ content: { 'application/json': { schema: { type: 'object' } } },
1288
+ },
1289
+ '400': { description: 'Missing required fields.' },
1290
+ '402': { description: 'Session not active or URL invalid.' },
1291
+ },
1292
+ },
1293
+ },
1294
+ '/premium/webhook/{subscriptionId}/status': {
1295
+ get: {
1296
+ operationId: 'getPremiumWebhookStatus',
1297
+ summary: 'Check webhook subscription status and recent delivery records',
1298
+ tags: ['Premium'],
1299
+ parameters: [
1300
+ { name: 'subscriptionId', in: 'path', required: true, schema: { type: 'string' } },
1301
+ ],
1302
+ responses: {
1303
+ '200': {
1304
+ description: 'Subscription status with recent delivery attempts.',
1305
+ content: { 'application/json': { schema: { type: 'object' } } },
1306
+ },
1307
+ '404': { description: 'Subscription not found.' },
1308
+ },
1309
+ },
1310
+ },
1067
1311
  },
1068
1312
  };
1069
1313
  }
@@ -1099,6 +1343,7 @@ export function buildLandingHtml(req, config, endpoint = 'root') {
1099
1343
  title,
1100
1344
  installScriptCommand: 'curl -fsSL https://mcp.sap.oobeprotocol.ai/wizard/install.sh | sh',
1101
1345
  wizardCommand: WIZARD_NPM_COMMAND,
1346
+ repairCommand: REPAIR_NPM_COMMAND,
1102
1347
  paidCallCommand: X402_PAID_CALL_NPX_COMMAND,
1103
1348
  paidCallAddonPath: X402_PAID_CALL_ADDON_PATH,
1104
1349
  });
@@ -1589,6 +1834,8 @@ export class RemoteMCPServer {
1589
1834
  httpTuning;
1590
1835
  sessionCleanupInterval;
1591
1836
  httpServer;
1837
+ monetizationGate;
1838
+ premiumMemoryManager;
1592
1839
  constructor(config) {
1593
1840
  this.appConfig = loadConfig();
1594
1841
  initLogger({
@@ -1611,7 +1858,21 @@ export class RemoteMCPServer {
1611
1858
  this.validateAuthConfig();
1612
1859
  await this.rateLimiter.initialize();
1613
1860
  this.startSessionCleanup();
1614
- const monetizationGate = await McpMonetizationGate.create(this.appConfig);
1861
+ this.monetizationGate = await McpMonetizationGate.create(this.appConfig);
1862
+ // Start premium memory background GC.
1863
+ this.premiumMemoryManager = new PremiumMemoryManager();
1864
+ this.premiumMemoryManager.start();
1865
+ // Eagerly load and connect all configured premium provider adapters.
1866
+ // This starts the polling loops (Pyth HTTP, DexScreener, DefiLlama, etc.)
1867
+ // before the server accepts requests, so events are already flowing when
1868
+ // the first agent session arrives. Failures are logged but non-fatal.
1869
+ await preloadPremiumProviders();
1870
+ // Initialize the local agent memory subsystem (SQLite FTS5).
1871
+ // The database is created at ~/.config/sap-mcp/memory/agent-memory.db.
1872
+ // If the DB cannot be opened, the subsystem enters degraded mode and
1873
+ // all memory tools return empty results instead of crashing.
1874
+ memoryDatabase.init();
1875
+ asyncMemoryProcessor.start();
1615
1876
  this.httpServer = http.createServer(async (req, res) => {
1616
1877
  if (this.applyCors(req, res)) {
1617
1878
  return;
@@ -1631,6 +1892,57 @@ export class RemoteMCPServer {
1631
1892
  }, isHeadMethod(req.method));
1632
1893
  return;
1633
1894
  }
1895
+ if (isPublicReadMethod(req.method) && url.pathname === '/pricing.json') {
1896
+ writeJson(res, 200, buildPricingCatalog(this.appConfig.monetization), {
1897
+ 'Cache-Control': 'public, max-age=300',
1898
+ }, isHeadMethod(req.method));
1899
+ return;
1900
+ }
1901
+ if (isPublicReadMethod(req.method) && url.pathname === '/premium/catalog.json') {
1902
+ writeJson(res, 200, buildPremiumDiscoveryDocument(req, this.config), {
1903
+ 'Cache-Control': 'public, max-age=300',
1904
+ }, isHeadMethod(req.method));
1905
+ return;
1906
+ }
1907
+ if (isPublicReadMethod(req.method) && url.pathname === '/premium/streams.json') {
1908
+ writeJson(res, 200, buildPremiumDiscoveryDocument(req, this.config, 'stream'), {
1909
+ 'Cache-Control': 'public, max-age=300',
1910
+ }, isHeadMethod(req.method));
1911
+ return;
1912
+ }
1913
+ if (isPublicReadMethod(req.method) && url.pathname === '/premium/webhooks.json') {
1914
+ writeJson(res, 200, buildPremiumDiscoveryDocument(req, this.config, 'webhook'), {
1915
+ 'Cache-Control': 'public, max-age=300',
1916
+ }, isHeadMethod(req.method));
1917
+ return;
1918
+ }
1919
+ if (isPublicReadMethod(req.method) && url.pathname === '/premium/health.json') {
1920
+ try {
1921
+ const metrics = await getPremiumMetrics();
1922
+ writeJson(res, 200, {
1923
+ version: '1.0.0',
1924
+ service: 'sap-mcp-server',
1925
+ serverVersion: MCP_SERVER_VERSION,
1926
+ timestamp: new Date().toISOString(),
1927
+ ...metrics,
1928
+ }, {
1929
+ 'Cache-Control': 'public, max-age=15',
1930
+ }, isHeadMethod(req.method));
1931
+ }
1932
+ catch (error) {
1933
+ writeJson(res, 500, {
1934
+ error: 'premium_health_error',
1935
+ message: error instanceof Error ? error.message : 'Unknown error.',
1936
+ });
1937
+ }
1938
+ return;
1939
+ }
1940
+ // Premium delivery rail routes (activation, SSE stream, webhook register/status).
1941
+ // These are not public read-only — they handle POST and GET with side effects.
1942
+ const handledByPremiumRoute = await tryPremiumRoute(req, res);
1943
+ if (handledByPremiumRoute) {
1944
+ return;
1945
+ }
1634
1946
  if (isPublicReadMethod(req.method) && url.pathname === '/smithery.config.schema.json') {
1635
1947
  writeJson(res, 200, readSmitheryConfigSchema(), {
1636
1948
  'Cache-Control': 'public, max-age=300',
@@ -1712,6 +2024,47 @@ export class RemoteMCPServer {
1712
2024
  writeHtml(res, 200, buildLandingHtml(req, this.config, 'mcp'), isHeadMethod(req.method));
1713
2025
  return;
1714
2026
  }
2027
+ if (url.pathname === TX_SUBMIT_PATH) {
2028
+ if (req.method !== 'POST') {
2029
+ writeJson(res, 405, {
2030
+ error: 'method_not_allowed',
2031
+ allowedMethods: ['POST'],
2032
+ }, {
2033
+ Allow: 'POST',
2034
+ });
2035
+ return;
2036
+ }
2037
+ const rateLimit = await this.rateLimiter.check(`${getRateLimitKey(req)}:tx-submit`);
2038
+ res.setHeader('X-RateLimit-Limit', String(rateLimit.limit));
2039
+ res.setHeader('X-RateLimit-Remaining', String(rateLimit.remaining));
2040
+ res.setHeader('X-RateLimit-Reset', String(rateLimit.resetSeconds));
2041
+ if (!rateLimit.allowed) {
2042
+ writeJson(res, 429, {
2043
+ error: 'rate_limited',
2044
+ retryAfterSeconds: rateLimit.resetSeconds,
2045
+ }, {
2046
+ 'Retry-After': String(rateLimit.resetSeconds),
2047
+ });
2048
+ return;
2049
+ }
2050
+ try {
2051
+ const result = await submitSignedTransactionFromHttp(req, this.appConfig);
2052
+ writeJson(res, result.success ? 200 : 202, result, {
2053
+ 'Cache-Control': 'no-store',
2054
+ });
2055
+ }
2056
+ catch (error) {
2057
+ writeJson(res, 400, {
2058
+ success: false,
2059
+ error: error instanceof Error ? error.message : 'transaction_submit_failed',
2060
+ retrySafe: false,
2061
+ agentInstruction: 'The hosted relay only submits already-signed Solana transactions. Sign locally with sap_payments_finalize_transaction first; never send keypair bytes or unsigned transactions to this endpoint.',
2062
+ }, {
2063
+ 'Cache-Control': 'no-store',
2064
+ });
2065
+ }
2066
+ return;
2067
+ }
1715
2068
  if (url.pathname !== '/mcp') {
1716
2069
  writeJson(res, 404, { error: 'Not Found' });
1717
2070
  return;
@@ -1780,8 +2133,8 @@ export class RemoteMCPServer {
1780
2133
  sessionIdGenerator: undefined,
1781
2134
  });
1782
2135
  await perRequestServer.connect(perRequestTransport);
1783
- if (monetizationGate) {
1784
- await monetizationGate.handle(req, res, async (mcpReq, mcpRes, parsedBody) => {
2136
+ if (this.monetizationGate) {
2137
+ await this.monetizationGate.handle(req, res, async (mcpReq, mcpRes, parsedBody) => {
1785
2138
  // Extract tool names from parsed JSON-RPC body for logging
1786
2139
  loggedToolNames = extractToolNamesFromJsonRpc(parsedBody);
1787
2140
  loggedMethod = extractJsonRpcMethod(parsedBody);
@@ -1797,8 +2150,8 @@ export class RemoteMCPServer {
1797
2150
  }
1798
2151
  else {
1799
2152
  // Stateful mode: route each request to the transport created by its initialize response.
1800
- if (monetizationGate) {
1801
- await monetizationGate.handle(req, res, async (mcpReq, mcpRes, parsedBody) => {
2153
+ if (this.monetizationGate) {
2154
+ await this.monetizationGate.handle(req, res, async (mcpReq, mcpRes, parsedBody) => {
1802
2155
  loggedToolNames = extractToolNamesFromJsonRpc(parsedBody);
1803
2156
  loggedMethod = extractJsonRpcMethod(parsedBody);
1804
2157
  await this.handleStatefulMcpRequest(mcpReq, mcpRes, parsedBody);
@@ -1888,7 +2241,15 @@ export class RemoteMCPServer {
1888
2241
  resolve();
1889
2242
  }, 5_000);
1890
2243
  });
2244
+ await this.monetizationGate?.close();
2245
+ this.monetizationGate = undefined;
1891
2246
  await this.rateLimiter.close();
2247
+ // Premium subsystem graceful shutdown: stop streams, webhooks, providers, clear stores.
2248
+ await disconnectAllProviders();
2249
+ asyncMemoryProcessor.stop();
2250
+ memoryDatabase.close();
2251
+ await this.premiumMemoryManager?.shutdown();
2252
+ this.premiumMemoryManager = undefined;
1892
2253
  }
1893
2254
  /**
1894
2255
  * @name validateAuthConfig