intentkit 0.6.0.dev16__tar.gz → 0.6.0.dev18__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.

Potentially problematic release.


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

Files changed (399) hide show
  1. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/PKG-INFO +1 -1
  2. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/__init__.py +1 -1
  3. intentkit-0.6.0.dev18/clients/cdp.py +151 -0
  4. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/prompt.py +5 -6
  5. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/agent.py +1 -8
  6. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/agent_data.py +18 -0
  7. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/pyproject.toml +1 -1
  8. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cdp/__init__.py +0 -5
  9. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cdp/get_balance.py +44 -20
  10. intentkit-0.6.0.dev16/clients/cdp.py +0 -92
  11. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/.gitignore +0 -0
  12. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/LICENSE +0 -0
  13. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/MANIFEST.in +0 -0
  14. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/README.md +0 -0
  15. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/__init__.py +0 -0
  16. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/agent.py +0 -0
  17. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/api.py +0 -0
  18. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/engine.py +0 -0
  19. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/exception.py +0 -0
  20. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/graph.py +0 -0
  21. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/skill.py +0 -0
  22. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/abstracts/twitter.py +0 -0
  23. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/clients/__init__.py +0 -0
  24. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/clients/twitter.py +0 -0
  25. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/config/__init__.py +0 -0
  26. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/config/config.py +0 -0
  27. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/__init__.py +0 -0
  28. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/agent.py +0 -0
  29. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/api.py +0 -0
  30. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/client.py +0 -0
  31. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/credit.py +0 -0
  32. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/engine.py +0 -0
  33. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/node.py +0 -0
  34. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/core/skill.py +0 -0
  35. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/agent_schema.json +0 -0
  36. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/app_setting.py +0 -0
  37. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/base.py +0 -0
  38. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/chat.py +0 -0
  39. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/conversation.py +0 -0
  40. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/credit.py +0 -0
  41. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/db.py +0 -0
  42. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/db_mig.py +0 -0
  43. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/generator.py +0 -0
  44. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/llm.py +0 -0
  45. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/redis.py +0 -0
  46. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/skill.py +0 -0
  47. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/models/user.py +0 -0
  48. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/__init__.py +0 -0
  49. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/acolyt/__init__.py +0 -0
  50. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/acolyt/acolyt.jpg +0 -0
  51. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/acolyt/ask.py +0 -0
  52. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/acolyt/base.py +0 -0
  53. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/acolyt/schema.json +0 -0
  54. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/README.md +0 -0
  55. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/__init__.py +0 -0
  56. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/aixbt.jpg +0 -0
  57. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/base.py +0 -0
  58. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/projects.py +0 -0
  59. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/aixbt/schema.json +0 -0
  60. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/allora/__init__.py +0 -0
  61. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/allora/allora.jpeg +0 -0
  62. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/allora/base.py +0 -0
  63. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/allora/price.py +0 -0
  64. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/allora/schema.json +0 -0
  65. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/base.py +0 -0
  66. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/README.md +0 -0
  67. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/__init__.py +0 -0
  68. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/base.py +0 -0
  69. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/carv.webp +0 -0
  70. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/fetch_news.py +0 -0
  71. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/onchain_query.py +0 -0
  72. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/schema.json +0 -0
  73. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/carv/token_info_and_price.py +0 -0
  74. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cdp/base.py +0 -0
  75. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cdp/cdp.png +0 -0
  76. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cdp/schema.json +0 -0
  77. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/README.md +0 -0
  78. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/__init__.py +0 -0
  79. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/base.py +0 -0
  80. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/chain_lookup.py +0 -0
  81. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/chainlist.png +0 -0
  82. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/chainlist/schema.json +0 -0
  83. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/common/__init__.py +0 -0
  84. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/common/base.py +0 -0
  85. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/common/common.jpg +0 -0
  86. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/common/current_time.py +0 -0
  87. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/common/schema.json +0 -0
  88. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/README.md +0 -0
  89. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/__init__.py +0 -0
  90. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/base.py +0 -0
  91. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/constants.py +0 -0
  92. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/cookiefun.png +0 -0
  93. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/get_account_details.py +0 -0
  94. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/get_account_feed.py +0 -0
  95. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/get_account_smart_followers.py +0 -0
  96. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/get_sectors.py +0 -0
  97. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/schema.json +0 -0
  98. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cookiefun/search_accounts.py +0 -0
  99. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/__init__.py +0 -0
  100. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/api.py +0 -0
  101. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/base.py +0 -0
  102. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/cryptocompare.png +0 -0
  103. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_news.py +0 -0
  104. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_price.py +0 -0
  105. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  106. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  107. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_top_volume.py +0 -0
  108. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  109. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptocompare/schema.json +0 -0
  110. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/__init__.py +0 -0
  111. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/base.py +0 -0
  112. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/cryptopanic.png +0 -0
  113. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  114. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  115. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/cryptopanic/schema.json +0 -0
  116. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/README.md +0 -0
  117. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/__init__.py +0 -0
  118. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/base.py +0 -0
  119. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/dapplooker.jpg +0 -0
  120. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/dapplooker_token_data.py +0 -0
  121. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dapplooker/schema.json +0 -0
  122. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/__init__.py +0 -0
  123. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/api.py +0 -0
  124. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/base.py +0 -0
  125. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/__init__.py +0 -0
  126. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  127. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_block.py +0 -0
  128. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_current_prices.py +0 -0
  129. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_first_price.py +0 -0
  130. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  131. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_price_chart.py +0 -0
  132. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  133. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/config/__init__.py +0 -0
  134. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/config/chains.py +0 -0
  135. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/defillama.jpeg +0 -0
  136. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/fees/__init__.py +0 -0
  137. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  138. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/schema.json +0 -0
  139. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/stablecoins/__init__.py +0 -0
  140. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  141. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  142. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  143. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  144. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tests/__init__.py +0 -0
  145. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tests/api_integration.test.py +0 -0
  146. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tests/api_unit.test.py +0 -0
  147. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/__init__.py +0 -0
  148. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  149. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_chains.py +0 -0
  150. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  151. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_protocol.py +0 -0
  152. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  153. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/tvl/fetch_protocols.py +0 -0
  154. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/volumes/__init__.py +0 -0
  155. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  156. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  157. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  158. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/yields/__init__.py +0 -0
  159. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  160. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/defillama/yields/fetch_pools.py +0 -0
  161. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/__init__.py +0 -0
  162. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/base.py +0 -0
  163. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/dexscreener.png +0 -0
  164. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/model/__init__.py +0 -0
  165. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/model/search_token_response.py +0 -0
  166. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/schema.json +0 -0
  167. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dexscreener/search_token.py +0 -0
  168. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/__init__.py +0 -0
  169. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/base.py +0 -0
  170. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/dune.png +0 -0
  171. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  172. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  173. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/dune_analytics/schema.json +0 -0
  174. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/README.md +0 -0
  175. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/__init__.py +0 -0
  176. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/base.py +0 -0
  177. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/elfa.jpg +0 -0
  178. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/mention.py +0 -0
  179. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/schema.json +0 -0
  180. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/stats.py +0 -0
  181. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/elfa/tokens.py +0 -0
  182. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/README.md +0 -0
  183. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/__init__.py +0 -0
  184. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/abi/__init__.py +0 -0
  185. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/abi/approval.py +0 -0
  186. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/abi/erc20.py +0 -0
  187. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/abi/route.py +0 -0
  188. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/base.py +0 -0
  189. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/best_yield.py +0 -0
  190. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/enso.jpg +0 -0
  191. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/networks.py +0 -0
  192. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/prices.py +0 -0
  193. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/route.py +0 -0
  194. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/schema.json +0 -0
  195. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/tokens.py +0 -0
  196. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/enso/wallet.py +0 -0
  197. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/README.md +0 -0
  198. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/__init__.py +0 -0
  199. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/base.py +0 -0
  200. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/clear.py +0 -0
  201. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/crawl.py +0 -0
  202. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/firecrawl.png +0 -0
  203. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/query.py +0 -0
  204. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/schema.json +0 -0
  205. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/scrape.py +0 -0
  206. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/firecrawl/utils.py +0 -0
  207. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/README.md +0 -0
  208. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/__init__.py +0 -0
  209. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/base.py +0 -0
  210. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/github.jpg +0 -0
  211. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/github_search.py +0 -0
  212. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/github/schema.json +0 -0
  213. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/__init__.py +0 -0
  214. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/base.py +0 -0
  215. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/heurist.png +0 -0
  216. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_animagine_xl.py +0 -0
  217. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_arthemy_comics.py +0 -0
  218. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_arthemy_real.py +0 -0
  219. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_braindance.py +0 -0
  220. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  221. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_flux_1_dev.py +0 -0
  222. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/image_generation_sdxl.py +0 -0
  223. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/heurist/schema.json +0 -0
  224. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/README.md +0 -0
  225. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/__init__.py +0 -0
  226. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/base.py +0 -0
  227. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/get.py +0 -0
  228. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/http.svg +0 -0
  229. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/post.py +0 -0
  230. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/put.py +0 -0
  231. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/http/schema.json +0 -0
  232. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/README.md +0 -0
  233. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/__init__.py +0 -0
  234. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/base.py +0 -0
  235. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/lifi.png +0 -0
  236. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/schema.json +0 -0
  237. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/token_execute.py +0 -0
  238. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/token_quote.py +0 -0
  239. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/lifi/utils.py +0 -0
  240. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/README.md +0 -0
  241. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/__init__.py +0 -0
  242. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/api.py +0 -0
  243. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/base.py +0 -0
  244. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/fetch_chain_portfolio.py +0 -0
  245. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/fetch_nft_portfolio.py +0 -0
  246. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/fetch_solana_portfolio.py +0 -0
  247. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  248. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/moralis.png +0 -0
  249. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/schema.json +0 -0
  250. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/tests/__init__.py +0 -0
  251. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/moralis/tests/test_wallet.py +0 -0
  252. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/nation/__init__.py +0 -0
  253. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/nation/base.py +0 -0
  254. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/nation/nation.png +0 -0
  255. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/nation/nft_check.py +0 -0
  256. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/nation/schema.json +0 -0
  257. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/__init__.py +0 -0
  258. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/base.py +0 -0
  259. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/dalle_image_generation.py +0 -0
  260. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/gpt_image_generation.py +0 -0
  261. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/gpt_image_to_image.py +0 -0
  262. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/image_to_text.py +0 -0
  263. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/openai.png +0 -0
  264. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/openai/schema.json +0 -0
  265. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/README.md +0 -0
  266. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/__init__.py +0 -0
  267. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/base.py +0 -0
  268. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/constants.py +0 -0
  269. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/moralis.png +0 -0
  270. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/schema.json +0 -0
  271. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/token_balances.py +0 -0
  272. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_approvals.py +0 -0
  273. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_defi_positions.py +0 -0
  274. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_history.py +0 -0
  275. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_net_worth.py +0 -0
  276. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_nfts.py +0 -0
  277. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_profitability.py +0 -0
  278. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_profitability_summary.py +0 -0
  279. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_stats.py +0 -0
  280. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/portfolio/wallet_swaps.py +0 -0
  281. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/skills.toml +0 -0
  282. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/__init__.py +0 -0
  283. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/base.py +0 -0
  284. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/get_channel.py +0 -0
  285. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/get_message.py +0 -0
  286. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/schedule_message.py +0 -0
  287. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/schema.json +0 -0
  288. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/send_message.py +0 -0
  289. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/slack/slack.jpg +0 -0
  290. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/__init__.py +0 -0
  291. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/base.py +0 -0
  292. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/delete_data.py +0 -0
  293. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/fetch_data.py +0 -0
  294. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/insert_data.py +0 -0
  295. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/invoke_function.py +0 -0
  296. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/schema.json +0 -0
  297. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/supabase.svg +0 -0
  298. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/update_data.py +0 -0
  299. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/supabase/upsert_data.py +0 -0
  300. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/__init__.py +0 -0
  301. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/base.py +0 -0
  302. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/read_agent_api_key.py +0 -0
  303. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/regenerate_agent_api_key.py +0 -0
  304. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/schema.json +0 -0
  305. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/system/system.svg +0 -0
  306. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/README.md +0 -0
  307. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/__init__.py +0 -0
  308. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/base.py +0 -0
  309. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/schema.json +0 -0
  310. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/tavily.jpg +0 -0
  311. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/tavily_extract.py +0 -0
  312. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/tavily/tavily_search.py +0 -0
  313. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/README.md +0 -0
  314. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/__init__.py +0 -0
  315. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/base.py +0 -0
  316. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/constants.py +0 -0
  317. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/erc20_transfers.py +0 -0
  318. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/moralis.png +0 -0
  319. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/schema.json +0 -0
  320. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/token_analytics.py +0 -0
  321. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/token_price.py +0 -0
  322. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/token/token_search.py +0 -0
  323. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/__init__.py +0 -0
  324. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/base.py +0 -0
  325. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/follow_user.py +0 -0
  326. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/get_mentions.py +0 -0
  327. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/get_timeline.py +0 -0
  328. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/get_user_by_username.py +0 -0
  329. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/get_user_tweets.py +0 -0
  330. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/like_tweet.py +0 -0
  331. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/post_tweet.py +0 -0
  332. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/reply_tweet.py +0 -0
  333. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/retweet.py +0 -0
  334. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/schema.json +0 -0
  335. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/search_tweets.py +0 -0
  336. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/twitter/twitter.png +0 -0
  337. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/unrealspeech/__init__.py +0 -0
  338. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/unrealspeech/base.py +0 -0
  339. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/unrealspeech/schema.json +0 -0
  340. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/unrealspeech/text_to_speech.py +0 -0
  341. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/unrealspeech/unrealspeech.jpg +0 -0
  342. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/__init__.py +0 -0
  343. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/base.py +0 -0
  344. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/input.py +0 -0
  345. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/schema.json +0 -0
  346. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/venice_audio.py +0 -0
  347. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_audio/venice_logo.jpg +0 -0
  348. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/README.md +0 -0
  349. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/__init__.py +0 -0
  350. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/api.py +0 -0
  351. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/base.py +0 -0
  352. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/config.py +0 -0
  353. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_enhance/README.md +0 -0
  354. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_enhance/__init__.py +0 -0
  355. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  356. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  357. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  358. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/README.md +0 -0
  359. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/__init__.py +0 -0
  360. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  361. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  362. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  363. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  364. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  365. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  366. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  367. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  368. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  369. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_upscale/README.md +0 -0
  370. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_upscale/__init__.py +0 -0
  371. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  372. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  373. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  374. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_vision/README.md +0 -0
  375. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_vision/__init__.py +0 -0
  376. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_vision/image_vision.py +0 -0
  377. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  378. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  379. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/schema.json +0 -0
  380. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/utils.py +0 -0
  381. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/venice_image/venice_image.jpg +0 -0
  382. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/README.md +0 -0
  383. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/__init__.py +0 -0
  384. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/base.py +0 -0
  385. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/document_indexer.py +0 -0
  386. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/langchain.png +0 -0
  387. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/schema.json +0 -0
  388. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/scrape_and_index.py +0 -0
  389. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/utils.py +0 -0
  390. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/skills/web_scraper/website_indexer.py +0 -0
  391. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/__init__.py +0 -0
  392. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/chain.py +0 -0
  393. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/error.py +0 -0
  394. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/logging.py +0 -0
  395. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/middleware.py +0 -0
  396. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/random.py +0 -0
  397. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/s3.py +0 -0
  398. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/slack_alert.py +0 -0
  399. {intentkit-0.6.0.dev16 → intentkit-0.6.0.dev18}/utils/tx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.0.dev16
