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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/.env.example +8 -7
  2. package/CHANGELOG.md +732 -1
  3. package/README.md +9 -3
  4. package/USER_DOCS/00_START_HERE.md +51 -4
  5. package/USER_DOCS/01_HOSTED_REMOTE_MCP.md +1 -1
  6. package/USER_DOCS/03_PAYMENTS_X402_PAYSH.md +32 -3
  7. package/USER_DOCS/04_CLIENT_CONFIGS.md +14 -7
  8. package/USER_DOCS/05_SKILLS_AND_TOOLS.md +68 -8
  9. package/USER_DOCS/06_DESKTOP_GUI_WIZARD.md +20 -14
  10. package/USER_DOCS/07_SMITHERY_AND_MARKETPLACES.md +7 -0
  11. package/config.example.json +5 -4
  12. package/config.schema.json +9 -4
  13. package/config.secure-example.json +5 -4
  14. package/dist/adapters/index.d.ts +7 -1
  15. package/dist/adapters/index.d.ts.map +1 -1
  16. package/dist/adapters/index.js +7 -1
  17. package/dist/adapters/index.js.map +1 -1
  18. package/dist/adapters/mcp/errors.d.ts +13 -1
  19. package/dist/adapters/mcp/errors.d.ts.map +1 -1
  20. package/dist/adapters/mcp/errors.js +13 -1
  21. package/dist/adapters/mcp/errors.js.map +1 -1
  22. package/dist/adapters/mcp/index.d.ts +7 -1
  23. package/dist/adapters/mcp/index.d.ts.map +1 -1
  24. package/dist/adapters/mcp/index.js +7 -1
  25. package/dist/adapters/mcp/index.js.map +1 -1
  26. package/dist/adapters/mcp/prompt-response.d.ts +13 -1
  27. package/dist/adapters/mcp/prompt-response.d.ts.map +1 -1
  28. package/dist/adapters/mcp/prompt-response.js +13 -1
  29. package/dist/adapters/mcp/prompt-response.js.map +1 -1
  30. package/dist/adapters/mcp/resource-response.d.ts +14 -1
  31. package/dist/adapters/mcp/resource-response.d.ts.map +1 -1
  32. package/dist/adapters/mcp/resource-response.js +14 -1
  33. package/dist/adapters/mcp/resource-response.js.map +1 -1
  34. package/dist/adapters/mcp/sdk-compat.d.ts +11 -3
  35. package/dist/adapters/mcp/sdk-compat.d.ts.map +1 -1
  36. package/dist/adapters/mcp/sdk-compat.js +232 -25
  37. package/dist/adapters/mcp/sdk-compat.js.map +1 -1
  38. package/dist/adapters/mcp/tool-response.d.ts +51 -3
  39. package/dist/adapters/mcp/tool-response.d.ts.map +1 -1
  40. package/dist/adapters/mcp/tool-response.js +48 -3
  41. package/dist/adapters/mcp/tool-response.js.map +1 -1
  42. package/dist/adapters/solana/commitment.d.ts +14 -2
  43. package/dist/adapters/solana/commitment.d.ts.map +1 -1
  44. package/dist/adapters/solana/commitment.js +14 -2
  45. package/dist/adapters/solana/commitment.js.map +1 -1
  46. package/dist/adapters/solana/connection.d.ts +11 -2
  47. package/dist/adapters/solana/connection.d.ts.map +1 -1
  48. package/dist/adapters/solana/connection.js +11 -2
  49. package/dist/adapters/solana/connection.js.map +1 -1
  50. package/dist/adapters/solana/index.d.ts +7 -1
  51. package/dist/adapters/solana/index.d.ts.map +1 -1
  52. package/dist/adapters/solana/index.js +7 -1
  53. package/dist/adapters/solana/index.js.map +1 -1
  54. package/dist/adapters/solana/public-key.d.ts +11 -2
  55. package/dist/adapters/solana/public-key.d.ts.map +1 -1
  56. package/dist/adapters/solana/public-key.js +11 -2
  57. package/dist/adapters/solana/public-key.js.map +1 -1
  58. package/dist/config/defaults.d.ts +5 -0
  59. package/dist/config/defaults.d.ts.map +1 -1
  60. package/dist/config/defaults.js +5 -0
  61. package/dist/config/defaults.js.map +1 -1
  62. package/dist/config/env.d.ts +4 -0
  63. package/dist/config/env.d.ts.map +1 -1
  64. package/dist/config/env.js +15 -10
  65. package/dist/config/env.js.map +1 -1
  66. package/dist/config/index.d.ts +5 -0
  67. package/dist/config/index.d.ts.map +1 -1
  68. package/dist/config/index.js +5 -0
  69. package/dist/config/index.js.map +1 -1
  70. package/dist/config/mcp-client-injection.d.ts.map +1 -1
  71. package/dist/config/mcp-client-injection.js +136 -33
  72. package/dist/config/mcp-client-injection.js.map +1 -1
  73. package/dist/config/paths.d.ts +14 -1
  74. package/dist/config/paths.d.ts.map +1 -1
  75. package/dist/config/paths.js +20 -1
  76. package/dist/config/paths.js.map +1 -1
  77. package/dist/config/profiles.d.ts +3 -10
  78. package/dist/config/profiles.d.ts.map +1 -1
  79. package/dist/config/profiles.js +5 -0
  80. package/dist/config/profiles.js.map +1 -1
  81. package/dist/config/schema.d.ts +5 -0
  82. package/dist/config/schema.d.ts.map +1 -1
  83. package/dist/config/schema.js +5 -0
  84. package/dist/config/schema.js.map +1 -1
  85. package/dist/config/secure-config.d.ts +5 -0
  86. package/dist/config/secure-config.d.ts.map +1 -1
  87. package/dist/config/secure-config.js +5 -0
  88. package/dist/config/secure-config.js.map +1 -1
  89. package/dist/config/setup.d.ts +5 -0
  90. package/dist/config/setup.d.ts.map +1 -1
  91. package/dist/config/setup.js +5 -0
  92. package/dist/config/setup.js.map +1 -1
  93. package/dist/config/wizard.d.ts +6 -0
  94. package/dist/config/wizard.d.ts.map +1 -1
  95. package/dist/config/wizard.js +102 -18
  96. package/dist/config/wizard.js.map +1 -1
  97. package/dist/config-cli.d.ts +3 -13
  98. package/dist/config-cli.d.ts.map +1 -1
  99. package/dist/config-cli.js +14 -1
  100. package/dist/config-cli.js.map +1 -1
  101. package/dist/core/constants.d.ts +38 -6
  102. package/dist/core/constants.d.ts.map +1 -1
  103. package/dist/core/constants.js +49 -6
  104. package/dist/core/constants.js.map +1 -1
  105. package/dist/core/errors.d.ts +5 -0
  106. package/dist/core/errors.d.ts.map +1 -1
  107. package/dist/core/errors.js +5 -0
  108. package/dist/core/errors.js.map +1 -1
  109. package/dist/core/guards.d.ts +5 -0
  110. package/dist/core/guards.d.ts.map +1 -1
  111. package/dist/core/guards.js +3 -1
  112. package/dist/core/guards.js.map +1 -1
  113. package/dist/core/index.d.ts +7 -1
  114. package/dist/core/index.d.ts.map +1 -1
  115. package/dist/core/index.js +7 -1
  116. package/dist/core/index.js.map +1 -1
  117. package/dist/core/logger.js +1 -1
  118. package/dist/core/result.d.ts +77 -9
  119. package/dist/core/result.d.ts.map +1 -1
  120. package/dist/core/result.js +68 -9
  121. package/dist/core/result.js.map +1 -1
  122. package/dist/core/types.d.ts +5 -0
  123. package/dist/core/types.d.ts.map +1 -1
  124. package/dist/core/types.js +3 -4
  125. package/dist/core/types.js.map +1 -1
  126. package/dist/index.d.ts +5 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +5 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/memory/async-processor.d.ts +107 -0
  131. package/dist/memory/async-processor.d.ts.map +1 -0
  132. package/dist/memory/async-processor.js +204 -0
  133. package/dist/memory/async-processor.js.map +1 -0
  134. package/dist/memory/auto-record.d.ts +47 -0
  135. package/dist/memory/auto-record.d.ts.map +1 -0
  136. package/dist/memory/auto-record.js +133 -0
  137. package/dist/memory/auto-record.js.map +1 -0
  138. package/dist/memory/database.d.ts +103 -0
  139. package/dist/memory/database.d.ts.map +1 -0
  140. package/dist/memory/database.js +337 -0
  141. package/dist/memory/database.js.map +1 -0
  142. package/dist/memory/hermes-bridge.d.ts +70 -0
  143. package/dist/memory/hermes-bridge.d.ts.map +1 -0
  144. package/dist/memory/hermes-bridge.js +155 -0
  145. package/dist/memory/hermes-bridge.js.map +1 -0
  146. package/dist/memory/index.d.ts +23 -0
  147. package/dist/memory/index.d.ts.map +1 -0
  148. package/dist/memory/index.js +22 -0
  149. package/dist/memory/index.js.map +1 -0
  150. package/dist/memory/memory-store.d.ts +76 -0
  151. package/dist/memory/memory-store.d.ts.map +1 -0
  152. package/dist/memory/memory-store.js +231 -0
  153. package/dist/memory/memory-store.js.map +1 -0
  154. package/dist/memory/stream-buffer-store.d.ts +69 -0
  155. package/dist/memory/stream-buffer-store.d.ts.map +1 -0
  156. package/dist/memory/stream-buffer-store.js +182 -0
  157. package/dist/memory/stream-buffer-store.js.map +1 -0
  158. package/dist/memory/tool-call-store.d.ts +68 -0
  159. package/dist/memory/tool-call-store.d.ts.map +1 -0
  160. package/dist/memory/tool-call-store.js +189 -0
  161. package/dist/memory/tool-call-store.js.map +1 -0
  162. package/dist/memory/types.d.ts +197 -0
  163. package/dist/memory/types.d.ts.map +1 -0
  164. package/dist/memory/types.js +15 -0
  165. package/dist/memory/types.js.map +1 -0
  166. package/dist/memory/utils.d.ts +30 -0
  167. package/dist/memory/utils.d.ts.map +1 -0
  168. package/dist/memory/utils.js +47 -0
  169. package/dist/memory/utils.js.map +1 -0
  170. package/dist/payments/facilitator-rpc-fallback.d.ts.map +1 -1
  171. package/dist/payments/facilitator-rpc-fallback.js +95 -0
  172. package/dist/payments/facilitator-rpc-fallback.js.map +1 -1
  173. package/dist/payments/hosted-tool-eligibility.d.ts +22 -0
  174. package/dist/payments/hosted-tool-eligibility.d.ts.map +1 -0
  175. package/dist/payments/hosted-tool-eligibility.js +173 -0
  176. package/dist/payments/hosted-tool-eligibility.js.map +1 -0
  177. package/dist/payments/index.d.ts +2 -2
  178. package/dist/payments/index.d.ts.map +1 -1
  179. package/dist/payments/index.js +1 -1
  180. package/dist/payments/index.js.map +1 -1
  181. package/dist/payments/mcp-session-cache.d.ts +35 -0
  182. package/dist/payments/mcp-session-cache.d.ts.map +1 -0
  183. package/dist/payments/mcp-session-cache.js +83 -0
  184. package/dist/payments/mcp-session-cache.js.map +1 -0
  185. package/dist/payments/monetization-gate.d.ts +33 -0
  186. package/dist/payments/monetization-gate.d.ts.map +1 -1
  187. package/dist/payments/monetization-gate.js +124 -12
  188. package/dist/payments/monetization-gate.js.map +1 -1
  189. package/dist/payments/pricing.d.ts +31 -0
  190. package/dist/payments/pricing.d.ts.map +1 -1
  191. package/dist/payments/pricing.js +317 -19
  192. package/dist/payments/pricing.js.map +1 -1
  193. package/dist/payments/usage-ledger.d.ts +36 -2
  194. package/dist/payments/usage-ledger.d.ts.map +1 -1
  195. package/dist/payments/usage-ledger.js +121 -4
  196. package/dist/payments/usage-ledger.js.map +1 -1
  197. package/dist/payments/x402-paid-call.d.ts +121 -0
  198. package/dist/payments/x402-paid-call.d.ts.map +1 -1
  199. package/dist/payments/x402-paid-call.js +428 -1
  200. package/dist/payments/x402-paid-call.js.map +1 -1
  201. package/dist/policy/default-policies.d.ts +18 -2
  202. package/dist/policy/default-policies.d.ts.map +1 -1
  203. package/dist/policy/default-policies.js +18 -2
  204. package/dist/policy/default-policies.js.map +1 -1
  205. package/dist/policy/index.d.ts +6 -3
  206. package/dist/policy/index.d.ts.map +1 -1
  207. package/dist/policy/index.js +6 -3
  208. package/dist/policy/index.js.map +1 -1
  209. package/dist/policy/local-policy-engine.d.ts +71 -13
  210. package/dist/policy/local-policy-engine.d.ts.map +1 -1
  211. package/dist/policy/local-policy-engine.js +33 -11
  212. package/dist/policy/local-policy-engine.js.map +1 -1
  213. package/dist/policy/permission-checks.d.ts +29 -3
  214. package/dist/policy/permission-checks.d.ts.map +1 -1
  215. package/dist/policy/permission-checks.js +29 -3
  216. package/dist/policy/permission-checks.js.map +1 -1
  217. package/dist/policy/policy-engine.d.ts +22 -2
  218. package/dist/policy/policy-engine.d.ts.map +1 -1
  219. package/dist/policy/policy-engine.js +22 -2
  220. package/dist/policy/policy-engine.js.map +1 -1
  221. package/dist/policy/policy-types.d.ts +55 -5
  222. package/dist/policy/policy-types.d.ts.map +1 -1
  223. package/dist/policy/policy-types.js +8 -1
  224. package/dist/policy/policy-types.js.map +1 -1
  225. package/dist/policy/risk-level.d.ts +32 -3
  226. package/dist/policy/risk-level.d.ts.map +1 -1
  227. package/dist/policy/risk-level.js +32 -3
  228. package/dist/policy/risk-level.js.map +1 -1
  229. package/dist/policy/spending-limits.d.ts +29 -3
  230. package/dist/policy/spending-limits.d.ts.map +1 -1
  231. package/dist/policy/spending-limits.js +29 -3
  232. package/dist/policy/spending-limits.js.map +1 -1
  233. package/dist/premium/activation-manager.d.ts +43 -0
  234. package/dist/premium/activation-manager.d.ts.map +1 -0
  235. package/dist/premium/activation-manager.js +131 -0
  236. package/dist/premium/activation-manager.js.map +1 -0
  237. package/dist/premium/builtin-plugins.d.ts +165 -0
  238. package/dist/premium/builtin-plugins.d.ts.map +1 -0
  239. package/dist/premium/builtin-plugins.js +422 -0
  240. package/dist/premium/builtin-plugins.js.map +1 -0
  241. package/dist/premium/event-store.d.ts +61 -0
  242. package/dist/premium/event-store.d.ts.map +1 -0
  243. package/dist/premium/event-store.js +130 -0
  244. package/dist/premium/event-store.js.map +1 -0
  245. package/dist/premium/index.d.ts +54 -0
  246. package/dist/premium/index.d.ts.map +1 -0
  247. package/dist/premium/index.js +54 -0
  248. package/dist/premium/index.js.map +1 -0
  249. package/dist/premium/manifest-builder.d.ts +65 -0
  250. package/dist/premium/manifest-builder.d.ts.map +1 -0
  251. package/dist/premium/manifest-builder.js +182 -0
  252. package/dist/premium/manifest-builder.js.map +1 -0
  253. package/dist/premium/meme-radar-capabilities.d.ts +38 -0
  254. package/dist/premium/meme-radar-capabilities.d.ts.map +1 -0
  255. package/dist/premium/meme-radar-capabilities.js +306 -0
  256. package/dist/premium/meme-radar-capabilities.js.map +1 -0
  257. package/dist/premium/metrics.d.ts +27 -0
  258. package/dist/premium/metrics.d.ts.map +1 -0
  259. package/dist/premium/metrics.js +65 -0
  260. package/dist/premium/metrics.js.map +1 -0
  261. package/dist/premium/plugin-validator.d.ts +39 -0
  262. package/dist/premium/plugin-validator.d.ts.map +1 -0
  263. package/dist/premium/plugin-validator.js +325 -0
  264. package/dist/premium/plugin-validator.js.map +1 -0
  265. package/dist/premium/private-manifest-loader.d.ts +111 -0
  266. package/dist/premium/private-manifest-loader.d.ts.map +1 -0
  267. package/dist/premium/private-manifest-loader.js +285 -0
  268. package/dist/premium/private-manifest-loader.js.map +1 -0
  269. package/dist/premium/provider-bridge.d.ts +133 -0
  270. package/dist/premium/provider-bridge.d.ts.map +1 -0
  271. package/dist/premium/provider-bridge.js +349 -0
  272. package/dist/premium/provider-bridge.js.map +1 -0
  273. package/dist/premium/session-manager.d.ts +125 -0
  274. package/dist/premium/session-manager.d.ts.map +1 -0
  275. package/dist/premium/session-manager.js +337 -0
  276. package/dist/premium/session-manager.js.map +1 -0
  277. package/dist/premium/stream-broker.d.ts +98 -0
  278. package/dist/premium/stream-broker.d.ts.map +1 -0
  279. package/dist/premium/stream-broker.js +199 -0
  280. package/dist/premium/stream-broker.js.map +1 -0
  281. package/dist/premium/tech-fundamentals-capabilities.d.ts +37 -0
  282. package/dist/premium/tech-fundamentals-capabilities.d.ts.map +1 -0
  283. package/dist/premium/tech-fundamentals-capabilities.js +283 -0
  284. package/dist/premium/tech-fundamentals-capabilities.js.map +1 -0
  285. package/dist/premium/trading-capabilities.d.ts +36 -0
  286. package/dist/premium/trading-capabilities.d.ts.map +1 -0
  287. package/dist/premium/trading-capabilities.js +205 -0
  288. package/dist/premium/trading-capabilities.js.map +1 -0
  289. package/dist/premium/types.d.ts +518 -0
  290. package/dist/premium/types.d.ts.map +1 -0
  291. package/dist/premium/types.js +23 -0
  292. package/dist/premium/types.js.map +1 -0
  293. package/dist/premium/webhook-engine.d.ts +138 -0
  294. package/dist/premium/webhook-engine.d.ts.map +1 -0
  295. package/dist/premium/webhook-engine.js +516 -0
  296. package/dist/premium/webhook-engine.js.map +1 -0
  297. package/dist/prompts/context/sap-agent-context.prompt.d.ts +5 -0
  298. package/dist/prompts/context/sap-agent-context.prompt.d.ts.map +1 -1
  299. package/dist/prompts/context/sap-agent-context.prompt.js +20 -16
  300. package/dist/prompts/context/sap-agent-context.prompt.js.map +1 -1
  301. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts +14 -0
  302. package/dist/prompts/context/sap-agent-intent-router.prompt.d.ts.map +1 -0
  303. package/dist/prompts/context/sap-agent-intent-router.prompt.js +155 -0
  304. package/dist/prompts/context/sap-agent-intent-router.prompt.js.map +1 -0
  305. package/dist/prompts/context/sap-agent-start.prompt.js +7 -0
  306. package/dist/prompts/context/sap-agent-start.prompt.js.map +1 -1
  307. package/dist/prompts/developer/debug-sap-error.prompt.d.ts +5 -0
  308. package/dist/prompts/developer/debug-sap-error.prompt.d.ts.map +1 -1
  309. package/dist/prompts/developer/debug-sap-error.prompt.js +3 -4
  310. package/dist/prompts/developer/debug-sap-error.prompt.js.map +1 -1
  311. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts +5 -0
  312. package/dist/prompts/developer/generate-sap-integration.prompt.d.ts.map +1 -1
  313. package/dist/prompts/developer/generate-sap-integration.prompt.js +3 -4
  314. package/dist/prompts/developer/generate-sap-integration.prompt.js.map +1 -1
  315. package/dist/prompts/developer/index.d.ts +4 -1
  316. package/dist/prompts/developer/index.d.ts.map +1 -1
  317. package/dist/prompts/developer/index.js +4 -1
  318. package/dist/prompts/developer/index.js.map +1 -1
  319. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts +5 -0
  320. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.d.ts.map +1 -1
  321. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js +3 -4
  322. package/dist/prompts/execution-proof/explain-proof-of-execution.prompt.js.map +1 -1
  323. package/dist/prompts/execution-proof/index.d.ts +4 -1
  324. package/dist/prompts/execution-proof/index.d.ts.map +1 -1
  325. package/dist/prompts/execution-proof/index.js +4 -1
  326. package/dist/prompts/execution-proof/index.js.map +1 -1
  327. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts +5 -0
  328. package/dist/prompts/execution-proof/verify-execution-proof.prompt.d.ts.map +1 -1
  329. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js +3 -4
  330. package/dist/prompts/execution-proof/verify-execution-proof.prompt.js.map +1 -1
  331. package/dist/prompts/index.d.ts +4 -1
  332. package/dist/prompts/index.d.ts.map +1 -1
  333. package/dist/prompts/index.js +4 -1
  334. package/dist/prompts/index.js.map +1 -1
  335. package/dist/prompts/payments/create-paid-api.prompt.d.ts +5 -0
  336. package/dist/prompts/payments/create-paid-api.prompt.d.ts.map +1 -1
  337. package/dist/prompts/payments/create-paid-api.prompt.js +3 -4
  338. package/dist/prompts/payments/create-paid-api.prompt.js.map +1 -1
  339. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts +5 -0
  340. package/dist/prompts/payments/explain-x402-settlement.prompt.d.ts.map +1 -1
  341. package/dist/prompts/payments/explain-x402-settlement.prompt.js +16 -14
  342. package/dist/prompts/payments/explain-x402-settlement.prompt.js.map +1 -1
  343. package/dist/prompts/payments/index.d.ts +4 -1
  344. package/dist/prompts/payments/index.d.ts.map +1 -1
  345. package/dist/prompts/payments/index.js +4 -1
  346. package/dist/prompts/payments/index.js.map +1 -1
  347. package/dist/prompts/register-prompts.d.ts +18 -2
  348. package/dist/prompts/register-prompts.d.ts.map +1 -1
  349. package/dist/prompts/register-prompts.js +21 -3
  350. package/dist/prompts/register-prompts.js.map +1 -1
  351. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts +5 -0
  352. package/dist/prompts/registry/analyze-sap-agent.prompt.d.ts.map +1 -1
  353. package/dist/prompts/registry/analyze-sap-agent.prompt.js +3 -4
  354. package/dist/prompts/registry/analyze-sap-agent.prompt.js.map +1 -1
  355. package/dist/prompts/registry/index.d.ts +4 -1
  356. package/dist/prompts/registry/index.d.ts.map +1 -1
  357. package/dist/prompts/registry/index.js +4 -1
  358. package/dist/prompts/registry/index.js.map +1 -1
  359. package/dist/prompts/registry/register-sap-agent.prompt.d.ts +5 -0
  360. package/dist/prompts/registry/register-sap-agent.prompt.d.ts.map +1 -1
  361. package/dist/prompts/registry/register-sap-agent.prompt.js +22 -23
  362. package/dist/prompts/registry/register-sap-agent.prompt.js.map +1 -1
  363. package/dist/remote/premium-memory.d.ts +90 -0
  364. package/dist/remote/premium-memory.d.ts.map +1 -0
  365. package/dist/remote/premium-memory.js +161 -0
  366. package/dist/remote/premium-memory.js.map +1 -0
  367. package/dist/remote/premium-routes.d.ts +99 -0
  368. package/dist/remote/premium-routes.d.ts.map +1 -0
  369. package/dist/remote/premium-routes.js +347 -0
  370. package/dist/remote/premium-routes.js.map +1 -0
  371. package/dist/remote/public-home/sections.d.ts.map +1 -1
  372. package/dist/remote/public-home/sections.js +23 -4
  373. package/dist/remote/public-home/sections.js.map +1 -1
  374. package/dist/remote/public-home/types.d.ts +9 -0
  375. package/dist/remote/public-home/types.d.ts.map +1 -1
  376. package/dist/remote/server.d.ts +20 -0
  377. package/dist/remote/server.d.ts.map +1 -1
  378. package/dist/remote/server.js +370 -9
  379. package/dist/remote/server.js.map +1 -1
  380. package/dist/remote/tx-relay.d.ts +42 -0
  381. package/dist/remote/tx-relay.d.ts.map +1 -0
  382. package/dist/remote/tx-relay.js +118 -0
  383. package/dist/remote/tx-relay.js.map +1 -0
  384. package/dist/resources/current/sap-current-config.resource.d.ts +5 -0
  385. package/dist/resources/current/sap-current-config.resource.d.ts.map +1 -1
  386. package/dist/resources/current/sap-current-config.resource.js +2 -5
  387. package/dist/resources/current/sap-current-config.resource.js.map +1 -1
  388. package/dist/resources/execution-proof/index.d.ts +5 -0
  389. package/dist/resources/execution-proof/index.d.ts.map +1 -1
  390. package/dist/resources/execution-proof/index.js +5 -0
  391. package/dist/resources/execution-proof/index.js.map +1 -1
  392. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts +5 -0
  393. package/dist/resources/execution-proof/sap-execution-record.resource.d.ts.map +1 -1
  394. package/dist/resources/execution-proof/sap-execution-record.resource.js +3 -4
  395. package/dist/resources/execution-proof/sap-execution-record.resource.js.map +1 -1
  396. package/dist/resources/index.d.ts +5 -0
  397. package/dist/resources/index.d.ts.map +1 -1
  398. package/dist/resources/index.js +5 -0
  399. package/dist/resources/index.js.map +1 -1
  400. package/dist/resources/memory/index.d.ts +5 -0
  401. package/dist/resources/memory/index.d.ts.map +1 -1
  402. package/dist/resources/memory/index.js +5 -0
  403. package/dist/resources/memory/index.js.map +1 -1
  404. package/dist/resources/memory/sap-memory.resource.d.ts +5 -0
  405. package/dist/resources/memory/sap-memory.resource.d.ts.map +1 -1
  406. package/dist/resources/memory/sap-memory.resource.js +3 -4
  407. package/dist/resources/memory/sap-memory.resource.js.map +1 -1
  408. package/dist/resources/profile/sap-active-profile.resource.d.ts +5 -0
  409. package/dist/resources/profile/sap-active-profile.resource.d.ts.map +1 -1
  410. package/dist/resources/profile/sap-active-profile.resource.js +2 -5
  411. package/dist/resources/profile/sap-active-profile.resource.js.map +1 -1
  412. package/dist/resources/register-resources.d.ts +5 -0
  413. package/dist/resources/register-resources.d.ts.map +1 -1
  414. package/dist/resources/register-resources.js +3 -1
  415. package/dist/resources/register-resources.js.map +1 -1
  416. package/dist/resources/registry/index.d.ts +5 -0
  417. package/dist/resources/registry/index.d.ts.map +1 -1
  418. package/dist/resources/registry/index.js +5 -0
  419. package/dist/resources/registry/index.js.map +1 -1
  420. package/dist/resources/registry/sap-agent.resource.d.ts +5 -0
  421. package/dist/resources/registry/sap-agent.resource.d.ts.map +1 -1
  422. package/dist/resources/registry/sap-agent.resource.js +3 -4
  423. package/dist/resources/registry/sap-agent.resource.js.map +1 -1
  424. package/dist/resources/registry/sap-global-registry.resource.d.ts +18 -4
  425. package/dist/resources/registry/sap-global-registry.resource.d.ts.map +1 -1
  426. package/dist/resources/registry/sap-global-registry.resource.js +18 -4
  427. package/dist/resources/registry/sap-global-registry.resource.js.map +1 -1
  428. package/dist/resources/reputation/index.d.ts +4 -1
  429. package/dist/resources/reputation/index.d.ts.map +1 -1
  430. package/dist/resources/reputation/index.js +4 -1
  431. package/dist/resources/reputation/index.js.map +1 -1
  432. package/dist/resources/reputation/sap-reputation.resource.d.ts +18 -4
  433. package/dist/resources/reputation/sap-reputation.resource.d.ts.map +1 -1
  434. package/dist/resources/reputation/sap-reputation.resource.js +18 -4
  435. package/dist/resources/reputation/sap-reputation.resource.js.map +1 -1
  436. package/dist/resources/tool-schema/index.d.ts +4 -1
  437. package/dist/resources/tool-schema/index.d.ts.map +1 -1
  438. package/dist/resources/tool-schema/index.js +4 -1
  439. package/dist/resources/tool-schema/index.js.map +1 -1
  440. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts +18 -4
  441. package/dist/resources/tool-schema/sap-tool-schema.resource.d.ts.map +1 -1
  442. package/dist/resources/tool-schema/sap-tool-schema.resource.js +18 -4
  443. package/dist/resources/tool-schema/sap-tool-schema.resource.js.map +1 -1
  444. package/dist/sap/index.d.ts +7 -1
  445. package/dist/sap/index.d.ts.map +1 -1
  446. package/dist/sap/index.js +7 -1
  447. package/dist/sap/index.js.map +1 -1
  448. package/dist/sap/sap-client-manager.d.ts +80 -13
  449. package/dist/sap/sap-client-manager.d.ts.map +1 -1
  450. package/dist/sap/sap-client-manager.js +80 -13
  451. package/dist/sap/sap-client-manager.js.map +1 -1
  452. package/dist/sap/sap-errors.d.ts +22 -3
  453. package/dist/sap/sap-errors.d.ts.map +1 -1
  454. package/dist/sap/sap-errors.js +22 -3
  455. package/dist/sap/sap-errors.js.map +1 -1
  456. package/dist/sap/sap-types.d.ts +75 -6
  457. package/dist/sap/sap-types.d.ts.map +1 -1
  458. package/dist/sap/sap-types.js +11 -1
  459. package/dist/sap/sap-types.js.map +1 -1
  460. package/dist/schemas/common.schema.d.ts +45 -8
  461. package/dist/schemas/common.schema.d.ts.map +1 -1
  462. package/dist/schemas/common.schema.js +45 -8
  463. package/dist/schemas/common.schema.js.map +1 -1
  464. package/dist/schemas/developer.schema.d.ts +22 -3
  465. package/dist/schemas/developer.schema.d.ts.map +1 -1
  466. package/dist/schemas/developer.schema.js +22 -3
  467. package/dist/schemas/developer.schema.js.map +1 -1
  468. package/dist/schemas/execution-proof.schema.d.ts +29 -4
  469. package/dist/schemas/execution-proof.schema.d.ts.map +1 -1
  470. package/dist/schemas/execution-proof.schema.js +29 -4
  471. package/dist/schemas/execution-proof.schema.js.map +1 -1
  472. package/dist/schemas/identity.schema.d.ts +23 -3
  473. package/dist/schemas/identity.schema.d.ts.map +1 -1
  474. package/dist/schemas/identity.schema.js +23 -3
  475. package/dist/schemas/identity.schema.js.map +1 -1
  476. package/dist/schemas/index.d.ts +11 -1
  477. package/dist/schemas/index.d.ts.map +1 -1
  478. package/dist/schemas/index.js +11 -1
  479. package/dist/schemas/index.js.map +1 -1
  480. package/dist/schemas/memory.schema.d.ts +23 -3
  481. package/dist/schemas/memory.schema.d.ts.map +1 -1
  482. package/dist/schemas/memory.schema.js +23 -3
  483. package/dist/schemas/memory.schema.js.map +1 -1
  484. package/dist/schemas/payments.schema.d.ts +24 -3
  485. package/dist/schemas/payments.schema.d.ts.map +1 -1
  486. package/dist/schemas/payments.schema.js +24 -3
  487. package/dist/schemas/payments.schema.js.map +1 -1
  488. package/dist/schemas/registry.schema.d.ts +38 -6
  489. package/dist/schemas/registry.schema.d.ts.map +1 -1
  490. package/dist/schemas/registry.schema.js +36 -4
  491. package/dist/schemas/registry.schema.js.map +1 -1
  492. package/dist/schemas/reputation.schema.d.ts +22 -3
  493. package/dist/schemas/reputation.schema.d.ts.map +1 -1
  494. package/dist/schemas/reputation.schema.js +22 -3
  495. package/dist/schemas/reputation.schema.js.map +1 -1
  496. package/dist/schemas/settlement.schema.d.ts +31 -4
  497. package/dist/schemas/settlement.schema.d.ts.map +1 -1
  498. package/dist/schemas/settlement.schema.js +31 -4
  499. package/dist/schemas/settlement.schema.js.map +1 -1
  500. package/dist/schemas/tool-schema.schema.d.ts +29 -3
  501. package/dist/schemas/tool-schema.schema.d.ts.map +1 -1
  502. package/dist/schemas/tool-schema.schema.js +29 -3
  503. package/dist/schemas/tool-schema.schema.js.map +1 -1
  504. package/dist/schemas/transaction.schema.d.ts +23 -3
  505. package/dist/schemas/transaction.schema.d.ts.map +1 -1
  506. package/dist/schemas/transaction.schema.js +23 -3
  507. package/dist/schemas/transaction.schema.js.map +1 -1
  508. package/dist/security/approval-required.d.ts +19 -2
  509. package/dist/security/approval-required.d.ts.map +1 -1
  510. package/dist/security/approval-required.js +19 -2
  511. package/dist/security/approval-required.js.map +1 -1
  512. package/dist/security/index.d.ts +7 -1
  513. package/dist/security/index.d.ts.map +1 -1
  514. package/dist/security/index.js +7 -1
  515. package/dist/security/index.js.map +1 -1
  516. package/dist/security/private-key-guard.d.ts +18 -2
  517. package/dist/security/private-key-guard.d.ts.map +1 -1
  518. package/dist/security/private-key-guard.js +19 -2
  519. package/dist/security/private-key-guard.js.map +1 -1
  520. package/dist/security/prompt-injection-notes.d.ts +10 -1
  521. package/dist/security/prompt-injection-notes.d.ts.map +1 -1
  522. package/dist/security/prompt-injection-notes.js +10 -1
  523. package/dist/security/prompt-injection-notes.js.map +1 -1
  524. package/dist/security/tool-permissions.d.ts.map +1 -1
  525. package/dist/security/tool-permissions.js +12 -0
  526. package/dist/security/tool-permissions.js.map +1 -1
  527. package/dist/security/unsafe-action-guard.d.ts +36 -10
  528. package/dist/security/unsafe-action-guard.d.ts.map +1 -1
  529. package/dist/security/unsafe-action-guard.js +67 -15
  530. package/dist/security/unsafe-action-guard.js.map +1 -1
  531. package/dist/server/create-server.d.ts +18 -3
  532. package/dist/server/create-server.d.ts.map +1 -1
  533. package/dist/server/create-server.js +20 -4
  534. package/dist/server/create-server.js.map +1 -1
  535. package/dist/server/index.d.ts +6 -1
  536. package/dist/server/index.d.ts.map +1 -1
  537. package/dist/server/index.js +6 -1
  538. package/dist/server/index.js.map +1 -1
  539. package/dist/server/register-capabilities.d.ts +17 -2
  540. package/dist/server/register-capabilities.d.ts.map +1 -1
  541. package/dist/server/register-capabilities.js +17 -2
  542. package/dist/server/register-capabilities.js.map +1 -1
  543. package/dist/server/server-metadata.d.ts +35 -1
  544. package/dist/server/server-metadata.d.ts.map +1 -1
  545. package/dist/server/server-metadata.js +36 -2
  546. package/dist/server/server-metadata.js.map +1 -1
  547. package/dist/session/agent-session.d.ts +35 -4
  548. package/dist/session/agent-session.d.ts.map +1 -1
  549. package/dist/session/agent-session.js +35 -4
  550. package/dist/session/agent-session.js.map +1 -1
  551. package/dist/session/delegated-session.d.ts +31 -3
  552. package/dist/session/delegated-session.d.ts.map +1 -1
  553. package/dist/session/delegated-session.js +31 -3
  554. package/dist/session/delegated-session.js.map +1 -1
  555. package/dist/session/index.d.ts +7 -1
  556. package/dist/session/index.d.ts.map +1 -1
  557. package/dist/session/index.js +7 -1
  558. package/dist/session/index.js.map +1 -1
  559. package/dist/session/redis-session-store.d.ts +94 -21
  560. package/dist/session/redis-session-store.d.ts.map +1 -1
  561. package/dist/session/redis-session-store.js +87 -20
  562. package/dist/session/redis-session-store.js.map +1 -1
  563. package/dist/session/session-limits.d.ts +34 -4
  564. package/dist/session/session-limits.d.ts.map +1 -1
  565. package/dist/session/session-limits.js +34 -4
  566. package/dist/session/session-limits.js.map +1 -1
  567. package/dist/session/session-permissions.d.ts +57 -7
  568. package/dist/session/session-permissions.d.ts.map +1 -1
  569. package/dist/session/session-permissions.js +57 -7
  570. package/dist/session/session-permissions.js.map +1 -1
  571. package/dist/session/session-store.d.ts +9 -1
  572. package/dist/session/session-store.d.ts.map +1 -1
  573. package/dist/session/session-store.js +18 -3
  574. package/dist/session/session-store.js.map +1 -1
  575. package/dist/session/session-types.d.ts +33 -4
  576. package/dist/session/session-types.d.ts.map +1 -1
  577. package/dist/session/session-types.js +9 -1
  578. package/dist/session/session-types.js.map +1 -1
  579. package/dist/signer/index.d.ts +7 -1
  580. package/dist/signer/index.d.ts.map +1 -1
  581. package/dist/signer/index.js +7 -1
  582. package/dist/signer/index.js.map +1 -1
  583. package/dist/signer/load-keypair.d.ts +25 -4
  584. package/dist/signer/load-keypair.d.ts.map +1 -1
  585. package/dist/signer/load-keypair.js +25 -4
  586. package/dist/signer/load-keypair.js.map +1 -1
  587. package/dist/signer/local-keypair-signer.d.ts +19 -3
  588. package/dist/signer/local-keypair-signer.d.ts.map +1 -1
  589. package/dist/signer/local-keypair-signer.js +24 -4
  590. package/dist/signer/local-keypair-signer.js.map +1 -1
  591. package/dist/signer/signer-resolver.d.ts +19 -2
  592. package/dist/signer/signer-resolver.d.ts.map +1 -1
  593. package/dist/signer/signer-resolver.js +26 -3
  594. package/dist/signer/signer-resolver.js.map +1 -1
  595. package/dist/signer/signer-types.d.ts +47 -5
  596. package/dist/signer/signer-types.d.ts.map +1 -1
  597. package/dist/signer/signer-types.js +13 -1
  598. package/dist/signer/signer-types.js.map +1 -1
  599. package/dist/strategies/strategy-store.d.ts +82 -0
  600. package/dist/strategies/strategy-store.d.ts.map +1 -0
  601. package/dist/strategies/strategy-store.js +165 -0
  602. package/dist/strategies/strategy-store.js.map +1 -0
  603. package/dist/tools/agent-start-tool.d.ts.map +1 -1
  604. package/dist/tools/agent-start-tool.js +481 -5
  605. package/dist/tools/agent-start-tool.js.map +1 -1
  606. package/dist/tools/client-sdk-tools.d.ts.map +1 -1
  607. package/dist/tools/client-sdk-tools.js +32 -7
  608. package/dist/tools/client-sdk-tools.js.map +1 -1
  609. package/dist/tools/estimate-tool-cost.d.ts +13 -0
  610. package/dist/tools/estimate-tool-cost.d.ts.map +1 -0
  611. package/dist/tools/estimate-tool-cost.js +139 -0
  612. package/dist/tools/estimate-tool-cost.js.map +1 -0
  613. package/dist/tools/index.d.ts +8 -0
  614. package/dist/tools/index.d.ts.map +1 -1
  615. package/dist/tools/index.js +11 -0
  616. package/dist/tools/index.js.map +1 -1
  617. package/dist/tools/magicblock-tools.d.ts +31 -6
  618. package/dist/tools/magicblock-tools.d.ts.map +1 -1
  619. package/dist/tools/magicblock-tools.js +178 -53
  620. package/dist/tools/magicblock-tools.js.map +1 -1
  621. package/dist/tools/memory-tools.d.ts +26 -0
  622. package/dist/tools/memory-tools.d.ts.map +1 -0
  623. package/dist/tools/memory-tools.js +533 -0
  624. package/dist/tools/memory-tools.js.map +1 -0
  625. package/dist/tools/perp-tools.d.ts +39 -0
  626. package/dist/tools/perp-tools.d.ts.map +1 -0
  627. package/dist/tools/perp-tools.js +1110 -0
  628. package/dist/tools/perp-tools.js.map +1 -0
  629. package/dist/tools/premium-tools.d.ts +8 -0
  630. package/dist/tools/premium-tools.d.ts.map +1 -0
  631. package/dist/tools/premium-tools.js +1102 -0
  632. package/dist/tools/premium-tools.js.map +1 -0
  633. package/dist/tools/profile-tools.d.ts.map +1 -1
  634. package/dist/tools/profile-tools.js +18 -1
  635. package/dist/tools/profile-tools.js.map +1 -1
  636. package/dist/tools/quick-context-tool.d.ts +16 -0
  637. package/dist/tools/quick-context-tool.d.ts.map +1 -0
  638. package/dist/tools/quick-context-tool.js +304 -0
  639. package/dist/tools/quick-context-tool.js.map +1 -0
  640. package/dist/tools/register-tools.d.ts.map +1 -1
  641. package/dist/tools/register-tools.js +17 -0
  642. package/dist/tools/register-tools.js.map +1 -1
  643. package/dist/tools/sap-sdk-tools.d.ts +420 -1
  644. package/dist/tools/sap-sdk-tools.d.ts.map +1 -1
  645. package/dist/tools/sap-sdk-tools.js +1548 -127
  646. package/dist/tools/sap-sdk-tools.js.map +1 -1
  647. package/dist/tools/sap-sns-tools.d.ts +2 -2
  648. package/dist/tools/sap-sns-tools.d.ts.map +1 -1
  649. package/dist/tools/sap-sns-tools.js +12 -8
  650. package/dist/tools/sap-sns-tools.js.map +1 -1
  651. package/dist/tools/skills-tools.d.ts +16 -0
  652. package/dist/tools/skills-tools.d.ts.map +1 -1
  653. package/dist/tools/skills-tools.js +282 -5
  654. package/dist/tools/skills-tools.js.map +1 -1
  655. package/dist/tools/tool-aliases.d.ts.map +1 -1
  656. package/dist/tools/tool-aliases.js +7 -0
  657. package/dist/tools/tool-aliases.js.map +1 -1
  658. package/dist/tools/transaction-tools.d.ts +135 -0
  659. package/dist/tools/transaction-tools.d.ts.map +1 -1
  660. package/dist/tools/transaction-tools.js +515 -16
  661. package/dist/tools/transaction-tools.js.map +1 -1
  662. package/dist/tools/x402-paid-call-tool.d.ts.map +1 -1
  663. package/dist/tools/x402-paid-call-tool.js +756 -23
  664. package/dist/tools/x402-paid-call-tool.js.map +1 -1
  665. package/dist/transports/index.d.ts +6 -1
  666. package/dist/transports/index.d.ts.map +1 -1
  667. package/dist/transports/index.js +6 -1
  668. package/dist/transports/index.js.map +1 -1
  669. package/dist/transports/stdio.d.ts +17 -5
  670. package/dist/transports/stdio.d.ts.map +1 -1
  671. package/dist/transports/stdio.js +17 -5
  672. package/dist/transports/stdio.js.map +1 -1
  673. package/dist/tui/wizard-save.d.ts +88 -8
  674. package/dist/tui/wizard-save.d.ts.map +1 -1
  675. package/dist/tui/wizard-save.js +77 -8
  676. package/dist/tui/wizard-save.js.map +1 -1
  677. package/dist/wizard-core/desktop-flow.d.ts.map +1 -1
  678. package/dist/wizard-core/desktop-flow.js +4 -2
  679. package/dist/wizard-core/desktop-flow.js.map +1 -1
  680. package/docs/03_CONFIGURATION_AND_WIZARD.md +5 -3
  681. package/docs/06_PAYMENTS_X402_AND_PAYSH.md +82 -4
  682. package/docs/07_ENDPOINTS_AND_CLIENTS.md +7 -3
  683. package/docs/09_TOOLS_SKILLS_AND_AGENT_GUIDE.md +21 -3
  684. package/docs/14_DESKTOP_WIZARD_RELEASE.md +8 -6
  685. package/docs/16_SAP_AGENT_IDENTITY_PIPELINE.md +304 -0
  686. package/docs/18_PREMIUM_PLUGIN_RUNTIME.md +108 -0
  687. package/docs/BRANCH_AND_CI.md +67 -0
  688. package/docs/README.md +19 -2
  689. package/docs/magicblock-tools.md +70 -29
  690. package/package.json +10 -6
  691. package/server.json +3 -3
  692. package/skills/README.md +12 -2
  693. package/skills/sap-agent-registry/SKILL.md +99 -4
  694. package/skills/sap-defi/SKILL.md +8 -4
  695. package/skills/sap-discovery-indexing/SKILL.md +26 -4
  696. package/skills/sap-escrow-settlement/SKILL.md +22 -4
  697. package/skills/sap-mcp/SKILL.md +140 -22
  698. package/skills/sap-mcp/TOOL_REFERENCE.md +47 -7
  699. package/skills/sap-nft-metaplex/SKILL.md +22 -0
  700. package/skills/sap-operations/SKILL.md +32 -3
  701. package/skills/sap-payments-x402/SKILL.md +85 -8
  702. package/skills/sap-sns/SKILL.md +32 -10
  703. package/smithery.config.schema.json +7 -0
