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
@@ -1,17 +1,18 @@
1
1
  import base64
2
2
  import hashlib
3
3
  import logging
4
- from typing import Any, Dict, Literal, Optional, Type
4
+ from typing import Any, Literal
5
5
 
6
6
  from pydantic import BaseModel, Field
7
7
 
8
+ from intentkit.clients.s3 import store_image_bytes
9
+
8
10
  # Import the generic base
9
11
  from intentkit.skills.base import ToolException
10
12
  from intentkit.skills.venice_image.base import VeniceImageBaseTool
11
13
  from intentkit.skills.venice_image.image_generation.image_generation_input import (
12
14
  VeniceImageGenerationInput,
13
15
  )
14
- from intentkit.utils.s3 import store_image_bytes
15
16
 
16
17
  logger = logging.getLogger(__name__)
17
18
 
@@ -24,7 +25,7 @@ class VeniceImageGenerationBaseTool(VeniceImageBaseTool):
24
25
  """
25
26
 
26
27
  # --- Attributes specific to Image Generation ---
27
- args_schema: Type[BaseModel] = VeniceImageGenerationInput
28
+ args_schema: type[BaseModel] = VeniceImageGenerationInput
28
29
 
29
30
  # --- Attributes Subclasses MUST Define ---
30
31
  name: str = Field(description="The unique name of the image generation tool/model.")
@@ -38,15 +39,15 @@ class VeniceImageGenerationBaseTool(VeniceImageBaseTool):
38
39
  async def _arun(
39
40
  self,
40
41
  prompt: str,
41
- seed: Optional[int] = None,
42
- negative_prompt: Optional[str] = None,
43
- width: Optional[int] = 1024,
44
- height: Optional[int] = 1024,
42
+ seed: int | None = None,
43
+ negative_prompt: str | None = None,
44
+ width: int | None = 1024,
45
+ height: int | None = 1024,
45
46
  format: Literal["png", "jpeg", "webp"] = "png",
46
- cfg_scale: Optional[float] = 7.5,
47
- style_preset: Optional[str] = "Photographic",
47
+ cfg_scale: float | None = 7.5,
48
+ style_preset: str | None = "Photographic",
48
49
  **kwargs,
49
- ) -> Dict[str, Any]:
50
+ ) -> dict[str, Any]:
50
51
  try:
51
52
  context = self.get_context()
52
53
  skillConfig = self.getSkillConfig(context)
@@ -1,26 +1,26 @@
1
- from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
- VeniceImageGenerationBaseTool,
3
- )
4
- from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
- STYLE_PRESETS,
6
- )
7
-
8
-
9
- class ImageGenerationFluentlyXL(VeniceImageGenerationBaseTool):
10
- """
11
- Tool for generating images using the Fluently-XL model via Venice AI.
12
- Known for aesthetics, lighting, realism, and correct anatomy.
13
- """
14
-
15
- # --- Model Specific Configuration ---
16
- name: str = "venice_image_generation_fluently_xl"
17
- description: str = (
18
- "Generate images using the Fluently-XL model (via Venice AI).\n"
19
- "Aims for improved aesthetics, lighting, realism, and anatomy. Good for professional-quality images.\n"
20
- "Provide a text prompt describing the image (up to 1500 chars).\n"
21
- f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
- "Supports dimensions up to 2048x2048 (multiple of 8)."
23
- )
24
- model_id: str = "fluently-xl"
25
-
26
- # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
1
+ from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
+ VeniceImageGenerationBaseTool,
3
+ )
4
+ from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
+ STYLE_PRESETS,
6
+ )
7
+
8
+
9
+ class ImageGenerationFluentlyXL(VeniceImageGenerationBaseTool):
10
+ """
11
+ Tool for generating images using the Fluently-XL model via Venice AI.
12
+ Known for aesthetics, lighting, realism, and correct anatomy.
13
+ """
14
+
15
+ # --- Model Specific Configuration ---
16
+ name: str = "venice_image_generation_fluently_xl"
17
+ description: str = (
18
+ "Generate images using the Fluently-XL model (via Venice AI).\n"
19
+ "Aims for improved aesthetics, lighting, realism, and anatomy. Good for professional-quality images.\n"
20
+ "Provide a text prompt describing the image (up to 1500 chars).\n"
21
+ f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
+ "Supports dimensions up to 2048x2048 (multiple of 8)."
23
+ )
24
+ model_id: str = "fluently-xl"
25
+
26
+ # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
@@ -1,27 +1,27 @@
1
- from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
- VeniceImageGenerationBaseTool,
3
- )
4
- from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
- STYLE_PRESETS,
6
- )
7
-
8
-
9
- class ImageGenerationFluxDev(VeniceImageGenerationBaseTool):
10
- """
11
- Tool for generating images using Venice AI's Flux Dev model.
12
- Developed by Black Forest Labs, this is a 12 billion parameter rectified flow transformer.
13
- """
14
-
15
- # --- Model Specific Configuration ---
16
- name: str = "venice_image_generation_flux_dev"
17
- description: str = (
18
- "Generate images using Venice AI's Flux Dev model (by Black Forest Labs).\n"
19
- "This 12B parameter model is good for research and innovative art workflows.\n"
20
- "Provide a text prompt describing the image (up to 2048 chars).\n"
21
- f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
- "Supports dimensions up to 2048x2048 (multiple of 8).\n"
23
- "Use complies with FLUX.1 [dev] Non-Commercial License."
24
- )
25
- model_id: str = "flux-dev"
26
-
27
- # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
1
+ from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
+ VeniceImageGenerationBaseTool,
3
+ )
4
+ from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
+ STYLE_PRESETS,
6
+ )
7
+
8
+
9
+ class ImageGenerationFluxDev(VeniceImageGenerationBaseTool):
10
+ """
11
+ Tool for generating images using Venice AI's Flux Dev model.
12
+ Developed by Black Forest Labs, this is a 12 billion parameter rectified flow transformer.
13
+ """
14
+
15
+ # --- Model Specific Configuration ---
16
+ name: str = "venice_image_generation_flux_dev"
17
+ description: str = (
18
+ "Generate images using Venice AI's Flux Dev model (by Black Forest Labs).\n"
19
+ "This 12B parameter model is good for research and innovative art workflows.\n"
20
+ "Provide a text prompt describing the image (up to 2048 chars).\n"
21
+ f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
+ "Supports dimensions up to 2048x2048 (multiple of 8).\n"
23
+ "Use complies with FLUX.1 [dev] Non-Commercial License."
24
+ )
25
+ model_id: str = "flux-dev"
26
+
27
+ # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
@@ -1,26 +1,26 @@
1
- from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
- VeniceImageGenerationBaseTool,
3
- )
4
- from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
- STYLE_PRESETS,
6
- )
7
-
8
-
9
- class ImageGenerationFluxDevUncensored(VeniceImageGenerationBaseTool):
10
- """
11
- Tool for generating images using Venice AI's Flux Dev Uncensored model.
12
- An uncensored version of the flux-dev model for unrestricted generation.
13
- """
14
-
15
- # --- Model Specific Configuration ---
16
- name: str = "venice_image_generation_flux_dev_uncensored"
17
- description: str = (
18
- "Generate images using Venice AI's Flux Dev Uncensored model.\n"
19
- "This is an uncensored version of flux-dev, suitable for unrestricted content including NSFW.\n"
20
- "Provide a text prompt describing the image (up to 2048 chars).\n"
21
- f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
- "Supports dimensions up to 2048x2048 (multiple of 8)."
23
- )
24
- model_id: str = "flux-dev-uncensored"
25
-
26
- # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
1
+ from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
+ VeniceImageGenerationBaseTool,
3
+ )
4
+ from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
+ STYLE_PRESETS,
6
+ )
7
+
8
+
9
+ class ImageGenerationFluxDevUncensored(VeniceImageGenerationBaseTool):
10
+ """
11
+ Tool for generating images using Venice AI's Flux Dev Uncensored model.
12
+ An uncensored version of the flux-dev model for unrestricted generation.
13
+ """
14
+
15
+ # --- Model Specific Configuration ---
16
+ name: str = "venice_image_generation_flux_dev_uncensored"
17
+ description: str = (
18
+ "Generate images using Venice AI's Flux Dev Uncensored model.\n"
19
+ "This is an uncensored version of flux-dev, suitable for unrestricted content including NSFW.\n"
20
+ "Provide a text prompt describing the image (up to 2048 chars).\n"
21
+ f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
+ "Supports dimensions up to 2048x2048 (multiple of 8)."
23
+ )
24
+ model_id: str = "flux-dev-uncensored"
25
+
26
+ # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
@@ -1,158 +1,158 @@
1
- from typing import Literal, Optional
2
-
3
- from pydantic import BaseModel, Field, HttpUrl
4
-
5
- STYLE_PRESETS = [
6
- "3D Model",
7
- "Analog Film",
8
- "Anime",
9
- "Cinematic",
10
- "Comic Book",
11
- "Craft Clay",
12
- "Digital Art",
13
- "Enhance",
14
- "Fantasy Art",
15
- "Isometric Style",
16
- "Line Art",
17
- "Lowpoly",
18
- "Neon Punk",
19
- "Origami",
20
- "Photographic",
21
- "Pixel Art",
22
- "Texture",
23
- "Advertising",
24
- "Food Photography",
25
- "Real Estate",
26
- "Abstract",
27
- "Cubist",
28
- "Graffiti",
29
- "Hyperrealism",
30
- "Impressionist",
31
- "Pointillism",
32
- "Pop Art",
33
- "Psychedelic",
34
- "Renaissance",
35
- "Steampunk",
36
- "Surrealist",
37
- "Typography",
38
- "Watercolor",
39
- "Fighting Game",
40
- "GTA",
41
- "Super Mario",
42
- "Minecraft",
43
- "Pokemon",
44
- "Retro Arcade",
45
- "Retro Game",
46
- "RPG Fantasy Game",
47
- "Strategy Game",
48
- "Street Fighter",
49
- "Legend of Zelda",
50
- "Architectural",
51
- "Disco",
52
- "Dreamscape",
53
- "Dystopian",
54
- "Fairy Tale",
55
- "Gothic",
56
- "Grunge",
57
- "Horror",
58
- "Minimalist",
59
- "Monochrome",
60
- "Nautical",
61
- "Space",
62
- "Stained Glass",
63
- "Techwear Fashion",
64
- "Tribal",
65
- "Zentangle",
66
- "Collage",
67
- "Flat Papercut",
68
- "Kirigami",
69
- "Paper Mache",
70
- "Paper Quilling",
71
- "Papercut Collage",
72
- "Papercut Shadow Box",
73
- "Stacked Papercut",
74
- "Thick Layered Papercut",
75
- "Alien",
76
- "Film Noir",
77
- "HDR",
78
- "Long Exposure",
79
- "Neon Noir",
80
- "Silhouette",
81
- "Tilt-Shift",
82
- ]
83
-
84
- STYLE_PRESETS_DESCRIPTION = (
85
- "Optional style preset to apply. Available options: "
86
- + ", ".join([f"'{s}'" for s in STYLE_PRESETS])
87
- + ". Defaults to 'Photographic'."
88
- )
89
-
90
-
91
- class InpaintMask(BaseModel):
92
- image_prompt: str = Field(
93
- ...,
94
- description="A text prompt describing the original input image that an image model would use to produce a similar/identical image, including the changed features the user will be inpainting.",
95
- )
96
- inferred_object: str = Field(
97
- ..., description="The content being added via inpainting."
98
- )
99
- object_target: str = Field(
100
- ..., description="Element(s) in the original image to be inpainted over."
101
- )
102
-
103
-
104
- class Inpaint(BaseModel):
105
- image_url: HttpUrl = Field(
106
- ...,
107
- description="Image target to inpaint",
108
- )
109
- strength: int = Field(
110
- ..., ge=0, le=100, description="Strength of the inpainting (0-100).", example=50
111
- )
112
- mask: InpaintMask = Field(..., description="Mask settings for inpainting.")
113
-
114
-
115
- class VeniceImageGenerationInput(BaseModel):
116
- """Model representing input parameters for Venice Image Generation."""
117
-
118
- prompt: str = Field(
119
- description="The main text prompt describing what should be included in the generated image."
120
- )
121
- seed: Optional[int] = Field(
122
- default=None,
123
- description="Random seed value to control image generation randomness. "
124
- "Use the same seed to reproduce identical results. If not set, a random seed will be used.",
125
- )
126
- negative_prompt: Optional[str] = Field(
127
- default=None,
128
- description="Text describing what should be excluded from the generated image. "
129
- "If not provided, the default agent configuration will be used.",
130
- )
131
- width: Optional[int] = Field(
132
- default=1024,
133
- le=2048,
134
- description="Width of the generated image in pixels. Maximum allowed is 2048. Default is 1024.",
135
- )
136
- height: Optional[int] = Field(
137
- default=1024,
138
- le=2048,
139
- description="Height of the generated image in pixels. Maximum allowed is 2048. Default is 1024.",
140
- )
141
- format: Literal["png", "jpeg", "webp"] = Field(
142
- default="png",
143
- description="Output image format. Options are 'png', 'jpeg', or 'webp'. Defaults to 'png'.",
144
- )
145
- cfg_scale: Optional[float] = Field(
146
- default=7.5,
147
- description="Classifier-Free Guidance (CFG) scale controls how closely the image follows the prompt. "
148
- "Higher values (1-20) result in more adherence. Default is 7.5.",
149
- )
150
- style_preset: Optional[str] = Field(
151
- default="Photographic", description=STYLE_PRESETS_DESCRIPTION
152
- )
153
- inpainting: Optional[Inpaint] = Field(
154
- default=None,
155
- description="Optional inpainting operation that allows modification of specific objects within an image. "
156
- "Requires an original image url, a strength value (0-100), and detailed mask instructions "
157
- "to define which part of the image should be edited and what should replace it.",
158
- )
1
+ from typing import Literal
2
+
3
+ from pydantic import BaseModel, Field, HttpUrl
4
+
5
+ STYLE_PRESETS = [
6
+ "3D Model",
7
+ "Analog Film",
8
+ "Anime",
9
+ "Cinematic",
10
+ "Comic Book",
11
+ "Craft Clay",
12
+ "Digital Art",
13
+ "Enhance",
14
+ "Fantasy Art",
15
+ "Isometric Style",
16
+ "Line Art",
17
+ "Lowpoly",
18
+ "Neon Punk",
19
+ "Origami",
20
+ "Photographic",
21
+ "Pixel Art",
22
+ "Texture",
23
+ "Advertising",
24
+ "Food Photography",
25
+ "Real Estate",
26
+ "Abstract",
27
+ "Cubist",
28
+ "Graffiti",
29
+ "Hyperrealism",
30
+ "Impressionist",
31
+ "Pointillism",
32
+ "Pop Art",
33
+ "Psychedelic",
34
+ "Renaissance",
35
+ "Steampunk",
36
+ "Surrealist",
37
+ "Typography",
38
+ "Watercolor",
39
+ "Fighting Game",
40
+ "GTA",
41
+ "Super Mario",
42
+ "Minecraft",
43
+ "Pokemon",
44
+ "Retro Arcade",
45
+ "Retro Game",
46
+ "RPG Fantasy Game",
47
+ "Strategy Game",
48
+ "Street Fighter",
49
+ "Legend of Zelda",
50
+ "Architectural",
51
+ "Disco",
52
+ "Dreamscape",
53
+ "Dystopian",
54
+ "Fairy Tale",
55
+ "Gothic",
56
+ "Grunge",
57
+ "Horror",
58
+ "Minimalist",
59
+ "Monochrome",
60
+ "Nautical",
61
+ "Space",
62
+ "Stained Glass",
63
+ "Techwear Fashion",
64
+ "Tribal",
65
+ "Zentangle",
66
+ "Collage",
67
+ "Flat Papercut",
68
+ "Kirigami",
69
+ "Paper Mache",
70
+ "Paper Quilling",
71
+ "Papercut Collage",
72
+ "Papercut Shadow Box",
73
+ "Stacked Papercut",
74
+ "Thick Layered Papercut",
75
+ "Alien",
76
+ "Film Noir",
77
+ "HDR",
78
+ "Long Exposure",
79
+ "Neon Noir",
80
+ "Silhouette",
81
+ "Tilt-Shift",
82
+ ]
83
+
84
+ STYLE_PRESETS_DESCRIPTION = (
85
+ "Optional style preset to apply. Available options: "
86
+ + ", ".join([f"'{s}'" for s in STYLE_PRESETS])
87
+ + ". Defaults to 'Photographic'."
88
+ )
89
+
90
+
91
+ class InpaintMask(BaseModel):
92
+ image_prompt: str = Field(
93
+ ...,
94
+ description="A text prompt describing the original input image that an image model would use to produce a similar/identical image, including the changed features the user will be inpainting.",
95
+ )
96
+ inferred_object: str = Field(
97
+ ..., description="The content being added via inpainting."
98
+ )
99
+ object_target: str = Field(
100
+ ..., description="Element(s) in the original image to be inpainted over."
101
+ )
102
+
103
+
104
+ class Inpaint(BaseModel):
105
+ image_url: HttpUrl = Field(
106
+ ...,
107
+ description="Image target to inpaint",
108
+ )
109
+ strength: int = Field(
110
+ ..., ge=0, le=100, description="Strength of the inpainting (0-100).", example=50
111
+ )
112
+ mask: InpaintMask = Field(..., description="Mask settings for inpainting.")
113
+
114
+
115
+ class VeniceImageGenerationInput(BaseModel):
116
+ """Model representing input parameters for Venice Image Generation."""
117
+
118
+ prompt: str = Field(
119
+ description="The main text prompt describing what should be included in the generated image."
120
+ )
121
+ seed: int | None = Field(
122
+ default=None,
123
+ description="Random seed value to control image generation randomness. "
124
+ "Use the same seed to reproduce identical results. If not set, a random seed will be used.",
125
+ )
126
+ negative_prompt: str | None = Field(
127
+ default=None,
128
+ description="Text describing what should be excluded from the generated image. "
129
+ "If not provided, the default agent configuration will be used.",
130
+ )
131
+ width: int | None = Field(
132
+ default=1024,
133
+ le=2048,
134
+ description="Width of the generated image in pixels. Maximum allowed is 2048. Default is 1024.",
135
+ )
136
+ height: int | None = Field(
137
+ default=1024,
138
+ le=2048,
139
+ description="Height of the generated image in pixels. Maximum allowed is 2048. Default is 1024.",
140
+ )
141
+ format: Literal["png", "jpeg", "webp"] = Field(
142
+ default="png",
143
+ description="Output image format. Options are 'png', 'jpeg', or 'webp'. Defaults to 'png'.",
144
+ )
145
+ cfg_scale: float | None = Field(
146
+ default=7.5,
147
+ description="Classifier-Free Guidance (CFG) scale controls how closely the image follows the prompt. "
148
+ "Higher values (1-20) result in more adherence. Default is 7.5.",
149
+ )
150
+ style_preset: str | None = Field(
151
+ default="Photographic", description=STYLE_PRESETS_DESCRIPTION
152
+ )
153
+ inpainting: Inpaint | None = Field(
154
+ default=None,
155
+ description="Optional inpainting operation that allows modification of specific objects within an image. "
156
+ "Requires an original image url, a strength value (0-100), and detailed mask instructions "
157
+ "to define which part of the image should be edited and what should replace it.",
158
+ )
@@ -1,26 +1,26 @@
1
- from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
- VeniceImageGenerationBaseTool,
3
- )
4
- from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
- STYLE_PRESETS,
6
- )
7
-
8
-
9
- class ImageGenerationLustifySDXL(VeniceImageGenerationBaseTool):
10
- """
11
- Tool for generating images using the Lustify SDXL model via Venice AI.
12
- A photorealistic SDXL checkpoint primarily focused on NSFW content, but can do SFW.
13
- """
14
-
15
- # --- Model Specific Configuration ---
16
- name: str = "venice_image_generation_lustify_sdxl"
17
- description: str = (
18
- "Generate images using the Lustify SDXL model (via Venice AI).\n"
19
- "A photorealistic SDXL model focused on NSFW scenes, but can generate SFW images (objects, animals, fantasy).\n"
20
- "Provide a text prompt describing the image (up to 1500 chars).\n"
21
- f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
- "Supports dimensions up to 2048x2048 (multiple of 8)."
23
- )
24
- model_id: str = "lustify-sdxl"
25
-
26
- # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
1
+ from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
+ VeniceImageGenerationBaseTool,
3
+ )
4
+ from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
+ STYLE_PRESETS,
6
+ )
7
+
8
+
9
+ class ImageGenerationLustifySDXL(VeniceImageGenerationBaseTool):
10
+ """
11
+ Tool for generating images using the Lustify SDXL model via Venice AI.
12
+ A photorealistic SDXL checkpoint primarily focused on NSFW content, but can do SFW.
13
+ """
14
+
15
+ # --- Model Specific Configuration ---
16
+ name: str = "venice_image_generation_lustify_sdxl"
17
+ description: str = (
18
+ "Generate images using the Lustify SDXL model (via Venice AI).\n"
19
+ "A photorealistic SDXL model focused on NSFW scenes, but can generate SFW images (objects, animals, fantasy).\n"
20
+ "Provide a text prompt describing the image (up to 1500 chars).\n"
21
+ f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
+ "Supports dimensions up to 2048x2048 (multiple of 8)."
23
+ )
24
+ model_id: str = "lustify-sdxl"
25
+
26
+ # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
@@ -1,26 +1,26 @@
1
- from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
- VeniceImageGenerationBaseTool,
3
- )
4
- from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
- STYLE_PRESETS,
6
- )
7
-
8
-
9
- class ImageGenerationPonyRealism(VeniceImageGenerationBaseTool):
10
- """
11
- Tool for generating images using the Pony Realism model via Venice AI.
12
- Focused on high-detail, realistic images, especially anime/character designs. Uses Danbooru tags.
13
- """
14
-
15
- # --- Model Specific Configuration ---
16
- name: str = "venice_image_generation_pony_realism"
17
- description: str = (
18
- "Generate images using the Pony Realism model (via Venice AI).\n"
19
- "Creates high-detail, realistic images, good for anime/character designs. Benefits from Danbooru tags (e.g., 'score_9', 'female'/'male').\n"
20
- "Provide a text prompt describing the image (up to 1500 chars).\n"
21
- f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
- "Supports dimensions up to 2048x2048 (multiple of 8). Marked as 'most_uncensored'."
23
- )
24
- model_id: str = "pony-realism"
25
-
26
- # args_schema and _arun are inherited from VeniceImageGenerationBaseTool
1
+ from intentkit.skills.venice_image.image_generation.image_generation_base import (
2
+ VeniceImageGenerationBaseTool,
3
+ )
4
+ from intentkit.skills.venice_image.image_generation.image_generation_input import (
5
+ STYLE_PRESETS,
6
+ )
7
+
8
+
9
+ class ImageGenerationPonyRealism(VeniceImageGenerationBaseTool):
10
+ """
11
+ Tool for generating images using the Pony Realism model via Venice AI.
12
+ Focused on high-detail, realistic images, especially anime/character designs. Uses Danbooru tags.
13
+ """
14
+
15
+ # --- Model Specific Configuration ---
16
+ name: str = "venice_image_generation_pony_realism"
17
+ description: str = (
18
+ "Generate images using the Pony Realism model (via Venice AI).\n"
19
+ "Creates high-detail, realistic images, good for anime/character designs. Benefits from Danbooru tags (e.g., 'score_9', 'female'/'male').\n"
20
+ "Provide a text prompt describing the image (up to 1500 chars).\n"
21
+ f"Optionally specify a style preset from the list: {', '.join(STYLE_PRESETS)}.\n"
22
+ "Supports dimensions up to 2048x2048 (multiple of 8). Marked as 'most_uncensored'."
23
+ )
24
+ model_id: str = "pony-realism"
25
+
26
+ # args_schema and _arun are inherited from VeniceImageGenerationBaseTool