intentkit 0.7.5.dev3__py3-none-any.whl → 0.8.34.dev7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. intentkit/MANIFEST.in +14 -0
  2. intentkit/README.md +88 -0
  3. intentkit/__init__.py +6 -4
  4. intentkit/abstracts/agent.py +4 -5
  5. intentkit/abstracts/engine.py +5 -5
  6. intentkit/abstracts/graph.py +15 -8
  7. intentkit/abstracts/skill.py +6 -144
  8. intentkit/abstracts/twitter.py +4 -5
  9. intentkit/clients/__init__.py +9 -2
  10. intentkit/clients/cdp.py +129 -153
  11. intentkit/{utils → clients}/s3.py +109 -34
  12. intentkit/clients/twitter.py +83 -62
  13. intentkit/clients/web3.py +4 -7
  14. intentkit/config/config.py +123 -90
  15. intentkit/core/account_checking.py +802 -0
  16. intentkit/core/agent.py +313 -498
  17. intentkit/core/asset.py +267 -0
  18. intentkit/core/chat.py +5 -3
  19. intentkit/core/client.py +1 -1
  20. intentkit/core/credit.py +49 -41
  21. intentkit/core/draft.py +201 -0
  22. intentkit/core/draft_chat.py +118 -0
  23. intentkit/core/engine.py +378 -287
  24. intentkit/core/manager/__init__.py +25 -0
  25. intentkit/core/manager/engine.py +220 -0
  26. intentkit/core/manager/service.py +172 -0
  27. intentkit/core/manager/skills.py +178 -0
  28. intentkit/core/middleware.py +231 -0
  29. intentkit/core/prompt.py +74 -114
  30. intentkit/core/scheduler.py +143 -0
  31. intentkit/core/statistics.py +168 -0
  32. intentkit/models/agent.py +931 -518
  33. intentkit/models/agent_data.py +165 -106
  34. intentkit/models/agent_schema.json +38 -251
  35. intentkit/models/app_setting.py +15 -13
  36. intentkit/models/chat.py +86 -140
  37. intentkit/models/credit.py +182 -162
  38. intentkit/models/db.py +42 -23
  39. intentkit/models/db_mig.py +120 -3
  40. intentkit/models/draft.py +222 -0
  41. intentkit/models/llm.csv +31 -0
  42. intentkit/models/llm.py +262 -370
  43. intentkit/models/redis.py +6 -4
  44. intentkit/models/skill.py +222 -101
  45. intentkit/models/skills.csv +173 -0
  46. intentkit/models/team.py +189 -0
  47. intentkit/models/user.py +103 -31
  48. intentkit/skills/acolyt/__init__.py +2 -9
  49. intentkit/skills/acolyt/ask.py +3 -4
  50. intentkit/skills/acolyt/base.py +4 -9
  51. intentkit/skills/acolyt/schema.json +4 -3
  52. intentkit/skills/aixbt/__init__.py +2 -13
  53. intentkit/skills/aixbt/base.py +1 -7
  54. intentkit/skills/aixbt/projects.py +14 -15
  55. intentkit/skills/aixbt/schema.json +4 -4
  56. intentkit/skills/allora/__init__.py +2 -9
  57. intentkit/skills/allora/base.py +4 -9
  58. intentkit/skills/allora/price.py +3 -4
  59. intentkit/skills/allora/schema.json +3 -2
  60. intentkit/skills/base.py +241 -41
  61. intentkit/skills/basename/__init__.py +51 -0
  62. intentkit/skills/basename/base.py +11 -0
  63. intentkit/skills/basename/basename.svg +11 -0
  64. intentkit/skills/basename/schema.json +58 -0
  65. intentkit/skills/carv/__init__.py +115 -121
  66. intentkit/skills/carv/base.py +184 -185
  67. intentkit/skills/carv/fetch_news.py +3 -3
  68. intentkit/skills/carv/onchain_query.py +4 -4
  69. intentkit/skills/carv/schema.json +134 -137
  70. intentkit/skills/carv/token_info_and_price.py +6 -6
  71. intentkit/skills/casino/__init__.py +4 -15
  72. intentkit/skills/casino/base.py +1 -7
  73. intentkit/skills/casino/deck_draw.py +5 -8
  74. intentkit/skills/casino/deck_shuffle.py +6 -6
  75. intentkit/skills/casino/dice_roll.py +2 -4
  76. intentkit/skills/casino/schema.json +0 -1
  77. intentkit/skills/cdp/__init__.py +22 -84
  78. intentkit/skills/cdp/base.py +1 -7
  79. intentkit/skills/cdp/schema.json +11 -314
  80. intentkit/skills/chainlist/__init__.py +2 -7
  81. intentkit/skills/chainlist/base.py +1 -7
  82. intentkit/skills/chainlist/chain_lookup.py +18 -18
  83. intentkit/skills/chainlist/schema.json +3 -5
  84. intentkit/skills/common/__init__.py +2 -9
  85. intentkit/skills/common/base.py +1 -7
  86. intentkit/skills/common/current_time.py +1 -2
  87. intentkit/skills/common/schema.json +2 -2
  88. intentkit/skills/cookiefun/__init__.py +6 -9
  89. intentkit/skills/cookiefun/base.py +2 -7
  90. intentkit/skills/cookiefun/get_account_details.py +7 -7
  91. intentkit/skills/cookiefun/get_account_feed.py +19 -19
  92. intentkit/skills/cookiefun/get_account_smart_followers.py +7 -7
  93. intentkit/skills/cookiefun/get_sectors.py +3 -3
  94. intentkit/skills/cookiefun/schema.json +1 -3
  95. intentkit/skills/cookiefun/search_accounts.py +9 -9
  96. intentkit/skills/cryptocompare/__init__.py +7 -24
  97. intentkit/skills/cryptocompare/api.py +2 -3
  98. intentkit/skills/cryptocompare/base.py +10 -24
  99. intentkit/skills/cryptocompare/fetch_news.py +4 -5
  100. intentkit/skills/cryptocompare/fetch_price.py +6 -7
  101. intentkit/skills/cryptocompare/fetch_top_exchanges.py +4 -5
  102. intentkit/skills/cryptocompare/fetch_top_market_cap.py +4 -5
  103. intentkit/skills/cryptocompare/fetch_top_volume.py +4 -5
  104. intentkit/skills/cryptocompare/fetch_trading_signals.py +5 -6
  105. intentkit/skills/cryptocompare/schema.json +3 -3
  106. intentkit/skills/cryptopanic/__init__.py +7 -10
  107. intentkit/skills/cryptopanic/base.py +51 -55
  108. intentkit/skills/cryptopanic/fetch_crypto_news.py +4 -8
  109. intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +5 -7
  110. intentkit/skills/cryptopanic/schema.json +105 -103
  111. intentkit/skills/dapplooker/__init__.py +2 -9
  112. intentkit/skills/dapplooker/base.py +4 -9
  113. intentkit/skills/dapplooker/dapplooker_token_data.py +7 -7
  114. intentkit/skills/dapplooker/schema.json +3 -5
  115. intentkit/skills/defillama/__init__.py +24 -74
  116. intentkit/skills/defillama/api.py +6 -9
  117. intentkit/skills/defillama/base.py +8 -19
  118. intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +8 -10
  119. intentkit/skills/defillama/coins/fetch_block.py +6 -8
  120. intentkit/skills/defillama/coins/fetch_current_prices.py +8 -10
  121. intentkit/skills/defillama/coins/fetch_first_price.py +7 -9
  122. intentkit/skills/defillama/coins/fetch_historical_prices.py +9 -11
  123. intentkit/skills/defillama/coins/fetch_price_chart.py +9 -11
  124. intentkit/skills/defillama/coins/fetch_price_percentage.py +7 -9
  125. intentkit/skills/defillama/config/chains.py +1 -3
  126. intentkit/skills/defillama/fees/fetch_fees_overview.py +24 -26
  127. intentkit/skills/defillama/schema.json +5 -1
  128. intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +16 -18
  129. intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +8 -10
  130. intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +5 -7
  131. intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +7 -9
  132. intentkit/skills/defillama/tests/api_integration.test.py +1 -1
  133. intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +4 -6
  134. intentkit/skills/defillama/tvl/fetch_chains.py +9 -11
  135. intentkit/skills/defillama/tvl/fetch_historical_tvl.py +4 -6
  136. intentkit/skills/defillama/tvl/fetch_protocol.py +32 -38
  137. intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +3 -5
  138. intentkit/skills/defillama/tvl/fetch_protocols.py +37 -45
  139. intentkit/skills/defillama/volumes/fetch_dex_overview.py +42 -48
  140. intentkit/skills/defillama/volumes/fetch_dex_summary.py +35 -37
  141. intentkit/skills/defillama/volumes/fetch_options_overview.py +24 -28
  142. intentkit/skills/defillama/yields/fetch_pool_chart.py +10 -12
  143. intentkit/skills/defillama/yields/fetch_pools.py +26 -30
  144. intentkit/skills/dexscreener/__init__.py +97 -102
  145. intentkit/skills/dexscreener/base.py +125 -130
  146. intentkit/skills/dexscreener/get_pair_info.py +4 -5
  147. intentkit/skills/dexscreener/get_token_pairs.py +4 -5
  148. intentkit/skills/dexscreener/get_tokens_info.py +7 -8
  149. intentkit/skills/dexscreener/model/search_token_response.py +80 -82
  150. intentkit/skills/dexscreener/schema.json +91 -93
  151. intentkit/skills/dexscreener/search_token.py +182 -184
  152. intentkit/skills/dexscreener/utils.py +15 -14
  153. intentkit/skills/dune_analytics/__init__.py +7 -9
  154. intentkit/skills/dune_analytics/base.py +48 -52
  155. intentkit/skills/dune_analytics/fetch_kol_buys.py +5 -7
  156. intentkit/skills/dune_analytics/fetch_nation_metrics.py +6 -8
  157. intentkit/skills/dune_analytics/schema.json +104 -99
  158. intentkit/skills/elfa/__init__.py +5 -18
  159. intentkit/skills/elfa/base.py +10 -14
  160. intentkit/skills/elfa/mention.py +19 -21
  161. intentkit/skills/elfa/schema.json +3 -2
  162. intentkit/skills/elfa/stats.py +4 -4
  163. intentkit/skills/elfa/tokens.py +12 -12
  164. intentkit/skills/elfa/utils.py +26 -28
  165. intentkit/skills/enso/__init__.py +11 -31
  166. intentkit/skills/enso/base.py +54 -35
  167. intentkit/skills/enso/best_yield.py +16 -24
  168. intentkit/skills/enso/networks.py +6 -11
  169. intentkit/skills/enso/prices.py +11 -13
  170. intentkit/skills/enso/route.py +34 -38
  171. intentkit/skills/enso/schema.json +3 -2
  172. intentkit/skills/enso/tokens.py +29 -38
  173. intentkit/skills/enso/wallet.py +76 -191
  174. intentkit/skills/erc20/__init__.py +50 -0
  175. intentkit/skills/erc20/base.py +11 -0
  176. intentkit/skills/erc20/erc20.svg +5 -0
  177. intentkit/skills/erc20/schema.json +74 -0
  178. intentkit/skills/erc721/__init__.py +53 -0
  179. intentkit/skills/erc721/base.py +11 -0
  180. intentkit/skills/erc721/erc721.svg +5 -0
  181. intentkit/skills/erc721/schema.json +90 -0
  182. intentkit/skills/firecrawl/__init__.py +5 -18
  183. intentkit/skills/firecrawl/base.py +4 -9
  184. intentkit/skills/firecrawl/clear.py +4 -8
  185. intentkit/skills/firecrawl/crawl.py +19 -19
  186. intentkit/skills/firecrawl/query.py +4 -3
  187. intentkit/skills/firecrawl/schema.json +2 -6
  188. intentkit/skills/firecrawl/scrape.py +17 -22
  189. intentkit/skills/firecrawl/utils.py +50 -42
  190. intentkit/skills/github/__init__.py +2 -7
  191. intentkit/skills/github/base.py +1 -7
  192. intentkit/skills/github/github_search.py +1 -2
  193. intentkit/skills/github/schema.json +3 -4
  194. intentkit/skills/heurist/__init__.py +8 -27
  195. intentkit/skills/heurist/base.py +4 -9
  196. intentkit/skills/heurist/image_generation_animagine_xl.py +13 -15
  197. intentkit/skills/heurist/image_generation_arthemy_comics.py +13 -15
  198. intentkit/skills/heurist/image_generation_arthemy_real.py +13 -15
  199. intentkit/skills/heurist/image_generation_braindance.py +13 -15
  200. intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +13 -15
  201. intentkit/skills/heurist/image_generation_flux_1_dev.py +13 -15
  202. intentkit/skills/heurist/image_generation_sdxl.py +13 -15
  203. intentkit/skills/heurist/schema.json +2 -2
  204. intentkit/skills/http/__init__.py +4 -15
  205. intentkit/skills/http/base.py +1 -7
  206. intentkit/skills/http/get.py +21 -16
  207. intentkit/skills/http/post.py +23 -18
  208. intentkit/skills/http/put.py +23 -18
  209. intentkit/skills/http/schema.json +4 -5
  210. intentkit/skills/lifi/__init__.py +8 -13
  211. intentkit/skills/lifi/base.py +3 -9
  212. intentkit/skills/lifi/schema.json +17 -8
  213. intentkit/skills/lifi/token_execute.py +150 -60
  214. intentkit/skills/lifi/token_quote.py +8 -10
  215. intentkit/skills/lifi/utils.py +104 -51
  216. intentkit/skills/moralis/__init__.py +6 -10
  217. intentkit/skills/moralis/api.py +6 -7
  218. intentkit/skills/moralis/base.py +5 -10
  219. intentkit/skills/moralis/fetch_chain_portfolio.py +10 -11
  220. intentkit/skills/moralis/fetch_nft_portfolio.py +22 -22
  221. intentkit/skills/moralis/fetch_solana_portfolio.py +11 -12
  222. intentkit/skills/moralis/fetch_wallet_portfolio.py +8 -9
  223. intentkit/skills/moralis/schema.json +7 -2
  224. intentkit/skills/morpho/__init__.py +52 -0
  225. intentkit/skills/morpho/base.py +11 -0
  226. intentkit/skills/morpho/morpho.svg +12 -0
  227. intentkit/skills/morpho/schema.json +73 -0
  228. intentkit/skills/nation/__init__.py +4 -9
  229. intentkit/skills/nation/base.py +5 -10
  230. intentkit/skills/nation/nft_check.py +3 -4
  231. intentkit/skills/nation/schema.json +4 -3
  232. intentkit/skills/onchain.py +30 -0
  233. intentkit/skills/openai/__init__.py +17 -18
  234. intentkit/skills/openai/base.py +10 -14
  235. intentkit/skills/openai/dalle_image_generation.py +4 -9
  236. intentkit/skills/openai/gpt_avatar_generator.py +102 -0
  237. intentkit/skills/openai/gpt_image_generation.py +5 -9
  238. intentkit/skills/openai/gpt_image_mini_generator.py +92 -0
  239. intentkit/skills/openai/gpt_image_to_image.py +5 -9
  240. intentkit/skills/openai/image_to_text.py +3 -7
  241. intentkit/skills/openai/schema.json +34 -3
  242. intentkit/skills/portfolio/__init__.py +11 -35
  243. intentkit/skills/portfolio/base.py +33 -19
  244. intentkit/skills/portfolio/schema.json +3 -5
  245. intentkit/skills/portfolio/token_balances.py +21 -21
  246. intentkit/skills/portfolio/wallet_approvals.py +17 -18
  247. intentkit/skills/portfolio/wallet_defi_positions.py +3 -3
  248. intentkit/skills/portfolio/wallet_history.py +31 -31
  249. intentkit/skills/portfolio/wallet_net_worth.py +13 -13
  250. intentkit/skills/portfolio/wallet_nfts.py +19 -19
  251. intentkit/skills/portfolio/wallet_profitability.py +18 -18
  252. intentkit/skills/portfolio/wallet_profitability_summary.py +5 -5
  253. intentkit/skills/portfolio/wallet_stats.py +3 -3
  254. intentkit/skills/portfolio/wallet_swaps.py +19 -19
  255. intentkit/skills/pyth/__init__.py +50 -0
  256. intentkit/skills/pyth/base.py +11 -0
  257. intentkit/skills/pyth/pyth.svg +6 -0
  258. intentkit/skills/pyth/schema.json +75 -0
  259. intentkit/skills/skills.toml +36 -0
  260. intentkit/skills/slack/__init__.py +5 -17
  261. intentkit/skills/slack/base.py +3 -9
  262. intentkit/skills/slack/get_channel.py +8 -8
  263. intentkit/skills/slack/get_message.py +9 -9
  264. intentkit/skills/slack/schedule_message.py +5 -5
  265. intentkit/skills/slack/schema.json +2 -2
  266. intentkit/skills/slack/send_message.py +3 -5
  267. intentkit/skills/supabase/__init__.py +7 -23
  268. intentkit/skills/supabase/base.py +1 -7
  269. intentkit/skills/supabase/delete_data.py +4 -4
  270. intentkit/skills/supabase/fetch_data.py +12 -12
  271. intentkit/skills/supabase/insert_data.py +4 -4
  272. intentkit/skills/supabase/invoke_function.py +6 -6
  273. intentkit/skills/supabase/schema.json +2 -3
  274. intentkit/skills/supabase/update_data.py +6 -6
  275. intentkit/skills/supabase/upsert_data.py +4 -4
  276. intentkit/skills/superfluid/__init__.py +53 -0
  277. intentkit/skills/superfluid/base.py +11 -0
  278. intentkit/skills/superfluid/schema.json +89 -0
  279. intentkit/skills/superfluid/superfluid.svg +6 -0
  280. intentkit/skills/system/__init__.py +7 -24
  281. intentkit/skills/system/add_autonomous_task.py +10 -12
  282. intentkit/skills/system/delete_autonomous_task.py +2 -2
  283. intentkit/skills/system/edit_autonomous_task.py +14 -18
  284. intentkit/skills/system/list_autonomous_tasks.py +3 -5
  285. intentkit/skills/system/read_agent_api_key.py +6 -4
  286. intentkit/skills/system/regenerate_agent_api_key.py +6 -4
  287. intentkit/skills/system/schema.json +6 -8
  288. intentkit/skills/tavily/__init__.py +3 -12
  289. intentkit/skills/tavily/base.py +4 -9
  290. intentkit/skills/tavily/schema.json +3 -5
  291. intentkit/skills/tavily/tavily_extract.py +2 -4
  292. intentkit/skills/tavily/tavily_search.py +4 -6
  293. intentkit/skills/token/__init__.py +5 -10
  294. intentkit/skills/token/base.py +7 -11
  295. intentkit/skills/token/erc20_transfers.py +19 -19
  296. intentkit/skills/token/schema.json +3 -6
  297. intentkit/skills/token/token_analytics.py +3 -3
  298. intentkit/skills/token/token_price.py +13 -13
  299. intentkit/skills/token/token_search.py +9 -9
  300. intentkit/skills/twitter/__init__.py +11 -35
  301. intentkit/skills/twitter/base.py +22 -34
  302. intentkit/skills/twitter/follow_user.py +2 -6
  303. intentkit/skills/twitter/get_mentions.py +5 -12
  304. intentkit/skills/twitter/get_timeline.py +4 -12
  305. intentkit/skills/twitter/get_user_by_username.py +2 -6
  306. intentkit/skills/twitter/get_user_tweets.py +5 -13
  307. intentkit/skills/twitter/like_tweet.py +2 -6
  308. intentkit/skills/twitter/post_tweet.py +6 -9
  309. intentkit/skills/twitter/reply_tweet.py +6 -9
  310. intentkit/skills/twitter/retweet.py +2 -6
  311. intentkit/skills/twitter/schema.json +1 -0
  312. intentkit/skills/twitter/search_tweets.py +4 -12
  313. intentkit/skills/unrealspeech/__init__.py +2 -7
  314. intentkit/skills/unrealspeech/base.py +2 -8
  315. intentkit/skills/unrealspeech/schema.json +2 -5
  316. intentkit/skills/unrealspeech/text_to_speech.py +8 -8
  317. intentkit/skills/venice_audio/__init__.py +98 -106
  318. intentkit/skills/venice_audio/base.py +117 -121
  319. intentkit/skills/venice_audio/input.py +41 -41
  320. intentkit/skills/venice_audio/schema.json +151 -152
  321. intentkit/skills/venice_audio/venice_audio.py +38 -21
  322. intentkit/skills/venice_image/__init__.py +147 -154
  323. intentkit/skills/venice_image/api.py +138 -138
  324. intentkit/skills/venice_image/base.py +185 -192
  325. intentkit/skills/venice_image/config.py +33 -35
  326. intentkit/skills/venice_image/image_enhance/image_enhance.py +2 -3
  327. intentkit/skills/venice_image/image_enhance/image_enhance_base.py +21 -23
  328. intentkit/skills/venice_image/image_enhance/image_enhance_input.py +38 -40
  329. intentkit/skills/venice_image/image_generation/image_generation_base.py +11 -10
  330. intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +26 -26
  331. intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +27 -27
  332. intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +26 -26
  333. intentkit/skills/venice_image/image_generation/image_generation_input.py +158 -158
  334. intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +26 -26
  335. intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +26 -26
  336. intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +28 -28
  337. intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +28 -28
  338. intentkit/skills/venice_image/image_upscale/image_upscale.py +3 -3
  339. intentkit/skills/venice_image/image_upscale/image_upscale_base.py +21 -23
  340. intentkit/skills/venice_image/image_upscale/image_upscale_input.py +22 -22
  341. intentkit/skills/venice_image/image_vision/image_vision.py +2 -2
  342. intentkit/skills/venice_image/image_vision/image_vision_base.py +17 -17
  343. intentkit/skills/venice_image/image_vision/image_vision_input.py +9 -9
  344. intentkit/skills/venice_image/schema.json +267 -267
  345. intentkit/skills/venice_image/utils.py +77 -78
  346. intentkit/skills/web_scraper/__init__.py +5 -18
  347. intentkit/skills/web_scraper/base.py +21 -7
  348. intentkit/skills/web_scraper/document_indexer.py +7 -6
  349. intentkit/skills/web_scraper/schema.json +2 -6
  350. intentkit/skills/web_scraper/scrape_and_index.py +15 -15
  351. intentkit/skills/web_scraper/utils.py +62 -63
  352. intentkit/skills/web_scraper/website_indexer.py +17 -19
  353. intentkit/skills/weth/__init__.py +49 -0
  354. intentkit/skills/weth/base.py +11 -0
  355. intentkit/skills/weth/schema.json +58 -0
  356. intentkit/skills/weth/weth.svg +6 -0
  357. intentkit/skills/wow/__init__.py +51 -0
  358. intentkit/skills/wow/base.py +11 -0
  359. intentkit/skills/wow/schema.json +89 -0
  360. intentkit/skills/wow/wow.svg +7 -0
  361. intentkit/skills/x402/__init__.py +58 -0
  362. intentkit/skills/x402/base.py +99 -0
  363. intentkit/skills/x402/http_request.py +117 -0
  364. intentkit/skills/x402/schema.json +40 -0
  365. intentkit/skills/x402/x402.webp +0 -0
  366. intentkit/skills/xmtp/__init__.py +4 -15
  367. intentkit/skills/xmtp/base.py +5 -5
  368. intentkit/skills/xmtp/price.py +7 -6
  369. intentkit/skills/xmtp/schema.json +69 -71
  370. intentkit/skills/xmtp/swap.py +6 -8
  371. intentkit/skills/xmtp/transfer.py +4 -6
  372. intentkit/utils/__init__.py +4 -0
  373. intentkit/utils/chain.py +198 -96
  374. intentkit/utils/ens.py +135 -0
  375. intentkit/utils/error.py +5 -2
  376. intentkit/utils/logging.py +9 -11
  377. intentkit/utils/schema.py +100 -0
  378. intentkit/utils/slack_alert.py +8 -8
  379. intentkit/utils/tx.py +16 -8
  380. intentkit/uv.lock +3377 -0
  381. {intentkit-0.7.5.dev3.dist-info → intentkit-0.8.34.dev7.dist-info}/METADATA +13 -15
  382. intentkit-0.8.34.dev7.dist-info/RECORD +478 -0
  383. intentkit-0.8.34.dev7.dist-info/licenses/LICENSE +21 -0
  384. intentkit/core/node.py +0 -215
  385. intentkit/models/conversation.py +0 -286
  386. intentkit/models/generator.py +0 -347
  387. intentkit/skills/cdp/get_balance.py +0 -110
  388. intentkit/skills/cdp/swap.py +0 -121
  389. intentkit/skills/moralis/tests/__init__.py +0 -0
  390. intentkit/skills/moralis/tests/test_wallet.py +0 -511
  391. intentkit-0.7.5.dev3.dist-info/RECORD +0 -424
  392. {intentkit-0.7.5.dev3.dist-info/licenses → intentkit}/LICENSE +0 -0
  393. {intentkit-0.7.5.dev3.dist-info → intentkit-0.8.34.dev7.dist-info}/WHEEL +0 -0
