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
intentkit/skills/cdp/__init__.py
CHANGED
|
@@ -3,55 +3,27 @@
|
|
|
3
3
|
from typing import TypedDict
|
|
4
4
|
|
|
5
5
|
from coinbase_agentkit import (
|
|
6
|
-
AgentKit,
|
|
7
|
-
AgentKitConfig,
|
|
8
|
-
CdpEvmServerWalletProvider,
|
|
9
|
-
basename_action_provider,
|
|
10
6
|
cdp_api_action_provider,
|
|
11
|
-
|
|
12
|
-
morpho_action_provider,
|
|
13
|
-
pyth_action_provider,
|
|
14
|
-
superfluid_action_provider,
|
|
7
|
+
cdp_evm_wallet_action_provider,
|
|
15
8
|
wallet_action_provider,
|
|
16
|
-
weth_action_provider,
|
|
17
|
-
wow_action_provider,
|
|
18
9
|
)
|
|
19
|
-
from coinbase_agentkit.action_providers.erc721 import erc721_action_provider
|
|
20
|
-
from coinbase_agentkit_langchain import get_langchain_tools
|
|
21
10
|
|
|
22
|
-
from intentkit.
|
|
23
|
-
from intentkit.
|
|
24
|
-
|
|
11
|
+
from intentkit.models.agent import Agent
|
|
12
|
+
from intentkit.skills.base import (
|
|
13
|
+
SkillConfig,
|
|
14
|
+
SkillState,
|
|
15
|
+
action_to_structured_tool,
|
|
16
|
+
get_agentkit_actions,
|
|
17
|
+
)
|
|
25
18
|
from intentkit.skills.cdp.base import CDPBaseTool
|
|
26
|
-
from intentkit.skills.cdp.get_balance import GetBalance
|
|
27
|
-
from intentkit.skills.cdp.swap import Swap
|
|
28
19
|
|
|
29
20
|
|
|
30
21
|
class SkillStates(TypedDict):
|
|
31
|
-
get_balance: SkillState
|
|
32
|
-
swap: SkillState
|
|
33
22
|
WalletActionProvider_get_balance: SkillState
|
|
34
23
|
WalletActionProvider_get_wallet_details: SkillState
|
|
35
24
|
WalletActionProvider_native_transfer: SkillState
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
PythActionProvider_fetch_price: SkillState
|
|
39
|
-
PythActionProvider_fetch_price_feed_id: SkillState
|
|
40
|
-
BasenameActionProvider_register_basename: SkillState
|
|
41
|
-
ERC20ActionProvider_get_balance: SkillState
|
|
42
|
-
ERC20ActionProvider_transfer: SkillState
|
|
43
|
-
Erc721ActionProvider_get_balance: SkillState
|
|
44
|
-
Erc721ActionProvider_mint: SkillState
|
|
45
|
-
Erc721ActionProvider_transfer: SkillState
|
|
46
|
-
WethActionProvider_wrap_eth: SkillState
|
|
47
|
-
MorphoActionProvider_deposit: SkillState
|
|
48
|
-
MorphoActionProvider_withdraw: SkillState
|
|
49
|
-
SuperfluidActionProvider_create_flow: SkillState
|
|
50
|
-
SuperfluidActionProvider_delete_flow: SkillState
|
|
51
|
-
SuperfluidActionProvider_update_flow: SkillState
|
|
52
|
-
WowActionProvider_buy_token: SkillState
|
|
53
|
-
WowActionProvider_create_token: SkillState
|
|
54
|
-
WowActionProvider_sell_token: SkillState
|
|
25
|
+
CdpEvmWalletActionProvider_get_swap_price: SkillState
|
|
26
|
+
CdpEvmWalletActionProvider_swap: SkillState
|
|
55
27
|
|
|
56
28
|
|
|
57
29
|
class Config(SkillConfig):
|
|
@@ -65,8 +37,8 @@ class Config(SkillConfig):
|
|
|
65
37
|
async def get_skills(
|
|
66
38
|
config: "Config",
|
|
67
39
|
is_private: bool,
|
|
68
|
-
store: SkillStoreABC,
|
|
69
40
|
agent_id: str,
|
|
41
|
+
agent: Agent | None = None,
|
|
70
42
|
**_,
|
|
71
43
|
) -> list[CDPBaseTool]:
|
|
72
44
|
"""Get all CDP skills.
|
|
@@ -74,7 +46,6 @@ async def get_skills(
|
|
|
74
46
|
Args:
|
|
75
47
|
config: The configuration for CDP skills.
|
|
76
48
|
is_private: Whether to include private skills.
|
|
77
|
-
store: The skill store for persisting data.
|
|
78
49
|
agent_id: The ID of the agent using the skills.
|
|
79
50
|
|
|
80
51
|
Returns:
|
|
@@ -90,51 +61,18 @@ async def get_skills(
|
|
|
90
61
|
available_skills.append(skill_name)
|
|
91
62
|
|
|
92
63
|
# Initialize CDP client
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
wallet_action_provider(),
|
|
102
|
-
cdp_api_action_provider(),
|
|
103
|
-
pyth_action_provider(),
|
|
104
|
-
basename_action_provider(),
|
|
105
|
-
erc20_action_provider(),
|
|
106
|
-
erc721_action_provider(),
|
|
107
|
-
weth_action_provider(),
|
|
108
|
-
morpho_action_provider(),
|
|
109
|
-
superfluid_action_provider(),
|
|
110
|
-
wow_action_provider(),
|
|
111
|
-
],
|
|
112
|
-
)
|
|
64
|
+
actions = await get_agentkit_actions(
|
|
65
|
+
agent_id,
|
|
66
|
+
[
|
|
67
|
+
wallet_action_provider,
|
|
68
|
+
cdp_api_action_provider,
|
|
69
|
+
cdp_evm_wallet_action_provider,
|
|
70
|
+
],
|
|
71
|
+
agent=agent,
|
|
113
72
|
)
|
|
114
|
-
cdp_tools = get_langchain_tools(agent_kit)
|
|
115
73
|
tools = []
|
|
116
74
|
for skill in available_skills:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
GetBalance(
|
|
121
|
-
agent_id=agent_id,
|
|
122
|
-
skill_store=store,
|
|
123
|
-
)
|
|
124
|
-
)
|
|
125
|
-
continue
|
|
126
|
-
elif skill == "swap" or skill.endswith("_trade"):
|
|
127
|
-
# Add the custom Swap skill, "trade" is backword compatible
|
|
128
|
-
tools.append(
|
|
129
|
-
Swap(
|
|
130
|
-
agent_id=agent_id,
|
|
131
|
-
skill_store=store,
|
|
132
|
-
)
|
|
133
|
-
)
|
|
134
|
-
continue
|
|
135
|
-
for tool in cdp_tools:
|
|
136
|
-
if tool.name.endswith(skill):
|
|
137
|
-
tool.handle_tool_error = lambda e: f"tool error: {e}"
|
|
138
|
-
tool.handle_validation_error = lambda e: f"validation error: {e}"
|
|
139
|
-
tools.append(tool)
|
|
75
|
+
for action in actions:
|
|
76
|
+
if action.name.endswith(skill):
|
|
77
|
+
tools.append(action_to_structured_tool(action))
|
|
140
78
|
return tools
|
intentkit/skills/cdp/base.py
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
from typing import Type
|
|
2
|
-
|
|
3
1
|
from pydantic import BaseModel, Field
|
|
4
2
|
|
|
5
|
-
from intentkit.abstracts.skill import SkillStoreABC
|
|
6
3
|
from intentkit.skills.base import IntentKitSkill
|
|
7
4
|
|
|
8
5
|
|
|
@@ -11,10 +8,7 @@ class CDPBaseTool(IntentKitSkill):
|
|
|
11
8
|
|
|
12
9
|
name: str = Field(description="The name of the tool")
|
|
13
10
|
description: str = Field(description="A description of what the tool does")
|
|
14
|
-
args_schema:
|
|
15
|
-
skill_store: SkillStoreABC = Field(
|
|
16
|
-
description="The skill store for persisting data"
|
|
17
|
-
)
|
|
11
|
+
args_schema: type[BaseModel]
|
|
18
12
|
|
|
19
13
|
@property
|
|
20
14
|
def category(self) -> str:
|
intentkit/skills/cdp/schema.json
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"type": "object",
|
|
4
4
|
"title": "Coinbase Wallet",
|
|
5
|
-
"description": "Integration with Coinbase Wallet (CDP) providing blockchain wallet functionality including balance checking
|
|
5
|
+
"description": "Integration with Coinbase Wallet (CDP) providing blockchain wallet functionality including balance checking and native transfers",
|
|
6
6
|
"x-icon": "https://ai.service.crestal.dev/skills/cdp/cdp.png",
|
|
7
7
|
"x-tags": [
|
|
8
|
-
"
|
|
8
|
+
"Crypto",
|
|
9
|
+
"DeFi"
|
|
9
10
|
],
|
|
10
11
|
"properties": {
|
|
11
12
|
"enabled": {
|
|
@@ -17,38 +18,6 @@
|
|
|
17
18
|
"states": {
|
|
18
19
|
"type": "object",
|
|
19
20
|
"properties": {
|
|
20
|
-
"get_balance": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"title": "CDP Wallet Get Balance",
|
|
23
|
-
"enum": [
|
|
24
|
-
"disabled",
|
|
25
|
-
"public",
|
|
26
|
-
"private"
|
|
27
|
-
],
|
|
28
|
-
"x-enum-title": [
|
|
29
|
-
"Disabled",
|
|
30
|
-
"Agent Owner + All Users",
|
|
31
|
-
"Agent Owner Only"
|
|
32
|
-
],
|
|
33
|
-
"description": "Use coinbase API to get wallet balance, float result.",
|
|
34
|
-
"default": "private"
|
|
35
|
-
},
|
|
36
|
-
"swap": {
|
|
37
|
-
"type": "string",
|
|
38
|
-
"title": "CDP Wallet Swap",
|
|
39
|
-
"enum": [
|
|
40
|
-
"disabled",
|
|
41
|
-
"public",
|
|
42
|
-
"private"
|
|
43
|
-
],
|
|
44
|
-
"x-enum-title": [
|
|
45
|
-
"Disabled",
|
|
46
|
-
"Agent Owner + All Users",
|
|
47
|
-
"Agent Owner Only"
|
|
48
|
-
],
|
|
49
|
-
"description": "Use coinbase API to swap.",
|
|
50
|
-
"default": "disabled"
|
|
51
|
-
},
|
|
52
21
|
"WalletActionProvider_get_balance": {
|
|
53
22
|
"type": "string",
|
|
54
23
|
"title": "Normal Get Balance",
|
|
@@ -81,281 +50,9 @@
|
|
|
81
50
|
"description": "Get wallet details using coinbase API",
|
|
82
51
|
"default": "public"
|
|
83
52
|
},
|
|
84
|
-
"CdpApiActionProvider_address_reputation": {
|
|
85
|
-
"type": "string",
|
|
86
|
-
"title": "Address Reputation",
|
|
87
|
-
"enum": [
|
|
88
|
-
"disabled",
|
|
89
|
-
"public",
|
|
90
|
-
"private"
|
|
91
|
-
],
|
|
92
|
-
"x-enum-title": [
|
|
93
|
-
"Disabled",
|
|
94
|
-
"Agent Owner + All Users",
|
|
95
|
-
"Agent Owner Only"
|
|
96
|
-
],
|
|
97
|
-
"description": "State for CdpApiActionProvider_address_reputation",
|
|
98
|
-
"default": "disabled"
|
|
99
|
-
},
|
|
100
|
-
"ERC20ActionProvider_get_balance": {
|
|
101
|
-
"type": "string",
|
|
102
|
-
"title": "Erc20 Get Balance",
|
|
103
|
-
"enum": [
|
|
104
|
-
"disabled",
|
|
105
|
-
"public",
|
|
106
|
-
"private"
|
|
107
|
-
],
|
|
108
|
-
"x-enum-title": [
|
|
109
|
-
"Disabled",
|
|
110
|
-
"Agent Owner + All Users",
|
|
111
|
-
"Agent Owner Only"
|
|
112
|
-
],
|
|
113
|
-
"description": "State for ERC20ActionProvider_get_balance",
|
|
114
|
-
"default": "disabled"
|
|
115
|
-
},
|
|
116
|
-
"ERC20ActionProvider_transfer": {
|
|
117
|
-
"type": "string",
|
|
118
|
-
"title": "Erc20 Transfer",
|
|
119
|
-
"enum": [
|
|
120
|
-
"disabled",
|
|
121
|
-
"public",
|
|
122
|
-
"private"
|
|
123
|
-
],
|
|
124
|
-
"x-enum-title": [
|
|
125
|
-
"Disabled",
|
|
126
|
-
"Agent Owner + All Users",
|
|
127
|
-
"Agent Owner Only"
|
|
128
|
-
],
|
|
129
|
-
"description": "State for ERC20ActionProvider_transfer",
|
|
130
|
-
"default": "private"
|
|
131
|
-
},
|
|
132
|
-
"WethActionProvider_wrap_eth": {
|
|
133
|
-
"type": "string",
|
|
134
|
-
"title": "Wrap ETH",
|
|
135
|
-
"enum": [
|
|
136
|
-
"disabled",
|
|
137
|
-
"public",
|
|
138
|
-
"private"
|
|
139
|
-
],
|
|
140
|
-
"x-enum-title": [
|
|
141
|
-
"Disabled",
|
|
142
|
-
"Agent Owner + All Users",
|
|
143
|
-
"Agent Owner Only"
|
|
144
|
-
],
|
|
145
|
-
"description": "State for WethActionProvider_wrap_eth",
|
|
146
|
-
"default": "disabled"
|
|
147
|
-
},
|
|
148
|
-
"Erc721ActionProvider_get_balance": {
|
|
149
|
-
"type": "string",
|
|
150
|
-
"title": "Erc721 NFT Get Balance",
|
|
151
|
-
"enum": [
|
|
152
|
-
"disabled",
|
|
153
|
-
"public",
|
|
154
|
-
"private"
|
|
155
|
-
],
|
|
156
|
-
"x-enum-title": [
|
|
157
|
-
"Disabled",
|
|
158
|
-
"Agent Owner + All Users",
|
|
159
|
-
"Agent Owner Only"
|
|
160
|
-
],
|
|
161
|
-
"description": "State for Erc721ActionProvider_get_balance",
|
|
162
|
-
"default": "disabled"
|
|
163
|
-
},
|
|
164
|
-
"Erc721ActionProvider_transfer": {
|
|
165
|
-
"type": "string",
|
|
166
|
-
"title": "Erc721 NFT Transfer",
|
|
167
|
-
"enum": [
|
|
168
|
-
"disabled",
|
|
169
|
-
"public",
|
|
170
|
-
"private"
|
|
171
|
-
],
|
|
172
|
-
"x-enum-title": [
|
|
173
|
-
"Disabled",
|
|
174
|
-
"Agent Owner + All Users",
|
|
175
|
-
"Agent Owner Only"
|
|
176
|
-
],
|
|
177
|
-
"description": "State for Erc721ActionProvider_transfer",
|
|
178
|
-
"default": "disabled"
|
|
179
|
-
},
|
|
180
|
-
"Erc721ActionProvider_mint": {
|
|
181
|
-
"type": "string",
|
|
182
|
-
"title": "Erc721 Mint",
|
|
183
|
-
"enum": [
|
|
184
|
-
"disabled",
|
|
185
|
-
"public",
|
|
186
|
-
"private"
|
|
187
|
-
],
|
|
188
|
-
"x-enum-title": [
|
|
189
|
-
"Disabled",
|
|
190
|
-
"Agent Owner + All Users",
|
|
191
|
-
"Agent Owner Only"
|
|
192
|
-
],
|
|
193
|
-
"description": "State for Erc721ActionProvider_mint",
|
|
194
|
-
"default": "disabled"
|
|
195
|
-
},
|
|
196
53
|
"WalletActionProvider_native_transfer": {
|
|
197
54
|
"type": "string",
|
|
198
|
-
"title": "
|
|
199
|
-
"enum": [
|
|
200
|
-
"disabled",
|
|
201
|
-
"public",
|
|
202
|
-
"private"
|
|
203
|
-
],
|
|
204
|
-
"x-enum-title": [
|
|
205
|
-
"Disabled",
|
|
206
|
-
"Agent Owner + All Users",
|
|
207
|
-
"Agent Owner Only"
|
|
208
|
-
],
|
|
209
|
-
"description": "State for WalletActionProvider_native_transfer",
|
|
210
|
-
"default": "private"
|
|
211
|
-
},
|
|
212
|
-
"CdpApiActionProvider_request_faucet_funds": {
|
|
213
|
-
"type": "string",
|
|
214
|
-
"title": "CDP Request Faucet Funds",
|
|
215
|
-
"enum": [
|
|
216
|
-
"disabled",
|
|
217
|
-
"public",
|
|
218
|
-
"private"
|
|
219
|
-
],
|
|
220
|
-
"x-enum-title": [
|
|
221
|
-
"Disabled",
|
|
222
|
-
"Agent Owner + All Users",
|
|
223
|
-
"Agent Owner Only"
|
|
224
|
-
],
|
|
225
|
-
"description": "Only available in base-sepolia network",
|
|
226
|
-
"default": "disabled"
|
|
227
|
-
},
|
|
228
|
-
"MorphoActionProvider_deposit": {
|
|
229
|
-
"type": "string",
|
|
230
|
-
"title": "Morpho Deposit",
|
|
231
|
-
"enum": [
|
|
232
|
-
"disabled",
|
|
233
|
-
"public",
|
|
234
|
-
"private"
|
|
235
|
-
],
|
|
236
|
-
"x-enum-title": [
|
|
237
|
-
"Disabled",
|
|
238
|
-
"Agent Owner + All Users",
|
|
239
|
-
"Agent Owner Only"
|
|
240
|
-
],
|
|
241
|
-
"description": "State for MorphoActionProvider_deposit",
|
|
242
|
-
"default": "disabled"
|
|
243
|
-
},
|
|
244
|
-
"MorphoActionProvider_withdraw": {
|
|
245
|
-
"type": "string",
|
|
246
|
-
"title": "Morpho Withdraw",
|
|
247
|
-
"enum": [
|
|
248
|
-
"disabled",
|
|
249
|
-
"public",
|
|
250
|
-
"private"
|
|
251
|
-
],
|
|
252
|
-
"x-enum-title": [
|
|
253
|
-
"Disabled",
|
|
254
|
-
"Agent Owner + All Users",
|
|
255
|
-
"Agent Owner Only"
|
|
256
|
-
],
|
|
257
|
-
"description": "State for MorphoActionProvider_withdraw",
|
|
258
|
-
"default": "disabled"
|
|
259
|
-
},
|
|
260
|
-
"PythActionProvider_fetch_price_feed_id": {
|
|
261
|
-
"type": "string",
|
|
262
|
-
"title": "Pyth Fetch Price Feed Id",
|
|
263
|
-
"enum": [
|
|
264
|
-
"disabled",
|
|
265
|
-
"public",
|
|
266
|
-
"private"
|
|
267
|
-
],
|
|
268
|
-
"x-enum-title": [
|
|
269
|
-
"Disabled",
|
|
270
|
-
"Agent Owner + All Users",
|
|
271
|
-
"Agent Owner Only"
|
|
272
|
-
],
|
|
273
|
-
"description": "State for PythActionProvider_fetch_price_feed_id",
|
|
274
|
-
"default": "private"
|
|
275
|
-
},
|
|
276
|
-
"PythActionProvider_fetch_price": {
|
|
277
|
-
"type": "string",
|
|
278
|
-
"title": "Pyth Fetch Price",
|
|
279
|
-
"enum": [
|
|
280
|
-
"disabled",
|
|
281
|
-
"public",
|
|
282
|
-
"private"
|
|
283
|
-
],
|
|
284
|
-
"x-enum-title": [
|
|
285
|
-
"Disabled",
|
|
286
|
-
"Agent Owner + All Users",
|
|
287
|
-
"Agent Owner Only"
|
|
288
|
-
],
|
|
289
|
-
"description": "State for PythActionProvider_fetch_price",
|
|
290
|
-
"default": "private"
|
|
291
|
-
},
|
|
292
|
-
"WowActionProvider_buy_token": {
|
|
293
|
-
"type": "string",
|
|
294
|
-
"title": "Wow Buy Token",
|
|
295
|
-
"enum": [
|
|
296
|
-
"disabled",
|
|
297
|
-
"public",
|
|
298
|
-
"private"
|
|
299
|
-
],
|
|
300
|
-
"x-enum-title": [
|
|
301
|
-
"Disabled",
|
|
302
|
-
"Agent Owner + All Users",
|
|
303
|
-
"Agent Owner Only"
|
|
304
|
-
],
|
|
305
|
-
"description": "State for WowActionProvider_buy_token",
|
|
306
|
-
"default": "disabled"
|
|
307
|
-
},
|
|
308
|
-
"WowActionProvider_create_token": {
|
|
309
|
-
"type": "string",
|
|
310
|
-
"title": "Wow Create Token",
|
|
311
|
-
"enum": [
|
|
312
|
-
"disabled",
|
|
313
|
-
"public",
|
|
314
|
-
"private"
|
|
315
|
-
],
|
|
316
|
-
"x-enum-title": [
|
|
317
|
-
"Disabled",
|
|
318
|
-
"Agent Owner + All Users",
|
|
319
|
-
"Agent Owner Only"
|
|
320
|
-
],
|
|
321
|
-
"description": "State for WowActionProvider_create_token",
|
|
322
|
-
"default": "disabled"
|
|
323
|
-
},
|
|
324
|
-
"WowActionProvider_sell_token": {
|
|
325
|
-
"type": "string",
|
|
326
|
-
"title": "Wow Sell Token",
|
|
327
|
-
"enum": [
|
|
328
|
-
"disabled",
|
|
329
|
-
"public",
|
|
330
|
-
"private"
|
|
331
|
-
],
|
|
332
|
-
"x-enum-title": [
|
|
333
|
-
"Disabled",
|
|
334
|
-
"Agent Owner + All Users",
|
|
335
|
-
"Agent Owner Only"
|
|
336
|
-
],
|
|
337
|
-
"description": "State for WowActionProvider_sell_token",
|
|
338
|
-
"default": "disabled"
|
|
339
|
-
},
|
|
340
|
-
"SuperfluidActionProvider_create_flow": {
|
|
341
|
-
"type": "string",
|
|
342
|
-
"title": "Superfluid Create Flow",
|
|
343
|
-
"enum": [
|
|
344
|
-
"disabled",
|
|
345
|
-
"public",
|
|
346
|
-
"private"
|
|
347
|
-
],
|
|
348
|
-
"x-enum-title": [
|
|
349
|
-
"Disabled",
|
|
350
|
-
"Agent Owner + All Users",
|
|
351
|
-
"Agent Owner Only"
|
|
352
|
-
],
|
|
353
|
-
"description": "State for SuperfluidActionProvider_create_flow",
|
|
354
|
-
"default": "disabled"
|
|
355
|
-
},
|
|
356
|
-
"SuperfluidActionProvider_update_flow": {
|
|
357
|
-
"type": "string",
|
|
358
|
-
"title": "Superfluid Update Flow",
|
|
55
|
+
"title": "Native Transfer",
|
|
359
56
|
"enum": [
|
|
360
57
|
"disabled",
|
|
361
58
|
"public",
|
|
@@ -366,12 +63,12 @@
|
|
|
366
63
|
"Agent Owner + All Users",
|
|
367
64
|
"Agent Owner Only"
|
|
368
65
|
],
|
|
369
|
-
"description": "
|
|
66
|
+
"description": "Transfer the native asset from the wallet",
|
|
370
67
|
"default": "disabled"
|
|
371
68
|
},
|
|
372
|
-
"
|
|
69
|
+
"CdpEvmWalletActionProvider_get_swap_price": {
|
|
373
70
|
"type": "string",
|
|
374
|
-
"title": "
|
|
71
|
+
"title": "Get Swap Price",
|
|
375
72
|
"enum": [
|
|
376
73
|
"disabled",
|
|
377
74
|
"public",
|
|
@@ -382,12 +79,12 @@
|
|
|
382
79
|
"Agent Owner + All Users",
|
|
383
80
|
"Agent Owner Only"
|
|
384
81
|
],
|
|
385
|
-
"description": "State for
|
|
82
|
+
"description": "State for CdpEvmWalletActionProvider_get_swap_price",
|
|
386
83
|
"default": "disabled"
|
|
387
84
|
},
|
|
388
|
-
"
|
|
85
|
+
"CdpEvmWalletActionProvider_swap": {
|
|
389
86
|
"type": "string",
|
|
390
|
-
"title": "
|
|
87
|
+
"title": "Swap Tokens",
|
|
391
88
|
"enum": [
|
|
392
89
|
"disabled",
|
|
393
90
|
"public",
|
|
@@ -398,7 +95,7 @@
|
|
|
398
95
|
"Agent Owner + All Users",
|
|
399
96
|
"Agent Owner Only"
|
|
400
97
|
],
|
|
401
|
-
"description": "State for
|
|
98
|
+
"description": "State for CdpEvmWalletActionProvider_swap",
|
|
402
99
|
"default": "disabled"
|
|
403
100
|
}
|
|
404
101
|
},
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from typing import TypedDict
|
|
2
2
|
|
|
3
|
-
from intentkit.abstracts.skill import SkillStoreABC
|
|
4
3
|
from intentkit.skills.base import SkillConfig, SkillState
|
|
5
4
|
from intentkit.skills.chainlist.base import ChainlistBaseTool
|
|
6
5
|
from intentkit.skills.chainlist.chain_lookup import ChainLookup
|
|
@@ -22,7 +21,6 @@ class Config(SkillConfig):
|
|
|
22
21
|
async def get_skills(
|
|
23
22
|
config: "Config",
|
|
24
23
|
is_private: bool,
|
|
25
|
-
store: SkillStoreABC,
|
|
26
24
|
**_,
|
|
27
25
|
) -> list[ChainlistBaseTool]:
|
|
28
26
|
"""Get all chainlist skills."""
|
|
@@ -36,19 +34,16 @@ async def get_skills(
|
|
|
36
34
|
available_skills.append(skill_name)
|
|
37
35
|
|
|
38
36
|
# Get each skill using the cached getter
|
|
39
|
-
return [get_chainlist_skill(name
|
|
37
|
+
return [get_chainlist_skill(name) for name in available_skills]
|
|
40
38
|
|
|
41
39
|
|
|
42
40
|
def get_chainlist_skill(
|
|
43
41
|
name: str,
|
|
44
|
-
store: SkillStoreABC,
|
|
45
42
|
) -> ChainlistBaseTool:
|
|
46
43
|
"""Get a chainlist skill by name."""
|
|
47
44
|
if name == "chain_lookup":
|
|
48
45
|
if name not in _cache:
|
|
49
|
-
_cache[name] = ChainLookup(
|
|
50
|
-
skill_store=store,
|
|
51
|
-
)
|
|
46
|
+
_cache[name] = ChainLookup()
|
|
52
47
|
return _cache[name]
|
|
53
48
|
else:
|
|
54
49
|
raise ValueError(f"Unknown chainlist skill: {name}")
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
from typing import Type
|
|
2
|
-
|
|
3
1
|
from pydantic import BaseModel, Field
|
|
4
2
|
|
|
5
|
-
from intentkit.abstracts.skill import SkillStoreABC
|
|
6
3
|
from intentkit.skills.base import IntentKitSkill
|
|
7
4
|
|
|
8
5
|
|
|
@@ -11,10 +8,7 @@ class ChainlistBaseTool(IntentKitSkill):
|
|
|
11
8
|
|
|
12
9
|
name: str = Field(description="The name of the tool")
|
|
13
10
|
description: str = Field(description="A description of what the tool does")
|
|
14
|
-
args_schema:
|
|
15
|
-
skill_store: SkillStoreABC = Field(
|
|
16
|
-
description="The skill store for persisting data"
|
|
17
|
-
)
|
|
11
|
+
args_schema: type[BaseModel]
|
|
18
12
|
|
|
19
13
|
@property
|
|
20
14
|
def category(self) -> str:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
4
|
import httpx
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
@@ -12,19 +12,19 @@ logger = logging.getLogger(__name__)
|
|
|
12
12
|
class ChainLookupInput(BaseModel):
|
|
13
13
|
"""Input for ChainLookup tool."""
|
|
14
14
|
|
|
15
|
-
search_term:
|
|
15
|
+
search_term: str | None = Field(
|
|
16
16
|
description="Term to search for (chain name, symbol, or chain ID)",
|
|
17
17
|
default=None,
|
|
18
18
|
)
|
|
19
|
-
chain_id:
|
|
19
|
+
chain_id: int | None = Field(
|
|
20
20
|
description="Specific chain ID to look up",
|
|
21
21
|
default=None,
|
|
22
22
|
)
|
|
23
|
-
no_tracking:
|
|
23
|
+
no_tracking: bool | None = Field(
|
|
24
24
|
description="Whether to return only RPC endpoints with no tracking",
|
|
25
25
|
default=False,
|
|
26
26
|
)
|
|
27
|
-
limit:
|
|
27
|
+
limit: int | None = Field(
|
|
28
28
|
description="Limit the number of results returned",
|
|
29
29
|
default=5,
|
|
30
30
|
)
|
|
@@ -38,7 +38,7 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
38
38
|
"Look up blockchain RPC endpoints and details by chain name, symbol, or chain ID.\n"
|
|
39
39
|
"Returns information about blockchains including RPC endpoints, native currency, and explorers."
|
|
40
40
|
)
|
|
41
|
-
args_schema:
|
|
41
|
+
args_schema: type[BaseModel] = ChainLookupInput
|
|
42
42
|
|
|
43
43
|
def _normalize_text(self, text: str) -> str:
|
|
44
44
|
"""Normalize text for searching (lowercase, remove spaces)."""
|
|
@@ -46,7 +46,7 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
46
46
|
return ""
|
|
47
47
|
return text.lower().strip()
|
|
48
48
|
|
|
49
|
-
async def _fetch_chains_data(self) ->
|
|
49
|
+
async def _fetch_chains_data(self) -> list[dict[str, Any]]:
|
|
50
50
|
"""Fetch chains data from Chainlist API."""
|
|
51
51
|
chainlist_api_url = "https://chainlist.org/rpcs.json"
|
|
52
52
|
|
|
@@ -57,12 +57,12 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
57
57
|
|
|
58
58
|
def _filter_chains(
|
|
59
59
|
self,
|
|
60
|
-
chains:
|
|
61
|
-
search_term:
|
|
62
|
-
chain_id:
|
|
60
|
+
chains: list[dict[str, Any]],
|
|
61
|
+
search_term: str | None = None,
|
|
62
|
+
chain_id: int | None = None,
|
|
63
63
|
no_tracking: bool = False,
|
|
64
64
|
limit: int = 5,
|
|
65
|
-
) ->
|
|
65
|
+
) -> list[dict[str, Any]]:
|
|
66
66
|
"""Filter chains based on search criteria."""
|
|
67
67
|
filtered_chains = chains
|
|
68
68
|
|
|
@@ -118,7 +118,7 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
118
118
|
|
|
119
119
|
return filtered_chains
|
|
120
120
|
|
|
121
|
-
def _format_chain(self, chain:
|
|
121
|
+
def _format_chain(self, chain: dict[str, Any]) -> dict[str, Any]:
|
|
122
122
|
"""Format a chain entry for response."""
|
|
123
123
|
# Format RPC endpoints
|
|
124
124
|
formatted_rpcs = []
|
|
@@ -155,13 +155,13 @@ class ChainLookup(ChainlistBaseTool):
|
|
|
155
155
|
|
|
156
156
|
async def _arun(
|
|
157
157
|
self,
|
|
158
|
-
search_term:
|
|
159
|
-
chain_id:
|
|
160
|
-
no_tracking:
|
|
161
|
-
limit:
|
|
162
|
-
config:
|
|
158
|
+
search_term: str | None = None,
|
|
159
|
+
chain_id: int | None = None,
|
|
160
|
+
no_tracking: bool | None = False,
|
|
161
|
+
limit: int | None = 5,
|
|
162
|
+
config: Any | None = None,
|
|
163
163
|
**kwargs,
|
|
164
|
-
) ->
|
|
164
|
+
) -> dict:
|
|
165
165
|
"""Lookup blockchain RPC endpoints from Chainlist."""
|
|
166
166
|
if not search_term and not chain_id:
|
|
167
167
|
return {
|