intentkit 0.6.17.dev2__tar.gz → 0.6.17.dev3__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.
Potentially problematic release.
This version of intentkit might be problematic. Click here for more details.
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/.gitignore +0 -2
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/PKG-INFO +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/__init__.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/agent_schema.json +4 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/pyproject.toml +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/base.py +4 -18
- intentkit-0.6.17.dev3/skills/casino/README.md +254 -0
- intentkit-0.6.17.dev3/skills/casino/__init__.py +97 -0
- intentkit-0.6.17.dev3/skills/casino/base.py +23 -0
- intentkit-0.6.17.dev3/skills/casino/casino.png +0 -0
- intentkit-0.6.17.dev3/skills/casino/deck_draw.py +130 -0
- intentkit-0.6.17.dev3/skills/casino/deck_shuffle.py +118 -0
- intentkit-0.6.17.dev3/skills/casino/dice_roll.py +102 -0
- intentkit-0.6.17.dev3/skills/casino/schema.json +78 -0
- intentkit-0.6.17.dev3/skills/casino/utils.py +107 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/skills.toml +4 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/follow_user.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/get_mentions.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/get_timeline.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/get_user_by_username.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/get_user_tweets.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/like_tweet.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/post_tweet.py +20 -4
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/reply_tweet.py +18 -4
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/retweet.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/search_tweets.py +1 -1
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/LICENSE +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/MANIFEST.in +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/agent.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/engine.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/graph.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/skill.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/abstracts/twitter.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/clients/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/clients/cdp.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/clients/twitter.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/config/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/config/config.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/agent.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/client.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/credit.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/engine.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/node.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/prompt.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/core/skill.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/agent.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/agent_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/app_setting.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/chat.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/conversation.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/credit.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/db.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/db_mig.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/generator.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/llm.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/redis.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/skill.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/models/user.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/acolyt/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/acolyt/ask.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/acolyt/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/acolyt/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/projects.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/aixbt/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/allora/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/allora/allora.jpeg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/allora/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/allora/price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/allora/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/carv.webp +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/fetch_news.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/onchain_query.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/carv/token_info_and_price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/cdp.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/get_balance.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cdp/swap.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/chain_lookup.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/chainlist/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/common/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/common/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/common/common.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/common/current_time.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/common/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/constants.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dapplooker/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/config/chains.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_protocol.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dexscreener/search_token.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/mention.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/stats.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/tokens.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/elfa/utils.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/abi/approval.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/abi/route.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/best_yield.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/enso.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/networks.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/prices.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/route.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/tokens.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/enso/wallet.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/clear.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/crawl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/query.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/scrape.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/firecrawl/utils.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/github.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/github_search.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/github/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/heurist.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_animagine_xl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_arthemy_comics.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_arthemy_real.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_braindance.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_flux_1_dev.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/image_generation_sdxl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/heurist/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/get.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/http.svg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/post.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/put.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/http/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/lifi.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/token_execute.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/token_quote.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/lifi/utils.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/fetch_nft_portfolio.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/fetch_solana_portfolio.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/fetch_wallet_portfolio.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/moralis.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/tests/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/moralis/tests/test_wallet.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/nation/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/nation/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/nation/nation.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/nation/nft_check.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/nation/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/dalle_image_generation.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/gpt_image_generation.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/gpt_image_to_image.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/image_to_text.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/openai.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/openai/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/constants.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/moralis.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/get_channel.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/get_message.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/schedule_message.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/send_message.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/slack/slack.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/delete_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/fetch_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/insert_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/invoke_function.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/supabase.svg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/update_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/supabase/upsert_data.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/add_autonomous_task.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/delete_autonomous_task.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/edit_autonomous_task.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/list_autonomous_tasks.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/read_agent_api_key.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/regenerate_agent_api_key.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/system/system.svg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/constants.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/moralis.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/token_analytics.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/token_price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/token/token_search.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/twitter/twitter.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/unrealspeech/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/unrealspeech/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/input.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/venice_audio.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/api.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/config.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_enhance/image_enhance.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_upscale/image_upscale.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/utils.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/utils.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/README.md +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/base.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/price.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/schema.json +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/swap.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/transfer.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/__init__.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/chain.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/error.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/logging.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/random.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/s3.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/slack_alert.py +0 -0
- {intentkit-0.6.17.dev2 → intentkit-0.6.17.dev3}/utils/tx.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.6.17.
|
|
3
|
+
Version: 0.6.17.dev3
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/crestal-network/intentkit
|
|
6
6
|
Project-URL: Repository, https://github.com/crestal-network/intentkit
|
|
@@ -2,7 +2,6 @@ import asyncio
|
|
|
2
2
|
import logging
|
|
3
3
|
from typing import Any, Callable, Dict, Literal, NotRequired, Optional, TypedDict, Union
|
|
4
4
|
|
|
5
|
-
from langchain_core.runnables import RunnableConfig
|
|
6
5
|
from langchain_core.tools import BaseTool
|
|
7
6
|
from langchain_core.tools.base import ToolException
|
|
8
7
|
from langgraph.runtime import get_runtime
|
|
@@ -180,22 +179,9 @@ class IntentKitSkill(BaseTool):
|
|
|
180
179
|
"Use _arun instead, IntentKit only supports synchronous skill calls"
|
|
181
180
|
)
|
|
182
181
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
raise ValueError("configurable not in runner_config")
|
|
186
|
-
configurable = runner_config["configurable"]
|
|
187
|
-
if not configurable:
|
|
188
|
-
raise ValueError("configurable in runnable config is empty")
|
|
189
|
-
return SkillContext(
|
|
190
|
-
skill_category=self.category,
|
|
191
|
-
agent_id=configurable.get("agent_id"),
|
|
192
|
-
user_id=configurable.get("user_id"),
|
|
193
|
-
app_id=configurable.get("app_id"),
|
|
194
|
-
chat_id=configurable.get("chat_id"),
|
|
195
|
-
entrypoint=configurable.get("entrypoint"),
|
|
196
|
-
is_private=configurable.get("is_private"),
|
|
197
|
-
)
|
|
198
|
-
|
|
199
|
-
def get_context(self) -> AgentContext:
|
|
182
|
+
@staticmethod
|
|
183
|
+
def get_context() -> AgentContext:
|
|
200
184
|
runtime = get_runtime(AgentContext)
|
|
185
|
+
if runtime.context is None or not isinstance(runtime.context, AgentContext):
|
|
186
|
+
raise ValueError("No AgentContext found")
|
|
201
187
|
return runtime.context
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Casino Skills for IntentKit
|
|
2
|
+
|
|
3
|
+
The Casino skills provide comprehensive gambling and gaming capabilities for AI agents, enabling interactive card games, dice games, and casino-style entertainment.
|
|
4
|
+
|
|
5
|
+
## 🎯 Overview
|
|
6
|
+
|
|
7
|
+
This skill set includes three main functions:
|
|
8
|
+
- **Deck Shuffling**: Create and shuffle card decks with customizable options
|
|
9
|
+
- **Card Drawing**: Draw cards with visual PNG/SVG images
|
|
10
|
+
- **Quantum Dice Rolling**: True random dice using quantum number generation
|
|
11
|
+
|
|
12
|
+
## 🛠️ Available Skills
|
|
13
|
+
|
|
14
|
+
### 1. `casino_deck_shuffle`
|
|
15
|
+
Creates and shuffles new card decks with options for multiple decks and jokers.
|
|
16
|
+
|
|
17
|
+
**Parameters:**
|
|
18
|
+
- `deck_count` (int): Number of decks (1-6, default: 1)
|
|
19
|
+
- `jokers_enabled` (bool): Include jokers (default: false)
|
|
20
|
+
|
|
21
|
+
### 2. `casino_deck_draw`
|
|
22
|
+
Draws cards from the current deck with detailed information and images.
|
|
23
|
+
|
|
24
|
+
**Parameters:**
|
|
25
|
+
- `count` (int): Number of cards to draw (1-10, default: 1)
|
|
26
|
+
|
|
27
|
+
### 3. `casino_dice_roll`
|
|
28
|
+
Rolls quantum random dice with visual representation.
|
|
29
|
+
|
|
30
|
+
**Parameters:**
|
|
31
|
+
- `dice_count` (int): Number of dice to roll (1-10, default: 1)
|
|
32
|
+
|
|
33
|
+
## 🎮 Game Examples
|
|
34
|
+
|
|
35
|
+
### 🃏 Blackjack (21)
|
|
36
|
+
|
|
37
|
+
**Setup:**
|
|
38
|
+
```
|
|
39
|
+
Agent: I'll set up a Blackjack game for you! Let me shuffle a fresh deck.
|
|
40
|
+
[Calls casino_deck_shuffle with deck_count=1]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Dealing Cards:**
|
|
44
|
+
```
|
|
45
|
+
Agent: Dealing your cards...
|
|
46
|
+
[Calls casino_deck_draw with count=2 for player]
|
|
47
|
+
[Calls casino_deck_draw with count=1 for dealer, 1 face down]
|
|
48
|
+
|
|
49
|
+
Result: You have: King♠️ (image) + 7♥️ (image) = 17
|
|
50
|
+
Dealer shows: Ace♣️ (image) + [hidden card]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Player Actions:**
|
|
54
|
+
```
|
|
55
|
+
User: "Hit me"
|
|
56
|
+
Agent: [Calls casino_deck_draw with count=1]
|
|
57
|
+
Result: You drew 3♦️ (image). Total: 20
|
|
58
|
+
|
|
59
|
+
User: "Stand"
|
|
60
|
+
Agent: Revealing dealer's hidden card...
|
|
61
|
+
[Calls casino_deck_draw for dealer's hidden card and additional cards as needed]
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### 🎲 Craps
|
|
65
|
+
|
|
66
|
+
**Come Out Roll:**
|
|
67
|
+
```
|
|
68
|
+
Agent: Welcome to the Craps table! Place your bets and let's roll!
|
|
69
|
+
[Calls casino_dice_roll with dice_count=2]
|
|
70
|
+
|
|
71
|
+
Result: 🎲 Rolled: ⚂ ⚃ (3 + 4 = 7) - WINNER!
|
|
72
|
+
The shooter made their point on the come out roll!
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Point Phase:**
|
|
76
|
+
```
|
|
77
|
+
Agent: Point is 6. Rolling again...
|
|
78
|
+
[Calls casino_dice_roll with dice_count=2]
|
|
79
|
+
|
|
80
|
+
Result: 🎲 Rolled: ⚁ ⚄ (2 + 5 = 7) - Seven out!
|
|
81
|
+
New shooter coming up.
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 🃏 Texas Hold'em Poker
|
|
85
|
+
|
|
86
|
+
**Pre-flop:**
|
|
87
|
+
```
|
|
88
|
+
Agent: Dealing pocket cards...
|
|
89
|
+
[Calls casino_deck_shuffle with deck_count=1]
|
|
90
|
+
[Calls casino_deck_draw with count=2 for each player]
|
|
91
|
+
|
|
92
|
+
Your cards: A♠️ (image) K♠️ (image) - Ace-King suited!
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**The Flop:**
|
|
96
|
+
```
|
|
97
|
+
Agent: Dealing the flop...
|
|
98
|
+
[Calls casino_deck_draw with count=3]
|
|
99
|
+
|
|
100
|
+
Flop: A♦️ (image) K♣️ (image) 7♠️ (image)
|
|
101
|
+
You have two pair - Aces and Kings!
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Turn and River:**
|
|
105
|
+
```
|
|
106
|
+
Agent: Turn card...
|
|
107
|
+
[Calls casino_deck_draw with count=1]
|
|
108
|
+
Turn: Q♠️ (image)
|
|
109
|
+
|
|
110
|
+
River card...
|
|
111
|
+
[Calls casino_deck_draw with count=1]
|
|
112
|
+
River: J♠️ (image)
|
|
113
|
+
|
|
114
|
+
Final board: A♦️ K♣️ 7♠️ Q♠️ J♠️
|
|
115
|
+
You have a straight! A-K-Q-J-10
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 🎯 Yahtzee
|
|
119
|
+
|
|
120
|
+
**First Roll:**
|
|
121
|
+
```
|
|
122
|
+
Agent: Rolling all 5 dice for Yahtzee!
|
|
123
|
+
[Calls casino_dice_roll with dice_count=5]
|
|
124
|
+
|
|
125
|
+
Result: ⚀ ⚃ ⚃ ⚄ ⚅ (1, 4, 4, 5, 6)
|
|
126
|
+
Which dice would you like to keep?
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Rerolls:**
|
|
130
|
+
```
|
|
131
|
+
User: "Keep the two 4s"
|
|
132
|
+
Agent: Rerolling 3 dice...
|
|
133
|
+
[Calls casino_dice_roll with dice_count=3]
|
|
134
|
+
|
|
135
|
+
Result: ⚃ ⚃ ⚃ (4, 4, 4) - Combined with your kept dice: ⚃ ⚃ ⚃ ⚃ ⚃
|
|
136
|
+
YAHTZEE! Five of a kind - 4s! 🎉
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 🎲 Liar's Dice
|
|
140
|
+
|
|
141
|
+
**Round Start:**
|
|
142
|
+
```
|
|
143
|
+
Agent: Everyone roll your dice under the cup!
|
|
144
|
+
[Each player calls casino_dice_roll with dice_count=5]
|
|
145
|
+
|
|
146
|
+
Your dice (hidden): ⚁ ⚁ ⚂ ⚄ ⚅ (2, 2, 3, 5, 6)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Bidding:**
|
|
150
|
+
```
|
|
151
|
+
User: "I bid three 2s"
|
|
152
|
+
Agent: Player 2 bids four 3s...
|
|
153
|
+
Player 3 calls "Liar!" on Player 2.
|
|
154
|
+
|
|
155
|
+
Revealing all dice...
|
|
156
|
+
[Shows all dice rolled by each player]
|
|
157
|
+
Total 3s on table: 2 dice
|
|
158
|
+
Player 2 bid four 3s but there were only 2. Player 2 loses a die!
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### 🃏 War (Card Game)
|
|
162
|
+
|
|
163
|
+
**Battle:**
|
|
164
|
+
```
|
|
165
|
+
Agent: Time for War! Each player draws one card.
|
|
166
|
+
[Calls casino_deck_draw with count=1 for each player]
|
|
167
|
+
|
|
168
|
+
You: Q♦️ (image) - Queen of Diamonds
|
|
169
|
+
Opponent: 8♣️ (image) - Eight of Clubs
|
|
170
|
+
|
|
171
|
+
Queen beats 8 - You win this round!
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**War Declaration:**
|
|
175
|
+
```
|
|
176
|
+
Agent: Both players drew Kings! It's WAR!
|
|
177
|
+
[Calls casino_deck_draw with count=4 for each player - 3 face down, 1 face up]
|
|
178
|
+
|
|
179
|
+
Your war card: A♠️ (image) - Ace of Spades
|
|
180
|
+
Opponent's war card: 10♥️ (image) - Ten of Hearts
|
|
181
|
+
|
|
182
|
+
Ace beats 10 - You win the entire war pile!
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## 🎨 Visual Features
|
|
186
|
+
|
|
187
|
+
### Card Images
|
|
188
|
+
Each card comes with both PNG and SVG images:
|
|
189
|
+
```json
|
|
190
|
+
{
|
|
191
|
+
"value": "ACE",
|
|
192
|
+
"suit": "SPADES",
|
|
193
|
+
"code": "AS",
|
|
194
|
+
"image": "https://deckofcardsapi.com/static/img/AS.png",
|
|
195
|
+
"svg_image": "https://deckofcardsapi.com/static/img/AS.svg"
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Dice Visualization
|
|
200
|
+
Dice results include emoji representation:
|
|
201
|
+
- ⚀ (1) ⚁ (2) ⚂ (3) ⚃ (4) ⚄ (5) ⚅ (6)
|
|
202
|
+
|
|
203
|
+
### Game State Persistence
|
|
204
|
+
- Deck state maintained between draws
|
|
205
|
+
- Remaining cards tracked automatically
|
|
206
|
+
- Each agent has independent game sessions
|
|
207
|
+
|
|
208
|
+
## 🛡️ Built-in Features
|
|
209
|
+
|
|
210
|
+
### Rate Limiting
|
|
211
|
+
- **Deck Shuffle**: 20 requests/minute
|
|
212
|
+
- **Card Draw**: 30 requests/minute
|
|
213
|
+
- **Dice Roll**: 15 requests/minute
|
|
214
|
+
|
|
215
|
+
### Error Handling
|
|
216
|
+
- Automatic deck creation if none exists
|
|
217
|
+
- Graceful API failure handling
|
|
218
|
+
- Input validation and sanitization
|
|
219
|
+
|
|
220
|
+
### Quantum Randomness
|
|
221
|
+
Dice rolling uses true quantum random number generation from QRandom.io for authentic unpredictability, complete with quantum signatures for verification.
|
|
222
|
+
|
|
223
|
+
## 🚀 Getting Started
|
|
224
|
+
|
|
225
|
+
1. Enable Casino skills in your agent configuration
|
|
226
|
+
2. Set skill states (public/private/disabled) for each function
|
|
227
|
+
3. Start gaming! The agent will automatically manage decks and game state
|
|
228
|
+
|
|
229
|
+
## 🎪 Advanced Gaming Scenarios
|
|
230
|
+
|
|
231
|
+
### Multi-Table Casino
|
|
232
|
+
```
|
|
233
|
+
Agent: Welcome to the Nation Casino! I'm managing 3 tables:
|
|
234
|
+
- Table 1: Blackjack (6-deck shoe)
|
|
235
|
+
- Table 2: Poker Tournament
|
|
236
|
+
- Table 3: Craps with side bets
|
|
237
|
+
|
|
238
|
+
Which table interests you?
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Tournament Mode
|
|
242
|
+
```
|
|
243
|
+
Agent: Poker Tournament - Round 1 of 3
|
|
244
|
+
Blinds: 50/100 chips
|
|
245
|
+
[Manages multiple hands, tracks chip counts, advances rounds]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Live Dealer Experience
|
|
249
|
+
```
|
|
250
|
+
Agent: 🎭 Good evening! I'm your live dealer tonight.
|
|
251
|
+
[Maintains casino atmosphere, explains rules, manages multiple players]
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
The Casino skills transform your AI agent into a comprehensive gaming companion capable of hosting authentic casino experiences with visual cards, quantum dice, and persistent game management! 🎰🎲🃏
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"""Casino skills for card games and dice rolling."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from typing import TypedDict
|
|
5
|
+
|
|
6
|
+
from intentkit.abstracts.skill import SkillStoreABC
|
|
7
|
+
from intentkit.skills.base import SkillConfig, SkillState
|
|
8
|
+
from intentkit.skills.casino.base import CasinoBaseTool
|
|
9
|
+
from intentkit.skills.casino.deck_draw import CasinoDeckDraw
|
|
10
|
+
from intentkit.skills.casino.deck_shuffle import CasinoDeckShuffle
|
|
11
|
+
from intentkit.skills.casino.dice_roll import CasinoDiceRoll
|
|
12
|
+
|
|
13
|
+
# Cache skills at the system level, because they are stateless
|
|
14
|
+
_cache: dict[str, CasinoBaseTool] = {}
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger(__name__)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SkillStates(TypedDict):
|
|
20
|
+
deck_shuffle: SkillState
|
|
21
|
+
deck_draw: SkillState
|
|
22
|
+
dice_roll: SkillState
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class Config(SkillConfig):
|
|
26
|
+
"""Configuration for Casino skills."""
|
|
27
|
+
|
|
28
|
+
states: SkillStates
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
async def get_skills(
|
|
32
|
+
config: "Config",
|
|
33
|
+
is_private: bool,
|
|
34
|
+
store: SkillStoreABC,
|
|
35
|
+
**_,
|
|
36
|
+
) -> list[CasinoBaseTool]:
|
|
37
|
+
"""Get all Casino skills.
|
|
38
|
+
|
|
39
|
+
Args:
|
|
40
|
+
config: The configuration for Casino skills.
|
|
41
|
+
is_private: Whether to include private skills.
|
|
42
|
+
store: The skill store for persisting data.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
A list of Casino skills.
|
|
46
|
+
"""
|
|
47
|
+
available_skills = []
|
|
48
|
+
|
|
49
|
+
# Include skills based on their state
|
|
50
|
+
for skill_name, state in config["states"].items():
|
|
51
|
+
if state == "disabled":
|
|
52
|
+
continue
|
|
53
|
+
elif state == "public" or (state == "private" and is_private):
|
|
54
|
+
available_skills.append(skill_name)
|
|
55
|
+
|
|
56
|
+
# Get each skill using the cached getter
|
|
57
|
+
result = []
|
|
58
|
+
for name in available_skills:
|
|
59
|
+
skill = get_casino_skill(name, store)
|
|
60
|
+
if skill:
|
|
61
|
+
result.append(skill)
|
|
62
|
+
return result
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def get_casino_skill(
|
|
66
|
+
name: str,
|
|
67
|
+
store: SkillStoreABC,
|
|
68
|
+
) -> CasinoBaseTool:
|
|
69
|
+
"""Get a Casino skill by name.
|
|
70
|
+
|
|
71
|
+
Args:
|
|
72
|
+
name: The name of the skill to get
|
|
73
|
+
store: The skill store for persisting data
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
The requested Casino skill
|
|
77
|
+
"""
|
|
78
|
+
if name == "deck_shuffle":
|
|
79
|
+
if name not in _cache:
|
|
80
|
+
_cache[name] = CasinoDeckShuffle(
|
|
81
|
+
skill_store=store,
|
|
82
|
+
)
|
|
83
|
+
return _cache[name]
|
|
84
|
+
elif name == "deck_draw":
|
|
85
|
+
if name not in _cache:
|
|
86
|
+
_cache[name] = CasinoDeckDraw(
|
|
87
|
+
skill_store=store,
|
|
88
|
+
)
|
|
89
|
+
return _cache[name]
|
|
90
|
+
elif name == "dice_roll":
|
|
91
|
+
if name not in _cache:
|
|
92
|
+
_cache[name] = CasinoDiceRoll(
|
|
93
|
+
skill_store=store,
|
|
94
|
+
)
|
|
95
|
+
return _cache[name]
|
|
96
|
+
else:
|
|
97
|
+
raise ValueError(f"Unknown Casino skill: {name}")
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"""Base class for Casino tools."""
|
|
2
|
+
|
|
3
|
+
from typing import Type
|
|
4
|
+
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
|
|
7
|
+
from intentkit.abstracts.skill import SkillStoreABC
|
|
8
|
+
from intentkit.skills.base import IntentKitSkill
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CasinoBaseTool(IntentKitSkill):
|
|
12
|
+
"""Base class for Casino tools."""
|
|
13
|
+
|
|
14
|
+
name: str = Field(description="The name of the tool")
|
|
15
|
+
description: str = Field(description="A description of what the tool does")
|
|
16
|
+
args_schema: Type[BaseModel]
|
|
17
|
+
skill_store: SkillStoreABC = Field(
|
|
18
|
+
description="The skill store for persisting data"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def category(self) -> str:
|
|
23
|
+
return "casino"
|
|
Binary file
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"""Card drawing skill using Deck of Cards API."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from typing import Type
|
|
5
|
+
|
|
6
|
+
try:
|
|
7
|
+
import httpx
|
|
8
|
+
except ImportError:
|
|
9
|
+
raise ImportError(
|
|
10
|
+
"httpx is required for Casino skills. Install it with: pip install httpx"
|
|
11
|
+
)
|
|
12
|
+
from pydantic import BaseModel, Field
|
|
13
|
+
|
|
14
|
+
from intentkit.skills.casino.base import CasinoBaseTool
|
|
15
|
+
from intentkit.skills.casino.utils import (
|
|
16
|
+
CURRENT_DECK_KEY,
|
|
17
|
+
DECK_STORAGE_KEY,
|
|
18
|
+
ENDPOINTS,
|
|
19
|
+
RATE_LIMITS,
|
|
20
|
+
format_card_info,
|
|
21
|
+
validate_card_count,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
NAME = "casino_deck_draw"
|
|
25
|
+
PROMPT = (
|
|
26
|
+
"Draw cards from the current deck. If no deck exists, a new one will be created. "
|
|
27
|
+
"Returns detailed card information including images."
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
logger = logging.getLogger(__name__)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class CasinoDeckDrawInput(BaseModel):
|
|
34
|
+
"""Input for CasinoDeckDraw tool."""
|
|
35
|
+
|
|
36
|
+
count: int = Field(default=1, description="Number of cards to draw (1-10)")
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class CasinoDeckDraw(CasinoBaseTool):
|
|
40
|
+
"""Tool for drawing cards from a deck.
|
|
41
|
+
|
|
42
|
+
This tool uses the Deck of Cards API to draw cards from the current deck.
|
|
43
|
+
|
|
44
|
+
Attributes:
|
|
45
|
+
name: The name of the tool.
|
|
46
|
+
description: A description of what the tool does.
|
|
47
|
+
args_schema: The schema for the tool's input arguments.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
name: str = NAME
|
|
51
|
+
description: str = PROMPT
|
|
52
|
+
args_schema: Type[BaseModel] = CasinoDeckDrawInput
|
|
53
|
+
|
|
54
|
+
async def _arun(self, count: int = 1, **kwargs) -> dict:
|
|
55
|
+
try:
|
|
56
|
+
context = self.get_context()
|
|
57
|
+
|
|
58
|
+
# Apply rate limit using built-in user_rate_limit method
|
|
59
|
+
rate_config = RATE_LIMITS["deck_draw"]
|
|
60
|
+
await self.user_rate_limit(
|
|
61
|
+
context.user_id or context.agent_id,
|
|
62
|
+
rate_config["max_requests"],
|
|
63
|
+
rate_config["interval"] // 60, # Convert to minutes
|
|
64
|
+
"deck_draw",
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# Validate count
|
|
68
|
+
count = validate_card_count(count)
|
|
69
|
+
|
|
70
|
+
# Get current deck info
|
|
71
|
+
deck_info = await self.skill_store.get_agent_skill_data(
|
|
72
|
+
context.agent_id, DECK_STORAGE_KEY, CURRENT_DECK_KEY
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
deck_id = "new" # Default to new deck
|
|
76
|
+
if deck_info and deck_info.get("deck_id"):
|
|
77
|
+
deck_id = deck_info["deck_id"]
|
|
78
|
+
|
|
79
|
+
# Build API URL
|
|
80
|
+
url = ENDPOINTS["deck_draw"].format(deck_id=deck_id)
|
|
81
|
+
params = {"count": count}
|
|
82
|
+
|
|
83
|
+
async with httpx.AsyncClient() as client:
|
|
84
|
+
response = await client.get(url, params=params)
|
|
85
|
+
|
|
86
|
+
if response.status_code == 200:
|
|
87
|
+
data = response.json()
|
|
88
|
+
|
|
89
|
+
if data.get("success"):
|
|
90
|
+
# Update deck info
|
|
91
|
+
if deck_id == "new":
|
|
92
|
+
deck_info = {
|
|
93
|
+
"deck_id": data["deck_id"],
|
|
94
|
+
"deck_count": 1,
|
|
95
|
+
"jokers_enabled": False,
|
|
96
|
+
"remaining": data["remaining"],
|
|
97
|
+
"shuffled": True,
|
|
98
|
+
}
|
|
99
|
+
else:
|
|
100
|
+
deck_info["remaining"] = data["remaining"]
|
|
101
|
+
|
|
102
|
+
await self.skill_store.save_agent_skill_data(
|
|
103
|
+
context.agent_id,
|
|
104
|
+
DECK_STORAGE_KEY,
|
|
105
|
+
CURRENT_DECK_KEY,
|
|
106
|
+
deck_info,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Format card information with images
|
|
110
|
+
cards = [
|
|
111
|
+
format_card_info(card) for card in data.get("cards", [])
|
|
112
|
+
]
|
|
113
|
+
|
|
114
|
+
return {
|
|
115
|
+
"success": True,
|
|
116
|
+
"cards_drawn": cards,
|
|
117
|
+
"remaining_cards": data["remaining"],
|
|
118
|
+
"deck_id": data["deck_id"],
|
|
119
|
+
"message": f"Drew {len(cards)} card{'s' if len(cards) > 1 else ''} "
|
|
120
|
+
f"({data['remaining']} remaining)",
|
|
121
|
+
}
|
|
122
|
+
else:
|
|
123
|
+
return {"success": False, "error": "Failed to draw cards"}
|
|
124
|
+
else:
|
|
125
|
+
logger.error(f"Deck API error: {response.status_code}")
|
|
126
|
+
return {"success": False, "error": "Failed to draw cards"}
|
|
127
|
+
|
|
128
|
+
except Exception as e:
|
|
129
|
+
logger.error(f"Error drawing cards: {str(e)}")
|
|
130
|
+
raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
|