intentkit 0.8.17.dev2__tar.gz → 0.8.49__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 (512) hide show
  1. {intentkit-0.8.17.dev2 → intentkit-0.8.49}/.gitignore +2 -1
  2. intentkit-0.8.49/LICENSE +21 -0
  3. {intentkit-0.8.17.dev2 → intentkit-0.8.49}/PKG-INFO +6 -5
  4. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/MANIFEST.in +1 -2
  5. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/__init__.py +6 -4
  6. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/agent.py +2 -1
  7. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/graph.py +2 -2
  8. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/skill.py +1 -1
  9. intentkit-0.8.49/intentkit/abstracts/wallet.py +161 -0
  10. intentkit-0.8.49/intentkit/clients/__init__.py +204 -0
  11. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/cdp.py +27 -0
  12. intentkit-0.8.49/intentkit/clients/privy.py +2302 -0
  13. {intentkit-0.8.17.dev2/utils → intentkit-0.8.49/intentkit/clients}/s3.py +52 -29
  14. intentkit-0.8.49/intentkit/clients/signer.py +146 -0
  15. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/twitter.py +4 -4
  16. intentkit-0.8.49/intentkit/config/config.py +242 -0
  17. intentkit-0.8.49/intentkit/core/account_checking.py +802 -0
  18. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/agent.py +148 -9
  19. intentkit-0.8.49/intentkit/core/agent_activity.py +90 -0
  20. intentkit-0.8.49/intentkit/core/agent_post.py +90 -0
  21. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/api.py +17 -3
  22. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/asset.py +19 -4
  23. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/chat.py +5 -3
  24. intentkit-0.8.49/intentkit/core/cleanup.py +80 -0
  25. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/credit.py +12 -11
  26. intentkit-0.8.49/intentkit/core/draft.py +202 -0
  27. intentkit-0.8.49/intentkit/core/draft_chat.py +119 -0
  28. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/engine.py +209 -155
  29. intentkit-0.8.49/intentkit/core/manager/__init__.py +25 -0
  30. intentkit-0.8.49/intentkit/core/manager/engine.py +223 -0
  31. intentkit-0.8.49/intentkit/core/manager/service.py +174 -0
  32. intentkit-0.8.49/intentkit/core/manager/skills.py +178 -0
  33. intentkit-0.8.49/intentkit/core/middleware.py +260 -0
  34. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/prompt.py +54 -97
  35. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/scheduler.py +70 -6
  36. intentkit-0.8.49/intentkit/core/system_skills/__init__.py +27 -0
  37. intentkit-0.8.49/intentkit/core/system_skills/call_agent.py +122 -0
  38. intentkit-0.8.49/intentkit/core/system_skills/create_activity.py +97 -0
  39. intentkit-0.8.49/intentkit/core/system_skills/create_post.py +143 -0
  40. intentkit-0.8.49/intentkit/core/system_skills/recent_activities.py +62 -0
  41. intentkit-0.8.49/intentkit/core/template.py +198 -0
  42. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent.py +297 -91
  43. intentkit-0.8.49/intentkit/models/agent_activity.py +62 -0
  44. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_data.py +112 -73
  45. intentkit-0.8.49/intentkit/models/agent_post.py +246 -0
  46. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_schema.json +7 -0
  47. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/app_setting.py +9 -7
  48. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/chat.py +75 -121
  49. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/credit.py +105 -96
  50. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/db.py +35 -17
  51. intentkit-0.8.49/intentkit/models/db_mig.py +220 -0
  52. intentkit-0.8.49/intentkit/models/draft.py +223 -0
  53. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/llm.csv +15 -10
  54. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/llm.py +152 -40
  55. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/skill.py +39 -32
  56. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/skills.csv +5 -4
  57. intentkit-0.8.49/intentkit/models/team.py +189 -0
  58. intentkit-0.8.49/intentkit/models/template.py +185 -0
  59. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/user.py +44 -18
  60. intentkit-0.8.49/intentkit/models/x402_order.py +167 -0
  61. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/__init__.py +6 -0
  62. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/ask.py +2 -2
  63. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/__init__.py +5 -0
  64. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/__init__.py +6 -0
  65. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/schema.json +2 -2
  66. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/base.py +2 -2
  67. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/__init__.py +12 -0
  68. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/__init__.py +5 -0
  69. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/schema.json +2 -2
  70. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/token_info_and_price.py +1 -1
  71. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/__init__.py +5 -0
  72. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/deck_draw.py +2 -1
  73. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/deck_shuffle.py +2 -1
  74. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/dice_roll.py +2 -1
  75. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/utils.py +3 -1
  76. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/__init__.py +12 -0
  77. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/schema.json +3 -3
  78. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/__init__.py +5 -0
  79. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/chain_lookup.py +1 -1
  80. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/__init__.py +5 -0
  81. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/schema.json +2 -2
  82. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/__init__.py +5 -0
  83. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/__init__.py +5 -0
  84. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/api.py +13 -6
  85. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/base.py +10 -6
  86. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/__init__.py +5 -0
  87. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/__init__.py +6 -0
  88. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/schema.json +2 -2
  89. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/__init__.py +5 -0
  90. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/api.py +28 -23
  91. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/base.py +2 -1
  92. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocol.py +5 -1
  93. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_dex_overview.py +4 -2
  94. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_dex_summary.py +7 -3
  95. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/__init__.py +5 -0
  96. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_pair_info.py +1 -1
  97. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_token_pairs.py +1 -1
  98. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_tokens_info.py +1 -1
  99. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/search_token.py +1 -1
  100. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/__init__.py +5 -0
  101. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/__init__.py +6 -0
  102. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/schema.json +4 -4
  103. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/__init__.py +6 -0
  104. intentkit-0.8.49/intentkit/skills/enso/base.py +166 -0
  105. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/best_yield.py +4 -2
  106. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/route.py +7 -2
  107. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/wallet.py +4 -4
  108. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/__init__.py +12 -0
  109. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/__init__.py +12 -0
  110. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/__init__.py +6 -0
  111. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/schema.json +4 -4
  112. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/utils.py +1 -1
  113. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/__init__.py +5 -0
  114. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/__init__.py +6 -0
  115. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_animagine_xl.py +1 -2
  116. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_arthemy_comics.py +1 -2
  117. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_arthemy_real.py +1 -2
  118. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_braindance.py +1 -2
  119. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_cyber_realistic_xl.py +1 -2
  120. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_flux_1_dev.py +1 -2
  121. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_sdxl.py +1 -2
  122. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/__init__.py +5 -0
  123. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/schema.json +3 -3
  124. intentkit-0.8.49/intentkit/skills/jupiter/README.md +92 -0
  125. intentkit-0.8.49/intentkit/skills/jupiter/__init__.py +26 -0
  126. intentkit-0.8.49/intentkit/skills/jupiter/base.py +75 -0
  127. intentkit-0.8.49/intentkit/skills/jupiter/jupiter.png +0 -0
  128. intentkit-0.8.49/intentkit/skills/jupiter/price.py +105 -0
  129. intentkit-0.8.49/intentkit/skills/jupiter/schema.json +70 -0
  130. intentkit-0.8.49/intentkit/skills/jupiter/swap.py +89 -0
  131. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/__init__.py +5 -0
  132. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/base.py +2 -2
  133. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/schema.json +2 -2
  134. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/token_execute.py +126 -42
  135. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/__init__.py +5 -0
  136. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/api.py +26 -14
  137. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_nft_portfolio.py +3 -1
  138. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_solana_portfolio.py +3 -2
  139. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_wallet_portfolio.py +3 -2
  140. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/schema.json +8 -4
  141. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/__init__.py +12 -0
  142. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/__init__.py +7 -5
  143. intentkit-0.8.49/intentkit/skills/onchain.py +190 -0
  144. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/__init__.py +17 -0
  145. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/dalle_image_generation.py +1 -1
  146. intentkit-0.8.49/intentkit/skills/openai/gpt_avatar_generator.py +102 -0
  147. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/gpt_image_generation.py +2 -2
  148. intentkit-0.8.49/intentkit/skills/openai/gpt_image_mini_generator.py +92 -0
  149. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/gpt_image_to_image.py +1 -1
  150. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/schema.json +36 -4
  151. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/__init__.py +5 -0
  152. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/schema.json +6 -6
  153. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/__init__.py +12 -0
  154. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/__init__.py +5 -0
  155. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/__init__.py +5 -0
  156. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/__init__.py +12 -0
  157. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/__init__.py +5 -0
  158. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/add_autonomous_task.py +7 -1
  159. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/delete_autonomous_task.py +1 -1
  160. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/edit_autonomous_task.py +9 -1
  161. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/list_autonomous_tasks.py +1 -1
  162. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/read_agent_api_key.py +1 -1
  163. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/regenerate_agent_api_key.py +1 -1
  164. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/schema.json +6 -6
  165. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/__init__.py +6 -0
  166. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/schema.json +2 -2
  167. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/__init__.py +5 -0
  168. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/schema.json +5 -5
  169. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/__init__.py +11 -0
  170. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/base.py +2 -1
  171. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/__init__.py +5 -0
  172. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/__init__.py +5 -0
  173. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/venice_audio.py +1 -1
  174. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/__init__.py +5 -0
  175. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/api.py +1 -1
  176. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance.py +2 -1
  177. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_base.py +2 -1
  178. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale.py +2 -2
  179. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/schema.json +3 -3
  180. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/__init__.py +5 -0
  181. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/schema.json +4 -4
  182. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/utils.py +11 -8
  183. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/__init__.py +12 -0
  184. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/__init__.py +12 -0
  185. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/__init__.py +11 -3
  186. intentkit-0.8.49/intentkit/skills/x402/base.py +225 -0
  187. intentkit-0.8.49/intentkit/skills/x402/check_price.py +153 -0
  188. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/http_request.py +16 -2
  189. intentkit-0.8.49/intentkit/skills/x402/pay.py +152 -0
  190. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/schema.json +37 -10
  191. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/__init__.py +5 -0
  192. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/swap.py +3 -1
  193. intentkit-0.8.49/intentkit/utils/__init__.py +5 -0
  194. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/chain.py +198 -96
  195. intentkit-0.8.49/intentkit/utils/ens.py +135 -0
  196. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/error.py +4 -3
  197. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/logging.py +7 -7
  198. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/slack_alert.py +5 -5
  199. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/tx.py +16 -8
  200. {intentkit-0.8.17.dev2 → intentkit-0.8.49}/pyproject.toml +71 -48
  201. intentkit-0.8.17.dev2/clients/__init__.py +0 -17
  202. intentkit-0.8.17.dev2/config/config.py +0 -211
  203. intentkit-0.8.17.dev2/core/node.py +0 -214
  204. intentkit-0.8.17.dev2/models/conversation.py +0 -286
  205. intentkit-0.8.17.dev2/models/db_mig.py +0 -102
  206. intentkit-0.8.17.dev2/skills/enso/base.py +0 -94
  207. intentkit-0.8.17.dev2/skills/onchain.py +0 -23
  208. intentkit-0.8.17.dev2/skills/x402/ask_agent.py +0 -98
  209. intentkit-0.8.17.dev2/skills/x402/base.py +0 -99
  210. intentkit-0.8.17.dev2/utils/__init__.py +0 -1
  211. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/LICENSE +0 -0
  212. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/README.md +0 -0
  213. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/__init__.py +0 -0
  214. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/api.py +0 -0
  215. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/engine.py +0 -0
  216. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/twitter.py +0 -0
  217. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/web3.py +0 -0
  218. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/config/__init__.py +0 -0
  219. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/__init__.py +0 -0
  220. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/client.py +0 -0
  221. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/statistics.py +0 -0
  222. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_public.json +0 -0
  223. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/base.py +0 -0
  224. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/redis.py +0 -0
  225. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/__init__.py +0 -0
  226. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/acolyt.jpg +0 -0
  227. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/base.py +0 -0
  228. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/schema.json +0 -0
  229. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/README.md +0 -0
  230. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/aixbt.jpg +0 -0
  231. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/base.py +0 -0
  232. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/projects.py +0 -0
  233. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/schema.json +0 -0
  234. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/allora.jpeg +0 -0
  235. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/base.py +0 -0
  236. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/price.py +0 -0
  237. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/base.py +0 -0
  238. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/basename.svg +0 -0
  239. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/schema.json +0 -0
  240. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/README.md +0 -0
  241. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/base.py +0 -0
  242. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/carv.webp +0 -0
  243. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/fetch_news.py +0 -0
  244. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/onchain_query.py +0 -0
  245. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/README.md +0 -0
  246. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/base.py +0 -0
  247. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/casino.png +0 -0
  248. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/schema.json +0 -0
  249. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/base.py +0 -0
  250. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/cdp.png +0 -0
  251. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/README.md +0 -0
  252. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/base.py +0 -0
  253. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/chainlist.png +0 -0
  254. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/schema.json +0 -0
  255. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/base.py +0 -0
  256. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/common.jpg +0 -0
  257. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/current_time.py +0 -0
  258. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/README.md +0 -0
  259. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/base.py +0 -0
  260. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/constants.py +0 -0
  261. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/cookiefun.png +0 -0
  262. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_details.py +0 -0
  263. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_feed.py +0 -0
  264. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_smart_followers.py +0 -0
  265. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_sectors.py +0 -0
  266. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/schema.json +0 -0
  267. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/search_accounts.py +0 -0
  268. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/cryptocompare.png +0 -0
  269. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_news.py +0 -0
  270. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_price.py +0 -0
  271. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  272. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  273. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_volume.py +0 -0
  274. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  275. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/schema.json +0 -0
  276. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/base.py +0 -0
  277. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/cryptopanic.png +0 -0
  278. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  279. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  280. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/schema.json +0 -0
  281. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/README.md +0 -0
  282. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/base.py +0 -0
  283. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/dapplooker.jpg +0 -0
  284. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/dapplooker_token_data.py +0 -0
  285. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/__init__.py +0 -0
  286. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  287. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_block.py +0 -0
  288. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_current_prices.py +0 -0
  289. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_first_price.py +0 -0
  290. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  291. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_price_chart.py +0 -0
  292. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  293. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/config/__init__.py +0 -0
  294. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/config/chains.py +0 -0
  295. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/defillama.jpeg +0 -0
  296. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/fees/__init__.py +0 -0
  297. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  298. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/schema.json +0 -0
  299. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/__init__.py +0 -0
  300. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  301. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  302. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  303. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  304. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/__init__.py +0 -0
  305. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/api_integration.test.py +0 -0
  306. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/api_unit.test.py +0 -0
  307. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/__init__.py +0 -0
  308. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  309. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_chains.py +0 -0
  310. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  311. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  312. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocols.py +0 -0
  313. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/__init__.py +0 -0
  314. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  315. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/__init__.py +0 -0
  316. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  317. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/fetch_pools.py +0 -0
  318. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/README.md +0 -0
  319. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/base.py +0 -0
  320. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/dexscreener.png +0 -0
  321. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/model/__init__.py +0 -0
  322. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/model/search_token_response.py +0 -0
  323. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/schema.json +0 -0
  324. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/utils.py +0 -0
  325. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/base.py +0 -0
  326. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/dune.png +0 -0
  327. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  328. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  329. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/schema.json +0 -0
  330. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/README.md +0 -0
  331. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/base.py +0 -0
  332. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/elfa.jpg +0 -0
  333. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/mention.py +0 -0
  334. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/stats.py +0 -0
  335. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/tokens.py +0 -0
  336. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/utils.py +0 -0
  337. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/README.md +0 -0
  338. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/__init__.py +0 -0
  339. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/approval.py +0 -0
  340. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/erc20.py +0 -0
  341. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/route.py +0 -0
  342. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/enso.jpg +0 -0
  343. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/networks.py +0 -0
  344. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/prices.py +0 -0
  345. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/schema.json +0 -0
  346. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/tokens.py +0 -0
  347. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/base.py +0 -0
  348. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/erc20.svg +0 -0
  349. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/schema.json +0 -0
  350. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/base.py +0 -0
  351. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/erc721.svg +0 -0
  352. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/schema.json +0 -0
  353. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/README.md +0 -0
  354. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/base.py +0 -0
  355. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/clear.py +0 -0
  356. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/crawl.py +0 -0
  357. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/firecrawl.png +0 -0
  358. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/query.py +0 -0
  359. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/scrape.py +0 -0
  360. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/README.md +0 -0
  361. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/base.py +0 -0
  362. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/github.jpg +0 -0
  363. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/github_search.py +0 -0
  364. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/schema.json +0 -0
  365. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/base.py +0 -0
  366. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/heurist.png +0 -0
  367. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/schema.json +0 -0
  368. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/README.md +0 -0
  369. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/base.py +0 -0
  370. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/get.py +0 -0
  371. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/http.svg +0 -0
  372. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/post.py +0 -0
  373. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/put.py +0 -0
  374. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/README.md +0 -0
  375. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/lifi.png +0 -0
  376. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/token_quote.py +0 -0
  377. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/utils.py +0 -0
  378. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/README.md +0 -0
  379. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/base.py +0 -0
  380. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_chain_portfolio.py +0 -0
  381. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/moralis.png +0 -0
  382. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/base.py +0 -0
  383. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/morpho.svg +0 -0
  384. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/schema.json +0 -0
  385. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/base.py +0 -0
  386. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/nation.png +0 -0
  387. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/nft_check.py +0 -0
  388. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/schema.json +0 -0
  389. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/base.py +0 -0
  390. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/image_to_text.py +0 -0
  391. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/openai.png +0 -0
  392. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/README.md +0 -0
  393. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/base.py +0 -0
  394. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/constants.py +0 -0
  395. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/moralis.png +0 -0
  396. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/token_balances.py +0 -0
  397. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_approvals.py +0 -0
  398. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_defi_positions.py +0 -0
  399. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_history.py +0 -0
  400. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_net_worth.py +0 -0
  401. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_nfts.py +0 -0
  402. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_profitability.py +0 -0
  403. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_profitability_summary.py +0 -0
  404. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_stats.py +0 -0
  405. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_swaps.py +0 -0
  406. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/base.py +0 -0
  407. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/pyth.svg +0 -0
  408. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/schema.json +0 -0
  409. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/skills.toml +0 -0
  410. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/base.py +0 -0
  411. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/get_channel.py +0 -0
  412. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/get_message.py +0 -0
  413. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/schedule_message.py +0 -0
  414. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/schema.json +0 -0
  415. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/send_message.py +0 -0
  416. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/slack.jpg +0 -0
  417. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/base.py +0 -0
  418. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/delete_data.py +0 -0
  419. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/fetch_data.py +0 -0
  420. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/insert_data.py +0 -0
  421. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/invoke_function.py +0 -0
  422. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/schema.json +0 -0
  423. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/supabase.svg +0 -0
  424. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/update_data.py +0 -0
  425. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/upsert_data.py +0 -0
  426. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/base.py +0 -0
  427. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/schema.json +0 -0
  428. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/superfluid.svg +0 -0
  429. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/base.py +0 -0
  430. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/system.svg +0 -0
  431. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/README.md +0 -0
  432. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/base.py +0 -0
  433. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily.jpg +0 -0
  434. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily_extract.py +0 -0
  435. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily_search.py +0 -0
  436. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/README.md +0 -0
  437. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/base.py +0 -0
  438. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/constants.py +0 -0
  439. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/erc20_transfers.py +0 -0
  440. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/moralis.png +0 -0
  441. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_analytics.py +0 -0
  442. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_price.py +0 -0
  443. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_search.py +0 -0
  444. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/follow_user.py +0 -0
  445. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_mentions.py +0 -0
  446. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_timeline.py +0 -0
  447. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_user_by_username.py +0 -0
  448. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_user_tweets.py +0 -0
  449. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/like_tweet.py +0 -0
  450. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/post_tweet.py +0 -0
  451. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/reply_tweet.py +0 -0
  452. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/retweet.py +0 -0
  453. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/schema.json +0 -0
  454. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/search_tweets.py +0 -0
  455. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/twitter.png +0 -0
  456. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/base.py +0 -0
  457. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/schema.json +0 -0
  458. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/text_to_speech.py +0 -0
  459. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/unrealspeech.jpg +0 -0
  460. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/base.py +0 -0
  461. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/input.py +0 -0
  462. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/schema.json +0 -0
  463. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/venice_logo.jpg +0 -0
  464. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/README.md +0 -0
  465. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/base.py +0 -0
  466. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/config.py +0 -0
  467. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/README.md +0 -0
  468. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/__init__.py +0 -0
  469. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  470. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  471. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/README.md +0 -0
  472. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/__init__.py +0 -0
  473. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  474. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  475. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  476. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  477. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  478. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  479. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  480. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  481. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/README.md +0 -0
  482. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/__init__.py +0 -0
  483. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  484. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  485. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/README.md +0 -0
  486. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/__init__.py +0 -0
  487. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision.py +0 -0
  488. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  489. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  490. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/utils.py +0 -0
  491. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/venice_image.jpg +0 -0
  492. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/README.md +0 -0
  493. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/base.py +0 -0
  494. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/document_indexer.py +0 -0
  495. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/langchain.png +0 -0
  496. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/scrape_and_index.py +0 -0
  497. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/website_indexer.py +0 -0
  498. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/base.py +0 -0
  499. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/schema.json +0 -0
  500. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/weth.svg +0 -0
  501. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/base.py +0 -0
  502. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/schema.json +0 -0
  503. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/wow.svg +0 -0
  504. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/x402.webp +0 -0
  505. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/README.md +0 -0
  506. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/base.py +0 -0
  507. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/price.py +0 -0
  508. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/schema.json +0 -0
  509. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/transfer.py +0 -0
  510. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/xmtp.png +0 -0
  511. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/random.py +0 -0
  512. {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/schema.py +0 -0
@@ -17,7 +17,7 @@ dist/
17
17
  downloads/
18
18
  eggs/
19
19
  .eggs/
20
- lib/
20
+ /lib/
21
21
  lib64/
22
22
  parts/
23
23
  sdist/
@@ -169,6 +169,7 @@ cython_debug/
169
169
  .idea
170
170
  .vscode
171
171
  .cursor
172
+ .zed
172
173
 
173
174
  # web3
174
175
  wallet_data.txt
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Crestal Network
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.8.17.dev2
3
+ Version: 0.8.49
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
7
7
  Project-URL: Documentation, https://github.com/crestalnetwork/intentkit/tree/main/docs
8
8
  Project-URL: Bug Tracker, https://github.com/crestalnetwork/intentkit/issues
9
- Author-email: hyacinthus <hyacinthus@gmail.com>
9
+ Author-email: Ruihua <ruihua@crestal.network>
10
10
  License: MIT License
11
11
 
12
12
  Copyright (c) 2024 Crestal Network
@@ -48,6 +48,7 @@ Requires-Dist: cdp-sdk>=1.31.1
48
48
  Requires-Dist: coinbase-agentkit>=0.7.2
49
49
  Requires-Dist: cron-validator<2.0.0,>=1.0.8
50
50
  Requires-Dist: epyxid>=0.3.3
51
+ Requires-Dist: eth-abi>=5.0.0
51
52
  Requires-Dist: eth-keys>=0.4.0
52
53
  Requires-Dist: eth-utils>=2.1.0
53
54
  Requires-Dist: fastapi>=0.115.8
@@ -57,6 +58,7 @@ Requires-Dist: jsonref>=1.1.0
57
58
  Requires-Dist: langchain-community>=0.3.19
58
59
  Requires-Dist: langchain-core>=0.3.43
59
60
  Requires-Dist: langchain-deepseek>=0.1.4
61
+ Requires-Dist: langchain-google-genai>=3.2.0
60
62
  Requires-Dist: langchain-mcp-adapters>=0.0.11
61
63
  Requires-Dist: langchain-openai>=0.3.8
62
64
  Requires-Dist: langchain-text-splitters>=0.3.8
@@ -66,17 +68,16 @@ Requires-Dist: langgraph-checkpoint-postgres>=2.0.16
66
68
  Requires-Dist: langgraph-checkpoint>=2.0.18
67
69
  Requires-Dist: langgraph-prebuilt>=0.6.1
68
70
  Requires-Dist: langgraph>=0.6.1
69
- Requires-Dist: langmem>=0.0.27
70
71
  Requires-Dist: mypy-boto3-s3<2.0.0,>=1.37.24
71
72
  Requires-Dist: openai>=1.59.6
72
- Requires-Dist: pillow<12.0.0,>=11.1.0
73
+ Requires-Dist: pillow<13.0.0,>=11.1.0
73
74
  Requires-Dist: psycopg-pool>=3.2.4
74
75
  Requires-Dist: psycopg>=3.2.9
75
76
  Requires-Dist: pydantic>=2.10.6
76
77
  Requires-Dist: python-dotenv>=1.0.1
77
78
  Requires-Dist: pytz>=2025.1
78
79
  Requires-Dist: pyyaml>=6.0.2
79
- Requires-Dist: redis<7.0.0,>=5.2.1
80
+ Requires-Dist: redis<8.0.0,>=5.2.1
80
81
  Requires-Dist: requests-oauthlib>=2.0.0
81
82
  Requires-Dist: requests>=2.32.3
82
83
  Requires-Dist: slack-sdk>=3.34.0
@@ -1,6 +1,5 @@
1
1
  include README.md
2
2
  include LICENSE
3
- include pyproject.toml
4
3
  recursive-include abstracts *.py
5
4
  recursive-include clients *.py
6
5
  recursive-include config *.py
@@ -12,4 +11,4 @@ recursive-exclude * __pycache__
12
11
  recursive-exclude * *.pyc
13
12
  recursive-exclude * *.pyo
14
13
  recursive-exclude * .DS_Store
15
- recursive-exclude * .ruff_cache
14
+ recursive-exclude * .ruff_cache
@@ -3,15 +3,17 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.8.17-dev2"
7
- __author__ = "hyacinthus"
8
- __email__ = "hyacinthus@gmail.com"
6
+ __version__ = "0.8.49"
7
+ __author__ = "Ruihua"
8
+ __email__ = "ruihua@crestal.network"
9
9
 
10
10
  # Core components
11
11
  # Abstract base classes
12
- from .core.engine import create_agent, stream_agent
12
+ from .core.engine import build_agent, create_agent, stream_agent, stream_agent_raw
13
13
 
14
14
  __all__ = [
15
15
  "create_agent",
16
16
  "stream_agent",
17
+ "build_agent",
18
+ "stream_agent_raw",
17
19
  ]
@@ -1,4 +1,5 @@
1
1
  from abc import ABC, abstractmethod
2
+ from typing import Any
2
3
 
3
4
  from intentkit.models.agent import Agent
4
5
  from intentkit.models.agent_data import AgentData, AgentQuota
@@ -41,7 +42,7 @@ class AgentStoreABC(ABC):
41
42
  pass
42
43
 
43
44
  @abstractmethod
44
- async def set_data(self, data: dict) -> None:
45
+ async def set_data(self, data: dict[str, Any]) -> None:
45
46
  """Update agent data.
46
47
 
47
48
  Args:
@@ -2,7 +2,7 @@ from collections.abc import Callable
2
2
  from enum import Enum
3
3
  from typing import Any, NotRequired
4
4
 
5
- from langgraph.prebuilt.chat_agent_executor import AgentState as BaseAgentState
5
+ from langchain.agents import AgentState as BaseAgentState
6
6
  from pydantic import BaseModel
7
7
 
8
8
  from intentkit.models.agent import Agent
@@ -19,7 +19,7 @@ class AgentError(str, Enum):
19
19
  # This simply involves a list of messages
20
20
  # We want steps to return messages to append to the list
21
21
  # So we annotate the messages attribute with operator.add
22
- class AgentState(BaseAgentState):
22
+ class AgentState(BaseAgentState[Any]):
23
23
  """The state of the agent."""
24
24
 
25
25
  context: dict[str, Any]
@@ -40,7 +40,7 @@ class SkillStoreABC(ABC):
40
40
 
41
41
  @staticmethod
42
42
  @abstractmethod
43
- async def set_agent_data(agent_id: str, data: dict) -> None:
43
+ async def set_agent_data(agent_id: str, data: dict[str, Any]) -> None:
44
44
  """Update agent data.
45
45
 
46
46
  Args:
@@ -0,0 +1,161 @@
1
+ """
2
+ Unified wallet abstractions for on-chain skills.
3
+
4
+ This module defines abstract interfaces for wallet providers and signers,
5
+ allowing skills to work with different wallet implementations (CDP, Privy, etc.)
6
+ without knowing the specific implementation details.
7
+ """
8
+
9
+ from abc import ABC, abstractmethod
10
+ from typing import Any
11
+
12
+
13
+ class UnifiedWalletProvider(ABC):
14
+ """
15
+ Abstract interface for wallet providers.
16
+
17
+ This interface defines the common operations that any wallet provider
18
+ (CDP, Privy/Safe, etc.) must implement to be used by on-chain skills.
19
+ """
20
+
21
+ @abstractmethod
22
+ def get_address(self) -> str:
23
+ """
24
+ Get the wallet's public address (synchronous).
25
+
26
+ Returns:
27
+ The wallet address as a checksummed hex string.
28
+ """
29
+ pass
30
+
31
+ @abstractmethod
32
+ async def get_address_async(self) -> str:
33
+ """
34
+ Get the wallet's public address (asynchronous).
35
+
36
+ Returns:
37
+ The wallet address as a checksummed hex string.
38
+ """
39
+ pass
40
+
41
+ @abstractmethod
42
+ async def get_balance(self, chain_id: int | None = None) -> int:
43
+ """
44
+ Get native token balance in wei.
45
+
46
+ Args:
47
+ chain_id: Optional chain ID, uses default if not specified.
48
+
49
+ Returns:
50
+ Balance in wei as an integer.
51
+ """
52
+ pass
53
+
54
+ @abstractmethod
55
+ async def execute_transaction(
56
+ self,
57
+ to: str,
58
+ value: int = 0,
59
+ data: bytes = b"",
60
+ chain_id: int | None = None,
61
+ ) -> dict[str, Any]:
62
+ """
63
+ Execute a transaction.
64
+
65
+ Args:
66
+ to: Destination address.
67
+ value: Amount of native token to send (in wei).
68
+ data: Transaction calldata.
69
+ chain_id: Optional chain ID (uses default if not specified).
70
+
71
+ Returns:
72
+ Dict with 'success' (bool), 'tx_hash' (str), and optional 'error' (str).
73
+ """
74
+ pass
75
+
76
+
77
+ class UnifiedWalletSigner(ABC):
78
+ """
79
+ Abstract interface for EVM signers.
80
+
81
+ This interface is compatible with eth_account's signing interfaces,
82
+ allowing it to be used with libraries like x402 that expect standard
83
+ EVM signers.
84
+ """
85
+
86
+ @property
87
+ @abstractmethod
88
+ def address(self) -> str:
89
+ """
90
+ The wallet address used for signing.
91
+
92
+ Note: For Privy, this is the EOA address (not the Safe address),
93
+ as signatures must come from the actual signer.
94
+ """
95
+ pass
96
+
97
+ @abstractmethod
98
+ def sign_message(self, signable_message: Any) -> Any:
99
+ """
100
+ Sign a message (EIP-191 personal_sign).
101
+
102
+ Args:
103
+ signable_message: The message to sign, typically an
104
+ eth_account.messages.SignableMessage.
105
+
106
+ Returns:
107
+ The signature, typically as an eth_account SignedMessage or
108
+ compatible object.
109
+ """
110
+ pass
111
+
112
+ @abstractmethod
113
+ def sign_transaction(self, transaction_dict: dict[str, Any]) -> Any:
114
+ """
115
+ Sign a transaction.
116
+
117
+ Args:
118
+ transaction_dict: The transaction dictionary to sign.
119
+
120
+ Returns:
121
+ The signed transaction.
122
+ """
123
+ pass
124
+
125
+ @abstractmethod
126
+ def sign_typed_data(
127
+ self,
128
+ domain_data: dict[str, Any] | None = None,
129
+ message_types: dict[str, Any] | None = None,
130
+ message_data: dict[str, Any] | None = None,
131
+ full_message: dict[str, Any] | None = None,
132
+ ) -> Any:
133
+ """
134
+ Sign typed data (EIP-712).
135
+
136
+ Args:
137
+ domain_data: The EIP-712 domain data.
138
+ message_types: The type definitions.
139
+ message_data: The message data to sign.
140
+ full_message: Alternative: the complete typed data structure.
141
+
142
+ Returns:
143
+ The signature.
144
+ """
145
+ pass
146
+
147
+ @abstractmethod
148
+ def unsafe_sign_hash(self, message_hash: Any) -> Any:
149
+ """
150
+ Sign a raw hash directly (unsafe, use with caution).
151
+
152
+ This method signs a hash without any prefix or encoding.
153
+ It should only be used when you know exactly what you're signing.
154
+
155
+ Args:
156
+ message_hash: The 32-byte hash to sign.
157
+
158
+ Returns:
159
+ The signature.
160
+ """
161
+ pass
@@ -0,0 +1,204 @@
1
+ """
2
+ IntentKit clients module.
3
+
4
+ This module provides unified access to various client implementations,
5
+ including wallet providers that support both CDP and Privy backends.
6
+ """
7
+
8
+ import json
9
+ import logging
10
+ from typing import TYPE_CHECKING, Any, Union
11
+
12
+ from intentkit.clients.cdp import (
13
+ get_cdp_client,
14
+ get_cdp_network,
15
+ get_evm_account,
16
+ )
17
+ from intentkit.clients.cdp import (
18
+ get_wallet_provider as get_cdp_wallet_provider,
19
+ )
20
+ from intentkit.clients.twitter import (
21
+ TwitterClient,
22
+ TwitterClientConfig,
23
+ get_twitter_client,
24
+ )
25
+ from intentkit.clients.web3 import get_web3_client
26
+ from intentkit.utils.error import IntentKitAPIError
27
+
28
+ if TYPE_CHECKING:
29
+ from coinbase_agentkit import CdpEvmWalletProvider
30
+
31
+ from intentkit.clients.privy import SafeWalletProvider
32
+ from intentkit.models.agent import Agent
33
+
34
+ logger = logging.getLogger(__name__)
35
+
36
+ # Type alias for unified wallet provider
37
+ WalletProviderType = Union["CdpEvmWalletProvider", "SafeWalletProvider"]
38
+ WalletSignerType = Any # Can be ThreadSafeEvmWalletSigner or PrivyWalletSigner
39
+
40
+
41
+ async def get_wallet_provider(agent: "Agent") -> WalletProviderType:
42
+ """
43
+ Get wallet provider based on agent's wallet_provider setting.
44
+
45
+ This function automatically selects the appropriate wallet provider
46
+ implementation based on the agent's configuration.
47
+
48
+ Args:
49
+ agent: The agent to get the wallet provider for.
50
+
51
+ Returns:
52
+ CdpEvmWalletProvider for CDP agents.
53
+ SafeWalletProvider for Privy agents.
54
+
55
+ Raises:
56
+ IntentKitAPIError: If the wallet provider is not supported or not configured.
57
+ """
58
+ if agent.wallet_provider == "cdp":
59
+ return await get_cdp_wallet_provider(agent)
60
+
61
+ elif agent.wallet_provider == "privy":
62
+ from intentkit.clients.privy import get_wallet_provider as get_privy_provider
63
+ from intentkit.models.agent_data import AgentData
64
+
65
+ agent_data = await AgentData.get(agent.id)
66
+ if not agent_data.privy_wallet_data:
67
+ raise IntentKitAPIError(
68
+ 400,
69
+ "PrivyWalletNotInitialized",
70
+ "Privy wallet has not been initialized for this agent. "
71
+ "Please ensure the agent was created with wallet_provider='privy'.",
72
+ )
73
+
74
+ try:
75
+ privy_data = json.loads(agent_data.privy_wallet_data)
76
+ except json.JSONDecodeError as e:
77
+ raise IntentKitAPIError(
78
+ 500,
79
+ "PrivyWalletDataCorrupted",
80
+ f"Failed to parse Privy wallet data: {e}",
81
+ ) from e
82
+
83
+ return get_privy_provider(privy_data)
84
+
85
+ elif agent.wallet_provider == "readonly":
86
+ raise IntentKitAPIError(
87
+ 400,
88
+ "ReadonlyWalletNotSupported",
89
+ "Readonly wallets cannot perform on-chain operations that require signing.",
90
+ )
91
+
92
+ elif agent.wallet_provider == "none" or agent.wallet_provider is None:
93
+ raise IntentKitAPIError(
94
+ 400,
95
+ "NoWalletConfigured",
96
+ "This agent does not have a wallet configured. "
97
+ "Please set wallet_provider to 'cdp' or 'privy' in the agent configuration.",
98
+ )
99
+
100
+ else:
101
+ raise IntentKitAPIError(
102
+ 400,
103
+ "UnsupportedWalletProvider",
104
+ f"Wallet provider '{agent.wallet_provider}' is not supported for on-chain operations. "
105
+ "Supported providers are: 'cdp', 'privy'.",
106
+ )
107
+
108
+
109
+ async def get_wallet_signer(agent: "Agent") -> WalletSignerType:
110
+ """
111
+ Get EVM signer based on agent's wallet_provider setting.
112
+
113
+ This function returns a signer compatible with eth_account interfaces,
114
+ suitable for use with libraries like x402 that require signing capabilities.
115
+
116
+ Args:
117
+ agent: The agent to get the wallet signer for.
118
+
119
+ Returns:
120
+ A signer object with sign_message, sign_typed_data, and unsafe_sign_hash methods.
121
+ - For CDP: ThreadSafeEvmWalletSigner wrapping CdpEvmWalletProvider
122
+ - For Privy: PrivyWalletSigner
123
+
124
+ Raises:
125
+ IntentKitAPIError: If the wallet provider is not supported or not configured.
126
+ """
127
+ if agent.wallet_provider == "cdp":
128
+ # Import here to avoid circular imports
129
+ from intentkit.clients.cdp import get_wallet_provider as get_cdp_provider
130
+
131
+ provider = await get_cdp_provider(agent)
132
+
133
+ # Create thread-safe signer wrapper
134
+ from intentkit.clients.signer import ThreadSafeEvmWalletSigner
135
+
136
+ return ThreadSafeEvmWalletSigner(provider)
137
+
138
+ elif agent.wallet_provider == "privy":
139
+ from intentkit.clients.privy import get_wallet_signer as get_privy_signer
140
+ from intentkit.models.agent_data import AgentData
141
+
142
+ agent_data = await AgentData.get(agent.id)
143
+ if not agent_data.privy_wallet_data:
144
+ raise IntentKitAPIError(
145
+ 400,
146
+ "PrivyWalletNotInitialized",
147
+ "Privy wallet has not been initialized for this agent. "
148
+ "Please ensure the agent was created with wallet_provider='privy'.",
149
+ )
150
+
151
+ try:
152
+ privy_data = json.loads(agent_data.privy_wallet_data)
153
+ except json.JSONDecodeError as e:
154
+ raise IntentKitAPIError(
155
+ 500,
156
+ "PrivyWalletDataCorrupted",
157
+ f"Failed to parse Privy wallet data: {e}",
158
+ ) from e
159
+
160
+ return get_privy_signer(privy_data)
161
+
162
+ elif agent.wallet_provider == "readonly":
163
+ raise IntentKitAPIError(
164
+ 400,
165
+ "ReadonlyWalletNotSupported",
166
+ "Readonly wallets cannot perform signing operations.",
167
+ )
168
+
169
+ elif agent.wallet_provider == "none" or agent.wallet_provider is None:
170
+ raise IntentKitAPIError(
171
+ 400,
172
+ "NoWalletConfigured",
173
+ "This agent does not have a wallet configured. "
174
+ "Please set wallet_provider to 'cdp' or 'privy' in the agent configuration.",
175
+ )
176
+
177
+ else:
178
+ raise IntentKitAPIError(
179
+ 400,
180
+ "UnsupportedWalletProvider",
181
+ f"Wallet provider '{agent.wallet_provider}' is not supported for signing. "
182
+ "Supported providers are: 'cdp', 'privy'.",
183
+ )
184
+
185
+
186
+ # Legacy alias for backwards compatibility
187
+ # This now routes to the unified function
188
+ get_cdp_wallet_provider_legacy = get_cdp_wallet_provider
189
+
190
+ __all__ = [
191
+ # Twitter client
192
+ "TwitterClient",
193
+ "TwitterClientConfig",
194
+ "get_twitter_client",
195
+ # CDP specific (for backwards compatibility)
196
+ "get_evm_account",
197
+ "get_cdp_client",
198
+ "get_cdp_network",
199
+ # Web3
200
+ "get_web3_client",
201
+ # Unified wallet functions (recommended)
202
+ "get_wallet_provider",
203
+ "get_wallet_signer",
204
+ ]
@@ -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: