@oobe-protocol-labs/sap-mcp-server 0.1.0

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 (593) hide show
  1. package/.env.example +159 -0
  2. package/CHANGELOG.md +55 -0
  3. package/LICENSE +21 -0
  4. package/README.md +223 -0
  5. package/config.example.json +64 -0
  6. package/config.schema.json +370 -0
  7. package/config.secure-example.json +100 -0
  8. package/dist/adapters/index.d.ts +6 -0
  9. package/dist/adapters/index.d.ts.map +1 -0
  10. package/dist/adapters/index.js +6 -0
  11. package/dist/adapters/index.js.map +1 -0
  12. package/dist/adapters/mcp/errors.d.ts +7 -0
  13. package/dist/adapters/mcp/errors.d.ts.map +1 -0
  14. package/dist/adapters/mcp/errors.js +10 -0
  15. package/dist/adapters/mcp/errors.js.map +1 -0
  16. package/dist/adapters/mcp/index.d.ts +8 -0
  17. package/dist/adapters/mcp/index.d.ts.map +1 -0
  18. package/dist/adapters/mcp/index.js +8 -0
  19. package/dist/adapters/mcp/index.js.map +1 -0
  20. package/dist/adapters/mcp/prompt-response.d.ts +13 -0
  21. package/dist/adapters/mcp/prompt-response.d.ts.map +1 -0
  22. package/dist/adapters/mcp/prompt-response.js +7 -0
  23. package/dist/adapters/mcp/prompt-response.js.map +1 -0
  24. package/dist/adapters/mcp/resource-response.d.ts +8 -0
  25. package/dist/adapters/mcp/resource-response.d.ts.map +1 -0
  26. package/dist/adapters/mcp/resource-response.js +7 -0
  27. package/dist/adapters/mcp/resource-response.js.map +1 -0
  28. package/dist/adapters/mcp/sdk-compat.d.ts +191 -0
  29. package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -0
  30. package/dist/adapters/mcp/sdk-compat.js +606 -0
  31. package/dist/adapters/mcp/sdk-compat.js.map +1 -0
  32. package/dist/adapters/mcp/tool-response.d.ts +32 -0
  33. package/dist/adapters/mcp/tool-response.d.ts.map +1 -0
  34. package/dist/adapters/mcp/tool-response.js +27 -0
  35. package/dist/adapters/mcp/tool-response.js.map +1 -0
  36. package/dist/adapters/solana/commitment.d.ts +9 -0
  37. package/dist/adapters/solana/commitment.d.ts.map +1 -0
  38. package/dist/adapters/solana/commitment.js +14 -0
  39. package/dist/adapters/solana/commitment.js.map +1 -0
  40. package/dist/adapters/solana/connection.d.ts +10 -0
  41. package/dist/adapters/solana/connection.d.ts.map +1 -0
  42. package/dist/adapters/solana/connection.js +13 -0
  43. package/dist/adapters/solana/connection.js.map +1 -0
  44. package/dist/adapters/solana/index.d.ts +7 -0
  45. package/dist/adapters/solana/index.d.ts.map +1 -0
  46. package/dist/adapters/solana/index.js +7 -0
  47. package/dist/adapters/solana/index.js.map +1 -0
  48. package/dist/adapters/solana/public-key.d.ts +9 -0
  49. package/dist/adapters/solana/public-key.d.ts.map +1 -0
  50. package/dist/adapters/solana/public-key.js +11 -0
  51. package/dist/adapters/solana/public-key.js.map +1 -0
  52. package/dist/cli.d.ts +29 -0
  53. package/dist/cli.d.ts.map +1 -0
  54. package/dist/cli.js +269 -0
  55. package/dist/cli.js.map +1 -0
  56. package/dist/config/defaults.d.ts +28 -0
  57. package/dist/config/defaults.d.ts.map +1 -0
  58. package/dist/config/defaults.js +28 -0
  59. package/dist/config/defaults.js.map +1 -0
  60. package/dist/config/env.d.ts +297 -0
  61. package/dist/config/env.d.ts.map +1 -0
  62. package/dist/config/env.js +563 -0
  63. package/dist/config/env.js.map +1 -0
  64. package/dist/config/index.d.ts +7 -0
  65. package/dist/config/index.d.ts.map +1 -0
  66. package/dist/config/index.js +7 -0
  67. package/dist/config/index.js.map +1 -0
  68. package/dist/config/mcp-client-injection.d.ts +113 -0
  69. package/dist/config/mcp-client-injection.d.ts.map +1 -0
  70. package/dist/config/mcp-client-injection.js +453 -0
  71. package/dist/config/mcp-client-injection.js.map +1 -0
  72. package/dist/config/paths.d.ts +37 -0
  73. package/dist/config/paths.d.ts.map +1 -0
  74. package/dist/config/paths.js +93 -0
  75. package/dist/config/paths.js.map +1 -0
  76. package/dist/config/profiles.d.ts +85 -0
  77. package/dist/config/profiles.d.ts.map +1 -0
  78. package/dist/config/profiles.js +346 -0
  79. package/dist/config/profiles.js.map +1 -0
  80. package/dist/config/schema.d.ts +9 -0
  81. package/dist/config/schema.d.ts.map +1 -0
  82. package/dist/config/schema.js +8 -0
  83. package/dist/config/schema.js.map +1 -0
  84. package/dist/config/secure-config.d.ts +607 -0
  85. package/dist/config/secure-config.d.ts.map +1 -0
  86. package/dist/config/secure-config.js +526 -0
  87. package/dist/config/secure-config.js.map +1 -0
  88. package/dist/config/setup.d.ts +42 -0
  89. package/dist/config/setup.d.ts.map +1 -0
  90. package/dist/config/setup.js +173 -0
  91. package/dist/config/setup.js.map +1 -0
  92. package/dist/config/wizard.d.ts +15 -0
  93. package/dist/config/wizard.d.ts.map +1 -0
  94. package/dist/config/wizard.js +1176 -0
  95. package/dist/config/wizard.js.map +1 -0
  96. package/dist/config-cli.d.ts +21 -0
  97. package/dist/config-cli.d.ts.map +1 -0
  98. package/dist/config-cli.js +679 -0
  99. package/dist/config-cli.js.map +1 -0
  100. package/dist/core/constants.d.ts +78 -0
  101. package/dist/core/constants.d.ts.map +1 -0
  102. package/dist/core/constants.js +78 -0
  103. package/dist/core/constants.js.map +1 -0
  104. package/dist/core/errors.d.ts +188 -0
  105. package/dist/core/errors.d.ts.map +1 -0
  106. package/dist/core/errors.js +337 -0
  107. package/dist/core/errors.js.map +1 -0
  108. package/dist/core/guards.d.ts +41 -0
  109. package/dist/core/guards.d.ts.map +1 -0
  110. package/dist/core/guards.js +93 -0
  111. package/dist/core/guards.js.map +1 -0
  112. package/dist/core/index.d.ts +11 -0
  113. package/dist/core/index.d.ts.map +1 -0
  114. package/dist/core/index.js +10 -0
  115. package/dist/core/index.js.map +1 -0
  116. package/dist/core/logger.d.ts +64 -0
  117. package/dist/core/logger.d.ts.map +1 -0
  118. package/dist/core/logger.js +159 -0
  119. package/dist/core/logger.js.map +1 -0
  120. package/dist/core/result.d.ts +49 -0
  121. package/dist/core/result.d.ts.map +1 -0
  122. package/dist/core/result.js +61 -0
  123. package/dist/core/result.js.map +1 -0
  124. package/dist/core/types.d.ts +147 -0
  125. package/dist/core/types.d.ts.map +1 -0
  126. package/dist/core/types.js +8 -0
  127. package/dist/core/types.js.map +1 -0
  128. package/dist/index.d.ts +18 -0
  129. package/dist/index.d.ts.map +1 -0
  130. package/dist/index.js +15 -0
  131. package/dist/index.js.map +1 -0
  132. package/dist/payments/http-adapter.d.ts +76 -0
  133. package/dist/payments/http-adapter.d.ts.map +1 -0
  134. package/dist/payments/http-adapter.js +126 -0
  135. package/dist/payments/http-adapter.js.map +1 -0
  136. package/dist/payments/index.d.ts +12 -0
  137. package/dist/payments/index.d.ts.map +1 -0
  138. package/dist/payments/index.js +9 -0
  139. package/dist/payments/index.js.map +1 -0
  140. package/dist/payments/json-rpc.d.ts +49 -0
  141. package/dist/payments/json-rpc.d.ts.map +1 -0
  142. package/dist/payments/json-rpc.js +53 -0
  143. package/dist/payments/json-rpc.js.map +1 -0
  144. package/dist/payments/monetization-gate.d.ts +49 -0
  145. package/dist/payments/monetization-gate.d.ts.map +1 -0
  146. package/dist/payments/monetization-gate.js +398 -0
  147. package/dist/payments/monetization-gate.js.map +1 -0
  148. package/dist/payments/oobe-facilitator-server.d.ts +71 -0
  149. package/dist/payments/oobe-facilitator-server.d.ts.map +1 -0
  150. package/dist/payments/oobe-facilitator-server.js +409 -0
  151. package/dist/payments/oobe-facilitator-server.js.map +1 -0
  152. package/dist/payments/pay-sh-spec.d.ts +44 -0
  153. package/dist/payments/pay-sh-spec.d.ts.map +1 -0
  154. package/dist/payments/pay-sh-spec.js +218 -0
  155. package/dist/payments/pay-sh-spec.js.map +1 -0
  156. package/dist/payments/pricing.d.ts +60 -0
  157. package/dist/payments/pricing.d.ts.map +1 -0
  158. package/dist/payments/pricing.js +272 -0
  159. package/dist/payments/pricing.js.map +1 -0
  160. package/dist/payments/usage-ledger.d.ts +84 -0
  161. package/dist/payments/usage-ledger.d.ts.map +1 -0
  162. package/dist/payments/usage-ledger.js +126 -0
  163. package/dist/payments/usage-ledger.js.map +1 -0
  164. package/dist/policy/bento-policy-engine.d.ts +71 -0
  165. package/dist/policy/bento-policy-engine.d.ts.map +1 -0
  166. package/dist/policy/bento-policy-engine.js +218 -0
  167. package/dist/policy/bento-policy-engine.js.map +1 -0
  168. package/dist/policy/default-policies.d.ts +9 -0
  169. package/dist/policy/default-policies.d.ts.map +1 -0
  170. package/dist/policy/default-policies.js +69 -0
  171. package/dist/policy/default-policies.js.map +1 -0
  172. package/dist/policy/hybrid-policy-engine.d.ts +95 -0
  173. package/dist/policy/hybrid-policy-engine.d.ts.map +1 -0
  174. package/dist/policy/hybrid-policy-engine.js +297 -0
  175. package/dist/policy/hybrid-policy-engine.js.map +1 -0
  176. package/dist/policy/index.d.ts +10 -0
  177. package/dist/policy/index.d.ts.map +1 -0
  178. package/dist/policy/index.js +10 -0
  179. package/dist/policy/index.js.map +1 -0
  180. package/dist/policy/local-policy-engine.d.ts +119 -0
  181. package/dist/policy/local-policy-engine.d.ts.map +1 -0
  182. package/dist/policy/local-policy-engine.js +318 -0
  183. package/dist/policy/local-policy-engine.js.map +1 -0
  184. package/dist/policy/permission-checks.d.ts +19 -0
  185. package/dist/policy/permission-checks.d.ts.map +1 -0
  186. package/dist/policy/permission-checks.js +60 -0
  187. package/dist/policy/permission-checks.js.map +1 -0
  188. package/dist/policy/policy-engine.d.ts +57 -0
  189. package/dist/policy/policy-engine.d.ts.map +1 -0
  190. package/dist/policy/policy-engine.js +162 -0
  191. package/dist/policy/policy-engine.js.map +1 -0
  192. package/dist/policy/policy-types.d.ts +46 -0
  193. package/dist/policy/policy-types.d.ts.map +1 -0
  194. package/dist/policy/policy-types.js +5 -0
  195. package/dist/policy/policy-types.js.map +1 -0
  196. package/dist/policy/risk-level.d.ts +18 -0
  197. package/dist/policy/risk-level.d.ts.map +1 -0
  198. package/dist/policy/risk-level.js +46 -0
  199. package/dist/policy/risk-level.js.map +1 -0
  200. package/dist/policy/spending-limits.d.ts +17 -0
  201. package/dist/policy/spending-limits.d.ts.map +1 -0
  202. package/dist/policy/spending-limits.js +40 -0
  203. package/dist/policy/spending-limits.js.map +1 -0
  204. package/dist/prompts/context/sap-agent-context.prompt.d.ts +64 -0
  205. package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -0
  206. package/dist/prompts/context/sap-agent-context.prompt.js +336 -0
  207. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -0
  208. package/dist/prompts/developer/debug-sap-error.prompt.d.ts +13 -0
  209. package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -0
  210. package/dist/prompts/developer/debug-sap-error.prompt.js +78 -0
  211. package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -0
  212. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +13 -0
  213. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -0
  214. package/dist/prompts/developer/generate-sap-integration.prompt.js +132 -0
  215. package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -0
  216. package/dist/prompts/developer/index.d.ts +6 -0
  217. package/dist/prompts/developer/index.d.ts.map +1 -0
  218. package/dist/prompts/developer/index.js +6 -0
  219. package/dist/prompts/developer/index.js.map +1 -0
  220. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +13 -0
  221. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -0
  222. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +97 -0
  223. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -0
  224. package/dist/prompts/execution-proof/index.d.ts +6 -0
  225. package/dist/prompts/execution-proof/index.d.ts.map +1 -0
  226. package/dist/prompts/execution-proof/index.js +6 -0
  227. package/dist/prompts/execution-proof/index.js.map +1 -0
  228. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +13 -0
  229. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -0
  230. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +95 -0
  231. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -0
  232. package/dist/prompts/index.d.ts +5 -0
  233. package/dist/prompts/index.d.ts.map +1 -0
  234. package/dist/prompts/index.js +5 -0
  235. package/dist/prompts/index.js.map +1 -0
  236. package/dist/prompts/payments/create-paid-api.prompt.d.ts +13 -0
  237. package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -0
  238. package/dist/prompts/payments/create-paid-api.prompt.js +142 -0
  239. package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -0
  240. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +13 -0
  241. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -0
  242. package/dist/prompts/payments/explain-x402-settlement.prompt.js +83 -0
  243. package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -0
  244. package/dist/prompts/payments/index.d.ts +6 -0
  245. package/dist/prompts/payments/index.d.ts.map +1 -0
  246. package/dist/prompts/payments/index.js +6 -0
  247. package/dist/prompts/payments/index.js.map +1 -0
  248. package/dist/prompts/register-prompts.d.ts +10 -0
  249. package/dist/prompts/register-prompts.d.ts.map +1 -0
  250. package/dist/prompts/register-prompts.js +40 -0
  251. package/dist/prompts/register-prompts.js.map +1 -0
  252. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +13 -0
  253. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -0
  254. package/dist/prompts/registry/analyze-sap-agent.prompt.js +85 -0
  255. package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -0
  256. package/dist/prompts/registry/index.d.ts +6 -0
  257. package/dist/prompts/registry/index.d.ts.map +1 -0
  258. package/dist/prompts/registry/index.js +6 -0
  259. package/dist/prompts/registry/index.js.map +1 -0
  260. package/dist/prompts/registry/register-sap-agent.prompt.d.ts +13 -0
  261. package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -0
  262. package/dist/prompts/registry/register-sap-agent.prompt.js +152 -0
  263. package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -0
  264. package/dist/remote/auth/index.d.ts +86 -0
  265. package/dist/remote/auth/index.d.ts.map +1 -0
  266. package/dist/remote/auth/index.js +152 -0
  267. package/dist/remote/auth/index.js.map +1 -0
  268. package/dist/remote/server.d.ts +140 -0
  269. package/dist/remote/server.d.ts.map +1 -0
  270. package/dist/remote/server.js +412 -0
  271. package/dist/remote/server.js.map +1 -0
  272. package/dist/resources/current/sap-current-config.resource.d.ts +30 -0
  273. package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -0
  274. package/dist/resources/current/sap-current-config.resource.js +142 -0
  275. package/dist/resources/current/sap-current-config.resource.js.map +1 -0
  276. package/dist/resources/execution-proof/index.d.ts +5 -0
  277. package/dist/resources/execution-proof/index.d.ts.map +1 -0
  278. package/dist/resources/execution-proof/index.js +5 -0
  279. package/dist/resources/execution-proof/index.js.map +1 -0
  280. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +13 -0
  281. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -0
  282. package/dist/resources/execution-proof/sap-execution-record.resource.js +75 -0
  283. package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -0
  284. package/dist/resources/index.d.ts +5 -0
  285. package/dist/resources/index.d.ts.map +1 -0
  286. package/dist/resources/index.js +5 -0
  287. package/dist/resources/index.js.map +1 -0
  288. package/dist/resources/memory/index.d.ts +5 -0
  289. package/dist/resources/memory/index.d.ts.map +1 -0
  290. package/dist/resources/memory/index.js +5 -0
  291. package/dist/resources/memory/index.js.map +1 -0
  292. package/dist/resources/memory/sap-memory.resource.d.ts +13 -0
  293. package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -0
  294. package/dist/resources/memory/sap-memory.resource.js +77 -0
  295. package/dist/resources/memory/sap-memory.resource.js.map +1 -0
  296. package/dist/resources/profile/sap-active-profile.resource.d.ts +51 -0
  297. package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -0
  298. package/dist/resources/profile/sap-active-profile.resource.js +119 -0
  299. package/dist/resources/profile/sap-active-profile.resource.js.map +1 -0
  300. package/dist/resources/register-resources.d.ts +10 -0
  301. package/dist/resources/register-resources.d.ts.map +1 -0
  302. package/dist/resources/register-resources.js +33 -0
  303. package/dist/resources/register-resources.js.map +1 -0
  304. package/dist/resources/registry/index.d.ts +6 -0
  305. package/dist/resources/registry/index.d.ts.map +1 -0
  306. package/dist/resources/registry/index.js +6 -0
  307. package/dist/resources/registry/index.js.map +1 -0
  308. package/dist/resources/registry/sap-agent.resource.d.ts +13 -0
  309. package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -0
  310. package/dist/resources/registry/sap-agent.resource.js +75 -0
  311. package/dist/resources/registry/sap-agent.resource.js.map +1 -0
  312. package/dist/resources/registry/sap-global-registry.resource.d.ts +13 -0
  313. package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -0
  314. package/dist/resources/registry/sap-global-registry.resource.js +71 -0
  315. package/dist/resources/registry/sap-global-registry.resource.js.map +1 -0
  316. package/dist/resources/reputation/index.d.ts +5 -0
  317. package/dist/resources/reputation/index.d.ts.map +1 -0
  318. package/dist/resources/reputation/index.js +5 -0
  319. package/dist/resources/reputation/index.js.map +1 -0
  320. package/dist/resources/reputation/sap-reputation.resource.d.ts +13 -0
  321. package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -0
  322. package/dist/resources/reputation/sap-reputation.resource.js +75 -0
  323. package/dist/resources/reputation/sap-reputation.resource.js.map +1 -0
  324. package/dist/resources/stats/sap-network-stats.resource.d.ts +14 -0
  325. package/dist/resources/stats/sap-network-stats.resource.d.ts.map +1 -0
  326. package/dist/resources/stats/sap-network-stats.resource.js +86 -0
  327. package/dist/resources/stats/sap-network-stats.resource.js.map +1 -0
  328. package/dist/resources/tool-schema/index.d.ts +5 -0
  329. package/dist/resources/tool-schema/index.d.ts.map +1 -0
  330. package/dist/resources/tool-schema/index.js +5 -0
  331. package/dist/resources/tool-schema/index.js.map +1 -0
  332. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +13 -0
  333. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -0
  334. package/dist/resources/tool-schema/sap-tool-schema.resource.js +75 -0
  335. package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -0
  336. package/dist/sap/index.d.ts +7 -0
  337. package/dist/sap/index.d.ts.map +1 -0
  338. package/dist/sap/index.js +6 -0
  339. package/dist/sap/index.js.map +1 -0
  340. package/dist/sap/sap-client-manager.d.ts +54 -0
  341. package/dist/sap/sap-client-manager.d.ts.map +1 -0
  342. package/dist/sap/sap-client-manager.js +129 -0
  343. package/dist/sap/sap-client-manager.js.map +1 -0
  344. package/dist/sap/sap-errors.d.ts +13 -0
  345. package/dist/sap/sap-errors.d.ts.map +1 -0
  346. package/dist/sap/sap-errors.js +23 -0
  347. package/dist/sap/sap-errors.js.map +1 -0
  348. package/dist/sap/sap-types.d.ts +69 -0
  349. package/dist/sap/sap-types.d.ts.map +1 -0
  350. package/dist/sap/sap-types.js +5 -0
  351. package/dist/sap/sap-types.js.map +1 -0
  352. package/dist/schemas/common.schema.d.ts +42 -0
  353. package/dist/schemas/common.schema.d.ts.map +1 -0
  354. package/dist/schemas/common.schema.js +36 -0
  355. package/dist/schemas/common.schema.js.map +1 -0
  356. package/dist/schemas/developer.schema.d.ts +31 -0
  357. package/dist/schemas/developer.schema.d.ts.map +1 -0
  358. package/dist/schemas/developer.schema.js +19 -0
  359. package/dist/schemas/developer.schema.js.map +1 -0
  360. package/dist/schemas/execution-proof.schema.d.ts +44 -0
  361. package/dist/schemas/execution-proof.schema.d.ts.map +1 -0
  362. package/dist/schemas/execution-proof.schema.js +26 -0
  363. package/dist/schemas/execution-proof.schema.js.map +1 -0
  364. package/dist/schemas/identity.schema.d.ts +34 -0
  365. package/dist/schemas/identity.schema.d.ts.map +1 -0
  366. package/dist/schemas/identity.schema.js +21 -0
  367. package/dist/schemas/identity.schema.js.map +1 -0
  368. package/dist/schemas/index.d.ts +15 -0
  369. package/dist/schemas/index.d.ts.map +1 -0
  370. package/dist/schemas/index.js +15 -0
  371. package/dist/schemas/index.js.map +1 -0
  372. package/dist/schemas/memory.schema.d.ts +34 -0
  373. package/dist/schemas/memory.schema.d.ts.map +1 -0
  374. package/dist/schemas/memory.schema.js +21 -0
  375. package/dist/schemas/memory.schema.js.map +1 -0
  376. package/dist/schemas/payments.schema.d.ts +37 -0
  377. package/dist/schemas/payments.schema.d.ts.map +1 -0
  378. package/dist/schemas/payments.schema.js +22 -0
  379. package/dist/schemas/payments.schema.js.map +1 -0
  380. package/dist/schemas/registry.schema.d.ts +65 -0
  381. package/dist/schemas/registry.schema.d.ts.map +1 -0
  382. package/dist/schemas/registry.schema.js +34 -0
  383. package/dist/schemas/registry.schema.js.map +1 -0
  384. package/dist/schemas/reputation.schema.d.ts +31 -0
  385. package/dist/schemas/reputation.schema.d.ts.map +1 -0
  386. package/dist/schemas/reputation.schema.js +20 -0
  387. package/dist/schemas/reputation.schema.js.map +1 -0
  388. package/dist/schemas/settlement.schema.d.ts +50 -0
  389. package/dist/schemas/settlement.schema.d.ts.map +1 -0
  390. package/dist/schemas/settlement.schema.js +29 -0
  391. package/dist/schemas/settlement.schema.js.map +1 -0
  392. package/dist/schemas/tool-schema.schema.d.ts +56 -0
  393. package/dist/schemas/tool-schema.schema.d.ts.map +1 -0
  394. package/dist/schemas/tool-schema.schema.js +26 -0
  395. package/dist/schemas/tool-schema.schema.js.map +1 -0
  396. package/dist/schemas/transaction.schema.d.ts +34 -0
  397. package/dist/schemas/transaction.schema.d.ts.map +1 -0
  398. package/dist/schemas/transaction.schema.js +20 -0
  399. package/dist/schemas/transaction.schema.js.map +1 -0
  400. package/dist/security/approval-required.d.ts +9 -0
  401. package/dist/security/approval-required.d.ts.map +1 -0
  402. package/dist/security/approval-required.js +10 -0
  403. package/dist/security/approval-required.js.map +1 -0
  404. package/dist/security/index.d.ts +9 -0
  405. package/dist/security/index.d.ts.map +1 -0
  406. package/dist/security/index.js +9 -0
  407. package/dist/security/index.js.map +1 -0
  408. package/dist/security/private-key-guard.d.ts +11 -0
  409. package/dist/security/private-key-guard.d.ts.map +1 -0
  410. package/dist/security/private-key-guard.js +22 -0
  411. package/dist/security/private-key-guard.js.map +1 -0
  412. package/dist/security/prompt-injection-notes.d.ts +13 -0
  413. package/dist/security/prompt-injection-notes.d.ts.map +1 -0
  414. package/dist/security/prompt-injection-notes.js +23 -0
  415. package/dist/security/prompt-injection-notes.js.map +1 -0
  416. package/dist/security/tool-permissions.d.ts +30 -0
  417. package/dist/security/tool-permissions.d.ts.map +1 -0
  418. package/dist/security/tool-permissions.js +270 -0
  419. package/dist/security/tool-permissions.js.map +1 -0
  420. package/dist/security/unsafe-action-guard.d.ts +28 -0
  421. package/dist/security/unsafe-action-guard.d.ts.map +1 -0
  422. package/dist/security/unsafe-action-guard.js +175 -0
  423. package/dist/security/unsafe-action-guard.js.map +1 -0
  424. package/dist/server/create-server.d.ts +12 -0
  425. package/dist/server/create-server.d.ts.map +1 -0
  426. package/dist/server/create-server.js +57 -0
  427. package/dist/server/create-server.js.map +1 -0
  428. package/dist/server/index.d.ts +7 -0
  429. package/dist/server/index.d.ts.map +1 -0
  430. package/dist/server/index.js +7 -0
  431. package/dist/server/index.js.map +1 -0
  432. package/dist/server/register-capabilities.d.ts +10 -0
  433. package/dist/server/register-capabilities.d.ts.map +1 -0
  434. package/dist/server/register-capabilities.js +23 -0
  435. package/dist/server/register-capabilities.js.map +1 -0
  436. package/dist/server/server-metadata.d.ts +32 -0
  437. package/dist/server/server-metadata.d.ts.map +1 -0
  438. package/dist/server/server-metadata.js +32 -0
  439. package/dist/server/server-metadata.js.map +1 -0
  440. package/dist/session/agent-session.d.ts +25 -0
  441. package/dist/session/agent-session.d.ts.map +1 -0
  442. package/dist/session/agent-session.js +35 -0
  443. package/dist/session/agent-session.js.map +1 -0
  444. package/dist/session/delegated-session.d.ts +20 -0
  445. package/dist/session/delegated-session.d.ts.map +1 -0
  446. package/dist/session/delegated-session.js +47 -0
  447. package/dist/session/delegated-session.js.map +1 -0
  448. package/dist/session/index.d.ts +10 -0
  449. package/dist/session/index.d.ts.map +1 -0
  450. package/dist/session/index.js +9 -0
  451. package/dist/session/index.js.map +1 -0
  452. package/dist/session/redis-session-store.d.ts +89 -0
  453. package/dist/session/redis-session-store.d.ts.map +1 -0
  454. package/dist/session/redis-session-store.js +219 -0
  455. package/dist/session/redis-session-store.js.map +1 -0
  456. package/dist/session/session-limits.d.ts +20 -0
  457. package/dist/session/session-limits.d.ts.map +1 -0
  458. package/dist/session/session-limits.js +55 -0
  459. package/dist/session/session-limits.js.map +1 -0
  460. package/dist/session/session-permissions.d.ts +37 -0
  461. package/dist/session/session-permissions.d.ts.map +1 -0
  462. package/dist/session/session-permissions.js +58 -0
  463. package/dist/session/session-permissions.js.map +1 -0
  464. package/dist/session/session-store.d.ts +38 -0
  465. package/dist/session/session-store.d.ts.map +1 -0
  466. package/dist/session/session-store.js +62 -0
  467. package/dist/session/session-store.js.map +1 -0
  468. package/dist/session/session-types.d.ts +33 -0
  469. package/dist/session/session-types.d.ts.map +1 -0
  470. package/dist/session/session-types.js +5 -0
  471. package/dist/session/session-types.js.map +1 -0
  472. package/dist/signer/external-signer.d.ts +16 -0
  473. package/dist/signer/external-signer.d.ts.map +1 -0
  474. package/dist/signer/external-signer.js +128 -0
  475. package/dist/signer/external-signer.js.map +1 -0
  476. package/dist/signer/index.d.ts +9 -0
  477. package/dist/signer/index.d.ts.map +1 -0
  478. package/dist/signer/index.js +8 -0
  479. package/dist/signer/index.js.map +1 -0
  480. package/dist/signer/load-keypair.d.ts +15 -0
  481. package/dist/signer/load-keypair.d.ts.map +1 -0
  482. package/dist/signer/load-keypair.js +39 -0
  483. package/dist/signer/load-keypair.js.map +1 -0
  484. package/dist/signer/local-keypair-signer.d.ts +11 -0
  485. package/dist/signer/local-keypair-signer.d.ts.map +1 -0
  486. package/dist/signer/local-keypair-signer.js +46 -0
  487. package/dist/signer/local-keypair-signer.js.map +1 -0
  488. package/dist/signer/signer-resolver.d.ts +10 -0
  489. package/dist/signer/signer-resolver.d.ts.map +1 -0
  490. package/dist/signer/signer-resolver.js +63 -0
  491. package/dist/signer/signer-resolver.js.map +1 -0
  492. package/dist/signer/signer-types.d.ts +35 -0
  493. package/dist/signer/signer-types.d.ts.map +1 -0
  494. package/dist/signer/signer-types.js +5 -0
  495. package/dist/signer/signer-types.js.map +1 -0
  496. package/dist/signer/signing-proxy.d.ts +45 -0
  497. package/dist/signer/signing-proxy.d.ts.map +1 -0
  498. package/dist/signer/signing-proxy.js +300 -0
  499. package/dist/signer/signing-proxy.js.map +1 -0
  500. package/dist/tools/client-sdk-tools.d.ts +22 -0
  501. package/dist/tools/client-sdk-tools.d.ts.map +1 -0
  502. package/dist/tools/client-sdk-tools.js +220 -0
  503. package/dist/tools/client-sdk-tools.js.map +1 -0
  504. package/dist/tools/index.d.ts +11 -0
  505. package/dist/tools/index.d.ts.map +1 -0
  506. package/dist/tools/index.js +17 -0
  507. package/dist/tools/index.js.map +1 -0
  508. package/dist/tools/profile-tools.d.ts +12 -0
  509. package/dist/tools/profile-tools.d.ts.map +1 -0
  510. package/dist/tools/profile-tools.js +250 -0
  511. package/dist/tools/profile-tools.js.map +1 -0
  512. package/dist/tools/register-tools.d.ts +12 -0
  513. package/dist/tools/register-tools.d.ts.map +1 -0
  514. package/dist/tools/register-tools.js +36 -0
  515. package/dist/tools/register-tools.js.map +1 -0
  516. package/dist/tools/sap-network-stats.tool.d.ts +14 -0
  517. package/dist/tools/sap-network-stats.tool.d.ts.map +1 -0
  518. package/dist/tools/sap-network-stats.tool.js +101 -0
  519. package/dist/tools/sap-network-stats.tool.js.map +1 -0
  520. package/dist/tools/sap-sdk-tools.d.ts +15 -0
  521. package/dist/tools/sap-sdk-tools.d.ts.map +1 -0
  522. package/dist/tools/sap-sdk-tools.js +1515 -0
  523. package/dist/tools/sap-sdk-tools.js.map +1 -0
  524. package/dist/tools/sap-sns-tools.d.ts +35 -0
  525. package/dist/tools/sap-sns-tools.d.ts.map +1 -0
  526. package/dist/tools/sap-sns-tools.js +626 -0
  527. package/dist/tools/sap-sns-tools.js.map +1 -0
  528. package/dist/tools/skills-tools.d.ts +12 -0
  529. package/dist/tools/skills-tools.d.ts.map +1 -0
  530. package/dist/tools/skills-tools.js +273 -0
  531. package/dist/tools/skills-tools.js.map +1 -0
  532. package/dist/tools/transaction-tools.d.ts +14 -0
  533. package/dist/tools/transaction-tools.d.ts.map +1 -0
  534. package/dist/tools/transaction-tools.js +297 -0
  535. package/dist/tools/transaction-tools.js.map +1 -0
  536. package/dist/transports/http.d.ts +40 -0
  537. package/dist/transports/http.d.ts.map +1 -0
  538. package/dist/transports/http.js +212 -0
  539. package/dist/transports/http.js.map +1 -0
  540. package/dist/transports/index.d.ts +6 -0
  541. package/dist/transports/index.d.ts.map +1 -0
  542. package/dist/transports/index.js +6 -0
  543. package/dist/transports/index.js.map +1 -0
  544. package/dist/transports/stdio.d.ts +14 -0
  545. package/dist/transports/stdio.d.ts.map +1 -0
  546. package/dist/transports/stdio.js +32 -0
  547. package/dist/transports/stdio.js.map +1 -0
  548. package/dist/tui/components.d.ts +59 -0
  549. package/dist/tui/components.d.ts.map +1 -0
  550. package/dist/tui/components.js +82 -0
  551. package/dist/tui/components.js.map +1 -0
  552. package/dist/tui/config-wizard.d.ts +12 -0
  553. package/dist/tui/config-wizard.d.ts.map +1 -0
  554. package/dist/tui/config-wizard.js +348 -0
  555. package/dist/tui/config-wizard.js.map +1 -0
  556. package/dist/tui/wizard-save.d.ts +51 -0
  557. package/dist/tui/wizard-save.d.ts.map +1 -0
  558. package/dist/tui/wizard-save.js +148 -0
  559. package/dist/tui/wizard-save.js.map +1 -0
  560. package/docs/00_README.md +45 -0
  561. package/docs/01_PRODUCT_OVERVIEW.md +69 -0
  562. package/docs/02_ARCHITECTURE_AND_REQUEST_FLOW.md +120 -0
  563. package/docs/03_CONFIGURATION_AND_WIZARD.md +143 -0
  564. package/docs/04_LOCAL_STDIO_USAGE.md +118 -0
  565. package/docs/05_REMOTE_VPS_DEPLOYMENT.md +136 -0
  566. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +162 -0
  567. package/docs/07_ENDPOINTS_AND_CLIENTS.md +114 -0
  568. package/docs/08_SECURITY_POLICY_AND_SIGNING.md +134 -0
  569. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +72 -0
  570. package/docs/10_OPERATIONS_RELEASE_AND_PM2.md +90 -0
  571. package/docs/11_CODE_QUALITY_AUDIT.md +49 -0
  572. package/ecosystem.config.example.cjs +55 -0
  573. package/package.json +132 -0
  574. package/skills/README.md +146 -0
  575. package/skills/sap-agent-registry/SKILL.md +39 -0
  576. package/skills/sap-agentkit/SKILL.md +40 -0
  577. package/skills/sap-defi/SKILL.md +51 -0
  578. package/skills/sap-discovery-indexing/SKILL.md +33 -0
  579. package/skills/sap-escrow-settlement/SKILL.md +37 -0
  580. package/skills/sap-ledger-session/SKILL.md +24 -0
  581. package/skills/sap-market-data/SKILL.md +36 -0
  582. package/skills/sap-mcp/SKILL.md +202 -0
  583. package/skills/sap-mcp/TOOL_REFERENCE.md +184 -0
  584. package/skills/sap-memory-vault/SKILL.md +29 -0
  585. package/skills/sap-nft-metaplex/SKILL.md +38 -0
  586. package/skills/sap-operations/SKILL.md +97 -0
  587. package/skills/sap-payments-x402/SKILL.md +47 -0
  588. package/skills/sap-reputation-attestation/SKILL.md +30 -0
  589. package/skills/sap-sns/SKILL.md +51 -0
  590. package/skills/sap-social-gaming/SKILL.md +30 -0
  591. package/skills/sap-solana-token/SKILL.md +32 -0
  592. package/skills/sap-staking/SKILL.md +24 -0
  593. package/skills/sap-tool-registry/SKILL.md +29 -0
