@oobe-protocol-labs/sap-mcp-server 0.9.15 → 0.9.20

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 (607) hide show
  1. package/.env.example +8 -7
  2. package/CHANGELOG.md +227 -0
  3. package/README.md +3 -3
  4. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
  5. package/USER_DOCS/04_CLIENT_CONFIGS.md +3 -3
  6. package/USER_DOCS/05_SKILLS_AND_TOOLS.md +16 -8
  7. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +5 -5
  8. package/config.example.json +5 -4
  9. package/config.schema.json +7 -2
  10. package/config.secure-example.json +5 -4
  11. package/dist/adapters/index.d.ts +7 -1
  12. package/dist/adapters/index.d.ts.map +1 -1
  13. package/dist/adapters/index.js +7 -1
  14. package/dist/adapters/index.js.map +1 -1
  15. package/dist/adapters/mcp/errors.d.ts +13 -1
  16. package/dist/adapters/mcp/errors.d.ts.map +1 -1
  17. package/dist/adapters/mcp/errors.js +13 -1
  18. package/dist/adapters/mcp/errors.js.map +1 -1
  19. package/dist/adapters/mcp/index.d.ts +7 -1
  20. package/dist/adapters/mcp/index.d.ts.map +1 -1
  21. package/dist/adapters/mcp/index.js +7 -1
  22. package/dist/adapters/mcp/index.js.map +1 -1
  23. package/dist/adapters/mcp/prompt-response.d.ts +13 -1
  24. package/dist/adapters/mcp/prompt-response.d.ts.map +1 -1
  25. package/dist/adapters/mcp/prompt-response.js +13 -1
  26. package/dist/adapters/mcp/prompt-response.js.map +1 -1
  27. package/dist/adapters/mcp/resource-response.d.ts +14 -1
  28. package/dist/adapters/mcp/resource-response.d.ts.map +1 -1
  29. package/dist/adapters/mcp/resource-response.js +14 -1
  30. package/dist/adapters/mcp/resource-response.js.map +1 -1
  31. package/dist/adapters/mcp/sdk-compat.d.ts +11 -3
  32. package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -1
  33. package/dist/adapters/mcp/sdk-compat.js +213 -24
  34. package/dist/adapters/mcp/sdk-compat.js.map +1 -1
  35. package/dist/adapters/mcp/tool-response.d.ts +39 -4
  36. package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
  37. package/dist/adapters/mcp/tool-response.js +39 -4
  38. package/dist/adapters/mcp/tool-response.js.map +1 -1
  39. package/dist/adapters/solana/commitment.d.ts +14 -2
  40. package/dist/adapters/solana/commitment.d.ts.map +1 -1
  41. package/dist/adapters/solana/commitment.js +14 -2
  42. package/dist/adapters/solana/commitment.js.map +1 -1
  43. package/dist/adapters/solana/connection.d.ts +11 -2
  44. package/dist/adapters/solana/connection.d.ts.map +1 -1
  45. package/dist/adapters/solana/connection.js +11 -2
  46. package/dist/adapters/solana/connection.js.map +1 -1
  47. package/dist/adapters/solana/index.d.ts +7 -1
  48. package/dist/adapters/solana/index.d.ts.map +1 -1
  49. package/dist/adapters/solana/index.js +7 -1
  50. package/dist/adapters/solana/index.js.map +1 -1
  51. package/dist/adapters/solana/public-key.d.ts +11 -2
  52. package/dist/adapters/solana/public-key.d.ts.map +1 -1
  53. package/dist/adapters/solana/public-key.js +11 -2
  54. package/dist/adapters/solana/public-key.js.map +1 -1
  55. package/dist/config/defaults.d.ts +5 -0
  56. package/dist/config/defaults.d.ts.map +1 -1
  57. package/dist/config/defaults.js +5 -0
  58. package/dist/config/defaults.js.map +1 -1
  59. package/dist/config/env.d.ts +4 -0
  60. package/dist/config/env.d.ts.map +1 -1
  61. package/dist/config/env.js +11 -6
  62. package/dist/config/env.js.map +1 -1
  63. package/dist/config/index.d.ts +5 -0
  64. package/dist/config/index.d.ts.map +1 -1
  65. package/dist/config/index.js +5 -0
  66. package/dist/config/index.js.map +1 -1
  67. package/dist/config/mcp-client-injection.d.ts.map +1 -1
  68. package/dist/config/mcp-client-injection.js +97 -1
  69. package/dist/config/mcp-client-injection.js.map +1 -1
  70. package/dist/config/paths.d.ts +5 -0
  71. package/dist/config/paths.d.ts.map +1 -1
  72. package/dist/config/paths.js +5 -0
  73. package/dist/config/paths.js.map +1 -1
  74. package/dist/config/profiles.d.ts +3 -10
  75. package/dist/config/profiles.d.ts.map +1 -1
  76. package/dist/config/profiles.js +5 -0
  77. package/dist/config/profiles.js.map +1 -1
  78. package/dist/config/schema.d.ts +5 -0
  79. package/dist/config/schema.d.ts.map +1 -1
  80. package/dist/config/schema.js +5 -0
  81. package/dist/config/schema.js.map +1 -1
  82. package/dist/config/secure-config.d.ts +5 -0
  83. package/dist/config/secure-config.d.ts.map +1 -1
  84. package/dist/config/secure-config.js +5 -0
  85. package/dist/config/secure-config.js.map +1 -1
  86. package/dist/config/setup.d.ts +5 -0
  87. package/dist/config/setup.d.ts.map +1 -1
  88. package/dist/config/setup.js +5 -0
  89. package/dist/config/setup.js.map +1 -1
  90. package/dist/config-cli.d.ts +3 -13
  91. package/dist/config-cli.d.ts.map +1 -1
  92. package/dist/config-cli.js +5 -0
  93. package/dist/config-cli.js.map +1 -1
  94. package/dist/core/constants.d.ts +25 -6
  95. package/dist/core/constants.d.ts.map +1 -1
  96. package/dist/core/constants.js +27 -8
  97. package/dist/core/constants.js.map +1 -1
  98. package/dist/core/errors.d.ts +5 -0
  99. package/dist/core/errors.d.ts.map +1 -1
  100. package/dist/core/errors.js +5 -0
  101. package/dist/core/errors.js.map +1 -1
  102. package/dist/core/guards.d.ts +5 -0
  103. package/dist/core/guards.d.ts.map +1 -1
  104. package/dist/core/guards.js +3 -1
  105. package/dist/core/guards.js.map +1 -1
  106. package/dist/core/index.d.ts +7 -1
  107. package/dist/core/index.d.ts.map +1 -1
  108. package/dist/core/index.js +7 -1
  109. package/dist/core/index.js.map +1 -1
  110. package/dist/core/logger.js +1 -1
  111. package/dist/core/logger.js.map +1 -1
  112. package/dist/core/result.d.ts +77 -9
  113. package/dist/core/result.d.ts.map +1 -1
  114. package/dist/core/result.js +68 -9
  115. package/dist/core/result.js.map +1 -1
  116. package/dist/core/types.d.ts +5 -0
  117. package/dist/core/types.d.ts.map +1 -1
  118. package/dist/core/types.js +3 -4
  119. package/dist/core/types.js.map +1 -1
  120. package/dist/index.d.ts +5 -0
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +5 -0
  123. package/dist/index.js.map +1 -1
  124. package/dist/payments/facilitator-rpc-fallback.d.ts.map +1 -1
  125. package/dist/payments/facilitator-rpc-fallback.js +95 -0
  126. package/dist/payments/facilitator-rpc-fallback.js.map +1 -1
  127. package/dist/payments/hosted-tool-eligibility.d.ts +1 -0
  128. package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -1
  129. package/dist/payments/hosted-tool-eligibility.js +1 -0
  130. package/dist/payments/hosted-tool-eligibility.js.map +1 -1
  131. package/dist/payments/mcp-session-cache.d.ts +35 -0
  132. package/dist/payments/mcp-session-cache.d.ts.map +1 -0
  133. package/dist/payments/mcp-session-cache.js +83 -0
  134. package/dist/payments/mcp-session-cache.js.map +1 -0
  135. package/dist/payments/monetization-gate.d.ts +5 -0
  136. package/dist/payments/monetization-gate.d.ts.map +1 -1
  137. package/dist/payments/monetization-gate.js +24 -1
  138. package/dist/payments/monetization-gate.js.map +1 -1
  139. package/dist/payments/pricing.d.ts +2 -0
  140. package/dist/payments/pricing.d.ts.map +1 -1
  141. package/dist/payments/pricing.js +126 -10
  142. package/dist/payments/pricing.js.map +1 -1
  143. package/dist/payments/usage-ledger.d.ts +36 -2
  144. package/dist/payments/usage-ledger.d.ts.map +1 -1
  145. package/dist/payments/usage-ledger.js +121 -4
  146. package/dist/payments/usage-ledger.js.map +1 -1
  147. package/dist/payments/x402-paid-call.d.ts +50 -0
  148. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  149. package/dist/payments/x402-paid-call.js +171 -0
  150. package/dist/payments/x402-paid-call.js.map +1 -1
  151. package/dist/policy/default-policies.d.ts +18 -2
  152. package/dist/policy/default-policies.d.ts.map +1 -1
  153. package/dist/policy/default-policies.js +18 -2
  154. package/dist/policy/default-policies.js.map +1 -1
  155. package/dist/policy/index.d.ts +6 -3
  156. package/dist/policy/index.d.ts.map +1 -1
  157. package/dist/policy/index.js +6 -3
  158. package/dist/policy/index.js.map +1 -1
  159. package/dist/policy/local-policy-engine.d.ts +71 -13
  160. package/dist/policy/local-policy-engine.d.ts.map +1 -1
  161. package/dist/policy/local-policy-engine.js +33 -11
  162. package/dist/policy/local-policy-engine.js.map +1 -1
  163. package/dist/policy/permission-checks.d.ts +29 -3
  164. package/dist/policy/permission-checks.d.ts.map +1 -1
  165. package/dist/policy/permission-checks.js +29 -3
  166. package/dist/policy/permission-checks.js.map +1 -1
  167. package/dist/policy/policy-engine.d.ts +22 -2
  168. package/dist/policy/policy-engine.d.ts.map +1 -1
  169. package/dist/policy/policy-engine.js +22 -2
  170. package/dist/policy/policy-engine.js.map +1 -1
  171. package/dist/policy/policy-types.d.ts +55 -5
  172. package/dist/policy/policy-types.d.ts.map +1 -1
  173. package/dist/policy/policy-types.js +8 -1
  174. package/dist/policy/policy-types.js.map +1 -1
  175. package/dist/policy/risk-level.d.ts +32 -3
  176. package/dist/policy/risk-level.d.ts.map +1 -1
  177. package/dist/policy/risk-level.js +32 -3
  178. package/dist/policy/risk-level.js.map +1 -1
  179. package/dist/policy/spending-limits.d.ts +29 -3
  180. package/dist/policy/spending-limits.d.ts.map +1 -1
  181. package/dist/policy/spending-limits.js +29 -3
  182. package/dist/policy/spending-limits.js.map +1 -1
  183. package/dist/premium/activation-manager.d.ts +43 -0
  184. package/dist/premium/activation-manager.d.ts.map +1 -0
  185. package/dist/premium/activation-manager.js +131 -0
  186. package/dist/premium/activation-manager.js.map +1 -0
  187. package/dist/premium/builtin-plugins.d.ts +143 -0
  188. package/dist/premium/builtin-plugins.d.ts.map +1 -0
  189. package/dist/premium/builtin-plugins.js +394 -0
  190. package/dist/premium/builtin-plugins.js.map +1 -0
  191. package/dist/premium/event-store.d.ts +61 -0
  192. package/dist/premium/event-store.d.ts.map +1 -0
  193. package/dist/premium/event-store.js +130 -0
  194. package/dist/premium/event-store.js.map +1 -0
  195. package/dist/premium/index.d.ts +54 -0
  196. package/dist/premium/index.d.ts.map +1 -0
  197. package/dist/premium/index.js +54 -0
  198. package/dist/premium/index.js.map +1 -0
  199. package/dist/premium/manifest-builder.d.ts +65 -0
  200. package/dist/premium/manifest-builder.d.ts.map +1 -0
  201. package/dist/premium/manifest-builder.js +182 -0
  202. package/dist/premium/manifest-builder.js.map +1 -0
  203. package/dist/premium/meme-radar-capabilities.d.ts +38 -0
  204. package/dist/premium/meme-radar-capabilities.d.ts.map +1 -0
  205. package/dist/premium/meme-radar-capabilities.js +306 -0
  206. package/dist/premium/meme-radar-capabilities.js.map +1 -0
  207. package/dist/premium/metrics.d.ts +27 -0
  208. package/dist/premium/metrics.d.ts.map +1 -0
  209. package/dist/premium/metrics.js +65 -0
  210. package/dist/premium/metrics.js.map +1 -0
  211. package/dist/premium/plugin-validator.d.ts +39 -0
  212. package/dist/premium/plugin-validator.d.ts.map +1 -0
  213. package/dist/premium/plugin-validator.js +325 -0
  214. package/dist/premium/plugin-validator.js.map +1 -0
  215. package/dist/premium/private-manifest-loader.d.ts +111 -0
  216. package/dist/premium/private-manifest-loader.d.ts.map +1 -0
  217. package/dist/premium/private-manifest-loader.js +285 -0
  218. package/dist/premium/private-manifest-loader.js.map +1 -0
  219. package/dist/premium/provider-bridge.d.ts +109 -0
  220. package/dist/premium/provider-bridge.d.ts.map +1 -0
  221. package/dist/premium/provider-bridge.js +239 -0
  222. package/dist/premium/provider-bridge.js.map +1 -0
  223. package/dist/premium/session-manager.d.ts +125 -0
  224. package/dist/premium/session-manager.d.ts.map +1 -0
  225. package/dist/premium/session-manager.js +337 -0
  226. package/dist/premium/session-manager.js.map +1 -0
  227. package/dist/premium/stream-broker.d.ts +98 -0
  228. package/dist/premium/stream-broker.d.ts.map +1 -0
  229. package/dist/premium/stream-broker.js +199 -0
  230. package/dist/premium/stream-broker.js.map +1 -0
  231. package/dist/premium/tech-fundamentals-capabilities.d.ts +37 -0
  232. package/dist/premium/tech-fundamentals-capabilities.d.ts.map +1 -0
  233. package/dist/premium/tech-fundamentals-capabilities.js +283 -0
  234. package/dist/premium/tech-fundamentals-capabilities.js.map +1 -0
  235. package/dist/premium/trading-capabilities.d.ts +36 -0
  236. package/dist/premium/trading-capabilities.d.ts.map +1 -0
  237. package/dist/premium/trading-capabilities.js +205 -0
  238. package/dist/premium/trading-capabilities.js.map +1 -0
  239. package/dist/premium/types.d.ts +518 -0
  240. package/dist/premium/types.d.ts.map +1 -0
  241. package/dist/premium/types.js +23 -0
  242. package/dist/premium/types.js.map +1 -0
  243. package/dist/premium/webhook-engine.d.ts +102 -0
  244. package/dist/premium/webhook-engine.d.ts.map +1 -0
  245. package/dist/premium/webhook-engine.js +382 -0
  246. package/dist/premium/webhook-engine.js.map +1 -0
  247. package/dist/prompts/context/sap-agent-context.prompt.d.ts +5 -0
  248. package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -1
  249. package/dist/prompts/context/sap-agent-context.prompt.js +2 -8
  250. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  251. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts +14 -0
  252. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts.map +1 -0
  253. package/dist/prompts/context/sap-agent-intent-router.prompt.js +155 -0
  254. package/dist/prompts/context/sap-agent-intent-router.prompt.js.map +1 -0
  255. package/dist/prompts/context/sap-agent-start.prompt.js +1 -0
  256. package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
  257. package/dist/prompts/developer/debug-sap-error.prompt.d.ts +5 -0
  258. package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -1
  259. package/dist/prompts/developer/debug-sap-error.prompt.js +3 -4
  260. package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -1
  261. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +5 -0
  262. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -1
  263. package/dist/prompts/developer/generate-sap-integration.prompt.js +3 -4
  264. package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -1
  265. package/dist/prompts/developer/index.d.ts +4 -1
  266. package/dist/prompts/developer/index.d.ts.map +1 -1
  267. package/dist/prompts/developer/index.js +4 -1
  268. package/dist/prompts/developer/index.js.map +1 -1
  269. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +5 -0
  270. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -1
  271. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +3 -4
  272. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -1
  273. package/dist/prompts/execution-proof/index.d.ts +4 -1
  274. package/dist/prompts/execution-proof/index.d.ts.map +1 -1
  275. package/dist/prompts/execution-proof/index.js +4 -1
  276. package/dist/prompts/execution-proof/index.js.map +1 -1
  277. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +5 -0
  278. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -1
  279. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +3 -4
  280. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -1
  281. package/dist/prompts/index.d.ts +4 -1
  282. package/dist/prompts/index.d.ts.map +1 -1
  283. package/dist/prompts/index.js +4 -1
  284. package/dist/prompts/index.js.map +1 -1
  285. package/dist/prompts/payments/create-paid-api.prompt.d.ts +5 -0
  286. package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -1
  287. package/dist/prompts/payments/create-paid-api.prompt.js +3 -4
  288. package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -1
  289. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +5 -0
  290. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -1
  291. package/dist/prompts/payments/explain-x402-settlement.prompt.js +3 -4
  292. package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -1
  293. package/dist/prompts/payments/index.d.ts +4 -1
  294. package/dist/prompts/payments/index.d.ts.map +1 -1
  295. package/dist/prompts/payments/index.js +4 -1
  296. package/dist/prompts/payments/index.js.map +1 -1
  297. package/dist/prompts/register-prompts.d.ts +18 -2
  298. package/dist/prompts/register-prompts.d.ts.map +1 -1
  299. package/dist/prompts/register-prompts.js +21 -3
  300. package/dist/prompts/register-prompts.js.map +1 -1
  301. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +5 -0
  302. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -1
  303. package/dist/prompts/registry/analyze-sap-agent.prompt.js +3 -4
  304. package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -1
  305. package/dist/prompts/registry/index.d.ts +4 -1
  306. package/dist/prompts/registry/index.d.ts.map +1 -1
  307. package/dist/prompts/registry/index.js +4 -1
  308. package/dist/prompts/registry/index.js.map +1 -1
  309. package/dist/prompts/registry/register-sap-agent.prompt.d.ts +5 -0
  310. package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -1
  311. package/dist/prompts/registry/register-sap-agent.prompt.js +3 -4
  312. package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
  313. package/dist/remote/premium-memory.d.ts +90 -0
  314. package/dist/remote/premium-memory.d.ts.map +1 -0
  315. package/dist/remote/premium-memory.js +161 -0
  316. package/dist/remote/premium-memory.js.map +1 -0
  317. package/dist/remote/premium-routes.d.ts +99 -0
  318. package/dist/remote/premium-routes.d.ts.map +1 -0
  319. package/dist/remote/premium-routes.js +346 -0
  320. package/dist/remote/premium-routes.js.map +1 -0
  321. package/dist/remote/public-home/sections.d.ts.map +1 -1
  322. package/dist/remote/public-home/sections.js +7 -1
  323. package/dist/remote/public-home/sections.js.map +1 -1
  324. package/dist/remote/public-home/types.d.ts +6 -0
  325. package/dist/remote/public-home/types.d.ts.map +1 -1
  326. package/dist/remote/server.d.ts +18 -0
  327. package/dist/remote/server.d.ts.map +1 -1
  328. package/dist/remote/server.js +298 -116
  329. package/dist/remote/server.js.map +1 -1
  330. package/dist/remote/tx-relay.d.ts +42 -0
  331. package/dist/remote/tx-relay.d.ts.map +1 -0
  332. package/dist/remote/tx-relay.js +118 -0
  333. package/dist/remote/tx-relay.js.map +1 -0
  334. package/dist/resources/current/sap-current-config.resource.d.ts +5 -0
  335. package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -1
  336. package/dist/resources/current/sap-current-config.resource.js +2 -5
  337. package/dist/resources/current/sap-current-config.resource.js.map +1 -1
  338. package/dist/resources/execution-proof/index.d.ts +5 -0
  339. package/dist/resources/execution-proof/index.d.ts.map +1 -1
  340. package/dist/resources/execution-proof/index.js +5 -0
  341. package/dist/resources/execution-proof/index.js.map +1 -1
  342. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +5 -0
  343. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -1
  344. package/dist/resources/execution-proof/sap-execution-record.resource.js +3 -4
  345. package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -1
  346. package/dist/resources/index.d.ts +5 -0
  347. package/dist/resources/index.d.ts.map +1 -1
  348. package/dist/resources/index.js +5 -0
  349. package/dist/resources/index.js.map +1 -1
  350. package/dist/resources/memory/index.d.ts +5 -0
  351. package/dist/resources/memory/index.d.ts.map +1 -1
  352. package/dist/resources/memory/index.js +5 -0
  353. package/dist/resources/memory/index.js.map +1 -1
  354. package/dist/resources/memory/sap-memory.resource.d.ts +5 -0
  355. package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -1
  356. package/dist/resources/memory/sap-memory.resource.js +3 -4
  357. package/dist/resources/memory/sap-memory.resource.js.map +1 -1
  358. package/dist/resources/profile/sap-active-profile.resource.d.ts +5 -0
  359. package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -1
  360. package/dist/resources/profile/sap-active-profile.resource.js +2 -5
  361. package/dist/resources/profile/sap-active-profile.resource.js.map +1 -1
  362. package/dist/resources/register-resources.d.ts +5 -0
  363. package/dist/resources/register-resources.d.ts.map +1 -1
  364. package/dist/resources/register-resources.js +3 -1
  365. package/dist/resources/register-resources.js.map +1 -1
  366. package/dist/resources/registry/index.d.ts +5 -0
  367. package/dist/resources/registry/index.d.ts.map +1 -1
  368. package/dist/resources/registry/index.js +5 -0
  369. package/dist/resources/registry/index.js.map +1 -1
  370. package/dist/resources/registry/sap-agent.resource.d.ts +5 -0
  371. package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -1
  372. package/dist/resources/registry/sap-agent.resource.js +3 -4
  373. package/dist/resources/registry/sap-agent.resource.js.map +1 -1
  374. package/dist/resources/registry/sap-global-registry.resource.d.ts +18 -4
  375. package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -1
  376. package/dist/resources/registry/sap-global-registry.resource.js +18 -4
  377. package/dist/resources/registry/sap-global-registry.resource.js.map +1 -1
  378. package/dist/resources/reputation/index.d.ts +4 -1
  379. package/dist/resources/reputation/index.d.ts.map +1 -1
  380. package/dist/resources/reputation/index.js +4 -1
  381. package/dist/resources/reputation/index.js.map +1 -1
  382. package/dist/resources/reputation/sap-reputation.resource.d.ts +18 -4
  383. package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -1
  384. package/dist/resources/reputation/sap-reputation.resource.js +18 -4
  385. package/dist/resources/reputation/sap-reputation.resource.js.map +1 -1
  386. package/dist/resources/tool-schema/index.d.ts +4 -1
  387. package/dist/resources/tool-schema/index.d.ts.map +1 -1
  388. package/dist/resources/tool-schema/index.js +4 -1
  389. package/dist/resources/tool-schema/index.js.map +1 -1
  390. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +18 -4
  391. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -1
  392. package/dist/resources/tool-schema/sap-tool-schema.resource.js +18 -4
  393. package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -1
  394. package/dist/sap/index.d.ts +7 -1
  395. package/dist/sap/index.d.ts.map +1 -1
  396. package/dist/sap/index.js +7 -1
  397. package/dist/sap/index.js.map +1 -1
  398. package/dist/sap/sap-client-manager.d.ts +80 -13
  399. package/dist/sap/sap-client-manager.d.ts.map +1 -1
  400. package/dist/sap/sap-client-manager.js +80 -13
  401. package/dist/sap/sap-client-manager.js.map +1 -1
  402. package/dist/sap/sap-errors.d.ts +22 -3
  403. package/dist/sap/sap-errors.d.ts.map +1 -1
  404. package/dist/sap/sap-errors.js +22 -3
  405. package/dist/sap/sap-errors.js.map +1 -1
  406. package/dist/sap/sap-types.d.ts +75 -6
  407. package/dist/sap/sap-types.d.ts.map +1 -1
  408. package/dist/sap/sap-types.js +11 -1
  409. package/dist/sap/sap-types.js.map +1 -1
  410. package/dist/schemas/common.schema.d.ts +45 -8
  411. package/dist/schemas/common.schema.d.ts.map +1 -1
  412. package/dist/schemas/common.schema.js +45 -8
  413. package/dist/schemas/common.schema.js.map +1 -1
  414. package/dist/schemas/developer.schema.d.ts +22 -3
  415. package/dist/schemas/developer.schema.d.ts.map +1 -1
  416. package/dist/schemas/developer.schema.js +22 -3
  417. package/dist/schemas/developer.schema.js.map +1 -1
  418. package/dist/schemas/execution-proof.schema.d.ts +29 -4
  419. package/dist/schemas/execution-proof.schema.d.ts.map +1 -1
  420. package/dist/schemas/execution-proof.schema.js +29 -4
  421. package/dist/schemas/execution-proof.schema.js.map +1 -1
  422. package/dist/schemas/identity.schema.d.ts +23 -3
  423. package/dist/schemas/identity.schema.d.ts.map +1 -1
  424. package/dist/schemas/identity.schema.js +23 -3
  425. package/dist/schemas/identity.schema.js.map +1 -1
  426. package/dist/schemas/index.d.ts +11 -1
  427. package/dist/schemas/index.d.ts.map +1 -1
  428. package/dist/schemas/index.js +11 -1
  429. package/dist/schemas/index.js.map +1 -1
  430. package/dist/schemas/memory.schema.d.ts +23 -3
  431. package/dist/schemas/memory.schema.d.ts.map +1 -1
  432. package/dist/schemas/memory.schema.js +23 -3
  433. package/dist/schemas/memory.schema.js.map +1 -1
  434. package/dist/schemas/payments.schema.d.ts +24 -3
  435. package/dist/schemas/payments.schema.d.ts.map +1 -1
  436. package/dist/schemas/payments.schema.js +24 -3
  437. package/dist/schemas/payments.schema.js.map +1 -1
  438. package/dist/schemas/registry.schema.d.ts +36 -4
  439. package/dist/schemas/registry.schema.d.ts.map +1 -1
  440. package/dist/schemas/registry.schema.js +36 -4
  441. package/dist/schemas/registry.schema.js.map +1 -1
  442. package/dist/schemas/reputation.schema.d.ts +22 -3
  443. package/dist/schemas/reputation.schema.d.ts.map +1 -1
  444. package/dist/schemas/reputation.schema.js +22 -3
  445. package/dist/schemas/reputation.schema.js.map +1 -1
  446. package/dist/schemas/settlement.schema.d.ts +31 -4
  447. package/dist/schemas/settlement.schema.d.ts.map +1 -1
  448. package/dist/schemas/settlement.schema.js +31 -4
  449. package/dist/schemas/settlement.schema.js.map +1 -1
  450. package/dist/schemas/tool-schema.schema.d.ts +29 -3
  451. package/dist/schemas/tool-schema.schema.d.ts.map +1 -1
  452. package/dist/schemas/tool-schema.schema.js +29 -3
  453. package/dist/schemas/tool-schema.schema.js.map +1 -1
  454. package/dist/schemas/transaction.schema.d.ts +23 -3
  455. package/dist/schemas/transaction.schema.d.ts.map +1 -1
  456. package/dist/schemas/transaction.schema.js +23 -3
  457. package/dist/schemas/transaction.schema.js.map +1 -1
  458. package/dist/security/approval-required.d.ts +19 -2
  459. package/dist/security/approval-required.d.ts.map +1 -1
  460. package/dist/security/approval-required.js +19 -2
  461. package/dist/security/approval-required.js.map +1 -1
  462. package/dist/security/index.d.ts +7 -1
  463. package/dist/security/index.d.ts.map +1 -1
  464. package/dist/security/index.js +7 -1
  465. package/dist/security/index.js.map +1 -1
  466. package/dist/security/private-key-guard.d.ts +18 -2
  467. package/dist/security/private-key-guard.d.ts.map +1 -1
  468. package/dist/security/private-key-guard.js +19 -2
  469. package/dist/security/private-key-guard.js.map +1 -1
  470. package/dist/security/prompt-injection-notes.d.ts +10 -1
  471. package/dist/security/prompt-injection-notes.d.ts.map +1 -1
  472. package/dist/security/prompt-injection-notes.js +10 -1
  473. package/dist/security/prompt-injection-notes.js.map +1 -1
  474. package/dist/security/unsafe-action-guard.d.ts +36 -10
  475. package/dist/security/unsafe-action-guard.d.ts.map +1 -1
  476. package/dist/security/unsafe-action-guard.js +67 -15
  477. package/dist/security/unsafe-action-guard.js.map +1 -1
  478. package/dist/server/create-server.d.ts +18 -3
  479. package/dist/server/create-server.d.ts.map +1 -1
  480. package/dist/server/create-server.js +18 -3
  481. package/dist/server/create-server.js.map +1 -1
  482. package/dist/server/index.d.ts +6 -1
  483. package/dist/server/index.d.ts.map +1 -1
  484. package/dist/server/index.js +6 -1
  485. package/dist/server/index.js.map +1 -1
  486. package/dist/server/register-capabilities.d.ts +17 -2
  487. package/dist/server/register-capabilities.d.ts.map +1 -1
  488. package/dist/server/register-capabilities.js +17 -2
  489. package/dist/server/register-capabilities.js.map +1 -1
  490. package/dist/server/server-metadata.d.ts +34 -1
  491. package/dist/server/server-metadata.d.ts.map +1 -1
  492. package/dist/server/server-metadata.js +35 -2
  493. package/dist/server/server-metadata.js.map +1 -1
  494. package/dist/session/agent-session.d.ts +35 -4
  495. package/dist/session/agent-session.d.ts.map +1 -1
  496. package/dist/session/agent-session.js +35 -4
  497. package/dist/session/agent-session.js.map +1 -1
  498. package/dist/session/delegated-session.d.ts +31 -3
  499. package/dist/session/delegated-session.d.ts.map +1 -1
  500. package/dist/session/delegated-session.js +31 -3
  501. package/dist/session/delegated-session.js.map +1 -1
  502. package/dist/session/index.d.ts +7 -1
  503. package/dist/session/index.d.ts.map +1 -1
  504. package/dist/session/index.js +7 -1
  505. package/dist/session/index.js.map +1 -1
  506. package/dist/session/redis-session-store.d.ts +94 -21
  507. package/dist/session/redis-session-store.d.ts.map +1 -1
  508. package/dist/session/redis-session-store.js +87 -20
  509. package/dist/session/redis-session-store.js.map +1 -1
  510. package/dist/session/session-limits.d.ts +34 -4
  511. package/dist/session/session-limits.d.ts.map +1 -1
  512. package/dist/session/session-limits.js +34 -4
  513. package/dist/session/session-limits.js.map +1 -1
  514. package/dist/session/session-permissions.d.ts +57 -7
  515. package/dist/session/session-permissions.d.ts.map +1 -1
  516. package/dist/session/session-permissions.js +57 -7
  517. package/dist/session/session-permissions.js.map +1 -1
  518. package/dist/session/session-store.d.ts +9 -1
  519. package/dist/session/session-store.d.ts.map +1 -1
  520. package/dist/session/session-store.js +18 -3
  521. package/dist/session/session-store.js.map +1 -1
  522. package/dist/session/session-types.d.ts +33 -4
  523. package/dist/session/session-types.d.ts.map +1 -1
  524. package/dist/session/session-types.js +9 -1
  525. package/dist/session/session-types.js.map +1 -1
  526. package/dist/signer/index.d.ts +7 -1
  527. package/dist/signer/index.d.ts.map +1 -1
  528. package/dist/signer/index.js +7 -1
  529. package/dist/signer/index.js.map +1 -1
  530. package/dist/signer/load-keypair.d.ts +25 -4
  531. package/dist/signer/load-keypair.d.ts.map +1 -1
  532. package/dist/signer/load-keypair.js +25 -4
  533. package/dist/signer/load-keypair.js.map +1 -1
  534. package/dist/signer/local-keypair-signer.d.ts +16 -2
  535. package/dist/signer/local-keypair-signer.d.ts.map +1 -1
  536. package/dist/signer/local-keypair-signer.js +16 -2
  537. package/dist/signer/local-keypair-signer.js.map +1 -1
  538. package/dist/signer/signer-resolver.d.ts +19 -2
  539. package/dist/signer/signer-resolver.d.ts.map +1 -1
  540. package/dist/signer/signer-resolver.js +26 -3
  541. package/dist/signer/signer-resolver.js.map +1 -1
  542. package/dist/signer/signer-types.d.ts +47 -5
  543. package/dist/signer/signer-types.d.ts.map +1 -1
  544. package/dist/signer/signer-types.js +13 -1
  545. package/dist/signer/signer-types.js.map +1 -1
  546. package/dist/tools/agent-start-tool.d.ts.map +1 -1
  547. package/dist/tools/agent-start-tool.js +210 -2
  548. package/dist/tools/agent-start-tool.js.map +1 -1
  549. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  550. package/dist/tools/client-sdk-tools.js +27 -2
  551. package/dist/tools/client-sdk-tools.js.map +1 -1
  552. package/dist/tools/estimate-tool-cost.d.ts +13 -0
  553. package/dist/tools/estimate-tool-cost.d.ts.map +1 -0
  554. package/dist/tools/estimate-tool-cost.js +139 -0
  555. package/dist/tools/estimate-tool-cost.js.map +1 -0
  556. package/dist/tools/index.d.ts +6 -0
  557. package/dist/tools/index.d.ts.map +1 -1
  558. package/dist/tools/index.js +7 -0
  559. package/dist/tools/index.js.map +1 -1
  560. package/dist/tools/magicblock-tools.d.ts +25 -0
  561. package/dist/tools/magicblock-tools.d.ts.map +1 -1
  562. package/dist/tools/magicblock-tools.js +116 -8
  563. package/dist/tools/magicblock-tools.js.map +1 -1
  564. package/dist/tools/perp-tools.d.ts +39 -0
  565. package/dist/tools/perp-tools.d.ts.map +1 -0
  566. package/dist/tools/perp-tools.js +1110 -0
  567. package/dist/tools/perp-tools.js.map +1 -0
  568. package/dist/tools/premium-tools.d.ts +8 -0
  569. package/dist/tools/premium-tools.d.ts.map +1 -0
  570. package/dist/tools/premium-tools.js +732 -0
  571. package/dist/tools/premium-tools.js.map +1 -0
  572. package/dist/tools/register-tools.d.ts.map +1 -1
  573. package/dist/tools/register-tools.js +9 -0
  574. package/dist/tools/register-tools.js.map +1 -1
  575. package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
  576. package/dist/tools/sap-sdk-tools.js +191 -13
  577. package/dist/tools/sap-sdk-tools.js.map +1 -1
  578. package/dist/tools/x402-paid-call-tool.js +2 -2
  579. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  580. package/dist/transports/index.d.ts +6 -1
  581. package/dist/transports/index.d.ts.map +1 -1
  582. package/dist/transports/index.js +6 -1
  583. package/dist/transports/index.js.map +1 -1
  584. package/dist/transports/stdio.d.ts +17 -5
  585. package/dist/transports/stdio.d.ts.map +1 -1
  586. package/dist/transports/stdio.js +17 -5
  587. package/dist/transports/stdio.js.map +1 -1
  588. package/dist/tui/wizard-save.d.ts +88 -8
  589. package/dist/tui/wizard-save.d.ts.map +1 -1
  590. package/dist/tui/wizard-save.js +77 -8
  591. package/dist/tui/wizard-save.js.map +1 -1
  592. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +20 -4
  593. package/docs/07_ENDPOINTS_AND_CLIENTS.md +4 -1
  594. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +16 -5
  595. package/docs/14_DESKTOP_WIZARD_RELEASE.md +3 -3
  596. package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +6 -0
  597. package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
  598. package/docs/README.md +12 -0
  599. package/package.json +8 -6
  600. package/server.json +3 -3
  601. package/skills/README.md +10 -2
  602. package/skills/sap-agent-registry/SKILL.md +27 -6
  603. package/skills/sap-discovery-indexing/SKILL.md +11 -0
  604. package/skills/sap-mcp/SKILL.md +49 -16
  605. package/skills/sap-mcp/TOOL_REFERENCE.md +20 -7
  606. package/skills/sap-operations/SKILL.md +11 -0
  607. package/skills/sap-payments-x402/SKILL.md +30 -8
