@oobe-protocol-labs/synapse-client-sdk 1.2.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/CHANGELOG.md +176 -0
  2. package/README.md +230 -17
  3. package/dist/cjs/ai/actions/blinks.d.ts +158 -0
  4. package/dist/cjs/ai/actions/blinks.d.ts.map +1 -0
  5. package/dist/cjs/ai/actions/blinks.js +232 -0
  6. package/dist/cjs/ai/actions/blinks.js.map +1 -0
  7. package/dist/cjs/ai/actions/index.d.ts +51 -0
  8. package/dist/cjs/ai/actions/index.d.ts.map +1 -0
  9. package/dist/cjs/ai/actions/index.js +61 -0
  10. package/dist/cjs/ai/actions/index.js.map +1 -0
  11. package/dist/cjs/ai/actions/server.d.ts +188 -0
  12. package/dist/cjs/ai/actions/server.d.ts.map +1 -0
  13. package/dist/cjs/ai/actions/server.js +404 -0
  14. package/dist/cjs/ai/actions/server.js.map +1 -0
  15. package/dist/cjs/ai/actions/types.d.ts +251 -0
  16. package/dist/cjs/ai/actions/types.d.ts.map +1 -0
  17. package/dist/cjs/ai/actions/types.js +16 -0
  18. package/dist/cjs/ai/actions/types.js.map +1 -0
  19. package/dist/cjs/ai/gateway/index.d.ts +1 -0
  20. package/dist/cjs/ai/gateway/index.d.ts.map +1 -1
  21. package/dist/cjs/ai/gateway/index.js +6 -1
  22. package/dist/cjs/ai/gateway/index.js.map +1 -1
  23. package/dist/cjs/ai/gateway/monetize.d.ts +222 -0
  24. package/dist/cjs/ai/gateway/monetize.d.ts.map +1 -0
  25. package/dist/cjs/ai/gateway/monetize.js +316 -0
  26. package/dist/cjs/ai/gateway/monetize.js.map +1 -0
  27. package/dist/cjs/ai/index.d.ts +7 -2
  28. package/dist/cjs/ai/index.d.ts.map +1 -1
  29. package/dist/cjs/ai/index.js +78 -2
  30. package/dist/cjs/ai/index.js.map +1 -1
  31. package/dist/cjs/ai/intents/executor.d.ts +102 -0
  32. package/dist/cjs/ai/intents/executor.d.ts.map +1 -0
  33. package/dist/cjs/ai/intents/executor.js +335 -0
  34. package/dist/cjs/ai/intents/executor.js.map +1 -0
  35. package/dist/cjs/ai/intents/index.d.ts +52 -0
  36. package/dist/cjs/ai/intents/index.d.ts.map +1 -0
  37. package/dist/cjs/ai/intents/index.js +60 -0
  38. package/dist/cjs/ai/intents/index.js.map +1 -0
  39. package/dist/cjs/ai/intents/parser.d.ts +106 -0
  40. package/dist/cjs/ai/intents/parser.d.ts.map +1 -0
  41. package/dist/cjs/ai/intents/parser.js +189 -0
  42. package/dist/cjs/ai/intents/parser.js.map +1 -0
  43. package/dist/cjs/ai/intents/planner.d.ts +96 -0
  44. package/dist/cjs/ai/intents/planner.d.ts.map +1 -0
  45. package/dist/cjs/ai/intents/planner.js +270 -0
  46. package/dist/cjs/ai/intents/planner.js.map +1 -0
  47. package/dist/cjs/ai/intents/types.d.ts +281 -0
  48. package/dist/cjs/ai/intents/types.d.ts.map +1 -0
  49. package/dist/cjs/ai/intents/types.js +70 -0
  50. package/dist/cjs/ai/intents/types.js.map +1 -0
  51. package/dist/cjs/ai/mcp/client.d.ts +71 -0
  52. package/dist/cjs/ai/mcp/client.d.ts.map +1 -0
  53. package/dist/cjs/ai/mcp/client.js +675 -0
  54. package/dist/cjs/ai/mcp/client.js.map +1 -0
  55. package/dist/cjs/ai/mcp/index.d.ts +16 -0
  56. package/dist/cjs/ai/mcp/index.d.ts.map +1 -0
  57. package/dist/cjs/ai/mcp/index.js +27 -0
  58. package/dist/cjs/ai/mcp/index.js.map +1 -0
  59. package/dist/cjs/ai/mcp/server.d.ts +115 -0
  60. package/dist/cjs/ai/mcp/server.d.ts.map +1 -0
  61. package/dist/cjs/ai/mcp/server.js +624 -0
  62. package/dist/cjs/ai/mcp/server.js.map +1 -0
  63. package/dist/cjs/ai/mcp/types.d.ts +215 -0
  64. package/dist/cjs/ai/mcp/types.d.ts.map +1 -0
  65. package/dist/cjs/ai/mcp/types.js +17 -0
  66. package/dist/cjs/ai/mcp/types.js.map +1 -0
  67. package/dist/cjs/ai/plugins/blinks/index.d.ts +22 -0
  68. package/dist/cjs/ai/plugins/blinks/index.d.ts.map +1 -0
  69. package/dist/cjs/ai/plugins/blinks/index.js +202 -0
  70. package/dist/cjs/ai/plugins/blinks/index.js.map +1 -0
  71. package/dist/cjs/ai/plugins/blinks/schemas.d.ts +4 -0
  72. package/dist/cjs/ai/plugins/blinks/schemas.d.ts.map +1 -0
  73. package/dist/cjs/ai/plugins/blinks/schemas.js +103 -0
  74. package/dist/cjs/ai/plugins/blinks/schemas.js.map +1 -0
  75. package/dist/cjs/ai/plugins/defi/index.d.ts +44 -0
  76. package/dist/cjs/ai/plugins/defi/index.d.ts.map +1 -0
  77. package/dist/cjs/ai/plugins/defi/index.js +490 -0
  78. package/dist/cjs/ai/plugins/defi/index.js.map +1 -0
  79. package/dist/cjs/ai/plugins/defi/schemas.d.ts +13 -0
  80. package/dist/cjs/ai/plugins/defi/schemas.d.ts.map +1 -0
  81. package/dist/cjs/ai/plugins/defi/schemas.js +573 -0
  82. package/dist/cjs/ai/plugins/defi/schemas.js.map +1 -0
  83. package/dist/cjs/ai/plugins/index.d.ts +30 -0
  84. package/dist/cjs/ai/plugins/index.d.ts.map +1 -0
  85. package/dist/cjs/ai/plugins/index.js +40 -0
  86. package/dist/cjs/ai/plugins/index.js.map +1 -0
  87. package/dist/cjs/ai/plugins/misc/index.d.ts +28 -0
  88. package/dist/cjs/ai/plugins/misc/index.d.ts.map +1 -0
  89. package/dist/cjs/ai/plugins/misc/index.js +445 -0
  90. package/dist/cjs/ai/plugins/misc/index.js.map +1 -0
  91. package/dist/cjs/ai/plugins/misc/schemas.d.ts +9 -0
  92. package/dist/cjs/ai/plugins/misc/schemas.d.ts.map +1 -0
  93. package/dist/cjs/ai/plugins/misc/schemas.js +318 -0
  94. package/dist/cjs/ai/plugins/misc/schemas.js.map +1 -0
  95. package/dist/cjs/ai/plugins/nft/index.d.ts +24 -0
  96. package/dist/cjs/ai/plugins/nft/index.d.ts.map +1 -0
  97. package/dist/cjs/ai/plugins/nft/index.js +70 -0
  98. package/dist/cjs/ai/plugins/nft/index.js.map +1 -0
  99. package/dist/cjs/ai/plugins/nft/schemas.d.ts +6 -0
  100. package/dist/cjs/ai/plugins/nft/schemas.d.ts.map +1 -0
  101. package/dist/cjs/ai/plugins/nft/schemas.js +272 -0
  102. package/dist/cjs/ai/plugins/nft/schemas.js.map +1 -0
  103. package/dist/cjs/ai/plugins/registry.d.ts +157 -0
  104. package/dist/cjs/ai/plugins/registry.d.ts.map +1 -0
  105. package/dist/cjs/ai/plugins/registry.js +369 -0
  106. package/dist/cjs/ai/plugins/registry.js.map +1 -0
  107. package/dist/cjs/ai/plugins/token/index.d.ts +35 -0
  108. package/dist/cjs/ai/plugins/token/index.d.ts.map +1 -0
  109. package/dist/cjs/ai/plugins/token/index.js +187 -0
  110. package/dist/cjs/ai/plugins/token/index.js.map +1 -0
  111. package/dist/cjs/ai/plugins/token/schemas.d.ts +5 -0
  112. package/dist/cjs/ai/plugins/token/schemas.d.ts.map +1 -0
  113. package/dist/cjs/ai/plugins/token/schemas.js +268 -0
  114. package/dist/cjs/ai/plugins/token/schemas.js.map +1 -0
  115. package/dist/cjs/ai/plugins/types.d.ts +176 -0
  116. package/dist/cjs/ai/plugins/types.d.ts.map +1 -0
  117. package/dist/cjs/ai/plugins/types.js +3 -0
  118. package/dist/cjs/ai/plugins/types.js.map +1 -0
  119. package/dist/cjs/ai/sap/adapter.d.ts +140 -0
  120. package/dist/cjs/ai/sap/adapter.d.ts.map +1 -0
  121. package/dist/cjs/ai/sap/adapter.js +181 -0
  122. package/dist/cjs/ai/sap/adapter.js.map +1 -0
  123. package/dist/cjs/ai/sap/discovery.d.ts +165 -0
  124. package/dist/cjs/ai/sap/discovery.d.ts.map +1 -0
  125. package/dist/cjs/ai/sap/discovery.js +316 -0
  126. package/dist/cjs/ai/sap/discovery.js.map +1 -0
  127. package/dist/cjs/ai/sap/index.d.ts +61 -0
  128. package/dist/cjs/ai/sap/index.d.ts.map +1 -0
  129. package/dist/cjs/ai/sap/index.js +89 -0
  130. package/dist/cjs/ai/sap/index.js.map +1 -0
  131. package/dist/cjs/ai/sap/pda.d.ts +205 -0
  132. package/dist/cjs/ai/sap/pda.d.ts.map +1 -0
  133. package/dist/cjs/ai/sap/pda.js +547 -0
  134. package/dist/cjs/ai/sap/pda.js.map +1 -0
  135. package/dist/cjs/ai/sap/program.d.ts +153 -0
  136. package/dist/cjs/ai/sap/program.d.ts.map +1 -0
  137. package/dist/cjs/ai/sap/program.js +227 -0
  138. package/dist/cjs/ai/sap/program.js.map +1 -0
  139. package/dist/cjs/ai/sap/registry.d.ts +218 -0
  140. package/dist/cjs/ai/sap/registry.d.ts.map +1 -0
  141. package/dist/cjs/ai/sap/registry.js +519 -0
  142. package/dist/cjs/ai/sap/registry.js.map +1 -0
  143. package/dist/cjs/ai/sap/scoring.d.ts +138 -0
  144. package/dist/cjs/ai/sap/scoring.d.ts.map +1 -0
  145. package/dist/cjs/ai/sap/scoring.js +266 -0
  146. package/dist/cjs/ai/sap/scoring.js.map +1 -0
  147. package/dist/cjs/ai/sap/subnetwork.d.ts +201 -0
  148. package/dist/cjs/ai/sap/subnetwork.d.ts.map +1 -0
  149. package/dist/cjs/ai/sap/subnetwork.js +365 -0
  150. package/dist/cjs/ai/sap/subnetwork.js.map +1 -0
  151. package/dist/cjs/ai/sap/types.d.ts +418 -0
  152. package/dist/cjs/ai/sap/types.d.ts.map +1 -0
  153. package/dist/cjs/ai/sap/types.js +217 -0
  154. package/dist/cjs/ai/sap/types.js.map +1 -0
  155. package/dist/cjs/ai/sap/validator.d.ts +160 -0
  156. package/dist/cjs/ai/sap/validator.d.ts.map +1 -0
  157. package/dist/cjs/ai/sap/validator.js +619 -0
  158. package/dist/cjs/ai/sap/validator.js.map +1 -0
  159. package/dist/docs/assets/highlight.css +13 -6
  160. package/dist/docs/classes/AccountReader.html +18 -18
  161. package/dist/docs/classes/AccountsClient.html +10 -10
  162. package/dist/docs/classes/AsyncProviderError.html +4 -4
  163. package/dist/docs/classes/CircularDependencyError.html +4 -4
  164. package/dist/docs/classes/DasClient.html +13 -13
  165. package/dist/docs/classes/GeyserParser.html +17 -17
  166. package/dist/docs/classes/GrpcTransport.html +6 -6
  167. package/dist/docs/classes/HttpTransport.html +4 -4
  168. package/dist/docs/classes/InstructionWriter.html +11 -11
  169. package/dist/docs/classes/MemoryGuard.html +9 -9
  170. package/dist/docs/classes/NetworkError.html +5 -5
  171. package/dist/docs/classes/RefRegistry.html +11 -11
  172. package/dist/docs/classes/RefReleasedError.html +4 -4
  173. package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
  174. package/dist/docs/classes/ServiceNotFoundError.html +4 -4
  175. package/dist/docs/classes/ServiceRef.html +13 -13
  176. package/dist/docs/classes/SolanaRpc.html +55 -55
  177. package/dist/docs/classes/SynapseClient.html +16 -16
  178. package/dist/docs/classes/SynapseContext.html +27 -27
  179. package/dist/docs/classes/SynapseError.html +4 -4
  180. package/dist/docs/classes/TimeoutError.html +4 -4
  181. package/dist/docs/classes/UpstreamError.html +6 -6
  182. package/dist/docs/classes/WeakServiceRef.html +4 -4
  183. package/dist/docs/classes/WsClient.html +10 -10
  184. package/dist/docs/enums/SynapseNetwork.html +2 -2
  185. package/dist/docs/enums/SynapseRegion.html +2 -2
  186. package/dist/docs/enums/TokenExtensionType.html +2 -2
  187. package/dist/docs/functions/Epoch-1.html +1 -1
  188. package/dist/docs/functions/Lamports-2.html +1 -1
  189. package/dist/docs/functions/Pubkey-1.html +1 -1
  190. package/dist/docs/functions/Sig.html +1 -1
  191. package/dist/docs/functions/Slot-1.html +1 -1
  192. package/dist/docs/functions/UnixTs.html +1 -1
  193. package/dist/docs/functions/autoSelectRegion.html +1 -1
  194. package/dist/docs/functions/autoWire.html +1 -1
  195. package/dist/docs/functions/base58Encode.html +1 -1
  196. package/dist/docs/functions/base64ToBytes.html +1 -1
  197. package/dist/docs/functions/bigIntReplacer.html +1 -1
  198. package/dist/docs/functions/chunk.html +1 -1
  199. package/dist/docs/functions/computeBalanceChanges.html +1 -1
  200. package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
  201. package/dist/docs/functions/createBareContext.html +1 -1
  202. package/dist/docs/functions/createBinding.html +1 -1
  203. package/dist/docs/functions/createBoundHook.html +1 -1
  204. package/dist/docs/functions/createReactAdapter.html +1 -1
  205. package/dist/docs/functions/createRefHook.html +1 -1
  206. package/dist/docs/functions/createServerMiddleware.html +1 -1
  207. package/dist/docs/functions/createServiceHook.html +1 -1
  208. package/dist/docs/functions/createSingleton.html +1 -1
  209. package/dist/docs/functions/createSynapse.html +1 -1
  210. package/dist/docs/functions/createSynapseContext.html +1 -1
  211. package/dist/docs/functions/createToken.html +1 -1
  212. package/dist/docs/functions/decodeBase58.html +1 -1
  213. package/dist/docs/functions/decodeLookupTable.html +1 -1
  214. package/dist/docs/functions/decodeMint.html +1 -1
  215. package/dist/docs/functions/decodeMultisig.html +1 -1
  216. package/dist/docs/functions/decodeNonceAccount.html +1 -1
  217. package/dist/docs/functions/decodeStakeAccount.html +1 -1
  218. package/dist/docs/functions/decodeToken2022Account.html +1 -1
  219. package/dist/docs/functions/decodeToken2022Mint.html +1 -1
  220. package/dist/docs/functions/decodeTokenAccount.html +1 -1
  221. package/dist/docs/functions/encodeBase58.html +1 -1
  222. package/dist/docs/functions/fetchLookupTable.html +2 -2
  223. package/dist/docs/functions/fetchMint.html +2 -2
  224. package/dist/docs/functions/fetchNonceAccount.html +2 -2
  225. package/dist/docs/functions/fetchStakeAccount.html +2 -2
  226. package/dist/docs/functions/fetchTokenAccount.html +2 -2
  227. package/dist/docs/functions/fetchTokenAccountsByOwner.html +2 -2
  228. package/dist/docs/functions/fromKitAddress.html +1 -1
  229. package/dist/docs/functions/getAccountInfo.html +2 -2
  230. package/dist/docs/functions/getAsset.html +1 -1
  231. package/dist/docs/functions/getAssetBatch.html +1 -1
  232. package/dist/docs/functions/getAssetProof.html +1 -1
  233. package/dist/docs/functions/getAssetProofBatch.html +1 -1
  234. package/dist/docs/functions/getAssetsByAuthority.html +1 -1
  235. package/dist/docs/functions/getAssetsByCreator.html +1 -1
  236. package/dist/docs/functions/getAssetsByGroup.html +1 -1
  237. package/dist/docs/functions/getAssetsByOwner.html +1 -1
  238. package/dist/docs/functions/getBalance.html +1 -1
  239. package/dist/docs/functions/getBlock.html +2 -2
  240. package/dist/docs/functions/getBlockCommitment.html +1 -1
  241. package/dist/docs/functions/getBlockHeight.html +1 -1
  242. package/dist/docs/functions/getBlockProduction.html +1 -1
  243. package/dist/docs/functions/getBlockTime.html +1 -1
  244. package/dist/docs/functions/getBlocks.html +1 -1
  245. package/dist/docs/functions/getBlocksWithLimit.html +2 -2
  246. package/dist/docs/functions/getClusterNodes.html +2 -2
  247. package/dist/docs/functions/getContext.html +1 -1
  248. package/dist/docs/functions/getDecodedAccount.html +2 -2
  249. package/dist/docs/functions/getDecodedAccounts.html +1 -1
  250. package/dist/docs/functions/getEnvironment.html +1 -1
  251. package/dist/docs/functions/getEpochInfo.html +2 -2
  252. package/dist/docs/functions/getEpochSchedule.html +2 -2
  253. package/dist/docs/functions/getFeeForMessage.html +1 -1
  254. package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
  255. package/dist/docs/functions/getGenesisHash.html +1 -1
  256. package/dist/docs/functions/getHealth.html +1 -1
  257. package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
  258. package/dist/docs/functions/getIdentity.html +1 -1
  259. package/dist/docs/functions/getInflationGovernor.html +2 -2
  260. package/dist/docs/functions/getInflationRate.html +2 -2
  261. package/dist/docs/functions/getInflationReward.html +2 -2
  262. package/dist/docs/functions/getLargestAccounts.html +2 -2
  263. package/dist/docs/functions/getLatestBlockhash.html +2 -2
  264. package/dist/docs/functions/getLeaderSchedule.html +1 -1
  265. package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
  266. package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
  267. package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
  268. package/dist/docs/functions/getMultipleAccounts.html +1 -1
  269. package/dist/docs/functions/getProgramAccounts.html +1 -1
  270. package/dist/docs/functions/getProgramCategory.html +1 -1
  271. package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
  272. package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
  273. package/dist/docs/functions/getSignatureStatuses.html +1 -1
  274. package/dist/docs/functions/getSignaturesForAddress.html +1 -1
  275. package/dist/docs/functions/getSignaturesForAsset.html +1 -1
  276. package/dist/docs/functions/getSlot.html +1 -1
  277. package/dist/docs/functions/getSlotLeader.html +1 -1
  278. package/dist/docs/functions/getSlotLeaders.html +1 -1
  279. package/dist/docs/functions/getStakeActivation.html +1 -1
  280. package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
  281. package/dist/docs/functions/getSupply.html +1 -1
  282. package/dist/docs/functions/getTokenAccountBalance.html +1 -1
  283. package/dist/docs/functions/getTokenAccounts.html +1 -1
  284. package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
  285. package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
  286. package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
  287. package/dist/docs/functions/getTokenSupply.html +1 -1
  288. package/dist/docs/functions/getTransaction.html +1 -1
  289. package/dist/docs/functions/getTransactionCount.html +1 -1
  290. package/dist/docs/functions/getVersion.html +1 -1
  291. package/dist/docs/functions/getVoteAccounts.html +1 -1
  292. package/dist/docs/functions/isBlockhashValid.html +1 -1
  293. package/dist/docs/functions/isBrowser.html +1 -1
  294. package/dist/docs/functions/isDisposable.html +1 -1
  295. package/dist/docs/functions/isProgramInCategory.html +1 -1
  296. package/dist/docs/functions/isServer.html +1 -1
  297. package/dist/docs/functions/isValidPubkey.html +1 -1
  298. package/dist/docs/functions/isValidSignature.html +1 -1
  299. package/dist/docs/functions/lamportsToSol.html +1 -1
  300. package/dist/docs/functions/listEndpoints.html +1 -1
  301. package/dist/docs/functions/listNetworks.html +1 -1
  302. package/dist/docs/functions/listRegions.html +1 -1
  303. package/dist/docs/functions/minimumLedgerSlot.html +1 -1
  304. package/dist/docs/functions/parseAccountUpdate.html +1 -1
  305. package/dist/docs/functions/parseBlockMeta.html +1 -1
  306. package/dist/docs/functions/parseEntry.html +1 -1
  307. package/dist/docs/functions/parseGeyserUpdate.html +1 -1
  308. package/dist/docs/functions/parseSlotUpdate.html +1 -1
  309. package/dist/docs/functions/parseTimestamp.html +1 -1
  310. package/dist/docs/functions/parseTransaction.html +1 -1
  311. package/dist/docs/functions/probeLatency.html +1 -1
  312. package/dist/docs/functions/rawBufferToBase58.html +1 -1
  313. package/dist/docs/functions/rawBufferToBase64.html +1 -1
  314. package/dist/docs/functions/rawBufferToBytes.html +1 -1
  315. package/dist/docs/functions/rawBufferToHex.html +1 -1
  316. package/dist/docs/functions/readonly.html +1 -1
  317. package/dist/docs/functions/readonlySigner.html +1 -1
  318. package/dist/docs/functions/requestAirdrop.html +1 -1
  319. package/dist/docs/functions/resolveEndpoint.html +1 -1
  320. package/dist/docs/functions/resolveProgram.html +1 -1
  321. package/dist/docs/functions/resolveProgramBatch.html +1 -1
  322. package/dist/docs/functions/retry.html +1 -1
  323. package/dist/docs/functions/searchAssets.html +1 -1
  324. package/dist/docs/functions/sendAndConfirmDurableNonceTransactionFactory.html +1 -1
  325. package/dist/docs/functions/sendTransaction.html +1 -1
  326. package/dist/docs/functions/setGlobalContext.html +1 -1
  327. package/dist/docs/functions/simulateTransaction.html +1 -1
  328. package/dist/docs/functions/sleep.html +1 -1
  329. package/dist/docs/functions/solToLamports.html +1 -1
  330. package/dist/docs/functions/toClientConfig.html +1 -1
  331. package/dist/docs/functions/toJsonSafe.html +1 -1
  332. package/dist/docs/functions/toKitAddress.html +1 -1
  333. package/dist/docs/functions/toKitInstruction.html +1 -1
  334. package/dist/docs/functions/toKitLamports.html +1 -1
  335. package/dist/docs/functions/toKitSignatureString.html +1 -1
  336. package/dist/docs/functions/tryGetContext.html +1 -1
  337. package/dist/docs/functions/tryUseService.html +1 -1
  338. package/dist/docs/functions/useBoundServices.html +1 -1
  339. package/dist/docs/functions/useService.html +1 -1
  340. package/dist/docs/functions/useSharedRef.html +1 -1
  341. package/dist/docs/functions/withRef.html +1 -1
  342. package/dist/docs/functions/withRefAsync.html +1 -1
  343. package/dist/docs/functions/writable.html +1 -1
  344. package/dist/docs/functions/writableSigner.html +1 -1
  345. package/dist/docs/index.html +174 -8
  346. package/dist/docs/interfaces/AccountInfo.html +7 -7
  347. package/dist/docs/interfaces/AccountMeta.html +4 -4
  348. package/dist/docs/interfaces/AccountNotification.html +2 -2
  349. package/dist/docs/interfaces/AccountSubParams.html +2 -2
  350. package/dist/docs/interfaces/AddMemoParams.html +5 -5
  351. package/dist/docs/interfaces/AdvanceNonceParams.html +3 -3
  352. package/dist/docs/interfaces/AliasProvider.html +2 -2
  353. package/dist/docs/interfaces/AllocateParams.html +3 -3
  354. package/dist/docs/interfaces/ApproveCheckedParams.html +9 -9
  355. package/dist/docs/interfaces/ApproveParams.html +7 -7
  356. package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
  357. package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
  358. package/dist/docs/interfaces/AssignParams.html +3 -3
  359. package/dist/docs/interfaces/AsyncFactoryProvider.html +2 -2
  360. package/dist/docs/interfaces/AuthorizeNonceParams.html +4 -4
  361. package/dist/docs/interfaces/BalanceChange.html +6 -6
  362. package/dist/docs/interfaces/BlockProduction.html +3 -3
  363. package/dist/docs/interfaces/BlockResult.html +2 -2
  364. package/dist/docs/interfaces/BlockReward.html +2 -2
  365. package/dist/docs/interfaces/BlockhashResult.html +2 -2
  366. package/dist/docs/interfaces/BurnCheckedParams.html +8 -8
  367. package/dist/docs/interfaces/BurnParams.html +7 -7
  368. package/dist/docs/interfaces/CallOptions.html +6 -6
  369. package/dist/docs/interfaces/ClassProvider.html +2 -2
  370. package/dist/docs/interfaces/CloseAccountParams.html +6 -6
  371. package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
  372. package/dist/docs/interfaces/ContactInfo.html +2 -2
  373. package/dist/docs/interfaces/ContextAdapter.html +5 -5
  374. package/dist/docs/interfaces/ContextEvents.html +6 -6
  375. package/dist/docs/interfaces/ContextModule.html +3 -3
  376. package/dist/docs/interfaces/CreateATAParams.html +6 -6
  377. package/dist/docs/interfaces/CreateAccountParams.html +6 -6
  378. package/dist/docs/interfaces/CreateAccountWithSeedParams.html +8 -8
  379. package/dist/docs/interfaces/CreateSynapseContextOpts.html +4 -4
  380. package/dist/docs/interfaces/DasAsset.html +2 -2
  381. package/dist/docs/interfaces/DasAssetProof.html +2 -2
  382. package/dist/docs/interfaces/DasAuthority.html +2 -2
  383. package/dist/docs/interfaces/DasCompression.html +2 -2
  384. package/dist/docs/interfaces/DasContent.html +2 -2
  385. package/dist/docs/interfaces/DasCreator.html +2 -2
  386. package/dist/docs/interfaces/DasFile.html +2 -2
  387. package/dist/docs/interfaces/DasGrouping.html +2 -2
  388. package/dist/docs/interfaces/DasOpts.html +2 -2
  389. package/dist/docs/interfaces/DasOwnership.html +2 -2
  390. package/dist/docs/interfaces/DasPage.html +2 -2
  391. package/dist/docs/interfaces/DasRoyalty.html +2 -2
  392. package/dist/docs/interfaces/DasSearchParams.html +2 -2
  393. package/dist/docs/interfaces/DasSupply.html +2 -2
  394. package/dist/docs/interfaces/DataSlice.html +3 -3
  395. package/dist/docs/interfaces/DecodedAccountResult.html +4 -4
  396. package/dist/docs/interfaces/DecodedLookupTable.html +9 -9
  397. package/dist/docs/interfaces/DecodedMint.html +7 -7
  398. package/dist/docs/interfaces/DecodedMultisig.html +6 -6
  399. package/dist/docs/interfaces/DecodedNonceAccount.html +7 -7
  400. package/dist/docs/interfaces/DecodedStakeAccount.html +2 -2
  401. package/dist/docs/interfaces/DecodedToken2022Account.html +9 -9
  402. package/dist/docs/interfaces/DecodedToken2022Mint.html +6 -6
  403. package/dist/docs/interfaces/DecodedTokenAccount.html +10 -10
  404. package/dist/docs/interfaces/DefaultAccountStateExt.html +2 -2
  405. package/dist/docs/interfaces/Disposable.html +2 -2
  406. package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
  407. package/dist/docs/interfaces/EpochInfo.html +7 -7
  408. package/dist/docs/interfaces/EpochSchedule.html +2 -2
  409. package/dist/docs/interfaces/FactoryProvider.html +2 -2
  410. package/dist/docs/interfaces/FetchedMint.html +6 -6
  411. package/dist/docs/interfaces/FetchedTokenAccount.html +6 -6
  412. package/dist/docs/interfaces/FreezeThawParams.html +6 -6
  413. package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
  414. package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
  415. package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
  416. package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
  417. package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
  418. package/dist/docs/interfaces/GetBlockOpts.html +6 -6
  419. package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
  420. package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
  421. package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
  422. package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
  423. package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
  424. package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
  425. package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
  426. package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
  427. package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
  428. package/dist/docs/interfaces/GeyserParserStats.html +2 -2
  429. package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
  430. package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
  431. package/dist/docs/interfaces/ImmutableOwnerExt.html +2 -2
  432. package/dist/docs/interfaces/InflationGovernor.html +2 -2
  433. package/dist/docs/interfaces/InflationRate.html +2 -2
  434. package/dist/docs/interfaces/InflationReward.html +2 -2
  435. package/dist/docs/interfaces/InitializeAccountParams.html +5 -5
  436. package/dist/docs/interfaces/InitializeMintParams.html +6 -6
  437. package/dist/docs/interfaces/InitializeNonceParams.html +3 -3
  438. package/dist/docs/interfaces/InterestBearingConfigExt.html +2 -2
  439. package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
  440. package/dist/docs/interfaces/LeakReport.html +5 -5
  441. package/dist/docs/interfaces/LogsNotification.html +2 -2
  442. package/dist/docs/interfaces/LogsSubParams.html +2 -2
  443. package/dist/docs/interfaces/MemoTransferExt.html +2 -2
  444. package/dist/docs/interfaces/MemoryGuardConfig.html +4 -4
  445. package/dist/docs/interfaces/MetadataPointerExt.html +2 -2
  446. package/dist/docs/interfaces/MintCloseAuthorityExt.html +2 -2
  447. package/dist/docs/interfaces/MintToCheckedParams.html +8 -8
  448. package/dist/docs/interfaces/MintToParams.html +7 -7
  449. package/dist/docs/interfaces/NonTransferableExt.html +2 -2
  450. package/dist/docs/interfaces/PaginationOpts.html +2 -2
  451. package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
  452. package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
  453. package/dist/docs/interfaces/ParsedEntry.html +2 -2
  454. package/dist/docs/interfaces/ParsedInstruction.html +9 -9
  455. package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
  456. package/dist/docs/interfaces/ParsedTransaction.html +19 -19
  457. package/dist/docs/interfaces/PerfSample.html +2 -2
  458. package/dist/docs/interfaces/PermanentDelegateExt.html +2 -2
  459. package/dist/docs/interfaces/ProgramAccount.html +2 -2
  460. package/dist/docs/interfaces/ProgramNotification.html +2 -2
  461. package/dist/docs/interfaces/ProgramSubParams.html +2 -2
  462. package/dist/docs/interfaces/ProgramsBundle.html +33 -33
  463. package/dist/docs/interfaces/RawAccountInfo.html +2 -2
  464. package/dist/docs/interfaces/RawBlockMeta.html +2 -2
  465. package/dist/docs/interfaces/RawBuffer.html +2 -2
  466. package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
  467. package/dist/docs/interfaces/RawEntry.html +2 -2
  468. package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
  469. package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
  470. package/dist/docs/interfaces/RawSlotInfo.html +2 -2
  471. package/dist/docs/interfaces/RawTimestamp.html +2 -2
  472. package/dist/docs/interfaces/RawTokenBalance.html +2 -2
  473. package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
  474. package/dist/docs/interfaces/ReactAdapterConfig.html +2 -2
  475. package/dist/docs/interfaces/RecoverNestedParams.html +7 -7
  476. package/dist/docs/interfaces/RefRegistryConfig.html +2 -2
  477. package/dist/docs/interfaces/RefStats.html +7 -7
  478. package/dist/docs/interfaces/RequestHeapFrameParams.html +2 -2
  479. package/dist/docs/interfaces/ResolveMiddleware.html +1 -1
  480. package/dist/docs/interfaces/RevokeParams.html +5 -5
  481. package/dist/docs/interfaces/RootNotification.html +2 -2
  482. package/dist/docs/interfaces/RootSubParams.html +1 -1
  483. package/dist/docs/interfaces/RpcContext.html +2 -2
  484. package/dist/docs/interfaces/RpcError.html +4 -4
  485. package/dist/docs/interfaces/RpcRequest.html +3 -3
  486. package/dist/docs/interfaces/RpcResponse.html +2 -2
  487. package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
  488. package/dist/docs/interfaces/ServerAdapterConfig.html +3 -3
  489. package/dist/docs/interfaces/ServiceBinding.html +6 -6
  490. package/dist/docs/interfaces/ServiceRegistration.html +3 -3
  491. package/dist/docs/interfaces/ServiceResolver.html +6 -6
  492. package/dist/docs/interfaces/ServiceToken.html +4 -4
  493. package/dist/docs/interfaces/SetComputeUnitLimitParams.html +2 -2
  494. package/dist/docs/interfaces/SetComputeUnitPriceParams.html +2 -2
  495. package/dist/docs/interfaces/SetLoadedAccountsDataSizeLimitParams.html +2 -2
  496. package/dist/docs/interfaces/SignatureInfo.html +7 -7
  497. package/dist/docs/interfaces/SignatureNotification.html +2 -2
  498. package/dist/docs/interfaces/SignatureStatus.html +5 -5
  499. package/dist/docs/interfaces/SignatureSubParams.html +2 -2
  500. package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
  501. package/dist/docs/interfaces/SimulateResult.html +2 -2
  502. package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
  503. package/dist/docs/interfaces/SingletonOptions.html +2 -2
  504. package/dist/docs/interfaces/SlotNotification.html +2 -2
  505. package/dist/docs/interfaces/SlotSubParams.html +1 -1
  506. package/dist/docs/interfaces/SortOpts.html +2 -2
  507. package/dist/docs/interfaces/StakeAuthorized.html +2 -2
  508. package/dist/docs/interfaces/StakeDelegation.html +3 -3
  509. package/dist/docs/interfaces/StakeLockup.html +4 -4
  510. package/dist/docs/interfaces/StakeMeta.html +2 -2
  511. package/dist/docs/interfaces/Supply.html +5 -5
  512. package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
  513. package/dist/docs/interfaces/SynapseClientLike.html +2 -2
  514. package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
  515. package/dist/docs/interfaces/SyncNativeParams.html +3 -3
  516. package/dist/docs/interfaces/SystemTransferParams.html +4 -4
  517. package/dist/docs/interfaces/TokenAccount.html +3 -3
  518. package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
  519. package/dist/docs/interfaces/TokenAmount.html +5 -5
  520. package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
  521. package/dist/docs/interfaces/TokenTransferParams.html +7 -7
  522. package/dist/docs/interfaces/TransactionInstruction.html +4 -4
  523. package/dist/docs/interfaces/TransactionMeta.html +11 -11
  524. package/dist/docs/interfaces/TransferCheckedParams.html +9 -9
  525. package/dist/docs/interfaces/TransferFeeAmount.html +2 -2
  526. package/dist/docs/interfaces/TransferFeeConfig.html +2 -2
  527. package/dist/docs/interfaces/TransportConfig.html +7 -7
  528. package/dist/docs/interfaces/UnknownExtension.html +2 -2
  529. package/dist/docs/interfaces/ValueProvider.html +2 -2
  530. package/dist/docs/interfaces/VoteAccount.html +9 -9
  531. package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
  532. package/dist/docs/interfaces/WithdrawNonceParams.html +5 -5
  533. package/dist/docs/interfaces/WsConfig.html +6 -6
  534. package/dist/docs/media/10_PLUGINS.md +454 -0
  535. package/dist/docs/media/11_MCP.md +459 -0
  536. package/dist/docs/media/CHANGELOG.md +176 -0
  537. package/dist/docs/types/AccountFetchOpts.html +1 -1
  538. package/dist/docs/types/AccountFilter.html +1 -1
  539. package/dist/docs/types/Base58.html +1 -1
  540. package/dist/docs/types/Brand.html +1 -1
  541. package/dist/docs/types/Commitment.html +1 -1
  542. package/dist/docs/types/DasSortBy.html +1 -1
  543. package/dist/docs/types/DasSortDirection.html +1 -1
  544. package/dist/docs/types/DataSizeFilter.html +1 -1
  545. package/dist/docs/types/DecodedExtension.html +1 -1
  546. package/dist/docs/types/Encoding.html +1 -1
  547. package/dist/docs/types/Epoch.html +1 -1
  548. package/dist/docs/types/Lamports.html +1 -1
  549. package/dist/docs/types/LogsFilter.html +1 -1
  550. package/dist/docs/types/MemcmpFilter.html +1 -1
  551. package/dist/docs/types/NonceState.html +1 -1
  552. package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
  553. package/dist/docs/types/Pubkey.html +1 -1
  554. package/dist/docs/types/RuntimeEnv.html +1 -1
  555. package/dist/docs/types/ServiceLifecycle.html +1 -1
  556. package/dist/docs/types/ServiceProvider.html +1 -1
  557. package/dist/docs/types/Signature.html +1 -1
  558. package/dist/docs/types/Slot.html +1 -1
  559. package/dist/docs/types/StakeAccountType.html +1 -1
  560. package/dist/docs/types/SubscriptionId.html +1 -1
  561. package/dist/docs/types/TokenAccountState.html +1 -1
  562. package/dist/docs/types/TransactionDetail.html +1 -1
  563. package/dist/docs/types/UnaryMethod.html +1 -1
  564. package/dist/docs/types/UnixTimestamp.html +1 -1
  565. package/dist/docs/types/WsNotification.html +1 -1
  566. package/dist/docs/variables/ASSOCIATED_TOKEN_PROGRAM.html +1 -1
  567. package/dist/docs/variables/AssociatedToken.html +4 -4
  568. package/dist/docs/variables/COMPUTE_BUDGET_PROGRAM.html +1 -1
  569. package/dist/docs/variables/ComputeBudget.html +5 -5
  570. package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
  571. package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
  572. package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
  573. package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +1 -1
  574. package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +1 -1
  575. package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
  576. package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +1 -1
  577. package/dist/docs/variables/MEMO_PROGRAM_V1.html +1 -1
  578. package/dist/docs/variables/MEMO_PROGRAM_V2.html +1 -1
  579. package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
  580. package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
  581. package/dist/docs/variables/MINT_SIZE.html +1 -1
  582. package/dist/docs/variables/MULTISIG_SIZE.html +1 -1
  583. package/dist/docs/variables/Memo.html +2 -2
  584. package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +1 -1
  585. package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
  586. package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
  587. package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
  588. package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
  589. package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
  590. package/dist/docs/variables/STAKE_PROGRAM_ID.html +1 -1
  591. package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
  592. package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
  593. package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
  594. package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
  595. package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
  596. package/dist/docs/variables/SYSTEM_PROGRAM.html +1 -1
  597. package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
  598. package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +1 -1
  599. package/dist/docs/variables/SplToken.html +16 -16
  600. package/dist/docs/variables/SystemProgram.html +10 -10
  601. package/dist/docs/variables/TOKEN_2022_PROGRAM.html +1 -1
  602. package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +1 -1
  603. package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +1 -1
  604. package/dist/docs/variables/TOKEN_PROGRAM.html +1 -1
  605. package/dist/docs/variables/TOKEN_PROGRAM_ID.html +1 -1
  606. package/dist/docs/variables/Tokens.html +1 -1
  607. package/dist/esm/ai/actions/blinks.d.ts +158 -0
  608. package/dist/esm/ai/actions/blinks.d.ts.map +1 -0
  609. package/dist/esm/ai/actions/blinks.js +227 -0
  610. package/dist/esm/ai/actions/blinks.js.map +1 -0
  611. package/dist/esm/ai/actions/index.d.ts +51 -0
  612. package/dist/esm/ai/actions/index.d.ts.map +1 -0
  613. package/dist/esm/ai/actions/index.js +52 -0
  614. package/dist/esm/ai/actions/index.js.map +1 -0
  615. package/dist/esm/ai/actions/server.d.ts +188 -0
  616. package/dist/esm/ai/actions/server.d.ts.map +1 -0
  617. package/dist/esm/ai/actions/server.js +399 -0
  618. package/dist/esm/ai/actions/server.js.map +1 -0
  619. package/dist/esm/ai/actions/types.d.ts +251 -0
  620. package/dist/esm/ai/actions/types.d.ts.map +1 -0
  621. package/dist/esm/ai/actions/types.js +15 -0
  622. package/dist/esm/ai/actions/types.js.map +1 -0
  623. package/dist/esm/ai/gateway/index.d.ts +1 -0
  624. package/dist/esm/ai/gateway/index.d.ts.map +1 -1
  625. package/dist/esm/ai/gateway/index.js +2 -0
  626. package/dist/esm/ai/gateway/index.js.map +1 -1
  627. package/dist/esm/ai/gateway/monetize.d.ts +222 -0
  628. package/dist/esm/ai/gateway/monetize.d.ts.map +1 -0
  629. package/dist/esm/ai/gateway/monetize.js +277 -0
  630. package/dist/esm/ai/gateway/monetize.js.map +1 -0
  631. package/dist/esm/ai/index.d.ts +7 -2
  632. package/dist/esm/ai/index.d.ts.map +1 -1
  633. package/dist/esm/ai/index.js +41 -1
  634. package/dist/esm/ai/index.js.map +1 -1
  635. package/dist/esm/ai/intents/executor.d.ts +102 -0
  636. package/dist/esm/ai/intents/executor.d.ts.map +1 -0
  637. package/dist/esm/ai/intents/executor.js +331 -0
  638. package/dist/esm/ai/intents/executor.js.map +1 -0
  639. package/dist/esm/ai/intents/index.d.ts +52 -0
  640. package/dist/esm/ai/intents/index.d.ts.map +1 -0
  641. package/dist/esm/ai/intents/index.js +50 -0
  642. package/dist/esm/ai/intents/index.js.map +1 -0
  643. package/dist/esm/ai/intents/parser.d.ts +106 -0
  644. package/dist/esm/ai/intents/parser.d.ts.map +1 -0
  645. package/dist/esm/ai/intents/parser.js +185 -0
  646. package/dist/esm/ai/intents/parser.js.map +1 -0
  647. package/dist/esm/ai/intents/planner.d.ts +96 -0
  648. package/dist/esm/ai/intents/planner.d.ts.map +1 -0
  649. package/dist/esm/ai/intents/planner.js +266 -0
  650. package/dist/esm/ai/intents/planner.js.map +1 -0
  651. package/dist/esm/ai/intents/types.d.ts +281 -0
  652. package/dist/esm/ai/intents/types.d.ts.map +1 -0
  653. package/dist/esm/ai/intents/types.js +63 -0
  654. package/dist/esm/ai/intents/types.js.map +1 -0
  655. package/dist/esm/ai/mcp/client.d.ts +71 -0
  656. package/dist/esm/ai/mcp/client.d.ts.map +1 -0
  657. package/dist/esm/ai/mcp/client.js +638 -0
  658. package/dist/esm/ai/mcp/client.js.map +1 -0
  659. package/dist/esm/ai/mcp/index.d.ts +16 -0
  660. package/dist/esm/ai/mcp/index.d.ts.map +1 -0
  661. package/dist/esm/ai/mcp/index.js +19 -0
  662. package/dist/esm/ai/mcp/index.js.map +1 -0
  663. package/dist/esm/ai/mcp/server.d.ts +115 -0
  664. package/dist/esm/ai/mcp/server.d.ts.map +1 -0
  665. package/dist/esm/ai/mcp/server.js +586 -0
  666. package/dist/esm/ai/mcp/server.js.map +1 -0
  667. package/dist/esm/ai/mcp/types.d.ts +215 -0
  668. package/dist/esm/ai/mcp/types.d.ts.map +1 -0
  669. package/dist/esm/ai/mcp/types.js +14 -0
  670. package/dist/esm/ai/mcp/types.js.map +1 -0
  671. package/dist/esm/ai/plugins/blinks/index.d.ts +22 -0
  672. package/dist/esm/ai/plugins/blinks/index.d.ts.map +1 -0
  673. package/dist/esm/ai/plugins/blinks/index.js +197 -0
  674. package/dist/esm/ai/plugins/blinks/index.js.map +1 -0
  675. package/dist/esm/ai/plugins/blinks/schemas.d.ts +4 -0
  676. package/dist/esm/ai/plugins/blinks/schemas.d.ts.map +1 -0
  677. package/dist/esm/ai/plugins/blinks/schemas.js +103 -0
  678. package/dist/esm/ai/plugins/blinks/schemas.js.map +1 -0
  679. package/dist/esm/ai/plugins/defi/index.d.ts +44 -0
  680. package/dist/esm/ai/plugins/defi/index.d.ts.map +1 -0
  681. package/dist/esm/ai/plugins/defi/index.js +476 -0
  682. package/dist/esm/ai/plugins/defi/index.js.map +1 -0
  683. package/dist/esm/ai/plugins/defi/schemas.d.ts +13 -0
  684. package/dist/esm/ai/plugins/defi/schemas.d.ts.map +1 -0
  685. package/dist/esm/ai/plugins/defi/schemas.js +564 -0
  686. package/dist/esm/ai/plugins/defi/schemas.js.map +1 -0
  687. package/dist/esm/ai/plugins/index.d.ts +30 -0
  688. package/dist/esm/ai/plugins/index.d.ts.map +1 -0
  689. package/dist/esm/ai/plugins/index.js +31 -0
  690. package/dist/esm/ai/plugins/index.js.map +1 -0
  691. package/dist/esm/ai/plugins/misc/index.d.ts +28 -0
  692. package/dist/esm/ai/plugins/misc/index.d.ts.map +1 -0
  693. package/dist/esm/ai/plugins/misc/index.js +435 -0
  694. package/dist/esm/ai/plugins/misc/index.js.map +1 -0
  695. package/dist/esm/ai/plugins/misc/schemas.d.ts +9 -0
  696. package/dist/esm/ai/plugins/misc/schemas.d.ts.map +1 -0
  697. package/dist/esm/ai/plugins/misc/schemas.js +313 -0
  698. package/dist/esm/ai/plugins/misc/schemas.js.map +1 -0
  699. package/dist/esm/ai/plugins/nft/index.d.ts +24 -0
  700. package/dist/esm/ai/plugins/nft/index.d.ts.map +1 -0
  701. package/dist/esm/ai/plugins/nft/index.js +63 -0
  702. package/dist/esm/ai/plugins/nft/index.js.map +1 -0
  703. package/dist/esm/ai/plugins/nft/schemas.d.ts +6 -0
  704. package/dist/esm/ai/plugins/nft/schemas.d.ts.map +1 -0
  705. package/dist/esm/ai/plugins/nft/schemas.js +270 -0
  706. package/dist/esm/ai/plugins/nft/schemas.js.map +1 -0
  707. package/dist/esm/ai/plugins/registry.d.ts +157 -0
  708. package/dist/esm/ai/plugins/registry.d.ts.map +1 -0
  709. package/dist/esm/ai/plugins/registry.js +365 -0
  710. package/dist/esm/ai/plugins/registry.js.map +1 -0
  711. package/dist/esm/ai/plugins/token/index.d.ts +35 -0
  712. package/dist/esm/ai/plugins/token/index.d.ts.map +1 -0
  713. package/dist/esm/ai/plugins/token/index.js +180 -0
  714. package/dist/esm/ai/plugins/token/index.js.map +1 -0
  715. package/dist/esm/ai/plugins/token/schemas.d.ts +5 -0
  716. package/dist/esm/ai/plugins/token/schemas.d.ts.map +1 -0
  717. package/dist/esm/ai/plugins/token/schemas.js +265 -0
  718. package/dist/esm/ai/plugins/token/schemas.js.map +1 -0
  719. package/dist/esm/ai/plugins/types.d.ts +176 -0
  720. package/dist/esm/ai/plugins/types.d.ts.map +1 -0
  721. package/dist/esm/ai/plugins/types.js +2 -0
  722. package/dist/esm/ai/plugins/types.js.map +1 -0
  723. package/dist/esm/ai/sap/adapter.d.ts +140 -0
  724. package/dist/esm/ai/sap/adapter.d.ts.map +1 -0
  725. package/dist/esm/ai/sap/adapter.js +177 -0
  726. package/dist/esm/ai/sap/adapter.js.map +1 -0
  727. package/dist/esm/ai/sap/discovery.d.ts +165 -0
  728. package/dist/esm/ai/sap/discovery.d.ts.map +1 -0
  729. package/dist/esm/ai/sap/discovery.js +311 -0
  730. package/dist/esm/ai/sap/discovery.js.map +1 -0
  731. package/dist/esm/ai/sap/index.d.ts +61 -0
  732. package/dist/esm/ai/sap/index.d.ts.map +1 -0
  733. package/dist/esm/ai/sap/index.js +58 -0
  734. package/dist/esm/ai/sap/index.js.map +1 -0
  735. package/dist/esm/ai/sap/pda.d.ts +205 -0
  736. package/dist/esm/ai/sap/pda.d.ts.map +1 -0
  737. package/dist/esm/ai/sap/pda.js +535 -0
  738. package/dist/esm/ai/sap/pda.js.map +1 -0
  739. package/dist/esm/ai/sap/program.d.ts +153 -0
  740. package/dist/esm/ai/sap/program.d.ts.map +1 -0
  741. package/dist/esm/ai/sap/program.js +222 -0
  742. package/dist/esm/ai/sap/program.js.map +1 -0
  743. package/dist/esm/ai/sap/registry.d.ts +218 -0
  744. package/dist/esm/ai/sap/registry.d.ts.map +1 -0
  745. package/dist/esm/ai/sap/registry.js +515 -0
  746. package/dist/esm/ai/sap/registry.js.map +1 -0
  747. package/dist/esm/ai/sap/scoring.d.ts +138 -0
  748. package/dist/esm/ai/sap/scoring.d.ts.map +1 -0
  749. package/dist/esm/ai/sap/scoring.js +262 -0
  750. package/dist/esm/ai/sap/scoring.js.map +1 -0
  751. package/dist/esm/ai/sap/subnetwork.d.ts +201 -0
  752. package/dist/esm/ai/sap/subnetwork.d.ts.map +1 -0
  753. package/dist/esm/ai/sap/subnetwork.js +361 -0
  754. package/dist/esm/ai/sap/subnetwork.js.map +1 -0
  755. package/dist/esm/ai/sap/types.d.ts +418 -0
  756. package/dist/esm/ai/sap/types.d.ts.map +1 -0
  757. package/dist/esm/ai/sap/types.js +210 -0
  758. package/dist/esm/ai/sap/types.js.map +1 -0
  759. package/dist/esm/ai/sap/validator.d.ts +160 -0
  760. package/dist/esm/ai/sap/validator.d.ts.map +1 -0
  761. package/dist/esm/ai/sap/validator.js +614 -0
  762. package/dist/esm/ai/sap/validator.js.map +1 -0
  763. package/package.json +67 -2
