@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
@@ -1,5 +1,11 @@
1
1
  /**
2
- * MCP adapter barrel export
2
+ * @name adapters/mcp/index
3
+ * @description Barrel export for the MCP adapter subsystem.
4
+ *
5
+ * Re-exports tool response helpers, resource response helpers,
6
+ * prompt response helpers, and the MCP error class.
7
+ *
8
+ * @module adapters/mcp/index
3
9
  */
4
10
  export { createTextResponse, createJsonResponse, createErrorResponse } from './tool-response.js';
5
11
  export { createResourceResponse } from './resource-response.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,5 +1,17 @@
1
1
  /**
2
- * MCP prompt response helper.
2
+ * @name adapters/mcp/prompt-response
3
+ * @description Helper for constructing MCP prompt responses.
4
+ *
5
+ * @module adapters/mcp/prompt-response
6
+ */
7
+ /**
8
+ * @name createPromptResponse
9
+ * @description Wraps an array of role/content message objects into an MCP prompt response.
10
+ *
11
+ * @param messages — Array of message objects with `role` and `content` string fields.
12
+ * @returns An MCP prompt response containing the provided messages.
13
+ *
14
+ * @usedBy MCP prompt handlers
3
15
  */
4
16
  export declare function createPromptResponse(messages: Array<{
5
17
  role: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-response.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/prompt-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAE/I"}
1
+ {"version":3,"file":"prompt-response.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/prompt-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG;IAAE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAE/I"}
@@ -1,5 +1,17 @@
1
1
  /**
2
- * MCP prompt response helper.
2
+ * @name adapters/mcp/prompt-response
3
+ * @description Helper for constructing MCP prompt responses.
4
+ *
5
+ * @module adapters/mcp/prompt-response
6
+ */
7
+ /**
8
+ * @name createPromptResponse
9
+ * @description Wraps an array of role/content message objects into an MCP prompt response.
10
+ *
11
+ * @param messages — Array of message objects with `role` and `content` string fields.
12
+ * @returns An MCP prompt response containing the provided messages.
13
+ *
14
+ * @usedBy MCP prompt handlers
3
15
  */
4
16
  export function createPromptResponse(messages) {
5
17
  return { messages };
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-response.js","sourceRoot":"","sources":["../../../src/adapters/mcp/prompt-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,oBAAoB,CAAC,QAAkD;IACrF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"prompt-response.js","sourceRoot":"","sources":["../../../src/adapters/mcp/prompt-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAkD;IACrF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC"}
@@ -1,5 +1,18 @@
1
1
  /**
2
- * MCP resource response helper.
2
+ * @name adapters/mcp/resource-response
3
+ * @description Helper for constructing MCP resource responses.
4
+ *
5
+ * @module adapters/mcp/resource-response
6
+ */
7
+ /**
8
+ * @name createResourceResponse
9
+ * @description Wraps a URI and text payload into an MCP resource response.
10
+ *
11
+ * @param uri — The resource URI to return.
12
+ * @param data — The text content to embed in the response.
13
+ * @returns An MCP resource response with `uri` and `text` fields.
14
+ *
15
+ * @usedBy MCP resource handlers
3
16
  */
4
17
  export declare function createResourceResponse(uri: string, data: string): {
5
18
  uri: string;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-response.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/resource-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE/F"}
1
+ {"version":3,"file":"resource-response.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/resource-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAE/F"}
@@ -1,5 +1,18 @@
1
1
  /**
2
- * MCP resource response helper.
2
+ * @name adapters/mcp/resource-response
3
+ * @description Helper for constructing MCP resource responses.
4
+ *
5
+ * @module adapters/mcp/resource-response
6
+ */
7
+ /**
8
+ * @name createResourceResponse
9
+ * @description Wraps a URI and text payload into an MCP resource response.
10
+ *
11
+ * @param uri — The resource URI to return.
12
+ * @param data — The text content to embed in the response.
13
+ * @returns An MCP resource response with `uri` and `text` fields.
14
+ *
15
+ * @usedBy MCP resource handlers
3
16
  */
4
17
  export function createResourceResponse(uri, data) {
5
18
  return { uri, text: data };
@@ -1 +1 @@
1
- {"version":3,"file":"resource-response.js","sourceRoot":"","sources":["../../../src/adapters/mcp/resource-response.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,IAAY;IAC9D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"resource-response.js","sourceRoot":"","sources":["../../../src/adapters/mcp/resource-response.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW,EAAE,IAAY;IAC9D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAC7B,CAAC"}
@@ -18,6 +18,14 @@ import type { SapMcpContext } from '../../core/types.js';
18
18
  type ResourceHandler = () => Promise<unknown>;
19
19
  type ResourceTemplateHandler = (uri: string, args: Record<string, unknown>) => Promise<unknown>;
20
20
  type PromptHandler = (args: Record<string, unknown>) => Promise<unknown>;
21
+ type ResourceTemplateMatch = {
22
+ args: Record<string, string>;
23
+ };
24
+ /**
25
+ * @name matchResourceTemplateUri
26
+ * @description Matches MCP resource URI templates without converting attacker-controlled text into a regular expression.
27
+ */
28
+ export declare function matchResourceTemplateUri(uriTemplate: string, resourceUri: string): ResourceTemplateMatch | undefined;
21
29
  /**
22
30
  * Associates runtime context with an MCP server so tool calls can enforce policy and key-safety guards.
23
31
  */
@@ -78,7 +86,7 @@ export declare function registerTool<TInput = unknown>(server: Server, name: str
78
86
  *
79
87
  * Registers a resource and ensures JSON-RPC handlers are set up for resources/list and resources/read
80
88
  */
81
- export declare function registerResource(server: Server, uri: string, schema: unknown, definition: {
89
+ export declare function registerResource(server: Server, uri: string, _schema: unknown, definition: {
82
90
  name: string;
83
91
  description?: string;
84
92
  mimeType?: string;
@@ -109,7 +117,7 @@ export declare function registerResource(server: Server, uri: string, schema: un
109
117
  *
110
118
  * Registers a resource template and ensures JSON-RPC handlers are set up
111
119
  */
112
- export declare function registerResourceTemplate(server: Server, uriTemplate: string, schema: unknown, definition: {
120
+ export declare function registerResourceTemplate(server: Server, uriTemplate: string, _schema: unknown, definition: {
113
121
  name: string;
114
122
  description?: string;
115
123
  mimeType?: string;
@@ -139,7 +147,7 @@ export declare function registerResourceTemplate(server: Server, uriTemplate: st
139
147
  *
140
148
  * Registers a prompt and ensures JSON-RPC handlers are set up for prompts/list and prompts/get
141
149
  */
142
- export declare function registerPrompt(server: Server, name: string, schema: unknown, definition: {
150
+ export declare function registerPrompt(server: Server, name: string, _schema: unknown, definition: {
143
151
  description: string;
144
152
  arguments?: Array<{
145
153
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-compat.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/sdk-compat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk-compat.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/sdk-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,MAAM,EACP,MAAM,oCAAoC,CAAC;AAW5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAyBzD,KAAK,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AAC9C,KAAK,uBAAuB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAChG,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAgBzE,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;AAwBF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAsDpH;AAweD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAEpF;AAsQD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAG,OAAO,EAC3C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgG7C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,OAAO,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;EA0DzB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,EACD,OAAO,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;;EAuFjC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE;IACV,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;CACJ,EACD,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;EAmEvB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,CAEzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAEjE;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAGA"}
@@ -14,6 +14,8 @@
14
14
  */
15
15
  import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListResourceTemplatesRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
16
16
  import { logger } from '../../core/logger.js';
17
+ import { isHostedAccountlessBlockedTool } from '../../payments/hosted-tool-eligibility.js';
18
+ import { classifyTool } from '../../payments/pricing.js';
17
19
  import { checkToolPermissions, privateKeyGuard } from '../../security/index.js';
18
20
  import { canonicalizeToolName } from '../../tools/tool-aliases.js';
19
21
  // Track which handlers have been registered to avoid duplicates
@@ -28,6 +30,53 @@ const executionContexts = new WeakMap();
28
30
  function withRegistrationStore(server) {
29
31
  return server;
30
32
  }
33
+ /**
34
+ * @name matchResourceTemplateUri
35
+ * @description Matches MCP resource URI templates without converting attacker-controlled text into a regular expression.
36
+ */
37
+ export function matchResourceTemplateUri(uriTemplate, resourceUri) {
38
+ const args = {};
39
+ let templateIndex = 0;
40
+ let resourceIndex = 0;
41
+ while (templateIndex < uriTemplate.length) {
42
+ const openBrace = uriTemplate.indexOf('{', templateIndex);
43
+ if (openBrace === -1) {
44
+ const literal = uriTemplate.slice(templateIndex);
45
+ return resourceUri.slice(resourceIndex) === literal ? { args } : undefined;
46
+ }
47
+ const literal = uriTemplate.slice(templateIndex, openBrace);
48
+ if (!resourceUri.startsWith(literal, resourceIndex)) {
49
+ return undefined;
50
+ }
51
+ resourceIndex += literal.length;
52
+ const closeBrace = uriTemplate.indexOf('}', openBrace + 1);
53
+ if (closeBrace === -1) {
54
+ return undefined;
55
+ }
56
+ const argName = uriTemplate.slice(openBrace + 1, closeBrace);
57
+ if (!argName) {
58
+ return undefined;
59
+ }
60
+ const nextLiteralStart = closeBrace + 1;
61
+ const nextOpenBrace = uriTemplate.indexOf('{', nextLiteralStart);
62
+ const nextLiteral = uriTemplate.slice(nextLiteralStart, nextOpenBrace === -1 ? uriTemplate.length : nextOpenBrace);
63
+ const nextSlash = resourceUri.indexOf('/', resourceIndex);
64
+ const segmentEnd = nextLiteral
65
+ ? resourceUri.indexOf(nextLiteral, resourceIndex)
66
+ : (nextSlash === -1 ? resourceUri.length : nextSlash);
67
+ if (segmentEnd === -1 || segmentEnd === resourceIndex) {
68
+ return undefined;
69
+ }
70
+ const argValue = resourceUri.slice(resourceIndex, segmentEnd);
71
+ if (argValue.includes('/')) {
72
+ return undefined;
73
+ }
74
+ args[argName] = argValue;
75
+ resourceIndex = segmentEnd;
76
+ templateIndex = closeBrace + 1;
77
+ }
78
+ return resourceIndex === resourceUri.length ? { args } : undefined;
79
+ }
31
80
  /**
32
81
  * @name isResourceReadResult
33
82
  * @description Detects handlers that already return an MCP resources/read result.
@@ -76,14 +125,34 @@ function isToolCallResult(value) {
76
125
  * @name toToolCallResult
77
126
  * @description Normalizes legacy tool handler returns and native MCP tool results.
78
127
  */
79
- function toToolCallResult(result) {
128
+ function parseSingleJsonTextContent(content) {
129
+ if (content.length !== 1 || content[0].type !== 'text' || typeof content[0].text !== 'string') {
130
+ return undefined;
131
+ }
132
+ try {
133
+ const parsed = JSON.parse(content[0].text);
134
+ return isPlainObject(parsed) ? parsed : undefined;
135
+ }
136
+ catch {
137
+ return undefined;
138
+ }
139
+ }
140
+ function toToolCallResult(result, hasExplicitOutputSchema = false) {
80
141
  if (isToolCallResult(result)) {
142
+ const inferredStructuredContent = hasExplicitOutputSchema && result.isError !== true
143
+ ? parseSingleJsonTextContent(result.content)
144
+ : undefined;
145
+ const structuredContent = result.structuredContent
146
+ ?? inferredStructuredContent
147
+ ?? (hasExplicitOutputSchema
148
+ ? undefined
149
+ : {
150
+ content: result.content,
151
+ isError: result.isError,
152
+ });
81
153
  return {
82
154
  ...result,
83
- structuredContent: result.structuredContent ?? {
84
- content: result.content,
85
- isError: result.isError,
86
- },
155
+ ...(structuredContent === undefined ? {} : { structuredContent }),
87
156
  };
88
157
  }
89
158
  const content = [
@@ -92,9 +161,12 @@ function toToolCallResult(result) {
92
161
  text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
93
162
  },
94
163
  ];
164
+ const structuredContent = hasExplicitOutputSchema
165
+ ? (isPlainObject(result) ? result : undefined)
166
+ : { content };
95
167
  return {
96
168
  content,
97
- structuredContent: { content },
169
+ ...(structuredContent === undefined ? {} : { structuredContent }),
98
170
  };
99
171
  }
100
172
  /**
@@ -216,6 +288,45 @@ function formatParameterLabel(name) {
216
288
  function inferParameterDescription(toolTitle, parameterName) {
217
289
  const lower = parameterName.toLowerCase();
218
290
  const label = formatParameterLabel(parameterName);
291
+ if (lower === 'toolname' || lower === 'tool') {
292
+ return `${label} to inspect or execute. Use the exact MCP name from tools/list; do not rewrite hyphenated names.`;
293
+ }
294
+ if (lower === 'arguments' || lower === 'args') {
295
+ return `${label} object passed to the target tool. Match the target tool schema exactly; do not include wallet/keypair secret bytes.`;
296
+ }
297
+ if (lower === 'maxpriceusd') {
298
+ return `${label} safety cap in USD for one x402 payment. Estimate with sap_estimate_tool_cost first and abort if the challenge exceeds this cap.`;
299
+ }
300
+ if (lower === 'maxtotalusd') {
301
+ return `${label} total USD safety cap for a batch x402 workflow. Abort before any call that would exceed this budget.`;
302
+ }
303
+ if (lower === 'confirmaction' || lower === 'confirm') {
304
+ return `${label} flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost.`;
305
+ }
306
+ if (lower === 'agenturi' || lower === 'metadatauri') {
307
+ return `${label} public HTTPS/IPFS/Arweave metadata URI for the SAP agent profile. Desktop file paths are invalid for on-chain metadata.`;
308
+ }
309
+ if (lower === 'x402endpoint') {
310
+ return `${label} public x402 discovery endpoint for this agent or provider, usually a .well-known/x402 URL.`;
311
+ }
312
+ if (lower === 'capabilities') {
313
+ return `${label} array describing agent/tool capabilities. Use stable IDs, protocol labels, and human-readable descriptions; validate category values before writes.`;
314
+ }
315
+ if (lower === 'protocols') {
316
+ return `${label} array of protocol identifiers such as sap, mcp, jupiter, pyth, metaplex, sns, or x402.`;
317
+ }
318
+ if (lower === 'pricing') {
319
+ return `${label} array of x402/pay.sh pricing tiers for the registered agent or tool. Amounts should be denominated explicitly in USDC smallest units when applicable.`;
320
+ }
321
+ if (lower === 'transactionbase64' || lower === 'transaction') {
322
+ return `${label} unsigned or signed transaction payload. Preview and finalize with sap_payments_finalize_transaction; never create ad-hoc signing scripts or read keypair JSON.`;
323
+ }
324
+ if (lower === 'submit') {
325
+ return `${label} flag controlling whether a locally signed transaction is submitted after preview/signing. Use submit:true only after user approval.`;
326
+ }
327
+ if (lower === 'submitviarelay' || lower === 'submitrelayurl') {
328
+ return `${label} for routing already-signed transaction bytes through the OOBE hosted relay/RPC path. The relay never receives private keys.`;
329
+ }
219
330
  if (lower.includes('wallet') || lower.includes('owner')) {
220
331
  return `${label} address used by ${toolTitle}.`;
221
332
  }
@@ -280,6 +391,11 @@ function enrichSchemaDescriptions(schema, toolTitle) {
280
391
  if (isPlainObject(enriched.items)) {
281
392
  enriched.items = enrichProperty(propertyName, enriched.items);
282
393
  }
394
+ for (const compositionKey of ['oneOf', 'anyOf', 'allOf']) {
395
+ if (Array.isArray(enriched[compositionKey])) {
396
+ enriched[compositionKey] = enriched[compositionKey].map((candidate) => (isPlainObject(candidate) ? enrichProperty(propertyName, candidate) : candidate));
397
+ }
398
+ }
283
399
  return enriched;
284
400
  };
285
401
  const properties = isPlainObject(schema.properties)
@@ -293,6 +409,103 @@ function enrichSchemaDescriptions(schema, toolTitle) {
293
409
  properties,
294
410
  };
295
411
  }
412
+ function priceHintForTier(tier) {
413
+ switch (tier) {
414
+ case 'free':
415
+ return 'free; call directly without x402';
416
+ case 'read-premium':
417
+ return 'paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively';
418
+ case 'builder':
419
+ return 'paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned';
420
+ case 'value-action':
421
+ return 'paid value-action; preview cost and transaction effects before user confirmation';
422
+ case 'batch':
423
+ return 'paid batch; enforce maxPriceUsd and maxTotalUsd caps';
424
+ default:
425
+ return 'priced by hosted x402 challenge';
426
+ }
427
+ }
428
+ function localSignerEquivalent(toolName) {
429
+ const equivalents = {
430
+ sap_register_agent: 'sap_payments_register_agent',
431
+ sap_update_agent: 'sap_payments_update_agent',
432
+ sap_sign_transaction: 'sap_payments_finalize_transaction',
433
+ };
434
+ if (equivalents[toolName])
435
+ return equivalents[toolName];
436
+ if (toolName.startsWith('sap_escrow_build_'))
437
+ return 'sap_payments_finalize_transaction';
438
+ if (toolName.startsWith('sap_sns_build_'))
439
+ return 'sap_payments_finalize_transaction';
440
+ if (toolName.startsWith('sap_x402_build_'))
441
+ return 'sap_payments_finalize_transaction';
442
+ return undefined;
443
+ }
444
+ function classifyToolIntent(toolName) {
445
+ if (toolName.startsWith('sap_payments_') || toolName === 'sap_x402_paid_call') {
446
+ return 'local non-custodial payment/signing bridge';
447
+ }
448
+ if (toolName.startsWith('sap_agent_') || toolName.startsWith('sap_runtime_') || toolName.startsWith('sap_skills_')) {
449
+ return 'agent bootstrap, routing, skills, or repair guidance';
450
+ }
451
+ if (toolName.includes('_build_') || toolName.startsWith('sap_escrow_build_') || toolName.startsWith('sap_sns_build_')) {
452
+ return 'hosted unsigned transaction builder';
453
+ }
454
+ if (toolName.includes('swap') || toolName.includes('trade') || toolName.includes('buy') || toolName.includes('sell')) {
455
+ return 'Solana value-action or trading workflow';
456
+ }
457
+ if (toolName.includes('register') || toolName.includes('update') || toolName.includes('mint') || toolName.includes('transfer')) {
458
+ return 'local-signer write workflow';
459
+ }
460
+ if (toolName.includes('list') || toolName.includes('get') || toolName.includes('fetch') || toolName.includes('discover') || toolName.includes('search')) {
461
+ return 'read/discovery workflow';
462
+ }
463
+ return 'SAP MCP tool workflow';
464
+ }
465
+ function buildToolIntentGuidance(toolName, title) {
466
+ const tier = classifyTool(toolName);
467
+ const intent = classifyToolIntent(toolName);
468
+ const localEquivalent = localSignerEquivalent(toolName);
469
+ const hostedBlocked = isHostedAccountlessBlockedTool(toolName);
470
+ const routing = hostedBlocked
471
+ ? `Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use ${localEquivalent ?? 'the local sap_payments bridge or a hosted unsigned builder'} when user signing is required.`
472
+ : toolName.startsWith('sap_payments_')
473
+ ? 'Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes.'
474
+ : localEquivalent && toolName.includes('_build_')
475
+ ? `Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with ${localEquivalent}; never create temporary signing scripts.`
476
+ : tier === 'free'
477
+ ? 'Routing: free hosted call; call directly and keep it small/exact when possible.'
478
+ : 'Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively.';
479
+ const safety = toolName.startsWith('sap_payments_') || hostedBlocked || localEquivalent
480
+ ? 'Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.'
481
+ : 'Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.';
482
+ const descriptionSuffix = [
483
+ `Intent: ${intent}.`,
484
+ `Pricing: ${priceHintForTier(tier)}.`,
485
+ routing,
486
+ safety,
487
+ ].join(' ');
488
+ return {
489
+ descriptionSuffix,
490
+ schemaDescription: `${title} input schema. ${descriptionSuffix} Use exact field names from this schema; do not guess aliases or include private key material.`,
491
+ };
492
+ }
493
+ function enrichToolDefinition(name, title, description, inputSchema) {
494
+ const guidance = buildToolIntentGuidance(name, title);
495
+ const suffix = `\n\nSAP MCP execution guidance: ${guidance.descriptionSuffix}`;
496
+ const enrichedDescription = description.includes('SAP MCP execution guidance:')
497
+ ? description
498
+ : `${description}${suffix}`;
499
+ return {
500
+ description: enrichedDescription,
501
+ inputSchema: {
502
+ ...inputSchema,
503
+ description: typeof inputSchema.description === 'string'
504
+ ? `${inputSchema.description} ${guidance.schemaDescription}`
505
+ : guidance.schemaDescription,
506
+ },
507
+ };
508
+ }
296
509
  /**
297
510
  * Associates runtime context with an MCP server so tool calls can enforce policy and key-safety guards.
298
511
  */
@@ -530,12 +743,14 @@ export function registerTool(server, name, definition, handler) {
530
743
  logger.debug('Registering tool', { name });
531
744
  const store = withRegistrationStore(server);
532
745
  const title = definition.title ?? formatToolTitle(name);
746
+ const inputSchema = enrichSchemaDescriptions(normalizeInputSchema(definition.inputSchema), title);
747
+ const enriched = enrichToolDefinition(name, title, definition.description, inputSchema);
533
748
  // Store tool definition
534
749
  const tool = {
535
750
  name,
536
751
  title,
537
- description: definition.description,
538
- inputSchema: enrichSchemaDescriptions(normalizeInputSchema(definition.inputSchema), title),
752
+ description: enriched.description,
753
+ inputSchema: enriched.inputSchema,
539
754
  outputSchema: normalizeOutputSchema(definition.outputSchema),
540
755
  annotations: {
541
756
  ...inferToolAnnotations(name, title),
@@ -545,8 +760,10 @@ export function registerTool(server, name, definition, handler) {
545
760
  // Initialize server storage if needed
546
761
  store.toolHandlers = store.toolHandlers || {};
547
762
  store.tools = store.tools || [];
763
+ store.toolHasExplicitOutputSchema = store.toolHasExplicitOutputSchema || {};
548
764
  // Store handler and tool definition
549
765
  store.toolHandlers[name] = (input) => handler(input);
766
+ store.toolHasExplicitOutputSchema[name] = definition.outputSchema !== undefined;
550
767
  store.tools.push(tool);
551
768
  // Register JSON-RPC handlers if not already done
552
769
  const registry = ensureHandlerRegistry(server);
@@ -593,7 +810,8 @@ export function registerTool(server, name, definition, handler) {
593
810
  }
594
811
  const result = await handler(args || {});
595
812
  logger.debug('Tool call completed', { tool: canonicalToolName, requestedTool: toolName });
596
- return toToolCallResult(result);
813
+ const hasExplicitOutputSchema = Boolean(withRegistrationStore(server).toolHasExplicitOutputSchema?.[canonicalToolName]);
814
+ return toToolCallResult(result, hasExplicitOutputSchema);
597
815
  }
598
816
  catch (error) {
599
817
  logger.error('Tool call failed', { tool: canonicalToolName, requestedTool: toolName, error });
@@ -610,7 +828,7 @@ export function registerTool(server, name, definition, handler) {
610
828
  *
611
829
  * Registers a resource and ensures JSON-RPC handlers are set up for resources/list and resources/read
612
830
  */
613
- export function registerResource(server, uri, schema, definition, handler) {
831
+ export function registerResource(server, uri, _schema, definition, handler) {
614
832
  logger.debug('Registering resource', { uri });
615
833
  const store = withRegistrationStore(server);
616
834
  const resource = {
@@ -664,7 +882,7 @@ export function registerResource(server, uri, schema, definition, handler) {
664
882
  *
665
883
  * Registers a resource template and ensures JSON-RPC handlers are set up
666
884
  */
667
- export function registerResourceTemplate(server, uriTemplate, schema, definition, handler) {
885
+ export function registerResourceTemplate(server, uriTemplate, _schema, definition, handler) {
668
886
  logger.debug('Registering resource template', { uriTemplate });
669
887
  const store = withRegistrationStore(server);
670
888
  const template = {
@@ -719,21 +937,10 @@ export function registerResourceTemplate(server, uriTemplate, schema, definition
719
937
  const handler = templateHandlers[tmpl.uriTemplate];
720
938
  if (!handler)
721
939
  continue;
722
- // Simple template matching: sap://memory/{agent} matches sap://memory/abc123
723
- const pattern = tmpl.uriTemplate.replace(/\{[^}]+\}/g, '([^/]+)');
724
- const regex = new RegExp(`^${pattern}$`);
725
- const match = resourceUri.match(regex);
940
+ const match = matchResourceTemplateUri(tmpl.uriTemplate, resourceUri);
726
941
  if (match) {
727
- // Extract template arguments from URI
728
- const argNames = tmpl.uriTemplate.match(/\{([^}]+)\}/g)?.map((s) => s.slice(1, -1)) || [];
729
- const args = {};
730
- match.slice(1).forEach((value, i) => {
731
- if (argNames[i]) {
732
- args[argNames[i]] = value;
733
- }
734
- });
735
942
  try {
736
- const result = await handler(resourceUri, args);
943
+ const result = await handler(resourceUri, match.args);
737
944
  return toResourceReadResult(result, resourceUri, tmpl.mimeType || 'application/json');
738
945
  }
739
946
  catch (error) {
@@ -755,7 +962,7 @@ export function registerResourceTemplate(server, uriTemplate, schema, definition
755
962
  *
756
963
  * Registers a prompt and ensures JSON-RPC handlers are set up for prompts/list and prompts/get
757
964
  */
758
- export function registerPrompt(server, name, schema, definition, handler) {
965
+ export function registerPrompt(server, name, _schema, definition, handler) {
759
966
  logger.debug('Registering prompt', { name });
760
967
  const store = withRegistrationStore(server);
761
968
  const prompt = {