@@ -0,0 +1,518 @@
1
+ /**
2
+ * @name premium/types
3
+ * @description Core type definitions for the SAP MCP Premium plugin subsystem.
4
+ *
5
+ * This module is the single source of truth for every shape that flows through
6
+ * the premium layer: capability definitions, plugin manifests, pricing policies,
7
+ * delivery contracts, validation reports, and session records.
8
+ *
9
+ * @flow
10
+ * 1. `builtin-plugins.ts` and `private-manifest-loader.ts` use these types
11
+ * to construct/parse `PremiumPluginManifest` objects.
12
+ * 2. `plugin-validator.ts` validates unknown manifests against the same shapes
13
+ * and emits `PremiumValidationReport`.
14
+ * 3. `session-manager.ts` consumes `PremiumSessionRequest` and produces
15
+ * `PremiumSessionRecord` for the MCP tool layer (`premium-tools.ts`).
16
+ * 4. `manifest-builder.ts` uses these types to generate template manifests
17
+ * for custom plugin authors.
18
+ * 5. `index.ts` re-exports everything for external consumers.
19
+ *
20
+ * @module premium/types
21
+ */
22
+ /**
23
+ * @name PremiumCapabilityType
24
+ * @description The kind of paid delivery a premium capability exposes.
25
+ *
26
+ * - `stream` — Continuous low-latency event stream over MCP streamable HTTP.
27
+ * - `webhook` — Signed HTTPS callbacks delivered to a buyer-owned endpoint.
28
+ * - `tool` — Synchronous paid tool call settled per session.
29
+ *
30
+ * @usedBy `PremiumCapabilityDefinition.type`, `PremiumSessionRequest.capabilityType`
31
+ */
32
+ export type PremiumCapabilityType = 'stream' | 'webhook' | 'tool';
33
+ /**
34
+ * @name PremiumCapabilityStatus
35
+ * @description Lifecycle state of a premium capability.
36
+ *
37
+ * - `available` — Provider is configured and the capability is ready.
38
+ * - `requires-provider` — At least one env var in `providerEnv` is not set.
39
+ * - `planned` — Capability is declared but not yet operational.
40
+ *
41
+ * @usedBy `PremiumCapabilityDefinition.status`
42
+ */
43
+ export type PremiumCapabilityStatus = 'available' | 'requires-provider' | 'planned';
44
+ /**
45
+ * @name PremiumPricingTier
46
+ * @description High-level pricing tier label for catalog and billing grouping.
47
+ *
48
+ * @usedBy `PremiumPricingPolicy.tier`
49
+ */
50
+ export type PremiumPricingTier = 'premium-stream' | 'premium-webhook' | 'premium-tool';
51
+ /**
52
+ * @name PremiumPricingModel
53
+ * @description x402/pay.sh metering model — how the buyer is charged per unit.
54
+ *
55
+ * - `x402-per-open` — Charged once per stream open.
56
+ * - `x402-per-minute` — Charged per minute of stream uptime.
57
+ * - `x402-per-event` — Charged per delivered webhook event.
58
+ * - `x402-session` — Charged per tool session regardless of duration.
59
+ *
60
+ * @usedBy `PremiumPricingPolicy.model`
61
+ */
62
+ export type PremiumPricingModel = 'x402-per-open' | 'x402-per-minute' | 'x402-per-event' | 'x402-session';
63
+ /**
64
+ * @name PremiumPricingPolicy
65
+ * @description Full pricing contract for a premium capability.
66
+ *
67
+ * Binds a capability to a specific x402/pay.sh metering model, unit price,
68
+ * unit bounds, and settlement rail.
69
+ *
70
+ * @property tier — Catalog grouping label.
71
+ * @property model — Metering model determining how units are counted.
72
+ * @property unit — The billable unit (open, minute, event, session).
73
+ * @property unitPriceUsd — Price in USD per single unit.
74
+ * @property minUnits — Minimum units a buyer must purchase.
75
+ * @property maxUnits — Maximum units a buyer can purchase in one session.
76
+ * @property settlement — Settlement rail: `x402` or `pay.sh`.
77
+ *
78
+ * @usedBy `PremiumCapabilityDefinition.pricing`
79
+ */
80
+ export interface PremiumPricingPolicy {
81
+ tier: PremiumPricingTier;
82
+ model: PremiumPricingModel;
83
+ unit: 'open' | 'minute' | 'event' | 'session';
84
+ unitPriceUsd: number;
85
+ minUnits: number;
86
+ maxUnits: number;
87
+ settlement: 'x402' | 'pay.sh';
88
+ }
89
+ /**
90
+ * @name PremiumDeliveryContract
91
+ * @description Transport-level delivery guarantee for a stream or webhook capability.
92
+ *
93
+ * Declares which transport, which event ids, target latency, and replay window
94
+ * the provider commits to when delivering paid events.
95
+ *
96
+ * @property transport — MCP streamable HTTP or plain webhook HTTP.
97
+ * @property events — Exact event ids this capability can emit/deliver.
98
+ * @property latencyTargetMs — Target end-to-end latency in milliseconds.
99
+ * @property replayWindowSeconds — How long past events remain available for replay.
100
+ *
101
+ * @usedBy `PremiumCapabilityDefinition.delivery`
102
+ */
103
+ export interface PremiumDeliveryContract {
104
+ transport: 'mcp-streamable-http' | 'webhook-http';
105
+ events: string[];
106
+ latencyTargetMs: number;
107
+ replayWindowSeconds: number;
108
+ }
109
+ /**
110
+ * @name PremiumCapabilityDefinition
111
+ * @description A single paid capability inside a premium plugin manifest.
112
+ *
113
+ * Combines identity, type, human-readable docs, provider dependency,
114
+ * JSON schemas for input/output, pricing policy, and delivery contract.
115
+ *
116
+ * @property id — Unique capability id within the plugin.
117
+ * @property type — `stream`, `webhook`, or `tool`.
118
+ * @property title — Human-readable capability label.
119
+ * @property description — Agent-facing description with payment boundary.
120
+ * @property status — Lifecycle state.
121
+ * @property requiresProvider — Whether external provider env vars are needed.
122
+ * @property providerEnv — Env var names the runtime must set (never secrets).
123
+ * @property inputSchema — JSON Schema for capability input arguments.
124
+ * @property outputSchema — JSON Schema for capability output events/results.
125
+ * @property pricing — Pricing policy for x402/pay.sh metering.
126
+ * @property delivery — Delivery contract for transport guarantees.
127
+ *
128
+ * @usedBy `PremiumPluginManifest.capabilities`, `findPremiumCapability`
129
+ */
130
+ export interface PremiumCapabilityDefinition {
131
+ id: string;
132
+ type: PremiumCapabilityType;
133
+ title: string;
134
+ description: string;
135
+ status: PremiumCapabilityStatus;
136
+ requiresProvider: boolean;
137
+ providerEnv: string[];
138
+ inputSchema: Record<string, unknown>;
139
+ outputSchema: Record<string, unknown>;
140
+ pricing: PremiumPricingPolicy;
141
+ delivery: PremiumDeliveryContract;
142
+ }
143
+ /**
144
+ * @name PremiumPluginManifest
145
+ * @description Top-level manifest describing a premium plugin and its capabilities.
146
+ *
147
+ * This is the data-only contract that flows through validation, discovery,
148
+ * session planning, and the MCP tool layer. It never contains executable code
149
+ * or provider secrets.
150
+ *
151
+ * @property id — Unique plugin id (lowercase, dots/dashes allowed).
152
+ * @property version — Semver version string.
153
+ * @property title — Human-readable plugin name.
154
+ * @property description — What the plugin sells and which agents should use it.
155
+ * @property publisher — Publisher identity for registry and enterprise review.
156
+ * @property visibility — `public`, `private`, or `enterprise`.
157
+ * @property capabilities — Array of paid capability definitions.
158
+ *
159
+ * @usedBy `builtin-plugins.ts`, `private-manifest-loader.ts`, `plugin-validator.ts`, `manifest-builder.ts`
160
+ */
161
+ export interface PremiumPluginManifest {
162
+ id: string;
163
+ version: string;
164
+ title: string;
165
+ description: string;
166
+ publisher: string;
167
+ visibility: 'public' | 'private' | 'enterprise';
168
+ capabilities: PremiumCapabilityDefinition[];
169
+ }
170
+ /**
171
+ * @name PremiumValidationIssue
172
+ * @description A single validation issue found in a manifest or capability.
173
+ *
174
+ * @property path — JSON path to the offending field (e.g. `capabilities[0].pricing`).
175
+ * @property severity — `error` blocks acceptance; `warning` is informational.
176
+ * @property message — Human-readable explanation of the issue.
177
+ *
178
+ * @usedBy `PremiumValidationReport`, `plugin-validator.ts`
179
+ */
180
+ export interface PremiumValidationIssue {
181
+ path: string;
182
+ severity: 'error' | 'warning';
183
+ message: string;
184
+ }
185
+ /**
186
+ * @name PremiumValidationReport
187
+ * @description Result of validating a premium plugin manifest.
188
+ *
189
+ * @property valid — True when no error-severity issues were found.
190
+ * @property errors — All error-severity issues (empty when valid).
191
+ * @property warnings — All warning-severity issues.
192
+ *
193
+ * @usedBy `plugin-validator.ts:validatePremiumPluginManifest`, `private-manifest-loader.ts`
194
+ */
195
+ export interface PremiumValidationReport {
196
+ valid: boolean;
197
+ errors: PremiumValidationIssue[];
198
+ warnings: PremiumValidationIssue[];
199
+ }
200
+ /**
201
+ * @name PremiumSessionRequest
202
+ * @description Buyer-side request to create a premium session plan.
203
+ *
204
+ * Produced by the MCP tool layer (`premium-tools.ts`) when an agent calls
205
+ * `sap_premium_create_session_plan`.
206
+ *
207
+ * @property pluginId — Which premium plugin to activate.
208
+ * @property capabilityId — Which capability within that plugin.
209
+ * @property capabilityType — `stream`, `webhook`, or `tool`.
210
+ * @property requestedUnits — Number of billable units the buyer wants.
211
+ * @property ttlSeconds — Session validity window (clamped 60–3600).
212
+ * @property maxPriceUsd — Optional price ceiling; session rejected if exceeded.
213
+ * @property consumer — Optional consumer identity for audit trails.
214
+ *
215
+ * @usedBy `session-manager.ts:createPremiumSessionPlan`
216
+ */
217
+ export interface PremiumSessionRequest {
218
+ pluginId: string;
219
+ capabilityId: string;
220
+ capabilityType: PremiumCapabilityType;
221
+ requestedUnits: number;
222
+ ttlSeconds: number;
223
+ maxPriceUsd?: number;
224
+ consumer?: string;
225
+ }
226
+ /**
227
+ * @name PremiumSessionRecord
228
+ * @description Persistent session plan returned to the agent after creation.
229
+ *
230
+ * Extends `PremiumSessionRequest` with server-generated fields: session id,
231
+ * resolved status, provider readiness, timestamps, estimated price, and the
232
+ * next action the agent should take.
233
+ *
234
+ * @property sessionId — Server-generated unique session id (`sap-premium-<uuid>`).
235
+ * @property status — `pending_payment`, `blocked_requires_provider`, or `expired`.
236
+ * @property providerReady — Whether all `providerEnv` vars are set in the process.
237
+ * @property createdAt — ISO timestamp of session creation.
238
+ * @property expiresAt — ISO timestamp after which the session is expired.
239
+ * @property estimatedPriceUsd — Calculated price: `requestedUnits × unitPriceUsd`.
240
+ * @property nextAction — Human-readable instruction for the agent's next step.
241
+ *
242
+ * @usedBy `session-manager.ts`, `premium-tools.ts`
243
+ */
244
+ export interface PremiumSessionRecord extends PremiumSessionRequest {
245
+ sessionId: string;
246
+ status: 'pending_payment' | 'blocked_requires_provider' | 'expired' | 'active' | 'closed';
247
+ providerReady: boolean;
248
+ createdAt: string;
249
+ expiresAt: string;
250
+ estimatedPriceUsd: number;
251
+ nextAction: string;
252
+ }
253
+ /**
254
+ * @name PremiumActivationRequest
255
+ * @description Buyer request to activate a pending session plan with a payment receipt.
256
+ *
257
+ * After the buyer settles the x402/pay.sh challenge on the delivery rail, they
258
+ * call the activation endpoint with the receipt proof. The activation manager
259
+ * verifies the receipt and transitions the session from `pending_payment` to `active`.
260
+ *
261
+ * @property sessionId — The session plan id returned by `createPremiumSessionPlan`.
262
+ * @property paymentReceipt — Opaque payment receipt string from x402/pay.sh settlement.
263
+ * @property payerAddress — Optional Solana payer public key for audit binding.
264
+ * @property signature — Optional buyer signature over `sessionId` for auth.
265
+ *
266
+ * @usedBy `activation-manager.ts:activateSession`
267
+ */
268
+ export interface PremiumActivationRequest {
269
+ sessionId: string;
270
+ paymentReceipt: string;
271
+ payerAddress?: string;
272
+ signature?: string;
273
+ }
274
+ /**
275
+ * @name PremiumActivationResult
276
+ * @description Result of a session activation attempt.
277
+ *
278
+ * @property sessionId — The activated session id.
279
+ * @property status — `active` on success, or the blocking status on failure.
280
+ * @property activatedAt — ISO timestamp of activation (set when status=active).
281
+ * @property receiptBound — Whether the payment receipt was bound to the session.
282
+ * @property unitsQuota — Remaining billable units the session can deliver.
283
+ * @property reason — Human-readable explanation of the result.
284
+ *
285
+ * @usedBy `activation-manager.ts`, `premium-tools.ts`
286
+ */
287
+ export interface PremiumActivationResult {
288
+ sessionId: string;
289
+ status: 'active' | 'closed' | 'pending_payment' | 'blocked_requires_provider' | 'expired';
290
+ activatedAt: string | null;
291
+ receiptBound: boolean;
292
+ unitsQuota: number;
293
+ reason: string;
294
+ }
295
+ /**
296
+ * @name PremiumEventRecord
297
+ * @description A single delivered premium event stored for replay and idempotency.
298
+ *
299
+ * @property eventId — Stable provider event id (idempotency key).
300
+ * @property sessionId — Session that this event was delivered under.
301
+ * @property pluginId — Plugin that produced the event.
302
+ * @property capabilityId — Capability that produced the event.
303
+ * @property eventType — Event type from the capability delivery contract.
304
+ * @property observedAt — ISO timestamp when the provider observed the event.
305
+ * @property payload — Provider-specific event payload.
306
+ * @property deliveredAt — ISO timestamp when SAP MCP delivered the event to the buyer.
307
+ * @property receiptRef — Optional x402 receipt reference bound to this event.
308
+ *
309
+ * @usedBy `event-store.ts`, `stream-broker.ts`, `webhook-engine.ts`
310
+ */
311
+ export interface PremiumEventRecord {
312
+ eventId: string;
313
+ sessionId: string;
314
+ pluginId: string;
315
+ capabilityId: string;
316
+ eventType: string;
317
+ observedAt: string;
318
+ payload: Record<string, unknown>;
319
+ deliveredAt: string;
320
+ receiptRef?: string;
321
+ }
322
+ /**
323
+ * @name PremiumEventQuery
324
+ * @description Query filters for retrieving events from the event store.
325
+ *
326
+ * @property sessionId — Filter by session id.
327
+ * @property eventType — Filter by event type.
328
+ * @property since — Only events after this ISO timestamp.
329
+ * @property limit — Maximum events to return.
330
+ *
331
+ * @usedBy `event-store.ts:getEvents`
332
+ */
333
+ export interface PremiumEventQuery {
334
+ sessionId?: string;
335
+ eventType?: string;
336
+ since?: string;
337
+ limit?: number;
338
+ }
339
+ /**
340
+ * @name ProviderEvent
341
+ * @description Raw event emitted by a premium provider adapter.
342
+ *
343
+ * This is the provider-side shape before SAP MCP enriches it with session metadata.
344
+ *
345
+ * @property eventId — Stable provider event id for idempotency.
346
+ * @property eventType — Event type matching the capability delivery contract.
347
+ * @property observedAt — ISO timestamp when the provider observed the event.
348
+ * @property payload — Provider-specific event payload.
349
+ *
350
+ * @usedBy `provider-bridge.ts:PremiumProviderAdapter.subscribe`
351
+ */
352
+ export interface ProviderEvent {
353
+ eventId: string;
354
+ eventType: string;
355
+ observedAt: string;
356
+ payload: Record<string, unknown>;
357
+ }
358
+ /**
359
+ * @name ProviderHealth
360
+ * @description Health status of a premium provider adapter.
361
+ *
362
+ * @property healthy — Whether the provider is connected and emitting events.
363
+ * @property latencyMs — Round-trip latency to the provider in milliseconds.
364
+ * @property lastError — Last error message if the provider is unhealthy.
365
+ * @property lastEventAt — ISO timestamp of the last received event.
366
+ *
367
+ * @usedBy `provider-bridge.ts:PremiumProviderAdapter.health`
368
+ */
369
+ export interface ProviderHealth {
370
+ healthy: boolean;
371
+ latencyMs?: number;
372
+ lastError?: string;
373
+ lastEventAt?: string;
374
+ }
375
+ /**
376
+ * @name PremiumProviderAdapter
377
+ * @description Interface that every premium provider adapter must implement.
378
+ *
379
+ * Provider adapters live in the private subrepo (`sap-mcp-premium-private/providers/`).
380
+ * The public server loads them dynamically only when `SAP_MCP_ENABLE_PREMIUM_PLUGINS=true`
381
+ * and the corresponding env vars are configured.
382
+ *
383
+ * @method connect — Establish connection to the provider backend.
384
+ * @method subscribe — Return an async iterable of events matching the given filters.
385
+ * @method disconnect — Close the provider connection gracefully.
386
+ * @method health — Return current health status.
387
+ *
388
+ * @usedBy `provider-bridge.ts:loadProviderAdapter`
389
+ */
390
+ export interface PremiumProviderAdapter {
391
+ readonly pluginId: string;
392
+ readonly capabilityId: string;
393
+ connect(): Promise<void>;
394
+ subscribe(filters: Record<string, unknown>): AsyncIterable<ProviderEvent>;
395
+ disconnect(): Promise<void>;
396
+ health(): Promise<ProviderHealth>;
397
+ }
398
+ /**
399
+ * @name PremiumStreamSubscription
400
+ * @description Active stream subscription backed by an SSE/MCP streamable connection.
401
+ *
402
+ * @property sessionId — The activated premium session id.
403
+ * @property pluginId — Plugin producing the stream.
404
+ * @property capabilityId — Capability producing the stream.
405
+ * @property subscriptionKey — De-duplication key from the stream input schema.
406
+ * @property filters — Narrow filters applied to the provider subscription.
407
+ * @property startedAt — ISO timestamp when the stream started delivering.
408
+ * @property unitsDelivered — Number of billable units delivered so far.
409
+ * @property unitsQuota — Maximum billable units allowed by the session.
410
+ * @property active — Whether the stream is currently delivering events.
411
+ *
412
+ * @usedBy `stream-broker.ts`
413
+ */
414
+ export interface PremiumStreamSubscription {
415
+ sessionId: string;
416
+ pluginId: string;
417
+ capabilityId: string;
418
+ subscriptionKey: string;
419
+ filters: Record<string, unknown>;
420
+ startedAt: string;
421
+ unitsDelivered: number;
422
+ unitsQuota: number;
423
+ active: boolean;
424
+ }
425
+ /**
426
+ * @name PremiumWebhookSubscription
427
+ * @description Registered webhook target for signed HTTPS callback delivery.
428
+ *
429
+ * @property subscriptionId — Server-generated unique subscription id.
430
+ * @property sessionId — The activated premium session id.
431
+ * @property pluginId — Plugin producing the webhook events.
432
+ * @property capabilityId — Capability producing the webhook events.
433
+ * @property targetUrl — HTTPS endpoint owned by the buyer.
434
+ * @property events — Exact event ids to deliver.
435
+ * @property signingPublicKey — Optional buyer public key for signature verification.
436
+ * @property createdAt — ISO timestamp of registration.
437
+ * @property deliveriesAttempted — Total delivery attempts made.
438
+ * @property deliveriesSucceeded — Total successful deliveries.
439
+ * @property lastDeliveryAt — ISO timestamp of the last delivery attempt.
440
+ * @property lastDeliveryStatus — HTTP status code of the last delivery attempt.
441
+ * @property active — Whether the subscription is accepting new events.
442
+ *
443
+ * @usedBy `webhook-engine.ts`
444
+ */
445
+ export interface PremiumWebhookSubscription {
446
+ subscriptionId: string;
447
+ sessionId: string;
448
+ pluginId: string;
449
+ capabilityId: string;
450
+ targetUrl: string;
451
+ events: string[];
452
+ signingPublicKey?: string;
453
+ createdAt: string;
454
+ deliveriesAttempted: number;
455
+ deliveriesSucceeded: number;
456
+ lastDeliveryAt: string | null;
457
+ lastDeliveryStatus: number | null;
458
+ active: boolean;
459
+ }
460
+ /**
461
+ * @name PremiumWebhookDelivery
462
+ * @description Record of a single webhook delivery attempt.
463
+ *
464
+ * @property deliveryId — Idempotent delivery id.
465
+ * @property subscriptionId — The webhook subscription id.
466
+ * @property eventId — The premium event id being delivered.
467
+ * @property eventType — The event type being delivered.
468
+ * @property deliveredAt — ISO timestamp of the delivery attempt.
469
+ * @property signature — HMAC-SHA256 signature over {deliveryId, deliveredAt, payload}.
470
+ * @property httpStatus — HTTP status code from the buyer's endpoint.
471
+ * @property success — Whether the delivery was successful (2xx response).
472
+ * @property responseBody — Optional response body snippet for debugging.
473
+ * @property retryCount — Number of retry attempts for this delivery.
474
+ *
475
+ * @usedBy `webhook-engine.ts`
476
+ */
477
+ export interface PremiumWebhookDelivery {
478
+ deliveryId: string;
479
+ subscriptionId: string;
480
+ eventId: string;
481
+ eventType: string;
482
+ deliveredAt: string;
483
+ signature: string;
484
+ httpStatus: number | null;
485
+ success: boolean;
486
+ responseBody?: string;
487
+ retryCount: number;
488
+ }
489
+ /**
490
+ * @name PremiumMetricsSnapshot
491
+ * @description Point-in-time metrics for the premium subsystem.
492
+ *
493
+ * Used by the health endpoint and MCP monitoring tools.
494
+ *
495
+ * @property activeSessions — Currently active (status=active) sessions.
496
+ * @property pendingSessions — Sessions waiting for payment (status=pending_payment).
497
+ * @property blockedSessions — Sessions blocked by missing provider (status=blocked_requires_provider).
498
+ * @property totalSessionsCreated — Lifetime count of sessions created.
499
+ * @property totalEventsDelivered — Lifetime count of events delivered (streams + webhooks).
500
+ * @property totalRevenueUsd — Estimated revenue in USD (sum of activated sessions' estimatedPriceUsd).
501
+ * @property activeStreams — Currently active stream subscriptions.
502
+ * @property activeWebhooks — Currently active webhook subscriptions.
503
+ * @property providerHealth — Map of provider env var → health status.
504
+ *
505
+ * @usedBy `metrics.ts:getPremiumMetrics`, `premium-tools.ts`
506
+ */
507
+ export interface PremiumMetricsSnapshot {
508
+ activeSessions: number;
509
+ pendingSessions: number;
510
+ blockedSessions: number;
511
+ totalSessionsCreated: number;
512
+ totalEventsDelivered: number;
513
+ totalRevenueUsd: number;
514
+ activeStreams: number;
515
+ activeWebhooks: number;
516
+ providerHealth: Record<string, ProviderHealth>;
517
+ }
518
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/premium/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @name premium/types
3
+ * @description Core type definitions for the SAP MCP Premium plugin subsystem.
4
+ *
5
+ * This module is the single source of truth for every shape that flows through
6
+ * the premium layer: capability definitions, plugin manifests, pricing policies,
7
+ * delivery contracts, validation reports, and session records.
8
+ *
9
+ * @flow
10
+ * 1. `builtin-plugins.ts` and `private-manifest-loader.ts` use these types
11
+ * to construct/parse `PremiumPluginManifest` objects.
12
+ * 2. `plugin-validator.ts` validates unknown manifests against the same shapes
13
+ * and emits `PremiumValidationReport`.
14
+ * 3. `session-manager.ts` consumes `PremiumSessionRequest` and produces
15
+ * `PremiumSessionRecord` for the MCP tool layer (`premium-tools.ts`).
16
+ * 4. `manifest-builder.ts` uses these types to generate template manifests
17
+ * for custom plugin authors.
18
+ * 5. `index.ts` re-exports everything for external consumers.
19
+ *
20
+ * @module premium/types
21
+ */
22
+ export {};
23
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/premium/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @name premium/webhook-engine
3
+ * @description Signed webhook delivery engine for premium event callbacks.
4
+ *
5
+ * After a session is activated, the webhook engine registers a buyer-owned
6
+ * HTTPS endpoint, subscribes to the provider for matching events, signs each
7
+ * delivery with HMAC-SHA256, and dispatches it via HTTP POST.
8
+ *
9
+ * The engine enforces:
10
+ * - Event filtering: only delivers event ids listed in the subscription.
11
+ * - URL validation: rejects localhost, private networks, and non-HTTPS URLs.
12
+ * - Signing: HMAC-SHA256 over `{deliveryId, deliveredAt, payload}` using
13
+ * the `SAP_MCP_PREMIUM_WEBHOOK_SIGNER` env var.
14
+ * - Retry: up to 3 attempts with exponential backoff for non-2xx responses.
15
+ * - Unit quota: decrements after each successful delivery.
16
+ * - Idempotency: deduplicates via `eventId` in the event store.
17
+ *
18
+ * @flow
19
+ * 1. Buyer calls `POST /premium/webhook/register` with targetUrl + events.
20
+ * 2. → `registerWebhook()` validates URL, creates subscription.
21
+ * 3. Engine subscribes to provider, receives events matching the subscription.
22
+ * 4. For each matching event: sign, POST to targetUrl, record delivery.
23
+ * 5. Buyer can check delivery status via `getWebhookDeliveryStatus()`.
24
+ *
25
+ * @module premium/webhook-engine
26
+ */
27
+ import type { PremiumWebhookDelivery, PremiumWebhookSubscription } from './types.js';
28
+ /**
29
+ * @name registerWebhook
30
+ * @description Register a webhook subscription for an active premium session.
31
+ *
32
+ * @param sessionId - The activated premium session id.
33
+ * @param targetUrl - HTTPS endpoint owned by the buyer.
34
+ * @param events - Exact event ids to deliver.
35
+ * @param signingPublicKey - Optional buyer public key for signature verification.
36
+ * @returns The `PremiumWebhookSubscription`, or `null` if the session is not
37
+ * active or the URL is invalid.
38
+ *
39
+ * @usedBy `premium-tools.ts` → MCP tool `sap_premium_webhook_register`,
40
+ * `remote/server.ts` → `POST /premium/webhook/register`
41
+ */
42
+ export declare function registerWebhook(sessionId: string, targetUrl: string, events: string[], signingPublicKey?: string): Promise<PremiumWebhookSubscription | null>;
43
+ /**
44
+ * @name startWebhookDelivery
45
+ * @description Start the webhook delivery loop for a subscription.
46
+ *
47
+ * Subscribes to the provider, receives events, filters by the subscription's
48
+ * event list, signs and delivers each matching event, and decrements the
49
+ * session quota. Stops when the quota reaches zero or the subscription is
50
+ * deactivated.
51
+ *
52
+ * @param subscription - The webhook subscription to deliver for.
53
+ *
54
+ * @usedBy `remote/server.ts` → webhook delivery worker
55
+ */
56
+ export declare function startWebhookDelivery(subscription: PremiumWebhookSubscription): Promise<void>;
57
+ /**
58
+ * @name unregisterWebhook
59
+ * @description Deactivate and remove a webhook subscription.
60
+ *
61
+ * @param subscriptionId - The webhook subscription id.
62
+ * @returns True if the subscription was found and removed.
63
+ *
64
+ * @usedBy `premium-tools.ts` → MCP tool `sap_premium_webhook_unregister`
65
+ */
66
+ export declare function unregisterWebhook(subscriptionId: string): boolean;
67
+ /**
68
+ * @name getWebhookSubscription
69
+ * @description Retrieve a webhook subscription by id.
70
+ *
71
+ * @param subscriptionId - The webhook subscription id.
72
+ * @returns The subscription, or `null` if not found.
73
+ *
74
+ * @usedBy `premium-tools.ts` → MCP tool `sap_premium_webhook_status`
75
+ */
76
+ export declare function getWebhookSubscription(subscriptionId: string): PremiumWebhookSubscription | null;
77
+ /**
78
+ * @name getWebhookDeliveries
79
+ * @description Retrieve delivery records for a subscription.
80
+ *
81
+ * @param subscriptionId - The webhook subscription id.
82
+ * @param limit - Maximum records to return (default 50).
83
+ * @returns Array of `PremiumWebhookDelivery` records.
84
+ *
85
+ * @usedBy `premium-tools.ts` → MCP tool `sap_premium_webhook_status`
86
+ */
87
+ export declare function getWebhookDeliveries(subscriptionId: string, limit?: number): PremiumWebhookDelivery[];
88
+ /**
89
+ * @name getActiveWebhookCount
90
+ * @description Return the number of currently active webhook subscriptions.
91
+ *
92
+ * @usedBy `metrics.ts`
93
+ */
94
+ export declare function getActiveWebhookCount(): number;
95
+ /**
96
+ * @name stopAllWebhooks
97
+ * @description Deactivate all webhook subscriptions. Called during graceful shutdown.
98
+ *
99
+ * @usedBy `remote/server.ts` shutdown handler
100
+ */
101
+ export declare function stopAllWebhooks(): void;
102
+ //# sourceMappingURL=webhook-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-engine.d.ts","sourceRoot":"","sources":["../../src/premium/webhook-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAMH,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAiB,MAAM,YAAY,CAAC;AAsNpG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EAAE,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CAwB5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqClG;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAMjE;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAGhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,sBAAsB,EAAE,CASjG;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAM9C;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}