intentkit 0.8.32.dev1__tar.gz → 0.8.33.dev1__tar.gz

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 (471) hide show
  1. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/PKG-INFO +1 -1
  2. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/__init__.py +1 -1
  3. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/clients/__init__.py +7 -1
  4. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/clients/cdp.py +27 -0
  5. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/base.py +2 -2
  6. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/token_execute.py +126 -42
  7. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/onchain.py +7 -0
  8. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/pyproject.toml +1 -1
  9. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/.gitignore +0 -0
  10. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/LICENSE +0 -0
  11. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/LICENSE +0 -0
  12. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/MANIFEST.in +0 -0
  13. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/README.md +0 -0
  14. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/__init__.py +0 -0
  15. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/agent.py +0 -0
  16. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/api.py +0 -0
  17. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/engine.py +0 -0
  18. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/graph.py +0 -0
  19. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/skill.py +0 -0
  20. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/abstracts/twitter.py +0 -0
  21. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/clients/twitter.py +0 -0
  22. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/clients/web3.py +0 -0
  23. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/config/__init__.py +0 -0
  24. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/config/config.py +0 -0
  25. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/__init__.py +0 -0
  26. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/agent.py +0 -0
  27. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/api.py +0 -0
  28. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/asset.py +0 -0
  29. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/chat.py +0 -0
  30. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/client.py +0 -0
  31. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/credit.py +0 -0
  32. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/engine.py +0 -0
  33. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/node.py +0 -0
  34. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/prompt.py +0 -0
  35. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/scheduler.py +0 -0
  36. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/core/statistics.py +0 -0
  37. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/agent.py +0 -0
  38. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/agent_data.py +0 -0
  39. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/agent_public.json +0 -0
  40. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/agent_schema.json +0 -0
  41. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/app_setting.py +0 -0
  42. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/base.py +0 -0
  43. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/chat.py +0 -0
  44. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/conversation.py +0 -0
  45. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/credit.py +0 -0
  46. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/db.py +0 -0
  47. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/db_mig.py +0 -0
  48. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/llm.csv +0 -0
  49. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/llm.py +0 -0
  50. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/redis.py +0 -0
  51. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/skill.py +0 -0
  52. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/skills.csv +0 -0
  53. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/models/user.py +0 -0
  54. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/__init__.py +0 -0
  55. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/acolyt/__init__.py +0 -0
  56. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/acolyt/acolyt.jpg +0 -0
  57. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/acolyt/ask.py +0 -0
  58. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/acolyt/base.py +0 -0
  59. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/acolyt/schema.json +0 -0
  60. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/README.md +0 -0
  61. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/__init__.py +0 -0
  62. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/aixbt.jpg +0 -0
  63. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/base.py +0 -0
  64. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/projects.py +0 -0
  65. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/aixbt/schema.json +0 -0
  66. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/allora/__init__.py +0 -0
  67. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/allora/allora.jpeg +0 -0
  68. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/allora/base.py +0 -0
  69. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/allora/price.py +0 -0
  70. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/allora/schema.json +0 -0
  71. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/base.py +0 -0
  72. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/basename/__init__.py +0 -0
  73. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/basename/base.py +0 -0
  74. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/basename/basename.svg +0 -0
  75. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/basename/schema.json +0 -0
  76. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/README.md +0 -0
  77. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/__init__.py +0 -0
  78. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/base.py +0 -0
  79. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/carv.webp +0 -0
  80. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/fetch_news.py +0 -0
  81. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/onchain_query.py +0 -0
  82. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/schema.json +0 -0
  83. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/carv/token_info_and_price.py +0 -0
  84. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/README.md +0 -0
  85. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/__init__.py +0 -0
  86. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/base.py +0 -0
  87. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/casino.png +0 -0
  88. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/deck_draw.py +0 -0
  89. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/deck_shuffle.py +0 -0
  90. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/dice_roll.py +0 -0
  91. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/schema.json +0 -0
  92. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/casino/utils.py +0 -0
  93. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cdp/__init__.py +0 -0
  94. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cdp/base.py +0 -0
  95. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cdp/cdp.png +0 -0
  96. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cdp/schema.json +0 -0
  97. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/README.md +0 -0
  98. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/__init__.py +0 -0
  99. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/base.py +0 -0
  100. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/chain_lookup.py +0 -0
  101. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/chainlist.png +0 -0
  102. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/chainlist/schema.json +0 -0
  103. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/common/__init__.py +0 -0
  104. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/common/base.py +0 -0
  105. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/common/common.jpg +0 -0
  106. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/common/current_time.py +0 -0
  107. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/common/schema.json +0 -0
  108. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/README.md +0 -0
  109. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/__init__.py +0 -0
  110. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/base.py +0 -0
  111. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/constants.py +0 -0
  112. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/cookiefun.png +0 -0
  113. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/get_account_details.py +0 -0
  114. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
  115. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
  116. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/get_sectors.py +0 -0
  117. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/schema.json +0 -0
  118. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cookiefun/search_accounts.py +0 -0
  119. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/__init__.py +0 -0
  120. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/api.py +0 -0
  121. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/base.py +0 -0
  122. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
  123. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
  124. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
  125. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  126. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  127. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
  128. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
  129. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptocompare/schema.json +0 -0
  130. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/__init__.py +0 -0
  131. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/base.py +0 -0
  132. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
  133. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
  134. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  135. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/cryptopanic/schema.json +0 -0
  136. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/README.md +0 -0
  137. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/__init__.py +0 -0
  138. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/base.py +0 -0
  139. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
  140. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
  141. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dapplooker/schema.json +0 -0
  142. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/__init__.py +0 -0
  143. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/api.py +0 -0
  144. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/base.py +0 -0
  145. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/__init__.py +0 -0
  146. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  147. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
  148. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
  149. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
  150. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
  151. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
  152. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
  153. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/config/__init__.py +0 -0
  154. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/config/chains.py +0 -0
  155. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/defillama.jpeg +0 -0
  156. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/fees/__init__.py +0 -0
  157. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
  158. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/schema.json +0 -0
  159. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
  160. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  161. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  162. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  163. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  164. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tests/__init__.py +0 -0
  165. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
  166. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
  167. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/__init__.py +0 -0
  168. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  169. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
  170. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  171. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_protocol.py +0 -0
  172. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  173. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
  174. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/volumes/__init__.py +0 -0
  175. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  176. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  177. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
  178. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/yields/__init__.py +0 -0
  179. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
  180. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
  181. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/README.md +0 -0
  182. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/__init__.py +0 -0
  183. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/base.py +0 -0
  184. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/dexscreener.png +0 -0
  185. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/get_pair_info.py +0 -0
  186. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/get_token_pairs.py +0 -0
  187. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/get_tokens_info.py +0 -0
  188. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/model/__init__.py +0 -0
  189. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
  190. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/schema.json +0 -0
  191. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/search_token.py +0 -0
  192. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dexscreener/utils.py +0 -0
  193. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/__init__.py +0 -0
  194. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/base.py +0 -0
  195. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/dune.png +0 -0
  196. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/fetch_kol_buys.py +0 -0
  197. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  198. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/dune_analytics/schema.json +0 -0
  199. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/README.md +0 -0
  200. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/__init__.py +0 -0
  201. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/base.py +0 -0
  202. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/elfa.jpg +0 -0
  203. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/mention.py +0 -0
  204. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/schema.json +0 -0
  205. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/stats.py +0 -0
  206. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/tokens.py +0 -0
  207. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/elfa/utils.py +0 -0
  208. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/README.md +0 -0
  209. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/__init__.py +0 -0
  210. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/abi/__init__.py +0 -0
  211. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/abi/approval.py +0 -0
  212. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/abi/erc20.py +0 -0
  213. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/abi/route.py +0 -0
  214. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/base.py +0 -0
  215. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/best_yield.py +0 -0
  216. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/enso.jpg +0 -0
  217. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/networks.py +0 -0
  218. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/prices.py +0 -0
  219. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/route.py +0 -0
  220. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/schema.json +0 -0
  221. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/tokens.py +0 -0
  222. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/enso/wallet.py +0 -0
  223. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc20/__init__.py +0 -0
  224. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc20/base.py +0 -0
  225. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc20/erc20.svg +0 -0
  226. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc20/schema.json +0 -0
  227. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc721/__init__.py +0 -0
  228. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc721/base.py +0 -0
  229. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc721/erc721.svg +0 -0
  230. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/erc721/schema.json +0 -0
  231. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/README.md +0 -0
  232. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/__init__.py +0 -0
  233. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/base.py +0 -0
  234. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/clear.py +0 -0
  235. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/crawl.py +0 -0
  236. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/firecrawl.png +0 -0
  237. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/query.py +0 -0
  238. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/schema.json +0 -0
  239. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/scrape.py +0 -0
  240. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/firecrawl/utils.py +0 -0
  241. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/README.md +0 -0
  242. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/__init__.py +0 -0
  243. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/base.py +0 -0
  244. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/github.jpg +0 -0
  245. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/github_search.py +0 -0
  246. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/github/schema.json +0 -0
  247. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/__init__.py +0 -0
  248. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/base.py +0 -0
  249. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/heurist.png +0 -0
  250. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_animagine_xl.py +0 -0
  251. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_arthemy_comics.py +0 -0
  252. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_arthemy_real.py +0 -0
  253. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_braindance.py +0 -0
  254. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  255. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_flux_1_dev.py +0 -0
  256. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/image_generation_sdxl.py +0 -0
  257. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/heurist/schema.json +0 -0
  258. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/README.md +0 -0
  259. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/__init__.py +0 -0
  260. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/base.py +0 -0
  261. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/get.py +0 -0
  262. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/http.svg +0 -0
  263. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/post.py +0 -0
  264. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/put.py +0 -0
  265. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/http/schema.json +0 -0
  266. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/README.md +0 -0
  267. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/__init__.py +0 -0
  268. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/lifi.png +0 -0
  269. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/schema.json +0 -0
  270. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/token_quote.py +0 -0
  271. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/lifi/utils.py +0 -0
  272. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/README.md +0 -0
  273. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/__init__.py +0 -0
  274. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/api.py +0 -0
  275. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/base.py +0 -0
  276. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
  277. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/fetch_nft_portfolio.py +0 -0
  278. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/fetch_solana_portfolio.py +0 -0
  279. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/fetch_wallet_portfolio.py +0 -0
  280. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/moralis.png +0 -0
  281. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/moralis/schema.json +0 -0
  282. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/morpho/__init__.py +0 -0
  283. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/morpho/base.py +0 -0
  284. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/morpho/morpho.svg +0 -0
  285. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/morpho/schema.json +0 -0
  286. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/nation/__init__.py +0 -0
  287. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/nation/base.py +0 -0
  288. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/nation/nation.png +0 -0
  289. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/nation/nft_check.py +0 -0
  290. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/nation/schema.json +0 -0
  291. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/__init__.py +0 -0
  292. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/base.py +0 -0
  293. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/dalle_image_generation.py +0 -0
  294. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/gpt_avatar_generator.py +0 -0
  295. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/gpt_image_generation.py +0 -0
  296. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/gpt_image_mini_generator.py +0 -0
  297. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/gpt_image_to_image.py +0 -0
  298. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/image_to_text.py +0 -0
  299. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/openai.png +0 -0
  300. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/openai/schema.json +0 -0
  301. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/README.md +0 -0
  302. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/__init__.py +0 -0
  303. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/base.py +0 -0
  304. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/constants.py +0 -0
  305. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/moralis.png +0 -0
  306. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/schema.json +0 -0
  307. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/token_balances.py +0 -0
  308. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
  309. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
  310. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_history.py +0 -0
  311. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
  312. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
  313. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
  314. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
  315. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_stats.py +0 -0
  316. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
  317. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/pyth/__init__.py +0 -0
  318. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/pyth/base.py +0 -0
  319. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/pyth/pyth.svg +0 -0
  320. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/pyth/schema.json +0 -0
  321. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/skills.toml +0 -0
  322. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/__init__.py +0 -0
  323. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/base.py +0 -0
  324. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/get_channel.py +0 -0
  325. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/get_message.py +0 -0
  326. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/schedule_message.py +0 -0
  327. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/schema.json +0 -0
  328. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/send_message.py +0 -0
  329. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/slack/slack.jpg +0 -0
  330. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/__init__.py +0 -0
  331. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/base.py +0 -0
  332. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/delete_data.py +0 -0
  333. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/fetch_data.py +0 -0
  334. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/insert_data.py +0 -0
  335. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/invoke_function.py +0 -0
  336. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/schema.json +0 -0
  337. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/supabase.svg +0 -0
  338. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/update_data.py +0 -0
  339. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/supabase/upsert_data.py +0 -0
  340. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/superfluid/__init__.py +0 -0
  341. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/superfluid/base.py +0 -0
  342. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/superfluid/schema.json +0 -0
  343. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/superfluid/superfluid.svg +0 -0
  344. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/__init__.py +0 -0
  345. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/add_autonomous_task.py +0 -0
  346. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/base.py +0 -0
  347. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/delete_autonomous_task.py +0 -0
  348. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/edit_autonomous_task.py +0 -0
  349. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/list_autonomous_tasks.py +0 -0
  350. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/read_agent_api_key.py +0 -0
  351. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/regenerate_agent_api_key.py +0 -0
  352. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/schema.json +0 -0
  353. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/system/system.svg +0 -0
  354. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/README.md +0 -0
  355. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/__init__.py +0 -0
  356. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/base.py +0 -0
  357. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/schema.json +0 -0
  358. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/tavily.jpg +0 -0
  359. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/tavily_extract.py +0 -0
  360. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/tavily/tavily_search.py +0 -0
  361. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/README.md +0 -0
  362. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/__init__.py +0 -0
  363. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/base.py +0 -0
  364. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/constants.py +0 -0
  365. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/erc20_transfers.py +0 -0
  366. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/moralis.png +0 -0
  367. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/schema.json +0 -0
  368. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/token_analytics.py +0 -0
  369. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/token_price.py +0 -0
  370. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/token/token_search.py +0 -0
  371. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/__init__.py +0 -0
  372. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/base.py +0 -0
  373. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/follow_user.py +0 -0
  374. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/get_mentions.py +0 -0
  375. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/get_timeline.py +0 -0
  376. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/get_user_by_username.py +0 -0
  377. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/get_user_tweets.py +0 -0
  378. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/like_tweet.py +0 -0
  379. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/post_tweet.py +0 -0
  380. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/reply_tweet.py +0 -0
  381. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/retweet.py +0 -0
  382. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/schema.json +0 -0
  383. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/search_tweets.py +0 -0
  384. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/twitter/twitter.png +0 -0
  385. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/unrealspeech/__init__.py +0 -0
  386. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/unrealspeech/base.py +0 -0
  387. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/unrealspeech/schema.json +0 -0
  388. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
  389. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
  390. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/__init__.py +0 -0
  391. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/base.py +0 -0
  392. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/input.py +0 -0
  393. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/schema.json +0 -0
  394. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/venice_audio.py +0 -0
  395. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
  396. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/README.md +0 -0
  397. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/__init__.py +0 -0
  398. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/api.py +0 -0
  399. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/base.py +0 -0
  400. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/config.py +0 -0
  401. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
  402. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
  403. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_enhance/image_enhance.py +0 -0
  404. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  405. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  406. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/README.md +0 -0
  407. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
  408. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_base.py +0 -0
  409. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  410. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  411. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  412. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
  413. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  414. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  415. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  416. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  417. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
  418. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
  419. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_upscale/image_upscale.py +0 -0
  420. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  421. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  422. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_vision/README.md +0 -0
  423. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
  424. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
  425. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
  426. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
  427. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/schema.json +0 -0
  428. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/utils.py +0 -0
  429. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/venice_image/venice_image.jpg +0 -0
  430. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/README.md +0 -0
  431. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/__init__.py +0 -0
  432. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/base.py +0 -0
  433. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/document_indexer.py +0 -0
  434. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/langchain.png +0 -0
  435. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/schema.json +0 -0
  436. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
  437. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/utils.py +0 -0
  438. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/web_scraper/website_indexer.py +0 -0
  439. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/weth/__init__.py +0 -0
  440. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/weth/base.py +0 -0
  441. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/weth/schema.json +0 -0
  442. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/weth/weth.svg +0 -0
  443. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/wow/__init__.py +0 -0
  444. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/wow/base.py +0 -0
  445. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/wow/schema.json +0 -0
  446. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/wow/wow.svg +0 -0
  447. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/__init__.py +0 -0
  448. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/ask_agent.py +0 -0
  449. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/base.py +0 -0
  450. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/http_request.py +0 -0
  451. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/schema.json +0 -0
  452. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/x402/x402.webp +0 -0
  453. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/README.md +0 -0
  454. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/__init__.py +0 -0
  455. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/base.py +0 -0
  456. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/price.py +0 -0
  457. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/schema.json +0 -0
  458. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/swap.py +0 -0
  459. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/transfer.py +0 -0
  460. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/skills/xmtp/xmtp.png +0 -0
  461. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/__init__.py +0 -0
  462. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/chain.py +0 -0
  463. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/ens.py +0 -0
  464. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/error.py +0 -0
  465. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/logging.py +0 -0
  466. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/random.py +0 -0
  467. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/s3.py +0 -0
  468. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/schema.py +0 -0
  469. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/slack_alert.py +0 -0
  470. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/utils/tx.py +0 -0
  471. {intentkit-0.8.32.dev1 → intentkit-0.8.33.dev1}/intentkit/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.8.32.dev1
