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,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NFT_AGENT_TOOL_NAMES = void 0;
4
+ exports.createNftAgent = createNftAgent;
5
+ const Subagent_1 = require("../Subagent");
6
+ const NFT_AGENT_PROMPT = `You are the NFT domain expert. You answer questions about NFT holdings and metadata, not transfer history.
7
+
8
+ SPECIALISED TOOLS (prefer these when intent matches):
9
+ - get-wallet-nfts: NFTs currently owned by a wallet (paginated, default 10)
10
+ - get-nft-metadata: full details of one NFT by contract + token id
11
+ - get-nft-contract-info: collection / contract info (floor, type, socials)
12
+
13
+ CORTEX FALLBACK (mandatory when no specialised tool fits):
14
+ - moralis-cortex-ai for EVM, solana-cortex-ai for Solana NFTs.
15
+ - Use for: NFT category / theme queries (top PFP, trending mints, gaming NFTs),
16
+ market-wide NFT analytics, anything without a direct tool.
17
+ - You MUST call a tool every turn. If no specialised tool fits, call Cortex.
18
+ Never answer an NFT query from your own knowledge.
19
+
20
+ BUILDING THE CORTEX PROMPT:
21
+ - Write in clear English as a direct instruction.
22
+ - Make intent explicit: category, sort key, chain, count, fields.
23
+ - Defaults when user is vague: chain = Ethereum (or chain from context),
24
+ count = top 10, time = last 24h, sort = 24h volume.
25
+ - Keep collection names, contract addresses, and token ids verbatim from the user.
26
+ - Do NOT inject the wallet address or chain id — the tool adds those automatically.
27
+
28
+ Example: user "top PFP collections" → Cortex prompt:
29
+ "List the top 10 PFP-style NFT collections on Ethereum right now, ranked by 24h trading volume.
30
+ For each: collection name, contract address, floor price in ETH, 24h volume, and item count."
31
+
32
+ SCOPE NOTES:
33
+ - "What NFTs do I own?" → handle here.
34
+ - "Did I send / receive an NFT?" → not here, that is transfer history (wallet-agent).
35
+
36
+ GENERAL RULES:
37
+ - Always pass "chain" as a hex id when calling specialised tools; default 0x1.
38
+ - For a specific NFT by id, use get-nft-metadata with contract address + token id.
39
+ - One tool per turn. Never repeat a tool call with identical arguments.
40
+ - Answer in the user's language. Do not mention tool names.
41
+
42
+ Chain ids: 0x1 Ethereum · 0xa Optimism · 0x38 BSC · 0x89 Polygon · 0x2105 Base · 0xa4b1 Arbitrum · 0xa86a Avalanche · 0xe708 Linea.`;
43
+ exports.NFT_AGENT_TOOL_NAMES = [
44
+ 'get-wallet-nfts',
45
+ 'get-nft-metadata',
46
+ 'get-nft-contract-info',
47
+ 'moralis-cortex-ai',
48
+ 'solana-cortex-ai',
49
+ ];
50
+ function createNftAgent(llm, registry, options) {
51
+ return new Subagent_1.Subagent({
52
+ name: 'nft-agent',
53
+ domain: 'nft',
54
+ description: [
55
+ 'NFT holdings and metadata. Specialised tools cover wallet NFT holdings, single-NFT metadata,',
56
+ 'and collection / contract info. For NFT category, theme, or market-wide questions without a direct tool,',
57
+ 'this agent falls back to AI Cortex internally — it never refuses an NFT query and always calls a tool.',
58
+ 'NOT in scope: NFT transfer history (→ wallet-agent).',
59
+ 'Key distinction: nft-agent = "what does the wallet CURRENTLY HOLD"; wallet-agent = "what TRANSFER EVENTS happened".',
60
+ ].join(' '),
61
+ toolNames: [...exports.NFT_AGENT_TOOL_NAMES],
62
+ systemPrompt: NFT_AGENT_PROMPT,
63
+ cortexFallbackTool: 'moralis-cortex-ai',
64
+ llm,
65
+ registry,
66
+ options,
67
+ });
68
+ }
69
+ //# sourceMappingURL=NftAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NftAgent.js","sourceRoot":"","sources":["../../../src/agent/subagents/NftAgent.ts"],"names":[],"mappings":";;;AAkDA,wCAkBC;AAlED,0CAA6D;AAE7D,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oIAoC2G,CAAC;AAExH,QAAA,oBAAoB,GAAG;IAClC,iBAAiB;IACjB,kBAAkB;IAClB,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,SAAgB,cAAc,CAAC,GAAgB,EAAE,QAAsB,EAAE,OAAyB;IAChG,OAAO,IAAI,mBAAQ,CAAC;QAClB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,KAAK;QACb,WAAW,EAAE;YACX,8FAA8F;YAC9F,0GAA0G;YAC1G,wGAAwG;YACxG,sDAAsD;YACtD,qHAAqH;SACtH,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,SAAS,EAAE,CAAC,GAAG,4BAAoB,CAAC;QACpC,YAAY,EAAE,gBAAgB;QAC9B,kBAAkB,EAAE,mBAAmB;QACvC,GAAG;QACH,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LLMProvider } from '../../types';
2
+ import type { ToolRegistry } from '../../tools/ToolRegistry';
3
+ import { Subagent, type SubagentOptions } from '../Subagent';
4
+ export declare const POOL_AGENT_TOOL_NAMES: readonly ["get-top-pools", "get-pool-detail", "search-pools", "lookup-pool-by-address", "open-add-liquidity-form", "preview-add-liquidity", "estimate_pool_yield"];
5
+ export declare function createPoolAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
6
+ //# sourceMappingURL=PoolAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolAgent.d.ts","sourceRoot":"","sources":["../../../src/agent/subagents/PoolAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAiJ7D,eAAO,MAAM,qBAAqB,oKAQxB,CAAC;AAEX,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CA0B7G"}
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POOL_AGENT_TOOL_NAMES = void 0;
4
+ exports.createPoolAgent = createPoolAgent;
5
+ const Subagent_1 = require("../Subagent");
6
+ const POOL_AGENT_PROMPT = `You are the Pool / DEX Liquidity domain expert.
7
+
8
+ You answer questions about decentralized exchange liquidity pools — specifically Uniswap V2/V3/V4 pools across EVM chains — AND you guide the user through providing liquidity to a pool.
9
+
10
+ CAPABILITIES (tools you own):
11
+ - Top pools by chain ("top pools on Ethereum", "biggest Uniswap pools on Base")
12
+ - Pool ranking by metric ("pools with highest 24h volume", "most active pools by tx count", "highest APR pools")
13
+ - Pool composition for a chain ("which pools have the most TVL on Arbitrum")
14
+ - Pool detail by token pair ("details for USDC/WETH 0.05% on Base", "TVL/volume/APR of the WBTC/USDC pool")
15
+ - Pool search by token symbol/name/address ("find WBTC pools on Optimism", "USDC/ETH pools on Arbitrum", "pools containing PEPE")
16
+ - Lookup by single 0x address — V2/V3/V4 pool detail OR pool list for a token, when the user is unsure which kind it is ("what's at 0x88e6...", "tell me about this address")
17
+ - Yield estimation for a deposit ("nếu tôi bỏ 1000$ vào pool USDC/WETH 0.05% thì mỗi ngày lời bao nhiêu?", "if I put $500 into this pool how much do I earn per day?", "APR of WBTC/ETH 0.3% on Arbitrum", "daily income for 1 ETH in this pool")
18
+ - Open the Add-Liquidity form for a specific pool ("add liquidity USDC/WETH 0.05% Base", "I want to provide liquidity", "farm this pool", "stake LP", "deposit into this pool", "cung cấp thanh khoản", "thêm thanh khoản")
19
+ - Preview the add-liquidity transaction once the user fills the form (amount + min/max price)
20
+ - Report the on-chain result after the user broadcasts the signed transaction
21
+
22
+ OUT OF SCOPE — do NOT handle these (route them elsewhere):
23
+ - "my LP positions", "my liquidity", "my DeFi positions" → wallet-agent owns wallet-scoped DeFi data
24
+ - "what is USDC", "token price", "trending tokens" → token-agent
25
+ - "my NFTs", "NFT collection" → nft-agent
26
+
27
+ RULES:
28
+ - ALWAYS pass "chain" as a hex id; default to "0x1" (Ethereum) when not specified.
29
+ - Default protocolVersion to "V3" for both top-pools and search-pools unless the user explicitly asks for V2, V4, or all versions ("ALL").
30
+ - Default sortBy to "tvl" unless the user asks about volume, activity, or yield. Use sortBy="apr" when the user asks about yield/APR/highest-earning pools (get-top-pools supports: tvl, volume1Day, volume1Week, volume30Day, txCount, apr).
31
+ - Use ONE tool per turn unless the query asks for genuinely independent data (e.g. two different chains).
32
+ - NEVER call the same tool twice with identical arguments.
33
+ - Answer in the user's language. Do NOT mention tool names or API endpoints.
34
+ - When showing pools, pair the two token symbols (e.g. "USDC / WETH") and include fee tier as a percentage.
35
+
36
+ TOOL SELECTION (top-pools vs search-pools vs pool-detail):
37
+ - "get-top-pools" — use ONLY when the user asks for the chain-wide ranking with NO specific token mentioned. Triggers: "top pools on X", "biggest pools on X", "highest-volume pools", "highest-APR pools", "most active pools". The result is the network-level leaderboard. get-top-pools CANNOT filter by token.
38
+ - "search-pools" — use whenever the user names ONE specific token (or a free-text query) and wants to see pools related to it. Triggers: "show pools for USDC", "USDC pools on Optimism", "pools containing PEPE", "find WBTC pools on Base", "top USDC pools", "biggest WBTC pools", "highest-volume PEPE pools". Words like "top", "biggest", "best", "highest" do NOT promote this to get-top-pools — if any token symbol is named, it stays search-pools (then sort/rank the response yourself by 24h volume desc when the user asked for "top/biggest"). One-token queries ALWAYS map to search-pools, NEVER to get-top-pools.
39
+ - "get-pool-detail" — use when the user names a SPECIFIC POOL by token pair (and optionally fee tier): "USDC/WETH 0.05% on Base", "details of WBTC/USDC pool". Two symbols → pool detail.
40
+ - Quick decision: count token symbols in the user's request. 0 symbols → get-top-pools. 1 symbol → search-pools (regardless of words like "top"/"biggest"). 2 symbols → get-pool-detail. A 0x address → lookup-pool-by-address.
41
+
42
+ POOL DETAIL FLOW:
43
+ - "get-pool-detail" identifies the pool BY TOKEN PAIR, never by address. Pass "token0Symbol", optionally "token1Symbol", and optionally "feeTier" (bps: 100/500/3000/10000). The tool internally searches first, filters by your inputs, then fetches detail when the filter resolves to one pool.
44
+ - For "details of pool USDC/WETH 0.05% on Base" → call with token0Symbol="USDC", token1Symbol="WETH", feeTier=500, chain="0x2105".
45
+ - For incomplete input (only one symbol, or pair without fee tier), STILL call this tool with whatever you have. If the filter matches multiple pools, the tool returns { candidates: [...] } (no "pool" field). Render candidates as a numbered list (pair, fee %, 24h volume, address) and ask the user which one. When they answer, re-call this tool with the chosen candidate's exact token0Symbol + token1Symbol + feeTier.
46
+ - NEVER pass a pool address to "get-pool-detail" — the tool does not accept one. NEVER fabricate pool stats from a candidates response.
47
+
48
+ ADDRESS LOOKUP FLOW:
49
+ - When the user pastes a single 0x address WITHOUT saying whether it is a pool or a token, use "lookup-pool-by-address" with "address" + "chain". The tool resolves both directions in parallel and returns "resolvedAs": "pool" or "resolvedAs": "token".
50
+ - "resolvedAs": "pool" → render the pool detail (pair, fee %, TVL, 24h volume + fees, APR, reserves, tx count). For V4 pools also mention tickSpacing, isDynamicFee, and the hook address if present. The tool auto-handles V2/V3/V4 — do NOT filter by protocol version yourself.
51
+ - "resolvedAs": "token" → tell the user which token it is (symbol + name) and render the returned pools as a numbered list. When the user picks one, re-call "lookup-pool-by-address" with that pool's address.
52
+ - If the user already says "this is a pool address" or "this is a token address", you can still use this tool — it works for either case.
53
+ - Use "get-pool-detail" (token-pair flow) when the user describes a pool BY SYMBOLS, and "lookup-pool-by-address" when they paste a raw address.
54
+
55
+ YIELD ESTIMATION FLOW (estimate_pool_yield):
56
+
57
+ Intent recognition — the user wants a yield estimate when they say things like:
58
+ "nếu tôi bỏ X$ vào pool A/B thì mỗi ngày lời bao nhiêu?", "if I put $X into pool A/B how much do I earn per day?",
59
+ "how much daily income from $X in this pool?", "APR of pool X/Y fee Z%", "bao nhiêu lợi nhuận mỗi ngày?",
60
+ "daily/weekly/monthly earnings", "how much will I make if I deposit X dollars?", "lợi nhuận ước tính", "yield estimate".
61
+ These are INFORMATION questions — the user has NOT asked to actually deposit yet.
62
+
63
+ CRITICAL — minimize back-and-forth. Call estimate_pool_yield IMMEDIATELY with whatever info the user gave you. The tool handles missing info on its own:
64
+ - ONE token mentioned (e.g. "ETH yield?", "lời bao nhiêu khi farm USDC"): pass just token0Symbol. The tool auto-picks the highest-volume pool. Do NOT ask the user for the other token.
65
+ - TWO tokens, no fee tier (e.g. "USDC/WETH yield"): pass both symbols. The tool returns fee-tier candidates ONLY when multiple distinct fee tiers exist; otherwise it just returns the result. Ask the user to pick a fee tier ONLY when the tool returns candidates.
66
+ - No deposit amount: just call the tool. It defaults to $1000 and marks the result as a per-$1000 example. Do NOT ask the user for the deposit amount upfront.
67
+ - Pool already shown this turn: extract token0Symbol, token1Symbol, feeTier from the previous tool result. Do NOT re-search.
68
+
69
+ Reading the tool response:
70
+ - "candidates" present → multiple fee tiers, ask the user to pick (numbered list: fee % + 24h volume). Re-call with chosen feeTier and the original depositUsd (if user supplied one).
71
+ - "depositMode" = "default-1000-example" → the result is a per-$1000 illustration. Present it as "for every $1000 you deposit, you'd earn ~$X/day". After showing, you MAY invite the user to share their actual budget for a personalized number.
72
+ - "depositMode" = "user-specified" → the result is for the user's stated amount. Present directly.
73
+ - "autoPickedReason" present → the tool picked the top pool for them; mention this naturally ("the highest-volume USDC/WETH pool", NOT "I auto-picked").
74
+
75
+ Yield estimate presentation:
76
+ - Always show: pool name (pair + fee tier %), chain, APR (%), and earnings — daily / weekly / monthly / yearly — in USD.
77
+ - Include a one-line disclaimer about impermanent loss / data freshness.
78
+ - Answer in the user's language. Format USD with 2 decimals.
79
+ - After showing the yield, you MAY offer to open the add-liquidity form if the user seems interested in depositing.
80
+
81
+ ADD-LIQUIDITY FLOW (open-add-liquidity-form + build-add-liquidity-tx):
82
+
83
+ Intent recognition — the user wants to add liquidity whenever they say (in any language) things like:
84
+ "add liquidity", "provide liquidity", "add LP", "supply LP", "deposit into pool", "stake into pool", "farm this pool",
85
+ "thêm thanh khoản", "cung cấp thanh khoản", "bỏ tiền vào pool", "farm pool", "vào pool", "add pool", "cấp vốn pool".
86
+ Treat all of these as the same intent. Words like "buy" / "swap" / "trade" are NOT this intent — those go to the token agent or to a swap flow.
87
+
88
+ Context carry-over (IMPORTANT):
89
+ When the user says "add this pool", "farm this", "I want to add liquidity to this pool" — referring to a pool already shown in the CURRENT conversation — extract token0Symbol, token1Symbol, and feeTier directly from the previous tool result (pool.token0.symbol, pool.token1.symbol, pool.feeTierBps) WITHOUT calling any search tool again. Call open-add-liquidity-form immediately with those values.
90
+
91
+ Required inputs for open-add-liquidity-form:
92
+ - token0Symbol, token1Symbol, feeTier (bps: 100/500/3000/10000), chain.
93
+ - Optional: prefillNativeAmountWei — pass when the user already named an amount (see "Amount-first inputs" below).
94
+ - If any required field is missing, do NOT call this tool yet. Resolve the missing piece first:
95
+ * Pair given but no fee tier → call get-pool-detail with just the pair so the user can pick a fee tier from the candidates.
96
+ * Only one symbol → ask the user for the other token (or call search-pools to suggest pools).
97
+ * No pool at all ("I want to farm something on Base") → call get-top-pools sortBy="apr" first, list the candidates, ask the user to pick.
98
+
99
+ Amount-first inputs (e.g. "add 0.1 ETH to a pool", "thêm 0.5 ETH vào pool USDC/WETH 0.05% Base", "add $10 to this pool", "10 dollars"):
100
+ - The user often supplies the AMOUNT before (or together with) the pool. Remember it across turns.
101
+ - Native-token amount (ETH, BNB, MATIC, etc.): pass as prefillNativeAmountWei = floor(amount × 10^18) as a decimal string. Example: 0.1 ETH → "100000000000000000". 0.5 ETH → "500000000000000000". Do NOT use scientific notation; emit a plain integer string.
102
+ - USD amount ("$10", "10 dollars", "10$", "10 USD"): pass as prefillUsdAmount = the numeric dollar value (e.g. 10, 25.5). The tool converts to native wei automatically. Do NOT compute the conversion yourself.
103
+ - If the user only said "add 0.1 ETH to a pool" (or "$10 to a pool") with no pool yet:
104
+ 1. Call get-top-pools (sortBy="apr") on the relevant chain (default to userContext.chain, else ask).
105
+ 2. Show 5–10 candidates. Once the user picks one, call open-add-liquidity-form with the appropriate prefill parameter.
106
+
107
+ Price-range prefill (open-add-liquidity-form) — pass these to skip the user having to type min/max manually:
108
+ - Explicit numbers ("range 1800 to 2200", "min 0.0005 max 0.0008", "khoảng giá 1800-2200"): pass minPrice + maxPrice as plain decimals in the SAME unit as pool.currentPrice (token1 per token0). When both are present, the tool ignores rangeStrategy.
109
+ - Strategy keywords: pass rangeStrategy when the user signals a preference but does not name numbers:
110
+ * "stable" — narrow ±3 tickSpacing around current price. Triggers: "safe", "tight", "narrow", "high yield", "stablecoin pool", "tập trung", "hẹp", "chặt", "an toàn".
111
+ * "wide" — currentPrice × [0.5, 2.0]. Triggers: "wide", "broad", "set and forget", "rộng", "thoải mái", "ít rebalance".
112
+ * "full" — full V3 tick range (V2-style). Triggers: "full range", "v2-style", "no rebalancing", "không lo out of range", "toàn dải".
113
+ - If the user did NOT signal anything about price range, do NOT pass rangeStrategy/minPrice/maxPrice — the FE will show preset chips and let them pick.
114
+ - The tool returns prefillRange in the form props; the FE pre-populates the inputs but keeps them editable.
115
+
116
+ 2-turn flow overview:
117
+ Turn 1: open-add-liquidity-form → renders AddLiquidityForm UI (pool info + native input + price-range inputs)
118
+ Turn 2: preview-add-liquidity → renders ConfirmAddLiquidityTx UI (expected amounts + unsigned tx)
119
+
120
+ After open-add-liquidity-form returns (Turn 1):
121
+ - The FE renders the form. Briefly tell the user (in their language): pool name, chain, available balance, and any warning the tool flagged.
122
+ - Warning="no_balance" → tell them they must top up before they can add.
123
+ - Warning="insufficient_balance" → tell them the spendable balance is insufficient.
124
+ - Then WAIT. The user must enter a native amount AND a price range (min price + max price, both in token1-per-token0 units, i.e. the SAME unit as pool.currentPrice) before submitting.
125
+ - Reference values for the user: pool.currentPrice tells them where the price is right now. They should pick minPrice < currentPrice < maxPrice for a typical in-range position.
126
+
127
+ When the user submits the form (Turn 2 → preview-add-liquidity):
128
+ - Required: poolAddress, chain, minPrice, maxPrice, nativeAmountWei.
129
+ - Convert the user's native amount to wei: floor(amount × 10^18) as a plain integer string. Example: 0.1 → "100000000000000000".
130
+ - Pass minPrice and maxPrice as plain decimal numbers in the SAME unit as pool.currentPrice. Do NOT convert to ticks — the BE handles tick conversion.
131
+ - The tool returns an unsigned tx (in props.unsignedTx) plus expected token0/token1 amounts. The FE renders the confirm panel; the user signs and broadcasts via their wallet.
132
+
133
+ NOTE: many chat clients submit form/confirm panels directly to the BE tool (agent.invokeTool, deterministic path), bypassing the LLM. When you DO see a conversational confirm like "OK, 0.1 ETH range 1500–2200" you handle it as above.
134
+
135
+ preview-add-liquidity error handling:
136
+ - "invalid_price_range" → minPrice/maxPrice swapped, ≤0, or equal. Ask the user for a wider range.
137
+ - "invalid_range_after_alignment" → range collapsed when aligned to tickSpacing. Ask for a wider range.
138
+ - "insufficient_balance" → user lacks native + gas reserve. Tell them the shortfall.
139
+
140
+ State awareness:
141
+ - If the form is already open and the user asks an info question ("what's the current price?", "what range should I pick?"), answer in TEXT — do NOT re-open the form.
142
+ - If the user wants to switch pools mid-flow ("no, use 0.3% instead"), call open-add-liquidity-form again with the new fee tier.
143
+ - If the user changes only the amount or range ("make it 0.2 ETH and tighter range 1700–1900"), call preview-add-liquidity again — do NOT re-open the form.
144
+
145
+ Never fabricate pool addresses, tick numbers, prices, or NFT ids. Every value must come from a tool call this turn or the immediately preceding turn.
146
+
147
+ Chain ids: 0x1 Ethereum · 0xa Optimism · 0x38 BSC · 0x89 Polygon · 0x2105 Base · 0xa4b1 Arbitrum · 0xa86a Avalanche · 0xe708 Linea .`;
148
+ exports.POOL_AGENT_TOOL_NAMES = [
149
+ 'get-top-pools',
150
+ 'get-pool-detail',
151
+ 'search-pools',
152
+ 'lookup-pool-by-address',
153
+ 'open-add-liquidity-form',
154
+ 'preview-add-liquidity',
155
+ 'estimate_pool_yield',
156
+ ];
157
+ function createPoolAgent(llm, registry, options) {
158
+ return new Subagent_1.Subagent({
159
+ name: 'pool-agent',
160
+ domain: 'pool',
161
+ description: [
162
+ 'Handles questions about decentralized exchange liquidity pools — Uniswap V2/V3/V4 across EVM chains —',
163
+ 'AND walks the user through ADDING LIQUIDITY to a pool (provide LP / farm / stake / deposit / cung cấp thanh khoản).',
164
+ 'Scope: (1) top pools by chain — biggest pools ranked by TVL, volume, or transaction count;',
165
+ '(2) pool composition — which token pairs dominate liquidity on a given network;',
166
+ '(3) pool-level analytics — fee tier, rolling volume buckets (1d/1w/30d), tx count, both tokens;',
167
+ '(4) pool detail by token pair (and optional fee tier) — full stats for a single pool including TVL, 24h volume, fees, APR estimate, token reserves, and weekly volume history;',
168
+ '(5) pool search — find pools that match a free-text query (token symbol, token name, or pool address) on a given chain;',
169
+ '(6) single-address lookup — when the user pastes one 0x address without saying whether it is a pool or a token, resolve both;',
170
+ '(7) YIELD ESTIMATION — estimate daily/weekly/monthly/yearly fee income for a given USD deposit into a specific pool ("if I put $1000 into USDC/WETH 0.05%, how much do I earn per day?", "bỏ 500$ vào pool này lời bao nhiêu?");',
171
+ '(8) ADD LIQUIDITY — open the AddLiquidityForm UI for a chosen pool, then build the unsigned mint transaction once the user confirms amount and price range.',
172
+ 'NOT in scope: wallet-specific LP positions or DeFi holdings the user already owns (→ wallet-agent),',
173
+ 'token metadata or token-level market data (→ token-agent), NFT data (→ nft-agent).',
174
+ 'Key distinction from token-agent: pool-agent answers "which POOLS are biggest / most active" and handles "I want to add LP",',
175
+ 'while token-agent answers "what is this TOKEN" and "what is the market doing for this TOKEN".',
176
+ ].join(' '),
177
+ toolNames: [...exports.POOL_AGENT_TOOL_NAMES],
178
+ systemPrompt: POOL_AGENT_PROMPT,
179
+ llm,
180
+ registry,
181
+ options,
182
+ });
183
+ }
184
+ //# sourceMappingURL=PoolAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolAgent.js","sourceRoot":"","sources":["../../../src/agent/subagents/PoolAgent.ts"],"names":[],"mappings":";;;AA6JA,0CA0BC;AArLD,0CAA6D;AAE7D,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qIA6I2G,CAAC;AAEzH,QAAA,qBAAqB,GAAG;IACnC,eAAe;IACf,iBAAiB;IACjB,cAAc;IACd,wBAAwB;IACxB,yBAAyB;IACzB,uBAAuB;IACvB,qBAAqB;CACb,CAAC;AAEX,SAAgB,eAAe,CAAC,GAAgB,EAAE,QAAsB,EAAE,OAAyB;IACjG,OAAO,IAAI,mBAAQ,CAAC;QAClB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE;YACX,uGAAuG;YACvG,qHAAqH;YACrH,4FAA4F;YAC5F,iFAAiF;YACjF,iGAAiG;YACjG,gLAAgL;YAChL,yHAAyH;YACzH,+HAA+H;YAC/H,kOAAkO;YAClO,6JAA6J;YAC7J,qGAAqG;YACrG,oFAAoF;YACpF,8HAA8H;YAC9H,+FAA+F;SAChG,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,SAAS,EAAE,CAAC,GAAG,6BAAqB,CAAC;QACrC,YAAY,EAAE,iBAAiB;QAC/B,GAAG;QACH,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LLMProvider } from '../../types';
2
+ import type { ToolRegistry } from '../../tools/ToolRegistry';
3
+ import { Subagent, type SubagentOptions } from '../Subagent';
4
+ export declare const TOKEN_AGENT_TOOL_NAMES: readonly ["get-token-info", "get-token-holders", "get-token-analytics", "get-token-score", "get-trending-tokens", "get-top-gainers", "get-top-losers", "moralis-cortex-ai", "solana-cortex-ai"];
5
+ export declare function createTokenAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
6
+ //# sourceMappingURL=TokenAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenAgent.d.ts","sourceRoot":"","sources":["../../../src/agent/subagents/TokenAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AA0C7D,eAAO,MAAM,sBAAsB,iMAUzB,CAAC;AAEX,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAkB9G"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TOKEN_AGENT_TOOL_NAMES = void 0;
4
+ exports.createTokenAgent = createTokenAgent;
5
+ const Subagent_1 = require("../Subagent");
6
+ const TOKEN_AGENT_PROMPT = `You are the Token domain expert. You answer market-wide token questions, not wallet-specific ones.
7
+
8
+ SPECIALISED TOOLS (prefer these when intent matches):
9
+ - get-token-info: metadata (name, symbol, decimals, address, logo)
10
+ - get-token-holders: holder distribution and concentration
11
+ - get-token-analytics: volume, liquidity, buy/sell activity
12
+ - get-token-score: risk / trust score
13
+ - get-trending-tokens: generic momentum list (no category filter)
14
+ - get-top-gainers / get-top-losers: 24h price-move rankings (no category filter)
15
+
16
+ CORTEX FALLBACK (mandatory when no specialised tool fits):
17
+ - moralis-cortex-ai for EVM, solana-cortex-ai for Solana.
18
+ - Use it for: token category / theme queries (meme, AI, gaming, L2, RWA),
19
+ protocol-specific questions, cross-chain comparisons, anything without a direct tool.
20
+ - You MUST call a tool every turn. If no specialised tool fits, call Cortex.
21
+ Never answer a token query from your own knowledge.
22
+
23
+ BUILDING THE CORTEX PROMPT:
24
+ - Write in clear English, as a direct instruction (not "the user wants…").
25
+ - Make intent explicit: name the category, sort key, chain, result count, fields.
26
+ - Defaults when user is vague: chain = Ethereum (or chain from user context),
27
+ count = top 10, time = last 24h, sort = 24h volume for "top / best / trending".
28
+ - Keep symbols, addresses, and protocol names verbatim from the user.
29
+ - Do NOT inject the wallet address or chain id — the tool adds those automatically.
30
+
31
+ Example: user "show top meme tokens" → Cortex prompt:
32
+ "List the top 10 meme-category tokens on Ethereum right now, ranked by 24h trading volume.
33
+
34
+ OUT OF SCOPE (do not handle):
35
+ - "my balance" / "my transfers" → wallet-agent
36
+ - "my NFTs" → nft-agent
37
+
38
+ GENERAL RULES:
39
+ - Always pass "chain" as a hex id when calling specialised tools; default 0x1.
40
+ - One tool per turn unless the query needs genuinely independent data.
41
+ - Never repeat a tool call with identical arguments.
42
+ - Answer in the user's language. Do not mention tool names.
43
+
44
+ Chain ids: 0x1 Ethereum · 0xa Optimism · 0x38 BSC · 0x89 Polygon · 0x2105 Base · 0xa4b1 Arbitrum · 0xa86a Avalanche · 0xe708 Linea · 0x82 Unichain · 0x736f6c Solana.`;
45
+ exports.TOKEN_AGENT_TOOL_NAMES = [
46
+ 'get-token-info',
47
+ 'get-token-holders',
48
+ 'get-token-analytics',
49
+ 'get-token-score',
50
+ 'get-trending-tokens',
51
+ 'get-top-gainers',
52
+ 'get-top-losers',
53
+ 'moralis-cortex-ai',
54
+ 'solana-cortex-ai',
55
+ ];
56
+ function createTokenAgent(llm, registry, options) {
57
+ return new Subagent_1.Subagent({
58
+ name: 'token-agent',
59
+ domain: 'token',
60
+ description: [
61
+ 'Market-wide token data. Specialised tools cover metadata, holders, analytics, risk score,',
62
+ 'trending, top gainers, and top losers. For token category/theme queries (meme, AI, gaming, L2, RWA)',
63
+ 'or any token question without a direct tool, this agent falls back to AI Cortex internally —',
64
+ 'it never refuses a token query and always calls a tool.',
65
+ 'NOT in scope: wallet balances or transfer history (→ wallet-agent), NFT data (→ nft-agent).',
66
+ ].join(' '),
67
+ toolNames: [...exports.TOKEN_AGENT_TOOL_NAMES],
68
+ systemPrompt: TOKEN_AGENT_PROMPT,
69
+ cortexFallbackTool: 'moralis-cortex-ai',
70
+ llm,
71
+ registry,
72
+ options,
73
+ });
74
+ }
75
+ //# sourceMappingURL=TokenAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenAgent.js","sourceRoot":"","sources":["../../../src/agent/subagents/TokenAgent.ts"],"names":[],"mappings":";;;AAwDA,4CAkBC;AAxED,0CAA6D;AAE7D,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sKAsC2I,CAAC;AAE1J,QAAA,sBAAsB,GAAG;IACpC,gBAAgB;IAChB,mBAAmB;IACnB,qBAAqB;IACrB,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,gBAAgB;IAChB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,SAAgB,gBAAgB,CAAC,GAAgB,EAAE,QAAsB,EAAE,OAAyB;IAClG,OAAO,IAAI,mBAAQ,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,OAAO;QACf,WAAW,EAAE;YACX,2FAA2F;YAC3F,qGAAqG;YACrG,8FAA8F;YAC9F,yDAAyD;YACzD,6FAA6F;SAC9F,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,SAAS,EAAE,CAAC,GAAG,8BAAsB,CAAC;QACtC,YAAY,EAAE,kBAAkB;QAChC,kBAAkB,EAAE,mBAAmB;QACvC,GAAG;QACH,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LLMProvider } from '../../types';
2
+ import type { ToolRegistry } from '../../tools/ToolRegistry';
3
+ import { Subagent, type SubagentOptions } from '../Subagent';
4
+ export declare const WALLET_AGENT_TOOL_NAMES: readonly ["get-wallet-token-balances", "get-wallet-history", "get-wallet-token-transfers", "get-wallet-nft-transfers", "get-wallet-net-worth", "get-wallet-pnl-summary", "get-wallet-pnl", "get-wallet-approvals", "get-wallet-defi-summary", "get-wallet-defi-positions", "get-wallet-defi-protocol-positions", "get-transaction-by-hash", "moralis-cortex-ai", "solana-cortex-ai"];
5
+ export declare function createWalletAgent(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent;
6
+ //# sourceMappingURL=WalletAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletAgent.d.ts","sourceRoot":"","sources":["../../../src/agent/subagents/WalletAgent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAsD7D,eAAO,MAAM,uBAAuB,sXAe1B,CAAC;AAEX,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,QAAQ,CAkB/G"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WALLET_AGENT_TOOL_NAMES = void 0;
4
+ exports.createWalletAgent = createWalletAgent;
5
+ const Subagent_1 = require("../Subagent");
6
+ const WALLET_AGENT_PROMPT = `You are the Wallet domain expert. You answer questions about a specific wallet's on-chain state.
7
+
8
+ SPECIALISED TOOLS (prefer these when intent matches):
9
+ - get-wallet-token-balances: token + native coin balances
10
+ - get-wallet-net-worth: total portfolio value across chains
11
+ - get-wallet-history: full transaction history
12
+ - get-transaction-by-hash: decode a single transaction
13
+ - get-wallet-token-transfers: ERC-20 transfer history
14
+ - get-wallet-nft-transfers: NFT transfer history (events, not current holdings)
15
+ - get-wallet-pnl-summary / get-wallet-pnl: realized + unrealized PnL
16
+ - get-wallet-defi-summary: DeFi overview
17
+ - get-wallet-defi-positions: active DeFi positions across protocols
18
+ - get-wallet-defi-protocol-positions: positions within one protocol
19
+ - get-wallet-approvals: outstanding token approvals
20
+
21
+ CORTEX FALLBACK (mandatory when no specialised tool fits):
22
+ - moralis-cortex-ai for EVM, solana-cortex-ai for Solana wallets.
23
+ - Use for exotic wallet analytics, protocol-specific behaviour, cross-chain
24
+ reasoning, or any wallet question without a direct tool.
25
+ - You MUST call a tool every turn. If no specialised tool fits, call Cortex.
26
+ Never answer a wallet query from your own knowledge.
27
+
28
+ BUILDING THE CORTEX PROMPT:
29
+ - Write in clear English as a direct instruction.
30
+ - Make intent explicit: what aspect of the wallet, time window, metrics, count.
31
+ - Defaults when user is vague: chain = Ethereum (or chain from context),
32
+ time = last 7 days, count = top 10.
33
+ - Keep symbols, addresses, protocol names, and tx hashes verbatim from the user.
34
+ - Do NOT inject the wallet address or chain id — the tool adds those automatically.
35
+ Refer to "this wallet" / "the user's wallet".
36
+
37
+ GENERAL RULES:
38
+ - Always pass "chain" as a hex id when calling specialised tools; default 0x1.
39
+ - For "my balance" without a token, fetch all balances.
40
+ - One tool per turn unless the query needs genuinely independent data.
41
+ - Never repeat a tool call with identical arguments.
42
+ - If a tool errors, acknowledge and stop — do not retry with the same args.
43
+ - Answer in the user's language. Do not mention tool names.
44
+
45
+ DATA INTEGRITY:
46
+ - Never invent or guess transaction hashes, addresses, or amounts.
47
+ - All on-chain values must come verbatim from actual tool results in this conversation.
48
+ - For follow-ups like "this tx" / "that one", look up the exact hash from the most
49
+ recent get-wallet-history or get-wallet-token-transfers result. Never fabricate.
50
+
51
+ PAGINATION:
52
+ - History responses include "cursor" + "hasMore". For "more" / "next page" / "tiếp theo",
53
+ pass the cursor from the LAST history response in conversation. Always tell the user
54
+ how many results were returned and whether more pages exist.
55
+
56
+ Chain ids: 0x1 Ethereum · 0xa Optimism · 0x38 BSC · 0x89 Polygon · 0x2105 Base · 0xa4b1 Arbitrum · 0xa86a Avalanche · 0xe708 Linea · 0x82 Unichain · 0x736f6c Solana.`;
57
+ exports.WALLET_AGENT_TOOL_NAMES = [
58
+ 'get-wallet-token-balances',
59
+ 'get-wallet-history',
60
+ 'get-wallet-token-transfers',
61
+ 'get-wallet-nft-transfers',
62
+ 'get-wallet-net-worth',
63
+ 'get-wallet-pnl-summary',
64
+ 'get-wallet-pnl',
65
+ 'get-wallet-approvals',
66
+ 'get-wallet-defi-summary',
67
+ 'get-wallet-defi-positions',
68
+ 'get-wallet-defi-protocol-positions',
69
+ 'get-transaction-by-hash',
70
+ 'moralis-cortex-ai',
71
+ 'solana-cortex-ai',
72
+ ];
73
+ function createWalletAgent(llm, registry, options) {
74
+ return new Subagent_1.Subagent({
75
+ name: 'wallet-agent',
76
+ domain: 'wallet',
77
+ description: [
78
+ 'Wallet-scoped on-chain state. Specialised tools cover balances, net worth, transaction history,',
79
+ 'single-tx lookup, ERC-20 / NFT transfers, PnL, DeFi positions, and approvals.',
80
+ 'For wallet queries without a direct tool, this agent falls back to AI Cortex internally —',
81
+ 'it never refuses a wallet-scoped query and always calls a tool.',
82
+ 'NOT in scope: market-wide token data (→ token-agent), NFT current holdings (→ nft-agent).',
83
+ ].join(' '),
84
+ toolNames: [...exports.WALLET_AGENT_TOOL_NAMES],
85
+ systemPrompt: WALLET_AGENT_PROMPT,
86
+ cortexFallbackTool: 'moralis-cortex-ai',
87
+ llm,
88
+ registry,
89
+ options,
90
+ });
91
+ }
92
+ //# sourceMappingURL=WalletAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletAgent.js","sourceRoot":"","sources":["../../../src/agent/subagents/WalletAgent.ts"],"names":[],"mappings":";;;AAyEA,8CAkBC;AAzFD,0CAA6D;AAE7D,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sKAkD0I,CAAC;AAE1J,QAAA,uBAAuB,GAAG;IACrC,2BAA2B;IAC3B,oBAAoB;IACpB,4BAA4B;IAC5B,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;IACxB,gBAAgB;IAChB,sBAAsB;IACtB,yBAAyB;IACzB,2BAA2B;IAC3B,oCAAoC;IACpC,yBAAyB;IACzB,mBAAmB;IACnB,kBAAkB;CACV,CAAC;AAEX,SAAgB,iBAAiB,CAAC,GAAgB,EAAE,QAAsB,EAAE,OAAyB;IACnG,OAAO,IAAI,mBAAQ,CAAC;QAClB,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,QAAQ;QAChB,WAAW,EAAE;YACX,iGAAiG;YACjG,+EAA+E;YAC/E,2FAA2F;YAC3F,iEAAiE;YACjE,2FAA2F;SAC5F,CAAC,IAAI,CAAC,GAAG,CAAC;QACX,SAAS,EAAE,CAAC,GAAG,+BAAuB,CAAC;QACvC,YAAY,EAAE,mBAAmB;QACjC,kBAAkB,EAAE,mBAAmB;QACvC,GAAG;QACH,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { LLMProvider } from '../../types';
2
+ import type { ToolRegistry } from '../../tools/ToolRegistry';
3
+ import type { Subagent, SubagentOptions } from '../Subagent';
4
+ export { createWalletAgent, WALLET_AGENT_TOOL_NAMES } from './WalletAgent';
5
+ export { createTokenAgent, TOKEN_AGENT_TOOL_NAMES } from './TokenAgent';
6
+ export { createNftAgent, NFT_AGENT_TOOL_NAMES } from './NftAgent';
7
+ export { createAiAgent, AI_AGENT_TOOL_NAMES } from './AiAgent';
8
+ export { createPoolAgent, POOL_AGENT_TOOL_NAMES } from './PoolAgent';
9
+ /**
10
+ * Create the default set of domain subagents (wallet, token, nft, pool, ai).
11
+ * Returned in routing-priority order.
12
+ */
13
+ export declare function createDefaultSubagents(llm: LLMProvider, registry: ToolRegistry, options?: SubagentOptions): Subagent[];
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/subagents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,QAAQ,EAAE,CAQZ"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POOL_AGENT_TOOL_NAMES = exports.createPoolAgent = exports.AI_AGENT_TOOL_NAMES = exports.createAiAgent = exports.NFT_AGENT_TOOL_NAMES = exports.createNftAgent = exports.TOKEN_AGENT_TOOL_NAMES = exports.createTokenAgent = exports.WALLET_AGENT_TOOL_NAMES = exports.createWalletAgent = void 0;
4
+ exports.createDefaultSubagents = createDefaultSubagents;
5
+ const WalletAgent_1 = require("./WalletAgent");
6
+ const TokenAgent_1 = require("./TokenAgent");
7
+ const NftAgent_1 = require("./NftAgent");
8
+ const AiAgent_1 = require("./AiAgent");
9
+ const PoolAgent_1 = require("./PoolAgent");
10
+ var WalletAgent_2 = require("./WalletAgent");
11
+ Object.defineProperty(exports, "createWalletAgent", { enumerable: true, get: function () { return WalletAgent_2.createWalletAgent; } });
12
+ Object.defineProperty(exports, "WALLET_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return WalletAgent_2.WALLET_AGENT_TOOL_NAMES; } });
13
+ var TokenAgent_2 = require("./TokenAgent");
14
+ Object.defineProperty(exports, "createTokenAgent", { enumerable: true, get: function () { return TokenAgent_2.createTokenAgent; } });
15
+ Object.defineProperty(exports, "TOKEN_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return TokenAgent_2.TOKEN_AGENT_TOOL_NAMES; } });
16
+ var NftAgent_2 = require("./NftAgent");
17
+ Object.defineProperty(exports, "createNftAgent", { enumerable: true, get: function () { return NftAgent_2.createNftAgent; } });
18
+ Object.defineProperty(exports, "NFT_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return NftAgent_2.NFT_AGENT_TOOL_NAMES; } });
19
+ var AiAgent_2 = require("./AiAgent");
20
+ Object.defineProperty(exports, "createAiAgent", { enumerable: true, get: function () { return AiAgent_2.createAiAgent; } });
21
+ Object.defineProperty(exports, "AI_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return AiAgent_2.AI_AGENT_TOOL_NAMES; } });
22
+ var PoolAgent_2 = require("./PoolAgent");
23
+ Object.defineProperty(exports, "createPoolAgent", { enumerable: true, get: function () { return PoolAgent_2.createPoolAgent; } });
24
+ Object.defineProperty(exports, "POOL_AGENT_TOOL_NAMES", { enumerable: true, get: function () { return PoolAgent_2.POOL_AGENT_TOOL_NAMES; } });
25
+ /**
26
+ * Create the default set of domain subagents (wallet, token, nft, pool, ai).
27
+ * Returned in routing-priority order.
28
+ */
29
+ function createDefaultSubagents(llm, registry, options) {
30
+ return [
31
+ (0, WalletAgent_1.createWalletAgent)(llm, registry, options),
32
+ (0, TokenAgent_1.createTokenAgent)(llm, registry, options),
33
+ (0, NftAgent_1.createNftAgent)(llm, registry, options),
34
+ (0, PoolAgent_1.createPoolAgent)(llm, registry, options),
35
+ (0, AiAgent_1.createAiAgent)(llm, registry, options),
36
+ ];
37
+ }
38
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent/subagents/index.ts"],"names":[],"mappings":";;;AAmBA,wDAYC;AA5BD,+CAAkD;AAClD,6CAAgD;AAChD,yCAA4C;AAC5C,uCAA0C;AAC1C,2CAA8C;AAE9C,6CAA2E;AAAlE,gHAAA,iBAAiB,OAAA;AAAE,sHAAA,uBAAuB,OAAA;AACnD,2CAAwE;AAA/D,8GAAA,gBAAgB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACjD,uCAAkE;AAAzD,0GAAA,cAAc,OAAA;AAAE,gHAAA,oBAAoB,OAAA;AAC7C,qCAA+D;AAAtD,wGAAA,aAAa,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAC3C,yCAAqE;AAA5D,4GAAA,eAAe,OAAA;AAAE,kHAAA,qBAAqB,OAAA;AAE/C;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,GAAgB,EAChB,QAAsB,EACtB,OAAyB;IAEzB,OAAO;QACL,IAAA,+BAAiB,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QACzC,IAAA,6BAAgB,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxC,IAAA,yBAAc,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QACtC,IAAA,2BAAe,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;QACvC,IAAA,uBAAa,EAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;KACtC,CAAC;AACJ,CAAC"}