3
+ Version: 0.6.0.dev18
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestal-network/intentkit
6
6
  Project-URL: Repository, https://github.com/crestal-network/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.6.0-dev.16"
6
+ __version__ = "0.6.0-dev.18"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -0,0 +1,151 @@
1
+ import json
2
+ import logging
3
+ from typing import Dict, Optional
4
+
5
+ from bip32 import BIP32
6
+ from cdp import CdpClient as OriginCdpClient
7
+ from cdp import EvmServerAccount
8
+ from coinbase_agentkit import (
9
+ CdpEvmServerWalletProvider,
10
+ CdpEvmServerWalletProviderConfig,
11
+ )
12
+ from eth_keys.datatypes import PrivateKey
13
+ from eth_utils import to_checksum_address
14
+
15
+ from intentkit.abstracts.skill import SkillStoreABC
16
+ from intentkit.models.agent import Agent
17
+ from intentkit.models.agent_data import AgentData
18
+
19
+ _clients: Dict[str, "CdpClient"] = {}
20
+
21
+ logger = logging.getLogger(__name__)
22
+
23
+
24
+ def bip39_seed_to_eth_keys(seed_hex: str) -> Dict[str, str]:
25
+ """
26
+ Converts a BIP39 seed to an Ethereum private key, public key, and address.
27
+
28
+ Args:
29
+ seed_hex: The BIP39 seed in hexadecimal format
30
+
31
+ Returns:
32
+ Dict containing private_key, public_key, and address
33
+ """
34
+ # Convert the hex seed to bytes
35
+ seed_bytes = bytes.fromhex(seed_hex)
36
+
37
+ # Derive the master key from the seed
38
+ bip32 = BIP32.from_seed(seed_bytes)
39
+
40
+ # Derive the Ethereum address using the standard derivation path
41
+ private_key_bytes = bip32.get_privkey_from_path("m/44'/60'/0'/0/0")
42
+
43
+ # Create a private key object
44
+ private_key = PrivateKey(private_key_bytes)
45
+
46
+ # Get the public key
47
+ public_key = private_key.public_key
48
+
49
+ # Get the Ethereum address
50
+ address = public_key.to_address()
51
+
52
+ return {
53
+ "private_key": private_key.to_hex(),
54
+ "public_key": public_key.to_hex(),
55
+ "address": to_checksum_address(address),
56
+ }
57
+
58
+
59
+ class CdpClient:
60
+ def __init__(self, agent_id: str, skill_store: SkillStoreABC) -> None:
61
+ self._agent_id = agent_id
62
+ self._skill_store = skill_store
63
+ self._wallet_provider: Optional[CdpEvmServerWalletProvider] = None
64
+ self._wallet_provider_config: Optional[CdpEvmServerWalletProviderConfig] = None
65
+
66
+ async def get_wallet_provider(self) -> CdpEvmServerWalletProvider:
67
+ if self._wallet_provider:
68
+ return self._wallet_provider
69
+ agent: Agent = await self._skill_store.get_agent_config(self._agent_id)
70
+ agent_data: AgentData = await self._skill_store.get_agent_data(self._agent_id)
71
+ network_id = agent.network_id or agent.cdp_network_id
72
+
73
+ # Get credentials from skill store system config
74
+ api_key_id = self._skill_store.get_system_config("cdp_api_key_id")
75
+ api_key_secret = self._skill_store.get_system_config("cdp_api_key_secret")
76
+ wallet_secret = self._skill_store.get_system_config("cdp_wallet_secret")
77
+
78
+ # already have address
79
+ address = agent_data.evm_wallet_address
80
+
81
+ # new agent or address not migrated yet
82
+ if not address:
83
+ # create cdp client for later use
84
+ cdp_client = OriginCdpClient(
85
+ api_key_id=api_key_id,
86
+ api_key_secret=api_key_secret,
87
+ wallet_secret=wallet_secret,
88
+ )
89
+ # try migrating from v1 cdp_wallet_data
90
+ if agent_data.cdp_wallet_data:
91
+ wallet_data = json.loads(agent_data.cdp_wallet_data)
92
+ if not isinstance(wallet_data, dict):
93
+ raise ValueError("Invalid wallet data format")
94
+ if wallet_data.get("default_address_id") and wallet_data.get("seed"):
95
+ # verify seed and convert to pk
96
+ keys = bip39_seed_to_eth_keys(wallet_data["seed"])
97
+ if keys["address"] != wallet_data["default_address_id"]:
98
+ raise ValueError(
99
+ "Bad wallet data, seed does not match default_address_id"
100
+ )
101
+ # try to import wallet to v2
102
+ logger.info("Migrating wallet data to v2...")
103
+ await cdp_client.evm.import_account(
104
+ name=agent.id,
105
+ private_key=keys["private_key"],
106
+ )
107
+ address = keys["address"]
108
+ logger.info("Migrated wallet data to v2 successfully: %s", address)
109
+ # still not address
110
+ if not address:
111
+ logger.info("Creating new wallet...")
112
+ new_account = await cdp_client.evm.create_account(
113
+ name=agent.id,
114
+ )
115
+ address = new_account.address
116
+ logger.info("Created new wallet: %s", address)
117
+ # now it should be created or migrated, store it
118
+ agent_data.evm_wallet_address = address
119
+ await agent_data.save()
120
+
121
+ # it must have v2 account now, load agentkit wallet provider
122
+ self._wallet_provider_config = CdpEvmServerWalletProviderConfig(
123
+ api_key_id=api_key_id,
124
+ api_key_secret=api_key_secret,
125
+ network_id=network_id,
126
+ address=address,
127
+ wallet_secret=wallet_secret,
128
+ )
129
+ self._wallet_provider = CdpEvmServerWalletProvider(self._wallet_provider_config)
130
+ return self._wallet_provider
131
+
132
+ async def get_account(self) -> EvmServerAccount:
133
+ """Get the account object from the wallet provider.
134
+
135
+ Returns:
136
+ EvmServerAccount: The account object that can be used for balance checks, transfers, etc.
137
+ """
138
+ wallet_provider = await self.get_wallet_provider()
139
+ # Access the internal account object
140
+ return wallet_provider._account
141
+
142
+ async def get_provider_config(self) -> CdpEvmServerWalletProviderConfig:
143
+ if not self._wallet_provider_config:
144
+ await self.get_wallet_provider()
145
+ return self._wallet_provider_config
146
+
147
+
148
+ async def get_cdp_client(agent_id: str, skill_store: SkillStoreABC) -> "CdpClient":
149
+ if agent_id not in _clients:
150
+ _clients[agent_id] = CdpClient(agent_id, skill_store)
151
+ return _clients[agent_id]
@@ -1,5 +1,3 @@
1
- import json
2
-
3
1
  from intentkit.config.config import config