@@ -18,16 +18,38 @@ indexes, and filtered agent discovery.
18
18
 
19
19
  ## Rules
20
20
 
21
- - Use `sap_list_all_agents` for global directory requests.
22
- - Use `sap_discover_agents` only with `protocol`, `capability`, or
23
- `capabilities`.
21
+ - Start with free orientation when possible:
22
+ - `sap_agent_context` for a one-shot compact context read and routing hints.
23
+ - `sap_get_agent` or `sap_get_agent_profile` for a known owner wallet.
24
+ - `sap_is_agent_active` for a known owner wallet status check.
25
+ - `sap_get_global_state` for compact registry state.
26
+ - `sap_list_agents` with `limit <= 20`, `view: "compact"`, and
27
+ `includeProtocolIndexes: false` for a small current directory page.
28
+ - Use `sap_discover_agents` for paid hosted agent directory search. It supports
29
+ `query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
30
+ `capabilityMode`, `hasX402Endpoint`, `limit`, `cursor`, and `view`.
31
+ - Use `sap_list_all_agents` for global directory requests or when the user asks
32
+ for the whole SAP ecosystem. Keep the first page small and follow
33
+ `pagination.nextCursor` only when the previous page is useful.
34
+ - Use paid discovery only when the user needs search, enrichment, full rows,
35
+ large pages, analytics, or global enumeration beyond the free compact page.
36
+ - Prefer exact filters before broad scans: `wallet` when a wallet is known,
37
+ `query` for an agent name such as `XONA`, and `capability` for one exact
38
+ capability such as `creative:imageGeneration`.
24
39
  - Use `sap_fetch_protocol_index` when the protocol ID is known.
25
40
  - Use `sap_fetch_capability_index` when the capability ID is known.
41
+ - If a capability-filtered lookup returns zero results, retry with `query` or
42
+ `wallet` before claiming the agent does not exist; capability indexes can lag
43
+ the canonical AgentAccount directory.
26
44
  - Do not guess that global enumeration is impossible; try `sap_list_all_agents`
27
- first.
45
+ first and report the exact failure if it fails.
46
+ - If discovery hits `payment_required`, a transient RPC error, or a missing
47
+ local bridge, call `sap_agent_next_action` before retrying or changing route.
28
48
 
29
49
  ## Common Inputs
30
50
 
31
51
  - Protocol IDs: `sap`, `jupiter`, `pyth`, `sns`, `mcp-v1`, or the exact
32
52
  protocol ID returned by protocol indexes.
33
53
  - Capability IDs usually use namespaced form such as `jupiter:swap`.
54
+ - For x402-enabled agents, set `hasX402Endpoint: true` and use `view:
55
+ "compact"` until the user selects one row.
@@ -7,6 +7,17 @@ new work.
7
7
 
8
8
  ## Tools
9
9
 
10
+ Hosted unsigned builders:
11
+
12
+ - `sap_escrow_build_create_transaction`
13
+ - `sap_escrow_build_deposit_transaction`
14
+ - `sap_escrow_build_settle_transaction`
15
+ - `sap_escrow_build_finalize_transaction`
16
+ - `sap_escrow_build_withdraw_transaction`
17
+ - `sap_escrow_build_close_transaction`
18
+
19
+ Local-signer direct writes:
20
+
10
21
  - `sap_create_escrow_v2`
11
22
  - `sap_deposit_escrow_v2`
12
23
  - `sap_settle_escrow_v2`
@@ -26,13 +37,20 @@ recommend V1 create, deposit, settle, withdraw, close, or batch-settle flows.
26
37
  ## Flow
27
38
 
28
39
  1. Fetch V2 escrow state before mutating it.
29
- 2. For V2 settlement, inspect pending settlement and dispute state.
30
- 3. Explain amount, depositor, agent PDA, nonce, settlement index, and dispute
40
+ 2. In hosted SAP MCP, never call direct escrow write tools after
41
+ `hosted_local_signer_required`. Use the matching
42
+ `sap_escrow_build_*_transaction` tool, then finalize the unsigned
43
+ transaction locally with `sap_payments_finalize_transaction`.
44
+ 3. In local SAP MCP stdio mode, direct write tools can sign through the active
45
+ local SAP profile. Do not read keypair JSON or create temporary signing
46
+ scripts.
47
+ 4. For V2 settlement, inspect pending settlement and dispute state.
48
+ 5. Explain amount, depositor, agent PDA, nonce, settlement index, and dispute
31
49
  effect before write tools.
32
- 4. Treat `settlementSecurity = 2` / DisputeWindow as the safe default.
50
+ 6. Treat `settlementSecurity = 2` / DisputeWindow as the safe default.
33
51
  Use `settlementSecurity = 1` / CoSigned only when a valid `coSigner` is
34
52
  provided. Never default to SelfReport / `0`.
35
- 5. Amounts are always in the smallest unit of the escrow token: lamports for
53
+ 7. Amounts are always in the smallest unit of the escrow token: lamports for
36
54
  SOL, micro-USDC for USDC.
37
55
 
38
56
  ## Safety
@@ -8,16 +8,37 @@ safe signing behavior.
8
8
 
9
9
  If the user says "Start SAP MCP", "Initialize SAP MCP", "Load SAP", or "SAP
10
10
  mode", treat it as the activation command. Call `sap_agent_start` when it is
11
- available, then call `sap_skills_bundle` with `includeContents: true` and load
12
- the returned SAP MCP skill contents into context.
11
+ available, then call `sap_agent_runtime_status` with the closest intent and
12
+ `sap_skills_bundle` with `includeContents: true`. Load the returned SAP MCP
13
+ skill contents into context before selecting advanced tools.
14
+
15
+ If the MCP runtime exposes prompts, use `sap-agent-intent-router` as the compact
16
+ decision prompt before paid calls, registry writes, escrow flows, identity
17
+ updates, or after SAP/x402/MCP errors. It routes the user intent to hosted
18
+ reads, `sap_payments_*`, unsigned builders, transaction finalization, or repair
19
+ without requiring a long pasted prompt from the user.
13
20
 
14
21
  Always inspect runtime context through MCP tools, not by reading config files:
15
22
 
16
23
  1. `sap_agent_start`
17
- 2. `sap_profile_current`
18
- 3. `sap_profile_list`
19
- 4. `sap_profile_public_key`
20
- 5. `sap_network_stats`
24
+ 2. `sap_agent_runtime_status` with `intent: "connection"`, `"paid-call"`, `"registry-write"`, `"transaction-finalize"`, `"escrow"`, `"identity"`, or `"general"`
25
+ 3. `sap_agent_context` for free compact agent/directory orientation before paid discovery
26
+ 4. `sap_skills_bundle` with `includeContents: true`
27
+ 5. `sap_pricing_catalog` before estimating hosted paid call tiers
28
+ 6. `sap_agent_next_action` before retrying after any SAP MCP error or partial write result
29
+ 7. `sap_skills_upgrade_plan` when local skills are missing or stale
30
+ 8. `sap_runtime_repair_plan` when hosted tools are connected but `sap_payments` is missing
31
+ 9. `sap_protocol_invariants` before SAP registry writes or when treasury, protocol fee, hosted write routing, or local signer routing is unclear
32
+ 10. `sap_agent_identity_plan` before agent registration, profile-image updates, Metaplex identity, SNS linking, or full identity setup
33
+ 11. `sap_profile_current`
34
+ 12. `sap_profile_list`
35
+ 13. `sap_profile_public_key`
36
+ 14. `sap_network_stats`
37
+
38
+ For simple "are you connected?" checks, do not dump tool counts or inspect
39
+ local files. Use `sap_agent_runtime_status` first and answer with the hosted
40
+ endpoint, accountless/non-custodial model, local bridge readiness if visible,
41
+ and the next exact action.
21
42
 
22
43
  The server profile is the source of truth. Environment variables from the MCP
23
44
  client must not override profile-owned RPC or wallet settings unless
@@ -32,12 +53,29 @@ and error strings unchanged.
32
53
 
33
54
  ## Discovery Rules
34
55
 
56
+ - Treat SAP registry, balances, SNS ownership, quotes, settlement status, and
57
+ agent profile reads as fresh data. Do not rely on old chat memory when the
58
+ user asks for current state; use exact lightweight reads first, then paid
59
+ discovery only when enrichment or broad search is needed.
60
+ - Use free exact/base reads first when the wallet, PDA, or a small orientation
61
+ page is enough: `sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
62
+ `sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and
63
+ `sap_list_agents` with `limit <= 20`, `view: "compact"`, and
64
+ `includeProtocolIndexes: false`.
35
65
  - Use `sap_get_network_overview` for live ecosystem counters.
66
+ - Use `sap_discover_agents` for targeted paid hosted discovery. Prefer
67
+ `query`, `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`,
68
+ `hasX402Endpoint`, and small `limit` values before broad scans.
36
69
  - Use `sap_list_all_agents` when the user asks for all current SAP ecosystem
37
- agents. It performs global on-chain `AgentAccount` enumeration.
38
- - Use `sap_discover_agents` or `sap_list_agents` only for filtered lookups by
39
- `protocol`, `capability`, or `capabilities`.
70
+ agents. It performs global on-chain `AgentAccount` enumeration and returns
71
+ `pagination.nextCursor` when more pages are available.
72
+ - Use `sap_list_agents` for a free compact orientation page first. Larger
73
+ pages, `view: "full"`, hydration, protocol index summaries, and global scans
74
+ are paid read-premium.
40
75
  - Use `sap_fetch_protocol_index` when a specific protocol ID is known.
76
+ - If a capability lookup returns zero results, retry with `query` or `wallet`
77
+ before saying an agent is absent. AgentAccount rows are canonical; indexes can
78
+ lag.
41
79
  - Do not tell the user that all-agent enumeration is impossible unless
42
80
  `sap_list_all_agents` fails and you report the exact failure.
43
81
 
@@ -61,12 +99,19 @@ Use the bundled routing map for local MCP tool selection:
61
99
  - `USER_DOCS/05_SKILLS_AND_TOOLS.md`
62
100
 
63
101
  SAP MCP startup and skill bootstrap tools are free context/setup tools. Call
64
- `sap_agent_start`, `sap_skills_list`, `sap_skills_bundle`, and local
65
- `sap_skills_install` directly. Do not route startup, skill listing, bundling, or
66
- installation through `sap_x402_paid_call`. On hosted remote MCP, use
102
+ `sap_agent_start`, `sap_agent_runtime_status`, `sap_agent_context`,
103
+ `sap_agent_next_action`, `sap_pricing_catalog`,
104
+ `sap_skills_list`, `sap_skills_bundle`, `sap_skills_upgrade_plan`,
105
+ `sap_runtime_repair_plan`, and local `sap_skills_install` directly. Do not
106
+ route startup, runtime status, pricing catalog, skill listing, bundling,
107
+ upgrade planning, runtime repair planning, or installation through
108
+ `sap_x402_paid_call` or `sap_payments_call_paid_tool`. On hosted remote MCP, use
67
109
  `sap_skills_bundle` to download skill contents; the hosted server cannot
68
110
  install files onto the caller's local machine. Local installation belongs to the
69
111
  wizard, desktop app, addon installer, or a local stdio SAP MCP process.
112
+ If skills or runtime bridge config are stale, call `sap_skills_upgrade_plan` or
113
+ `sap_runtime_repair_plan` first. These tools return the pinned latest-release
114
+ commands and preserve the non-custodial local signing model.
70
115
 
71
116
  ## Hosted Remote MCP
72
117
 
@@ -114,12 +159,13 @@ actions. The hosted MCP server is not a wallet custodian.
114
159
 
115
160
  For hosted paid tools, use the native x402 flow. If the client runtime cannot
116
161
  attach `PAYMENT-SIGNATURE` itself, use the local SAP MCP `sap_payments` bridge.
117
- Call `sap_payments_readiness` first to verify the active profile, signer,
118
- SOL/USDC balance, policy limits, and bridge status. Then call
119
- `sap_payments_call_paid_tool` for the hosted paid tool. This is not a separate
120
- hosted signing plugin: it is the local SAP MCP process using the user's
121
- configured SAP profile wallet or external signer to sign the x402 payment
122
- payload, retry the hosted tool call, and return the receipt.
162
+ Call `sap_agent_runtime_status` first for routing, then
163
+ `sap_payments_readiness` to verify the active profile, signer, SOL/USDC
164
+ balance, policy limits, and bridge status. Then call `sap_payments_call_paid_tool`
165
+ for the hosted paid tool. This is not a separate hosted signing plugin: it is
166
+ the local SAP MCP process using the user's configured SAP profile wallet or
167
+ external signer to sign the x402 payment payload, retry the hosted tool call,
168
+ and return the receipt.
123
169
  `sap_x402_paid_call` is a backward-compatible alias only for older runtime
124
170
  snippets. Neither helper must be treated as a remote hosted signing service.
125
171
 
@@ -139,10 +185,19 @@ Use `sap_payments.sap_payments_profile_current` only as a narrower compatibility
139
185
  profile check.
140
186
 
141
187
  Basic wallet reads are free on hosted SAP MCP. Call `sol_get_balance`,
142
- `spl-token_getBalance`, and `spl-token_getTokenAccounts` directly on the hosted
143
- server. Do not send these balance checks through `sap_payments_call_paid_tool`,
144
- and do not summarize a balance read as a facilitator `BlockhashNotFound`
145
- problem unless a paid tool actually returned that error.
188
+ `spl-token_getBalance`, `spl-token_getTokenAccounts`, and `magicblock_balance`
189
+ directly on the hosted server. Do not send these balance checks through
190
+ `sap_payments_call_paid_tool`, and do not summarize a balance read as a
191
+ facilitator `BlockhashNotFound` problem unless a paid tool actually returned
192
+ that error. Use `jupiter_getHoldings` only when the user needs enriched paid
193
+ portfolio context.
194
+
195
+ Before any paid tool call, use `sap_estimate_tool_cost` with the tool name to
196
+ get the exact pricing tier, estimated USD cost, and recommended `maxPriceUsd`.
197
+ This prevents silent cap aborts and failed x402 attempts on local-signer-only
198
+ tools. For local-signer-only tools (e.g. `sap_register_agent`), the estimate
199
+ will say `tier: "local-signer-only"` and tell you to use the local
200
+ `sap_payments_*` equivalent instead of `sap_payments_call_paid_tool`.
146
201
 
147
202
  If a hosted paid tool returns `BlockhashNotFound`,
148
203
  `transaction_simulation_failed`, `smart_wallet_simulation_failed`, `node is