@@ -9,29 +9,29 @@
9
9
  "title": "Basic",
10
10
  "order": 1
11
11
  },
12
+ {
13
+ "id": "skills",
14
+ "title": "Skills",
15
+ "order": 2
16
+ },
12
17
  {
13
18
  "id": "llm",
14
19
  "title": "LLM",
15
- "order": 2
20
+ "order": 3
16
21
  },
17
22
  {
18
23
  "id": "onchain",
19
24
  "title": "On-Chain",
20
- "order": 3
25
+ "order": 4
21
26
  },
22
27
  {
23
28
  "id": "examples",
24
29
  "title": "Quick Actions",
25
- "order": 4
30
+ "order": 5
26
31
  },
27
32
  {
28
33
  "id": "entrypoint",
29
34
  "title": "Communication Channels",
30
- "order": 5
31
- },
32
- {
33
- "id": "skills",
34
- "title": "Skills",
35
35
  "order": 6
36
36
  },
37
37
  {
@@ -79,80 +79,11 @@
79
79
  "type": "string",
80
80
  "description": "Select the LLM for your agent. Note that each LLM has its specific advantages, behaviour and cost.",
81
81
  "default": "gpt-5-mini",
82
- "enum": [
83
- "gpt-5-nano",
84
- "gpt-5-mini",
85
- "gpt-5",
86
- "gpt-4.1-nano",
87
- "gpt-4.1-mini",
88
- "gpt-4.1",
89
- "gpt-4o",
90
- "gpt-4o-mini",
91
- "o3",
92
- "o4-mini",
93
- "deepseek-chat",
94
- "deepseek-reasoner",
95
- "grok-2",
96
- "grok-3",
97
- "grok-3-mini",
98
- "eternalai",
99
- "reigent",
100
- "venice-uncensored",
101
- "venice-llama-4-maverick-17b"
102
- ],
82
+ "enum": [],
103
83
  "x-component": "category-select",
104
- "x-enum-title": [
105
- "GPT-5 nano",
106
- "GPT-5 mini",
107
- "GPT-5",
108
- "GPT-4.1 nano",
109
- "GPT-4.1 mini",
110
- "GPT-4.1",
111
- "GPT-4o",
112
- "GPT-4o mini",
113
- "OpenAI o3",
114
- "OpenAI o4-mini",
115
- "Deepseek V3.1",
116
- "Deepseek V3.1 Thinking",
117
- "Grok 2",
118
- "Grok 3",
119
- "Grok 3 Mini"
120
- ],
121
- "x-enum-category": [
122
- "OpenAI",
123
- "OpenAI",
124
- "OpenAI",
125
- "OpenAI",
126
- "OpenAI",
127
- "OpenAI",
128
- "OpenAI",
129
- "OpenAI",
130
- "OpenAI",
131
- "OpenAI",
132
- "Deepseek",
133
- "Deepseek",
134
- "Grok",
135
- "Grok",
136
- "Grok"
137
- ],
138
- "x-support-skill": [
139
- true,
140
- true,
141
- true,
142
- true,
143
- true,
144
- true,
145
- true,
146
- true,
147
- true,
148
- true,
149
- true,
150
- true,
151
- true,
152
- true,
153
- true,
154
- true
155
- ],
84
+ "x-enum-title": [],
85
+ "x-enum-category": [],
86
+ "x-support-skill": [],
156
87
  "x-group": "llm"
157
88
  },