4
2
  from intentkit.models.agent import Agent
5
3
  from intentkit.models.agent_data import AgentData
@@ -34,10 +32,11 @@ def agent_prompt(agent: Agent, agent_data: AgentData) -> str:
34
32
  if agent_data.telegram_name:
35
33
  prompt += f"Your telegram bot name is {agent_data.telegram_name}.\n"
36
34
  # CDP
37
- if agent_data.cdp_wallet_data:
38
- network_id = agent.network_id or agent.cdp_network_id
39
- wallet_data = json.loads(agent_data.cdp_wallet_data)
40
- prompt += f"Your wallet address in {network_id} is {wallet_data['default_address_id']} .\n"
35
+ network_id = agent.network_id or agent.cdp_network_id
36
+ if agent_data.evm_wallet_address and network_id != "solana":
37
+ prompt += f"Your wallet address in {network_id} is {agent_data.evm_wallet_address} .\n"
38
+ if agent_data.solana_wallet_address and network_id == "solana":
39
+ prompt += f"Your wallet address in {network_id} is {agent_data.solana_wallet_address} .\n"
41
40
  prompt += "\n"
42
41
  if agent.purpose:
43
42
  prompt += f"## Purpose\n\n{agent.purpose}\n\n"
@@ -1564,7 +1564,6 @@ class AgentResponse(BaseModel):
1564
1564
  str: ETag value for the agent
