intentkit 0.5.0__py3-none-any.whl → 0.5.2__py3-none-any.whl

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.

Potentially problematic release.


This version of intentkit might be problematic. Click here for more details.

Files changed (366) hide show
  1. intentkit/__init__.py +17 -0
  2. intentkit/abstracts/__init__.py +0 -0
  3. intentkit/abstracts/agent.py +60 -0
  4. intentkit/abstracts/api.py +4 -0
  5. intentkit/abstracts/engine.py +38 -0
  6. intentkit/abstracts/exception.py +9 -0
  7. intentkit/abstracts/graph.py +25 -0
  8. intentkit/abstracts/skill.py +129 -0
  9. intentkit/abstracts/twitter.py +54 -0
  10. intentkit/clients/__init__.py +14 -0
  11. intentkit/clients/cdp.py +53 -0
  12. intentkit/clients/twitter.py +445 -0
  13. intentkit/config/__init__.py +0 -0
  14. intentkit/config/config.py +164 -0
  15. intentkit/core/__init__.py +0 -0
  16. intentkit/core/agent.py +191 -0
  17. intentkit/core/api.py +40 -0
  18. intentkit/core/client.py +45 -0
  19. intentkit/core/credit.py +1767 -0
  20. intentkit/core/engine.py +1018 -0
  21. intentkit/core/node.py +223 -0
  22. intentkit/core/prompt.py +58 -0
  23. intentkit/core/skill.py +124 -0
  24. intentkit/models/agent.py +1689 -0
  25. intentkit/models/agent_data.py +810 -0
  26. intentkit/models/agent_schema.json +733 -0
  27. intentkit/models/app_setting.py +156 -0
  28. intentkit/models/base.py +9 -0
  29. intentkit/models/chat.py +581 -0
  30. intentkit/models/conversation.py +286 -0
  31. intentkit/models/credit.py +1406 -0
  32. intentkit/models/db.py +120 -0
  33. intentkit/models/db_mig.py +102 -0
  34. intentkit/models/generator.py +347 -0
  35. intentkit/models/llm.py +746 -0
  36. intentkit/models/redis.py +132 -0
  37. intentkit/models/skill.py +466 -0
  38. intentkit/models/user.py +243 -0
  39. intentkit/skills/__init__.py +12 -0
  40. intentkit/skills/acolyt/__init__.py +83 -0
  41. intentkit/skills/acolyt/acolyt.jpg +0 -0
  42. intentkit/skills/acolyt/ask.py +128 -0
  43. intentkit/skills/acolyt/base.py +28 -0
  44. intentkit/skills/acolyt/schema.json +89 -0
  45. intentkit/skills/aixbt/README.md +71 -0
  46. intentkit/skills/aixbt/__init__.py +73 -0
  47. intentkit/skills/aixbt/aixbt.jpg +0 -0
  48. intentkit/skills/aixbt/base.py +21 -0
  49. intentkit/skills/aixbt/projects.py +153 -0
  50. intentkit/skills/aixbt/schema.json +99 -0
  51. intentkit/skills/allora/__init__.py +83 -0
  52. intentkit/skills/allora/allora.jpeg +0 -0
  53. intentkit/skills/allora/base.py +28 -0
  54. intentkit/skills/allora/price.py +130 -0
  55. intentkit/skills/allora/schema.json +89 -0
  56. intentkit/skills/base.py +174 -0
  57. intentkit/skills/carv/README.md +95 -0
  58. intentkit/skills/carv/__init__.py +121 -0
  59. intentkit/skills/carv/base.py +183 -0
  60. intentkit/skills/carv/carv.webp +0 -0
  61. intentkit/skills/carv/fetch_news.py +92 -0
  62. intentkit/skills/carv/onchain_query.py +164 -0
  63. intentkit/skills/carv/schema.json +137 -0
  64. intentkit/skills/carv/token_info_and_price.py +110 -0
  65. intentkit/skills/cdp/__init__.py +137 -0
  66. intentkit/skills/cdp/base.py +21 -0
  67. intentkit/skills/cdp/cdp.png +0 -0
  68. intentkit/skills/cdp/get_balance.py +81 -0
  69. intentkit/skills/cdp/schema.json +473 -0
  70. intentkit/skills/chainlist/README.md +38 -0
  71. intentkit/skills/chainlist/__init__.py +54 -0
  72. intentkit/skills/chainlist/base.py +21 -0
  73. intentkit/skills/chainlist/chain_lookup.py +208 -0
  74. intentkit/skills/chainlist/chainlist.png +0 -0
  75. intentkit/skills/chainlist/schema.json +47 -0
  76. intentkit/skills/common/__init__.py +82 -0
  77. intentkit/skills/common/base.py +21 -0
  78. intentkit/skills/common/common.jpg +0 -0
  79. intentkit/skills/common/current_time.py +84 -0
  80. intentkit/skills/common/schema.json +57 -0
  81. intentkit/skills/cookiefun/README.md +121 -0
  82. intentkit/skills/cookiefun/__init__.py +78 -0
  83. intentkit/skills/cookiefun/base.py +41 -0
  84. intentkit/skills/cookiefun/constants.py +18 -0
  85. intentkit/skills/cookiefun/cookiefun.png +0 -0
  86. intentkit/skills/cookiefun/get_account_details.py +171 -0
  87. intentkit/skills/cookiefun/get_account_feed.py +282 -0
  88. intentkit/skills/cookiefun/get_account_smart_followers.py +181 -0
  89. intentkit/skills/cookiefun/get_sectors.py +128 -0
  90. intentkit/skills/cookiefun/schema.json +155 -0
  91. intentkit/skills/cookiefun/search_accounts.py +225 -0
  92. intentkit/skills/cryptocompare/__init__.py +130 -0
  93. intentkit/skills/cryptocompare/api.py +159 -0
  94. intentkit/skills/cryptocompare/base.py +303 -0
  95. intentkit/skills/cryptocompare/cryptocompare.png +0 -0
  96. intentkit/skills/cryptocompare/fetch_news.py +96 -0
  97. intentkit/skills/cryptocompare/fetch_price.py +99 -0
  98. intentkit/skills/cryptocompare/fetch_top_exchanges.py +113 -0
  99. intentkit/skills/cryptocompare/fetch_top_market_cap.py +109 -0
  100. intentkit/skills/cryptocompare/fetch_top_volume.py +108 -0
  101. intentkit/skills/cryptocompare/fetch_trading_signals.py +107 -0
  102. intentkit/skills/cryptocompare/schema.json +168 -0
  103. intentkit/skills/cryptopanic/__init__.py +108 -0
  104. intentkit/skills/cryptopanic/base.py +51 -0
  105. intentkit/skills/cryptopanic/cryptopanic.png +0 -0
  106. intentkit/skills/cryptopanic/fetch_crypto_news.py +153 -0
  107. intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +136 -0
  108. intentkit/skills/cryptopanic/schema.json +103 -0
  109. intentkit/skills/dapplooker/README.md +92 -0
  110. intentkit/skills/dapplooker/__init__.py +83 -0
  111. intentkit/skills/dapplooker/base.py +26 -0
  112. intentkit/skills/dapplooker/dapplooker.jpg +0 -0
  113. intentkit/skills/dapplooker/dapplooker_token_data.py +476 -0
  114. intentkit/skills/dapplooker/schema.json +91 -0
  115. intentkit/skills/defillama/__init__.py +323 -0
  116. intentkit/skills/defillama/api.py +315 -0
  117. intentkit/skills/defillama/base.py +135 -0
  118. intentkit/skills/defillama/coins/__init__.py +0 -0
  119. intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +116 -0
  120. intentkit/skills/defillama/coins/fetch_block.py +98 -0
  121. intentkit/skills/defillama/coins/fetch_current_prices.py +105 -0
  122. intentkit/skills/defillama/coins/fetch_first_price.py +100 -0
  123. intentkit/skills/defillama/coins/fetch_historical_prices.py +110 -0
  124. intentkit/skills/defillama/coins/fetch_price_chart.py +109 -0
  125. intentkit/skills/defillama/coins/fetch_price_percentage.py +93 -0
  126. intentkit/skills/defillama/config/__init__.py +0 -0
  127. intentkit/skills/defillama/config/chains.py +433 -0
  128. intentkit/skills/defillama/defillama.jpeg +0 -0
  129. intentkit/skills/defillama/fees/__init__.py +0 -0
  130. intentkit/skills/defillama/fees/fetch_fees_overview.py +130 -0
  131. intentkit/skills/defillama/schema.json +383 -0
  132. intentkit/skills/defillama/stablecoins/__init__.py +0 -0
  133. intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +100 -0
  134. intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +129 -0
  135. intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +83 -0
  136. intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +126 -0
  137. intentkit/skills/defillama/tests/__init__.py +0 -0
  138. intentkit/skills/defillama/tests/api_integration.test.py +192 -0
  139. intentkit/skills/defillama/tests/api_unit.test.py +583 -0
  140. intentkit/skills/defillama/tvl/__init__.py +0 -0
  141. intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +106 -0
  142. intentkit/skills/defillama/tvl/fetch_chains.py +107 -0
  143. intentkit/skills/defillama/tvl/fetch_historical_tvl.py +91 -0
  144. intentkit/skills/defillama/tvl/fetch_protocol.py +207 -0
  145. intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +93 -0
  146. intentkit/skills/defillama/tvl/fetch_protocols.py +196 -0
  147. intentkit/skills/defillama/volumes/__init__.py +0 -0
  148. intentkit/skills/defillama/volumes/fetch_dex_overview.py +157 -0
  149. intentkit/skills/defillama/volumes/fetch_dex_summary.py +123 -0
  150. intentkit/skills/defillama/volumes/fetch_options_overview.py +131 -0
  151. intentkit/skills/defillama/yields/__init__.py +0 -0
  152. intentkit/skills/defillama/yields/fetch_pool_chart.py +100 -0
  153. intentkit/skills/defillama/yields/fetch_pools.py +126 -0
  154. intentkit/skills/dexscreener/__init__.py +93 -0
  155. intentkit/skills/dexscreener/base.py +133 -0
  156. intentkit/skills/dexscreener/dexscreener.png +0 -0
  157. intentkit/skills/dexscreener/model/__init__.py +0 -0
  158. intentkit/skills/dexscreener/model/search_token_response.py +82 -0
  159. intentkit/skills/dexscreener/schema.json +48 -0
  160. intentkit/skills/dexscreener/search_token.py +321 -0
  161. intentkit/skills/dune_analytics/__init__.py +103 -0
  162. intentkit/skills/dune_analytics/base.py +46 -0
  163. intentkit/skills/dune_analytics/dune.png +0 -0
  164. intentkit/skills/dune_analytics/fetch_kol_buys.py +128 -0
  165. intentkit/skills/dune_analytics/fetch_nation_metrics.py +237 -0
  166. intentkit/skills/dune_analytics/schema.json +99 -0
  167. intentkit/skills/elfa/README.md +100 -0
  168. intentkit/skills/elfa/__init__.py +123 -0
  169. intentkit/skills/elfa/base.py +28 -0
  170. intentkit/skills/elfa/elfa.jpg +0 -0
  171. intentkit/skills/elfa/mention.py +504 -0
  172. intentkit/skills/elfa/schema.json +153 -0
  173. intentkit/skills/elfa/stats.py +118 -0
  174. intentkit/skills/elfa/tokens.py +126 -0
  175. intentkit/skills/enso/README.md +75 -0
  176. intentkit/skills/enso/__init__.py +114 -0
  177. intentkit/skills/enso/abi/__init__.py +0 -0
  178. intentkit/skills/enso/abi/approval.py +279 -0
  179. intentkit/skills/enso/abi/erc20.py +14 -0
  180. intentkit/skills/enso/abi/route.py +129 -0
  181. intentkit/skills/enso/base.py +44 -0
  182. intentkit/skills/enso/best_yield.py +286 -0
  183. intentkit/skills/enso/enso.jpg +0 -0
  184. intentkit/skills/enso/networks.py +105 -0
  185. intentkit/skills/enso/prices.py +93 -0
  186. intentkit/skills/enso/route.py +300 -0
  187. intentkit/skills/enso/schema.json +212 -0
  188. intentkit/skills/enso/tokens.py +223 -0
  189. intentkit/skills/enso/wallet.py +381 -0
  190. intentkit/skills/github/README.md +63 -0
  191. intentkit/skills/github/__init__.py +54 -0
  192. intentkit/skills/github/base.py +21 -0
  193. intentkit/skills/github/github.jpg +0 -0
  194. intentkit/skills/github/github_search.py +183 -0
  195. intentkit/skills/github/schema.json +59 -0
  196. intentkit/skills/heurist/__init__.py +143 -0
  197. intentkit/skills/heurist/base.py +26 -0
  198. intentkit/skills/heurist/heurist.png +0 -0
  199. intentkit/skills/heurist/image_generation_animagine_xl.py +162 -0
  200. intentkit/skills/heurist/image_generation_arthemy_comics.py +162 -0
  201. intentkit/skills/heurist/image_generation_arthemy_real.py +162 -0
  202. intentkit/skills/heurist/image_generation_braindance.py +162 -0
  203. intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +162 -0
  204. intentkit/skills/heurist/image_generation_flux_1_dev.py +162 -0
  205. intentkit/skills/heurist/image_generation_sdxl.py +161 -0
  206. intentkit/skills/heurist/schema.json +196 -0
  207. intentkit/skills/lifi/README.md +294 -0
  208. intentkit/skills/lifi/__init__.py +141 -0
  209. intentkit/skills/lifi/base.py +21 -0
  210. intentkit/skills/lifi/lifi.png +0 -0
  211. intentkit/skills/lifi/schema.json +89 -0
  212. intentkit/skills/lifi/token_execute.py +472 -0
  213. intentkit/skills/lifi/token_quote.py +190 -0
  214. intentkit/skills/lifi/utils.py +656 -0
  215. intentkit/skills/moralis/README.md +490 -0
  216. intentkit/skills/moralis/__init__.py +110 -0
  217. intentkit/skills/moralis/api.py +281 -0
  218. intentkit/skills/moralis/base.py +55 -0
  219. intentkit/skills/moralis/fetch_chain_portfolio.py +191 -0
  220. intentkit/skills/moralis/fetch_nft_portfolio.py +284 -0
  221. intentkit/skills/moralis/fetch_solana_portfolio.py +331 -0
  222. intentkit/skills/moralis/fetch_wallet_portfolio.py +301 -0
  223. intentkit/skills/moralis/moralis.png +0 -0
  224. intentkit/skills/moralis/schema.json +156 -0
  225. intentkit/skills/moralis/tests/__init__.py +0 -0
  226. intentkit/skills/moralis/tests/test_wallet.py +511 -0
  227. intentkit/skills/nation/__init__.py +62 -0
  228. intentkit/skills/nation/base.py +31 -0
  229. intentkit/skills/nation/nation.png +0 -0
  230. intentkit/skills/nation/nft_check.py +106 -0
  231. intentkit/skills/nation/schema.json +58 -0
  232. intentkit/skills/openai/__init__.py +107 -0
  233. intentkit/skills/openai/base.py +32 -0
  234. intentkit/skills/openai/dalle_image_generation.py +128 -0
  235. intentkit/skills/openai/gpt_image_generation.py +152 -0
  236. intentkit/skills/openai/gpt_image_to_image.py +186 -0
  237. intentkit/skills/openai/image_to_text.py +126 -0
  238. intentkit/skills/openai/openai.png +0 -0
  239. intentkit/skills/openai/schema.json +139 -0
  240. intentkit/skills/portfolio/README.md +55 -0
  241. intentkit/skills/portfolio/__init__.py +151 -0
  242. intentkit/skills/portfolio/base.py +107 -0
  243. intentkit/skills/portfolio/constants.py +9 -0
  244. intentkit/skills/portfolio/moralis.png +0 -0
  245. intentkit/skills/portfolio/schema.json +237 -0
  246. intentkit/skills/portfolio/token_balances.py +155 -0
  247. intentkit/skills/portfolio/wallet_approvals.py +102 -0
  248. intentkit/skills/portfolio/wallet_defi_positions.py +80 -0
  249. intentkit/skills/portfolio/wallet_history.py +155 -0
  250. intentkit/skills/portfolio/wallet_net_worth.py +112 -0
  251. intentkit/skills/portfolio/wallet_nfts.py +139 -0
  252. intentkit/skills/portfolio/wallet_profitability.py +101 -0
  253. intentkit/skills/portfolio/wallet_profitability_summary.py +91 -0
  254. intentkit/skills/portfolio/wallet_stats.py +79 -0
  255. intentkit/skills/portfolio/wallet_swaps.py +147 -0
  256. intentkit/skills/skills.toml +103 -0
  257. intentkit/skills/slack/__init__.py +98 -0
  258. intentkit/skills/slack/base.py +55 -0
  259. intentkit/skills/slack/get_channel.py +109 -0
  260. intentkit/skills/slack/get_message.py +136 -0
  261. intentkit/skills/slack/schedule_message.py +92 -0
  262. intentkit/skills/slack/schema.json +135 -0
  263. intentkit/skills/slack/send_message.py +81 -0
  264. intentkit/skills/slack/slack.jpg +0 -0
  265. intentkit/skills/system/__init__.py +90 -0
  266. intentkit/skills/system/base.py +22 -0
  267. intentkit/skills/system/read_agent_api_key.py +87 -0
  268. intentkit/skills/system/regenerate_agent_api_key.py +77 -0
  269. intentkit/skills/system/schema.json +53 -0
  270. intentkit/skills/system/system.svg +76 -0
  271. intentkit/skills/tavily/README.md +86 -0
  272. intentkit/skills/tavily/__init__.py +91 -0
  273. intentkit/skills/tavily/base.py +27 -0
  274. intentkit/skills/tavily/schema.json +119 -0
  275. intentkit/skills/tavily/tavily.jpg +0 -0
  276. intentkit/skills/tavily/tavily_extract.py +147 -0
  277. intentkit/skills/tavily/tavily_search.py +139 -0
  278. intentkit/skills/token/README.md +89 -0
  279. intentkit/skills/token/__init__.py +107 -0
  280. intentkit/skills/token/base.py +154 -0
  281. intentkit/skills/token/constants.py +9 -0
  282. intentkit/skills/token/erc20_transfers.py +145 -0
  283. intentkit/skills/token/moralis.png +0 -0
  284. intentkit/skills/token/schema.json +141 -0
  285. intentkit/skills/token/token_analytics.py +81 -0
  286. intentkit/skills/token/token_price.py +132 -0
  287. intentkit/skills/token/token_search.py +121 -0
  288. intentkit/skills/twitter/__init__.py +146 -0
  289. intentkit/skills/twitter/base.py +68 -0
  290. intentkit/skills/twitter/follow_user.py +69 -0
  291. intentkit/skills/twitter/get_mentions.py +124 -0
  292. intentkit/skills/twitter/get_timeline.py +111 -0
  293. intentkit/skills/twitter/get_user_by_username.py +84 -0
  294. intentkit/skills/twitter/get_user_tweets.py +123 -0
  295. intentkit/skills/twitter/like_tweet.py +65 -0
  296. intentkit/skills/twitter/post_tweet.py +90 -0
  297. intentkit/skills/twitter/reply_tweet.py +98 -0
  298. intentkit/skills/twitter/retweet.py +76 -0
  299. intentkit/skills/twitter/schema.json +258 -0
  300. intentkit/skills/twitter/search_tweets.py +115 -0
  301. intentkit/skills/twitter/twitter.png +0 -0
  302. intentkit/skills/unrealspeech/__init__.py +55 -0
  303. intentkit/skills/unrealspeech/base.py +21 -0
  304. intentkit/skills/unrealspeech/schema.json +100 -0
  305. intentkit/skills/unrealspeech/text_to_speech.py +177 -0
  306. intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
  307. intentkit/skills/venice_audio/__init__.py +106 -0
  308. intentkit/skills/venice_audio/base.py +119 -0
  309. intentkit/skills/venice_audio/input.py +41 -0
  310. intentkit/skills/venice_audio/schema.json +152 -0
  311. intentkit/skills/venice_audio/venice_audio.py +240 -0
  312. intentkit/skills/venice_audio/venice_logo.jpg +0 -0
  313. intentkit/skills/venice_image/README.md +119 -0
  314. intentkit/skills/venice_image/__init__.py +154 -0
  315. intentkit/skills/venice_image/api.py +138 -0
  316. intentkit/skills/venice_image/base.py +188 -0
  317. intentkit/skills/venice_image/config.py +35 -0
  318. intentkit/skills/venice_image/image_enhance/README.md +119 -0
  319. intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
  320. intentkit/skills/venice_image/image_enhance/image_enhance.py +80 -0
  321. intentkit/skills/venice_image/image_enhance/image_enhance_base.py +23 -0
  322. intentkit/skills/venice_image/image_enhance/image_enhance_input.py +40 -0
  323. intentkit/skills/venice_image/image_generation/README.md +144 -0
  324. intentkit/skills/venice_image/image_generation/__init__.py +0 -0
  325. intentkit/skills/venice_image/image_generation/image_generation_base.py +117 -0
  326. intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +26 -0
  327. intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +27 -0
  328. intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +26 -0
  329. intentkit/skills/venice_image/image_generation/image_generation_input.py +158 -0
  330. intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +26 -0
  331. intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +26 -0
  332. intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +28 -0
  333. intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +28 -0
  334. intentkit/skills/venice_image/image_upscale/README.md +111 -0
  335. intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
  336. intentkit/skills/venice_image/image_upscale/image_upscale.py +90 -0
  337. intentkit/skills/venice_image/image_upscale/image_upscale_base.py +23 -0
  338. intentkit/skills/venice_image/image_upscale/image_upscale_input.py +22 -0
  339. intentkit/skills/venice_image/image_vision/README.md +112 -0
  340. intentkit/skills/venice_image/image_vision/__init__.py +0 -0
  341. intentkit/skills/venice_image/image_vision/image_vision.py +100 -0
  342. intentkit/skills/venice_image/image_vision/image_vision_base.py +17 -0
  343. intentkit/skills/venice_image/image_vision/image_vision_input.py +9 -0
  344. intentkit/skills/venice_image/schema.json +267 -0
  345. intentkit/skills/venice_image/utils.py +78 -0
  346. intentkit/skills/venice_image/venice_image.jpg +0 -0
  347. intentkit/skills/web_scraper/README.md +82 -0
  348. intentkit/skills/web_scraper/__init__.py +92 -0
  349. intentkit/skills/web_scraper/base.py +21 -0
  350. intentkit/skills/web_scraper/langchain.png +0 -0
  351. intentkit/skills/web_scraper/schema.json +115 -0
  352. intentkit/skills/web_scraper/scrape_and_index.py +327 -0
  353. intentkit/utils/__init__.py +1 -0
  354. intentkit/utils/chain.py +436 -0
  355. intentkit/utils/error.py +134 -0
  356. intentkit/utils/logging.py +70 -0
  357. intentkit/utils/middleware.py +61 -0
  358. intentkit/utils/random.py +16 -0
  359. intentkit/utils/s3.py +267 -0
  360. intentkit/utils/slack_alert.py +79 -0
  361. intentkit/utils/tx.py +37 -0
  362. {intentkit-0.5.0.dist-info → intentkit-0.5.2.dist-info}/METADATA +1 -1
  363. intentkit-0.5.2.dist-info/RECORD +365 -0
  364. intentkit-0.5.0.dist-info/RECORD +0 -4
  365. {intentkit-0.5.0.dist-info → intentkit-0.5.2.dist-info}/WHEEL +0 -0
  366. {intentkit-0.5.0.dist-info → intentkit-0.5.2.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,130 @@
1
+ """Tool for fetching fees overview data via DeFi Llama API."""
2
+
3
+ from typing import Dict, List, Optional, Type
4
+
5
+ from langchain.schema.runnable import RunnableConfig
6
+ from pydantic import BaseModel, Field
7
+
8
+ from intentkit.skills.defillama.api import fetch_fees_overview
9
+ from intentkit.skills.defillama.base import DefiLlamaBaseTool
10
+
11
+ FETCH_FEES_OVERVIEW_PROMPT = """
12
+ This tool fetches comprehensive overview data for protocol fees from DeFi Llama.
13
+ Returns detailed metrics including:
14
+ - Total fees across different timeframes
15
+ - Change percentages
16
+ - Protocol-specific data
17
+ - Chain breakdowns
18
+ """
19
+
20
+
21
+ class ProtocolMethodology(BaseModel):
22
+ """Model representing protocol methodology data."""
23
+
24
+ UserFees: Optional[str] = Field(None, description="Description of user fees")
25
+ Fees: Optional[str] = Field(None, description="Description of fees")
26
+ Revenue: Optional[str] = Field(None, description="Description of revenue")
27
+ ProtocolRevenue: Optional[str] = Field(
28
+ None, description="Description of protocol revenue"
29
+ )
30
+ HoldersRevenue: Optional[str] = Field(
31
+ None, description="Description of holders revenue"
32
+ )
33
+ SupplySideRevenue: Optional[str] = Field(
34
+ None, description="Description of supply side revenue"
35
+ )
36
+
37
+
38
+ class Protocol(BaseModel):
39
+ """Model representing protocol data."""
40
+
41
+ name: str = Field(..., description="Protocol name")
42
+ displayName: str = Field(..., description="Display name of protocol")
43
+ category: str = Field(..., description="Protocol category")
44
+ logo: str = Field(..., description="Logo URL")
45
+ chains: List[str] = Field(..., description="Supported chains")
46
+ module: str = Field(..., description="Protocol module")
47
+ total24h: Optional[float] = Field(None, description="24-hour total fees")
48
+ total7d: Optional[float] = Field(None, description="7-day total fees")
49
+ total30d: Optional[float] = Field(None, description="30-day total fees")
50
+ total1y: Optional[float] = Field(None, description="1-year total fees")
51
+ totalAllTime: Optional[float] = Field(None, description="All-time total fees")
52
+ change_1d: Optional[float] = Field(None, description="24-hour change percentage")
53
+ change_7d: Optional[float] = Field(None, description="7-day change percentage")
54
+ change_1m: Optional[float] = Field(None, description="30-day change percentage")
55
+ methodology: Optional[ProtocolMethodology] = Field(
56
+ None, description="Protocol methodology"
57
+ )
58
+ breakdown24h: Optional[Dict[str, Dict[str, float]]] = Field(
59
+ None, description="24-hour breakdown by chain"
60
+ )
61
+ breakdown30d: Optional[Dict[str, Dict[str, float]]] = Field(
62
+ None, description="30-day breakdown by chain"
63
+ )
64
+
65
+
66
+ class FetchFeesOverviewResponse(BaseModel):
67
+ """Response schema for fees overview data."""
68
+
69
+ total24h: float = Field(..., description="Total fees in last 24 hours")
70
+ total7d: float = Field(..., description="Total fees in last 7 days")
71
+ total30d: float = Field(..., description="Total fees in last 30 days")
72
+ total1y: float = Field(..., description="Total fees in last year")
73
+ change_1d: float = Field(..., description="24-hour change percentage")
74
+ change_7d: float = Field(..., description="7-day change percentage")
75
+ change_1m: float = Field(..., description="30-day change percentage")
76
+ allChains: List[str] = Field(..., description="List of all chains")
77
+ protocols: List[Protocol] = Field(..., description="List of protocols")
78
+ error: Optional[str] = Field(None, description="Error message if any")
79
+
80
+
81
+ class DefiLlamaFetchFeesOverview(DefiLlamaBaseTool):
82
+ """Tool for fetching fees overview data from DeFi Llama.
83
+
84
+ This tool retrieves comprehensive data about protocol fees,
85
+ including fee metrics, change percentages, and detailed protocol information.
86
+
87
+ Example:
88
+ overview_tool = DefiLlamaFetchFeesOverview(
89
+ skill_store=store,
90
+ agent_id="agent_123",
91
+ agent_store=agent_store
92
+ )
93
+ result = await overview_tool._arun()
94
+ """
95
+
96
+ name: str = "defillama_fetch_fees_overview"
97
+ description: str = FETCH_FEES_OVERVIEW_PROMPT
98
+
99
+ class EmptyArgsSchema(BaseModel):
100
+ """Empty schema for no input parameters."""
101
+
102
+ pass
103
+
104
+ args_schema: Type[BaseModel] = EmptyArgsSchema
105
+
106
+ async def _arun(self, config: RunnableConfig) -> FetchFeesOverviewResponse:
107
+ """Fetch overview data for protocol fees.
108
+
109
+ Returns:
110
+ FetchFeesOverviewResponse containing comprehensive fee data or error
111
+ """
112
+ try:
113
+ # Check rate limiting
114
+ context = self.context_from_config(config)
115
+ is_rate_limited, error_msg = await self.check_rate_limit(context)
116
+ if is_rate_limited:
117
+ return FetchFeesOverviewResponse(error=error_msg)
118
+
119
+ # Fetch fees data from API
120
+ result = await fetch_fees_overview()
121
+
122
+ # Check for API errors
123
+ if isinstance(result, dict) and "error" in result:
124
+ return FetchFeesOverviewResponse(error=result["error"])
125
+
126
+ # Return the parsed response
127
+ return FetchFeesOverviewResponse(**result)
128
+
129
+ except Exception as e:
130
+ return FetchFeesOverviewResponse(error=str(e))
@@ -0,0 +1,383 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "title": "DeFiLlama",
5
+ "x-icon": "https://ai.service.crestal.dev/skills/defillama/defillama.jpeg",
6
+ "description": "Integration with DeFi Llama API providing comprehensive decentralized finance data including token prices, protocol TVL, DEX volumes, and stablecoin metrics",
7
+ "properties": {
8
+ "enabled": {
9
+ "type": "boolean",
10
+ "title": "Enabled",
11
+ "description": "Whether this skill is enabled",
12
+ "default": false
13
+ },
14
+ "states": {
15
+ "type": "object",
16
+ "properties": {
17
+ "fetch_batch_historical_prices": {
18
+ "type": "string",
19
+ "enum": [
20
+ "disabled",
21
+ "public",
22
+ "private"
23
+ ],
24
+ "x-enum-title": [
25
+ "Disabled",
26
+ "Agent Owner + All Users",
27
+ "Agent Owner Only"
28
+ ],
29
+ "description": "Fetch batch historical prices",
30
+ "default": "disabled"
31
+ },
32
+ "fetch_block": {
33
+ "type": "string",
34
+ "enum": [
35
+ "disabled",
36
+ "public",
37
+ "private"
38
+ ],
39
+ "x-enum-title": [
40
+ "Disabled",
41
+ "Agent Owner + All Users",
42
+ "Agent Owner Only"
43
+ ],
44
+ "description": "Fetch block",
45
+ "default": "disabled"
46
+ },
47
+ "fetch_current_prices": {
48
+ "type": "string",
49
+ "enum": [
50
+ "disabled",
51
+ "public",
52
+ "private"
53
+ ],
54
+ "x-enum-title": [
55
+ "Disabled",
56
+ "Agent Owner + All Users",
57
+ "Agent Owner Only"
58
+ ],
59
+ "description": "Fetch current prices",
60
+ "default": "disabled"
61
+ },
62
+ "fetch_first_price": {
63
+ "type": "string",
64
+ "enum": [
65
+ "disabled",
66
+ "public",
67
+ "private"
68
+ ],
69
+ "x-enum-title": [
70
+ "Disabled",
71
+ "Agent Owner + All Users",
72
+ "Agent Owner Only"
73
+ ],
74
+ "description": "Retrieves inaugural trading price data for assets with historical context",
75
+ "default": "disabled"
76
+ },
77
+ "fetch_historical_prices": {
78
+ "type": "string",
79
+ "enum": [
80
+ "disabled",
81
+ "public",
82
+ "private"
83
+ ],
84
+ "x-enum-title": [
85
+ "Disabled",
86
+ "Agent Owner + All Users",
87
+ "Agent Owner Only"
88
+ ],
89
+ "description": "Fetch historical prices",
90
+ "default": "disabled"
91
+ },
92
+ "fetch_price_chart": {
93
+ "type": "string",
94
+ "enum": [
95
+ "disabled",
96
+ "public",
97
+ "private"
98
+ ],
99
+ "x-enum-title": [
100
+ "Disabled",
101
+ "Agent Owner + All Users",
102
+ "Agent Owner Only"
103
+ ],
104
+ "description": "Fetch price chart",
105
+ "default": "disabled"
106
+ },
107
+ "fetch_price_percentage": {
108
+ "type": "string",
109
+ "enum": [
110
+ "disabled",
111
+ "public",
112
+ "private"
113
+ ],
114
+ "x-enum-title": [
115
+ "Disabled",
116
+ "Agent Owner + All Users",
117
+ "Agent Owner Only"
118
+ ],
119
+ "description": "Fetch price percentage",
120
+ "default": "disabled"
121
+ },
122
+ "fetch_fees_overview": {
123
+ "type": "string",
124
+ "title": "Fetch Fees Overview",
125
+ "enum": [
126
+ "disabled",
127
+ "public",
128
+ "private"
129
+ ],
130
+ "x-enum-title": [
131
+ "Disabled",
132
+ "Agent Owner + All Users",
133
+ "Agent Owner Only"
134
+ ],
135
+ "description": "Provides aggregated fee statistics across DEXs, lending protocols, and other fee-generating DeFi primitives",
136
+ "default": "disabled"
137
+ },
138
+ "fetch_stablecoin_chains": {
139
+ "type": "string",
140
+ "enum": [
141
+ "disabled",
142
+ "public",
143
+ "private"
144
+ ],
145
+ "x-enum-title": [
146
+ "Disabled",
147
+ "Agent Owner + All Users",
148
+ "Agent Owner Only"
149
+ ],
150
+ "description": "Shows blockchain distribution of stablecoin supply with chain-specific circulation metrics",
151
+ "default": "disabled"
152
+ },
153
+ "fetch_stablecoin_charts": {
154
+ "type": "string",
155
+ "enum": [
156
+ "disabled",
157
+ "public",
158
+ "private"
159
+ ],
160
+ "x-enum-title": [
161
+ "Disabled",
162
+ "Agent Owner + All Users",
163
+ "Agent Owner Only"
164
+ ],
165
+ "description": "Generates historical charts for stablecoin market cap, supply changes, and chain dominance",
166
+ "default": "disabled"
167
+ },
168
+ "fetch_stablecoin_prices": {
169
+ "type": "string",
170
+ "enum": [
171
+ "disabled",
172
+ "public",
173
+ "private"
174
+ ],
175
+ "x-enum-title": [
176
+ "Disabled",
177
+ "Agent Owner + All Users",
178
+ "Agent Owner Only"
179
+ ],
180
+ "description": "Fetch stablecoin prices",
181
+ "default": "disabled"
182
+ },
183
+ "fetch_stablecoins": {
184
+ "type": "string",
185
+ "enum": [
186
+ "disabled",
187
+ "public",
188
+ "private"
189
+ ],
190
+ "x-enum-title": [
191
+ "Disabled",
192
+ "Agent Owner + All Users",
193
+ "Agent Owner Only"
194
+ ],
195
+ "description": "Fetch stablecoins",
196
+ "default": "disabled"
197
+ },
198
+ "fetch_chain_historical_tvl": {
199
+ "type": "string",
200
+ "enum": [
201
+ "disabled",
202
+ "public",
203
+ "private"
204
+ ],
205
+ "x-enum-title": [
206
+ "Disabled",
207
+ "Agent Owner + All Users",
208
+ "Agent Owner Only"
209
+ ],
210
+ "description": "Retrieves historical TVL data for specific blockchain chains with daily granularity",
211
+ "default": "disabled"
212
+ },
213
+ "fetch_chains": {
214
+ "type": "string",
215
+ "enum": [
216
+ "disabled",
217
+ "public",
218
+ "private"
219
+ ],
220
+ "x-enum-title": [
221
+ "Disabled",
222
+ "Agent Owner + All Users",
223
+ "Agent Owner Only"
224
+ ],
225
+ "description": "Fetch chains",
226
+ "default": "disabled"
227
+ },
228
+ "fetch_historical_tvl": {
229
+ "type": "string",
230
+ "enum": [
231
+ "disabled",
232
+ "public",
233
+ "private"
234
+ ],
235
+ "x-enum-title": [
236
+ "Disabled",
237
+ "Agent Owner + All Users",
238
+ "Agent Owner Only"
239
+ ],
240
+ "description": "Provides historical TVL trends for the entire DeFi ecosystem or specific protocol categories",
241
+ "default": "disabled"
242
+ },
243
+ "fetch_protocol": {
244
+ "type": "string",
245
+ "enum": [
246
+ "disabled",
247
+ "public",
248
+ "private"
249
+ ],
250
+ "x-enum-title": [
251
+ "Disabled",
252
+ "Agent Owner + All Users",
253
+ "Agent Owner Only"
254
+ ],
255
+ "description": "Fetch protocol",
256
+ "default": "disabled"
257
+ },
258
+ "fetch_protocol_current_tvl": {
259
+ "type": "string",
260
+ "enum": [
261
+ "disabled",
262
+ "public",
263
+ "private"
264
+ ],
265
+ "x-enum-title": [
266
+ "Disabled",
267
+ "Agent Owner + All Users",
268
+ "Agent Owner Only"
269
+ ],
270
+ "description": "Fetch protocol current TVL",
271
+ "default": "disabled"
272
+ },
273
+ "fetch_protocols": {
274
+ "type": "string",
275
+ "enum": [
276
+ "disabled",
277
+ "public",
278
+ "private"
279
+ ],
280
+ "x-enum-title": [
281
+ "Disabled",
282
+ "Agent Owner + All Users",
283
+ "Agent Owner Only"
284
+ ],
285
+ "description": "Retrieves comprehensive list of all tracked DeFi protocols with their category, chain, and TVL data",
286
+ "default": "disabled"
287
+ },
288
+ "fetch_dex_overview": {
289
+ "type": "string",
290
+ "enum": [
291
+ "disabled",
292
+ "public",
293
+ "private"
294
+ ],
295
+ "x-enum-title": [
296
+ "Disabled",
297
+ "Agent Owner + All Users",
298
+ "Agent Owner Only"
299
+ ],
300
+ "description": "Provides aggregated DEX metrics including total volume, top trading pairs, and liquidity distribution",
301
+ "default": "disabled"
302
+ },
303
+ "fetch_dex_summary": {
304
+ "type": "string",
305
+ "enum": [
306
+ "disabled",
307
+ "public",
308
+ "private"
309
+ ],
310
+ "x-enum-title": [
311
+ "Disabled",
312
+ "Agent Owner + All Users",
313
+ "Agent Owner Only"
314
+ ],
315
+ "description": "Fetch dex summary",
316
+ "default": "disabled"
317
+ },
318
+ "fetch_options_overview": {
319
+ "type": "string",
320
+ "enum": [
321
+ "disabled",
322
+ "public",
323
+ "private"
324
+ ],
325
+ "x-enum-title": [
326
+ "Disabled",
327
+ "Agent Owner + All Users",
328
+ "Agent Owner Only"
329
+ ],
330
+ "description": "Fetch options overview",
331
+ "default": "disabled"
332
+ },
333
+ "fetch_pool_chart": {
334
+ "type": "string",
335
+ "enum": [
336
+ "disabled",
337
+ "public",
338
+ "private"
339
+ ],
340
+ "x-enum-title": [
341
+ "Disabled",
342
+ "Agent Owner + All Users",
343
+ "Agent Owner Only"
344
+ ],
345
+ "description": "Fetch pool chart",
346
+ "default": "disabled"
347
+ },
348
+ "fetch_pools": {
349
+ "type": "string",
350
+ "enum": [
351
+ "disabled",
352
+ "public",
353
+ "private"
354
+ ],
355
+ "x-enum-title": [
356
+ "Disabled",
357
+ "Agent Owner + All Users",
358
+ "Agent Owner Only"
359
+ ],
360
+ "description": "Fetch pools",
361
+ "default": "disabled"
362
+ }
363
+ },
364
+ "description": "States for each Defillama skill (disabled, public, or private)"
365
+ },
366
+ "api_key_provider": {
367
+ "type": "string",
368
+ "title": "API Key Provider",
369
+ "description": "Who provides the API key",
370
+ "enum": [
371
+ "platform"
372
+ ],
373
+ "x-enum-title": [
374
+ "Nation Hosted"
375
+ ],
376
+ "default": "platform"
377
+ }
378
+ },
379
+ "required": [
380
+ "states",
381
+ "enabled"
382
+ ]
383
+ }
File without changes
@@ -0,0 +1,100 @@
1
+ """Tool for fetching stablecoin chains data via DeFi Llama API."""
2
+
3
+ from typing import List, Optional
4
+
5
+ from langchain.schema.runnable import RunnableConfig
6
+ from pydantic import BaseModel, Field
7
+
8
+ from intentkit.skills.defillama.api import fetch_stablecoin_chains
9
+ from intentkit.skills.defillama.base import DefiLlamaBaseTool
10
+
11
+ FETCH_STABLECOIN_CHAINS_PROMPT = """
12
+ This tool fetches stablecoin distribution data across all chains from DeFi Llama.
13
+ Returns:
14
+ - List of chains with stablecoin circulating amounts
15
+ - Token information for each chain
16
+ - Peg type circulating amounts (USD, EUR, etc.)
17
+ """
18
+
19
+
20
+ class CirculatingUSD(BaseModel):
21
+ """Model representing circulating amounts in different pegs."""
22
+
23
+ peggedUSD: Optional[float] = Field(None, description="Amount pegged to USD")
24
+ peggedEUR: Optional[float] = Field(None, description="Amount pegged to EUR")
25
+ peggedVAR: Optional[float] = Field(None, description="Amount in variable pegs")
26
+ peggedJPY: Optional[float] = Field(None, description="Amount pegged to JPY")
27
+ peggedCHF: Optional[float] = Field(None, description="Amount pegged to CHF")
28
+ peggedCAD: Optional[float] = Field(None, description="Amount pegged to CAD")
29
+ peggedGBP: Optional[float] = Field(None, description="Amount pegged to GBP")
30
+ peggedAUD: Optional[float] = Field(None, description="Amount pegged to AUD")
31
+ peggedCNY: Optional[float] = Field(None, description="Amount pegged to CNY")
32
+ peggedREAL: Optional[float] = Field(
33
+ None, description="Amount pegged to Brazilian Real"
34
+ )
35
+
36
+
37
+ class ChainData(BaseModel):
38
+ """Model representing stablecoin data for a single chain."""
39
+
40
+ gecko_id: Optional[str] = Field(None, description="CoinGecko ID of the chain")
41
+ totalCirculatingUSD: CirculatingUSD = Field(
42
+ ..., description="Total circulating amounts in different pegs"
43
+ )
44
+ tokenSymbol: Optional[str] = Field(None, description="Native token symbol")
45
+ name: str = Field(..., description="Chain name")
46
+
47
+
48
+ class FetchStablecoinChainsResponse(BaseModel):
49
+ """Response schema for stablecoin chains data."""
50
+
51
+ chains: List[ChainData] = Field(
52
+ default_factory=list, description="List of chains with their stablecoin data"
53
+ )
54
+ error: Optional[str] = Field(None, description="Error message if any")
55
+
56
+
57
+ class DefiLlamaFetchStablecoinChains(DefiLlamaBaseTool):
58
+ """Tool for fetching stablecoin distribution across chains from DeFi Llama.
59
+
60
+ This tool retrieves data about how stablecoins are distributed across different
61
+ blockchain networks, including circulation amounts and token information.
62
+
63
+ Example:
64
+ chains_tool = DefiLlamaFetchStablecoinChains(
65
+ skill_store=store,
66
+ agent_id="agent_123",
67
+ agent_store=agent_store
68
+ )
69
+ result = await chains_tool._arun()
70
+ """
71
+
72
+ name: str = "defillama_fetch_stablecoin_chains"
73
+ description: str = FETCH_STABLECOIN_CHAINS_PROMPT
74
+ args_schema: None = None # No input parameters needed
75
+
76
+ async def _arun(self, config: RunnableConfig) -> FetchStablecoinChainsResponse:
77
+ """Fetch stablecoin distribution data across chains.
78
+
79
+ Returns:
80
+ FetchStablecoinChainsResponse containing chain data or error
81
+ """
82
+ try:
83
+ # Check rate limiting
84
+ context = self.context_from_config(config)
85
+ is_rate_limited, error_msg = await self.check_rate_limit(context)
86
+ if is_rate_limited:
87
+ return FetchStablecoinChainsResponse(error=error_msg)
88
+
89
+ # Fetch chains data from API
90
+ result = await fetch_stablecoin_chains()
91
+
92
+ # Check for API errors
93
+ if isinstance(result, dict) and "error" in result:
94
+ return FetchStablecoinChainsResponse(error=result["error"])
95
+
96
+ # Return the response matching the API structure
97
+ return FetchStablecoinChainsResponse(chains=result)
98
+
99
+ except Exception as e:
100
+ return FetchStablecoinChainsResponse(error=str(e))