@@ -155,6 +210,52 @@ and arguments, `confirm: true`, and `maxAttempts: 5` so a fresh payment payload
155
210
  is created. Use `sap_x402_paid_call` only when a runtime still exposes the
156
211
  legacy alias.
157
212
 
213
+ When a hosted paid/write builder returns `transactionBase64`, `transaction`, or
214
+ another unsigned Solana transaction payload, finalize it locally with
215
+ `sap_payments_finalize_transaction`. Do not call hosted `sap_sign_transaction`
216
+ for a user-owned signer, do not create `.js`/`.mjs` signing scripts, and do not
217
+ read keypair JSON.
218
+
219
+ If hosted SAP MCP returns `hosted_local_signer_required`, no x402 payment was
220
+ charged. The tool requires a local user signature or has no hosted unsigned
221
+ builder yet. For `sap_register_agent`, call
222
+ `sap_payments.sap_payments_register_agent` with the same registration fields and
223
+ `confirm: true`; it runs the SAP registry write through the local signer bridge
224
+ without charging a hosted x402 access fee. For `sap_update_agent`, call
225
+ `sap_payments.sap_payments_update_agent` with the intended replacement fields
226
+ and `confirm: true`; use it for public agent image/profile metadata updates via
227
+ `agentUri` or `metadataUri`. For Escrow V2, call the matching
228
+ `sap_escrow_build_*_transaction` hosted builder and finalize with
229
+ `sap_payments_finalize_transaction`. For other direct writes, do not retry the
230
+ same hosted tool; use the local SAP MCP profile or an unsigned hosted builder
231
+ plus `sap_payments_finalize_transaction` when one exists.
232
+
233
+ For registry lifecycle completion, do not treat a transaction signature alone
234
+ as enough. After `sap_payments_register_agent`, verify `success`,
235
+ `agentRegistered`, `agentPda`, `confirmationStatus`, `protocolComplete`, and
236
+ the returned `protocolFee.status`. `success: true` means both the agent account
237
+ and protocol fee invariant were verified. If `success` is false while
238
+ `agentRegistered` is true, report that the account may exist but the SAP
239
+ protocol registration lifecycle is not complete. After
240
+ `sap_payments_update_agent`, fetch the agent again and confirm the changed
241
+ fields before saying an image, metadata, pricing, or capability update is done.
242
+ If an update returns Anchor 3012, `AccountNotInitialized`, or `pricing_menu`, do
243
+ not call runtime repair or retry the same write. Route it through
244
+ `sap_agent_next_action` and `sap_protocol_invariants`; it is an SAP on-chain
245
+ registry lifecycle issue, not a missing local bridge.
246
+
247
+ Before any write-like operation, use this routing order:
248
+
249
+ 1. Hosted read or paid hosted read: direct hosted tool, or
250
+ `sap_payments_call_paid_tool` when x402 is required.
251
+ 2. Hosted unsigned transaction builder: finalize with
252
+ `sap_payments_finalize_transaction` and `submit: true` when the user confirms.
253
+ 3. SAP registry registration/update: use `sap_payments_register_agent` or
254
+ `sap_payments_update_agent`; do not retry hosted accountless writes.
255
+ 4. External x402 HTTP provider: use `sap_payments_call_external_x402`.
256
+ 5. Missing bridge: call `sap_runtime_repair_plan`, then tell the user to run the
257
+ pinned repair command or desktop wizard repair path.
258
+
158
259
  When summarizing a hosted connection, use language like:
159
260
  "server is non-custodial; user signatures come from the local SAP profile or
160
261
  external signer." Avoid saying "signer not configured", "read-only only",
@@ -170,6 +271,23 @@ the current agent runtime injected every tool as callable. If `tools/list`
170
271
  works but callable functions are missing, report a runtime reload/injection
171
272
  issue and ask the user to restart the runtime.
172
273
 
274
+ If `sap_payments` tools are missing after the user says the wizard completed,
275
+ call `sap_runtime_repair_plan`. Do not ask the user to manually rebuild their
276
+ runtime config unless the repair plan has already failed or runtime startup logs
277
+ show a concrete package/runtime error.
278
+
279
+ For agent identity work, load the matching focused skills before acting:
280
+
281
+ - register, update, profile image, capability, pricing, or x402 endpoint:
282
+ `sap-agent-registry`
283
+ - NFT-backed identity, MPL Core, Metaplex metadata, creator/collection flows:
284
+ `sap-nft-metaplex`
285
+ - `.sol` domain ownership, records, or primary identity:
286
+ `sap-sns`
287
+
288
+ The canonical field and pipeline reference is
289
+ `docs/16_SAP_AGENT_IDENTITY_PIPELINE.md`. Follow it before registry writes.
290
+
173
291
  ## Profile Tools