1565
1565
  """
1566
1566
  import hashlib
1567
- import json
1568
1567
 
1569
1568
  # Generate hash from the entire object data using json mode to handle datetime objects
1570
1569
  # Sort keys to ensure consistent ordering of dictionary keys
@@ -1622,13 +1621,7 @@ class AgentResponse(BaseModel):
1622
1621
  data["skills"] = filtered_skills
1623
1622
 
1624
1623
  # Process CDP wallet address
1625
- cdp_wallet_address = None
1626
- if agent_data and agent_data.cdp_wallet_data:
1627
- try:
1628
- wallet_data = json.loads(agent_data.cdp_wallet_data)
1629
- cdp_wallet_address = wallet_data.get("default_address_id")
1630
- except (json.JSONDecodeError, AttributeError):
1631
- pass
1624
+ cdp_wallet_address = agent_data.evm_wallet_address if agent_data else None
1632
1625
 
1633
1626
  # Process Twitter linked status
1634
1627
  has_twitter_linked = False
@@ -29,6 +29,10 @@ class AgentDataTable(Base):
29
29
  __tablename__ = "agent_data"
30
30
 
31
31
  id = Column(String, primary_key=True, comment="Same as Agent.id")
32
+ evm_wallet_address = Column(String, nullable=True, comment="EVM wallet address")
33
+ solana_wallet_address = Column(
34
+ String, nullable=True, comment="Solana wallet address"
35
+ )
32
36
  cdp_wallet_data = Column(String, nullable=True, comment="CDP wallet data")
33
37
  crossmint_wallet_data = Column(
34
38
  JSON().with_variant(JSONB(), "postgresql"),
@@ -94,6 +98,20 @@ class AgentData(BaseModel):
94
98
  description="Same as Agent.id",
95
99
  ),
96
100
  ]
101
+ evm_wallet_address: Annotated[
102
+ Optional[str],
103
+ PydanticField(
104
+ default=None,
105
+ description="EVM wallet address",
106
+ ),
107
+ ]
108
+ solana_wallet_address: Annotated[
109
+ Optional[str],
110
+ PydanticField(
111
+ default=None,
112
+ description="Solana wallet address",
113
+ ),
114
+ ]
97
115
  cdp_wallet_data: Annotated[
98
116
  Optional[str],
99
117
  PydanticField(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.6.0-dev.16"
3
+ version = "0.6.0-dev.18"
4
4
  description = "Intent-based AI Agent Platform - Core Package"
5
5
  authors = [{ name = "hyacinthus", email = "hyacinthus@gmail.com" }]
6
6
  requires-python = ">=3.12"
@@ -25,9 +25,6 @@ from intentkit.skills.base import SkillConfig, SkillState
25
25
  from intentkit.skills.cdp.base import CDPBaseTool
26
26
  from intentkit.skills.cdp.get_balance import GetBalance
27
27
 
28
- # Cache skills at the system level, because they are stateless
29
- _cache: dict[str, CDPBaseTool] = {}
30
-
31
28
 
32
29
  class SkillStates(TypedDict):
33
30
  get_balance: SkillState
@@ -117,10 +114,8 @@ async def get_skills(
117
114
  for skill in available_skills:
118
115
  if skill == "get_balance":
119
116
  # Get the account object for the custom GetBalance skill
120
- account = await cdp_client.get_account()
121
117
  tools.append(
122
118
  GetBalance(
123
- account=account,
124
119
  agent_id=agent_id,
125
120
  skill_store=store,
126
121
  )
@@ -1,4 +1,4 @@
1
- from typing import Type
1
+ from typing import Optional, Type
2
2
 
3
3
  from cdp import EvmServerAccount
4
4
  from pydantic import BaseModel, Field
@@ -11,8 +11,9 @@ from intentkit.skills.cdp.base import CDPBaseTool
11
11
  class GetBalanceInput(BaseModel):
12
12
  """Input for GetBalance tool."""
13
13
 
14
- asset_id: str = Field(
15
- description="The asset ID to get the balance for (e.g., 'eth', 'usdc', or a valid contract address)"
14
+ asset_id: Optional[str] = Field(
15
+ default=None,
16
+ description="The asset ID to get the balance for (e.g., 'eth', 'usdc', or a valid contract address). If not provided, returns all token balances.",
16
17
  )
17
18
 
18
19
 
@@ -29,69 +30,92 @@ class GetBalance(CDPBaseTool):
29
30
 
30
31
  agent_id: str
31
32
  skill_store: SkillStoreABC
32
- account: EvmServerAccount | None = None
33
33
 
34
34
  name: str = "cdp_get_balance"
35
35
  description: str = (
36
- "This tool will get the balance of all the addresses in the wallet for a given asset. It takes the asset ID as input."
36
+ "This tool will get the balance of all the addresses in the wallet. If asset_id is provided, it returns the balance for that specific asset. "
37
+ "If no asset_id is provided, it returns all token balances. "
37
38
  "Always use 'eth' for the native asset ETH and 'usdc' for USDC. "
38
39
  "Other valid asset IDs are: weth,dai,reth,brett,w,cbeth,axl,iotx,prime,aero,rsr,mog,tbtc,npc,yfi"
39
40
  )
40
41
  args_schema: Type[BaseModel] = GetBalanceInput
41
42
 
42
- async def _arun(self, asset_id: str) -> str:
43
+ async def _arun(self, asset_id: Optional[str] = None) -> str:
43
44
  """Async implementation of the tool to get balance.