@@ -0,0 +1,218 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @name PayShProviderSpec
4
+ * @description Generates a pay.sh provider YAML for hosted SAP MCP monetization.
5
+ */
6
+ import { writeFileSync } from 'fs';
7
+ import { resolve } from 'path';
8
+ import { loadConfig } from '../config/env.js';
9
+ import { initLogger, logger } from '../core/logger.js';
10
+ const SOLANA_MAINNET_CAIP2 = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp';
11
+ const SOLANA_DEVNET_CAIP2 = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1';
12
+ const SOLANA_TESTNET_CAIP2 = 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z';
13
+ /**
14
+ * @name DEFAULT_PAY_SH_SPEC_OPTIONS
15
+ * @description Production defaults for OOBE Protocol's hosted SAP MCP pay.sh provider spec.
16
+ */
17
+ export const DEFAULT_PAY_SH_SPEC_OPTIONS = {
18
+ name: 'oobe-sap-mcp',
19
+ subdomain: 'oobe-sap-mcp',
20
+ title: 'OOBE SAP MCP Server',
21
+ description: 'Paid hosted MCP access for Synapse Agent Protocol tools, discovery, SNS, and Solana agent workflows.',
22
+ version: 'v1',
23
+ upstreamUrl: 'http://127.0.0.1:8787',
24
+ operatorNetwork: 'devnet',
25
+ feePayer: true,
26
+ };
27
+ /**
28
+ * @name generatePayShProviderYaml
29
+ * @description Builds a pay.sh provider YAML that proxies paid MCP requests to the SAP MCP HTTP server.
30
+ */
31
+ export function generatePayShProviderYaml(config, options = {}) {
32
+ const resolved = resolvePayShOptions(config, options);
33
+ const readPremiumUsd = formatYamlNumber(config.monetization.prices.readPremiumUsd);
34
+ const builderUsd = formatYamlNumber(config.monetization.prices.builderUsd);
35
+ const maxUsd = formatYamlNumber(config.monetization.prices.maxUsd);
36
+ const minUsd = formatYamlNumber(config.monetization.prices.minUsd);
37
+ const yaml = [
38
+ `name: ${quoteYaml(resolved.name)}`,
39
+ `subdomain: ${quoteYaml(resolved.subdomain)}`,
40
+ `title: ${quoteYaml(resolved.title)}`,
41
+ `description: ${quoteYaml(resolved.description)}`,
42
+ 'category: devtools',
43
+ `version: ${quoteYaml(resolved.version)}`,
44
+ '',
45
+ 'routing:',
46
+ ' type: proxy',
47
+ ` url: ${quoteYaml(withTrailingSlash(resolved.upstreamUrl))}`,
48
+ '',
49
+ 'operator:',
50
+ " currencies:",
51
+ " usd: ['USDC']",
52
+ ` network: ${resolved.operatorNetwork}`,
53
+ ` fee_payer: ${String(resolved.feePayer)}`,
54
+ ...(resolved.recipient ? [` recipient: ${quoteYaml(resolved.recipient)}`] : []),
55
+ ...(resolved.rpcUrl ? [` rpc_url: ${quoteYaml(resolved.rpcUrl)}`] : []),
56
+ ...(resolved.signerPath ? [` signer: { type: file, path: ${quoteYaml(resolved.signerPath)} }`] : []),
57
+ '',
58
+ 'endpoints:',
59
+ ' - method: GET',
60
+ " path: 'health'",
61
+ " description: 'Health check forwarded to the hosted SAP MCP server.'",
62
+ '',
63
+ ' - method: POST',
64
+ " path: 'mcp'",
65
+ " description: 'SAP MCP JSON-RPC endpoint. Server-side x402 pricing remains authoritative per tool call.'",
66
+ ' metering:',
67
+ ' dimensions:',
68
+ ' - direction: usage',
69
+ ' unit: requests',
70
+ ' scale: 1',
71
+ ' tiers:',
72
+ ` - price_usd: ${readPremiumUsd}`,
73
+ '',
74
+ 'notes: |',
75
+ ' The pay.sh gateway protects the outer HTTP MCP endpoint and forwards verified calls to SAP MCP.',
76
+ ` SAP MCP still performs native x402 per-tool pricing internally: free tools stay free, premium reads start at $${readPremiumUsd}, builders at $${builderUsd}, and value actions are capped between $${minUsd} and $${maxUsd}.`,
77
+ ' Validate with: pay --sandbox server start sap-mcp-pay-sh.yml --bind 127.0.0.1:1402',
78
+ '',
79
+ ];
80
+ return `${yaml.join('\n')}`;
81
+ }
82
+ /**
83
+ * @name resolvePayShOptions
84
+ * @description Resolves pay.sh YAML options from explicit overrides and the SAP MCP runtime config.
85
+ */
86
+ export function resolvePayShOptions(config, options = {}) {
87
+ return {
88
+ ...DEFAULT_PAY_SH_SPEC_OPTIONS,
89
+ operatorNetwork: resolvePayShNetwork(config),
90
+ recipient: config.monetization.payTo,
91
+ rpcUrl: config.rpcUrl,
92
+ ...options,
93
+ };
94
+ }
95
+ /**
96
+ * @name resolvePayShNetwork
97
+ * @description Maps SAP MCP RPC/network config to pay.sh operator network aliases.
98
+ */
99
+ export function resolvePayShNetwork(config) {
100
+ const network = config.monetization.network ?? config.rpcUrl;
101
+ if (network === SOLANA_MAINNET_CAIP2 || network.includes('mainnet')) {
102
+ return 'mainnet';
103
+ }
104
+ if (network === SOLANA_DEVNET_CAIP2
105
+ || network === SOLANA_TESTNET_CAIP2
106
+ || network.includes('devnet')
107
+ || network.includes('testnet')) {
108
+ return 'devnet';
109
+ }
110
+ if (network.includes('local')) {
111
+ return 'localnet';
112
+ }
113
+ return 'devnet';
114
+ }
115
+ function quoteYaml(value) {
116
+ return `'${value.replaceAll("'", "''")}'`;
117
+ }
118
+ function withTrailingSlash(value) {
119
+ return value.endsWith('/') ? value : `${value}/`;
120
+ }
121
+ function formatYamlNumber(value) {
122
+ return value.toFixed(6).replace(/0+$/, '').replace(/\.$/, '');
123
+ }
124
+ function parseCliOptions(argv) {
125
+ const parsed = { options: {} };
126
+ for (let index = 0; index < argv.length; index += 1) {
127
+ const arg = argv[index];
128
+ const value = argv[index + 1];
129
+ if (arg === '--config' && value) {
130
+ parsed.configPath = value;
131
+ index += 1;
132
+ }
133
+ else if (arg === '--out' && value) {
134
+ parsed.outputPath = value;
135
+ index += 1;
136
+ }
137
+ else if (arg === '--upstream-url' && value) {
138
+ parsed.options.upstreamUrl = value;
139
+ index += 1;
140
+ }
141
+ else if (arg === '--network' && isPayShNetwork(value)) {
142
+ parsed.options.operatorNetwork = value;
143
+ index += 1;
144
+ }
145
+ else if (arg === '--recipient' && value) {
146
+ parsed.options.recipient = value;
147
+ index += 1;
148
+ }
149
+ else if (arg === '--rpc-url' && value) {
150
+ parsed.options.rpcUrl = value;
151
+ index += 1;
152
+ }
153
+ else if (arg === '--signer-path' && value) {
154
+ parsed.options.signerPath = value;
155
+ index += 1;
156
+ }
157
+ else if (arg === '--title' && value) {
158
+ parsed.options.title = value;
159
+ index += 1;
160
+ }
161
+ else if (arg === '--subdomain' && value) {
162
+ parsed.options.subdomain = value;
163
+ parsed.options.name = value;
164
+ index += 1;
165
+ }
166
+ else if (arg === '--no-fee-payer') {
167
+ parsed.options.feePayer = false;
168
+ }
169
+ else if (arg === '--help' || arg === '-h') {
170
+ printUsage();
171
+ process.exit(0);
172
+ }
173
+ }
174
+ return parsed;
175
+ }
176
+ function isPayShNetwork(value) {
177
+ return value === 'mainnet' || value === 'devnet' || value === 'localnet';
178
+ }
179
+ function printUsage() {
180
+ process.stdout.write([
181
+ 'sap-mcp-pay-sh-spec',
182
+ '',
183
+ 'Generate a pay.sh provider YAML for hosted SAP MCP monetization.',
184
+ '',
185
+ 'Usage:',
186
+ ' npx sap-mcp-pay-sh-spec --out sap-mcp-pay-sh.yml --upstream-url https://sap.mcp.oobeprotocol.ai',
187
+ '',
188
+ 'Options:',
189
+ ' --config <path> SAP MCP profile/config JSON path',
190
+ ' --out <path> Write YAML to file instead of stdout',
191
+ ' --upstream-url <url> Hosted SAP MCP base URL',
192
+ ' --network <name> mainnet, devnet, or localnet',
193
+ ' --recipient <pubkey> Revenue wallet override',
194
+ ' --rpc-url <url> pay.sh operator RPC URL',
195
+ ' --signer-path <path> pay.sh operator signer file',
196
+ ' --subdomain <slug> pay.sh provider slug',
197
+ ' --title <text> pay.sh provider title',
198
+ ' --no-fee-payer Disable operator fee payer sponsorship',
199
+ '',
200
+ ].join('\n'));
201
+ }
202
+ if (process.argv[1]?.endsWith('pay-sh-spec.js') || process.argv[1]?.endsWith('pay-sh-spec.ts')) {
203
+ initLogger({
204
+ level: process.env.SAP_MCP_LOG_LEVEL === 'debug' ? 'debug' : 'info',
205
+ format: process.env.SAP_MCP_LOG_FORMAT === 'json' ? 'json' : 'pretty',
206
+ });
207
+ const { configPath, outputPath, options } = parseCliOptions(process.argv.slice(2));
208
+ const yaml = generatePayShProviderYaml(loadConfig(configPath), options);
209
+ if (outputPath) {
210
+ const target = resolve(outputPath);
211
+ writeFileSync(target, yaml, 'utf-8');
212
+ logger.info('pay.sh provider YAML generated', { path: target });
213
+ }
214
+ else {
215
+ process.stdout.write(yaml);
216
+ }
217
+ }
218
+ //# sourceMappingURL=pay-sh-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay-sh-spec.js","sourceRoot":"","sources":["../../src/payments/pay-sh-spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @name SapMcpPricing
3
+ * @description Pricing registry for hosted SAP MCP tool monetization.
4
+ */
5
+ import type { SapMcpMonetizationConfig } from '../config/env.js';
6
+ import type { McpToolCall, ParsedMcpRequest } from './json-rpc.js';
7
+ /**
8
+ * @name PaymentTier
9
+ * @description Commercial pricing tier for an MCP request.
10
+ */
11
+ export type PaymentTier = 'free' | 'read-premium' | 'builder' | 'value-action' | 'batch';
12
+ /**
13
+ * @name ToolPricing
14
+ * @description Resolved price classification for one tool call.
15
+ */
16
+ export interface ToolPricing {
17
+ toolName: string;
18
+ tier: PaymentTier;
19
+ priceUsd: number;
20
+ reason: string;
21
+ }
22
+ /**
23
+ * @name PaymentDecision
24
+ * @description Aggregated payment requirement for a JSON-RPC MCP request.
25
+ */
26
+ export type PaymentDecision = {
27
+ required: false;
28
+ tier: 'free';
29
+ reason: string;
30
+ toolPricings: ToolPricing[];
31
+ } | {
32
+ required: true;
33
+ tier: Exclude<PaymentTier, 'free'>;
34
+ priceUsd: number;
35
+ price: string;
36
+ description: string;
37
+ toolPricings: ToolPricing[];
38
+ toolNames: string[];
39
+ };
40
+ /**
41
+ * @name resolvePaymentDecision
42
+ * @description Calculates whether a parsed MCP request requires payment and the exact USD price.
43
+ */
44
+ export declare function resolvePaymentDecision(parsedRequest: ParsedMcpRequest, config: SapMcpMonetizationConfig): PaymentDecision;
45
+ /**
46
+ * @name priceToolCall
47
+ * @description Classifies and prices a single MCP tool invocation.
48
+ */
49
+ export declare function priceToolCall(toolCall: McpToolCall, config: SapMcpMonetizationConfig): ToolPricing;
50
+ /**
51
+ * @name classifyTool
52
+ * @description Maps a tool name to the default hosted monetization tier.
53
+ */
54
+ export declare function classifyTool(toolName: string): PaymentTier;
55
+ /**
56
+ * @name formatUsdPrice
57
+ * @description Formats a decimal USD price for x402 money parsing while preserving small prices.
58
+ */
59
+ export declare function formatUsdPrice(priceUsd: number): string;
60
+ //# sourceMappingURL=pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,cAAc,GAAG,OAAO,CAAC;AAEzF;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,QAAQ,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,GACD;IACE,QAAQ,EAAE,IAAI,CAAC;IACf,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAgHN;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,gBAAgB,EAC/B,MAAM,EAAE,wBAAwB,GAC/B,eAAe,CAqCjB;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,wBAAwB,GAC/B,WAAW,CAyCb;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CA+B1D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvD"}
@@ -0,0 +1,272 @@
1
+ /**
2
+ * @name SapMcpPricing
3
+ * @description Pricing registry for hosted SAP MCP tool monetization.
4
+ */
5
+ import { isRecord } from './json-rpc.js';
6
+ const FREE_MCP_METHODS = new Set([
7
+ 'initialize',
8
+ 'notifications/initialized',
9
+ 'ping',
10
+ 'tools/list',
11
+ 'prompts/list',
12
+ 'prompts/get',
13
+ 'resources/list',
14
+ 'resources/templates/list',
15
+ 'resources/read',
16
+ ]);
17
+ const FREE_TOOLS = new Set([
18
+ 'sap_profile_current',
19
+ 'sap_profile_list',
20
+ 'sap_profile_public_key',
21
+ 'sap_skills_list',
22
+ 'sap_skills_bundle',
23
+ 'sap_get_network_overview',
24
+ ]);
25
+ const READ_PREMIUM_TOOLS = new Set([
26
+ 'sap_list_all_agents',
27
+ 'sap_discover_agents',
28
+ 'sap_list_agents',
29
+ 'sap_network_stats',
30
+ 'sap_find_tools_by_category',
31
+ 'sap_get_tool_category_summary',
32
+ 'sap_fetch_capability_index',
33
+ 'sap_fetch_protocol_index',
34
+ 'sap_fetch_tool_category_index',
35
+ 'sap_fetch_tool',
36
+ 'sap_sns_check_domain',
37
+ 'sap_sns_resolve_domain',
38
+ 'sap_sns_resolve_wallet',
39
+ 'sap_sns_get_domain_records',
40
+ 'sap_sns_get_record',
41
+ 'sap_sns_check_ownership',
42
+ 'sap_sns_get_domain_pda',
43
+ 'sap_sns_get_record_pda',
44
+ 'sap_x402_estimate_cost',
45
+ 'sap_x402_calculate_cost',
46
+ 'sap_x402_has_escrow',
47
+ 'sap_x402_fetch_escrow',
48
+ 'sap_x402_get_balance',
49
+ 'coingecko_getTokenPrice',
50
+ ]);
51
+ const BUILDER_TOOLS = new Set([
52
+ 'sap_sns_batch_check_domains',
53
+ 'sap_sns_validate_records',
54
+ 'sap_sns_build_manage_record_transaction',
55
+ 'sap_sns_build_set_primary_domain_transaction',
56
+ 'sap_decode_transaction',
57
+ 'sap_preview_transaction',
58
+ 'sap_x402_build_payment_headers',
59
+ 'sap_x402_build_headers_from_escrow',
60
+ ]);
61
+ const VALUE_ACTION_TOOLS = new Set([
62
+ 'sap_x402_prepare_payment',
63
+ 'sap_x402_settle',
64
+ 'sap_x402_settle_batch',
65
+ ]);
66
+ const VALUE_ACTION_PREFIXES = [
67
+ 'sap_register',
68
+ 'sap_update',
69
+ 'sap_deactivate',
70
+ 'sap_reactivate',
71
+ 'sap_close',
72
+ 'sap_publish',
73
+ 'sap_create',
74
+ 'sap_fund',
75
+ 'sap_cancel',
76
+ 'sap_deposit',
77
+ 'sap_withdraw',
78
+ 'sap_settle',
79
+ 'sap_finalize',
80
+ 'sap_file',
81
+ 'sap_submit',
82
+ 'sap_sign',
83
+ 'sap_sns_register',
84
+ ];
85
+ const BUILDER_KEYWORDS = [
86
+ 'analytics',
87
+ 'batch',
88
+ 'build',
89
+ 'builder',
90
+ 'domain',
91
+ 'enriched',
92
+ 'insight',
93
+ 'quote',
94
+ 'route',
95
+ 'sns',
96
+ 'swap',
97
+ ];
98
+ const READ_PREMIUM_KEYWORDS = [
99
+ 'discover',
100
+ 'index',
101
+ 'market',
102
+ 'network',
103
+ 'overview',
104
+ 'price',
105
+ 'protocol',
106
+ 'stats',
107
+ ];
108
+ /**
109
+ * @name resolvePaymentDecision
110
+ * @description Calculates whether a parsed MCP request requires payment and the exact USD price.
111
+ */
112
+ export function resolvePaymentDecision(parsedRequest, config) {
113
+ if (parsedRequest.toolCalls.length === 0) {
114
+ const allFreeMethods = parsedRequest.methods.every(method => FREE_MCP_METHODS.has(method));
115
+ return {
116
+ required: false,
117
+ tier: 'free',
118
+ reason: allFreeMethods ? 'free MCP protocol method' : 'non-tool MCP request',
119
+ toolPricings: [],
120
+ };
121
+ }
122
+ const toolPricings = parsedRequest.toolCalls.map(toolCall => priceToolCall(toolCall, config));
123
+ const paidPricings = toolPricings.filter(pricing => pricing.tier !== 'free');
124
+ if (paidPricings.length === 0) {
125
+ return {
126
+ required: false,
127
+ tier: 'free',
128
+ reason: 'all tool calls are in the free tier',
129
+ toolPricings,
130
+ };
131
+ }
132
+ const priceUsd = clampPrice(paidPricings.reduce((sum, pricing) => sum + pricing.priceUsd, 0), config);
133
+ return {
134
+ required: true,
135
+ tier: parsedRequest.isBatch || paidPricings.length > 1 ? 'batch' : toPaidTier(paidPricings[0].tier),
136
+ priceUsd,
137
+ price: formatUsdPrice(priceUsd),
138
+ description: buildPaymentDescription(paidPricings),
139
+ toolPricings,
140
+ toolNames: paidPricings.map(pricing => pricing.toolName),
141
+ };
142
+ }
143
+ function toPaidTier(tier) {
144
+ if (tier === 'free') {
145
+ return 'read-premium';
146
+ }
147
+ return tier;
148
+ }
149
+ /**
150
+ * @name priceToolCall
151
+ * @description Classifies and prices a single MCP tool invocation.
152
+ */
153
+ export function priceToolCall(toolCall, config) {
154
+ const tier = classifyTool(toolCall.toolName);
155
+ if (tier === 'free') {
156
+ return {
157
+ toolName: toolCall.toolName,
158
+ tier,
159
+ priceUsd: 0,
160
+ reason: 'free tool',
161
+ };
162
+ }
163
+ if (tier === 'read-premium') {
164
+ return {
165
+ toolName: toolCall.toolName,
166
+ tier,
167
+ priceUsd: clampPrice(config.prices.readPremiumUsd, config),
168
+ reason: 'premium read/discovery tool',
169
+ };
170
+ }
171
+ if (tier === 'builder') {
172
+ return {
173
+ toolName: toolCall.toolName,
174
+ tier,
175
+ priceUsd: clampPrice(config.prices.builderUsd, config),
176
+ reason: 'complex builder, batch, SNS, analytics, or routing tool',
177
+ };
178
+ }
179
+ const notionalUsd = extractUsdNotional(toolCall.arguments);
180
+ const variableUsd = notionalUsd === undefined ? 0 : notionalUsd * (config.prices.valueBps / 10_000);
181
+ return {
182
+ toolName: toolCall.toolName,
183
+ tier,
184
+ priceUsd: clampPrice(config.prices.valueFixedUsd + variableUsd, config),
185
+ reason: notionalUsd === undefined
186
+ ? 'value-changing action fixed fee'
187
+ : 'value-changing action fixed fee plus configured basis-points fee',
188
+ };
189
+ }
190
+ /**
191
+ * @name classifyTool
192
+ * @description Maps a tool name to the default hosted monetization tier.
193
+ */
194
+ export function classifyTool(toolName) {
195
+ if (FREE_TOOLS.has(toolName)) {
196
+ return 'free';
197
+ }
198
+ if (READ_PREMIUM_TOOLS.has(toolName)) {
199
+ return 'read-premium';
200
+ }
201
+ if (BUILDER_TOOLS.has(toolName)) {
202
+ return 'builder';
203
+ }
204
+ if (VALUE_ACTION_TOOLS.has(toolName)) {
205
+ return 'value-action';
206
+ }
207
+ if (VALUE_ACTION_PREFIXES.some(prefix => toolName.startsWith(prefix))) {
208
+ return 'value-action';
209
+ }
210
+ const normalized = toolName.toLowerCase();
211
+ if (BUILDER_KEYWORDS.some(keyword => normalized.includes(keyword))) {
212
+ return 'builder';
213
+ }
214
+ if (READ_PREMIUM_KEYWORDS.some(keyword => normalized.includes(keyword))) {
215
+ return 'read-premium';
216
+ }
217
+ return 'read-premium';
218
+ }
219
+ /**
220
+ * @name formatUsdPrice
221
+ * @description Formats a decimal USD price for x402 money parsing while preserving small prices.
222
+ */
223
+ export function formatUsdPrice(priceUsd) {
224
+ const fixed = priceUsd.toFixed(6).replace(/0+$/, '').replace(/\.$/, '');
225
+ return `$${fixed}`;
226
+ }
227
+ function clampPrice(priceUsd, config) {
228
+ const minimum = Math.max(config.prices.minUsd, 0);
229
+ const maximum = Math.max(config.prices.maxUsd, minimum);
230
+ return Math.min(maximum, Math.max(minimum, priceUsd));
231
+ }
232
+ function buildPaymentDescription(toolPricings) {
233
+ if (toolPricings.length === 1) {
234
+ const [pricing] = toolPricings;
235
+ return `SAP MCP paid tool call: ${pricing.toolName} (${pricing.tier})`;
236
+ }
237
+ return `SAP MCP paid batch: ${toolPricings.length} tool calls`;
238
+ }
239
+ function extractUsdNotional(value, depth = 0) {
240
+ if (depth > 4 || !isRecord(value)) {
241
+ return undefined;
242
+ }
243
+ const candidateKeys = [
244
+ 'amountUsd',
245
+ 'usdAmount',
246
+ 'valueUsd',
247
+ 'usdValue',
248
+ 'notionalUsd',
249
+ 'settlementUsd',
250
+ 'paymentUsd',
251
+ ];
252
+ for (const key of candidateKeys) {
253
+ const candidate = value[key];
254
+ if (typeof candidate === 'number' && Number.isFinite(candidate) && candidate > 0) {
255
+ return candidate;
256
+ }
257
+ if (typeof candidate === 'string') {
258
+ const parsed = Number.parseFloat(candidate);
259
+ if (Number.isFinite(parsed) && parsed > 0) {
260
+ return parsed;
261
+ }
262
+ }
263
+ }
264
+ for (const nested of Object.values(value)) {
265
+ const nestedValue = extractUsdNotional(nested, depth + 1);
266
+ if (nestedValue !== undefined) {
267
+ return nestedValue;
268
+ }
269
+ }
270
+ return undefined;
271
+ }
272
+ //# sourceMappingURL=pricing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @name PaymentUsageLedger
3
+ * @description Append-only JSONL audit ledger for remote MCP payment decisions and settlements.
4
+ */
5
+ import type { SettleResponse } from '@x402/core/types';
6
+ import type { PaymentDecision } from './pricing.js';
7
+ /**
8
+ * @name PaymentLedgerEventType
9
+ * @description Supported audit event types emitted by the monetization gate.
10
+ */
11
+ export type PaymentLedgerEventType = 'payment_required' | 'payment_verified' | 'payment_settled' | 'payment_failed' | 'payment_canceled';
12
+ /**
13
+ * @name PaymentLedgerEvent
14
+ * @description Durable audit record for a monetized MCP request without storing private key material or payment payloads.
15
+ */
16
+ export interface PaymentLedgerEvent {
17
+ event: PaymentLedgerEventType;
18
+ timestamp: string;
19
+ requestHash: string;
20
+ method: string;
21
+ path: string;
22
+ toolNames: string[];
23
+ priceUsd?: number;
24
+ paymentHeaderPresent: boolean;
25
+ remoteAddress?: string;
26
+ userAgent?: string;
27
+ transaction?: string;
28
+ network?: string;
29
+ amount?: string;
30
+ payer?: string;
31
+ errorReason?: string;
32
+ errorMessage?: string;
33
+ }
34
+ /**
35
+ * @name PaymentRequestMetadata
36
+ * @description Public request metadata that is safe to persist for payment auditability.
37
+ */
38
+ export interface PaymentRequestMetadata {
39
+ requestHash: string;
40
+ method: string;
41
+ path: string;
42
+ remoteAddress?: string;
43
+ userAgent?: string;
44
+ paymentHeaderPresent: boolean;
45
+ }
46
+ /**
47
+ * @name UsageLedger
48
+ * @description Writes MCP payment events to an append-only local JSONL ledger.
49
+ */
50
+ export declare class UsageLedger {
51
+ private readonly ledgerPath;
52
+ constructor(ledgerPath?: string);
53
+ /**
54
+ * @name append
55
+ * @description Appends one payment audit event to the JSONL ledger.
56
+ */
57
+ append(event: PaymentLedgerEvent): Promise<void>;
58
+ /**
59
+ * @name recordDecision
60
+ * @description Records that a request requires payment.
61
+ */
62
+ recordDecision(metadata: PaymentRequestMetadata, decision: PaymentDecision): Promise<void>;
63
+ /**
64
+ * @name recordVerified
65
+ * @description Records that an x402 payment was accepted before handler execution.
66
+ */
67
+ recordVerified(metadata: PaymentRequestMetadata, decision: PaymentDecision): Promise<void>;
68
+ /**
69
+ * @name recordCanceled
70
+ * @description Records that a verified payment was canceled because MCP execution did not complete successfully.
71
+ */
72
+ recordCanceled(metadata: PaymentRequestMetadata, decision: PaymentDecision, reason: string, errorMessage?: string): Promise<void>;
73
+ /**
74
+ * @name recordSettlement
75
+ * @description Records successful or failed x402 settlement without storing payment payload bytes.
76
+ */
77
+ recordSettlement(metadata: PaymentRequestMetadata, decision: PaymentDecision, settlement: SettleResponse): Promise<void>;
78
+ }
79
+ /**
80
+ * @name hashRequestBody
81
+ * @description Computes a deterministic SHA-256 hash for request correlation without persisting raw arguments.
82
+ */
83
+ export declare function hashRequestBody(body: Buffer): string;
84
+ //# sourceMappingURL=usage-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-ledger.d.ts","sourceRoot":"","sources":["../../src/payments/usage-ledger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,sBAAsB,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAEjB,UAAU,SAAuD;IAIpF;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK7D;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvG;;;OAGG;IACU,cAAc,CAAC,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvG;;;OAGG;IACU,cAAc,CACzB,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC;IAqBhB;;;OAGG;IACU,gBAAgB,CAC3B,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,IAAI,CAAC;CAwBjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD"}