keyring-agent-core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (318) hide show
  1. package/README.md +169 -0
  2. package/dist/agent/AgentCore.d.ts +220 -0
  3. package/dist/agent/AgentCore.d.ts.map +1 -0
  4. package/dist/agent/AgentCore.js +950 -0
  5. package/dist/agent/AgentCore.js.map +1 -0
  6. package/dist/agent/QueryRewriter.d.ts +67 -0
  7. package/dist/agent/QueryRewriter.d.ts.map +1 -0
  8. package/dist/agent/QueryRewriter.js +262 -0
  9. package/dist/agent/QueryRewriter.js.map +1 -0
  10. package/dist/agent/Router.d.ts +33 -0
  11. package/dist/agent/Router.d.ts.map +1 -0
  12. package/dist/agent/Router.js +191 -0
  13. package/dist/agent/Router.js.map +1 -0
  14. package/dist/agent/Subagent.d.ts +63 -0
  15. package/dist/agent/Subagent.d.ts.map +1 -0
  16. package/dist/agent/Subagent.js +240 -0
  17. package/dist/agent/Subagent.js.map +1 -0
  18. package/dist/agent/Synthesizer.d.ts +11 -0
  19. package/dist/agent/Synthesizer.d.ts.map +1 -0
  20. package/dist/agent/Synthesizer.js +86 -0
  21. package/dist/agent/Synthesizer.js.map +1 -0
  22. package/dist/agent/index.d.ts +10 -0
  23. package/dist/agent/index.d.ts.map +1 -0
  24. package/dist/agent/index.js +24 -0
  25. package/dist/agent/index.js.map +1 -0
  26. package/dist/agent/subagents/AiAgent.d.ts +6 -0
  27. package/dist/agent/subagents/AiAgent.d.ts.map +1 -0
  28. package/dist/agent/subagents/AiAgent.js +48 -0
  29. package/dist/agent/subagents/AiAgent.js.map +1 -0
  30. package/dist/agent/subagents/NftAgent.d.ts +6 -0
  31. package/dist/agent/subagents/NftAgent.d.ts.map +1 -0
  32. package/dist/agent/subagents/NftAgent.js +69 -0
  33. package/dist/agent/subagents/NftAgent.js.map +1 -0
  34. package/dist/agent/subagents/PoolAgent.d.ts +6 -0
  35. package/dist/agent/subagents/PoolAgent.d.ts.map +1 -0
  36. package/dist/agent/subagents/PoolAgent.js +184 -0
  37. package/dist/agent/subagents/PoolAgent.js.map +1 -0
  38. package/dist/agent/subagents/TokenAgent.d.ts +6 -0
  39. package/dist/agent/subagents/TokenAgent.d.ts.map +1 -0
  40. package/dist/agent/subagents/TokenAgent.js +75 -0
  41. package/dist/agent/subagents/TokenAgent.js.map +1 -0
  42. package/dist/agent/subagents/WalletAgent.d.ts +6 -0
  43. package/dist/agent/subagents/WalletAgent.d.ts.map +1 -0
  44. package/dist/agent/subagents/WalletAgent.js +92 -0
  45. package/dist/agent/subagents/WalletAgent.js.map +1 -0
  46. package/dist/agent/subagents/index.d.ts +14 -0
  47. package/dist/agent/subagents/index.d.ts.map +1 -0
  48. package/dist/agent/subagents/index.js +38 -0
  49. package/dist/agent/subagents/index.js.map +1 -0
  50. package/dist/constants/abi.d.ts +520 -0
  51. package/dist/constants/abi.d.ts.map +1 -0
  52. package/dist/constants/abi.js +667 -0
  53. package/dist/constants/abi.js.map +1 -0
  54. package/dist/functions/pool.d.ts +25 -0
  55. package/dist/functions/pool.d.ts.map +1 -0
  56. package/dist/functions/pool.js +151 -0
  57. package/dist/functions/pool.js.map +1 -0
  58. package/dist/functions/web3.d.ts +32 -0
  59. package/dist/functions/web3.d.ts.map +1 -0
  60. package/dist/functions/web3.js +277 -0
  61. package/dist/functions/web3.js.map +1 -0
  62. package/dist/index.d.ts +24 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +65 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/llm/GeminiProvider.d.ts +16 -0
  67. package/dist/llm/GeminiProvider.d.ts.map +1 -0
  68. package/dist/llm/GeminiProvider.js +248 -0
  69. package/dist/llm/GeminiProvider.js.map +1 -0
  70. package/dist/llm/index.d.ts +2 -0
  71. package/dist/llm/index.d.ts.map +1 -0
  72. package/dist/llm/index.js +6 -0
  73. package/dist/llm/index.js.map +1 -0
  74. package/dist/memory/ChatHistory.d.ts +83 -0
  75. package/dist/memory/ChatHistory.d.ts.map +1 -0
  76. package/dist/memory/ChatHistory.js +143 -0
  77. package/dist/memory/ChatHistory.js.map +1 -0
  78. package/dist/memory/KnowledgeBase.d.ts +38 -0
  79. package/dist/memory/KnowledgeBase.d.ts.map +1 -0
  80. package/dist/memory/KnowledgeBase.js +139 -0
  81. package/dist/memory/KnowledgeBase.js.map +1 -0
  82. package/dist/memory/Summarizer.d.ts +12 -0
  83. package/dist/memory/Summarizer.d.ts.map +1 -0
  84. package/dist/memory/Summarizer.js +39 -0
  85. package/dist/memory/Summarizer.js.map +1 -0
  86. package/dist/memory/UpstashKnowledgeBase.d.ts +124 -0
  87. package/dist/memory/UpstashKnowledgeBase.d.ts.map +1 -0
  88. package/dist/memory/UpstashKnowledgeBase.js +152 -0
  89. package/dist/memory/UpstashKnowledgeBase.js.map +1 -0
  90. package/dist/memory/historyUtils.d.ts +58 -0
  91. package/dist/memory/historyUtils.d.ts.map +1 -0
  92. package/dist/memory/historyUtils.js +190 -0
  93. package/dist/memory/historyUtils.js.map +1 -0
  94. package/dist/memory/index.d.ts +7 -0
  95. package/dist/memory/index.d.ts.map +1 -0
  96. package/dist/memory/index.js +12 -0
  97. package/dist/memory/index.js.map +1 -0
  98. package/dist/memory/ingestKnowledgeBase.d.ts +17 -0
  99. package/dist/memory/ingestKnowledgeBase.d.ts.map +1 -0
  100. package/dist/memory/ingestKnowledgeBase.js +35 -0
  101. package/dist/memory/ingestKnowledgeBase.js.map +1 -0
  102. package/dist/services/MoralisService.d.ts +1350 -0
  103. package/dist/services/MoralisService.d.ts.map +1 -0
  104. package/dist/services/MoralisService.js +1364 -0
  105. package/dist/services/MoralisService.js.map +1 -0
  106. package/dist/services/PantographService.d.ts +38 -0
  107. package/dist/services/PantographService.d.ts.map +1 -0
  108. package/dist/services/PantographService.js +199 -0
  109. package/dist/services/PantographService.js.map +1 -0
  110. package/dist/services/PoolService.d.ts +241 -0
  111. package/dist/services/PoolService.d.ts.map +1 -0
  112. package/dist/services/PoolService.js +507 -0
  113. package/dist/services/PoolService.js.map +1 -0
  114. package/dist/services/UniswapService.d.ts +289 -0
  115. package/dist/services/UniswapService.d.ts.map +1 -0
  116. package/dist/services/UniswapService.js +585 -0
  117. package/dist/services/UniswapService.js.map +1 -0
  118. package/dist/services/swap/BaseSwapService.d.ts +17 -0
  119. package/dist/services/swap/BaseSwapService.d.ts.map +1 -0
  120. package/dist/services/swap/BaseSwapService.js +19 -0
  121. package/dist/services/swap/BaseSwapService.js.map +1 -0
  122. package/dist/services/swap/DebridgeAdapter.d.ts +20 -0
  123. package/dist/services/swap/DebridgeAdapter.d.ts.map +1 -0
  124. package/dist/services/swap/DebridgeAdapter.js +175 -0
  125. package/dist/services/swap/DebridgeAdapter.js.map +1 -0
  126. package/dist/services/swap/RelayAdapter.d.ts +19 -0
  127. package/dist/services/swap/RelayAdapter.d.ts.map +1 -0
  128. package/dist/services/swap/RelayAdapter.js +189 -0
  129. package/dist/services/swap/RelayAdapter.js.map +1 -0
  130. package/dist/services/swap/SwapServiceFactory.d.ts +24 -0
  131. package/dist/services/swap/SwapServiceFactory.d.ts.map +1 -0
  132. package/dist/services/swap/SwapServiceFactory.js +74 -0
  133. package/dist/services/swap/SwapServiceFactory.js.map +1 -0
  134. package/dist/services/swap/addresses.d.ts +3 -0
  135. package/dist/services/swap/addresses.d.ts.map +1 -0
  136. package/dist/services/swap/addresses.js +68 -0
  137. package/dist/services/swap/addresses.js.map +1 -0
  138. package/dist/services/swap/affiliate.d.ts +17 -0
  139. package/dist/services/swap/affiliate.d.ts.map +1 -0
  140. package/dist/services/swap/affiliate.js +126 -0
  141. package/dist/services/swap/affiliate.js.map +1 -0
  142. package/dist/services/swap/config.d.ts +9 -0
  143. package/dist/services/swap/config.d.ts.map +1 -0
  144. package/dist/services/swap/config.js +19 -0
  145. package/dist/services/swap/config.js.map +1 -0
  146. package/dist/services/swap/index.d.ts +10 -0
  147. package/dist/services/swap/index.d.ts.map +1 -0
  148. package/dist/services/swap/index.js +22 -0
  149. package/dist/services/swap/index.js.map +1 -0
  150. package/dist/services/swap/types.d.ts +89 -0
  151. package/dist/services/swap/types.d.ts.map +1 -0
  152. package/dist/services/swap/types.js +6 -0
  153. package/dist/services/swap/types.js.map +1 -0
  154. package/dist/tools/BaseTool.d.ts +15 -0
  155. package/dist/tools/BaseTool.d.ts.map +1 -0
  156. package/dist/tools/BaseTool.js +35 -0
  157. package/dist/tools/BaseTool.js.map +1 -0
  158. package/dist/tools/ToolRegistry.d.ts +27 -0
  159. package/dist/tools/ToolRegistry.d.ts.map +1 -0
  160. package/dist/tools/ToolRegistry.js +80 -0
  161. package/dist/tools/ToolRegistry.js.map +1 -0
  162. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts +33 -0
  163. package/dist/tools/builtin/ai/MoralisCortexTool.d.ts.map +1 -0
  164. package/dist/tools/builtin/ai/MoralisCortexTool.js +76 -0
  165. package/dist/tools/builtin/ai/MoralisCortexTool.js.map +1 -0
  166. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts +22 -0
  167. package/dist/tools/builtin/ai/SolanaCortexTool.d.ts.map +1 -0
  168. package/dist/tools/builtin/ai/SolanaCortexTool.js +80 -0
  169. package/dist/tools/builtin/ai/SolanaCortexTool.js.map +1 -0
  170. package/dist/tools/builtin/ai/index.d.ts +5 -0
  171. package/dist/tools/builtin/ai/index.d.ts.map +1 -0
  172. package/dist/tools/builtin/ai/index.js +8 -0
  173. package/dist/tools/builtin/ai/index.js.map +1 -0
  174. package/dist/tools/builtin/index.d.ts +6 -0
  175. package/dist/tools/builtin/index.d.ts.map +1 -0
  176. package/dist/tools/builtin/index.js +22 -0
  177. package/dist/tools/builtin/index.js.map +1 -0
  178. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts +21 -0
  179. package/dist/tools/builtin/nft/NFTContractInfoTool.d.ts.map +1 -0
  180. package/dist/tools/builtin/nft/NFTContractInfoTool.js +54 -0
  181. package/dist/tools/builtin/nft/NFTContractInfoTool.js.map +1 -0
  182. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts +121 -0
  183. package/dist/tools/builtin/nft/NFTMetadataTool.d.ts.map +1 -0
  184. package/dist/tools/builtin/nft/NFTMetadataTool.js +159 -0
  185. package/dist/tools/builtin/nft/NFTMetadataTool.js.map +1 -0
  186. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts +82 -0
  187. package/dist/tools/builtin/nft/WalletNFTsTool.d.ts.map +1 -0
  188. package/dist/tools/builtin/nft/WalletNFTsTool.js +172 -0
  189. package/dist/tools/builtin/nft/WalletNFTsTool.js.map +1 -0
  190. package/dist/tools/builtin/nft/index.d.ts +7 -0
  191. package/dist/tools/builtin/nft/index.d.ts.map +1 -0
  192. package/dist/tools/builtin/nft/index.js +10 -0
  193. package/dist/tools/builtin/nft/index.js.map +1 -0
  194. package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts +124 -0
  195. package/dist/tools/builtin/pool/EstimatePoolYieldTool.d.ts.map +1 -0
  196. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js +235 -0
  197. package/dist/tools/builtin/pool/EstimatePoolYieldTool.js.map +1 -0
  198. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts +127 -0
  199. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.d.ts.map +1 -0
  200. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js +517 -0
  201. package/dist/tools/builtin/pool/OpenAddLiquidityFormTool.js.map +1 -0
  202. package/dist/tools/builtin/pool/PoolByAddressTool.d.ts +127 -0
  203. package/dist/tools/builtin/pool/PoolByAddressTool.d.ts.map +1 -0
  204. package/dist/tools/builtin/pool/PoolByAddressTool.js +237 -0
  205. package/dist/tools/builtin/pool/PoolByAddressTool.js.map +1 -0
  206. package/dist/tools/builtin/pool/PoolDetailTool.d.ts +127 -0
  207. package/dist/tools/builtin/pool/PoolDetailTool.d.ts.map +1 -0
  208. package/dist/tools/builtin/pool/PoolDetailTool.js +272 -0
  209. package/dist/tools/builtin/pool/PoolDetailTool.js.map +1 -0
  210. package/dist/tools/builtin/pool/PoolSearchTool.d.ts +50 -0
  211. package/dist/tools/builtin/pool/PoolSearchTool.d.ts.map +1 -0
  212. package/dist/tools/builtin/pool/PoolSearchTool.js +159 -0
  213. package/dist/tools/builtin/pool/PoolSearchTool.js.map +1 -0
  214. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts +123 -0
  215. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.d.ts.map +1 -0
  216. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js +380 -0
  217. package/dist/tools/builtin/pool/PreviewAddLiquidityTool.js.map +1 -0
  218. package/dist/tools/builtin/pool/TopPoolsTool.d.ts +68 -0
  219. package/dist/tools/builtin/pool/TopPoolsTool.d.ts.map +1 -0
  220. package/dist/tools/builtin/pool/TopPoolsTool.js +158 -0
  221. package/dist/tools/builtin/pool/TopPoolsTool.js.map +1 -0
  222. package/dist/tools/builtin/pool/index.d.ts +15 -0
  223. package/dist/tools/builtin/pool/index.d.ts.map +1 -0
  224. package/dist/tools/builtin/pool/index.js +18 -0
  225. package/dist/tools/builtin/pool/index.js.map +1 -0
  226. package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts +71 -0
  227. package/dist/tools/builtin/token/TokenAnalyticsTool.d.ts.map +1 -0
  228. package/dist/tools/builtin/token/TokenAnalyticsTool.js +146 -0
  229. package/dist/tools/builtin/token/TokenAnalyticsTool.js.map +1 -0
  230. package/dist/tools/builtin/token/TokenHoldersTool.d.ts +81 -0
  231. package/dist/tools/builtin/token/TokenHoldersTool.d.ts.map +1 -0
  232. package/dist/tools/builtin/token/TokenHoldersTool.js +138 -0
  233. package/dist/tools/builtin/token/TokenHoldersTool.js.map +1 -0
  234. package/dist/tools/builtin/token/TokenInfoTool.d.ts +36 -0
  235. package/dist/tools/builtin/token/TokenInfoTool.d.ts.map +1 -0
  236. package/dist/tools/builtin/token/TokenInfoTool.js +163 -0
  237. package/dist/tools/builtin/token/TokenInfoTool.js.map +1 -0
  238. package/dist/tools/builtin/token/TokenScoreTool.d.ts +63 -0
  239. package/dist/tools/builtin/token/TokenScoreTool.d.ts.map +1 -0
  240. package/dist/tools/builtin/token/TokenScoreTool.js +147 -0
  241. package/dist/tools/builtin/token/TokenScoreTool.js.map +1 -0
  242. package/dist/tools/builtin/token/TopGainersTool.d.ts +46 -0
  243. package/dist/tools/builtin/token/TopGainersTool.d.ts.map +1 -0
  244. package/dist/tools/builtin/token/TopGainersTool.js +110 -0
  245. package/dist/tools/builtin/token/TopGainersTool.js.map +1 -0
  246. package/dist/tools/builtin/token/TopLosersTool.d.ts +66 -0
  247. package/dist/tools/builtin/token/TopLosersTool.d.ts.map +1 -0
  248. package/dist/tools/builtin/token/TopLosersTool.js +128 -0
  249. package/dist/tools/builtin/token/TopLosersTool.js.map +1 -0
  250. package/dist/tools/builtin/token/TrendingTokensTool.d.ts +39 -0
  251. package/dist/tools/builtin/token/TrendingTokensTool.d.ts.map +1 -0
  252. package/dist/tools/builtin/token/TrendingTokensTool.js +75 -0
  253. package/dist/tools/builtin/token/TrendingTokensTool.js.map +1 -0
  254. package/dist/tools/builtin/token/index.d.ts +15 -0
  255. package/dist/tools/builtin/token/index.d.ts.map +1 -0
  256. package/dist/tools/builtin/token/index.js +18 -0
  257. package/dist/tools/builtin/token/index.js.map +1 -0
  258. package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts +70 -0
  259. package/dist/tools/builtin/wallet/TransactionByHashTool.d.ts.map +1 -0
  260. package/dist/tools/builtin/wallet/TransactionByHashTool.js +110 -0
  261. package/dist/tools/builtin/wallet/TransactionByHashTool.js.map +1 -0
  262. package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts +107 -0
  263. package/dist/tools/builtin/wallet/WalletApprovalsTool.d.ts.map +1 -0
  264. package/dist/tools/builtin/wallet/WalletApprovalsTool.js +163 -0
  265. package/dist/tools/builtin/wallet/WalletApprovalsTool.js.map +1 -0
  266. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts +61 -0
  267. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.d.ts.map +1 -0
  268. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js +99 -0
  269. package/dist/tools/builtin/wallet/WalletDefiPositionsTool.js.map +1 -0
  270. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts +68 -0
  271. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.d.ts.map +1 -0
  272. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js +114 -0
  273. package/dist/tools/builtin/wallet/WalletDefiProtocolPositionsTool.js.map +1 -0
  274. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts +50 -0
  275. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.d.ts.map +1 -0
  276. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js +79 -0
  277. package/dist/tools/builtin/wallet/WalletDefiSummaryTool.js.map +1 -0
  278. package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts +31 -0
  279. package/dist/tools/builtin/wallet/WalletHistoryTool.d.ts.map +1 -0
  280. package/dist/tools/builtin/wallet/WalletHistoryTool.js +153 -0
  281. package/dist/tools/builtin/wallet/WalletHistoryTool.js.map +1 -0
  282. package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts +44 -0
  283. package/dist/tools/builtin/wallet/WalletNetWorthTool.d.ts.map +1 -0
  284. package/dist/tools/builtin/wallet/WalletNetWorthTool.js +122 -0
  285. package/dist/tools/builtin/wallet/WalletNetWorthTool.js.map +1 -0
  286. package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts +86 -0
  287. package/dist/tools/builtin/wallet/WalletNftTransfersTool.d.ts.map +1 -0
  288. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js +264 -0
  289. package/dist/tools/builtin/wallet/WalletNftTransfersTool.js.map +1 -0
  290. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts +43 -0
  291. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.d.ts.map +1 -0
  292. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js +88 -0
  293. package/dist/tools/builtin/wallet/WalletPnlSummaryTool.js.map +1 -0
  294. package/dist/tools/builtin/wallet/WalletPnlTool.d.ts +43 -0
  295. package/dist/tools/builtin/wallet/WalletPnlTool.d.ts.map +1 -0
  296. package/dist/tools/builtin/wallet/WalletPnlTool.js +174 -0
  297. package/dist/tools/builtin/wallet/WalletPnlTool.js.map +1 -0
  298. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts +35 -0
  299. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.d.ts.map +1 -0
  300. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js +67 -0
  301. package/dist/tools/builtin/wallet/WalletTokenBalancesTool.js.map +1 -0
  302. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts +109 -0
  303. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.d.ts.map +1 -0
  304. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js +353 -0
  305. package/dist/tools/builtin/wallet/WalletTokenTransfersTool.js.map +1 -0
  306. package/dist/tools/builtin/wallet/index.d.ts +25 -0
  307. package/dist/tools/builtin/wallet/index.d.ts.map +1 -0
  308. package/dist/tools/builtin/wallet/index.js +28 -0
  309. package/dist/tools/builtin/wallet/index.js.map +1 -0
  310. package/dist/tools/index.d.ts +4 -0
  311. package/dist/tools/index.d.ts.map +1 -0
  312. package/dist/tools/index.js +23 -0
  313. package/dist/tools/index.js.map +1 -0
  314. package/dist/types/index.d.ts +566 -0
  315. package/dist/types/index.d.ts.map +1 -0
  316. package/dist/types/index.js +6 -0
  317. package/dist/types/index.js.map +1 -0
  318. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenAddLiquidityFormTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/pool/OpenAddLiquidityFormTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type UniswapServiceConfig } from '../../../services/UniswapService';