44
45
 
45
46
  Args:
46
- asset_id (str): The asset ID to get the balance for.
47
+ asset_id (Optional[str]): The asset ID to get the balance for. If None, returns all token balances.
47
48
 
48
49
  Returns:
49
50
  str: A message containing the balance information or error message.
50
51
  """
51
52
  try:
52
- if not self.account:
53
- return "Failed to get account."
54
-
55
53
  # Get network information from CDP client
56
54
  cdp_client = await get_cdp_client(self.agent_id, self.skill_store)
55
+ provider = await cdp_client.get_wallet_provider()
56
+ account: EvmServerAccount = provider._account
57
57
  provider_config = await cdp_client.get_provider_config()
58
58
  network_id = provider_config.network_id
59
59
 
60
60
  # Map network_id to the format expected by the API
61
61
  network_mapping = {
62
62
  "base-mainnet": "base",
63
- "base-sepolia": "base-sepolia",
64
- "ethereum": "ethereum",
65
63
  "ethereum-mainnet": "ethereum",
66
64
  }
67
65
  api_network = network_mapping.get(network_id, network_id)
68
66
 
67
+ # If no asset_id provided, return all token balances
68
+ if asset_id is None:
69
+ try:
70
+ # Get native ETH balance
71
+ balance_wei = provider.get_balance()
72
+ balance_eth = balance_wei / (10**18) # Convert from wei to ETH
73
+
74
+ # Get all token balances
75
+ token_balances = await account.list_token_balances(api_network)
76
+
77
+ result = [f"ETH balance: {balance_eth} ETH"]
78
+
79
+ for balance in token_balances.balances:
80
+ result.append(
81
+ f"{balance.token.symbol} balance: {balance.amount.decimals} {balance.token.name}"
82
+ )
83
+
84
+ return f"All balances for account {account.address}:\n" + "\n".join(
85
+ result
86
+ )
87
+
88
+ except Exception as e:
89
+ return f"Error getting all balances: {e!s}"
90
+
69
91
  # For native ETH balance, use the account's balance directly
70
92
  if asset_id.lower() == "eth":
71
93
  try:
72
94
  # Get native balance using Web3
73
- balance_wei = await self.account.get_balance()
95
+ balance_wei = provider.get_balance()
74
96
  balance_eth = balance_wei / (10**18) # Convert from wei to ETH
75
- return f"ETH balance for account {self.account.address}: {balance_eth} ETH"
97
+ return (
98
+ f"ETH balance for account {account.address}: {balance_eth} ETH"
99
+ )
76
100
  except Exception as e:
77
101
  return f"Error getting ETH balance: {e!s}"
78
102
 
79
103
  # For other tokens, try the list_token_balances API
80
104
  try:
81
105
  # list_token_balances returns all token balances for the account
82
- token_balances = await self.account.list_token_balances(api_network)
106
+ token_balances = await account.list_token_balances(api_network)
83
107
 
84
108
  # Find the balance for the specific asset
85
109
  target_balance = None
86
- for balance in token_balances:
87
- if balance.asset_id.lower() == asset_id.lower():
110
+ for balance in token_balances.balances:
111
+ if balance.token.symbol.lower() == asset_id.lower():
88
112
  target_balance = balance
89
113
  break
90
114
 
91
115
  if target_balance:
92
- return f"Balance for {asset_id} in account {self.account.address}: {target_balance.amount} {target_balance.asset_id}"
116
+ return f"Balance for {asset_id} in account {account.address}: {target_balance.amount.decimals} {target_balance.token.name}"
93
117
  else:
94
- return f"No balance found for asset {asset_id} in account {self.account.address}"
118
+ return f"No balance found for asset {asset_id} in account {account.address}"
95
119
 
96
120
  except Exception as e:
97
121
  return f"Error getting balance for account: {e!s}"
@@ -99,7 +123,7 @@ class GetBalance(CDPBaseTool):
99
123
  except Exception as e:
100
124
  return f"Error getting balance: {str(e)}"
101
125
 
102
- def _run(self, asset_id: str) -> str:
126
+ def _run(self, asset_id: Optional[str] = None) -> str:
103
127
  """Sync implementation of the tool.