158
89
  "purpose": {
@@ -218,6 +149,18 @@
218
149
  "x-str-type": "prompt",
219
150
  "x-group": "llm"
220
151
  },
152
+ "short_term_memory_strategy": {
153
+ "title": "Short Term Memory Strategy",
154
+ "type": "string",
155
+ "description": "Strategy for managing short-term memory when context limit is reached. 'trim' removes oldest messages, 'summarize' creates summaries.",
156
+ "default": "trim",
157
+ "enum": [
158
+ "trim",
159
+ "summarize"
160
+ ],
161
+ "x-group": "llm",
162
+ "x-advanced": true
163
+ },
221
164
  "temperature": {
222
165
  "title": "Temperature",
223
166
  "type": "number",
@@ -226,7 +169,8 @@
226
169
  "minimum": 0.0,
227
170
  "maximum": 1.5,
228
171
  "x-group": "llm",
229
- "x-step": 0.1
172
+ "x-step": 0.1,
173
+ "x-advanced": true
230
174
  },
231
175
  "frequency_penalty": {
232
176
  "title": "Frequency Penalty",
@@ -236,7 +180,8 @@
236
180
  "minimum": -2.0,
237
181
  "maximum": 2.0,
238
182
  "x-group": "llm",
239
- "x-step": 0.1
183
+ "x-step": 0.1,
184
+ "x-advanced": true
240
185
  },