174
292
 
175
293
  | Tool | Purpose |
@@ -37,7 +37,7 @@ Profile, config, runtime context, and raw transaction lifecycle:
37
37
 
38
38
  SAP registry and discovery:
39
39
 
40
- `sap_register_agent`, `sap_update_agent`, `sap_deactivate_agent`,
40
+ `sap_protocol_invariants`, `sap_agent_identity_plan`, `sap_register_agent`, `sap_update_agent`, `sap_deactivate_agent`,
41
41
  `sap_reactivate_agent`, `sap_close_agent`, `sap_get_agent`,
42
42
  `sap_get_agent_profile`, `sap_get_agent_stats`, `sap_get_global_state`,
43
43
  `sap_get_network_overview`, `sap_discover_agents`, `sap_list_agents`,
@@ -49,9 +49,30 @@ SAP registry and discovery:
49
49
  `sap_deactivate_tool`, `sap_reactivate_tool`,
50
50
  `sap_report_tool_invocations`, `sap_report_calls`.
51
51
 
52
- Use `sap_list_all_agents` for user requests such as "give me a list of all
53
- agents in the SAP ecosystem rn". Use `sap_discover_agents` only when the user
54
- provides a protocol or capability filter.
52
+ Use free exact/base reads before paid discovery when possible:
53
+ `sap_agent_context`, `sap_get_agent`, `sap_get_agent_profile`,
54
+ `sap_get_agent_stats`, `sap_is_agent_active`, `sap_get_global_state`, and
55
+ `sap_list_agents` with `limit <= 20`, `view: "compact"`, and
56
+ `includeProtocolIndexes: false`.
57
+ Use `sap_discover_agents` for targeted paid hosted search by `query`, `wallet`,
58
+ `agentPda`, `protocol`, `capability`, `capabilities`, or `hasX402Endpoint`.
59
+ Use paid `sap_list_all_agents` for user requests such as "give me a list of all
60
+ agents in the SAP ecosystem rn"; start with a small `limit` and continue with
61
+ `pagination.nextCursor`. If a capability lookup returns zero, retry with
62
+ `query` or `wallet` before reporting that the agent is absent.
63
+
64
+ Use `sap_agent_next_action` before retrying any SAP MCP error or partial write
65
+ result. It normalizes `payment_required`, `hosted_local_signer_required`,
66
+ transient Solana RPC failures, missing local bridge tools, and unconfirmed
67
+ submitted signatures into the next safe tool route.
68
+
69
+ Use `sap_protocol_invariants` before registry writes when the program id,
70
+ protocol treasury, source-level 0.1 SOL registration fee invariant, hosted
71
+ write route, or local signer route is unclear. Use `sap_agent_identity_plan`
72
+ before registration,
73
+ profile/image updates, Metaplex identity bridging, SNS linking, or x402
74
+ endpoint publishing. It is a free planner and should run before any local
75
+ signer write.
55
76
 