4
+ export type PoolByAddressToolConfig = UniswapServiceConfig;
5
+ /**
6
+ * Tool: lookup-pool-by-address
7
+ *
8
+ * Resolves a single 0x address against Uniswap when the caller does not yet
9
+ * know whether it is a pool contract or a token contract. The tool fans out
10
+ * two SearchTokens calls in parallel — one with `searchType: "POOL"`, one
11
+ * with `searchType: "TOKEN"` — and dispatches based on which side returns
12
+ * data:
13
+ *
14
+ * - POOL hit → fetch the pool's full detail (V3Pool GraphQL).
15
+ * - TOKEN hit → list pools that contain that token, ranked by 24h volume.
16
+ * - Neither → return an error so the caller can ask the user to clarify.
17
+ */
18
+ export declare class PoolByAddressTool extends BaseTool {
19
+ name: string;
20
+ description: string;
21
+ category: string;
22
+ parameters: ToolParameter[];
23
+ private service;
24
+ constructor(config?: PoolByAddressToolConfig);
25
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
26
+ error: string;
27
+ _instructions?: undefined;
28
+ resolvedAs?: undefined;
29
+ chain?: undefined;
30
+ protocolVersion?: undefined;
31
+ pool?: undefined;
32
+ } | {
33
+ _instructions: string;
34
+ resolvedAs: string;
35
+ chain: string;
36
+ protocolVersion: import("../../../services/UniswapService").UniswapProtocolVersion;
37
+ pool: {
38
+ address: string | undefined;
39
+ protocolVersion: import("../../../services/UniswapService").UniswapProtocolVersion | undefined;
40
+ poolId: string | undefined;
41
+ tickSpacing: number | undefined;
42
+ isDynamicFee: boolean | undefined;
43
+ hookAddress: string | undefined;
44
+ feeTierBps: number | undefined;
45
+ feeTierPercent: number | undefined;
46
+ tvlUsd: number | undefined;
47
+ tvlChange24hPercent: number | undefined;
48
+ volume24hUsd: number | undefined;
49
+ fees24hUsd: number | undefined;
50
+ aprPercent: number | undefined;
51
+ txCount: number | undefined;
52
+ historicalVolumeWeek: {
53
+ timestamp: number | undefined;
54
+ volumeUsd: number | undefined;
55
+ }[] | undefined;
56
+ token0: {
57
+ address: string | undefined;
58
+ symbol: string | undefined;
59
+ name: string | undefined;
60
+ decimals: number | undefined;
61
+ priceUsd: number | undefined;
62
+ reserve: number | undefined;
63
+ } | undefined;
64
+ token1: {
65
+ address: string | undefined;
66
+ symbol: string | undefined;
67
+ name: string | undefined;
68
+ decimals: number | undefined;
69
+ priceUsd: number | undefined;
70
+ reserve: number | undefined;
71
+ } | undefined;
72
+ };
73
+ error?: undefined;
74
+ } | {
75
+ error: string;
76
+ _instructions?: undefined;
77
+ resolvedAs?: undefined;
78
+ chain?: undefined;
79
+ protocolVersion?: undefined;
80
+ token?: undefined;
81
+ poolCount?: undefined;
82
+ pools?: undefined;
83
+ } | {
84
+ _instructions: string;
85
+ resolvedAs: string;
86
+ chain: string;
87
+ protocolVersion: string;
88
+ token: {
89
+ address: string | undefined;
90
+ symbol: string | undefined;
91
+ name: string | undefined;
92
+ decimals: number | undefined;
93
+ chainId: number | undefined;
94
+ isSpam: string | undefined;
95
+ safetyLevel: string | undefined;
96
+ };
97
+ poolCount: number;
98
+ pools: {
99
+ address: string | undefined;
100
+ protocolVersion: import("../../../services/UniswapService").UniswapProtocolVersion | undefined;
101
+ feeTierBps: number | undefined;
102
+ feeTierPercent: number | undefined;
103
+ volume24hUsd: number | undefined;
104
+ pair: string | undefined;
105
+ token0: {
106
+ symbol: string | undefined;
107
+ name: string | undefined;
108
+ address: string | undefined;
109
+ } | undefined;
110
+ token1: {
111
+ symbol: string | undefined;
112
+ name: string | undefined;
113
+ address: string | undefined;
114
+ } | undefined;
115
+ }[];
116
+ error?: undefined;
117
+ }>;
118
+ private handlePoolHit;
119
+ private handleTokenHit;
120
+ private findPoolByAddress;
121
+ private findTokenByAddress;
122
+ private formatToken;
123
+ private formatPoolCandidate;
124
+ private formatPoolDetail;
125
+ private formatHistorical;
126
+ }
127
+ //# sourceMappingURL=PoolByAddressTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolByAddressTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/pool/PoolByAddressTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAEL,KAAK,oBAAoB,EAK1B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAK3D;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;IAC7C,IAAI,SAA4B;IAChC,WAAW,SASsE;IACjF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAgBzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,uBAAuB;cAK5B,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiC9D,aAAa;YAuCb,cAAc;IAyC5B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,gBAAgB;IAuDxB,OAAO,CAAC,gBAAgB;CAIzB"}
@@ -0,0 +1,237 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PoolByAddressTool = void 0;
4
+ const BaseTool_1 = require("../../BaseTool");
5
+ const UniswapService_1 = require("../../../services/UniswapService");
6
+ const DAYS_PER_YEAR = 365;
7
+ const EVM_ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/;
8
+ /**
9
+ * Tool: lookup-pool-by-address
10
+ *
11
+ * Resolves a single 0x address against Uniswap when the caller does not yet
12
+ * know whether it is a pool contract or a token contract. The tool fans out
13
+ * two SearchTokens calls in parallel — one with `searchType: "POOL"`, one
14
+ * with `searchType: "TOKEN"` — and dispatches based on which side returns
15
+ * data:
16
+ *
17
+ * - POOL hit → fetch the pool's full detail (V3Pool GraphQL).
18
+ * - TOKEN hit → list pools that contain that token, ranked by 24h volume.
19
+ * - Neither → return an error so the caller can ask the user to clarify.
20
+ */
21
+ class PoolByAddressTool extends BaseTool_1.BaseTool {
22
+ name = 'lookup-pool-by-address';
23
+ description = 'Resolve an unknown 0x address as either a Uniswap pool or a token, then return the appropriate data: ' +
24
+ 'pool detail when the address is a pool, or the list of pools containing that token when the address is a token. ' +
25
+ 'Use this tool when the user pastes a single address and asks about "the pool" without saying which kind. ' +
26
+ 'For pool detail (when the address is a pool): pair, fee tier, TVL with 24h % change, 24h volume, 24h fees, ' +
27
+ 'estimated APR, token reserves with USD prices, and weekly volume series. ' +
28
+ 'For token resolution (when the address is a token): the resolved token (symbol, name, decimals) plus a ranked ' +
29
+ 'list of pools that include it (pair, fee tier, 24h volume, pool address). ' +
30
+ 'Source: https://app.uniswap.org. ' +
31
+ 'Supports: Ethereum, Optimism, BSC, Polygon, Base, Arbitrum, Avalanche, Linea';
32
+ category = 'blockchain-data';
33
+ parameters = [
34
+ {
35
+ name: 'address',
36
+ type: 'string',
37
+ description: 'A 0x-prefixed EVM address. May be a Uniswap pool contract OR a token contract — the tool figures out which.',
38
+ required: true,
39
+ },
40
+ {
41
+ name: 'chain',
42
+ type: 'string',
43
+ description: 'Hex chain ID: "0x1" Ethereum, "0xa" Optimism, "0x38" BSC, "0x89" Polygon, "0x2105" Base, ' +
44
+ '"0xa4b1" Arbitrum, "0xa86a" Avalanche, "0xe708" Linea. Defaults to connected chain.',
45
+ required: true,
46
+ },
47
+ ];
48
+ service;
49
+ constructor(config) {
50
+ super();
51
+ this.service = new UniswapService_1.UniswapService(config);
52
+ }
53
+ async run(args, userContext) {
54
+ const chain = typeof args.chain === 'string' && args.chain.trim() ? args.chain.trim() : userContext?.chain || '0x1';
55
+ const rawAddress = typeof args.address === 'string' ? args.address.trim() : '';
56
+ // Pool-side resolution always searches across ALL versions: if the user
57
+ // pasted a pool address, they want THAT pool — its actual version dictates
58
+ // the response shape, regardless of the `protocolVersion` parameter.
59
+ const [poolSearch, tokenSearch] = await Promise.all([
60
+ this.service.searchPools({ query: rawAddress, chain, page: 1, size: 5, protocolVersion: 'ALL' }),
61
+ this.service.searchTokens({ query: rawAddress, chain, page: 1, size: 5 }),
62
+ ]);
63
+ const poolHit = poolSearch.success ? this.findPoolByAddress(poolSearch.data ?? [], rawAddress) : undefined;
64
+ if (poolHit) {
65
+ return this.handlePoolHit(poolHit, chain);
66
+ }
67
+ const tokenHit = tokenSearch.success ? this.findTokenByAddress(tokenSearch.data ?? [], rawAddress) : undefined;
68
+ if (tokenHit) {
69
+ return this.handleTokenHit(tokenHit, chain);
70
+ }
71
+ if (!poolSearch.success && !tokenSearch.success) {
72
+ return { error: poolSearch.error || tokenSearch.error || 'Failed to resolve address' };
73
+ }
74
+ return {
75
+ error: `Address ${rawAddress} did not match any pool or token Uniswap knows on chain ${chain}. ` +
76
+ 'Verify the chain (the address may exist on a different network) or ask the user for context.',
77
+ };
78
+ }
79
+ async handlePoolHit(pool, chain) {
80
+ if (!pool.id) {
81
+ return { error: 'Resolved pool has no identifier' };
82
+ }
83
+ const version = pool.protocolVersion ?? 'V3';
84
+ // V2 and V3 are addressed by contract address. V4 uses a 32-byte poolId
85
+ // returned in `pool.id` (no individual contract — the singleton PoolManager
86
+ // owns all V4 pools).
87
+ const detail = version === 'V4'
88
+ ? await this.service.getV4PoolDetail({ poolId: pool.id, chain })
89
+ : version === 'V2'
90
+ ? EVM_ADDRESS_RE.test(pool.id)
91
+ ? await this.service.getV2PoolDetail({ address: pool.id, chain })
92
+ : { success: false, error: 'Resolved V2 pair has no valid address' }
93
+ : EVM_ADDRESS_RE.test(pool.id)
94
+ ? await this.service.getV3PoolDetail({ address: pool.id, chain })
95
+ : { success: false, error: 'Resolved V3 pool has no valid address' };
96
+ if (!detail.success || !detail.data) {
97
+ return { error: detail.error || 'Failed to fetch pool detail' };
98
+ }
99
+ return {
100
+ _instructions: `The address is a Uniswap ${version} pool. Present pool details in a compact summary. Lead with the pair ` +
101
+ '(token0/token1 symbols), fee tier (%), protocol version, and chain. Then show: TVL (USD) with 24h % change, ' +
102
+ '24h volume (USD), 24h fees (USD), estimated APR (%), token0 reserve + USD price, token1 reserve + USD price, ' +
103
+ 'and total tx count. For V4 pools also mention tickSpacing, isDynamicFee, and the hook address if present. ' +
104
+ 'Format numbers human-readably (e.g. $12.5M, +1.23%, 0.05%). Omit null fields. ' +
105
+ 'Do NOT mention tool/API names.',
106
+ resolvedAs: 'pool',
107
+ chain,
108
+ protocolVersion: version,
109
+ pool: this.formatPoolDetail(detail.data),
110
+ };
111
+ }
112
+ async handleTokenHit(token, chain) {
113
+ const symbol = token.symbol?.trim();
114
+ if (!symbol) {
115
+ return { error: 'Resolved token has no symbol — cannot search related pools.' };
116
+ }
117
+ const poolsByToken = await this.service.searchPools({
118
+ query: symbol,
119
+ chain,
120
+ page: 1,
121
+ size: 100,
122
+ protocolVersion: 'V3',
123
+ });
124
+ if (!poolsByToken.success) {
125
+ return { error: poolsByToken.error || 'Failed to fetch pools for resolved token' };
126
+ }
127
+ const tokenAddrLower = (token.address ?? '').toLowerCase();
128
+ const matched = (poolsByToken.data ?? []).filter((p) => {
129
+ const a = (p.token0?.address ?? '').toLowerCase();
130
+ const b = (p.token1?.address ?? '').toLowerCase();
131
+ return a === tokenAddrLower || b === tokenAddrLower;
132
+ });
133
+ const ranked = [...matched].sort((a, b) => (b.volumeUsd24hr ?? 0) - (a.volumeUsd24hr ?? 0)).slice(0, 10);
134
+ return {
135
+ _instructions: 'The address is a token, not a pool. Tell the user which token it is (symbol + name), then render the ' +
136
+ 'matching pools as a numbered list: pair (token0/token1 symbols), fee tier (%), protocol version, ' +
137
+ '24h volume (USD), and the pool address. Ask which pool they want detail on; when they answer, re-call this ' +
138
+ 'tool with that pool address to fetch the detail. Format numbers human-readably. Omit null fields. ' +
139
+ 'Do NOT mention tool/API names.',
140
+ resolvedAs: 'token',
141
+ chain,
142
+ protocolVersion: 'V3',
143
+ token: this.formatToken(token),
144
+ poolCount: ranked.length,
145
+ pools: ranked.map((p) => this.formatPoolCandidate(p)),
146
+ };
147
+ }
148
+ findPoolByAddress(pools, address) {
149
+ const target = address.toLowerCase();
150
+ return pools.find((p) => (p.id ?? '').toLowerCase() === target);
151
+ }
152
+ findTokenByAddress(tokens, address) {
153
+ const target = address.toLowerCase();
154
+ return tokens.find((t) => (t.address ?? '').toLowerCase() === target);
155
+ }
156
+ formatToken(t) {
157
+ return {
158
+ address: t.address,
159
+ symbol: t.symbol,
160
+ name: t.name,
161
+ decimals: t.decimals,
162
+ chainId: t.chainId,
163
+ isSpam: t.isSpam,
164
+ safetyLevel: t.safetyLevel,
165
+ };
166
+ }
167
+ formatPoolCandidate(p) {
168
+ return {
169
+ address: p.id,
170
+ protocolVersion: p.protocolVersion,
171
+ feeTierBps: p.feeTier,
172
+ feeTierPercent: typeof p.feeTier === 'number' ? p.feeTier / 10_000 : undefined,
173
+ volume24hUsd: p.volumeUsd24hr,
174
+ pair: p.token0?.symbol && p.token1?.symbol ? `${p.token0.symbol}/${p.token1.symbol}` : undefined,
175
+ token0: p.token0 ? { symbol: p.token0.symbol, name: p.token0.name, address: p.token0.address } : undefined,
176
+ token1: p.token1 ? { symbol: p.token1.symbol, name: p.token1.name, address: p.token1.address } : undefined,
177
+ };
178
+ }
179
+ formatPoolDetail(p) {
180
+ const tvlUsd = p.totalLiquidity?.value;
181
+ const volume24hUsd = p.volume24h?.value;
182
+ const feeTierBps = p.feeTier;
183
+ const feeTierPercent = typeof feeTierBps === 'number' ? feeTierBps / 10_000 : undefined;
184
+ const fees24hUsd = typeof volume24hUsd === 'number' && typeof feeTierPercent === 'number'
185
+ ? (volume24hUsd * feeTierPercent) / 100
186
+ : undefined;
187
+ const aprPercent = typeof fees24hUsd === 'number' && typeof tvlUsd === 'number' && tvlUsd > 0
188
+ ? (fees24hUsd / tvlUsd) * DAYS_PER_YEAR * 100
189
+ : undefined;
190
+ return {
191
+ // V2/V3 expose `address`; V4 has no address (singleton manager) so we
192
+ // fall back to the 32-byte poolId for identification.
193
+ address: p.address ?? p.poolId,
194
+ protocolVersion: p.protocolVersion,
195
+ poolId: p.poolId,
196
+ tickSpacing: p.tickSpacing,
197
+ isDynamicFee: p.isDynamicFee,
198
+ hookAddress: p.hook?.address,
199
+ feeTierBps,
200
+ feeTierPercent,
201
+ tvlUsd,
202
+ tvlChange24hPercent: p.totalLiquidityPercentChange24h?.value,
203
+ volume24hUsd,
204
+ fees24hUsd,
205
+ aprPercent,
206
+ txCount: p.txCount,
207
+ historicalVolumeWeek: this.formatHistorical(p.historicalVolume),
208
+ token0: p.token0
209
+ ? {
210
+ address: p.token0.address,
211
+ symbol: p.token0.symbol,
212
+ name: p.token0.name,
213
+ decimals: p.token0.decimals,
214
+ priceUsd: p.token0.market?.price?.value ?? p.token0.price?.value,
215
+ reserve: p.token0Supply,
216
+ }
217
+ : undefined,
218
+ token1: p.token1
219
+ ? {
220
+ address: p.token1.address,
221
+ symbol: p.token1.symbol,
222
+ name: p.token1.name,
223
+ decimals: p.token1.decimals,
224
+ priceUsd: p.token1.market?.price?.value ?? p.token1.price?.value,
225
+ reserve: p.token1Supply,
226
+ }
227
+ : undefined,
228
+ };
229
+ }
230
+ formatHistorical(points) {
231
+ if (!points || points.length === 0)
232
+ return undefined;
233
+ return points.map((pt) => ({ timestamp: pt.timestamp, volumeUsd: pt.value }));
234
+ }
235
+ }
236
+ exports.PoolByAddressTool = PoolByAddressTool;
237
+ //# sourceMappingURL=PoolByAddressTool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolByAddressTool.js","sourceRoot":"","sources":["../../../../src/tools/builtin/pool/PoolByAddressTool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ import { BaseTool } from '../../BaseTool';
2
+ import type { ToolParameter, UserContext } from '../../../types';
3
+ import { type UniswapServiceConfig } from '../../../services/UniswapService';
4
+ export type PoolDetailToolConfig = UniswapServiceConfig;
5
+ /**
6
+ * Tool: get-pool-detail
7
+ *
8
+ * Always-search-then-detail flow for a single Uniswap V3 pool:
9
+ * 1) call SearchTokens upstream to enumerate pools matching the user's input,
10
+ * 2) filter the search result by token symbols and (optionally) fee tier,
11
+ * 3) if the filter narrows to exactly one pool, fetch its full detail via
12
+ * the V3Pool GraphQL operation,
13
+ * 4) otherwise return the candidates so the LLM can ask the user to pick one.
14
+ *
15
+ * The LLM never passes pool addresses — every address that reaches the detail
16
+ * call is one we observed upstream this turn, which makes pool-address
17
+ * hallucinations structurally impossible.
18
+ */
19
+ export declare class PoolDetailTool extends BaseTool {
20
+ name: string;
21
+ description: string;
22
+ category: string;
23
+ parameters: ToolParameter[];
24
+ private service;
25
+ constructor(config?: PoolDetailToolConfig);
26
+ protected run(args: Record<string, unknown>, userContext?: UserContext): Promise<{
27
+ error: string;
28
+ _instructions?: undefined;
29
+ pairOrderMatched?: undefined;
30
+ pool?: undefined;
31
+ chain?: undefined;
32
+ reason?: undefined;
33
+ missing?: undefined;
34
+ candidates?: undefined;
35
+ } | {
36
+ _instructions: string;
37
+ pairOrderMatched: string;
38
+ pool: {
39
+ address: string | undefined;
40
+ protocolVersion: import("../../../services/UniswapService").UniswapProtocolVersion | undefined;
41
+ feeTierBps: number | undefined;
42
+ feeTierPercent: number | undefined;
43
+ tvlUsd: number | undefined;
44
+ tvlChange24hPercent: number | undefined;
45
+ volume24hUsd: number | undefined;
46
+ fees24hUsd: number | undefined;
47
+ aprPercent: number | undefined;
48
+ txCount: number | undefined;
49
+ historicalVolumeWeek: {
50
+ timestamp: number | undefined;
51
+ volumeUsd: number | undefined;
52
+ }[] | undefined;
53
+ token0: {
54
+ address: string | undefined;
55
+ symbol: string | undefined;
56
+ name: string | undefined;
57
+ decimals: number | undefined;
58
+ priceUsd: number | undefined;
59
+ reserve: number | undefined;
60
+ isSpam: boolean | undefined;
61
+ safetyLevel: string | undefined;
62
+ } | undefined;
63
+ token1: {
64
+ address: string | undefined;
65
+ symbol: string | undefined;
66
+ name: string | undefined;
67
+ decimals: number | undefined;
68
+ priceUsd: number | undefined;
69
+ reserve: number | undefined;
70
+ isSpam: boolean | undefined;
71
+ safetyLevel: string | undefined;
72
+ } | undefined;
73
+ };
74
+ error?: undefined;
75
+ chain?: undefined;
76
+ reason?: undefined;
77
+ missing?: undefined;
78
+ candidates?: undefined;
79
+ } | {
80
+ _instructions: string;
81
+ chain: string;
82
+ pairOrderMatched: string;
83
+ reason: string;
84
+ missing: string[];
85
+ candidates: {
86
+ address: string | undefined;
87
+ protocolVersion: import("../../../services/UniswapService").UniswapProtocolVersion | undefined;
88
+ feeTierBps: number | undefined;
89
+ feeTierPercent: number | undefined;
90
+ volume24hUsd: number | undefined;
91
+ pair: string | undefined;
92
+ token0: {
93
+ symbol: string | undefined;
94
+ name: string | undefined;
95
+ address: string | undefined;
96
+ } | undefined;
97
+ token1: {
98
+ symbol: string | undefined;
99
+ name: string | undefined;
100
+ address: string | undefined;
101
+ } | undefined;
102
+ }[];
103
+ error?: undefined;
104
+ pool?: undefined;
105
+ }>;
106
+ /**
107
+ * Filter predicate. `mode` controls pair-order matching when both symbols
108
+ * are given:
109
+ * - "ordered" → pool.token0 must match sym0 AND pool.token1 must match sym1
110
+ * - "reversed" → pool.token0 must match sym1 AND pool.token1 must match sym0
111
+ * When sym1 is empty, mode is ignored (single-token contains check).
112
+ */
113
+ private matchesFilter;
114
+ /** Bidirectional substring match — handles "ETH" vs "WETH", "USDC" vs "USDC.e", etc. */
115
+ private symbolIncludes;
116
+ private describeQuery;
117
+ private candidateReason;
118
+ private missingFields;
119
+ /** Sort candidates by 24h volume desc — the most-traded pool surfaces first. */
120
+ private rankCandidates;
121
+ /** Compact view of a search candidate for the LLM to render as a picker. */
122
+ private formatCandidate;
123
+ /** Trim and enrich the GraphQL payload with derived metrics. */
124
+ private formatPool;
125
+ private formatHistorical;
126
+ }
127
+ //# sourceMappingURL=PoolDetailTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolDetailTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/builtin/pool/PoolDetailTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAEL,KAAK,oBAAoB,EAI1B,MAAM,kCAAkC,CAAC;AAE1C,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC;AAKxD;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,IAAI,SAAqB;IACzB,WAAW,SAWsE;IACjF,QAAQ,SAAqB;IAC7B,UAAU,EAAE,aAAa,EAAE,CAkCzB;IAEF,OAAO,CAAC,OAAO,CAAiB;gBAEpB,MAAM,CAAC,EAAE,oBAAoB;cAKzB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,CAAC,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2F5E;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAqBrB,wFAAwF;IACxF,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,aAAa;IAOrB,gFAAgF;IAChF,OAAO,CAAC,cAAc;IAItB,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IAavB,gEAAgE;IAChE,OAAO,CAAC,UAAU;IAqDlB,OAAO,CAAC,gBAAgB;CAIzB"}