intentkit 0.8.34.dev8__tar.gz → 0.8.36__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/PKG-INFO +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/__init__.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/agent.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/graph.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/skill.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/clients/twitter.py +4 -4
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/config/config.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/draft_chat.py +4 -3
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/engine.py +21 -10
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/manager/engine.py +6 -3
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/manager/service.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/middleware.py +3 -3
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/agent.py +5 -5
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/agent_data.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/db_mig.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/llm.csv +12 -10
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/llm.py +61 -10
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/skill.py +2 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/acolyt/ask.py +2 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/deck_draw.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/deck_shuffle.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/dice_roll.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/utils.py +3 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/chain_lookup.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/api.py +13 -6
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/base.py +10 -6
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/api.py +28 -23
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/base.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_protocol.py +5 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +4 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +7 -3
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/get_pair_info.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/get_token_pairs.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/get_tokens_info.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/search_token.py +1 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/best_yield.py +4 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/route.py +3 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/api.py +26 -14
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/fetch_nft_portfolio.py +3 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/fetch_solana_portfolio.py +3 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/fetch_wallet_portfolio.py +3 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/base.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_enhance/image_enhance.py +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_upscale/image_upscale.py +2 -2
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/utils.py +11 -8
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/swap.py +3 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/error.py +4 -3
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/pyproject.toml +2 -1
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/.gitignore +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/LICENSE +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/LICENSE +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/MANIFEST.in +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/api.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/engine.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/abstracts/twitter.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/clients/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/clients/cdp.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/clients/s3.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/clients/web3.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/config/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/account_checking.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/agent.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/api.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/asset.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/chat.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/cleanup.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/client.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/credit.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/draft.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/manager/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/manager/skills.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/prompt.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/scheduler.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/core/statistics.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/agent_public.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/agent_schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/app_setting.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/chat.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/credit.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/db.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/draft.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/redis.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/skills.csv +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/team.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/models/user.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/acolyt/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/acolyt/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/acolyt/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/projects.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/aixbt/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/allora/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/allora/allora.jpeg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/allora/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/allora/price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/allora/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/basename/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/basename/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/basename/basename.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/basename/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/carv.webp +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/fetch_news.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/onchain_query.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/carv/token_info_and_price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/casino.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/casino/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cdp/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cdp/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cdp/cdp.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cdp/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/chainlist/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/common/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/common/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/common/common.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/common/current_time.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/common/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/constants.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dapplooker/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/config/chains.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dexscreener/utils.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/mention.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/stats.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/tokens.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/elfa/utils.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/abi/approval.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/abi/route.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/enso.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/networks.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/prices.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/tokens.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/enso/wallet.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc20/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc20/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc20/erc20.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc20/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc721/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc721/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc721/erc721.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/erc721/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/clear.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/crawl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/query.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/scrape.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/firecrawl/utils.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/github.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/github_search.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/github/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/heurist.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_animagine_xl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_arthemy_comics.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_arthemy_real.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_braindance.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_flux_1_dev.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/image_generation_sdxl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/heurist/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/get.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/http.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/post.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/put.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/http/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/lifi.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/token_execute.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/token_quote.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/lifi/utils.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/moralis.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/moralis/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/morpho/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/morpho/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/morpho/morpho.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/morpho/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/nation/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/nation/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/nation/nation.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/nation/nft_check.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/nation/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/onchain.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/dalle_image_generation.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/gpt_avatar_generator.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/gpt_image_generation.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/gpt_image_mini_generator.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/gpt_image_to_image.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/image_to_text.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/openai.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/openai/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/constants.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/moralis.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/pyth/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/pyth/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/pyth/pyth.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/pyth/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/skills.toml +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/get_channel.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/get_message.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/schedule_message.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/send_message.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/slack/slack.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/delete_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/fetch_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/insert_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/invoke_function.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/supabase.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/update_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/supabase/upsert_data.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/superfluid/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/superfluid/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/superfluid/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/superfluid/superfluid.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/add_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/delete_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/edit_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/list_autonomous_tasks.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/read_agent_api_key.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/regenerate_agent_api_key.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/system/system.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/constants.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/moralis.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/token_analytics.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/token_price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/token/token_search.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/follow_user.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/get_mentions.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/get_timeline.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/like_tweet.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/post_tweet.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/reply_tweet.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/retweet.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/search_tweets.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/twitter/twitter.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/unrealspeech/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/unrealspeech/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/input.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/venice_audio.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/api.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/config.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/utils.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/weth/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/weth/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/weth/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/weth/weth.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/wow/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/wow/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/wow/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/wow/wow.svg +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/x402/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/x402/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/x402/http_request.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/x402/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/x402/x402.webp +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/README.md +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/base.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/price.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/schema.json +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/transfer.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/__init__.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/chain.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/ens.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/logging.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/random.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/schema.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/slack_alert.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/utils/tx.py +0 -0
- {intentkit-0.8.34.dev8 → intentkit-0.8.36}/intentkit/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.36
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
|
|
6
6
|
Project-URL: Repository, https://github.com/crestalnetwork/intentkit
|
|
@@ -57,6 +57,7 @@ Requires-Dist: jsonref>=1.1.0
|
|
|
57
57
|
Requires-Dist: langchain-community>=0.3.19
|
|
58
58
|
Requires-Dist: langchain-core>=0.3.43
|
|
59
59
|
Requires-Dist: langchain-deepseek>=0.1.4
|
|
60
|
+
Requires-Dist: langchain-google-genai>=3.2.0
|
|
60
61
|
Requires-Dist: langchain-mcp-adapters>=0.0.11
|
|
61
62
|
Requires-Dist: langchain-openai>=0.3.8
|
|
62
63
|
Requires-Dist: langchain-text-splitters>=0.3.8
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any
|
|
2
3
|
|
|
3
4
|
from intentkit.models.agent import Agent
|
|
4
5
|
from intentkit.models.agent_data import AgentData, AgentQuota
|
|
@@ -41,7 +42,7 @@ class AgentStoreABC(ABC):
|
|
|
41
42
|
pass
|
|
42
43
|
|
|
43
44
|
@abstractmethod
|
|
44
|
-
async def set_data(self, data: dict) -> None:
|
|
45
|
+
async def set_data(self, data: dict[str, Any]) -> None:
|
|
45
46
|
"""Update agent data.
|
|
46
47
|
|
|
47
48
|
Args:
|
|
@@ -19,7 +19,7 @@ class AgentError(str, Enum):
|
|
|
19
19
|
# This simply involves a list of messages
|
|
20
20
|
# We want steps to return messages to append to the list
|
|
21
21
|
# So we annotate the messages attribute with operator.add
|
|
22
|
-
class AgentState(BaseAgentState):
|
|
22
|
+
class AgentState(BaseAgentState[Any]):
|
|
23
23
|
"""The state of the agent."""
|
|
24
24
|
|
|
25
25
|
context: dict[str, Any]
|
|
@@ -39,7 +39,7 @@ class TwitterUser(BaseModel):
|
|
|
39
39
|
name: str
|
|
40
40
|
username: str
|
|
41
41
|
description: str
|
|
42
|
-
public_metrics: dict = Field(
|
|
42
|
+
public_metrics: dict[str, Any] = Field(
|
|
43
43
|
description="User metrics including followers_count, following_count, tweet_count, listed_count, like_count, and media_count"
|
|
44
44
|
)
|
|
45
45
|
is_following: bool = Field(
|
|
@@ -82,7 +82,7 @@ class TwitterClient(TwitterABC):
|
|
|
82
82
|
config: Configuration dictionary that may contain API keys
|
|
83
83
|
"""
|
|
84
84
|
|
|
85
|
-
def __init__(self, agent_id: str, config: dict) -> None:
|
|
85
|
+
def __init__(self, agent_id: str, config: dict[str, Any]) -> None:
|
|
86
86
|
"""Initialize the Twitter client.
|
|
87
87
|
|
|
88
88
|
Args:
|
|
@@ -420,11 +420,11 @@ class TwitterClient(TwitterABC):
|
|
|
420
420
|
return media_ids
|
|
421
421
|
|
|
422
422
|
|
|
423
|
-
def _is_self_key(config: dict) -> bool:
|
|
423
|
+
def _is_self_key(config: dict[str, Any]) -> bool:
|
|
424
424
|
return config.get("api_key_provider") == "agent_owner"
|
|
425
425
|
|
|
426
426
|
|
|
427
|
-
def get_twitter_client(agent_id: str, config: dict) -> "TwitterClient":
|
|
427
|
+
def get_twitter_client(agent_id: str, config: dict[str, Any]) -> "TwitterClient":
|
|
428
428
|
if _is_self_key(config):
|
|
429
429
|
if agent_id not in _clients_self_key:
|
|
430
430
|
_clients_self_key[agent_id] = TwitterClient(agent_id, config)
|
|
@@ -105,12 +105,13 @@ class Config:
|
|
|
105
105
|
self.cdp_wallet_secret: str | None = self.load("CDP_WALLET_SECRET")
|
|
106
106
|
# LLM providers
|
|
107
107
|
self.openai_api_key: str | None = self.load("OPENAI_API_KEY")
|
|
108
|
+
self.google_api_key: str | None = self.load("GOOGLE_API_KEY")
|
|
108
109
|
self.deepseek_api_key: str | None = self.load("DEEPSEEK_API_KEY")
|
|
109
110
|
self.xai_api_key: str | None = self.load("XAI_API_KEY")
|
|
110
111
|
self.eternal_api_key: str | None = self.load("ETERNAL_API_KEY")
|
|
111
112
|
self.reigent_api_key: str | None = self.load("REIGENT_API_KEY")
|
|
112
113
|
self.venice_api_key: str | None = self.load("VENICE_API_KEY")
|
|
113
|
-
self.
|
|
114
|
+
self.openrouter_api_key: str | None = self.load("OPENROUTER_API_KEY")
|
|
114
115
|
# LLM Config
|
|
115
116
|
self.system_prompt: str | None = self.load("SYSTEM_PROMPT")
|
|
116
117
|
self.intentkit_prompt: str | None = self.load("INTENTKIT_PROMPT")
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
import logging
|
|
4
4
|
import time
|
|
5
5
|
from datetime import datetime, timedelta, timezone
|
|
6
|
-
from typing import AsyncGenerator
|
|
6
|
+
from typing import Any, AsyncGenerator
|
|
7
7
|
|
|
8
8
|
from langgraph.graph.state import CompiledStateGraph
|
|
9
9
|
from sqlalchemy import desc, select
|
|
10
10
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
11
11
|
|
|
12
|
+
from intentkit.abstracts.graph import AgentContext, AgentState
|
|
12
13
|
from intentkit.core.engine import build_agent, stream_agent_raw
|
|
13
14
|
from intentkit.models.agent import Agent
|
|
14
15
|
from intentkit.models.agent_data import AgentData
|
|
@@ -20,7 +21,7 @@ from intentkit.utils.error import IntentKitAPIError
|
|
|
20
21
|
logger = logging.getLogger(__name__)
|
|
21
22
|
|
|
22
23
|
|
|
23
|
-
_draft_executors: dict[str, CompiledStateGraph] = {}
|
|
24
|
+
_draft_executors: dict[str, CompiledStateGraph[AgentState, AgentContext, Any, Any]] = {}
|
|
24
25
|
_draft_updated_at: dict[str, datetime] = {}
|
|
25
26
|
_draft_cached_at: dict[str, datetime] = {}
|
|
26
27
|
|
|
@@ -85,7 +86,7 @@ def _agent_from_draft(draft: AgentDraft) -> Agent:
|
|
|
85
86
|
|
|
86
87
|
async def _get_draft_executor(
|
|
87
88
|
agent: Agent, draft: AgentDraft
|
|
88
|
-
) -> tuple[CompiledStateGraph, float]:
|
|
89
|
+
) -> tuple[CompiledStateGraph[AgentState, AgentContext, Any, Any], float]:
|
|
89
90
|
now = datetime.now(timezone.utc)
|
|
90
91
|
_cleanup_cache(now)
|
|
91
92
|
|
|
@@ -17,6 +17,7 @@ import textwrap
|
|
|
17
17
|
import time
|
|
18
18
|
import traceback
|
|
19
19
|
from datetime import datetime
|
|
20
|
+
from typing import Any
|
|
20
21
|
|
|
21
22
|
import sqlalchemy
|
|
22
23
|
from epyxid import XID
|
|
@@ -66,7 +67,7 @@ from intentkit.utils.error import IntentKitAPIError
|
|
|
66
67
|
logger = logging.getLogger(__name__)
|
|
67
68
|
|
|
68
69
|
# Global variable to cache all agent executors
|
|
69
|
-
_agents: dict[str, CompiledStateGraph] = {}
|
|
70
|
+
_agents: dict[str, CompiledStateGraph[AgentState, AgentContext, Any, Any]] = {}
|
|
70
71
|
|
|
71
72
|
# Global dictionaries to cache agent update times
|
|
72
73
|
_agents_updated: dict[str, datetime] = {}
|
|
@@ -97,7 +98,7 @@ def _extract_text_content(content: object) -> str:
|
|
|
97
98
|
|
|
98
99
|
async def build_agent(
|
|
99
100
|
agent: Agent, agent_data: AgentData, custom_skills: list[BaseTool] = []
|
|
100
|
-
) -> CompiledStateGraph:
|
|
101
|
+
) -> CompiledStateGraph[AgentState, AgentContext, Any, Any]:
|
|
101
102
|
"""Build an AI agent with specified configuration and tools.
|
|
102
103
|
|
|
103
104
|
This function:
|
|
@@ -119,9 +120,13 @@ async def build_agent(
|
|
|
119
120
|
# Create the LLM model instance
|
|
120
121
|
llm_model = await create_llm_model(
|
|
121
122
|
model_name=agent.model,
|
|
122
|
-
temperature=agent.temperature,
|
|
123
|
-
frequency_penalty=
|
|
124
|
-
|
|
123
|
+
temperature=agent.temperature if agent.temperature is not None else 0.7,
|
|
124
|
+
frequency_penalty=(
|
|
125
|
+
agent.frequency_penalty if agent.frequency_penalty is not None else 0.0
|
|
126
|
+
),
|
|
127
|
+
presence_penalty=(
|
|
128
|
+
agent.presence_penalty if agent.presence_penalty is not None else 0.0
|
|
129
|
+
),
|
|
125
130
|
)
|
|
126
131
|
|
|
127
132
|
# ==== Store buffered conversation history in memory.
|
|
@@ -131,8 +136,8 @@ async def build_agent(
|
|
|
131
136
|
checkpointer = InMemorySaver()
|
|
132
137
|
|
|
133
138
|
# ==== Load skills
|
|
134
|
-
tools: list[BaseTool | dict] = []
|
|
135
|
-
private_tools: list[BaseTool | dict] = []
|
|
139
|
+
tools: list[BaseTool | dict[str, Any]] = []
|
|
140
|
+
private_tools: list[BaseTool | dict[str, Any]] = []
|
|
136
141
|
|
|
137
142
|
if agent.skills:
|
|
138
143
|
for k, v in agent.skills.items():
|
|
@@ -207,7 +212,9 @@ async def build_agent(
|
|
|
207
212
|
return executor
|
|
208
213
|
|
|
209
214
|
|
|
210
|
-
async def create_agent(
|
|
215
|
+
async def create_agent(
|
|
216
|
+
agent: Agent,
|
|
217
|
+
) -> CompiledStateGraph[AgentState, AgentContext, Any, Any]:
|
|
211
218
|
"""Create an AI agent with specified configuration and tools.
|
|
212
219
|
|
|
213
220
|
This function maintains backward compatibility by calling build_agent internally.
|
|
@@ -256,7 +263,9 @@ async def initialize_agent(aid):
|
|
|
256
263
|
_agents_updated[aid] = agent.deployed_at if agent.deployed_at else agent.updated_at
|
|
257
264
|
|
|
258
265
|
|
|
259
|
-
async def agent_executor(
|
|
266
|
+
async def agent_executor(
|
|
267
|
+
agent_id: str,
|
|
268
|
+
) -> tuple[CompiledStateGraph[AgentState, AgentContext, Any, Any], float]:
|
|
260
269
|
start = time.perf_counter()
|
|
261
270
|
agent = await Agent.get(agent_id)
|
|
262
271
|
if not agent:
|
|
@@ -303,7 +312,9 @@ async def stream_agent(message: ChatMessageCreate):
|
|
|
303
312
|
|
|
304
313
|
|
|
305
314
|
async def stream_agent_raw(
|
|
306
|
-
message: ChatMessageCreate,
|
|
315
|
+
message: ChatMessageCreate,
|
|
316
|
+
agent: Agent,
|
|
317
|
+
executor: CompiledStateGraph[AgentState, AgentContext, Any, Any],
|
|
307
318
|
):
|
|
308
319
|
start = time.perf_counter()
|
|
309
320
|
# make sure reply_to is set
|
|
@@ -5,10 +5,11 @@ from __future__ import annotations
|
|
|
5
5
|
import logging
|
|
6
6
|
import time
|
|
7
7
|
from datetime import datetime, timedelta, timezone
|
|
8
|
-
from typing import AsyncGenerator
|
|
8
|
+
from typing import Any, AsyncGenerator
|
|
9
9
|
|
|
10
10
|
from langgraph.graph.state import CompiledStateGraph
|
|
11
11
|
|
|
12
|
+
from intentkit.abstracts.graph import AgentContext, AgentState
|
|
12
13
|
from intentkit.core.engine import build_agent, stream_agent_raw
|
|
13
14
|
from intentkit.core.manager.skills import (
|
|
14
15
|
get_agent_latest_draft_skill,
|
|
@@ -25,7 +26,9 @@ logger = logging.getLogger(__name__)
|
|
|
25
26
|
|
|
26
27
|
_MANAGER_CACHE_TTL = timedelta(hours=1)
|
|
27
28
|
|
|
28
|
-
_manager_executors: dict[
|
|
29
|
+
_manager_executors: dict[
|
|
30
|
+
str, CompiledStateGraph[AgentState, AgentContext, Any, Any]
|
|
31
|
+
] = {}
|
|
29
32
|
_manager_agents: dict[str, Agent] = {}
|
|
30
33
|
_manager_cached_at: dict[str, datetime] = {}
|
|
31
34
|
|
|
@@ -165,7 +168,7 @@ def _build_manager_agent(agent_id: str, user_id: str) -> Agent:
|
|
|
165
168
|
|
|
166
169
|
async def _get_manager_executor(
|
|
167
170
|
agent_id: str, user_id: str
|
|
168
|
-
) -> tuple[CompiledStateGraph, Agent, float]:
|
|
171
|
+
) -> tuple[CompiledStateGraph[AgentState, AgentContext, Any, Any], Agent, float]:
|
|
169
172
|
now = datetime.now(timezone.utc)
|
|
170
173
|
_cleanup_cache(now)
|
|
171
174
|
|
|
@@ -6,6 +6,7 @@ import json
|
|
|
6
6
|
import logging
|
|
7
7
|
from importlib import resources
|
|
8
8
|
from pathlib import Path
|
|
9
|
+
from typing import Any
|
|
9
10
|
|
|
10
11
|
import jsonref
|
|
11
12
|
from fastapi import status
|
|
@@ -76,7 +77,7 @@ def get_skills_hierarchical_text() -> str:
|
|
|
76
77
|
return "No skills available"
|
|
77
78
|
|
|
78
79
|
# Group skills by category (x-tags)
|
|
79
|
-
categories: dict[str, list] = {}
|
|
80
|
+
categories: dict[str, list[Any]] = {}
|
|
80
81
|
|
|
81
82
|
for entry in skills_root.iterdir():
|
|
82
83
|
if not entry.is_dir():
|
|
@@ -118,8 +118,8 @@ class ToolBindingMiddleware(AgentMiddleware[AgentState, AgentContext]):
|
|
|
118
118
|
def __init__(
|
|
119
119
|
self,
|
|
120
120
|
llm_model: LLMModelInfo,
|
|
121
|
-
public_tools: list[BaseTool | dict],
|
|
122
|
-
private_tools: list[BaseTool | dict],
|
|
121
|
+
public_tools: list[BaseTool | dict[str, Any]],
|
|
122
|
+
private_tools: list[BaseTool | dict[str, Any]],
|
|
123
123
|
) -> None:
|
|
124
124
|
super().__init__()
|
|
125
125
|
self.llm_model = llm_model
|
|
@@ -130,7 +130,7 @@ class ToolBindingMiddleware(AgentMiddleware[AgentState, AgentContext]):
|
|
|
130
130
|
context = request.runtime.context
|
|
131
131
|
|
|
132
132
|
llm_params: dict[str, Any] = {}
|
|
133
|
-
tools: list[BaseTool | dict] = (
|
|
133
|
+
tools: list[BaseTool | dict[str, Any]] = (
|
|
134
134
|
self.private_tools if context.is_private else self.public_tools
|
|
135
135
|
)
|
|
136
136
|
tools = list(
|
|
@@ -680,7 +680,7 @@ class AgentUserInput(AgentCore):
|
|
|
680
680
|
),
|
|
681
681
|
]
|
|
682
682
|
discord_config: Annotated[
|
|
683
|
-
dict | None,
|
|
683
|
+
dict[str, Any] | None,
|
|
684
684
|
PydanticField(
|
|
685
685
|
default=None,
|
|
686
686
|
description="Discord integration configuration settings including token, whitelists, and behavior settings",
|
|
@@ -1527,7 +1527,7 @@ class Agent(AgentCreate, AgentPublicInfo):
|
|
|
1527
1527
|
self.autonomous = updated_tasks
|
|
1528
1528
|
|
|
1529
1529
|
async def update_autonomous_task(
|
|
1530
|
-
self, task_id: str, task_updates: dict
|
|
1530
|
+
self, task_id: str, task_updates: dict[str, Any]
|
|
1531
1531
|
) -> AgentAutonomous:
|
|
1532
1532
|
async with get_session() as session:
|
|
1533
1533
|
db_agent = await session.get(AgentTable, self.id)
|
|
@@ -1583,7 +1583,7 @@ class Agent(AgentCreate, AgentPublicInfo):
|
|
|
1583
1583
|
cls,
|
|
1584
1584
|
db: AsyncSession = None,
|
|
1585
1585
|
filter_owner_api_skills: bool = False,
|
|
1586
|
-
) -> dict:
|
|
1586
|
+
) -> dict[str, Any]:
|
|
1587
1587
|
"""Get the JSON schema for Agent model with all $ref references resolved.
|
|
1588
1588
|
|
|
1589
1589
|
This is the shared function that handles admin configuration filtering
|
|
@@ -1779,8 +1779,8 @@ class AgentResponse(Agent):
|
|
|
1779
1779
|
temperature: SkipJsonSchema[float | None] = None
|
|
1780
1780
|
frequency_penalty: SkipJsonSchema[float | None] = None
|
|
1781
1781
|
telegram_entrypoint_prompt: SkipJsonSchema[str | None] = None
|
|
1782
|
-
telegram_config: SkipJsonSchema[dict | None] = None
|
|
1783
|
-
discord_config: SkipJsonSchema[dict | None] = None
|
|
1782
|
+
telegram_config: SkipJsonSchema[dict[str, Any] | None] = None
|
|
1783
|
+
discord_config: SkipJsonSchema[dict[str, Any] | None] = None
|
|
1784
1784
|
xmtp_entrypoint_prompt: SkipJsonSchema[str | None] = None
|
|
1785
1785
|
|
|
1786
1786
|
# Additional fields specific to AgentResponse
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
4
|
from collections.abc import Callable
|
|
5
|
+
from typing import Any
|
|
5
6
|
|
|
6
7
|
from sqlalchemy import Column, MetaData, inspect, text
|
|
7
8
|
|
|
@@ -11,7 +12,7 @@ logger = logging.getLogger(__name__)
|
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
async def add_column_if_not_exists(
|
|
14
|
-
conn, dialect, table_name: str, column: Column
|
|
15
|
+
conn, dialect, table_name: str, column: Column[Any]
|
|
15
16
|
) -> None:
|
|
16
17
|
"""Add a column to a table if it doesn't exist.
|
|
17
18
|
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
id,name,provider,enabled,input_price,output_price,price_level,context_length,output_length,intelligence,speed,supports_image_input,supports_skill_calls,supports_structured_output,has_reasoning,supports_search,supports_temperature,supports_frequency_penalty,supports_presence_penalty,api_base,timeout
|
|
2
|
-
minimax/minimax-m2:free,MiniMax M2,
|
|
3
|
-
qwen/qwen3-coder:exacto,Qwen3 Coder,
|
|
4
|
-
google/gemini-2.5-flash,Gemini 2.5 Flash,
|
|
5
|
-
google/gemini-2.5-pro,Gemini 2.5 Pro,
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
gpt-5
|
|
9
|
-
gpt-5,GPT-5,openai,TRUE,1.25,10,4,400000,128000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
2
|
+
minimax/minimax-m2:free,MiniMax M2,openrouter,FALSE,0,0,1,204800,131000,4,2,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,300
|
|
3
|
+
qwen/qwen3-coder:exacto,Qwen3 Coder,openrouter,FALSE,0.38,1.53,2,262000,262000,3,3,FALSE,TRUE,FALSE,FALSE,FALSE,TRUE,FALSE,FALSE,,300
|
|
4
|
+
google/gemini-2.5-flash,Gemini 2.5 Flash,openrouter,FALSE,0.3,2.5,2,1050000,65000,3,4,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,300
|
|
5
|
+
google/gemini-2.5-pro,Gemini 2.5 Pro,openrouter,FALSE,1.25,10,4,1050000,65000,4,2,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,300
|
|
6
|
+
gemini-3-pro-preview,Gemini 3 Pro Preview,google,TRUE,2,12,4,200000,65000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,300
|
|
7
|
+
anthropic/claude-sonnet-4.5,Anthropic Claude Sonnet 4.5,openrouter,FALSE,3,15,5,200000,64000,5,1,TRUE,TRUE,FALSE,TRUE,FALSE,TRUE,FALSE,FALSE,,300
|
|
8
|
+
gpt-5.2,GPT-5.2,openai,TRUE,1.75,14,4,400000,128000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
10
9
|
gpt-5.1,GPT-5.1,openai,TRUE,1.25,10,4,400000,128000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
11
10
|
gpt-5.1-codex,GPT-5.1 Codex,openai,TRUE,1.25,10,4,400000,128000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
12
11
|
gpt-5.1-codex-mini,GPT-5.1 Codex Mini,openai,TRUE,0.25,2,2,400000,128000,4,4,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
12
|
+
gpt-5-nano,GPT-5 Nano,openai,TRUE,0.05,0.4,1,400000,128000,3,5,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,180
|
|
13
|
+
gpt-5-mini,GPT-5 Mini,openai,TRUE,0.25,2,2,400000,128000,4,4,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
14
|
+
gpt-5,GPT-5,openai,TRUE,1.25,10,4,400000,128000,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,,180
|
|
13
15
|
gpt-4o,GPT-4o,openai,FALSE,2.5,10,4,128000,4096,4,3,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,,180
|
|
14
16
|
gpt-4o-mini,GPT-4o Mini,openai,FALSE,0.15,0.6,1,128000,4096,3,4,FALSE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,,180
|
|
15
17
|
gpt-4.1-nano,GPT-4.1 Nano,openai,TRUE,0.1,0.4,1,128000,4096,3,5,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,FALSE,FALSE,,180
|
|
@@ -17,8 +19,8 @@ gpt-4.1-mini,GPT-4.1 Mini,openai,TRUE,0.4,1.6,2,128000,4096,4,4,FALSE,TRUE,TRUE,
|
|
|
17
19
|
gpt-4.1,GPT-4.1,openai,TRUE,2,8,4,128000,4096,5,3,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,,180
|
|
18
20
|
o3,OpenAI o3,openai,TRUE,2,8,4,200000,100000,5,1,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,180
|
|
19
21
|
o4-mini,OpenAI o4-mini,openai,TRUE,1.1,4.4,3,128000,4096,4,3,FALSE,TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,,180
|
|
20
|
-
deepseek-chat,Deepseek V3.2
|
|
21
|
-
deepseek-reasoner,DeepSeek V3.2
|
|
22
|
+
deepseek-chat,Deepseek V3.2,deepseek,TRUE,0.28,0.42,2,128000,4096,4,3,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,https://api.deepseek.com,300
|
|
23
|
+
deepseek-reasoner,DeepSeek V3.2 Thinking,deepseek,TRUE,0.28,0.42,2,128000,32000,5,1,FALSE,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,TRUE,https://api.deepseek.com,300
|
|
22
24
|
grok-4,Grok 4,xai,TRUE,3,15,4,256000,4096,5,3,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,180
|
|
23
25
|
grok-4-fast-non-reasoning,Grok 4 Fast,xai,TRUE,0.2,0.5,2,2000000,4096,3,4,TRUE,TRUE,TRUE,FALSE,TRUE,TRUE,FALSE,FALSE,,180
|
|
24
26
|
grok-4-fast-reasoning,Grok 4 Fast Reasoning,xai,TRUE,0.2,0.5,2,2000000,4096,3,4,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,FALSE,FALSE,,180
|
|
@@ -86,6 +86,28 @@ def _load_default_llm_models() -> dict[str, "LLMModelInfo"]:
|
|
|
86
86
|
)
|
|
87
87
|
if not model.enabled:
|
|
88
88
|
continue
|
|
89
|
+
|
|
90
|
+
# Check if provider is configured
|
|
91
|
+
is_configured = True
|
|
92
|
+
if model.provider == LLMProvider.OPENAI:
|
|
93
|
+
is_configured = bool(config.openai_api_key)
|
|
94
|
+
elif model.provider == LLMProvider.GOOGLE:
|
|
95
|
+
is_configured = bool(config.google_api_key)
|
|
96
|
+
elif model.provider == LLMProvider.DEEPSEEK:
|
|
97
|
+
is_configured = bool(config.deepseek_api_key)
|
|
98
|
+
elif model.provider == LLMProvider.XAI:
|
|
99
|
+
is_configured = bool(config.xai_api_key)
|
|
100
|
+
elif model.provider == LLMProvider.OPENROUTER:
|
|
101
|
+
is_configured = bool(config.openrouter_api_key)
|
|
102
|
+
elif model.provider == LLMProvider.ETERNAL:
|
|
103
|
+
is_configured = bool(config.eternal_api_key)
|
|
104
|
+
elif model.provider == LLMProvider.REIGENT:
|
|
105
|
+
is_configured = bool(config.reigent_api_key)
|
|
106
|
+
elif model.provider == LLMProvider.VENICE:
|
|
107
|
+
is_configured = bool(config.venice_api_key)
|
|
108
|
+
|
|
109
|
+
if not is_configured:
|
|
110
|
+
continue
|
|
89
111
|
except Exception as exc:
|
|
90
112
|
logger.error(
|
|
91
113
|
"Failed to load default LLM model %s: %s", row.get("id"), exc
|
|
@@ -98,9 +120,10 @@ def _load_default_llm_models() -> dict[str, "LLMModelInfo"]:
|
|
|
98
120
|
|
|
99
121
|
class LLMProvider(str, Enum):
|
|
100
122
|
OPENAI = "openai"
|
|
123
|
+
GOOGLE = "google"
|
|
101
124
|
DEEPSEEK = "deepseek"
|
|
102
125
|
XAI = "xai"
|
|
103
|
-
|
|
126
|
+
OPENROUTER = "openrouter"
|
|
104
127
|
ETERNAL = "eternal"
|
|
105
128
|
REIGENT = "reigent"
|
|
106
129
|
VENICE = "venice"
|
|
@@ -110,9 +133,10 @@ class LLMProvider(str, Enum):
|
|
|
110
133
|
"""Return user-friendly display name for the provider."""
|
|
111
134
|
display_names = {
|
|
112
135
|
self.OPENAI: "OpenAI",
|
|
136
|
+
self.GOOGLE: "Google",
|
|
113
137
|
self.DEEPSEEK: "DeepSeek",
|
|
114
138
|
self.XAI: "xAI",
|
|
115
|
-
self.
|
|
139
|
+
self.OPENROUTER: "OpenRouter",
|
|
116
140
|
self.ETERNAL: "Eternal",
|
|
117
141
|
self.REIGENT: "Reigent",
|
|
118
142
|
self.VENICE: "Venice",
|
|
@@ -502,19 +526,19 @@ class XAILLM(LLMModel):
|
|
|
502
526
|
return ChatXAI(**kwargs)
|
|
503
527
|
|
|
504
528
|
|
|
505
|
-
class
|
|
506
|
-
"""
|
|
529
|
+
class OpenRouterLLM(LLMModel):
|
|
530
|
+
"""OpenRouter LLM configuration."""
|
|
507
531
|
|
|
508
532
|
async def create_instance(self, params: dict[str, Any] = {}) -> BaseChatModel:
|
|
509
|
-
"""Create and return a ChatOpenAI instance configured for
|
|
533
|
+
"""Create and return a ChatOpenAI instance configured for OpenRouter."""
|
|
510
534
|
from langchain_openai import ChatOpenAI
|
|
511
535
|
|
|
512
536
|
info = await self.model_info()
|
|
513
537
|
|
|
514
538
|
kwargs = {
|
|
515
539
|
"model": self.model_name,
|
|
516
|
-
"api_key": config.
|
|
517
|
-
"base_url":
|
|
540
|
+
"api_key": config.openrouter_api_key,
|
|
541
|
+
"base_url": "https://openrouter.ai/api/v1",
|
|
518
542
|
"timeout": info.timeout,
|
|
519
543
|
"max_completion_tokens": 999,
|
|
520
544
|
}
|
|
@@ -616,6 +640,31 @@ class VeniceLLM(LLMModel):
|
|
|
616
640
|
return ChatOpenAI(**kwargs)
|
|
617
641
|
|
|
618
642
|
|
|
643
|
+
class GoogleLLM(LLMModel):
|
|
644
|
+
"""Google LLM configuration."""
|
|
645
|
+
|
|
646
|
+
async def create_instance(self, params: dict[str, Any] = {}) -> BaseChatModel:
|
|
647
|
+
"""Create and return a ChatGoogleGenerativeAI instance."""
|
|
648
|
+
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
649
|
+
|
|
650
|
+
info = await self.model_info()
|
|
651
|
+
|
|
652
|
+
kwargs = {
|
|
653
|
+
"model": self.model_name,
|
|
654
|
+
"google_api_key": config.google_api_key,
|
|
655
|
+
"timeout": info.timeout,
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
# Add optional parameters based on model support
|
|
659
|
+
if info.supports_temperature:
|
|
660
|
+
kwargs["temperature"] = self.temperature
|
|
661
|
+
|
|
662
|
+
# Update kwargs with params to allow overriding
|
|
663
|
+
kwargs.update(params)
|
|
664
|
+
|
|
665
|
+
return ChatGoogleGenerativeAI(**kwargs)
|
|
666
|
+
|
|
667
|
+
|
|
619
668
|
# Factory function to create the appropriate LLM model based on the model name
|
|
620
669
|
class OllamaLLM(LLMModel):
|
|
621
670
|
"""Ollama LLM configuration."""
|
|
@@ -677,7 +726,9 @@ async def create_llm_model(
|
|
|
677
726
|
|
|
678
727
|
provider = info.provider
|
|
679
728
|
|
|
680
|
-
if provider == LLMProvider.
|
|
729
|
+
if provider == LLMProvider.GOOGLE:
|
|
730
|
+
return GoogleLLM(**base_params)
|
|
731
|
+
elif provider == LLMProvider.DEEPSEEK:
|
|
681
732
|
return DeepseekLLM(**base_params)
|
|
682
733
|
elif provider == LLMProvider.XAI:
|
|
683
734
|
return XAILLM(**base_params)
|
|
@@ -687,8 +738,8 @@ async def create_llm_model(
|
|
|
687
738
|
return ReigentLLM(**base_params)
|
|
688
739
|
elif provider == LLMProvider.VENICE:
|
|
689
740
|
return VeniceLLM(**base_params)
|
|
690
|
-
elif provider == LLMProvider.
|
|
691
|
-
return
|
|
741
|
+
elif provider == LLMProvider.OPENROUTER:
|
|
742
|
+
return OpenRouterLLM(**base_params)
|
|
692
743
|
elif provider == LLMProvider.OLLAMA:
|
|
693
744
|
return OllamaLLM(**base_params)
|
|
694
745
|
else:
|
|
@@ -162,7 +162,7 @@ class AgentSkillData(AgentSkillDataCreate):
|
|
|
162
162
|
return result or 0
|
|
163
163
|
|
|
164
164
|
@classmethod
|
|
165
|
-
async def get(cls, agent_id: str, skill: str, key: str) -> dict | None:
|
|
165
|
+
async def get(cls, agent_id: str, skill: str, key: str) -> dict[str, Any] | None:
|
|
166
166
|
"""Get skill data for an agent.
|
|
167
167
|
|
|
168
168
|
Args:
|
|
@@ -303,7 +303,7 @@ class ChatSkillData(ChatSkillDataCreate):
|
|
|
303
303
|
]
|
|
304
304
|
|
|
305
305
|
@classmethod
|
|
306
|
-
async def get(cls, chat_id: str, skill: str, key: str) -> dict | None:
|
|
306
|
+
async def get(cls, chat_id: str, skill: str, key: str) -> dict[str, Any] | None:
|
|
307
307
|
"""Get skill data for a chat.
|
|
308
308
|
|
|
309
309
|
Args:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import Literal
|
|
2
|
+
from typing import Any, Literal
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
@@ -65,7 +65,7 @@ class AcolytAskGpt(AcolytBaseTool):
|
|
|
65
65
|
"""
|
|
66
66
|
args_schema: type[BaseModel] = AcolytAskGptInput
|
|
67
67
|
|
|
68
|
-
async def _arun(self, question: str, **kwargs) -> dict:
|
|
68
|
+
async def _arun(self, question: str, **kwargs) -> dict[str, Any]:
|
|
69
69
|
"""Run the tool to get answer from Acolyt GPT.
|
|
70
70
|
|
|
71
71
|
Args:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Card drawing skill using Deck of Cards API."""
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
from typing import Any
|
|
4
5
|
|
|
5
6
|
try:
|
|
6
7
|
import httpx
|
|
@@ -50,7 +51,7 @@ class CasinoDeckDraw(CasinoBaseTool):
|
|
|
50
51
|
description: str = PROMPT
|
|
51
52
|
args_schema: type[BaseModel] = CasinoDeckDrawInput
|
|
52
53
|
|
|
53
|
-
async def _arun(self, count: int = 1, **kwargs) -> dict:
|
|
54
|
+
async def _arun(self, count: int = 1, **kwargs) -> dict[str, Any]:
|
|
54
55
|
try:
|
|
55
56
|
context = self.get_context()
|
|
56
57
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Deck shuffling skill using Deck of Cards API."""
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
from typing import Any
|
|
4
5
|
|
|
5
6
|
try:
|
|
6
7
|
import httpx
|
|
@@ -56,7 +57,7 @@ class CasinoDeckShuffle(CasinoBaseTool):
|
|
|
56
57
|
|
|
57
58
|
async def _arun(
|
|
58
59
|
self, deck_count: int = 1, jokers_enabled: bool = False, **kwargs
|
|
59
|
-
) -> dict:
|
|
60
|
+
) -> dict[str, Any]:
|
|
60
61
|
try:
|
|
61
62
|
context = self.get_context()
|
|
62
63
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Quantum dice rolling skill using QRandom API."""
|
|
2
2
|
|
|
3
3
|
import logging
|
|
4
|
+
from typing import Any
|
|
4
5
|
|
|
5
6
|
try:
|
|
6
7
|
import httpx
|
|
@@ -49,7 +50,7 @@ class CasinoDiceRoll(CasinoBaseTool):
|
|
|
49
50
|
description: str = PROMPT
|
|
50
51
|
args_schema: type[BaseModel] = CasinoDiceRollInput
|
|
51
52
|
|
|
52
|
-
async def _arun(self, dice_count: int = 1, **kwargs) -> dict:
|
|
53
|
+
async def _arun(self, dice_count: int = 1, **kwargs) -> dict[str, Any]:
|
|
53
54
|
try:
|
|
54
55
|
context = self.get_context()
|
|
55
56
|
|
|
@@ -4,6 +4,8 @@ Casino Skills Utilities
|
|
|
4
4
|
Common constants, URLs, and helper functions for Casino skills.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
7
9
|
# API URLs
|
|
8
10
|
DECK_OF_CARDS_API_BASE = "https://www.deckofcardsapi.com/api/deck"
|
|
9
11
|
QRANDOM_API_BASE = "https://qrandom.io/api/random"
|
|
@@ -89,7 +91,7 @@ def validate_dice_count(count: int) -> int:
|
|
|
89
91
|
return max(MIN_DICE_COUNT, min(MAX_DICE_COUNT, count))
|
|
90
92
|
|
|
91
93
|
|
|
92
|
-
def format_card_info(card: dict) -> dict:
|
|
94
|
+
def format_card_info(card: dict[str, Any]) -> dict[str, Any]:
|
|
93
95
|
"""Format card information for consistent output.
|
|
94
96
|
|
|
95
97
|
Args:
|
|
@@ -161,7 +161,7 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
161
161
|
limit: int | None = 5,
|
|
162
162
|
config: Any | None = None,
|
|
163
163
|
**kwargs,
|
|
164
|
-
) -> dict:
|
|
164
|
+
) -> dict[str, Any]:
|
|
165
165
|
"""Lookup blockchain RPC endpoints from Chainlist."""
|
|
166
166
|
if not search_term and not chain_id:
|
|
167
167
|
return {
|