56
77
  SAP memory and sessions:
57
78
 
@@ -72,6 +93,12 @@ SAP payments, x402, subscriptions, Escrow V2, settlement, disputes, staking:
72
93
  `sap_x402_prepare_payment`, `sap_x402_get_balance`,
73
94
  `sap_create_subscription`, `sap_fund_subscription`,
74
95
  `sap_cancel_subscription`, `sap_fetch_subscription`,
96
+ `sap_escrow_build_create_transaction`,
97
+ `sap_escrow_build_deposit_transaction`,
98
+ `sap_escrow_build_settle_transaction`,
99
+ `sap_escrow_build_finalize_transaction`,
100
+ `sap_escrow_build_withdraw_transaction`,
101
+ `sap_escrow_build_close_transaction`,
75
102
  `sap_create_escrow_v2`, `sap_deposit_escrow_v2`,
76
103
  `sap_settle_escrow_v2`, `sap_finalize_settlement_v2`,
77
104
  `sap_file_dispute_v2`, `sap_withdraw_escrow_v2`, `sap_close_escrow_v2`,
@@ -83,6 +110,13 @@ SAP payments, x402, subscriptions, Escrow V2, settlement, disputes, staking:
83
110
  Use `sap_fetch_escrow` only for legacy read-only inspection. V1 escrow write
