intentkit 0.6.13.dev2__py3-none-any.whl → 0.8.17__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (385) hide show
  1. intentkit/__init__.py +1 -1
  2. intentkit/abstracts/agent.py +4 -5
  3. intentkit/abstracts/engine.py +5 -5
  4. intentkit/abstracts/graph.py +14 -7
  5. intentkit/abstracts/skill.py +6 -144
  6. intentkit/abstracts/twitter.py +4 -5
  7. intentkit/clients/__init__.py +5 -2
  8. intentkit/clients/cdp.py +101 -141
  9. intentkit/clients/twitter.py +83 -62
  10. intentkit/clients/web3.py +29 -0
  11. intentkit/config/config.py +8 -5
  12. intentkit/core/agent.py +472 -195
  13. intentkit/core/asset.py +253 -0
  14. intentkit/core/chat.py +51 -0
  15. intentkit/core/client.py +1 -1
  16. intentkit/core/credit.py +460 -130
  17. intentkit/core/engine.py +262 -233
  18. intentkit/core/node.py +15 -16
  19. intentkit/core/prompt.py +62 -28
  20. intentkit/core/scheduler.py +92 -0
  21. intentkit/core/statistics.py +168 -0
  22. intentkit/models/agent.py +1096 -949
  23. intentkit/models/agent_data.py +68 -38
  24. intentkit/models/agent_public.json +98 -0
  25. intentkit/models/agent_schema.json +54 -439
  26. intentkit/models/app_setting.py +96 -33
  27. intentkit/models/chat.py +74 -27
  28. intentkit/models/conversation.py +8 -8
  29. intentkit/models/credit.py +362 -74
  30. intentkit/models/db.py +26 -8
  31. intentkit/models/db_mig.py +2 -2
  32. intentkit/models/llm.csv +28 -0
  33. intentkit/models/llm.py +185 -350
  34. intentkit/models/redis.py +6 -4
  35. intentkit/models/skill.py +186 -72
  36. intentkit/models/skills.csv +174 -0
  37. intentkit/models/user.py +82 -24
  38. intentkit/skills/acolyt/__init__.py +2 -9
  39. intentkit/skills/acolyt/ask.py +3 -4
  40. intentkit/skills/acolyt/base.py +4 -9
  41. intentkit/skills/acolyt/schema.json +4 -3
  42. intentkit/skills/aixbt/__init__.py +2 -13
  43. intentkit/skills/aixbt/base.py +1 -7
  44. intentkit/skills/aixbt/projects.py +14 -15
  45. intentkit/skills/aixbt/schema.json +4 -4
  46. intentkit/skills/allora/__init__.py +2 -9
  47. intentkit/skills/allora/base.py +4 -9
  48. intentkit/skills/allora/price.py +3 -4
  49. intentkit/skills/allora/schema.json +3 -2
  50. intentkit/skills/base.py +248 -85
  51. intentkit/skills/basename/__init__.py +51 -0
  52. intentkit/skills/basename/base.py +11 -0
  53. intentkit/skills/basename/basename.svg +11 -0
  54. intentkit/skills/basename/schema.json +58 -0
  55. intentkit/skills/carv/__init__.py +115 -121
  56. intentkit/skills/carv/base.py +184 -185
  57. intentkit/skills/carv/fetch_news.py +3 -3
  58. intentkit/skills/carv/onchain_query.py +4 -4
  59. intentkit/skills/carv/schema.json +134 -137
  60. intentkit/skills/carv/token_info_and_price.py +5 -5
  61. intentkit/skills/casino/README.md +254 -0
  62. intentkit/skills/casino/__init__.py +86 -0
  63. intentkit/skills/casino/base.py +17 -0
  64. intentkit/skills/casino/casino.png +0 -0
  65. intentkit/skills/casino/deck_draw.py +127 -0
  66. intentkit/skills/casino/deck_shuffle.py +118 -0
  67. intentkit/skills/casino/dice_roll.py +100 -0
  68. intentkit/skills/casino/schema.json +77 -0
  69. intentkit/skills/casino/utils.py +107 -0
  70. intentkit/skills/cdp/__init__.py +22 -84
  71. intentkit/skills/cdp/base.py +1 -7
  72. intentkit/skills/cdp/schema.json +11 -314
  73. intentkit/skills/chainlist/__init__.py +2 -7
  74. intentkit/skills/chainlist/base.py +1 -7
  75. intentkit/skills/chainlist/chain_lookup.py +18 -18
  76. intentkit/skills/chainlist/schema.json +3 -5
  77. intentkit/skills/common/__init__.py +2 -9
  78. intentkit/skills/common/base.py +1 -7
  79. intentkit/skills/common/current_time.py +1 -2
  80. intentkit/skills/common/schema.json +2 -2
  81. intentkit/skills/cookiefun/__init__.py +6 -9
  82. intentkit/skills/cookiefun/base.py +2 -7
  83. intentkit/skills/cookiefun/get_account_details.py +7 -7
  84. intentkit/skills/cookiefun/get_account_feed.py +19 -19
  85. intentkit/skills/cookiefun/get_account_smart_followers.py +7 -7
  86. intentkit/skills/cookiefun/get_sectors.py +3 -3
  87. intentkit/skills/cookiefun/schema.json +1 -3
  88. intentkit/skills/cookiefun/search_accounts.py +9 -9
  89. intentkit/skills/cryptocompare/__init__.py +7 -24
  90. intentkit/skills/cryptocompare/api.py +2 -3
  91. intentkit/skills/cryptocompare/base.py +11 -25
  92. intentkit/skills/cryptocompare/fetch_news.py +4 -5
  93. intentkit/skills/cryptocompare/fetch_price.py +6 -7
  94. intentkit/skills/cryptocompare/fetch_top_exchanges.py +4 -5
  95. intentkit/skills/cryptocompare/fetch_top_market_cap.py +4 -5
  96. intentkit/skills/cryptocompare/fetch_top_volume.py +4 -5
  97. intentkit/skills/cryptocompare/fetch_trading_signals.py +5 -6
  98. intentkit/skills/cryptocompare/schema.json +3 -3
  99. intentkit/skills/cryptopanic/__init__.py +7 -10
  100. intentkit/skills/cryptopanic/base.py +51 -55
  101. intentkit/skills/cryptopanic/fetch_crypto_news.py +4 -8
  102. intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +5 -7
  103. intentkit/skills/cryptopanic/schema.json +105 -103
  104. intentkit/skills/dapplooker/__init__.py +2 -9
  105. intentkit/skills/dapplooker/base.py +4 -9
  106. intentkit/skills/dapplooker/dapplooker_token_data.py +7 -7
  107. intentkit/skills/dapplooker/schema.json +3 -5
  108. intentkit/skills/defillama/__init__.py +24 -74
  109. intentkit/skills/defillama/api.py +6 -9
  110. intentkit/skills/defillama/base.py +11 -21
  111. intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +8 -10
  112. intentkit/skills/defillama/coins/fetch_block.py +6 -8
  113. intentkit/skills/defillama/coins/fetch_current_prices.py +8 -10
  114. intentkit/skills/defillama/coins/fetch_first_price.py +7 -9
  115. intentkit/skills/defillama/coins/fetch_historical_prices.py +9 -11
  116. intentkit/skills/defillama/coins/fetch_price_chart.py +9 -11
  117. intentkit/skills/defillama/coins/fetch_price_percentage.py +7 -9
  118. intentkit/skills/defillama/config/chains.py +1 -3
  119. intentkit/skills/defillama/fees/fetch_fees_overview.py +24 -26
  120. intentkit/skills/defillama/schema.json +5 -1
  121. intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +16 -18
  122. intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +8 -10
  123. intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +5 -7
  124. intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +7 -9
  125. intentkit/skills/defillama/tests/api_integration.test.py +1 -1
  126. intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +4 -6
  127. intentkit/skills/defillama/tvl/fetch_chains.py +9 -11
  128. intentkit/skills/defillama/tvl/fetch_historical_tvl.py +4 -6
  129. intentkit/skills/defillama/tvl/fetch_protocol.py +32 -38
  130. intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +3 -5
  131. intentkit/skills/defillama/tvl/fetch_protocols.py +37 -45
  132. intentkit/skills/defillama/volumes/fetch_dex_overview.py +42 -48
  133. intentkit/skills/defillama/volumes/fetch_dex_summary.py +35 -37
  134. intentkit/skills/defillama/volumes/fetch_options_overview.py +24 -28
  135. intentkit/skills/defillama/yields/fetch_pool_chart.py +10 -12
  136. intentkit/skills/defillama/yields/fetch_pools.py +26 -30
  137. intentkit/skills/dexscreener/README.md +154 -0
  138. intentkit/skills/dexscreener/__init__.py +97 -93
  139. intentkit/skills/dexscreener/base.py +125 -133
  140. intentkit/skills/dexscreener/get_pair_info.py +158 -0
  141. intentkit/skills/dexscreener/get_token_pairs.py +165 -0
  142. intentkit/skills/dexscreener/get_tokens_info.py +212 -0
  143. intentkit/skills/dexscreener/model/search_token_response.py +80 -82
  144. intentkit/skills/dexscreener/schema.json +91 -48
  145. intentkit/skills/dexscreener/search_token.py +182 -321
  146. intentkit/skills/dexscreener/utils.py +420 -0
  147. intentkit/skills/dune_analytics/__init__.py +7 -9
  148. intentkit/skills/dune_analytics/base.py +48 -52
  149. intentkit/skills/dune_analytics/fetch_kol_buys.py +5 -7
  150. intentkit/skills/dune_analytics/fetch_nation_metrics.py +6 -8
  151. intentkit/skills/dune_analytics/schema.json +104 -99
  152. intentkit/skills/elfa/__init__.py +5 -18
  153. intentkit/skills/elfa/base.py +10 -14
  154. intentkit/skills/elfa/mention.py +19 -21
  155. intentkit/skills/elfa/schema.json +3 -2
  156. intentkit/skills/elfa/stats.py +4 -4
  157. intentkit/skills/elfa/tokens.py +12 -12
  158. intentkit/skills/elfa/utils.py +26 -28
  159. intentkit/skills/enso/__init__.py +11 -31
  160. intentkit/skills/enso/base.py +50 -35
  161. intentkit/skills/enso/best_yield.py +16 -24
  162. intentkit/skills/enso/networks.py +6 -11
  163. intentkit/skills/enso/prices.py +11 -13
  164. intentkit/skills/enso/route.py +34 -38
  165. intentkit/skills/enso/schema.json +3 -2
  166. intentkit/skills/enso/tokens.py +29 -38
  167. intentkit/skills/enso/wallet.py +76 -191
  168. intentkit/skills/erc20/__init__.py +50 -0
  169. intentkit/skills/erc20/base.py +11 -0
  170. intentkit/skills/erc20/erc20.svg +5 -0
  171. intentkit/skills/erc20/schema.json +74 -0
  172. intentkit/skills/erc721/__init__.py +53 -0
  173. intentkit/skills/erc721/base.py +11 -0
  174. intentkit/skills/erc721/erc721.svg +5 -0
  175. intentkit/skills/erc721/schema.json +90 -0
  176. intentkit/skills/firecrawl/README.md +11 -5
  177. intentkit/skills/firecrawl/__init__.py +5 -18
  178. intentkit/skills/firecrawl/base.py +4 -11
  179. intentkit/skills/firecrawl/clear.py +4 -8
  180. intentkit/skills/firecrawl/crawl.py +19 -19
  181. intentkit/skills/firecrawl/query.py +4 -3
  182. intentkit/skills/firecrawl/schema.json +6 -8
  183. intentkit/skills/firecrawl/scrape.py +150 -40
  184. intentkit/skills/firecrawl/utils.py +50 -42
  185. intentkit/skills/github/__init__.py +2 -7
  186. intentkit/skills/github/base.py +1 -7
  187. intentkit/skills/github/github_search.py +1 -2
  188. intentkit/skills/github/schema.json +3 -4
  189. intentkit/skills/heurist/__init__.py +8 -27
  190. intentkit/skills/heurist/base.py +4 -9
  191. intentkit/skills/heurist/image_generation_animagine_xl.py +12 -13
  192. intentkit/skills/heurist/image_generation_arthemy_comics.py +12 -13
  193. intentkit/skills/heurist/image_generation_arthemy_real.py +12 -13
  194. intentkit/skills/heurist/image_generation_braindance.py +12 -13
  195. intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +12 -13
  196. intentkit/skills/heurist/image_generation_flux_1_dev.py +12 -13
  197. intentkit/skills/heurist/image_generation_sdxl.py +12 -13
  198. intentkit/skills/heurist/schema.json +2 -2
  199. intentkit/skills/http/__init__.py +4 -15
  200. intentkit/skills/http/base.py +1 -7
  201. intentkit/skills/http/get.py +21 -16
  202. intentkit/skills/http/post.py +23 -18
  203. intentkit/skills/http/put.py +23 -18
  204. intentkit/skills/http/schema.json +4 -5
  205. intentkit/skills/lifi/__init__.py +8 -13
  206. intentkit/skills/lifi/base.py +1 -7
  207. intentkit/skills/lifi/schema.json +17 -8
  208. intentkit/skills/lifi/token_execute.py +36 -30
  209. intentkit/skills/lifi/token_quote.py +8 -10
  210. intentkit/skills/lifi/utils.py +104 -51
  211. intentkit/skills/moralis/__init__.py +6 -10
  212. intentkit/skills/moralis/api.py +6 -7
  213. intentkit/skills/moralis/base.py +5 -10
  214. intentkit/skills/moralis/fetch_chain_portfolio.py +10 -11
  215. intentkit/skills/moralis/fetch_nft_portfolio.py +22 -22
  216. intentkit/skills/moralis/fetch_solana_portfolio.py +11 -12
  217. intentkit/skills/moralis/fetch_wallet_portfolio.py +8 -9
  218. intentkit/skills/moralis/schema.json +7 -2
  219. intentkit/skills/morpho/__init__.py +52 -0
  220. intentkit/skills/morpho/base.py +11 -0
  221. intentkit/skills/morpho/morpho.svg +12 -0
  222. intentkit/skills/morpho/schema.json +73 -0
  223. intentkit/skills/nation/__init__.py +4 -9
  224. intentkit/skills/nation/base.py +5 -10
  225. intentkit/skills/nation/nft_check.py +3 -4
  226. intentkit/skills/nation/schema.json +4 -3
  227. intentkit/skills/onchain.py +23 -0
  228. intentkit/skills/openai/__init__.py +17 -18
  229. intentkit/skills/openai/base.py +10 -14
  230. intentkit/skills/openai/dalle_image_generation.py +3 -8
  231. intentkit/skills/openai/gpt_avatar_generator.py +102 -0
  232. intentkit/skills/openai/gpt_image_generation.py +4 -8
  233. intentkit/skills/openai/gpt_image_mini_generator.py +91 -0
  234. intentkit/skills/openai/gpt_image_to_image.py +4 -8
  235. intentkit/skills/openai/image_to_text.py +3 -7
  236. intentkit/skills/openai/schema.json +34 -3
  237. intentkit/skills/portfolio/__init__.py +11 -35
  238. intentkit/skills/portfolio/base.py +33 -19
  239. intentkit/skills/portfolio/schema.json +3 -5
  240. intentkit/skills/portfolio/token_balances.py +21 -21
  241. intentkit/skills/portfolio/wallet_approvals.py +17 -18
  242. intentkit/skills/portfolio/wallet_defi_positions.py +3 -3
  243. intentkit/skills/portfolio/wallet_history.py +31 -31
  244. intentkit/skills/portfolio/wallet_net_worth.py +13 -13
  245. intentkit/skills/portfolio/wallet_nfts.py +19 -19
  246. intentkit/skills/portfolio/wallet_profitability.py +18 -18
  247. intentkit/skills/portfolio/wallet_profitability_summary.py +5 -5
  248. intentkit/skills/portfolio/wallet_stats.py +3 -3
  249. intentkit/skills/portfolio/wallet_swaps.py +19 -19
  250. intentkit/skills/pyth/__init__.py +50 -0
  251. intentkit/skills/pyth/base.py +11 -0
  252. intentkit/skills/pyth/pyth.svg +6 -0
  253. intentkit/skills/pyth/schema.json +75 -0
  254. intentkit/skills/skills.toml +40 -0
  255. intentkit/skills/slack/__init__.py +5 -17
  256. intentkit/skills/slack/base.py +3 -9
  257. intentkit/skills/slack/get_channel.py +8 -8
  258. intentkit/skills/slack/get_message.py +9 -9
  259. intentkit/skills/slack/schedule_message.py +5 -5
  260. intentkit/skills/slack/schema.json +2 -2
  261. intentkit/skills/slack/send_message.py +3 -5
  262. intentkit/skills/supabase/__init__.py +7 -23
  263. intentkit/skills/supabase/base.py +9 -13
  264. intentkit/skills/supabase/delete_data.py +5 -6
  265. intentkit/skills/supabase/fetch_data.py +13 -14
  266. intentkit/skills/supabase/insert_data.py +5 -6
  267. intentkit/skills/supabase/invoke_function.py +7 -8
  268. intentkit/skills/supabase/schema.json +2 -3
  269. intentkit/skills/supabase/update_data.py +7 -8
  270. intentkit/skills/supabase/upsert_data.py +5 -6
  271. intentkit/skills/superfluid/__init__.py +53 -0
  272. intentkit/skills/superfluid/base.py +11 -0
  273. intentkit/skills/superfluid/schema.json +89 -0
  274. intentkit/skills/superfluid/superfluid.svg +6 -0
  275. intentkit/skills/system/__init__.py +7 -24
  276. intentkit/skills/system/add_autonomous_task.py +10 -12
  277. intentkit/skills/system/delete_autonomous_task.py +2 -2
  278. intentkit/skills/system/edit_autonomous_task.py +14 -18
  279. intentkit/skills/system/list_autonomous_tasks.py +3 -5
  280. intentkit/skills/system/read_agent_api_key.py +6 -4
  281. intentkit/skills/system/regenerate_agent_api_key.py +6 -4
  282. intentkit/skills/system/schema.json +6 -8
  283. intentkit/skills/tavily/__init__.py +3 -12
  284. intentkit/skills/tavily/base.py +4 -9
  285. intentkit/skills/tavily/schema.json +3 -5
  286. intentkit/skills/tavily/tavily_extract.py +2 -4
  287. intentkit/skills/tavily/tavily_search.py +4 -6
  288. intentkit/skills/token/__init__.py +5 -10
  289. intentkit/skills/token/base.py +7 -11
  290. intentkit/skills/token/erc20_transfers.py +19 -19
  291. intentkit/skills/token/schema.json +3 -6
  292. intentkit/skills/token/token_analytics.py +3 -3
  293. intentkit/skills/token/token_price.py +13 -13
  294. intentkit/skills/token/token_search.py +9 -9
  295. intentkit/skills/twitter/__init__.py +11 -35
  296. intentkit/skills/twitter/base.py +23 -35
  297. intentkit/skills/twitter/follow_user.py +3 -7
  298. intentkit/skills/twitter/get_mentions.py +6 -13
  299. intentkit/skills/twitter/get_timeline.py +5 -13
  300. intentkit/skills/twitter/get_user_by_username.py +3 -7
  301. intentkit/skills/twitter/get_user_tweets.py +6 -14
  302. intentkit/skills/twitter/like_tweet.py +3 -7
  303. intentkit/skills/twitter/post_tweet.py +23 -12
  304. intentkit/skills/twitter/reply_tweet.py +21 -12
  305. intentkit/skills/twitter/retweet.py +3 -7
  306. intentkit/skills/twitter/schema.json +1 -0
  307. intentkit/skills/twitter/search_tweets.py +5 -13
  308. intentkit/skills/unrealspeech/__init__.py +2 -7
  309. intentkit/skills/unrealspeech/base.py +2 -8
  310. intentkit/skills/unrealspeech/schema.json +2 -5
  311. intentkit/skills/unrealspeech/text_to_speech.py +8 -8
  312. intentkit/skills/venice_audio/__init__.py +98 -106
  313. intentkit/skills/venice_audio/base.py +117 -121
  314. intentkit/skills/venice_audio/input.py +41 -41
  315. intentkit/skills/venice_audio/schema.json +151 -152
  316. intentkit/skills/venice_audio/venice_audio.py +38 -21
  317. intentkit/skills/venice_image/__init__.py +147 -154
  318. intentkit/skills/venice_image/api.py +138 -138
  319. intentkit/skills/venice_image/base.py +185 -192
  320. intentkit/skills/venice_image/config.py +33 -35
  321. intentkit/skills/venice_image/image_enhance/image_enhance.py +2 -3
  322. intentkit/skills/venice_image/image_enhance/image_enhance_base.py +21 -23
  323. intentkit/skills/venice_image/image_enhance/image_enhance_input.py +38 -40
  324. intentkit/skills/venice_image/image_generation/image_generation_base.py +9 -9
  325. intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +26 -26
  326. intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +27 -27
  327. intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +26 -26
  328. intentkit/skills/venice_image/image_generation/image_generation_input.py +158 -158
  329. intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +26 -26
  330. intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +26 -26
  331. intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +28 -28
  332. intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +28 -28
  333. intentkit/skills/venice_image/image_upscale/image_upscale.py +3 -3
  334. intentkit/skills/venice_image/image_upscale/image_upscale_base.py +21 -23
  335. intentkit/skills/venice_image/image_upscale/image_upscale_input.py +22 -22
  336. intentkit/skills/venice_image/image_vision/image_vision.py +2 -2
  337. intentkit/skills/venice_image/image_vision/image_vision_base.py +17 -17
  338. intentkit/skills/venice_image/image_vision/image_vision_input.py +9 -9
  339. intentkit/skills/venice_image/schema.json +267 -267
  340. intentkit/skills/venice_image/utils.py +77 -78
  341. intentkit/skills/web_scraper/__init__.py +5 -18
  342. intentkit/skills/web_scraper/base.py +21 -7
  343. intentkit/skills/web_scraper/document_indexer.py +7 -6
  344. intentkit/skills/web_scraper/schema.json +2 -6
  345. intentkit/skills/web_scraper/scrape_and_index.py +15 -15
  346. intentkit/skills/web_scraper/utils.py +62 -63
  347. intentkit/skills/web_scraper/website_indexer.py +17 -19
  348. intentkit/skills/weth/__init__.py +49 -0
  349. intentkit/skills/weth/base.py +11 -0
  350. intentkit/skills/weth/schema.json +58 -0
  351. intentkit/skills/weth/weth.svg +6 -0
  352. intentkit/skills/wow/__init__.py +51 -0
  353. intentkit/skills/wow/base.py +11 -0
  354. intentkit/skills/wow/schema.json +89 -0
  355. intentkit/skills/wow/wow.svg +7 -0
  356. intentkit/skills/x402/__init__.py +61 -0
  357. intentkit/skills/x402/ask_agent.py +98 -0
  358. intentkit/skills/x402/base.py +99 -0
  359. intentkit/skills/x402/http_request.py +117 -0
  360. intentkit/skills/x402/schema.json +45 -0
  361. intentkit/skills/x402/x402.webp +0 -0
  362. intentkit/skills/xmtp/__init__.py +4 -15
  363. intentkit/skills/xmtp/base.py +61 -2
  364. intentkit/skills/xmtp/price.py +18 -13
  365. intentkit/skills/xmtp/schema.json +69 -71
  366. intentkit/skills/xmtp/swap.py +22 -25
  367. intentkit/skills/xmtp/transfer.py +71 -32
  368. intentkit/utils/chain.py +3 -3
  369. intentkit/utils/error.py +14 -1
  370. intentkit/utils/logging.py +2 -4
  371. intentkit/utils/s3.py +59 -7
  372. intentkit/utils/schema.py +100 -0
  373. intentkit/utils/slack_alert.py +7 -8
  374. {intentkit-0.6.13.dev2.dist-info → intentkit-0.8.17.dist-info}/METADATA +14 -16
  375. intentkit-0.8.17.dist-info/RECORD +466 -0
  376. intentkit/abstracts/exception.py +0 -9
  377. intentkit/core/skill.py +0 -200
  378. intentkit/models/generator.py +0 -347
  379. intentkit/skills/cdp/get_balance.py +0 -110
  380. intentkit/skills/cdp/swap.py +0 -121
  381. intentkit/skills/moralis/tests/__init__.py +0 -0
  382. intentkit/skills/moralis/tests/test_wallet.py +0 -511
  383. intentkit-0.6.13.dev2.dist-info/RECORD +0 -409
  384. {intentkit-0.6.13.dev2.dist-info → intentkit-0.8.17.dist-info}/WHEEL +0 -0
  385. {intentkit-0.6.13.dev2.dist-info → intentkit-0.8.17.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  from decimal import Decimal, InvalidOperation
3
- from typing import Any, Dict, Literal, Type
3
+ from typing import Any, Literal
4
4
 
5
5
  from pydantic import BaseModel, Field
6
6
 
@@ -58,14 +58,14 @@ class OnchainQueryTool(CarvBaseTool):
58
58
  "- ETH values are denominated in 18 decimals—consider 10^18 when interpreting amounts.\n"
59
59
  "- Never fabricate or infer data beyond what the tool provides."
60
60
  )