241
186
  "presence_penalty": {
242
187
  "title": "Presence Penalty",
@@ -246,18 +191,8 @@
246
191
  "minimum": -2.0,
247
192
  "maximum": 2.0,
248
193
  "x-group": "llm",
249
- "x-step": 0.1
250
- },
251
- "short_term_memory_strategy": {
252
- "title": "Short Term Memory Strategy",
253
- "type": "string",
254
- "description": "Strategy for managing short-term memory when context limit is reached. 'trim' removes oldest messages, 'summarize' creates summaries.",
255
- "default": "trim",
256
- "enum": [
257
- "trim",
258
- "summarize"
259
- ],
260
- "x-group": "llm"
194
+ "x-step": 0.1,
195
+ "x-advanced": true
261
196
  },
262
197
  "telegram_entrypoint_enabled": {
263
198
  "title": "Enable Telegram Communication",
@@ -318,155 +253,10 @@
318
253
  "skills": {
319
254
  "title": "Skills",
320
255
  "type": "object",
321
- "description": "Dict of skills and their corresponding configurations",
256
+ "description": "Please choose the Agent's skills carefully. Excessive skills will pollute the context and reduce the Agent's intelligence. Only select the necessary skills, and it is best not to exceed 10.",
322
257
  "x-group": "skills",
323
258
  "x-inline": true,
324
- "properties": {
325
- "allora": {
326
- "title": "Allora",
327
- "$ref": "../skills/allora/schema.json"
328
- },
329
- "cdp": {
330
- "title": "Coinbase Wallet",
331
- "$ref": "../skills/cdp/schema.json"
332
- },
333
- "dapplooker": {
334
- "title": "DappLooker",
335
- "$ref": "../skills/dapplooker/schema.json"
336
- },
337
- "elfa": {
338
- "title": "Elfa",
339
- "$ref": "../skills/elfa/schema.json"
340
- },
341
- "openai": {
342
- "title": "OpenAI",
343
- "$ref": "../skills/openai/schema.json"
344
- },
345
- "portfolio": {
346
- "title": "Blockchain Portfolio",
347
- "$ref": "../skills/portfolio/schema.json"
348
- },
349
- "tavily": {
350
- "title": "Tavily",
351
- "$ref": "../skills/tavily/schema.json"
352
- },
353
- "token": {
354
- "title": "Token Operations",
355
- "$ref": "../skills/token/schema.json"
356
- },
357
- "twitter": {
358
- "title": "X",
359
- "$ref": "../skills/twitter/schema.json"
360
- },
361
- "xmtp": {
362
- "title": "XMTP",
363
- "$ref": "../skills/xmtp/schema.json"
364
- },
365
- "chainlist": {
366
- "title": "Chainlist RPC Endpoints",
367
- "$ref": "../skills/chainlist/schema.json"
368
- },
369
- "dexscreener": {
370
- "title": "DEX Screener",
371
- "$ref": "../skills/dexscreener/schema.json"
372
- },
373
- "heurist": {
374
- "title": "Heurist",
375
- "$ref": "../skills/heurist/schema.json"
376
- },
377
- "nation": {
378
- "title": "Nation",
379
- "$ref": "../skills/nation/schema.json"
380
- },
381
- "defillama": {
382
- "title": "Defillama",
383
- "$ref": "../skills/defillama/schema.json"
384
- },
385
- "enso": {
386
- "title": "Enso",
387
- "$ref": "../skills/enso/schema.json"
388
- },
389
- "common": {
390
- "title": "Common",
391
- "$ref": "../skills/common/schema.json"
392
- },
393
- "github": {
394
- "title": "GitHub",
395
- "$ref": "../skills/github/schema.json"
396
- },
397
- "moralis": {
398
- "title": "Moralis",
399
- "$ref": "../skills/moralis/schema.json"
400
- },
401
- "system": {
402
- "title": "System",
403
- "$ref": "../skills/system/schema.json"
404
- },
405
- "http": {
406
- "title": "HTTP Client",
407
- "$ref": "../skills/http/schema.json"
408
- },
409
- "web_scraper": {
410
- "title": "Web Scraper & Content Indexing",
411
- "$ref": "../skills/web_scraper/schema.json"
412
- },
413
- "firecrawl": {
414
- "title": "Firecrawl Web Scraping",
415
- "$ref": "../skills/firecrawl/schema.json"
416
- },
417
- "aixbt": {
418
- "title": "AIXBT",
419
- "$ref": "../skills/aixbt/schema.json"
420
- },
421
- "cookiefun": {
422
- "title": "cookie.fun",
423
- "$ref": "../skills/cookiefun/schema.json"
424
- },
425
- "cryptocompare": {
426
- "title": "Cryptocompare",
427
- "$ref": "../skills/cryptocompare/schema.json"
428
- },
429
- "cryptopanic": {
430
- "title": "CryptoPanic",
431
- "$ref": "../skills/cryptopanic/schema.json"
432
- },
433
- "dune_analytics": {
434
- "title": "Dune Analytics",
435
- "$ref": "../skills/dune_analytics/schema.json"
436
- },
437
- "slack": {
438
- "title": "Slack",
439
- "$ref": "../skills/slack/schema.json"
440
- },
441
- "supabase": {
442
- "title": "Supabase",
443
- "$ref": "../skills/supabase/schema.json"
444
- },
445
- "venice_audio": {
446
- "title": "Venice Audio",
447
- "$ref": "../skills/venice_audio/schema.json"
448
- },
449
- "venice_image": {
450
- "title": "Venice Image",
451
- "$ref": "../skills/venice_image/schema.json"
452
- },
453
- "unrealspeech": {
454
- "title": "UnrealSpeech",
455
- "$ref": "../skills/unrealspeech/schema.json"
456
- },
457
- "carv": {
458
- "title": "Carv",
459
- "$ref": "../skills/carv/schema.json"
460
- },
461
- "lifi": {
462
- "title": "LiFi",
463
- "$ref": "../skills/lifi/schema.json"
464
- },
465
- "casino": {
466
- "title": "Casino",
467
- "$ref": "../skills/casino/schema.json"
468
- }
469
- }
259
+ "properties": {}
470
260
  },
471
261
  "autonomous": {
472
262
  "title": "Autonomous",
@@ -541,11 +331,13 @@
541
331
  "description": "Provider of the agent's wallet, choose cdp if you want the agent to have it's own wallet.",
542
332
  "enum": [
543
333
  "cdp",
544
- "readonly"
334
+ "readonly",
335
+ "none"
545
336
  ],
546
337
  "x-enum-title": [
547
338
  "Coinbase Server Wallet V2",
548
- "Readonly Wallet"
339
+ "Readonly Wallet",
340
+ "None"
549
341
  ],
550
342
  "default": "cdp",
551
343
  "x-group": "onchain"
@@ -556,16 +348,11 @@
556
348
  "description": "Default Network, please note that some CDP Wallet native skills like swap only support the base network.",
557
349
  "default": "base-mainnet",
558
350
  "enum": [
351
+ "base-mainnet",
559
352
  "ethereum-mainnet",
560
- "ethereum-sepolia",
561
353
  "polygon-mainnet",
562
- "polygon-mumbai",
563
- "base-mainnet",
564
- "base-sepolia",
565
354
  "arbitrum-mainnet",
566
- "arbitrum-sepolia",
567
- "optimism-mainnet",
568
- "optimism-sepolia"
355
+ "optimism-mainnet"
569
356
  ],
570
357
  "x-group": "onchain"
571
358
  }
@@ -1,14 +1,16 @@
1
1
  import time
2
- from datetime import datetime, timezone
2
+ from datetime import UTC, datetime
3
3
  from decimal import ROUND_HALF_UP, Decimal
4
4
  from enum import Enum
5
- from typing import Annotated, Any, Dict, List
5
+ from typing import Annotated, Any
6
6
 
7
- from intentkit.models.base import Base
8
- from intentkit.models.db import get_session
9
7
  from pydantic import BaseModel, ConfigDict, Field, field_validator
10
- from sqlalchemy import Column, DateTime, String, func, select
8
+ from sqlalchemy import DateTime, String, func, select
11
9
  from sqlalchemy.dialects.postgresql import JSON, JSONB
10
+ from sqlalchemy.orm import Mapped, mapped_column
11
+
12
+ from intentkit.models.base import Base
13
+ from intentkit.models.db import get_session
12
14
 
13
15
 
14
16
  class SystemMessageType(str, Enum):
@@ -33,7 +35,7 @@ DEFAULT_SYSTEM_MESSAGES = {
33
35
  }
34
36
 
35
37
  # In-memory cache for app settings
36
- _cache: Dict[str, Dict[str, Any]] = {}
38
+ _cache: dict[str, dict[str, Any]] = {}
37
39
  _cache_ttl = 180 # 3 minutes in seconds
38
40
 
39
41
 
@@ -42,24 +44,24 @@ class AppSettingTable(Base):
42
44
 
43
45
  __tablename__ = "app_settings"
44
46
 
45
- key = Column(
47
+ key: Mapped[str] = mapped_column(
46
48
  String,
47
49
  primary_key=True,
48
50
  )
49
- value = Column(
51
+ value: Mapped[Any] = mapped_column(
50
52
  JSON().with_variant(JSONB(), "postgresql"),
51
53
  nullable=False,
52
54
  )
53
- created_at = Column(
55
+ created_at: Mapped[datetime] = mapped_column(
54
56
  DateTime(timezone=True),
55
57
  nullable=False,
56
58
  server_default=func.now(),
57
59
  )
58
- updated_at = Column(
60
+ updated_at: Mapped[datetime] = mapped_column(
59
61
  DateTime(timezone=True),
60
62
  nullable=False,
61
63
  server_default=func.now(),
62
- onupdate=lambda: datetime.now(timezone.utc),
64
+ onupdate=lambda: datetime.now(UTC),
63
65
  )
64
66
 
65
67
 
@@ -117,7 +119,7 @@ class PaymentSettings(BaseModel):
117
119
  Field(default=False, description="Whether agent whitelist is enabled"),
118
120
  ]
119
121
  agent_whitelist: Annotated[
120
- List[str],
122
+ list[str],
121
123
  Field(default_factory=list, description="List of whitelisted agent IDs"),
122
124
  ]
123
125
 
@@ -133,7 +135,7 @@ class PaymentSettings(BaseModel):
133
135
  """Round decimal values to 4 decimal places."""
134
136
  if isinstance(v, Decimal):
135
137
  return v.quantize(Decimal("0.0001"), rounding=ROUND_HALF_UP)
136
- elif isinstance(v, (int, float)):
138
+ elif isinstance(v, int | float):
137
139
  return Decimal(str(v)).quantize(Decimal("0.0001"), rounding=ROUND_HALF_UP)
138
140
  return v
139
141