@@ -0,0 +1,638 @@
1
+ /**
2
+ * @module ai/mcp/client
3
+ * @description MCP Client Bridge — connects to external MCP servers and imports
4
+ * their tools into a SynapseAgentKit as a plugin.
5
+ *
6
+ * Supports stdio and SSE transports for connecting to any MCP server:
7
+ * - GitHub MCP Server
8
+ * - PostgreSQL MCP Server
9
+ * - Filesystem MCP Server
10
+ * - Any custom MCP server
11
+ *
12
+ * ## Usage
13
+ *
14
+ * ```ts
15
+ * import { McpClientBridge } from '@oobe-protocol-labs/synapse-client-sdk/ai/mcp';
16
+ *
17
+ * const bridge = new McpClientBridge();
18
+ *
19
+ * // Connect to GitHub MCP server
20
+ * await bridge.connect({
21
+ * id: 'github',
22
+ * name: 'GitHub',
23
+ * transport: 'stdio',
24
+ * command: 'npx',
25
+ * args: ['-y', '@modelcontextprotocol/server-github'],
26
+ * env: { GITHUB_PERSONAL_ACCESS_TOKEN: process.env.GITHUB_TOKEN! },
27
+ * toolPrefix: 'github_',
28
+ * });
29
+ *
30
+ * // Connect to Postgres MCP server
31
+ * await bridge.connect({
32
+ * id: 'postgres',
33
+ * name: 'PostgreSQL',
34
+ * transport: 'stdio',
35
+ * command: 'npx',
36
+ * args: ['-y', '@modelcontextprotocol/server-postgres', process.env.DATABASE_URL!],
37
+ * toolPrefix: 'pg_',
38
+ * });
39
+ *
40
+ * // Get all external tools as LangChain tools
41
+ * const tools = bridge.getTools();
42
+ *
43
+ * // Or create a plugin to .use() on SynapseAgentKit
44
+ * const plugin = bridge.toPlugin();
45
+ * kit.use(plugin);
46
+ * ```
47
+ *
48
+ * @since 2.0.0
49
+ */
50
+ import { z } from 'zod';
51
+ import { tool } from '@langchain/core/tools';
52
+ import { createMethodRegistry } from '../tools/protocols/shared.js';
53
+ import { MCP_PROTOCOL_VERSION, MCP_JSONRPC_VERSION } from './types.js';
54
+ /* ═══════════════════════════════════════════════════════════════
55
+ * McpClientBridge
56
+ * ═══════════════════════════════════════════════════════════════ */
57
+ export class McpClientBridge {
58
+ connections = new Map();
59
+ debug;
60
+ constructor(opts) {
61
+ this.debug = opts?.debug ?? false;
62
+ }
63
+ /* ── Connection Management ────────────────────────────────── */
64
+ /**
65
+ * Connect to an external MCP server.
66
+ */
67
+ async connect(config) {
68
+ if (this.connections.has(config.id)) {
69
+ throw new Error(`MCP connection "${config.id}" already exists. Disconnect first.`);
70
+ }
71
+ const conn = {
72
+ config,
73
+ status: 'connecting',
74
+ tools: [],
75
+ resources: [],
76
+ requestId: 0,
77
+ pendingRequests: new Map(),
78
+ buffer: '',
79
+ };
80
+ this.connections.set(config.id, conn);
81
+ try {
82
+ if (config.transport === 'stdio') {
83
+ await this.connectStdio(conn);
84
+ }
85
+ else if (config.transport === 'sse') {
86
+ await this.connectSse(conn);
87
+ }
88
+ else {
89
+ throw new Error(`Unknown transport: ${config.transport}`);
90
+ }
91
+ // Initialize the MCP session
92
+ const initResult = await this.sendRequest(conn, 'initialize', {
93
+ protocolVersion: MCP_PROTOCOL_VERSION,
94
+ capabilities: {},
95
+ clientInfo: { name: 'synapse-mcp-bridge', version: '2.0.0' },
96
+ });
97
+ conn.serverInfo = initResult?.serverInfo;
98
+ // Send initialized notification
99
+ this.sendNotification(conn, 'notifications/initialized');
100
+ // Fetch tools
101
+ const toolsResult = await this.sendRequest(conn, 'tools/list', {});
102
+ conn.tools = toolsResult?.tools ?? [];
103
+ // Fetch resources
104
+ try {
105
+ const resourcesResult = await this.sendRequest(conn, 'resources/list', {});
106
+ conn.resources = resourcesResult?.resources ?? [];
107
+ }
108
+ catch {
109
+ // Resources are optional
110
+ conn.resources = [];
111
+ }
112
+ conn.status = 'connected';
113
+ conn.connectedAt = Date.now();
114
+ if (this.debug) {
115
+ process.stderr.write(`[McpBridge] Connected to "${config.name}" — ${conn.tools.length} tools, ${conn.resources.length} resources\n`);
116
+ }
117
+ return this.getStatus(config.id);
118
+ }
119
+ catch (err) {
120
+ conn.status = 'error';
121
+ conn.error = String(err);
122
+ if (this.debug) {
123
+ process.stderr.write(`[McpBridge] Failed to connect to "${config.name}": ${err}\n`);
124
+ }
125
+ return this.getStatus(config.id);
126
+ }
127
+ }
128
+ /**
129
+ * Disconnect from an external MCP server.
130
+ */
131
+ async disconnect(id) {
132
+ const conn = this.connections.get(id);
133
+ if (!conn)
134
+ return;
135
+ // Reject pending requests
136
+ for (const [, pending] of conn.pendingRequests) {
137
+ clearTimeout(pending.timeout);
138
+ pending.reject(new Error('Connection closed'));
139
+ }
140
+ conn.pendingRequests.clear();
141
+ // Kill process
142
+ if (conn.process) {
143
+ try {
144
+ conn.process.kill();
145
+ }
146
+ catch { /* noop */ }
147
+ conn.process = undefined;
148
+ }
149
+ // Close SSE
150
+ if (conn.eventSource) {
151
+ try {
152
+ conn.eventSource.close();
153
+ }
154
+ catch { /* noop */ }
155
+ conn.eventSource = undefined;
156
+ }
157
+ conn.status = 'disconnected';
158
+ this.connections.delete(id);
159
+ }
160
+ /**
161
+ * Disconnect from all servers.
162
+ */
163
+ async disconnectAll() {
164
+ const ids = [...this.connections.keys()];
165
+ await Promise.all(ids.map((id) => this.disconnect(id)));
166
+ }
167
+ /* ── Tool Access ──────────────────────────────────────────── */
168
+ /**
169
+ * Get LangChain-compatible tools from all connected servers.
170
+ */
171
+ getTools() {
172
+ const tools = [];
173
+ for (const [id, conn] of this.connections) {
174
+ if (conn.status !== 'connected')
175
+ continue;
176
+ tools.push(...this.buildLangChainTools(conn));
177
+ }
178
+ return tools;
179
+ }
180
+ /**
181
+ * Get tools from a specific connected server.
182
+ */
183
+ getServerTools(serverId) {
184
+ const conn = this.connections.get(serverId);
185
+ if (!conn || conn.status !== 'connected')
186
+ return [];
187
+ return this.buildLangChainTools(conn);
188
+ }
189
+ /**
190
+ * Call a tool on a specific server.
191
+ */
192
+ async callTool(serverId, toolName, args = {}) {
193
+ const conn = this.connections.get(serverId);
194
+ if (!conn || conn.status !== 'connected') {
195
+ throw new Error(`MCP server "${serverId}" is not connected`);
196
+ }
197
+ const result = await this.sendRequest(conn, 'tools/call', {
198
+ name: toolName,
199
+ arguments: args,
200
+ });
201
+ return result;
202
+ }
203
+ /**
204
+ * Read a resource from a specific server.
205
+ */
206
+ async readResource(serverId, uri) {
207
+ const conn = this.connections.get(serverId);
208
+ if (!conn || conn.status !== 'connected') {
209
+ throw new Error(`MCP server "${serverId}" is not connected`);
210
+ }
211
+ return this.sendRequest(conn, 'resources/read', { uri });
212
+ }
213
+ /* ── Plugin Conversion ────────────────────────────────────── */
214
+ /**
215
+ * Convert all connected MCP servers into a SynapsePlugin
216
+ * that can be `.use()`'d on a SynapseAgentKit.
217
+ *
218
+ * ```ts
219
+ * const plugin = bridge.toPlugin();
220
+ * kit.use(plugin);
221
+ * ```
222
+ */
223
+ toPlugin() {
224
+ const bridge = this;
225
+ const protocols = [];
226
+ for (const [id, conn] of this.connections) {
227
+ if (conn.status !== 'connected')
228
+ continue;
229
+ const prefix = conn.config.toolPrefix ?? `${id}_`;
230
+ const { methods } = createMethodRegistry(id);
231
+ for (const mcpTool of conn.tools) {
232
+ const inputSchema = jsonSchemaToZod(mcpTool.inputSchema);
233
+ const outputSchema = z.object({ content: z.array(z.unknown()), isError: z.boolean().optional() });
234
+ methods.push({
235
+ name: mcpTool.name,
236
+ description: mcpTool.description,
237
+ input: inputSchema,
238
+ output: outputSchema,
239
+ protocol: id,
240
+ });
241
+ }
242
+ protocols.push({
243
+ id,
244
+ name: conn.config.name,
245
+ methods,
246
+ requiresClient: false,
247
+ });
248
+ }
249
+ return {
250
+ meta: {
251
+ id: 'mcp-bridge',
252
+ name: 'MCP Bridge',
253
+ description: `External MCP servers: ${[...this.connections.values()]
254
+ .filter((c) => c.status === 'connected')
255
+ .map((c) => c.config.name)
256
+ .join(', ')}`,
257
+ version: '2.0.0',
258
+ tags: ['mcp', 'bridge', 'external'],
259
+ },
260
+ protocols,
261
+ install(_context) {
262
+ return {
263
+ executor: async (method, input) => {
264
+ const result = await bridge.callTool(method.protocol, method.name, input);
265
+ return result;
266
+ },
267
+ teardown: async () => {
268
+ await bridge.disconnectAll();
269
+ },
270
+ };
271
+ },
272
+ };
273
+ }
274
+ /* ── Introspection ────────────────────────────────────────── */
275
+ /**
276
+ * Get connection status for a specific server.
277
+ */
278
+ getStatus(id) {
279
+ const conn = this.connections.get(id);
280
+ if (!conn)
281
+ return undefined;
282
+ return {
283
+ id: conn.config.id,
284
+ name: conn.config.name,
285
+ status: conn.status,
286
+ toolCount: conn.tools.length,
287
+ resourceCount: conn.resources.length,
288
+ serverInfo: conn.serverInfo,
289
+ error: conn.error,
290
+ connectedAt: conn.connectedAt,
291
+ };
292
+ }
293
+ /**
294
+ * Get all connection statuses.
295
+ */
296
+ getAllStatuses() {
297
+ return [...this.connections.keys()]
298
+ .map((id) => this.getStatus(id))
299
+ .filter(Boolean);
300
+ }
301
+ /**
302
+ * Get all tool definitions from all connected servers.
303
+ */
304
+ getAllToolDefinitions() {
305
+ const defs = [];
306
+ for (const [id, conn] of this.connections) {
307
+ if (conn.status !== 'connected')
308
+ continue;
309
+ for (const t of conn.tools) {
310
+ defs.push({ ...t, serverId: id });
311
+ }
312
+ }
313
+ return defs;
314
+ }
315
+ /* ── stdio Transport Implementation ───────────────────────── */
316
+ async connectStdio(conn) {
317
+ const { spawn } = await import('child_process');
318
+ if (!conn.config.command) {
319
+ throw new Error(`stdio transport requires a "command" in config`);
320
+ }
321
+ conn.process = spawn(conn.config.command, conn.config.args ?? [], {
322
+ env: { ...process.env, ...conn.config.env },
323
+ stdio: ['pipe', 'pipe', 'pipe'],
324
+ });
325
+ // Read stdout (MCP messages)
326
+ conn.process.stdout.setEncoding('utf8');
327
+ conn.process.stdout.on('data', (data) => {
328
+ conn.buffer += data;
329
+ this.processBuffer(conn);
330
+ });
331
+ // Read stderr (debug output)
332
+ conn.process.stderr.setEncoding('utf8');
333
+ conn.process.stderr.on('data', (data) => {
334
+ if (this.debug) {
335
+ process.stderr.write(`[McpBridge:${conn.config.id}:stderr] ${data}`);
336
+ }
337
+ });
338
+ conn.process.on('exit', (code) => {
339
+ if (this.debug) {
340
+ process.stderr.write(`[McpBridge] "${conn.config.id}" exited with code ${code}\n`);
341
+ }
342
+ conn.status = 'disconnected';
343
+ for (const [, pending] of conn.pendingRequests) {
344
+ clearTimeout(pending.timeout);
345
+ pending.reject(new Error(`Process exited with code ${code}`));
346
+ }
347
+ conn.pendingRequests.clear();
348
+ });
349
+ conn.process.on('error', (err) => {
350
+ conn.status = 'error';
351
+ conn.error = err.message;
352
+ });
353
+ // Wait a bit for process to start
354
+ await new Promise((resolve) => setTimeout(resolve, 200));
355
+ if (conn.process.exitCode !== null) {
356
+ throw new Error(`MCP server process exited immediately with code ${conn.process.exitCode}`);
357
+ }
358
+ }
359
+ /* ── SSE Transport Implementation ─────────────────────────── */
360
+ async connectSse(conn) {
361
+ if (!conn.config.url) {
362
+ throw new Error(`SSE transport requires a "url" in config`);
363
+ }
364
+ const sseUrl = conn.config.url;
365
+ // Connect to SSE endpoint
366
+ const response = await fetch(sseUrl, {
367
+ headers: {
368
+ Accept: 'text/event-stream',
369
+ ...conn.config.headers,
370
+ },
371
+ });
372
+ if (!response.ok) {
373
+ throw new Error(`SSE connection failed: HTTP ${response.status}`);
374
+ }
375
+ if (!response.body) {
376
+ throw new Error('SSE response has no body');
377
+ }
378
+ // Find the message endpoint from SSE events
379
+ const reader = response.body.getReader();
380
+ const decoder = new TextDecoder();
381
+ let endpointFound = false;
382
+ // Read initial SSE events to get the endpoint
383
+ const readInitial = async () => {
384
+ while (!endpointFound) {
385
+ const { done, value } = await reader.read();
386
+ if (done)
387
+ break;
388
+ const text = decoder.decode(value, { stream: true });
389
+ const lines = text.split('\n');
390
+ for (const line of lines) {
391
+ if (line.startsWith('event: endpoint')) {
392
+ // Next data line has the endpoint
393
+ continue;
394
+ }
395
+ if (line.startsWith('data: ') && !endpointFound) {
396
+ const data = line.slice(6).trim();
397
+ if (data.includes('/message')) {
398
+ // Construct full URL
399
+ const base = new URL(sseUrl);
400
+ conn.sseEndpoint = data.startsWith('/')
401
+ ? `${base.origin}${data}`
402
+ : data;
403
+ // Extract session ID
404
+ const url = new URL(conn.sseEndpoint);
405
+ conn.sseSessionId = url.searchParams.get('sessionId') ?? undefined;
406
+ endpointFound = true;
407
+ }
408
+ }
409
+ }
410
+ }
411
+ };
412
+ // Timeout for initial connection
413
+ await Promise.race([
414
+ readInitial(),
415
+ new Promise((_, reject) => setTimeout(() => reject(new Error('SSE endpoint timeout')), conn.config.timeout ?? 10_000)),
416
+ ]);
417
+ if (!conn.sseEndpoint) {
418
+ throw new Error('Failed to get SSE message endpoint');
419
+ }
420
+ // Continue reading SSE for responses (in background)
421
+ this.readSseResponses(conn, reader, decoder);
422
+ }
423
+ readSseResponses(conn, reader, decoder) {
424
+ const read = async () => {
425
+ try {
426
+ while (conn.status === 'connected' || conn.status === 'connecting') {
427
+ const { done, value } = await reader.read();
428
+ if (done)
429
+ break;
430
+ const text = decoder.decode(value, { stream: true });
431
+ const lines = text.split('\n');
432
+ for (const line of lines) {
433
+ if (line.startsWith('data: ')) {
434
+ const data = line.slice(6).trim();
435
+ if (!data)
436
+ continue;
437
+ try {
438
+ const msg = JSON.parse(data);
439
+ this.handleResponse(conn, msg);
440
+ }
441
+ catch {
442
+ // Not JSON, ignore
443
+ }
444
+ }
445
+ }
446
+ }
447
+ }
448
+ catch (err) {
449
+ if (conn.status === 'connected') {
450
+ conn.status = 'error';
451
+ conn.error = String(err);
452
+ }
453
+ }
454
+ };
455
+ read();
456
+ }
457
+ /* ── JSON-RPC Communication ───────────────────────────────── */
458
+ async sendRequest(conn, method, params) {
459
+ const id = ++conn.requestId;
460
+ const request = {
461
+ jsonrpc: MCP_JSONRPC_VERSION,
462
+ id,
463
+ method,
464
+ params,
465
+ };
466
+ const timeout = conn.config.timeout ?? 30_000;
467
+ return new Promise((resolve, reject) => {
468
+ const timer = setTimeout(() => {
469
+ conn.pendingRequests.delete(id);
470
+ reject(new Error(`MCP request timeout: ${method} (${timeout}ms)`));
471
+ }, timeout);
472
+ conn.pendingRequests.set(id, { resolve, reject, timeout: timer });
473
+ if (conn.config.transport === 'stdio' && conn.process?.stdin) {
474
+ conn.process.stdin.write(JSON.stringify(request) + '\n');
475
+ }
476
+ else if (conn.config.transport === 'sse' && conn.sseEndpoint) {
477
+ fetch(conn.sseEndpoint, {
478
+ method: 'POST',
479
+ headers: {
480
+ 'Content-Type': 'application/json',
481
+ ...conn.config.headers,
482
+ },
483
+ body: JSON.stringify(request),
484
+ }).catch((err) => {
485
+ conn.pendingRequests.delete(id);
486
+ clearTimeout(timer);
487
+ reject(err);
488
+ });
489
+ }
490
+ else {
491
+ conn.pendingRequests.delete(id);
492
+ clearTimeout(timer);
493
+ reject(new Error('No transport available'));
494
+ }
495
+ });
496
+ }
497
+ sendNotification(conn, method, params) {
498
+ const notif = { jsonrpc: '2.0', method, params };
499
+ if (conn.config.transport === 'stdio' && conn.process?.stdin) {
500
+ conn.process.stdin.write(JSON.stringify(notif) + '\n');
501
+ }
502
+ else if (conn.config.transport === 'sse' && conn.sseEndpoint) {
503
+ fetch(conn.sseEndpoint, {
504
+ method: 'POST',
505
+ headers: { 'Content-Type': 'application/json', ...conn.config.headers },
506
+ body: JSON.stringify(notif),
507
+ }).catch(() => { });
508
+ }
509
+ }
510
+ processBuffer(conn) {
511
+ while (true) {
512
+ const newlineIdx = conn.buffer.indexOf('\n');
513
+ if (newlineIdx === -1)
514
+ break;
515
+ const line = conn.buffer.slice(0, newlineIdx).trim();
516
+ conn.buffer = conn.buffer.slice(newlineIdx + 1);
517
+ if (!line)
518
+ continue;
519
+ try {
520
+ const msg = JSON.parse(line);
521
+ this.handleResponse(conn, msg);
522
+ }
523
+ catch {
524
+ if (this.debug) {
525
+ process.stderr.write(`[McpBridge:${conn.config.id}] Invalid JSON: ${line.slice(0, 100)}\n`);
526
+ }
527
+ }
528
+ }
529
+ }
530
+ handleResponse(conn, msg) {
531
+ if (msg.id === undefined || msg.id === null)
532
+ return;
533
+ const pending = conn.pendingRequests.get(msg.id);
534
+ if (!pending)
535
+ return;
536
+ conn.pendingRequests.delete(msg.id);
537
+ clearTimeout(pending.timeout);
538
+ if (msg.error) {
539
+ pending.reject(new Error(`MCP error: ${msg.error.message} (${msg.error.code})`));
540
+ }
541
+ else {
542
+ pending.resolve(msg.result);
543
+ }
544
+ }
545
+ /* ── LangChain Tool Builder ───────────────────────────────── */
546
+ buildLangChainTools(conn) {
547
+ const prefix = conn.config.toolPrefix ?? '';
548
+ const tools = [];
549
+ for (const mcpTool of conn.tools) {
550
+ const name = `${prefix}${mcpTool.name}`;
551
+ const inputSchema = jsonSchemaToZod(mcpTool.inputSchema);
552
+ const t = tool(async (input) => {
553
+ const result = await this.callTool(conn.config.id, mcpTool.name, input);
554
+ const content = result?.content;
555
+ if (Array.isArray(content)) {
556
+ return content
557
+ .map((c) => c.text ?? JSON.stringify(c))
558
+ .join('\n');
559
+ }
560
+ return JSON.stringify(result, null, 2);
561
+ }, {
562
+ name,
563
+ description: mcpTool.description ?? `External MCP tool: ${mcpTool.name}`,
564
+ schema: inputSchema,
565
+ });
566
+ tools.push(t);
567
+ }
568
+ return tools;
569
+ }
570
+ }
571
+ /* ═══════════════════════════════════════════════════════════════
572
+ * JSON Schema → Zod (runtime conversion)
573
+ *
574
+ * Converts MCP tool inputSchema (JSON Schema) to Zod schemas
575
+ * so they work with LangChain and the plugin system.
576
+ * ═══════════════════════════════════════════════════════════════ */
577
+ function jsonSchemaToZod(schema) {
578
+ if (!schema)
579
+ return z.object({});
580
+ const type = schema.type;
581
+ switch (type) {
582
+ case 'object': {
583
+ const properties = (schema.properties ?? {});
584
+ const required = new Set((schema.required ?? []));
585
+ const shape = {};
586
+ for (const [key, propSchema] of Object.entries(properties)) {
587
+ let field = jsonSchemaToZod(propSchema);
588
+ // Add description
589
+ const desc = propSchema.description;
590
+ if (desc)
591
+ field = field.describe(desc);
592
+ // Make optional if not required
593
+ if (!required.has(key)) {
594
+ field = field.optional();
595
+ }
596
+ shape[key] = field;
597
+ }
598
+ return z.object(shape);
599
+ }
600
+ case 'string': {
601
+ let s = z.string();
602
+ if (schema.enum)
603
+ return z.enum(schema.enum);
604
+ if (schema.description)
605
+ s = s.describe(schema.description);
606
+ return s;
607
+ }
608
+ case 'number':
609
+ case 'integer': {
610
+ let n = z.number();
611
+ if (type === 'integer')
612
+ n = n.int();
613
+ if (schema.minimum !== undefined)
614
+ n = n.min(schema.minimum);
615
+ if (schema.maximum !== undefined)
616
+ n = n.max(schema.maximum);
617
+ if (schema.description)
618
+ n = n.describe(schema.description);
619
+ return n;
620
+ }
621
+ case 'boolean': {
622
+ let b = z.boolean();
623
+ if (schema.description)
624
+ b = b.describe(schema.description);
625
+ return b;
626
+ }
627
+ case 'array': {
628
+ const items = schema.items ? jsonSchemaToZod(schema.items) : z.unknown();
629
+ let arr = z.array(items);
630
+ if (schema.description)
631
+ arr = arr.describe(schema.description);
632
+ return arr;
633
+ }
634
+ default:
635
+ return z.unknown();
636
+ }
637
+ }
638
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/ai/mcp/client.ts"],"names":[],"mappings":"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"}