61
- args_schema: Type[BaseModel] = CarvInput
61
+ args_schema: type[BaseModel] = CarvInput
62
62
 
63
63
  async def _arun(
64
64
  self,
65
65
  question: str,
66
66
  chain: str, # type: ignore
67
67
  **kwargs: Any,
68
- ) -> Dict[str, Any]:
68
+ ) -> dict[str, Any]:
69
69
  """
70
70
  Queries the CARV SQL Query API and returns the response.
71
71
  """
@@ -104,7 +104,7 @@ class OnchainQueryTool(CarvBaseTool):
104
104
  }
105
105
 
106
106
 
107
- def _normalize_unit(response_data: Dict[str, Any], chain: str) -> None:
107
+ def _normalize_unit(response_data: dict[str, Any], chain: str) -> None:
108
108
  """
109
109
  Normalizes the 'value' field in on-chain response data to a human-readable format.
110
110
  Adds the corresponding token ticker after the value.
@@ -1,137 +1,134 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "CARV",
4
- "description": "Configuration for the CARV skill.",
5
- "type": "object",
6
- "x-icon": "https://ai.service.crestal.dev/skills/carv/carv.webp",
7
- "x-tags": [
8
- "AI",
9
- "Data",
10
- "Information",
11
- "Analytics",
12
- "Market Data"
13
- ],
14
- "properties": {
15
- "enabled": {
16
- "type": "boolean",
17
- "description": "Enable or disable the CARV skill.",
18
- "default": false
19
- },
20
- "states": {
21
- "type": "object",
22
- "title": "Skill States",
23
- "description": "Enable/disable specific tools for CARV",
24
- "properties": {
25
- "onchain_query": {
26
- "type": "string",
27
- "title": "On-Chain Query",
28
- "enum": [
29
- "disabled",
30
- "public",
31
- "private"
32
- ],
33
- "x-enum-title": [
34
- "Disabled",
35
- "Agent Owner + All Users",
36
- "Agent Owner Only"
37
- ],
38
- "description": "allows you to use the nature language to query the on-chain data. Behind the scean, CARV will use LLM model to interpreate the nature language input and convert into the sql query based on the above schemas",
39
- "default": "public"
40
- },
41
- "token_info_and_price": {
42
- "type": "string",
43
- "title": "Token Information and Price",
44
- "enum": [
45
- "disabled",
46
- "public",
47
- "private"
48
- ],
49
- "x-enum-title": [
50
- "Disabled",
51
- "Agent Owner + All Users",
52
- "Agent Owner Only"
53
- ],
54
- "description": "Fetches detailed information and current USD price of a cryptocurrency token from CARV API using its ticker symbol (e.g., 'eth', 'btc'), returning metadata like name, symbol, platform, categories, and contract addresses, useful for understanding its identity, ecosystem, market value, and for obtaining comprehensive token data with live pricing.",
55
- "default": "public"
56
- },
57
- "fetch_news": {
58
- "type": "string",
59
- "title": "Fetch News",
60
- "enum": [
61
- "disabled",
62
- "public",
63
- "private"
64
- ],
65
- "x-enum-title": [
66
- "Disabled",
67
- "Agent Owner + All Users",
68
- "Agent Owner Only"
69
- ],
70
- "description": "retrieves a list of recent news items, each including a title, URL, and a short description",
71
- "default": "disabled"
72
- }
73
- }
74
- },
75
- "api_key_provider": {
76
- "type": "string",
77
- "title": "API Key Provider",
78
- "description": "Provider of the API key",
79
- "enum": [
80
- "agent_owner",
81
- "platform"
82
- ],
83
- "x-enum-title": [
84
- "Owner Provided",
85
- "Nation Hosted"
86
- ],
87
- "default": "platform"
88
- }
89
- },
90
- "required": [
91
- "enabled",
92
- "states"
93
- ],
94
- "if": {
95
- "allOf": [
96
- {
97
- "properties": {
98
- "enabled": {
99
- "const": true
100
- }
101
- }
102
- },
103
- {
104
- "properties": {
105
- "api_key_provider": {
106
- "const": "agent_owner"
107
- }
108
- }
109
- }
110
- ]
111
- },
112
- "then": {
113
- "properties": {
114
- "api_key": {
115
- "type": "string",
116
- "title": "CARV API Key",
117
- "x-link": "[Get your API key](https://docs.carv.io/d.a.t.a.-ai-framework/api-documentation#authentication)",
118
- "x-sensitive": true,
119
- "description": "API Key for authenticating with the CARV API."
120
- },
121
- "rate_limit_number": {
122
- "type": "integer",
123
- "title": "Rate Limit Number",
124
- "description": "Number of requests allowed per time window."
125
- },
126
- "rate_limit_minutes": {
127
- "type": "integer",
128
- "title": "Rate Limit Minutes",
129
- "description": "Time window in minutes for rate limiting."
130
- }
131
- },
132
- "required": [
133
- "api_key"
134
- ]
135
- },
136
- "additionalProperties": true
137
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "CARV",
4
+ "description": "Configuration for the CARV skill.",
5
+ "type": "object",
6
+ "x-icon": "https://ai.service.crestal.dev/skills/carv/carv.webp",
7
+ "x-tags": [
8
+ "Analytics",
9
+ "Crypto"
10
+ ],
11
+ "properties": {
12
+ "enabled": {
13
+ "type": "boolean",
14
+ "description": "Enable or disable the CARV skill.",
15
+ "default": false
16
+ },
17
+ "states": {
18
+ "type": "object",
19
+ "title": "Skill States",
20
+ "description": "Enable/disable specific tools for CARV",
21
+ "properties": {
22
+ "onchain_query": {
23
+ "type": "string",
24
+ "title": "On-Chain Query",
25
+ "enum": [
26
+ "disabled",
27
+ "public",
28
+ "private"
29
+ ],
30
+ "x-enum-title": [
31
+ "Disabled",
32
+ "Agent Owner + All Users",
33
+ "Agent Owner Only"
34
+ ],
35
+ "description": "allows you to use the nature language to query the on-chain data. Behind the scean, CARV will use LLM model to interpreate the nature language input and convert into the sql query based on the above schemas",
36
+ "default": "public"
37
+ },
38
+ "token_info_and_price": {
39
+ "type": "string",
40
+ "title": "Token Information and Price",
41
+ "enum": [
42
+ "disabled",
43
+ "public",
44
+ "private"
45
+ ],
46
+ "x-enum-title": [
47
+ "Disabled",
48
+ "Agent Owner + All Users",
49
+ "Agent Owner Only"
50
+ ],
51
+ "description": "Fetches detailed information and current USD price of a cryptocurrency token from CARV API using its ticker symbol (e.g., 'eth', 'btc'), returning metadata like name, symbol, platform, categories, and contract addresses, useful for understanding its identity, ecosystem, market value, and for obtaining comprehensive token data with live pricing.",
52
+ "default": "public"
53
+ },
54
+ "fetch_news": {
55
+ "type": "string",
56
+ "title": "Fetch News",
57
+ "enum": [
58
+ "disabled",
59
+ "public",
60
+ "private"
61
+ ],
62
+ "x-enum-title": [
63
+ "Disabled",
64
+ "Agent Owner + All Users",
65
+ "Agent Owner Only"
66
+ ],
67
+ "description": "retrieves a list of recent news items, each including a title, URL, and a short description",
68
+ "default": "disabled"
69
+ }
70
+ }
71
+ },
72
+ "api_key_provider": {
73
+ "type": "string",
74
+ "title": "API Key Provider",
75
+ "description": "Provider of the API key",
76
+ "enum": [
77
+ "agent_owner",
78
+ "platform"
79
+ ],
80
+ "x-enum-title": [
81
+ "Owner Provided",
82
+ "Nation Hosted"
83
+ ],
84
+ "default": "platform"
85
+ }
86
+ },
87
+ "required": [
88
+ "enabled",
89
+ "states"
90
+ ],
91
+ "if": {
92
+ "allOf": [
93
+ {
94
+ "properties": {
95
+ "enabled": {
96
+ "const": true
97
+ }
98
+ }
99
+ },
100
+ {
101
+ "properties": {
102
+ "api_key_provider": {
103
+ "const": "agent_owner"
104
+ }
105
+ }
106
+ }
107
+ ]
108
+ },
109
+ "then": {
110
+ "properties": {
111
+ "api_key": {
112
+ "type": "string",
113
+ "title": "CARV API Key",
114
+ "x-link": "[Get your API key](https://docs.carv.io/d.a.t.a.-ai-framework/api-documentation#authentication)",
115
+ "x-sensitive": true,
116
+ "description": "API Key for authenticating with the CARV API."
117
+ },
118
+ "rate_limit_number": {
119
+ "type": "integer",
120
+ "title": "Rate Limit Number",
121
+ "description": "Number of requests allowed per time window."
122
+ },
123
+ "rate_limit_minutes": {
124
+ "type": "integer",
125
+ "title": "Rate Limit Minutes",
126
+ "description": "Time window in minutes for rate limiting."
127
+ }
128
+ },
129
+ "required": [
130
+ "api_key"
131
+ ]
132
+ },
133
+ "additionalProperties": true
134
+ }
@@ -1,6 +1,6 @@
1
1
  import logging
2
2
  import re
3
- from typing import Any, Dict, Optional, Type
3
+ from typing import Any
4
4
 
5
5
  from pydantic import BaseModel, Field
6
6
 
@@ -16,7 +16,7 @@ class TokenInfoAndPriceInput(BaseModel):
16
16
  token_name: str = Field(
17
17
  description="The token name (e.g ethereum, bitcoin, solana, ripple)"
18
18
  )
19
- amount: Optional[float] = Field(
19
+ amount: float | None = Field(
20
20
  description="(optional) amount of token, fill this if user asking for how much x amount of specific token worth"
21
21
  )
22
22
 
@@ -38,15 +38,15 @@ class TokenInfoAndPriceTool(CarvBaseTool):
38
38
  "Useful for understanding a token's identity, ecosystem, and market value"
39
39
  "Use this tool when you need comprehensive token data and live pricing from CARV."
40
40
  )
41
- args_schema: Type[BaseModel] = TokenInfoAndPriceInput
41
+ args_schema: type[BaseModel] = TokenInfoAndPriceInput
42
42
 
43
43
  async def _arun(
44
44
  self,
45
45
  ticker: str,
46
46
  token_name: str,
47
- amount: Optional[float] = 1, # type: ignore
47
+ amount: float | None = 1, # type: ignore
48
48
  **kwargs: Any,
49
- ) -> Dict[str, Any]:
49
+ ) -> dict[str, Any]:
50
50
  if not ticker:
51
51
  return {
52
52
  "error": True,
@@ -0,0 +1,254 @@
1
+ # Casino Skills for IntentKit
2
+
3
+ The Casino skills provide comprehensive gambling and gaming capabilities for AI agents, enabling interactive card games, dice games, and casino-style entertainment.
4
+
5
+ ## 🎯 Overview
6
+
7
+ This skill set includes three main functions:
8
+ - **Deck Shuffling**: Create and shuffle card decks with customizable options
9
+ - **Card Drawing**: Draw cards with visual PNG/SVG images
10
+ - **Quantum Dice Rolling**: True random dice using quantum number generation
11
+
12
+ ## 🛠️ Available Skills
13
+
14
+ ### 1. `casino_deck_shuffle`
15
+ Creates and shuffles new card decks with options for multiple decks and jokers.
16
+
17
+ **Parameters:**
18
+ - `deck_count` (int): Number of decks (1-6, default: 1)
19
+ - `jokers_enabled` (bool): Include jokers (default: false)
20
+
21
+ ### 2. `casino_deck_draw`
22
+ Draws cards from the current deck with detailed information and images.
23
+
24
+ **Parameters:**
25
+ - `count` (int): Number of cards to draw (1-10, default: 1)
26
+
27
+ ### 3. `casino_dice_roll`
28
+ Rolls quantum random dice with visual representation.
29
+
30
+ **Parameters:**
31
+ - `dice_count` (int): Number of dice to roll (1-10, default: 1)
32
+
33
+ ## 🎮 Game Examples
34
+
35
+ ### 🃏 Blackjack (21)
36
+
37
+ **Setup:**
38
+ ```
39
+ Agent: I'll set up a Blackjack game for you! Let me shuffle a fresh deck.
40
+ [Calls casino_deck_shuffle with deck_count=1]
41
+ ```
42
+
43
+ **Dealing Cards:**
44
+ ```
45
+ Agent: Dealing your cards...
46
+ [Calls casino_deck_draw with count=2 for player]
47
+ [Calls casino_deck_draw with count=1 for dealer, 1 face down]
48
+
49
+ Result: You have: King♠️ (image) + 7♥️ (image) = 17
50
+ Dealer shows: Ace♣️ (image) + [hidden card]
51
+ ```
52
+
53
+ **Player Actions:**
54
+ ```
55
+ User: "Hit me"
56
+ Agent: [Calls casino_deck_draw with count=1]
57
+ Result: You drew 3♦️ (image). Total: 20
58
+
59
+ User: "Stand"
60
+ Agent: Revealing dealer's hidden card...
61
+ [Calls casino_deck_draw for dealer's hidden card and additional cards as needed]
62
+ ```
63
+
64
+ ### 🎲 Craps
65
+
66
+ **Come Out Roll:**
67
+ ```
68
+ Agent: Welcome to the Craps table! Place your bets and let's roll!
69
+ [Calls casino_dice_roll with dice_count=2]
70
+
71
+ Result: 🎲 Rolled: ⚂ ⚃ (3 + 4 = 7) - WINNER!
72
+ The shooter made their point on the come out roll!
73
+ ```
74
+
75
+ **Point Phase:**
76
+ ```
77
+ Agent: Point is 6. Rolling again...
78
+ [Calls casino_dice_roll with dice_count=2]
79
+
80
+ Result: 🎲 Rolled: ⚁ ⚄ (2 + 5 = 7) - Seven out!
81
+ New shooter coming up.
82
+ ```
83
+
84
+ ### 🃏 Texas Hold'em Poker
85
+
86
+ **Pre-flop:**
87
+ ```
88
+ Agent: Dealing pocket cards...
89
+ [Calls casino_deck_shuffle with deck_count=1]
90
+ [Calls casino_deck_draw with count=2 for each player]
91
+
92
+ Your cards: A♠️ (image) K♠️ (image) - Ace-King suited!
93
+ ```
94
+
95
+ **The Flop:**
96
+ ```
97
+ Agent: Dealing the flop...
98
+ [Calls casino_deck_draw with count=3]
99
+
100
+ Flop: A♦️ (image) K♣️ (image) 7♠️ (image)
101
+ You have two pair - Aces and Kings!
102
+ ```
103
+
104
+ **Turn and River:**
105
+ ```
106
+ Agent: Turn card...
107
+ [Calls casino_deck_draw with count=1]
108
+ Turn: Q♠️ (image)
109
+
110
+ River card...
111
+ [Calls casino_deck_draw with count=1]
112
+ River: J♠️ (image)
113
+
114
+ Final board: A♦️ K♣️ 7♠️ Q♠️ J♠️
115
+ You have a straight! A-K-Q-J-10
116
+ ```
117
+
118
+ ### 🎯 Yahtzee
119
+
120
+ **First Roll:**
121
+ ```
122
+ Agent: Rolling all 5 dice for Yahtzee!
123
+ [Calls casino_dice_roll with dice_count=5]
124
+
125
+ Result: ⚀ ⚃ ⚃ ⚄ ⚅ (1, 4, 4, 5, 6)
126
+ Which dice would you like to keep?
127
+ ```
128
+
129
+ **Rerolls:**
130
+ ```
131
+ User: "Keep the two 4s"
132
+ Agent: Rerolling 3 dice...
133
+ [Calls casino_dice_roll with dice_count=3]
134
+
135
+ Result: ⚃ ⚃ ⚃ (4, 4, 4) - Combined with your kept dice: ⚃ ⚃ ⚃ ⚃ ⚃
136
+ YAHTZEE! Five of a kind - 4s! 🎉
137
+ ```
138
+
139
+ ### 🎲 Liar's Dice
140
+
141
+ **Round Start:**
142
+ ```
143
+ Agent: Everyone roll your dice under the cup!
144
+ [Each player calls casino_dice_roll with dice_count=5]
145
+
146
+ Your dice (hidden): ⚁ ⚁ ⚂ ⚄ ⚅ (2, 2, 3, 5, 6)
147
+ ```
148
+
149
+ **Bidding:**
150
+ ```
151
+ User: "I bid three 2s"
152
+ Agent: Player 2 bids four 3s...
153
+ Player 3 calls "Liar!" on Player 2.
154
+
155
+ Revealing all dice...
156
+ [Shows all dice rolled by each player]
157
+ Total 3s on table: 2 dice
158
+ Player 2 bid four 3s but there were only 2. Player 2 loses a die!
159
+ ```
160
+
161
+ ### 🃏 War (Card Game)
162
+
163
+ **Battle:**
164
+ ```
165
+ Agent: Time for War! Each player draws one card.
166
+ [Calls casino_deck_draw with count=1 for each player]
167
+
168
+ You: Q♦️ (image) - Queen of Diamonds
169
+ Opponent: 8♣️ (image) - Eight of Clubs
170
+
171
+ Queen beats 8 - You win this round!
172
+ ```
173
+
174
+ **War Declaration:**
175
+ ```
176
+ Agent: Both players drew Kings! It's WAR!
177
+ [Calls casino_deck_draw with count=4 for each player - 3 face down, 1 face up]
178
+
179
+ Your war card: A♠️ (image) - Ace of Spades
180
+ Opponent's war card: 10♥️ (image) - Ten of Hearts
181
+
182
+ Ace beats 10 - You win the entire war pile!
183
+ ```
184
+
185
+ ## 🎨 Visual Features
186
+
187
+ ### Card Images
188
+ Each card comes with both PNG and SVG images:
189
+ ```json
190
+ {
191
+ "value": "ACE",
192
+ "suit": "SPADES",
193
+ "code": "AS",
194
+ "image": "https://deckofcardsapi.com/static/img/AS.png",
195
+ "svg_image": "https://deckofcardsapi.com/static/img/AS.svg"
196
+ }
197
+ ```
198
+
199
+ ### Dice Visualization
200
+ Dice results include emoji representation:
201
+ - ⚀ (1) ⚁ (2) ⚂ (3) ⚃ (4) ⚄ (5) ⚅ (6)
202
+
203
+ ### Game State Persistence
204
+ - Deck state maintained between draws
205
+ - Remaining cards tracked automatically
206
+ - Each agent has independent game sessions
207
+
208
+ ## 🛡️ Built-in Features
209
+
210
+ ### Rate Limiting
211
+ - **Deck Shuffle**: 20 requests/minute
212
+ - **Card Draw**: 30 requests/minute
213
+ - **Dice Roll**: 15 requests/minute
214
+
215
+ ### Error Handling
216
+ - Automatic deck creation if none exists
217
+ - Graceful API failure handling
218
+ - Input validation and sanitization
219
+
220
+ ### Quantum Randomness
221
+ Dice rolling uses true quantum random number generation from QRandom.io for authentic unpredictability, complete with quantum signatures for verification.
222
+
223
+ ## 🚀 Getting Started
224
+
225
+ 1. Enable Casino skills in your agent configuration
226
+ 2. Set skill states (public/private/disabled) for each function
227
+ 3. Start gaming! The agent will automatically manage decks and game state
228
+
229
+ ## 🎪 Advanced Gaming Scenarios
230
+
231
+ ### Multi-Table Casino
232
+ ```
233
+ Agent: Welcome to the Nation Casino! I'm managing 3 tables:
234
+ - Table 1: Blackjack (6-deck shoe)
235
+ - Table 2: Poker Tournament
236
+ - Table 3: Craps with side bets
237
+
238
+ Which table interests you?
239
+ ```
240
+
241
+ ### Tournament Mode
242
+ ```
243
+ Agent: Poker Tournament - Round 1 of 3
244
+ Blinds: 50/100 chips
245
+ [Manages multiple hands, tracks chip counts, advances rounds]
246
+ ```
247
+
248
+ ### Live Dealer Experience
249
+ ```
250
+ Agent: 🎭 Good evening! I'm your live dealer tonight.
251
+ [Maintains casino atmosphere, explains rules, manages multiple players]
252
+ ```
253
+
254
+ The Casino skills transform your AI agent into a comprehensive gaming companion capable of hosting authentic casino experiences with visual cards, quantum dice, and persistent game management! 🎰🎲🃏