3
+ Version: 0.8.33.dev1
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
6
6
  Project-URL: Repository, https://github.com/crestalnetwork/intentkit
@@ -3,7 +3,7 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.8.32-dev1"
6
+ __version__ = "0.8.33-dev1"
7
7
  __author__ = "Ruihua"
8
8
  __email__ = "ruihua@crestal.network"
9
9
 
@@ -1,4 +1,9 @@
1
- from intentkit.clients.cdp import get_cdp_client, get_evm_account, get_wallet_provider
1
+ from intentkit.clients.cdp import (
2
+ get_cdp_client,
3
+ get_cdp_network,
4
+ get_evm_account,
5
+ get_wallet_provider,
6
+ )
2
7
  from intentkit.clients.twitter import (
3
8
  TwitterClient,
4
9
  TwitterClientConfig,
@@ -13,5 +18,6 @@ __all__ = [
13
18
  "get_evm_account",
14
19
  "get_cdp_client",
15
20
  "get_wallet_provider",
21
+ "get_cdp_network",
16
22
  "get_web3_client",
17
23
  ]
@@ -83,6 +83,33 @@ async def get_evm_account(agent: Agent) -> EvmServerAccount:
83
83
  return account
84
84
 
85
85
 
86
+ def get_cdp_network(agent: Agent) -> str:
87
+ if not agent.network_id:
88
+ raise IntentKitAPIError(
89
+ 400,
90
+ "BadNetworkID",
91
+ "Your agent network ID is not set. Please set it in the agent config.",
92
+ )
93
+ mapping = {
94
+ "ethereum-mainnet": "ethereum",
95
+ "base-mainnet": "base",
96
+ "arbitrum-mainnet": "arbitrum",
97
+ "optimism-mainnet": "optimism",
98
+ "polygon-mainnet": "polygon",
99
+ "base-sepolia": "base-sepolia",
100
+ }
101
+ if agent.network_id == "solana":
102
+ raise IntentKitAPIError(
103
+ 400, "BadNetworkID", "Solana is not supported by CDP EVM."
104
+ )
105
+ cdp_network = mapping.get(agent.network_id)
106
+ if not cdp_network:
107
+ raise IntentKitAPIError(
108
+ 400, "BadNetworkID", f"Unsupported network ID: {agent.network_id}"
109
+ )
110
+ return cdp_network
111
+
112
+
86
113
  async def get_wallet_provider(agent: Agent) -> CdpEvmWalletProvider:
87
114
  _assert_cdp_wallet_provider(agent)
88
115
  if not agent.network_id:
@@ -1,9 +1,9 @@
1
1
  from pydantic import BaseModel, Field
2
2
 
3
- from intentkit.skills.base import IntentKitSkill
3
+ from intentkit.skills.onchain import IntentKitOnChainSkill
4
4
 
5
5
 
6
- class LiFiBaseTool(IntentKitSkill):
6
+ class LiFiBaseTool(IntentKitOnChainSkill):
7
7
  """Base class for LiFi tools."""
8
8
 
9
9
  name: str = Field(description="The name of the tool")
@@ -2,12 +2,11 @@ import asyncio
2
2
  from typing import Any
3
3
 
4
4
  import httpx
5
- from coinbase_agentkit import CdpEvmWalletProvider
5
+ from cdp import EvmServerAccount, TransactionRequestEIP1559
6
6
  from pydantic import BaseModel, Field
7
7
  from web3 import Web3
8
+ from web3.exceptions import TimeExhausted
8
9
 
9
- from intentkit.clients import get_wallet_provider as get_agent_wallet_provider
10
- from intentkit.models.agent import Agent
11
10
  from intentkit.skills.lifi.base import LiFiBaseTool
12
11
  from intentkit.skills.lifi.token_quote import TokenQuote
13
12
  from intentkit.skills.lifi.utils import (
@@ -23,6 +22,7 @@ from intentkit.skills.lifi.utils import (
23
22
  prepare_transaction_params,
24
23
  validate_inputs,
25
24
  )
25
+ from intentkit.utils.error import IntentKitAPIError
26
26
 
27
27
 
28
28
  class TokenExecuteInput(BaseModel):
@@ -52,7 +52,7 @@ class TokenExecuteInput(BaseModel):
52
52
  class TokenExecute(LiFiBaseTool):
53
53
  """Tool for executing token transfers across chains using LiFi.
54
54
 
55
- This tool executes actual token transfers and swaps using the CDP wallet provider.
55
+ This tool executes actual token transfers and swaps using the CDP EVM account.
56
56
  Requires a properly configured CDP wallet to work.
57
57
  """
58
58
 
@@ -129,21 +129,35 @@ class TokenExecute(LiFiBaseTool):
129
129
  # Get agent context for CDP wallet
130
130
  context = self.get_context()
131
131
  agent = context.agent
132
+ network_id = agent.network_id
133
+ if not network_id:
134
+ return "Agent network ID is not configured. Please set it before executing on-chain transactions."
135
+
136
+ try:
137
+ cdp_network = self.get_cdp_network()
138
+ except Exception as e:
139
+ self.logger.error("LiFi_CDP_Network_Error: %s", str(e))
140
+ return f"Invalid agent network for CDP: {str(e)}"
132
141
 
133
142
  self.logger.info(
134
143
  f"Executing LiFi transfer: {from_amount} {from_token} on {from_chain} -> {to_token} on {to_chain}"
135
144
  )
136
145
 
137
- # Get CDP wallet provider
138
- cdp_wallet_provider = await self._get_cdp_wallet_provider(agent)
139
- if isinstance(cdp_wallet_provider, str): # Error message
140
- return cdp_wallet_provider
146
+ # Get CDP EVM account and web3 client
147
+ evm_account = await self._get_evm_account()
148
+ if isinstance(evm_account, str): # Error message
149
+ return evm_account
141
150
 
142
- # Get wallet address
143
- from_address = cdp_wallet_provider.get_address()
151
+ from_address = evm_account.address
144
152
  if not from_address:
145
153
  return "No wallet address available. Please check your CDP wallet configuration."
146
154
 
155
+ try:
156
+ web3 = self.web3_client()
157
+ except Exception as e:
158
+ self.logger.error("LiFi_Web3_Error: %s", str(e))
159
+ return "Unable to initialize Web3 client. Please verify the agent's network configuration."
160
+
147
161
  # Get quote and execute transfer
148
162
  async with httpx.AsyncClient() as client:
149
163
  # Step 1: Get quote
@@ -162,16 +176,22 @@ class TokenExecute(LiFiBaseTool):
162
176
 
163
177
  # Step 2: Handle token approval if needed
164
178
  approval_result = await self._handle_token_approval(
165
- cdp_wallet_provider, quote_data
179
+ evm_account,
180
+ quote_data,
181
+ web3,
182
+ cdp_network,
183
+ from_address,
166
184
  )
167
185
  if approval_result:
168
186
  self.logger.info(f"Token approval completed: {approval_result}")
169
187
 
170
188
  # Step 3: Execute transaction
171
189
  tx_hash = await self._execute_transfer_transaction(
172
- cdp_wallet_provider,
190
+ evm_account,
173
191
  quote_data,
174
192
  from_address,
193
+ cdp_network,
194
+ web3,
175
195
  )
176
196
 
177
197
  # Step 4: Monitor status and return result
@@ -183,17 +203,18 @@ class TokenExecute(LiFiBaseTool):
183
203
  self.logger.error("LiFi_Error: %s", str(e))
184
204
  return f"An unexpected error occurred: {str(e)}"
185
205
 
186
- async def _get_cdp_wallet_provider(
187
- self, agent: Agent
188
- ) -> CdpEvmWalletProvider | str:
189
- """Get CDP wallet provider with error handling."""
206
+ async def _get_evm_account(self) -> EvmServerAccount | str:
207
+ """Get CDP EVM account with error handling."""
190
208
  try:
191
- cdp_wallet_provider = await get_agent_wallet_provider(agent)
192
- if not cdp_wallet_provider:
193
- return "CDP wallet provider not configured. Please set up your agent's CDP wallet first."
209
+ evm_account = await self.get_evm_account()
210
+ if not evm_account:
211
+ return "CDP wallet account not configured. Please set up your agent's CDP wallet first."
194
212
 
195
- return cdp_wallet_provider
213
+ return evm_account
196
214
 
215
+ except IntentKitAPIError as e:
216
+ self.logger.error("LiFi_CDP_Error: %s", str(e))
217
+ return f"Cannot access CDP wallet: {str(e)}\n\nPlease ensure your agent has a properly configured CDP wallet with sufficient funds."
197
218
  except Exception as e:
198
219
  self.logger.error("LiFi_CDP_Error: %s", str(e))
199
220
  return f"Cannot access CDP wallet: {str(e)}\n\nPlease ensure your agent has a properly configured CDP wallet with sufficient funds."
@@ -250,7 +271,12 @@ class TokenExecute(LiFiBaseTool):
250
271
  return data
251
272
 
252
273
  async def _handle_token_approval(
253
- self, wallet_provider: CdpEvmWalletProvider, quote_data: dict[str, Any]
274
+ self,
275
+ evm_account: EvmServerAccount,
276
+ quote_data: dict[str, Any],
277
+ web3: Web3,
278
+ network_id: str,
279
+ wallet_address: str,
254
280
  ) -> str | None:
255
281
  """Handle ERC20 token approval if needed."""
256
282
  estimate = quote_data.get("estimate", {})
@@ -267,7 +293,13 @@ class TokenExecute(LiFiBaseTool):
267
293
 
268
294
  try:
269
295
  return await self._check_and_set_allowance(
270
- wallet_provider, from_token_address, approval_address, from_amount
296
+ evm_account,
297
+ from_token_address,
298
+ approval_address,
299
+ from_amount,
300
+ web3,
301
+ network_id,
302
+ wallet_address,
271
303
  )
272
304
  except Exception as e:
273
305
  self.logger.error("LiFi_Token_Approval_Error: %s", str(e))
@@ -275,9 +307,11 @@ class TokenExecute(LiFiBaseTool):
275
307
 
276
308
  async def _execute_transfer_transaction(
277
309
  self,
278
- wallet_provider: CdpEvmWalletProvider,
310
+ evm_account: EvmServerAccount,
279
311
  quote_data: dict[str, Any],
280
312
  from_address: str,
313
+ network_id: str,
314
+ web3: Web3,
281
315
  ) -> str:
282
316
  """Execute the main transfer transaction."""
283
317
  transaction_request = quote_data.get("transactionRequest")
@@ -286,16 +320,17 @@ class TokenExecute(LiFiBaseTool):
286
320
  tx_params = prepare_transaction_params(
287
321
  transaction_request, wallet_address=from_address
288
322
  )
323
+ tx_request = self._build_transaction_request(tx_params)
289
324
  self.logger.info(
290
- f"Sending transaction to {tx_params['to']} with value {tx_params['value']}"
325
+ f"Sending transaction to {tx_params['to']} with value {tx_params.get('value', 0)}"
291
326
  )
292
327
 
293
328
  # Send transaction
294
- tx_hash = wallet_provider.send_transaction(tx_params)
329
+ tx_hash = await evm_account.send_transaction(tx_request, network=network_id)
295
330
 
296
331
  # Wait for confirmation
297
- receipt = wallet_provider.wait_for_transaction_receipt(tx_hash)
298
- if not receipt or receipt.get("status") == 0:
332
+ receipt = await self._wait_for_receipt(web3, tx_hash)
333
+ if not receipt or receipt.get("status") != 1:
299
334
  raise Exception(f"Transaction failed: {tx_hash}")
300
335
 
301
336
  return tx_hash
@@ -304,6 +339,52 @@ class TokenExecute(LiFiBaseTool):
304
339
  self.logger.error("LiFi_Execution_Error: %s", str(e))
305
340
  raise Exception(f"Failed to execute transaction: {str(e)}")
306
341
 
342
+ def _build_transaction_request(
343
+ self, tx_params: dict[str, Any]
344
+ ) -> TransactionRequestEIP1559:
345
+ """Convert prepared transaction parameters to an EIP-1559 request."""
346
+ request_kwargs: dict[str, Any] = {
347
+ "to": Web3.to_checksum_address(tx_params["to"]),
348
+ "data": tx_params.get("data", "0x"),
349
+ }
350
+
351
+ for key in ("value", "gas", "maxPriorityFeePerGas", "nonce", "chainId"):
352
+ value = tx_params.get(key)
353
+ if value is not None:
354
+ request_kwargs[key] = value
355
+
356
+ max_fee_per_gas = tx_params.get("maxFeePerGas") or tx_params.get("gasPrice")
357
+ if max_fee_per_gas is not None:
358
+ request_kwargs["maxFeePerGas"] = max_fee_per_gas
359
+
360
+ return TransactionRequestEIP1559(**request_kwargs)
361
+
362
+ async def _wait_for_receipt(
363
+ self, web3: Web3, tx_hash: str
364
+ ) -> dict[str, Any] | None:
365
+ """Wait for a transaction receipt using Web3 in a non-blocking way."""
366
+
367
+ try:
368
+ receipt = await asyncio.to_thread(
369
+ web3.eth.wait_for_transaction_receipt, tx_hash
370
+ )
371
+ except TimeExhausted as exc:
372
+ self.logger.error("LiFi_Execution_Error: %s", str(exc))
373
+ raise Exception(
374
+ f"Transaction not confirmed before timeout: {tx_hash}"
375
+ ) from exc
376
+ except Exception as exc:
377
+ self.logger.error("LiFi_Execution_Error: %s", str(exc))
378
+ raise
379
+
380
+ if receipt is None:
381
+ return None
382
+
383
+ if isinstance(receipt, dict):
384
+ return receipt
385
+
386
+ return dict(receipt)
387
+
307
388
  async def _finalize_transfer(
308
389
  self,
309
390
  client: httpx.AsyncClient,
@@ -413,25 +494,27 @@ class TokenExecute(LiFiBaseTool):
413
494
 
414
495
  async def _check_and_set_allowance(
415
496
  self,
416
- wallet_provider: CdpEvmWalletProvider,
497
+ evm_account: EvmServerAccount,
417
498
  token_address: str,
418
499
  approval_address: str,
419
500
  amount: str,
501
+ web3: Web3,
502
+ network_id: str,
503
+ wallet_address: str,
420
504
  ) -> str | None:
421
505
  """Check if token allowance is sufficient and set approval if needed."""
422
506
  try:
423
507
  # Normalize addresses
424
508
  token_address = Web3.to_checksum_address(token_address)
425
509
  approval_address = Web3.to_checksum_address(approval_address)
426
- wallet_address = wallet_provider.get_address()
510
+ wallet_checksum = Web3.to_checksum_address(wallet_address)
511
+
512
+ contract = web3.eth.contract(address=token_address, abi=ERC20_ABI)
427
513
 
428
514
  # Check current allowance
429
515
  try:
430
- current_allowance = wallet_provider.read_contract(
431
- contract_address=token_address,
432
- abi=ERC20_ABI,
433
- function_name="allowance",
434
- args=[wallet_address, approval_address],
516
+ current_allowance = await asyncio.to_thread(
517
+ contract.functions.allowance(wallet_checksum, approval_address).call
435
518
  )
436
519
 
437
520
  required_amount = int(amount)
@@ -453,20 +536,21 @@ class TokenExecute(LiFiBaseTool):
453
536
 
454
537
  # Create approval transaction
455
538
  approve_data = create_erc20_approve_data(approval_address, amount)
539
+ approval_request = TransactionRequestEIP1559(
540
+ to=token_address,
541
+ data=approve_data,
542
+ value=0,
543
+ )
456
544
 
457
545
  # Send approval transaction
458
- approval_tx_hash = wallet_provider.send_transaction(
459
- {
460
- "to": token_address,
461
- "data": approve_data,
462
- "value": 0,
463
- }
546
+ approval_tx_hash = await evm_account.send_transaction(
547
+ approval_request, network=network_id
464
548
  )
465
549
 
466
550
  # Wait for approval transaction confirmation
467
- receipt = wallet_provider.wait_for_transaction_receipt(approval_tx_hash)
551
+ receipt = await self._wait_for_receipt(web3, approval_tx_hash)
468
552
 
469
- if not receipt or receipt.get("status") == 0:
553
+ if not receipt or receipt.get("status") != 1:
470
554
  raise Exception(f"Approval transaction failed: {approval_tx_hash}")
471
555
 
472
556
  return approval_tx_hash
@@ -1,6 +1,7 @@
1
1
  from cdp import EvmServerAccount
2
2
  from web3 import Web3
3
3
 
4
+ from intentkit.clients import get_cdp_network as resolve_cdp_network
4
5
  from intentkit.clients import get_evm_account as fetch_evm_account
5
6
  from intentkit.clients.web3 import get_web3_client
6
7
  from intentkit.skills.base import IntentKitSkill
@@ -21,3 +22,9 @@ class IntentKitOnChainSkill(IntentKitSkill):
21
22
  context = self.get_context()
22
23
  agent = context.agent
23
24
  return await fetch_evm_account(agent)
25
+
26
+ def get_cdp_network(self) -> str:
27
+ """Get CDP network mapped from the agent's network id."""
28
+ context = self.get_context()
29
+ agent = context.agent
30
+ return resolve_cdp_network(agent)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.8.32-dev1"
3
+ version = "0.8.33-dev1"
4
4
  description = "Intent-based AI Agent Platform - Core Package"
5
5
  authors = [
6
6
  { name = "Ruihua", email = "ruihua@crestal.network" },
File without changes