84
111
  tools are not part of the active SAP MCP surface.
85
112
 
113
+ In hosted mode, prefer `sap_escrow_build_*_transaction` for Escrow V2 writes
114
+ and finalize the returned unsigned transaction locally with
115
+ `sap_payments_finalize_transaction`. Use direct `sap_create_escrow_v2`,
116
+ `sap_deposit_escrow_v2`, `sap_settle_escrow_v2`,
117
+ `sap_finalize_settlement_v2`, `sap_withdraw_escrow_v2`, and
118
+ `sap_close_escrow_v2` only when running a local SAP MCP profile with a signer.
119
+
86
120
  ## `sap-sns`
87
121
 
88
122
  SAP SNS and direct SNS domain workflows:
@@ -92,13 +126,16 @@ SAP SNS and direct SNS domain workflows:
92
126
  `sap_sns_get_domain_records`, `sap_sns_get_record`,
93
127
  `sap_sns_resolve_wallet`, `sap_sns_check_ownership`,
94
128
  `sap_sns_get_domain_pda`, `sap_sns_get_record_pda`,
95
- `sap_sns_build_register_domain_transaction`,
96
129
  `sap_sns_build_manage_record_transaction`,
97
- `sap_sns_build_set_primary_domain_transaction`,
98
130
  `sap_sns_register_agent_domain`, `sns_registerDomain`, `sns_resolveDomain`,
99
131
  `sns_reverseLookup`, `alldomains_getOwnedDomains`,
100
132
  `alldomains_registerDomain`, `alldomains_resolveDomain`.
101
133
 
134
+ `sap_sns_register_agent_domain` is local-signer-only. Hosted accountless SAP MCP
135
+ rejects that direct write before x402 payment. For hosted record changes, use
136
+ `sap_sns_build_manage_record_transaction` and finalize the unsigned transaction
137
+ locally with `sap_payments_finalize_transaction`.
138
+
102
139
  ## `sap-agentkit`
103
140
 
104
141
  Solana RPC, SPL token, pricing, DAS:
@@ -164,7 +201,10 @@ Protocol routing shortcuts:
164
201
 
165
202
  | User intent | Most specific tools |
166
203
  | --- | --- |
167
- | SOL or SPL balance | `sol_get_balance`, `spl-token_getBalance`, `spl-token_getTokenAccounts` |
204
+ | SOL or SPL balance (free) | `sol_get_balance`, `spl-token_getBalance`, `spl-token_getTokenAccounts`, `magicblock_balance` |
205
+ | Enriched holdings (paid read-premium) | `jupiter_getHoldings` |
206
+ | Pre-call cost estimate (free) | `sap_estimate_tool_cost` |
207
+ | Pricing catalog (free) | `sap_pricing_catalog` |
168
208
  | SOL or SPL transfer | `spl-token_transferSol`, `spl-token_transfer` |
169
209
  | Token launch/mint/burn | `spl-token_deployToken`, `spl-token_mintTo`, `spl-token_burn` |
170
210
  | Jupiter quote/swap | `jupiter_getQuote`, `jupiter_smartSwap`, `jupiter_swap`, `jupiter_swapInstructions` |
@@ -32,6 +32,28 @@ flows.
32
32
  2. Validate collection, creator, metadata URI, royalties, and authority.
33
33
  3. Preview transaction-producing outputs before signing.
34
34
 
35
+ ## SAP Bridged Identity
36
+
37
+ When the user wants an SAP agent picture, NFT-backed identity, MPL Core asset,
38
+ or Metaplex-linked profile:
39
+
40
+ 1. Publish the image and metadata to a public URI. Desktop file paths are never
41
+ valid on-chain metadata.
42
+ 2. If creating a Metaplex NFT/MPL Core identity asset, mint or update that asset
43
+ with the same public metadata and keep the owner/authority clear.
44
+ 3. Register or update the SAP agent with `metadataUri`/`agentUri` pointing to
45
+ the public metadata document or profile page.
46
+ 4. In the metadata JSON, include a `metaplex` object with the asset or
47
+ collection address when available.
48
+ 5. Hosted users must use local `sap_payments_register_agent` or
49
+ `sap_payments_update_agent` for SAP registry writes. Do not call hosted
50
+ `sap_register_agent` or hosted `sap_update_agent` after
51
+ `hosted_local_signer_required`.
52
+
53
+ Load `sap-agent-registry` together with this skill when the user says “register
54
+ my agent”, “add my picture”, “link my NFT identity”, or “bridge SAP with
55
+ Metaplex”.
56
+
35
57
  ## Safety
36
58
 
37
59
  Minting, listing, buying, authority changes, and metadata updates are high-risk.
@@ -19,6 +19,8 @@ This skill corresponds to upstream SAP SDK v1.0.x domains such as
19
19
 
20
20
  Use:
21
21
 
22
+ - `sap_protocol_invariants`
23
+ - `sap_agent_identity_plan`
22
24
  - `sap_register_agent`
23
25
  - `sap_update_agent`
24
26
  - `sap_deactivate_agent`
@@ -30,9 +32,36 @@ Use:
30
32
  - `sap_list_agents`
31
33
  - `sap_list_all_agents`
32
34
 