104
128
 
105
129
  This method is deprecated since we now have native async implementation in _arun.
@@ -1,92 +0,0 @@
1
- import json
2
- import logging
3
- from typing import Dict, Optional
4
-
5
- from cdp import EvmServerAccount
6
- from coinbase_agentkit import (
7
- CdpEvmServerWalletProvider,
8
- CdpEvmServerWalletProviderConfig,
9
- )
10
-
11
- from intentkit.abstracts.skill import SkillStoreABC
12
- from intentkit.models.agent import Agent
13
- from intentkit.models.agent_data import AgentData
14
-
15
- _clients: Dict[str, "CdpClient"] = {}
16
-
17
-
18
- class CdpClient:
19
- def __init__(self, agent_id: str, skill_store: SkillStoreABC) -> None:
20
- self._agent_id = agent_id
21
- self._skill_store = skill_store
22
- self._wallet_provider: Optional[CdpEvmServerWalletProvider] = None
23
- self._wallet_provider_config: Optional[CdpEvmServerWalletProviderConfig] = None
24
-
25
- async def get_wallet_provider(self) -> CdpEvmServerWalletProvider:
26
- if self._wallet_provider:
27
- return self._wallet_provider
28
- agent: Agent = await self._skill_store.get_agent_config(self._agent_id)
29
- agent_data: AgentData = await self._skill_store.get_agent_data(self._agent_id)
30
- network_id = agent.network_id or agent.cdp_network_id
31
-
32
- logger = logging.getLogger(__name__)
33
-
34
- # Get credentials from skill store system config
35
- api_key_id = self._skill_store.get_system_config("cdp_api_key_id")
36
- api_key_secret = self._skill_store.get_system_config("cdp_api_key_secret")
37
- wallet_secret = self._skill_store.get_system_config("cdp_wallet_secret")
38
-
39
- address = None
40
-
41
- # Attempt to override with any wallet-specific secret stored in wallet_data
42
- if agent_data.cdp_wallet_data:
43
- try:
44
- wallet_data = json.loads(agent_data.cdp_wallet_data)
45
- # Try to get address from the new format or fallback to old format
46
- if "default_address_id" in wallet_data:
47
- address = wallet_data["default_address_id"]
48
-
49
- # Prefer wallet_secret stored alongside the wallet data if present
50
- if "wallet_secret" in wallet_data:
51
- wallet_secret = wallet_data["wallet_secret"]
52
- elif "account_data" in wallet_data and wallet_data["account_data"]:
53
- # Some versions may nest the secret inside account_data
54
- wallet_secret = (
55
- wallet_data["account_data"].get("wallet_secret")
56
- or wallet_secret
57
- )
58
- except json.JSONDecodeError:
59
- logger.warning(
60
- "Invalid JSON in cdp_wallet_data for agent %s", self._agent_id
61
- )
62
-
63
- self._wallet_provider_config = CdpEvmServerWalletProviderConfig(
64
- api_key_id=api_key_id,
65
- api_key_secret=api_key_secret,
66
- network_id=network_id,
67
- address=address,
68
- wallet_secret=wallet_secret,
69
- )
70
- self._wallet_provider = CdpEvmServerWalletProvider(self._wallet_provider_config)
71
- return self._wallet_provider
72
-
73
- async def get_account(self) -> EvmServerAccount:
74
- """Get the account object from the wallet provider.
75
-
76
- Returns:
77
- EvmServerAccount: The account object that can be used for balance checks, transfers, etc.
78
- """
79
- wallet_provider = await self.get_wallet_provider()
80
- # Access the internal account object
81
- return wallet_provider._account
82
-
83
- async def get_provider_config(self) -> CdpEvmServerWalletProviderConfig:
84
- if not self._wallet_provider_config:
85
- await self.get_wallet_provider()
86
- return self._wallet_provider_config
87
-
88
-
89
- async def get_cdp_client(agent_id: str, skill_store: SkillStoreABC) -> "CdpClient":
90
- if agent_id not in _clients:
91
- _clients[agent_id] = CdpClient(agent_id, skill_store)
92
- return _clients[agent_id]
File without changes