@gala-chain/launchpad-mcp-server 5.0.3 → 5.0.4-beta.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 (522) hide show
  1. package/README.md +49 -21
  2. package/dist/ai-docs.json +7357 -0
  3. package/dist/constants/mcpToolNames.d.ts +3 -1
  4. package/dist/constants/mcpToolNames.d.ts.map +1 -1
  5. package/dist/constants/mcpToolNames.js +2 -1
  6. package/dist/constants/mcpToolNames.js.map +1 -1
  7. package/dist/explain-sdk-usage-ai.json +3445 -0
  8. package/dist/generated/version.d.ts +1 -1
  9. package/dist/generated/version.d.ts.map +1 -1
  10. package/dist/generated/version.js +1 -1
  11. package/dist/generated/version.js.map +1 -1
  12. package/dist/prompts/account.d.ts +24 -0
  13. package/dist/prompts/account.d.ts.map +1 -0
  14. package/dist/prompts/account.js +89 -0
  15. package/dist/prompts/account.js.map +1 -0
  16. package/dist/prompts/api-keys.d.ts +36 -0
  17. package/dist/prompts/api-keys.d.ts.map +1 -0
  18. package/dist/prompts/api-keys.js +251 -0
  19. package/dist/prompts/api-keys.js.map +1 -0
  20. package/dist/prompts/auth.d.ts +29 -0
  21. package/dist/prompts/auth.d.ts.map +1 -0
  22. package/dist/prompts/auth.js +127 -0
  23. package/dist/prompts/auth.js.map +1 -0
  24. package/dist/prompts/balances.d.ts.map +1 -1
  25. package/dist/prompts/balances.js +17 -17
  26. package/dist/prompts/balances.js.map +1 -1
  27. package/dist/prompts/bans.d.ts +23 -0
  28. package/dist/prompts/bans.d.ts.map +1 -0
  29. package/dist/prompts/bans.js +82 -0
  30. package/dist/prompts/bans.js.map +1 -0
  31. package/dist/prompts/bridge.d.ts +2 -1
  32. package/dist/prompts/bridge.d.ts.map +1 -1
  33. package/dist/prompts/bridge.js +91 -227
  34. package/dist/prompts/bridge.js.map +1 -1
  35. package/dist/prompts/burns.d.ts +30 -0
  36. package/dist/prompts/burns.d.ts.map +1 -0
  37. package/dist/prompts/burns.js +127 -0
  38. package/dist/prompts/burns.js.map +1 -0
  39. package/dist/prompts/chat-messages.d.ts +21 -0
  40. package/dist/prompts/chat-messages.d.ts.map +1 -0
  41. package/dist/prompts/chat-messages.js +103 -0
  42. package/dist/prompts/chat-messages.js.map +1 -0
  43. package/dist/prompts/chat.d.ts +67 -0
  44. package/dist/prompts/chat.d.ts.map +1 -0
  45. package/dist/prompts/chat.js +355 -0
  46. package/dist/prompts/chat.js.map +1 -0
  47. package/dist/prompts/comments.d.ts +29 -0
  48. package/dist/prompts/comments.d.ts.map +1 -0
  49. package/dist/prompts/comments.js +133 -0
  50. package/dist/prompts/comments.js.map +1 -0
  51. package/dist/prompts/content-flags.d.ts +29 -0
  52. package/dist/prompts/content-flags.d.ts.map +1 -0
  53. package/dist/prompts/content-flags.js +248 -0
  54. package/dist/prompts/content-flags.js.map +1 -0
  55. package/dist/prompts/content-reactions.d.ts +29 -0
  56. package/dist/prompts/content-reactions.d.ts.map +1 -0
  57. package/dist/prompts/content-reactions.js +77 -0
  58. package/dist/prompts/content-reactions.js.map +1 -0
  59. package/dist/prompts/create-token.d.ts.map +1 -1
  60. package/dist/prompts/create-token.js +11 -18
  61. package/dist/prompts/create-token.js.map +1 -1
  62. package/dist/prompts/dex-trading.d.ts.map +1 -1
  63. package/dist/prompts/dex-trading.js +11 -42
  64. package/dist/prompts/dex-trading.js.map +1 -1
  65. package/dist/prompts/discover-tokens.d.ts.map +1 -1
  66. package/dist/prompts/discover-tokens.js +11 -26
  67. package/dist/prompts/discover-tokens.js.map +1 -1
  68. package/dist/prompts/event-subscriptions.d.ts +45 -0
  69. package/dist/prompts/event-subscriptions.d.ts.map +1 -0
  70. package/dist/prompts/event-subscriptions.js +330 -0
  71. package/dist/prompts/event-subscriptions.js.map +1 -0
  72. package/dist/prompts/explore-dex-pools.d.ts +2 -0
  73. package/dist/prompts/explore-dex-pools.d.ts.map +1 -1
  74. package/dist/prompts/explore-dex-pools.js +26 -104
  75. package/dist/prompts/explore-dex-pools.js.map +1 -1
  76. package/dist/prompts/factories/balance-prompt-factory.d.ts +102 -0
  77. package/dist/prompts/factories/balance-prompt-factory.d.ts.map +1 -0
  78. package/dist/prompts/factories/balance-prompt-factory.js +176 -0
  79. package/dist/prompts/factories/balance-prompt-factory.js.map +1 -0
  80. package/dist/prompts/factories/ban-management-factory.d.ts +90 -0
  81. package/dist/prompts/factories/ban-management-factory.d.ts.map +1 -0
  82. package/dist/prompts/factories/ban-management-factory.js +330 -0
  83. package/dist/prompts/factories/ban-management-factory.js.map +1 -0
  84. package/dist/prompts/factories/calculation-prompt-factory.d.ts +119 -0
  85. package/dist/prompts/factories/calculation-prompt-factory.d.ts.map +1 -0
  86. package/dist/prompts/factories/calculation-prompt-factory.js +183 -0
  87. package/dist/prompts/factories/calculation-prompt-factory.js.map +1 -0
  88. package/dist/prompts/factories/discovery-prompt-factory.d.ts +135 -0
  89. package/dist/prompts/factories/discovery-prompt-factory.d.ts.map +1 -0
  90. package/dist/prompts/factories/discovery-prompt-factory.js +240 -0
  91. package/dist/prompts/factories/discovery-prompt-factory.js.map +1 -0
  92. package/dist/prompts/factories/event-subscription-factory.d.ts +177 -0
  93. package/dist/prompts/factories/event-subscription-factory.d.ts.map +1 -0
  94. package/dist/prompts/factories/event-subscription-factory.js +329 -0
  95. package/dist/prompts/factories/event-subscription-factory.js.map +1 -0
  96. package/dist/prompts/factories/filtered-list-prompt-factory.d.ts +95 -0
  97. package/dist/prompts/factories/filtered-list-prompt-factory.d.ts.map +1 -0
  98. package/dist/prompts/factories/filtered-list-prompt-factory.js +147 -0
  99. package/dist/prompts/factories/filtered-list-prompt-factory.js.map +1 -0
  100. package/dist/prompts/factories/index.d.ts +33 -0
  101. package/dist/prompts/factories/index.d.ts.map +1 -0
  102. package/dist/prompts/factories/index.js +91 -0
  103. package/dist/prompts/factories/index.js.map +1 -0
  104. package/dist/prompts/factories/invite-management-factory.d.ts +88 -0
  105. package/dist/prompts/factories/invite-management-factory.d.ts.map +1 -0
  106. package/dist/prompts/factories/invite-management-factory.js +262 -0
  107. package/dist/prompts/factories/invite-management-factory.js.map +1 -0
  108. package/dist/prompts/factories/reaction-prompt-factory.d.ts +81 -0
  109. package/dist/prompts/factories/reaction-prompt-factory.d.ts.map +1 -0
  110. package/dist/prompts/factories/reaction-prompt-factory.js +188 -0
  111. package/dist/prompts/factories/reaction-prompt-factory.js.map +1 -0
  112. package/dist/prompts/factories/simple-operation-factory.d.ts +166 -0
  113. package/dist/prompts/factories/simple-operation-factory.d.ts.map +1 -0
  114. package/dist/prompts/factories/simple-operation-factory.js +218 -0
  115. package/dist/prompts/factories/simple-operation-factory.js.map +1 -0
  116. package/dist/prompts/index.d.ts +31 -6
  117. package/dist/prompts/index.d.ts.map +1 -1
  118. package/dist/prompts/index.js +136 -5
  119. package/dist/prompts/index.js.map +1 -1
  120. package/dist/prompts/locks.d.ts.map +1 -1
  121. package/dist/prompts/locks.js +32 -56
  122. package/dist/prompts/locks.js.map +1 -1
  123. package/dist/prompts/moderators.d.ts +22 -0
  124. package/dist/prompts/moderators.d.ts.map +1 -0
  125. package/dist/prompts/moderators.js +62 -0
  126. package/dist/prompts/moderators.js.map +1 -0
  127. package/dist/prompts/monitoring.d.ts +3 -1
  128. package/dist/prompts/monitoring.d.ts.map +1 -1
  129. package/dist/prompts/monitoring.js +52 -140
  130. package/dist/prompts/monitoring.js.map +1 -1
  131. package/dist/prompts/overseers.d.ts +34 -0
  132. package/dist/prompts/overseers.d.ts.map +1 -0
  133. package/dist/prompts/overseers.js +117 -0
  134. package/dist/prompts/overseers.js.map +1 -0
  135. package/dist/prompts/pools.d.ts +22 -20
  136. package/dist/prompts/pools.d.ts.map +1 -1
  137. package/dist/prompts/pools.js +150 -251
  138. package/dist/prompts/pools.js.map +1 -1
  139. package/dist/prompts/portfolio.d.ts.map +1 -1
  140. package/dist/prompts/portfolio.js +1 -9
  141. package/dist/prompts/portfolio.js.map +1 -1
  142. package/dist/prompts/prompt-factories.d.ts +179 -0
  143. package/dist/prompts/prompt-factories.d.ts.map +1 -0
  144. package/dist/prompts/prompt-factories.js +230 -0
  145. package/dist/prompts/prompt-factories.js.map +1 -0
  146. package/dist/prompts/referrals.d.ts +27 -0
  147. package/dist/prompts/referrals.d.ts.map +1 -0
  148. package/dist/prompts/referrals.js +176 -0
  149. package/dist/prompts/referrals.js.map +1 -0
  150. package/dist/prompts/streaming.d.ts +84 -0
  151. package/dist/prompts/streaming.d.ts.map +1 -0
  152. package/dist/prompts/streaming.js +411 -0
  153. package/dist/prompts/streaming.js.map +1 -0
  154. package/dist/prompts/tier1-bridge-operations.d.ts +30 -0
  155. package/dist/prompts/tier1-bridge-operations.d.ts.map +1 -0
  156. package/dist/prompts/tier1-bridge-operations.js +634 -0
  157. package/dist/prompts/tier1-bridge-operations.js.map +1 -0
  158. package/dist/prompts/tier1-liquidity-management.d.ts +30 -0
  159. package/dist/prompts/tier1-liquidity-management.d.ts.map +1 -0
  160. package/dist/prompts/tier1-liquidity-management.js +560 -0
  161. package/dist/prompts/tier1-liquidity-management.js.map +1 -0
  162. package/dist/prompts/tier1-pool-discovery.d.ts +30 -0
  163. package/dist/prompts/tier1-pool-discovery.d.ts.map +1 -0
  164. package/dist/prompts/tier1-pool-discovery.js +221 -0
  165. package/dist/prompts/tier1-pool-discovery.js.map +1 -0
  166. package/dist/prompts/tier1-price-history.d.ts +30 -0
  167. package/dist/prompts/tier1-price-history.d.ts.map +1 -0
  168. package/dist/prompts/tier1-price-history.js +429 -0
  169. package/dist/prompts/tier1-price-history.js.map +1 -0
  170. package/dist/prompts/tier1-token-analysis.d.ts +30 -0
  171. package/dist/prompts/tier1-token-analysis.d.ts.map +1 -0
  172. package/dist/prompts/tier1-token-analysis.js +376 -0
  173. package/dist/prompts/tier1-token-analysis.js.map +1 -0
  174. package/dist/prompts/tier2-account-setup.d.ts +24 -0
  175. package/dist/prompts/tier2-account-setup.d.ts.map +1 -0
  176. package/dist/prompts/tier2-account-setup.js +206 -0
  177. package/dist/prompts/tier2-account-setup.js.map +1 -0
  178. package/dist/prompts/tier2-advanced-liquidity.d.ts +24 -0
  179. package/dist/prompts/tier2-advanced-liquidity.d.ts.map +1 -0
  180. package/dist/prompts/tier2-advanced-liquidity.js +298 -0
  181. package/dist/prompts/tier2-advanced-liquidity.js.map +1 -0
  182. package/dist/prompts/tier2-asset-management.d.ts +25 -0
  183. package/dist/prompts/tier2-asset-management.d.ts.map +1 -0
  184. package/dist/prompts/tier2-asset-management.js +246 -0
  185. package/dist/prompts/tier2-asset-management.js.map +1 -0
  186. package/dist/prompts/tier2-token-lifecycle.d.ts +25 -0
  187. package/dist/prompts/tier2-token-lifecycle.d.ts.map +1 -0
  188. package/dist/prompts/tier2-token-lifecycle.js +241 -0
  189. package/dist/prompts/tier2-token-lifecycle.js.map +1 -0
  190. package/dist/prompts/tier3-community-engagement.d.ts +26 -0
  191. package/dist/prompts/tier3-community-engagement.d.ts.map +1 -0
  192. package/dist/prompts/tier3-community-engagement.js +610 -0
  193. package/dist/prompts/tier3-community-engagement.js.map +1 -0
  194. package/dist/prompts/tier3-moderation-workflows.d.ts +31 -0
  195. package/dist/prompts/tier3-moderation-workflows.d.ts.map +1 -0
  196. package/dist/prompts/tier3-moderation-workflows.js +511 -0
  197. package/dist/prompts/tier3-moderation-workflows.js.map +1 -0
  198. package/dist/prompts/tier3-streaming-management.d.ts +26 -0
  199. package/dist/prompts/tier3-streaming-management.d.ts.map +1 -0
  200. package/dist/prompts/tier3-streaming-management.js +797 -0
  201. package/dist/prompts/tier3-streaming-management.js.map +1 -0
  202. package/dist/prompts/token-bans.d.ts +27 -0
  203. package/dist/prompts/token-bans.d.ts.map +1 -0
  204. package/dist/prompts/token-bans.js +77 -0
  205. package/dist/prompts/token-bans.js.map +1 -0
  206. package/dist/prompts/trades.d.ts +22 -0
  207. package/dist/prompts/trades.d.ts.map +1 -0
  208. package/dist/prompts/trades.js +107 -0
  209. package/dist/prompts/trades.js.map +1 -0
  210. package/dist/prompts/trading-calculations.d.ts +3 -1
  211. package/dist/prompts/trading-calculations.d.ts.map +1 -1
  212. package/dist/prompts/trading-calculations.js +134 -270
  213. package/dist/prompts/trading-calculations.js.map +1 -1
  214. package/dist/prompts/trading.d.ts +10 -1
  215. package/dist/prompts/trading.d.ts.map +1 -1
  216. package/dist/prompts/trading.js +128 -2
  217. package/dist/prompts/trading.js.map +1 -1
  218. package/dist/prompts/transfers.d.ts +2 -1
  219. package/dist/prompts/transfers.d.ts.map +1 -1
  220. package/dist/prompts/transfers.js +26 -30
  221. package/dist/prompts/transfers.js.map +1 -1
  222. package/dist/prompts/uploads.d.ts +19 -0
  223. package/dist/prompts/uploads.d.ts.map +1 -0
  224. package/dist/prompts/uploads.js +114 -0
  225. package/dist/prompts/uploads.js.map +1 -0
  226. package/dist/prompts/utility-tools.d.ts.map +1 -1
  227. package/dist/prompts/utility-tools.js +27 -18
  228. package/dist/prompts/utility-tools.js.map +1 -1
  229. package/dist/prompts/utils/index.d.ts +21 -0
  230. package/dist/prompts/utils/index.d.ts.map +1 -0
  231. package/dist/prompts/utils/index.js +38 -0
  232. package/dist/prompts/utils/index.js.map +1 -0
  233. package/dist/prompts/utils/pagination-helpers.d.ts +95 -0
  234. package/dist/prompts/utils/pagination-helpers.d.ts.map +1 -0
  235. package/dist/prompts/utils/pagination-helpers.js +121 -0
  236. package/dist/prompts/utils/pagination-helpers.js.map +1 -0
  237. package/dist/prompts/utils/workflowTemplates.d.ts.map +1 -1
  238. package/dist/prompts/utils/workflowTemplates.js +4 -3
  239. package/dist/prompts/utils/workflowTemplates.js.map +1 -1
  240. package/dist/prompts/wallet.d.ts +24 -0
  241. package/dist/prompts/wallet.d.ts.map +1 -0
  242. package/dist/prompts/wallet.js +139 -0
  243. package/dist/prompts/wallet.js.map +1 -0
  244. package/dist/schemas/common-schemas.d.ts +890 -0
  245. package/dist/schemas/common-schemas.d.ts.map +1 -1
  246. package/dist/schemas/common-schemas.js +853 -1
  247. package/dist/schemas/common-schemas.js.map +1 -1
  248. package/dist/server.d.ts +31 -3
  249. package/dist/server.d.ts.map +1 -1
  250. package/dist/server.js +68 -7
  251. package/dist/server.js.map +1 -1
  252. package/dist/tools/api-keys/index.d.ts +41 -0
  253. package/dist/tools/api-keys/index.d.ts.map +1 -0
  254. package/dist/tools/api-keys/index.js +245 -0
  255. package/dist/tools/api-keys/index.js.map +1 -0
  256. package/dist/tools/auth/index.d.ts +19 -0
  257. package/dist/tools/auth/index.d.ts.map +1 -0
  258. package/dist/tools/auth/index.js +138 -0
  259. package/dist/tools/auth/index.js.map +1 -0
  260. package/dist/tools/balance/helpers/format-balance.d.ts +86 -0
  261. package/dist/tools/balance/helpers/format-balance.d.ts.map +1 -0
  262. package/dist/tools/balance/helpers/format-balance.js +87 -0
  263. package/dist/tools/balance/helpers/format-balance.js.map +1 -0
  264. package/dist/tools/balance/index.d.ts +4 -4
  265. package/dist/tools/balance/index.d.ts.map +1 -1
  266. package/dist/tools/balance/index.js +64 -176
  267. package/dist/tools/balance/index.js.map +1 -1
  268. package/dist/tools/ban/index.d.ts +37 -0
  269. package/dist/tools/ban/index.d.ts.map +1 -0
  270. package/dist/tools/ban/index.js +206 -0
  271. package/dist/tools/ban/index.js.map +1 -0
  272. package/dist/tools/bridge/helpers/bridgeable-token-tools.d.ts +87 -0
  273. package/dist/tools/bridge/helpers/bridgeable-token-tools.d.ts.map +1 -0
  274. package/dist/tools/bridge/helpers/bridgeable-token-tools.js +130 -0
  275. package/dist/tools/bridge/helpers/bridgeable-token-tools.js.map +1 -0
  276. package/dist/tools/bridge/helpers/external-chain-balance-tools.d.ts +87 -0
  277. package/dist/tools/bridge/helpers/external-chain-balance-tools.d.ts.map +1 -0
  278. package/dist/tools/bridge/helpers/external-chain-balance-tools.js +167 -0
  279. package/dist/tools/bridge/helpers/external-chain-balance-tools.js.map +1 -0
  280. package/dist/tools/bridge/index.d.ts +3 -7
  281. package/dist/tools/bridge/index.d.ts.map +1 -1
  282. package/dist/tools/bridge/index.js +89 -371
  283. package/dist/tools/bridge/index.js.map +1 -1
  284. package/dist/tools/burns/index.d.ts.map +1 -1
  285. package/dist/tools/burns/index.js +8 -36
  286. package/dist/tools/burns/index.js.map +1 -1
  287. package/dist/tools/chat/getPinnedChatMessage.d.ts +15 -0
  288. package/dist/tools/chat/getPinnedChatMessage.d.ts.map +1 -0
  289. package/dist/tools/chat/getPinnedChatMessage.js +37 -0
  290. package/dist/tools/chat/getPinnedChatMessage.js.map +1 -0
  291. package/dist/tools/chat/index.d.ts +73 -0
  292. package/dist/tools/chat/index.d.ts.map +1 -0
  293. package/dist/tools/chat/index.js +359 -0
  294. package/dist/tools/chat/index.js.map +1 -0
  295. package/dist/tools/chat/pinChatMessage.d.ts +16 -0
  296. package/dist/tools/chat/pinChatMessage.d.ts.map +1 -0
  297. package/dist/tools/chat/pinChatMessage.js +51 -0
  298. package/dist/tools/chat/pinChatMessage.js.map +1 -0
  299. package/dist/tools/chat/unpinChatMessage.d.ts +16 -0
  300. package/dist/tools/chat/unpinChatMessage.d.ts.map +1 -0
  301. package/dist/tools/chat/unpinChatMessage.js +39 -0
  302. package/dist/tools/chat/unpinChatMessage.js.map +1 -0
  303. package/dist/tools/chat-messages/index.d.ts +35 -0
  304. package/dist/tools/chat-messages/index.d.ts.map +1 -0
  305. package/dist/tools/chat-messages/index.js +165 -0
  306. package/dist/tools/chat-messages/index.js.map +1 -0
  307. package/dist/tools/comments/index.d.ts +44 -0
  308. package/dist/tools/comments/index.d.ts.map +1 -0
  309. package/dist/tools/comments/index.js +171 -0
  310. package/dist/tools/comments/index.js.map +1 -0
  311. package/dist/tools/content-flags/index.d.ts +38 -0
  312. package/dist/tools/content-flags/index.d.ts.map +1 -0
  313. package/dist/tools/content-flags/index.js +282 -0
  314. package/dist/tools/content-flags/index.js.map +1 -0
  315. package/dist/tools/content-reactions/index.d.ts +43 -0
  316. package/dist/tools/content-reactions/index.d.ts.map +1 -0
  317. package/dist/tools/content-reactions/index.js +135 -0
  318. package/dist/tools/content-reactions/index.js.map +1 -0
  319. package/dist/tools/creation/index.d.ts.map +1 -1
  320. package/dist/tools/creation/index.js +2 -5
  321. package/dist/tools/creation/index.js.map +1 -1
  322. package/dist/tools/dex/fetchAllDexPools.d.ts.map +1 -1
  323. package/dist/tools/dex/fetchAllDexPools.js +5 -21
  324. package/dist/tools/dex/fetchAllDexPools.js.map +1 -1
  325. package/dist/tools/dex/fetchDexPools.d.ts.map +1 -1
  326. package/dist/tools/dex/fetchDexPools.js +11 -28
  327. package/dist/tools/dex/fetchDexPools.js.map +1 -1
  328. package/dist/tools/dex/helpers.d.ts +479 -0
  329. package/dist/tools/dex/helpers.d.ts.map +1 -0
  330. package/dist/tools/dex/helpers.js +570 -0
  331. package/dist/tools/dex/helpers.js.map +1 -0
  332. package/dist/tools/dex/index.d.ts +50 -11
  333. package/dist/tools/dex/index.d.ts.map +1 -1
  334. package/dist/tools/dex/index.js +124 -486
  335. package/dist/tools/dex/index.js.map +1 -1
  336. package/dist/tools/dex/leaderboard.d.ts.map +1 -1
  337. package/dist/tools/dex/leaderboard.js +5 -70
  338. package/dist/tools/dex/leaderboard.js.map +1 -1
  339. package/dist/tools/dex/liquidity-positions.d.ts.map +1 -1
  340. package/dist/tools/dex/liquidity-positions.js +20 -91
  341. package/dist/tools/dex/liquidity-positions.js.map +1 -1
  342. package/dist/tools/dex/volume.d.ts.map +1 -1
  343. package/dist/tools/dex/volume.js +6 -21
  344. package/dist/tools/dex/volume.js.map +1 -1
  345. package/dist/tools/dex-analytics/index.d.ts +48 -0
  346. package/dist/tools/dex-analytics/index.d.ts.map +1 -0
  347. package/dist/tools/dex-analytics/index.js +111 -0
  348. package/dist/tools/dex-analytics/index.js.map +1 -0
  349. package/dist/tools/dex-liquidity/index.d.ts +22 -0
  350. package/dist/tools/dex-liquidity/index.d.ts.map +1 -0
  351. package/dist/tools/dex-liquidity/index.js +384 -0
  352. package/dist/tools/dex-liquidity/index.js.map +1 -0
  353. package/dist/tools/dex-pools/index.d.ts +60 -0
  354. package/dist/tools/dex-pools/index.d.ts.map +1 -0
  355. package/dist/tools/dex-pools/index.js +231 -0
  356. package/dist/tools/dex-pools/index.js.map +1 -0
  357. package/dist/tools/handler-factories.d.ts +1401 -0
  358. package/dist/tools/handler-factories.d.ts.map +1 -0
  359. package/dist/tools/handler-factories.js +1680 -0
  360. package/dist/tools/handler-factories.js.map +1 -0
  361. package/dist/tools/index.d.ts +1 -11
  362. package/dist/tools/index.d.ts.map +1 -1
  363. package/dist/tools/index.js +171 -27
  364. package/dist/tools/index.js.map +1 -1
  365. package/dist/tools/locks/index.d.ts +2 -0
  366. package/dist/tools/locks/index.d.ts.map +1 -1
  367. package/dist/tools/locks/index.js +9 -86
  368. package/dist/tools/locks/index.js.map +1 -1
  369. package/dist/tools/moderators/index.d.ts +53 -0
  370. package/dist/tools/moderators/index.d.ts.map +1 -0
  371. package/dist/tools/moderators/index.js +258 -0
  372. package/dist/tools/moderators/index.js.map +1 -0
  373. package/dist/tools/overseers/getOverseerUserSummary.d.ts +15 -0
  374. package/dist/tools/overseers/getOverseerUserSummary.d.ts.map +1 -0
  375. package/dist/tools/overseers/getOverseerUserSummary.js +40 -0
  376. package/dist/tools/overseers/getOverseerUserSummary.js.map +1 -0
  377. package/dist/tools/overseers/index.d.ts +58 -0
  378. package/dist/tools/overseers/index.d.ts.map +1 -0
  379. package/dist/tools/overseers/index.js +325 -0
  380. package/dist/tools/overseers/index.js.map +1 -0
  381. package/dist/tools/overseers/listOverseerUsers.d.ts +15 -0
  382. package/dist/tools/overseers/listOverseerUsers.d.ts.map +1 -0
  383. package/dist/tools/overseers/listOverseerUsers.js +76 -0
  384. package/dist/tools/overseers/listOverseerUsers.js.map +1 -0
  385. package/dist/tools/pagination-handler-factory.d.ts +131 -0
  386. package/dist/tools/pagination-handler-factory.d.ts.map +1 -0
  387. package/dist/tools/pagination-handler-factory.js +159 -0
  388. package/dist/tools/pagination-handler-factory.js.map +1 -0
  389. package/dist/tools/pools/checkPoolExists.d.ts +16 -0
  390. package/dist/tools/pools/checkPoolExists.d.ts.map +1 -0
  391. package/dist/tools/pools/checkPoolExists.js +48 -0
  392. package/dist/tools/pools/checkPoolExists.js.map +1 -0
  393. package/dist/tools/pools/fetchAllPools.d.ts.map +1 -1
  394. package/dist/tools/pools/fetchAllPools.js +51 -11
  395. package/dist/tools/pools/fetchAllPools.js.map +1 -1
  396. package/dist/tools/pools/fetchAllPriceHistory.d.ts.map +1 -1
  397. package/dist/tools/pools/fetchAllPriceHistory.js +11 -51
  398. package/dist/tools/pools/fetchAllPriceHistory.js.map +1 -1
  399. package/dist/tools/pools/fetchPoolDetails.d.ts.map +1 -1
  400. package/dist/tools/pools/fetchPoolDetails.js +4 -11
  401. package/dist/tools/pools/fetchPoolDetails.js.map +1 -1
  402. package/dist/tools/pools/fetchPools.d.ts.map +1 -1
  403. package/dist/tools/pools/fetchPools.js +40 -20
  404. package/dist/tools/pools/fetchPools.js.map +1 -1
  405. package/dist/tools/pools/fetchPriceHistory.d.ts.map +1 -1
  406. package/dist/tools/pools/fetchPriceHistory.js +10 -51
  407. package/dist/tools/pools/fetchPriceHistory.js.map +1 -1
  408. package/dist/tools/pools/fetchTokenDetails.d.ts.map +1 -1
  409. package/dist/tools/pools/fetchTokenDetails.js +4 -35
  410. package/dist/tools/pools/fetchTokenDetails.js.map +1 -1
  411. package/dist/tools/pools/index.d.ts +2 -0
  412. package/dist/tools/pools/index.d.ts.map +1 -1
  413. package/dist/tools/pools/index.js +103 -35
  414. package/dist/tools/pools/index.js.map +1 -1
  415. package/dist/tools/pools/onDexPoolCreation.d.ts +1 -2
  416. package/dist/tools/pools/onDexPoolCreation.d.ts.map +1 -1
  417. package/dist/tools/pools/onDexPoolCreation.js +14 -48
  418. package/dist/tools/pools/onDexPoolCreation.js.map +1 -1
  419. package/dist/tools/pools/onLaunchpadTokenCreation.d.ts +1 -2
  420. package/dist/tools/pools/onLaunchpadTokenCreation.d.ts.map +1 -1
  421. package/dist/tools/pools/onLaunchpadTokenCreation.js +9 -42
  422. package/dist/tools/pools/onLaunchpadTokenCreation.js.map +1 -1
  423. package/dist/tools/pools/priceHistoryFactory.d.ts +44 -0
  424. package/dist/tools/pools/priceHistoryFactory.d.ts.map +1 -0
  425. package/dist/tools/pools/priceHistoryFactory.js +154 -0
  426. package/dist/tools/pools/priceHistoryFactory.js.map +1 -0
  427. package/dist/tools/pools/updateTokenSocials.d.ts +16 -0
  428. package/dist/tools/pools/updateTokenSocials.d.ts.map +1 -0
  429. package/dist/tools/pools/updateTokenSocials.js +84 -0
  430. package/dist/tools/pools/updateTokenSocials.js.map +1 -0
  431. package/dist/tools/referrals/index.d.ts +12 -0
  432. package/dist/tools/referrals/index.d.ts.map +1 -0
  433. package/dist/tools/referrals/index.js +110 -0
  434. package/dist/tools/referrals/index.js.map +1 -0
  435. package/dist/tools/streaming/index.d.ts +94 -0
  436. package/dist/tools/streaming/index.d.ts.map +1 -0
  437. package/dist/tools/streaming/index.js +549 -0
  438. package/dist/tools/streaming/index.js.map +1 -0
  439. package/dist/tools/streaming/setNextLiveStreamCountdown.d.ts +16 -0
  440. package/dist/tools/streaming/setNextLiveStreamCountdown.d.ts.map +1 -0
  441. package/dist/tools/streaming/setNextLiveStreamCountdown.js +62 -0
  442. package/dist/tools/streaming/setNextLiveStreamCountdown.js.map +1 -0
  443. package/dist/tools/token-ban/index.d.ts +39 -0
  444. package/dist/tools/token-ban/index.d.ts.map +1 -0
  445. package/dist/tools/token-ban/index.js +177 -0
  446. package/dist/tools/token-ban/index.js.map +1 -0
  447. package/dist/tools/tool-factory.d.ts +84 -0
  448. package/dist/tools/tool-factory.d.ts.map +1 -0
  449. package/dist/tools/tool-factory.js +135 -0
  450. package/dist/tools/tool-factory.js.map +1 -0
  451. package/dist/tools/trades/index.d.ts +20 -0
  452. package/dist/tools/trades/index.d.ts.map +1 -0
  453. package/dist/tools/trades/index.js +113 -0
  454. package/dist/tools/trades/index.js.map +1 -0
  455. package/dist/tools/trading/helpers/arg-extractors.d.ts +128 -0
  456. package/dist/tools/trading/helpers/arg-extractors.d.ts.map +1 -0
  457. package/dist/tools/trading/helpers/arg-extractors.js +215 -0
  458. package/dist/tools/trading/helpers/arg-extractors.js.map +1 -0
  459. package/dist/tools/trading/helpers/index.d.ts +8 -0
  460. package/dist/tools/trading/helpers/index.d.ts.map +1 -0
  461. package/dist/tools/trading/helpers/index.js +24 -0
  462. package/dist/tools/trading/helpers/index.js.map +1 -0
  463. package/dist/tools/trading/helpers/trading-schemas.d.ts +276 -0
  464. package/dist/tools/trading/helpers/trading-schemas.d.ts.map +1 -0
  465. package/dist/tools/trading/helpers/trading-schemas.js +310 -0
  466. package/dist/tools/trading/helpers/trading-schemas.js.map +1 -0
  467. package/dist/tools/trading/index.d.ts +2 -0
  468. package/dist/tools/trading/index.d.ts.map +1 -1
  469. package/dist/tools/trading/index.js +148 -371
  470. package/dist/tools/trading/index.js.map +1 -1
  471. package/dist/tools/transfers/index.d.ts +3 -0
  472. package/dist/tools/transfers/index.d.ts.map +1 -1
  473. package/dist/tools/transfers/index.js +72 -52
  474. package/dist/tools/transfers/index.js.map +1 -1
  475. package/dist/tools/utils/cleanup.d.ts.map +1 -1
  476. package/dist/tools/utils/cleanup.js +2 -9
  477. package/dist/tools/utils/cleanup.js.map +1 -1
  478. package/dist/tools/utils/clearCache.d.ts.map +1 -1
  479. package/dist/tools/utils/clearCache.js +5 -7
  480. package/dist/tools/utils/clearCache.js.map +1 -1
  481. package/dist/tools/utils/explainSdkUsage.d.ts +52 -0
  482. package/dist/tools/utils/explainSdkUsage.d.ts.map +1 -1
  483. package/dist/tools/utils/explainSdkUsage.js +1905 -93
  484. package/dist/tools/utils/explainSdkUsage.js.map +1 -1
  485. package/dist/tools/utils/getEthereumAddressFromPrivateKey.d.ts.map +1 -1
  486. package/dist/tools/utils/getEthereumAddressFromPrivateKey.js +2 -1
  487. package/dist/tools/utils/getEthereumAddressFromPrivateKey.js.map +1 -1
  488. package/dist/tools/utils/index.d.ts +2 -0
  489. package/dist/tools/utils/index.d.ts.map +1 -1
  490. package/dist/tools/utils/index.js +2 -12
  491. package/dist/tools/utils/index.js.map +1 -1
  492. package/dist/tools/wallet/index.d.ts +7 -0
  493. package/dist/tools/wallet/index.d.ts.map +1 -0
  494. package/dist/tools/wallet/index.js +24 -0
  495. package/dist/tools/wallet/index.js.map +1 -0
  496. package/dist/utils/date-converter.d.ts +58 -0
  497. package/dist/utils/date-converter.d.ts.map +1 -0
  498. package/dist/utils/date-converter.js +83 -0
  499. package/dist/utils/date-converter.js.map +1 -0
  500. package/dist/utils/pool-filter-builder.d.ts +78 -0
  501. package/dist/utils/pool-filter-builder.d.ts.map +1 -0
  502. package/dist/utils/pool-filter-builder.js +130 -0
  503. package/dist/utils/pool-filter-builder.js.map +1 -0
  504. package/dist/utils/safe-parsers.d.ts +87 -0
  505. package/dist/utils/safe-parsers.d.ts.map +1 -0
  506. package/dist/utils/safe-parsers.js +134 -0
  507. package/dist/utils/safe-parsers.js.map +1 -0
  508. package/dist/utils/validation.d.ts +5 -5
  509. package/dist/utils/validation.d.ts.map +1 -1
  510. package/dist/utils/validation.js +24 -21
  511. package/dist/utils/validation.js.map +1 -1
  512. package/package.json +23 -15
  513. package/.env.example +0 -21
  514. package/.eslintrc.json +0 -88
  515. package/CHANGELOG.md +0 -2161
  516. package/DOCS_AUDIT_REPORT.md +0 -189
  517. package/DRY_REFACTORING_GUIDE.md +0 -271
  518. package/MCP_COVERAGE_REPORT.md +0 -164
  519. package/MCP_TEST_ANALYSIS.md +0 -317
  520. package/jest.integration.config.js +0 -70
  521. package/scripts/inject-version.ts +0 -31
  522. package/scripts/validate-mcp-test-analysis.ts +0 -250
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/token-ban/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAclD;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,OA+B1B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,OAwB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OA2B/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAoB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,OAoB/B,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,OAAO,EAMlC,CAAC"}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+ /**
3
+ * Token Ban Operations Tools (Overseer Only)
4
+ *
5
+ * MCP tools for platform-wide token ban management.
6
+ * Banned tokens are hidden from all listings and have actions blocked.
7
+ *
8
+ * This is different from user bans (ban/ directory):
9
+ * - Token bans: Platform-wide, affects ALL users viewing/interacting with the token
10
+ * - User bans: Per-token, only affects specific user on specific token
11
+ *
12
+ * All endpoints require either:
13
+ * - Admin API key (server-to-server)
14
+ * - JWT with overseer status (authenticated overseer user)
15
+ *
16
+ * @since 6.x.0
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.tokenBanTools = exports.isTokenBannedTool = exports.getTokenBanTool = exports.listTokenBansTool = exports.unbanTokenTool = exports.banTokenTool = void 0;
20
+ const handler_factories_js_1 = require("../handler-factories.js");
21
+ const common_schemas_js_1 = require("../../schemas/common-schemas.js");
22
+ // =============================================================================
23
+ // Token Ban Management Tools
24
+ // =============================================================================
25
+ /**
26
+ * 1. Ban Token
27
+ */
28
+ exports.banTokenTool = {
29
+ name: 'gala_launchpad_ban_token',
30
+ description: `Ban a token from the platform (overseer only).
31
+
32
+ When a token is banned:
33
+ - Hidden from ALL pool listings (including creator's profile)
34
+ - Comments blocked on banned tokens
35
+ - Live streaming blocked on banned tokens
36
+ - Chat messages blocked on banned tokens
37
+ - Trading NOT blocked (GalaChain handles trading independently)
38
+
39
+ Token bans are permanent until explicitly removed by an overseer.
40
+
41
+ RETURNS: { ban: { id, tokenName, reason, bannedBy, createdAt, updatedAt }, tokenName }
42
+
43
+ Authentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status`,
44
+ inputSchema: {
45
+ type: 'object',
46
+ properties: {
47
+ tokenName: common_schemas_js_1.TOKEN_NAME_SCHEMA,
48
+ reason: {
49
+ ...common_schemas_js_1.BAN_REASON_SCHEMA,
50
+ description: 'Ban reason (optional, max 500 characters). E.g., "Fraudulent project", "Scam token", etc.',
51
+ },
52
+ },
53
+ required: ['tokenName'],
54
+ },
55
+ handler: (0, handler_factories_js_1.createSimpleHandler)('banToken', (args) => ({
56
+ tokenName: args.tokenName,
57
+ reason: args.reason,
58
+ })),
59
+ };
60
+ /**
61
+ * 2. Unban Token
62
+ */
63
+ exports.unbanTokenTool = {
64
+ name: 'gala_launchpad_unban_token',
65
+ description: `Remove a ban from a token (overseer only).
66
+
67
+ When a token is unbanned:
68
+ - Restored to all pool listings
69
+ - Visible on creator's profile again
70
+ - Comments re-enabled
71
+ - Live streaming re-enabled
72
+ - Chat re-enabled
73
+
74
+ RETURNS: { removed: true, tokenName }
75
+
76
+ Authentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status`,
77
+ inputSchema: {
78
+ type: 'object',
79
+ properties: {
80
+ tokenName: common_schemas_js_1.TOKEN_NAME_SCHEMA,
81
+ },
82
+ required: ['tokenName'],
83
+ },
84
+ handler: (0, handler_factories_js_1.createSimpleHandler)('unbanToken', (args) => ({
85
+ tokenName: args.tokenName,
86
+ })),
87
+ };
88
+ /**
89
+ * 3. List Token Bans
90
+ */
91
+ exports.listTokenBansTool = {
92
+ name: 'gala_launchpad_list_token_bans',
93
+ description: `List all banned tokens (overseer only).
94
+
95
+ Returns a paginated list of all banned tokens with their ban details.
96
+ Supports searching by token name (partial match).
97
+
98
+ RETURNS: { items: [{ id, tokenName, reason, bannedBy, createdAt, updatedAt }...], meta: { total, page, limit, totalPages } }
99
+
100
+ Authentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status`,
101
+ inputSchema: {
102
+ type: 'object',
103
+ properties: {
104
+ page: common_schemas_js_1.PAGE_SCHEMA,
105
+ limit: (0, common_schemas_js_1.createLimitSchema)('pool', 20),
106
+ search: {
107
+ ...common_schemas_js_1.SEARCH_SCHEMA,
108
+ description: 'Search by token name (partial match, case-insensitive)',
109
+ },
110
+ },
111
+ required: [],
112
+ },
113
+ handler: (0, handler_factories_js_1.createSimpleHandler)('listTokenBans', (args) => ({
114
+ page: args.page,
115
+ limit: args.limit,
116
+ search: args.search,
117
+ })),
118
+ };
119
+ /**
120
+ * 4. Get Token Ban
121
+ */
122
+ exports.getTokenBanTool = {
123
+ name: 'gala_launchpad_get_token_ban',
124
+ description: `Get ban details for a specific token (overseer only).
125
+
126
+ Returns whether the token is banned and ban details if applicable.
127
+ Use this for detailed ban information including reason and who banned it.
128
+
129
+ RETURNS: { banned: boolean, ban?: { id, tokenName, reason, bannedBy, createdAt, updatedAt }, tokenName }
130
+
131
+ Authentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status`,
132
+ inputSchema: {
133
+ type: 'object',
134
+ properties: {
135
+ tokenName: common_schemas_js_1.TOKEN_NAME_SCHEMA,
136
+ },
137
+ required: ['tokenName'],
138
+ },
139
+ handler: (0, handler_factories_js_1.createSimpleHandler)('getTokenBan', (args) => ({
140
+ tokenName: args.tokenName,
141
+ })),
142
+ };
143
+ /**
144
+ * 5. Is Token Banned
145
+ */
146
+ exports.isTokenBannedTool = {
147
+ name: 'gala_launchpad_is_token_banned',
148
+ description: `Check if a token is banned (overseer only).
149
+
150
+ Convenience alias for getTokenBan - provided for semantic clarity.
151
+ Use when you just need to check if a token is banned.
152
+
153
+ RETURNS: { banned: boolean, ban?: { id, tokenName, reason, bannedBy, createdAt, updatedAt }, tokenName }
154
+
155
+ Authentication: Requires streamAdminApiKey (admin) OR JWT auth with overseer status`,
156
+ inputSchema: {
157
+ type: 'object',
158
+ properties: {
159
+ tokenName: common_schemas_js_1.TOKEN_NAME_SCHEMA,
160
+ },
161
+ required: ['tokenName'],
162
+ },
163
+ handler: (0, handler_factories_js_1.createSimpleHandler)('isTokenBanned', (args) => ({
164
+ tokenName: args.tokenName,
165
+ })),
166
+ };
167
+ // =============================================================================
168
+ // Export All Tools
169
+ // =============================================================================
170
+ exports.tokenBanTools = [
171
+ exports.banTokenTool,
172
+ exports.unbanTokenTool,
173
+ exports.listTokenBansTool,
174
+ exports.getTokenBanTool,
175
+ exports.isTokenBannedTool,
176
+ ];
177
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/token-ban/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAGH,kEAA8D;AAC9D,uEAMyC;AAEzC,gFAAgF;AAChF,6BAA6B;AAC7B,gFAAgF;AAEhF;;GAEG;AACU,QAAA,YAAY,GAAY;IACnC,IAAI,EAAE,0BAA0B;IAChC,WAAW,EAAE;;;;;;;;;;;;;oFAaqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qCAAiB;YAC5B,MAAM,EAAE;gBACN,GAAG,qCAAiB;gBACpB,WAAW,EAAE,2FAA2F;aACzG;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClD,SAAS,EAAE,IAAI,CAAC,SAAmB;QACnC,MAAM,EAAE,IAAI,CAAC,MAA4B;KAC1C,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,cAAc,GAAY;IACrC,IAAI,EAAE,4BAA4B;IAClC,WAAW,EAAE;;;;;;;;;;;oFAWqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qCAAiB;SAC7B;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpD,SAAS,EAAE,IAAI,CAAC,SAAmB;KACpC,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAY;IACxC,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE;;;;;;;oFAOqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE,+BAAW;YACjB,KAAK,EAAE,IAAA,qCAAiB,EAAC,MAAM,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE;gBACN,GAAG,iCAAa;gBAChB,WAAW,EAAE,wDAAwD;aACtE;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI,EAAE,IAAI,CAAC,IAA0B;QACrC,KAAK,EAAE,IAAI,CAAC,KAA2B;QACvC,MAAM,EAAE,IAAI,CAAC,MAA4B;KAC1C,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,eAAe,GAAY;IACtC,IAAI,EAAE,8BAA8B;IACpC,WAAW,EAAE;;;;;;;oFAOqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qCAAiB;SAC7B;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrD,SAAS,EAAE,IAAI,CAAC,SAAmB;KACpC,CAAC,CAAC;CACJ,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAY;IACxC,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE;;;;;;;oFAOqE;IAClF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE,qCAAiB;SAC7B;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvD,SAAS,EAAE,IAAI,CAAC,SAAmB;KACpC,CAAC,CAAC;CACJ,CAAC;AAEF,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEnE,QAAA,aAAa,GAAc;IACtC,oBAAY;IACZ,sBAAc;IACd,yBAAiB;IACjB,uBAAe;IACf,yBAAiB;CAClB,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Tool Factory Utilities for Event Watchers
3
+ *
4
+ * Provides reusable factory functions for creating MCP event watcher tools.
5
+ * Reduces boilerplate and ensures consistent polling and timeout behavior.
6
+ *
7
+ * @example
8
+ * // Create a DEX pool watcher
9
+ * const tool = createEventWatcherTool({
10
+ * name: 'gala_launchpad_on_dex_pool_creation',
11
+ * description: 'Watch for new DEX pool creation events',
12
+ * sdkMethodName: 'onDexPoolCreation',
13
+ * resultKey: 'poolsDetected',
14
+ * filterSchema: {
15
+ * minTVL: { type: 'number', description: 'Minimum TVL filter' },
16
+ * tokens: { type: 'array', items: { type: 'string' } }
17
+ * }
18
+ * });
19
+ */
20
+ import type { MCPTool } from '../types/mcp.js';
21
+ /**
22
+ * Configuration for event watcher tool factory
23
+ */
24
+ export interface EventWatcherToolConfig {
25
+ /** Name of the MCP tool */
26
+ name: string;
27
+ /** Description of the MCP tool */
28
+ description: string;
29
+ /** Name of the SDK method to call (must accept callback and options) */
30
+ sdkMethodName: string;
31
+ /** Key in the response object for event count (e.g., 'poolsDetected', 'tokensDetected') */
32
+ resultKey: string;
33
+ /** Optional JSON schema for filter properties */
34
+ filterSchema?: Record<string, unknown>;
35
+ }
36
+ /**
37
+ * Creates an event watcher MCP tool with polling and timeout support.
38
+ *
39
+ * Handles the common pattern of:
40
+ * 1. Calling an SDK event subscription method with filters
41
+ * 2. Collecting events in an array during the poll period
42
+ * 3. Unsubscribing after a configured duration
43
+ * 4. Returning results with event count and collected events
44
+ *
45
+ * @param config - Configuration for the event watcher tool
46
+ * @returns MCPTool ready to be registered with the MCP server
47
+ *
48
+ * @example
49
+ * // Create a DEX pool watcher
50
+ * const tool = createEventWatcherTool({
51
+ * name: 'gala_launchpad_on_dex_pool_creation',
52
+ * description: 'Watch for new DEX pool creation events in real-time',
53
+ * sdkMethodName: 'onDexPoolCreation',
54
+ * resultKey: 'poolsDetected',
55
+ * filterSchema: {
56
+ * minTVL: {
57
+ * type: 'number',
58
+ * description: 'Only notify about pools with TVL >= minTVL (optional)',
59
+ * },
60
+ * tokens: {
61
+ * type: 'array',
62
+ * items: { type: 'string' },
63
+ * description: 'Only notify about pools containing these token symbols (optional)',
64
+ * }
65
+ * }
66
+ * });
67
+ *
68
+ * @example
69
+ * // Create a launchpad token watcher
70
+ * const tool = createEventWatcherTool({
71
+ * name: 'gala_launchpad_on_launchpad_token_creation',
72
+ * description: 'Watch for new launchpad token creation events in real-time',
73
+ * sdkMethodName: 'onLaunchpadTokenCreation',
74
+ * resultKey: 'tokensDetected',
75
+ * filterSchema: {
76
+ * creatorAddress: {
77
+ * type: 'string',
78
+ * description: 'Only notify about tokens created by this address (optional)',
79
+ * }
80
+ * }
81
+ * });
82
+ */
83
+ export declare function createEventWatcherTool(config: EventWatcherToolConfig): MCPTool;
84
+ //# sourceMappingURL=tool-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.d.ts","sourceRoot":"","sources":["../../src/tools/tool-factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAK/C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,wEAAwE;IACxE,aAAa,EAAE,MAAM,CAAC;IAEtB,2FAA2F;IAC3F,SAAS,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAiF9E"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * Tool Factory Utilities for Event Watchers
4
+ *
5
+ * Provides reusable factory functions for creating MCP event watcher tools.
6
+ * Reduces boilerplate and ensures consistent polling and timeout behavior.
7
+ *
8
+ * @example
9
+ * // Create a DEX pool watcher
10
+ * const tool = createEventWatcherTool({
11
+ * name: 'gala_launchpad_on_dex_pool_creation',
12
+ * description: 'Watch for new DEX pool creation events',
13
+ * sdkMethodName: 'onDexPoolCreation',
14
+ * resultKey: 'poolsDetected',
15
+ * filterSchema: {
16
+ * minTVL: { type: 'number', description: 'Minimum TVL filter' },
17
+ * tokens: { type: 'array', items: { type: 'string' } }
18
+ * }
19
+ * });
20
+ */
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.createEventWatcherTool = createEventWatcherTool;
23
+ const response_formatter_js_1 = require("../utils/response-formatter.js");
24
+ const error_handler_js_1 = require("../utils/error-handler.js");
25
+ /**
26
+ * Creates an event watcher MCP tool with polling and timeout support.
27
+ *
28
+ * Handles the common pattern of:
29
+ * 1. Calling an SDK event subscription method with filters
30
+ * 2. Collecting events in an array during the poll period
31
+ * 3. Unsubscribing after a configured duration
32
+ * 4. Returning results with event count and collected events
33
+ *
34
+ * @param config - Configuration for the event watcher tool
35
+ * @returns MCPTool ready to be registered with the MCP server
36
+ *
37
+ * @example
38
+ * // Create a DEX pool watcher
39
+ * const tool = createEventWatcherTool({
40
+ * name: 'gala_launchpad_on_dex_pool_creation',
41
+ * description: 'Watch for new DEX pool creation events in real-time',
42
+ * sdkMethodName: 'onDexPoolCreation',
43
+ * resultKey: 'poolsDetected',
44
+ * filterSchema: {
45
+ * minTVL: {
46
+ * type: 'number',
47
+ * description: 'Only notify about pools with TVL >= minTVL (optional)',
48
+ * },
49
+ * tokens: {
50
+ * type: 'array',
51
+ * items: { type: 'string' },
52
+ * description: 'Only notify about pools containing these token symbols (optional)',
53
+ * }
54
+ * }
55
+ * });
56
+ *
57
+ * @example
58
+ * // Create a launchpad token watcher
59
+ * const tool = createEventWatcherTool({
60
+ * name: 'gala_launchpad_on_launchpad_token_creation',
61
+ * description: 'Watch for new launchpad token creation events in real-time',
62
+ * sdkMethodName: 'onLaunchpadTokenCreation',
63
+ * resultKey: 'tokensDetected',
64
+ * filterSchema: {
65
+ * creatorAddress: {
66
+ * type: 'string',
67
+ * description: 'Only notify about tokens created by this address (optional)',
68
+ * }
69
+ * }
70
+ * });
71
+ */
72
+ function createEventWatcherTool(config) {
73
+ const { name, description, sdkMethodName, resultKey, filterSchema = {} } = config;
74
+ // Build input schema with standard polling/duration fields
75
+ const inputSchema = {
76
+ type: 'object',
77
+ properties: {
78
+ ...filterSchema,
79
+ intervalMs: {
80
+ type: 'number',
81
+ description: 'Poll interval in milliseconds (default: 30000 / 30 seconds)',
82
+ },
83
+ durationSeconds: {
84
+ type: 'number',
85
+ description: 'How long to watch for new events in seconds (default: 60)',
86
+ },
87
+ },
88
+ };
89
+ const handler = (0, error_handler_js_1.withErrorHandling)(async (sdk, args) => {
90
+ const durationSeconds = args.durationSeconds ?? 60;
91
+ const durationMs = durationSeconds * 1000;
92
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Event types are internal SDK types
93
+ const events = [];
94
+ return new Promise((resolve) => {
95
+ // Get the SDK method dynamically
96
+ const sdkMethod = sdk[sdkMethodName];
97
+ if (!sdkMethod || typeof sdkMethod !== 'function') {
98
+ throw new Error(`SDK method "${sdkMethodName}" not found`);
99
+ }
100
+ // Build filter options by extracting only the filter-related args
101
+ // Exclude intervalMs and durationSeconds as those are handled by the factory
102
+ const filterOptions = {};
103
+ const filterKeys = Object.keys(filterSchema);
104
+ for (const key of filterKeys) {
105
+ if (key in args) {
106
+ filterOptions[key] = args[key];
107
+ }
108
+ }
109
+ // Add intervalMs if provided
110
+ if ('intervalMs' in args && args.intervalMs !== undefined) {
111
+ filterOptions.intervalMs = args.intervalMs;
112
+ }
113
+ // Subscribe to events
114
+ const unsubscribe = sdkMethod.call(sdk, (event) => {
115
+ events.push(event);
116
+ }, filterOptions);
117
+ // Stop watching after duration
118
+ setTimeout(() => {
119
+ unsubscribe();
120
+ resolve((0, response_formatter_js_1.formatSuccess)({
121
+ [resultKey]: events.length,
122
+ durationSeconds,
123
+ events,
124
+ }));
125
+ }, durationMs);
126
+ });
127
+ });
128
+ return {
129
+ name,
130
+ description,
131
+ inputSchema,
132
+ handler,
133
+ };
134
+ }
135
+ //# sourceMappingURL=tool-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-factory.js","sourceRoot":"","sources":["../../src/tools/tool-factory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;AA0EH,wDAiFC;AAvJD,0EAA+D;AAC/D,gEAA8D;AAsB9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,SAAgB,sBAAsB,CAAC,MAA8B;IACnE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC;IAElF,2DAA2D;IAC3D,MAAM,WAAW,GAAG;QAClB,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,GAAG,YAAY;YACf,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6DAA6D;aAC3E;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2DAA2D;aACzE;SACF;KACF,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,oCAAiB,EAAC,KAAK,EAAE,GAAiB,EAAE,IAA6B,EAAE,EAAE;QAC3F,MAAM,eAAe,GAAI,IAAI,CAAC,eAAsC,IAAI,EAAE,CAAC;QAC3E,MAAM,UAAU,GAAG,eAAe,GAAG,IAAI,CAAC;QAE1C,oGAAoG;QACpG,MAAM,MAAM,GAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,iCAAiC;YACjC,MAAM,SAAS,GACb,GACD,CAAC,aAAa,CAAC,CAAC;YAEjB,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;gBAClD,MAAM,IAAI,KAAK,CAAC,eAAe,aAAa,aAAa,CAAC,CAAC;YAC7D,CAAC;YAED,kEAAkE;YAClE,6EAA6E;YAC7E,MAAM,aAAa,GAA4B,EAAE,CAAC;YAClD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE7C,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBAChB,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,6BAA6B;YAC7B,IAAI,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC1D,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YAC7C,CAAC;YAED,sBAAsB;YACtB,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAChC,GAAG,EACH,CAAC,KAAc,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC,EACD,aAAa,CACA,CAAC;YAEhB,+BAA+B;YAC/B,UAAU,CAAC,GAAG,EAAE;gBACd,WAAW,EAAE,CAAC;gBACd,OAAO,CACL,IAAA,qCAAa,EAAC;oBACZ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM;oBAC1B,eAAe;oBACf,MAAM;iBACP,CAAC,CACH,CAAC;YACJ,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,IAAI;QACJ,WAAW;QACX,WAAW;QACX,OAAO;KACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Trades Query Tools
3
+ *
4
+ * MCP tools for querying trade history with tokenName/userAddress filters.
5
+ *
6
+ * @since 6.2.0
7
+ */
8
+ import type { MCPTool } from '../../types/mcp.js';
9
+ /**
10
+ * Get Trades
11
+ *
12
+ * Query trades with flexible filtering by tokenName and/or userAddress.
13
+ * At least one filter must be provided.
14
+ */
15
+ export declare const getTradesTool: MCPTool;
16
+ /**
17
+ * All trades tools (1 total)
18
+ */
19
+ export declare const tradesTools: MCPTool[];
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trades/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AA8BlD;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,OAmF3B,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,OAAO,EAEhC,CAAC"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ /**
3
+ * Trades Query Tools
4
+ *
5
+ * MCP tools for querying trade history with tokenName/userAddress filters.
6
+ *
7
+ * @since 6.2.0
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.tradesTools = exports.getTradesTool = void 0;
11
+ const common_schemas_js_1 = require("../../schemas/common-schemas.js");
12
+ const handler_factories_js_1 = require("../handler-factories.js");
13
+ // =============================================================================
14
+ // Trades Tools
15
+ // =============================================================================
16
+ /**
17
+ * Get Trades
18
+ *
19
+ * Query trades with flexible filtering by tokenName and/or userAddress.
20
+ * At least one filter must be provided.
21
+ */
22
+ exports.getTradesTool = {
23
+ name: 'gala_launchpad_get_trades',
24
+ description: `Query trades with flexible filtering options.
25
+
26
+ Returns paginated list of trades with metadata.
27
+ At least one of tokenName or userAddress is required.
28
+
29
+ Filters:
30
+ - tokenName: Filter by token name (e.g., 'anime')
31
+ - userAddress: Filter by user wallet address
32
+ - txnType: Filter by trade direction ('BUY' or 'SELL')
33
+ - startDate/endDate: Filter by date range (ISO 8601)
34
+ - minAmount/maxAmount: Filter by trade amount range
35
+
36
+ RETURNS: { trades: [{ txnId, txnType, inputAmount, outputAmount, userAddress, tokenName, tokenImage, createdAt }], meta: { totalItems, currentPage, pageSize, totalPages } }
37
+
38
+ Examples:
39
+ - Get all trades for a token: { tokenName: 'anime' }
40
+ - Get all trades by a user: { userAddress: 'eth|123...' }
41
+ - Get only buy trades: { tokenName: 'anime', txnType: 'BUY' }
42
+ - Get trades in date range: { tokenName: 'anime', startDate: '2024-01-01', endDate: '2024-12-31' }
43
+ - Get large trades: { tokenName: 'anime', minAmount: 1000 }
44
+
45
+ Public endpoint - no authentication required.`,
46
+ inputSchema: {
47
+ type: 'object',
48
+ properties: {
49
+ tokenName: {
50
+ ...common_schemas_js_1.TOKEN_NAME_SCHEMA,
51
+ description: 'Token name to filter by (optional if userAddress provided)',
52
+ },
53
+ userAddress: {
54
+ ...common_schemas_js_1.ADDRESS_SCHEMA,
55
+ description: 'User address to filter by (optional if tokenName provided)',
56
+ },
57
+ page: common_schemas_js_1.PAGE_SCHEMA,
58
+ limit: (0, common_schemas_js_1.createLimitSchema)('trade', 20),
59
+ txnType: {
60
+ type: 'string',
61
+ enum: ['BUY', 'SELL'],
62
+ description: 'Filter by trade direction (BUY or SELL)',
63
+ },
64
+ startDate: {
65
+ ...common_schemas_js_1.DATE_TIME_SCHEMA,
66
+ description: 'Filter by date range start (ISO 8601 format, e.g., "2024-01-01")',
67
+ },
68
+ endDate: {
69
+ ...common_schemas_js_1.DATE_TIME_SCHEMA,
70
+ description: 'Filter by date range end (ISO 8601 format, e.g., "2024-12-31")',
71
+ },
72
+ minAmount: {
73
+ type: 'number',
74
+ minimum: 0,
75
+ description: 'Filter by minimum trade amount',
76
+ },
77
+ maxAmount: {
78
+ type: 'number',
79
+ minimum: 0,
80
+ description: 'Filter by maximum trade amount',
81
+ },
82
+ },
83
+ required: [],
84
+ },
85
+ handler: (0, handler_factories_js_1.createSimpleHandler)('getTrades', (args) => {
86
+ const typedArgs = args;
87
+ // Validate that at least one filter is provided
88
+ if (!typedArgs.tokenName && !typedArgs.userAddress) {
89
+ throw new Error('At least one of tokenName or userAddress is required');
90
+ }
91
+ return {
92
+ tokenName: typedArgs.tokenName,
93
+ userAddress: typedArgs.userAddress,
94
+ page: typedArgs.page,
95
+ limit: typedArgs.limit,
96
+ txnType: typedArgs.txnType,
97
+ startDate: typedArgs.startDate,
98
+ endDate: typedArgs.endDate,
99
+ minAmount: typedArgs.minAmount,
100
+ maxAmount: typedArgs.maxAmount,
101
+ };
102
+ }),
103
+ };
104
+ // =============================================================================
105
+ // Export
106
+ // =============================================================================
107
+ /**
108
+ * All trades tools (1 total)
109
+ */
110
+ exports.tradesTools = [
111
+ exports.getTradesTool,
112
+ ];
113
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/trades/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAGH,uEAMyC;AACzC,kEAA8D;AAkB9D,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF;;;;;GAKG;AACU,QAAA,aAAa,GAAY;IACpC,IAAI,EAAE,2BAA2B;IACjC,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;8CAqB+B;IAC5C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,GAAG,qCAAiB;gBACpB,WAAW,EAAE,4DAA4D;aAC1E;YACD,WAAW,EAAE;gBACX,GAAG,kCAAc;gBACjB,WAAW,EAAE,4DAA4D;aAC1E;YACD,IAAI,EAAE,+BAAW;YACjB,KAAK,EAAE,IAAA,qCAAiB,EAAC,OAAO,EAAE,EAAE,CAAC;YACrC,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;gBACrB,WAAW,EAAE,yCAAyC;aACvD;YACD,SAAS,EAAE;gBACT,GAAG,oCAAgB;gBACnB,WAAW,EAAE,kEAAkE;aAChF;YACD,OAAO,EAAE;gBACP,GAAG,oCAAgB;gBACnB,WAAW,EAAE,gEAAgE;aAC9E;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,gCAAgC;aAC9C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,CAAC;gBACV,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,QAAQ,EAAE,EAAE;KACb;IACD,OAAO,EAAE,IAAA,0CAAmB,EAAC,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;QACjD,MAAM,SAAS,GAAG,IAAqB,CAAC;QAExC,gDAAgD;QAChD,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC;IACJ,CAAC,CAAC;CACH,CAAC;AAEF,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF;;GAEG;AACU,QAAA,WAAW,GAAc;IACpC,qBAAa;CACd,CAAC"}