33
- Use `sap_list_all_agents` for global current ecosystem requests. Use
34
- `sap_discover_agents` and `sap_list_agents` only when the user provides a
35
- protocol or capability filter.
35
+ Use `sap_discover_agents` for targeted hosted directory reads by `query`,
36
+ `wallet`, `agentPda`, `protocol`, `capability`, `capabilities`, or
37
+ `hasX402Endpoint`. Use `sap_list_all_agents` for global current ecosystem
38
+ requests, keep pages small, and continue with `pagination.nextCursor`.
39
+ For first-pass orientation, prefer free reads: `sap_agent_context`,
40
+ `sap_get_agent`, `sap_get_agent_profile`, `sap_get_agent_stats`,
41
+ `sap_is_agent_active`, `sap_get_global_state`, and `sap_list_agents` with `limit <= 20`,
42
+ `view: "compact"`, and `includeProtocolIndexes: false`. Use paid discovery
43
+ only when the user needs search, enrichment, full rows, large pages, analytics,
44
+ or global enumeration beyond the compact page.
45
+
46
+ Before registering or updating an agent profile, call free
47
+ `sap_protocol_invariants` when treasury, registration fee, hosted write route,
48
+ or local signer route is unclear. Then call `sap_agent_identity_plan`. The
49
+ planner tells the agent which fields are missing, whether the action should use
50
+ hosted reads or local signing, whether Metaplex or SNS identity is involved,
51
+ and how to verify the write afterward.
52
+
53
+ Hosted accountless SAP MCP cannot sign wallet-owned registry writes. If hosted
54
+ `sap_register_agent` or `sap_update_agent` returns
55
+ `hosted_local_signer_required`, do not retry the hosted write. Use local
56
+ `sap_payments_register_agent` or `sap_payments_update_agent` with
57
+ `confirm: true`. After registration, verify `success`, `agentPda`,
58
+ `confirmationStatus`, and `protocolFee.status`; after update, fetch the agent
59
+ profile again and compare the changed fields.
60
+
61
+ If any SAP operation returns `payment_required`, `hosted_local_signer_required`,
62
+ `BlockhashNotFound`, timeout, missing `sap_payments`, or a submitted signature
63
+ that did not confirm, call `sap_agent_next_action` before retrying. Follow its
64
+ `safeToRetryNow` and `nextTool` fields.
36
65
 
37
66
  ## Memory
38
67
 
@@ -9,6 +9,10 @@ workflows, and hosted SAP MCP x402/pay.sh monetization.
9
9
  - `sap_x402_get_balance`
10
10
  - `sap_payments_profile_current`
11
11
  - `sap_payments_call_paid_tool`
12
+ - `sap_payments_call_external_x402`
13
+ - `sap_payments_register_agent`
14
+ - `sap_payments_update_agent`
15
+ - `sap_payments_finalize_transaction`
12
16
  - `sap_payments_prepare_challenge`
13
17
  - `sap_payments_sign_challenge`
14
18
  - `sap_payments_verify_receipt`
@@ -41,9 +45,16 @@ hosted calls still proceed through x402/pay.sh plus the user's local SAP profile
41
45
  or external signer.
42
46
 
43
47
  - Free: `tools/list`, `prompts/list`, `resources/list`, `sap_profile_current`,
44
- `sap_get_network_overview`, `sol_get_balance`, `spl-token_getBalance`, and
45
- `spl-token_getTokenAccounts`.
46
- - Read premium: `sap_list_all_agents`, indexed discovery, network stats,
48
+ `sap_agent_start`, `sap_agent_runtime_status`, `sap_agent_context`,
49
+ `sap_agent_next_action`, `sap_estimate_tool_cost`, `sap_pricing_catalog`,
50
+ exact SAP agent/profile reads, compact `sap_list_agents` pages with
51
+ `limit <= 20`, `sap_get_network_overview`, core balance checks
52
+ (`sol_get_balance`, `spl-token_getBalance`, `spl-token_getTokenAccounts`,
53
+ `spl-token_getMint`, `spl-token_getSupply`, `magicblock_balance`,
54
+ `sap_x402_get_balance`). Enriched holdings such as `jupiter_getHoldings`
55
+ are paid read-premium.
56
+ - Read premium: `sap_discover_agents`, `sap_list_all_agents`, full/enriched or
57
+ large `sap_list_agents` pages, indexed discovery, network stats,
47
58
  protocol/capability indexes.
48
59
  - Builder: batch SNS/domain checks, analytics, transaction builders.
49
60
  - Value action: fixed fee plus configured basis-points fee when public USD
@@ -54,6 +65,11 @@ instructions, create a payment, retry with `PAYMENT-SIGNATURE`, and capture
54
65
  `PAYMENT-RESPONSE` after settlement. If a `payShCheckoutUrl` is present, surface
55
66
  it for browser/manual checkout flows.
56
67
 
68
+ Before retrying `payment_required`, `hosted_local_signer_required`,
69
+ `BlockhashNotFound`, timeout, missing `sap_payments`, or an unconfirmed
70
+ signature, call `sap_agent_next_action`. Use its `safeToRetryNow`, `nextTool`,
71
+ and `paymentCharged` fields as the retry guard.
72
+
57
73
  For fast x402 execution:
58
74
 
59
75
  1. Reuse the MCP session returned by `initialize`.
@@ -61,16 +77,26 @@ For fast x402 execution:
61
77
  change, but the tool name and arguments must match the challenge.
62
78
  3. Use `PAYMENT-SIGNATURE` first; use `X-PAYMENT` only for clients that require
63
79
  the alternate header.
64
- 4. Cache free `tools/list`, `prompts/list`, and `resources/list` locally rather
65
- than paying or re-fetching repeatedly.
80
+ 4. Cache only static MCP surface metadata such as `tools/list`, `prompts/list`,
81
+ and `resources/list` inside the runtime when useful. Do not cache on-chain
82
+ balances, SAP agent rows, pricing, SNS ownership, quotes, or settlement
83
+ state when the user expects fresh data.
66
84
  5. Treat `PAYMENT-RESPONSE` as the receipt bound to the tool output.
67
85
  6. If the client runtime cannot sign or attach x402 payment headers itself, use
68
86
  the local SAP MCP `sap_payments_call_paid_tool` bridge configured by the SAP
69
87
  MCP wizard instead of falling back to local stdio automatically.
70
88
 
71
- Do not use x402 for basic balance reads. `sol_get_balance`,
72
- `spl-token_getBalance`, and `spl-token_getTokenAccounts` are free hosted tools
73
- and should be called directly through the remote SAP MCP connection.
89
+ Do not use x402 for core balance reads. `sol_get_balance`,
90
+ `spl-token_getBalance`, `spl-token_getTokenAccounts`, `magicblock_balance`,
91
+ and `sap_x402_get_balance` are free hosted tools and should be called directly
92
+ through the remote SAP MCP connection. Use `jupiter_getHoldings` only when the
93
+ user needs enriched paid portfolio context. Always verify USDC and SOL balances
94
+ before attempting paid calls — an agent without USDC cannot make paid calls.
95
+
96
+ Before any paid tool call, use `sap_estimate_tool_cost` with the tool name to
97
+ get the exact tier, estimated USD cost, and recommended `maxPriceUsd`. This
98
+ prevents silent cap aborts and avoids wasting x402 attempts on local-signer-only
99
+ tools that never issue a 402 challenge.
74
100
 
75
101
  When available locally, call `sap_payments_call_paid_tool` with `toolName`,
76
102
  `arguments`, `maxPriceUsd`, and `confirm: true`. It initializes the hosted MCP
@@ -81,6 +107,57 @@ SAP MCP `sap_payments` bridge is already configured. The legacy
81
107
  `sap_x402_paid_call` alias is acceptable only when a runtime has not refreshed
82
108
  to the new tool name.
83
109
 
110
+ For external x402 agents discovered through SAP registry metadata, do not
111
+ hand-roll HTTP payment scripts. Call `sap_payments_call_external_x402` with
112
+ `url`, `method`, optional JSON `body`, `maxPriceUsd`, `maxAttempts`, and
113
+ `confirm: true`. Use this for non-SAP-hosted HTTP providers such as another
114
+ agent's own x402 endpoint. It fetches the external 402 challenge, signs locally,
115
+ retries the same HTTP request with `PAYMENT-SIGNATURE`, and returns the response
116
+ plus receipt without exposing keypair bytes.
117
+
118
+ For hosted-user SAP agent registration, do not retry hosted
119
+ `sap_register_agent` after `hosted_local_signer_required`. The hosted server is
120
+ accountless by design and cannot sign user-owned registry writes. Call local
121
+ `sap_payments_register_agent` with the same registration fields and
122
+ `confirm: true`; it uses the active local SAP MCP profile signer, submits the
123
+ SAP registry transaction locally, and does not charge a hosted x402 access fee.
124
+ After it returns, verify `success`, `agentRegistered`, `confirmationStatus`,
125
+ `agentPda`, `protocolComplete`, and `protocolFee.status`. The expected protocol
126
+ fee is `100000000` lamports to treasury
127
+ `J7PyZAGKvprCz4SQ5DKBLAHstJxgVqZcz6kguUoWpP7P`. `success: true` means the agent
128
+ account and protocol fee invariant were both verified. If `success` is false
129
+ while `agentRegistered` is true, the account may exist but registration is not
130
+ SAP protocol-complete; report that state and do not retry automatically.
131
+
132
+ For hosted-user SAP agent profile updates, do not retry hosted
133
+ `sap_update_agent` after `hosted_local_signer_required`. Call local
134
+ `sap_payments_update_agent` with the intended replacement fields and
135
+ `confirm: true`; it signs locally and does not charge a hosted x402 access fee.
136
+ Use this for agent picture/profile metadata by first uploading the image or
137
+ metadata JSON to a public URI such as IPFS, Arweave, Kommodo, or HTTPS, then
138
+ setting `agentUri` or `metadataUri`. Do not use desktop file paths.
139
+ After update, fetch the agent profile again and verify the changed fields.
140
+
141
+ If the hosted paid tool returns `transactionBase64`, `transaction`, or an
142
+ unsigned transaction object, call `sap_payments_finalize_transaction` with
143
+ `confirm: true`. Set `submit: false` for preview/sign only, or `submit: true`
144
+ after the user approves execution. With `submit: true`, the bridge submits
145
+ already-signed bytes through `https://mcp.sap.oobeprotocol.ai/tx/submit` by
146
+ default and returns `confirmationStatus` plus `retrySafe`. Treat
147
+ `expired_or_not_landed` as unresolved, not success. Never create temporary
148
+ signing scripts, read keypair JSON, or call hosted `sap_sign_transaction` for
149
+ user-owned signatures.
150
+
151
+ For Escrow V2 hosted workflows, use the unsigned builder family first:
152
+ `sap_escrow_build_create_transaction`,
153
+ `sap_escrow_build_deposit_transaction`,
154
+ `sap_escrow_build_settle_transaction`,
155
+ `sap_escrow_build_finalize_transaction`,
156
+ `sap_escrow_build_withdraw_transaction`, or
157
+ `sap_escrow_build_close_transaction`, then finalize locally with
158
+ `sap_payments_finalize_transaction`. Use direct escrow write tools only when a
159
+ local SAP MCP profile with signer is the selected runtime.
160
+
84
161
  Use low-level helpers only for custom clients:
85
162
 
86
163
  - `sap_payments_prepare_challenge` returns the parsed hosted x402 challenge