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