intentkit 0.7.5.dev3__py3-none-any.whl → 0.8.34.dev7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- intentkit/MANIFEST.in +14 -0
- intentkit/README.md +88 -0
- intentkit/__init__.py +6 -4
- intentkit/abstracts/agent.py +4 -5
- intentkit/abstracts/engine.py +5 -5
- intentkit/abstracts/graph.py +15 -8
- intentkit/abstracts/skill.py +6 -144
- intentkit/abstracts/twitter.py +4 -5
- intentkit/clients/__init__.py +9 -2
- intentkit/clients/cdp.py +129 -153
- intentkit/{utils → clients}/s3.py +109 -34
- intentkit/clients/twitter.py +83 -62
- intentkit/clients/web3.py +4 -7
- intentkit/config/config.py +123 -90
- intentkit/core/account_checking.py +802 -0
- intentkit/core/agent.py +313 -498
- intentkit/core/asset.py +267 -0
- intentkit/core/chat.py +5 -3
- intentkit/core/client.py +1 -1
- intentkit/core/credit.py +49 -41
- intentkit/core/draft.py +201 -0
- intentkit/core/draft_chat.py +118 -0
- intentkit/core/engine.py +378 -287
- intentkit/core/manager/__init__.py +25 -0
- intentkit/core/manager/engine.py +220 -0
- intentkit/core/manager/service.py +172 -0
- intentkit/core/manager/skills.py +178 -0
- intentkit/core/middleware.py +231 -0
- intentkit/core/prompt.py +74 -114
- intentkit/core/scheduler.py +143 -0
- intentkit/core/statistics.py +168 -0
- intentkit/models/agent.py +931 -518
- intentkit/models/agent_data.py +165 -106
- intentkit/models/agent_schema.json +38 -251
- intentkit/models/app_setting.py +15 -13
- intentkit/models/chat.py +86 -140
- intentkit/models/credit.py +182 -162
- intentkit/models/db.py +42 -23
- intentkit/models/db_mig.py +120 -3
- intentkit/models/draft.py +222 -0
- intentkit/models/llm.csv +31 -0
- intentkit/models/llm.py +262 -370
- intentkit/models/redis.py +6 -4
- intentkit/models/skill.py +222 -101
- intentkit/models/skills.csv +173 -0
- intentkit/models/team.py +189 -0
- intentkit/models/user.py +103 -31
- 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 +241 -41
- 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 +6 -6
- intentkit/skills/casino/__init__.py +4 -15
- intentkit/skills/casino/base.py +1 -7
- intentkit/skills/casino/deck_draw.py +5 -8
- intentkit/skills/casino/deck_shuffle.py +6 -6
- intentkit/skills/casino/dice_roll.py +2 -4
- intentkit/skills/casino/schema.json +0 -1
- 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 +10 -24
- 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 +8 -19
- 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/__init__.py +97 -102
- intentkit/skills/dexscreener/base.py +125 -130
- intentkit/skills/dexscreener/get_pair_info.py +4 -5
- intentkit/skills/dexscreener/get_token_pairs.py +4 -5
- intentkit/skills/dexscreener/get_tokens_info.py +7 -8
- intentkit/skills/dexscreener/model/search_token_response.py +80 -82
- intentkit/skills/dexscreener/schema.json +91 -93
- intentkit/skills/dexscreener/search_token.py +182 -184
- intentkit/skills/dexscreener/utils.py +15 -14
- 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 +54 -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/__init__.py +5 -18
- intentkit/skills/firecrawl/base.py +4 -9
- 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 +2 -6
- intentkit/skills/firecrawl/scrape.py +17 -22
- 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 +13 -15
- intentkit/skills/heurist/image_generation_arthemy_comics.py +13 -15
- intentkit/skills/heurist/image_generation_arthemy_real.py +13 -15
- intentkit/skills/heurist/image_generation_braindance.py +13 -15
- intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +13 -15
- intentkit/skills/heurist/image_generation_flux_1_dev.py +13 -15
- intentkit/skills/heurist/image_generation_sdxl.py +13 -15
- 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 +3 -9
- intentkit/skills/lifi/schema.json +17 -8
- intentkit/skills/lifi/token_execute.py +150 -60
- 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 +30 -0
- intentkit/skills/openai/__init__.py +17 -18
- intentkit/skills/openai/base.py +10 -14
- intentkit/skills/openai/dalle_image_generation.py +4 -9
- intentkit/skills/openai/gpt_avatar_generator.py +102 -0
- intentkit/skills/openai/gpt_image_generation.py +5 -9
- intentkit/skills/openai/gpt_image_mini_generator.py +92 -0
- intentkit/skills/openai/gpt_image_to_image.py +5 -9
- 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 +36 -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 +1 -7
- intentkit/skills/supabase/delete_data.py +4 -4
- intentkit/skills/supabase/fetch_data.py +12 -12
- intentkit/skills/supabase/insert_data.py +4 -4
- intentkit/skills/supabase/invoke_function.py +6 -6
- intentkit/skills/supabase/schema.json +2 -3
- intentkit/skills/supabase/update_data.py +6 -6
- intentkit/skills/supabase/upsert_data.py +4 -4
- 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 +22 -34
- intentkit/skills/twitter/follow_user.py +2 -6
- intentkit/skills/twitter/get_mentions.py +5 -12
- intentkit/skills/twitter/get_timeline.py +4 -12
- intentkit/skills/twitter/get_user_by_username.py +2 -6
- intentkit/skills/twitter/get_user_tweets.py +5 -13
- intentkit/skills/twitter/like_tweet.py +2 -6
- intentkit/skills/twitter/post_tweet.py +6 -9
- intentkit/skills/twitter/reply_tweet.py +6 -9
- intentkit/skills/twitter/retweet.py +2 -6
- intentkit/skills/twitter/schema.json +1 -0
- intentkit/skills/twitter/search_tweets.py +4 -12
- 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 +11 -10
- 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 +58 -0
- intentkit/skills/x402/base.py +99 -0
- intentkit/skills/x402/http_request.py +117 -0
- intentkit/skills/x402/schema.json +40 -0
- intentkit/skills/x402/x402.webp +0 -0
- intentkit/skills/xmtp/__init__.py +4 -15
- intentkit/skills/xmtp/base.py +5 -5
- intentkit/skills/xmtp/price.py +7 -6
- intentkit/skills/xmtp/schema.json +69 -71
- intentkit/skills/xmtp/swap.py +6 -8
- intentkit/skills/xmtp/transfer.py +4 -6
- intentkit/utils/__init__.py +4 -0
- intentkit/utils/chain.py +198 -96
- intentkit/utils/ens.py +135 -0
- intentkit/utils/error.py +5 -2
- intentkit/utils/logging.py +9 -11
- intentkit/utils/schema.py +100 -0
- intentkit/utils/slack_alert.py +8 -8
- intentkit/utils/tx.py +16 -8
- intentkit/uv.lock +3377 -0
- {intentkit-0.7.5.dev3.dist-info → intentkit-0.8.34.dev7.dist-info}/METADATA +13 -15
- intentkit-0.8.34.dev7.dist-info/RECORD +478 -0
- intentkit-0.8.34.dev7.dist-info/licenses/LICENSE +21 -0
- intentkit/core/node.py +0 -215
- intentkit/models/conversation.py +0 -286
- 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.7.5.dev3.dist-info/RECORD +0 -424
- {intentkit-0.7.5.dev3.dist-info/licenses → intentkit}/LICENSE +0 -0
- {intentkit-0.7.5.dev3.dist-info → intentkit-0.8.34.dev7.dist-info}/WHEEL +0 -0
intentkit/MANIFEST.in
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
recursive-include abstracts *.py
|
|
4
|
+
recursive-include clients *.py
|
|
5
|
+
recursive-include config *.py
|
|
6
|
+
recursive-include core *.py
|
|
7
|
+
recursive-include models *.py *.json
|
|
8
|
+
recursive-include skills *.py *.toml *.md
|
|
9
|
+
recursive-include utils *.py
|
|
10
|
+
recursive-exclude * __pycache__
|
|
11
|
+
recursive-exclude * *.pyc
|
|
12
|
+
recursive-exclude * *.pyo
|
|
13
|
+
recursive-exclude * .DS_Store
|
|
14
|
+
recursive-exclude * .ruff_cache
|
intentkit/README.md
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# IntentKit
|
|
2
|
+
|
|
3
|
+
IntentKit is a powerful intent-based AI agent platform that enables developers to build sophisticated AI agents with blockchain and cryptocurrency capabilities.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- **Intent-based Architecture**: Build agents that understand and execute user intents
|
|
8
|
+
- **Blockchain Integration**: Native support for multiple blockchain networks
|
|
9
|
+
- **Cryptocurrency Operations**: Built-in tools for DeFi, trading, and token operations
|
|
10
|
+
- **Extensible Skills System**: Modular skill system with 30+ pre-built skills
|
|
11
|
+
- **Multi-platform Support**: Telegram, Twitter, Slack, and API integrations
|
|
12
|
+
- **Advanced AI Capabilities**: Powered by LangChain and LangGraph
|
|
13
|
+
|
|
14
|
+
## Installation
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
pip install intentkit
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Development
|
|
21
|
+
|
|
22
|
+
To build the package locally:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# Build both source and wheel distributions
|
|
26
|
+
uv build
|
|
27
|
+
|
|
28
|
+
# Build only wheel
|
|
29
|
+
uv build --wheel
|
|
30
|
+
|
|
31
|
+
# Build only source distribution
|
|
32
|
+
uv build --sdist
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
To publish to PyPI:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Build and publish to PyPI
|
|
39
|
+
uv build
|
|
40
|
+
uv publish
|
|
41
|
+
|
|
42
|
+
# Publish to Test PyPI
|
|
43
|
+
uv publish --publish-url https://test.pypi.org/legacy/
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
> **Note**: This package uses `hatchling` as the build backend with `uv` for dependency management and publishing.
|
|
47
|
+
|
|
48
|
+
## Quick Start
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
from intentkit.core.agent import Agent
|
|
52
|
+
from intentkit.config.config import Config
|
|
53
|
+
|
|
54
|
+
# Initialize configuration
|
|
55
|
+
config = Config()
|
|
56
|
+
|
|
57
|
+
# Create an agent
|
|
58
|
+
agent = Agent(config=config)
|
|
59
|
+
|
|
60
|
+
# Your agent is ready to use!
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Skills
|
|
64
|
+
|
|
65
|
+
IntentKit comes with 30+ pre-built skills including:
|
|
66
|
+
|
|
67
|
+
- **DeFi**: Uniswap, 1inch, Enso, LiFi
|
|
68
|
+
- **Data**: DexScreener, CoinGecko, DefiLlama, CryptoCompare
|
|
69
|
+
- **Social**: Twitter, Telegram, Slack
|
|
70
|
+
- **Blockchain**: CDP, Moralis, various wallet integrations
|
|
71
|
+
- **AI**: OpenAI, Heurist, Venice AI
|
|
72
|
+
- **And many more...**
|
|
73
|
+
|
|
74
|
+
## Documentation
|
|
75
|
+
|
|
76
|
+
For detailed documentation, examples, and guides, visit our [documentation](https://github.com/crestal-network/intentkit/tree/main/docs).
|
|
77
|
+
|
|
78
|
+
## Contributing
|
|
79
|
+
|
|
80
|
+
We welcome contributions! Please see our [Contributing Guide](https://github.com/crestal-network/intentkit/blob/main/CONTRIBUTING.md) for details.
|
|
81
|
+
|
|
82
|
+
## License
|
|
83
|
+
|
|
84
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
85
|
+
|
|
86
|
+
## Support
|
|
87
|
+
|
|
88
|
+
For support, please open an issue on our [GitHub repository](https://github.com/crestal-network/intentkit/issues).
|
intentkit/__init__.py
CHANGED
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
-
__version__ = "0.
|
|
7
|
-
__author__ = "
|
|
8
|
-
__email__ = "
|
|
6
|
+
__version__ = "0.8.34-dev7"
|
|
7
|
+
__author__ = "Ruihua"
|
|
8
|
+
__email__ = "ruihua@crestal.network"
|
|
9
9
|
|
|
10
10
|
# Core components
|
|
11
11
|
# Abstract base classes
|
|
12
|
-
from .core.engine import create_agent, stream_agent
|
|
12
|
+
from .core.engine import build_agent, create_agent, stream_agent, stream_agent_raw
|
|
13
13
|
|
|
14
14
|
__all__ = [
|
|
15
15
|
"create_agent",
|
|
16
16
|
"stream_agent",
|
|
17
|
+
"build_agent",
|
|
18
|
+
"stream_agent_raw",
|
|
17
19
|
]
|
intentkit/abstracts/agent.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from typing import Dict, Optional
|
|
3
2
|
|
|
4
3
|
from intentkit.models.agent import Agent
|
|
5
4
|
from intentkit.models.agent_data import AgentData, AgentQuota
|
|
@@ -24,7 +23,7 @@ class AgentStoreABC(ABC):
|
|
|
24
23
|
self.agent_id = agent_id
|
|
25
24
|
|
|
26
25
|
@abstractmethod
|
|
27
|
-
async def get_config(self) ->
|
|
26
|
+
async def get_config(self) -> Agent | None:
|
|
28
27
|
"""Get agent configuration.
|
|
29
28
|
|
|
30
29
|
Returns:
|
|
@@ -33,7 +32,7 @@ class AgentStoreABC(ABC):
|
|
|
33
32
|
pass
|
|
34
33
|
|
|
35
34
|
@abstractmethod
|
|
36
|
-
async def get_data(self) ->
|
|
35
|
+
async def get_data(self) -> AgentData | None:
|
|
37
36
|
"""Get additional agent data.
|
|
38
37
|
|
|
39
38
|
Returns:
|
|
@@ -42,7 +41,7 @@ class AgentStoreABC(ABC):
|
|
|
42
41
|
pass
|
|
43
42
|
|
|
44
43
|
@abstractmethod
|
|
45
|
-
async def set_data(self, data:
|
|
44
|
+
async def set_data(self, data: dict) -> None:
|
|
46
45
|
"""Update agent data.
|
|
47
46
|
|
|
48
47
|
Args:
|
|
@@ -51,7 +50,7 @@ class AgentStoreABC(ABC):
|
|
|
51
50
|
pass
|
|
52
51
|
|
|
53
52
|
@abstractmethod
|
|
54
|
-
async def get_quota(self) ->
|
|
53
|
+
async def get_quota(self) -> AgentQuota | None:
|
|
55
54
|
"""Get agent quota information.
|
|
56
55
|
|
|
57
56
|
Returns:
|
intentkit/abstracts/engine.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from
|
|
1
|
+
from collections.abc import Callable
|
|
2
2
|
|
|
3
3
|
from pydantic import BaseModel
|
|
4
4
|
|
|
@@ -12,19 +12,19 @@ class AgentMessageInput(BaseModel):
|
|
|
12
12
|
|
|
13
13
|
Attributes:
|
|
14
14
|
text (str): The main text content of the message or query
|
|
15
|
-
images (
|
|
15
|
+
images (list[str]): List of image references/URLs to be processed by the agent.
|
|
16
16
|
Empty list if no images are provided.
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
19
|
text: str # required
|
|
20
20
|
"""The main text content or query to be processed by the agent"""
|
|
21
21
|
|
|
22
|
-
images:
|
|
22
|
+
images: list[str] = [] # optional, defaults to empty list
|
|
23
23
|
"""List of image references or URLs for multimodal processing"""
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
# Define a type hint for the callback that takes three strings and returns a list of strings
|
|
27
|
-
AgentExecutionCallback = Callable[[str, AgentMessageInput, str],
|
|
27
|
+
AgentExecutionCallback = Callable[[str, AgentMessageInput, str], list[str]]
|
|
28
28
|
"""Callback function type for agent execution.
|
|
29
29
|
|
|
30
30
|
Args:
|
|
@@ -33,6 +33,6 @@ Args:
|
|
|
33
33
|
thread_id (str): The thread ID for tracking the conversation context
|
|
34
34
|
|
|
35
35
|
Returns:
|
|
36
|
-
|
|
36
|
+
list[str]: A list of formatted response lines from the agent execution. Each line
|
|
37
37
|
typically contains input/output markers, agent responses, and timing information.
|
|
38
38
|
"""
|
intentkit/abstracts/graph.py
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
from collections.abc import Callable
|
|
2
2
|
from enum import Enum
|
|
3
|
-
from typing import Any,
|
|
3
|
+
from typing import Any, NotRequired
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from langchain.agents import AgentState as BaseAgentState
|
|
6
6
|
from pydantic import BaseModel
|
|
7
7
|
|
|
8
8
|
from intentkit.models.agent import Agent
|
|
@@ -24,18 +24,25 @@ class AgentState(BaseAgentState):
|
|
|
24
24
|
|
|
25
25
|
context: dict[str, Any]
|
|
26
26
|
error: NotRequired[AgentError]
|
|
27
|
-
__extra__: NotRequired[
|
|
27
|
+
__extra__: NotRequired[dict[str, Any]]
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class AgentContext(BaseModel):
|
|
31
31
|
agent_id: str
|
|
32
|
+
get_agent: Callable[[], Agent]
|
|
32
33
|
chat_id: str
|
|
33
|
-
user_id:
|
|
34
|
-
app_id:
|
|
34
|
+
user_id: str | None = None
|
|
35
|
+
app_id: str | None = None
|
|
35
36
|
entrypoint: AuthorType
|
|
36
37
|
is_private: bool
|
|
37
|
-
|
|
38
|
+
search: bool = False
|
|
39
|
+
thinking: bool = False
|
|
40
|
+
payer: str | None = None
|
|
38
41
|
|
|
39
42
|
@property
|
|
40
43
|
def agent(self) -> Agent:
|
|
41
|
-
return
|
|
44
|
+
return self.get_agent()
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def thread_id(self) -> str:
|
|
48
|
+
return f"{self.agent_id}-{self.chat_id}"
|
intentkit/abstracts/skill.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any
|
|
3
3
|
|
|
4
|
-
from intentkit.models.agent import Agent
|
|
4
|
+
from intentkit.models.agent import Agent
|
|
5
5
|
from intentkit.models.agent_data import AgentData, AgentQuota
|
|
6
6
|
|
|
7
7
|
|
|
@@ -20,7 +20,7 @@ class SkillStoreABC(ABC):
|
|
|
20
20
|
|
|
21
21
|
@staticmethod
|
|
22
22
|
@abstractmethod
|
|
23
|
-
async def get_agent_config(agent_id: str) ->
|
|
23
|
+
async def get_agent_config(agent_id: str) -> Agent | None:
|
|
24
24
|
"""Get agent configuration.
|
|
25
25
|
|
|
26
26
|
Returns:
|
|
@@ -30,7 +30,7 @@ class SkillStoreABC(ABC):
|
|
|
30
30
|
|
|
31
31
|
@staticmethod
|
|
32
32
|
@abstractmethod
|
|
33
|
-
async def get_agent_data(agent_id: str) ->
|
|
33
|
+
async def get_agent_data(agent_id: str) -> AgentData | None:
|
|
34
34
|
"""Get additional agent data.
|
|
35
35
|
|
|
36
36
|
Returns:
|
|
@@ -40,7 +40,7 @@ class SkillStoreABC(ABC):
|
|
|
40
40
|
|
|
41
41
|
@staticmethod
|
|
42
42
|
@abstractmethod
|
|
43
|
-
async def set_agent_data(agent_id: str, data:
|
|
43
|
+
async def set_agent_data(agent_id: str, data: dict) -> None:
|
|
44
44
|
"""Update agent data.
|
|
45
45
|
|
|
46
46
|
Args:
|
|
@@ -51,148 +51,10 @@ class SkillStoreABC(ABC):
|
|
|
51
51
|
|
|
52
52
|
@staticmethod
|
|
53
53
|
@abstractmethod
|
|
54
|
-
async def get_agent_quota(agent_id: str) ->
|
|
54
|
+
async def get_agent_quota(agent_id: str) -> AgentQuota | None:
|
|
55
55
|
"""Get agent quota information.
|
|
56
56
|
|
|
57
57
|
Returns:
|
|
58
58
|
Agent quota if found, None otherwise
|
|
59
59
|
"""
|
|
60
60
|
pass
|
|
61
|
-
|
|
62
|
-
@staticmethod
|
|
63
|
-
@abstractmethod
|
|
64
|
-
async def get_agent_skill_data(
|
|
65
|
-
agent_id: str, skill: str, key: str
|
|
66
|
-
) -> Optional[Dict[str, Any]]:
|
|
67
|
-
"""Get skill data for an agent.
|
|
68
|
-
|
|
69
|
-
Args:
|
|
70
|
-
agent_id: ID of the agent
|
|
71
|
-
skill: Name of the skill
|
|
72
|
-
key: Data key
|
|
73
|
-
|
|
74
|
-
Returns:
|
|
75
|
-
Dictionary containing the skill data if found, None otherwise
|
|
76
|
-
"""
|
|
77
|
-
pass
|
|
78
|
-
|
|
79
|
-
@staticmethod
|
|
80
|
-
@abstractmethod
|
|
81
|
-
async def save_agent_skill_data(
|
|
82
|
-
agent_id: str, skill: str, key: str, data: Dict[str, Any]
|
|
83
|
-
) -> None:
|
|
84
|
-
"""Save or update skill data for an agent.
|
|
85
|
-
|
|
86
|
-
Args:
|
|
87
|
-
agent_id: ID of the agent
|
|
88
|
-
skill: Name of the skill
|
|
89
|
-
key: Data key
|
|
90
|
-
data: JSON data to store
|
|
91
|
-
"""
|
|
92
|
-
pass
|
|
93
|
-
|
|
94
|
-
@staticmethod
|
|
95
|
-
@abstractmethod
|
|
96
|
-
async def delete_agent_skill_data(agent_id: str, skill: str, key: str) -> None:
|
|
97
|
-
"""Delete skill data for an agent.
|
|
98
|
-
|
|
99
|
-
Args:
|
|
100
|
-
agent_id: ID of the agent
|
|
101
|
-
skill: Name of the skill
|
|
102
|
-
key: Data key
|
|
103
|
-
"""
|
|
104
|
-
pass
|
|
105
|
-
|
|
106
|
-
@staticmethod
|
|
107
|
-
@abstractmethod
|
|
108
|
-
async def get_thread_skill_data(
|
|
109
|
-
thread_id: str, skill: str, key: str
|
|
110
|
-
) -> Optional[Dict[str, Any]]:
|
|
111
|
-
"""Get skill data for a thread.
|
|
112
|
-
|
|
113
|
-
Args:
|
|
114
|
-
thread_id: ID of the thread
|
|
115
|
-
skill: Name of the skill
|
|
116
|
-
key: Data key
|
|
117
|
-
|
|
118
|
-
Returns:
|
|
119
|
-
Dictionary containing the skill data if found, None otherwise
|
|
120
|
-
"""
|
|
121
|
-
pass
|
|
122
|
-
|
|
123
|
-
@staticmethod
|
|
124
|
-
@abstractmethod
|
|
125
|
-
async def save_thread_skill_data(
|
|
126
|
-
thread_id: str,
|
|
127
|
-
agent_id: str,
|
|
128
|
-
skill: str,
|
|
129
|
-
key: str,
|
|
130
|
-
data: Dict[str, Any],
|
|
131
|
-
) -> None:
|
|
132
|
-
"""Save or update skill data for a thread.
|
|
133
|
-
|
|
134
|
-
Args:
|
|
135
|
-
thread_id: ID of the thread
|
|
136
|
-
agent_id: ID of the agent that owns this thread
|
|
137
|
-
skill: Name of the skill
|
|
138
|
-
key: Data key
|
|
139
|
-
data: JSON data to store
|
|
140
|
-
"""
|
|
141
|
-
pass
|
|
142
|
-
|
|
143
|
-
@staticmethod
|
|
144
|
-
@abstractmethod
|
|
145
|
-
async def list_autonomous_tasks(agent_id: str) -> List[AgentAutonomous]:
|
|
146
|
-
"""List all autonomous tasks for an agent.
|
|
147
|
-
|
|
148
|
-
Args:
|
|
149
|
-
agent_id: ID of the agent
|
|
150
|
-
|
|
151
|
-
Returns:
|
|
152
|
-
List[AgentAutonomous]: List of autonomous task configurations
|
|
153
|
-
"""
|
|
154
|
-
pass
|
|
155
|
-
|
|
156
|
-
@staticmethod
|
|
157
|
-
@abstractmethod
|
|
158
|
-
async def add_autonomous_task(
|
|
159
|
-
agent_id: str, task: AgentAutonomous
|
|
160
|
-
) -> AgentAutonomous:
|
|
161
|
-
"""Add a new autonomous task to an agent.
|
|
162
|
-
|
|
163
|
-
Args:
|
|
164
|
-
agent_id: ID of the agent
|
|
165
|
-
task: Autonomous task configuration
|
|
166
|
-
|
|
167
|
-
Returns:
|
|
168
|
-
AgentAutonomous: The created task
|
|
169
|
-
"""
|
|
170
|
-
pass
|
|
171
|
-
|
|
172
|
-
@staticmethod
|
|
173
|
-
@abstractmethod
|
|
174
|
-
async def delete_autonomous_task(agent_id: str, task_id: str) -> None:
|
|
175
|
-
"""Delete an autonomous task from an agent.
|
|
176
|
-
|
|
177
|
-
Args:
|
|
178
|
-
agent_id: ID of the agent
|
|
179
|
-
task_id: ID of the task to delete
|
|
180
|
-
"""
|
|
181
|
-
pass
|
|
182
|
-
|
|
183
|
-
@staticmethod
|
|
184
|
-
@abstractmethod
|
|
185
|
-
async def update_autonomous_task(
|
|
186
|
-
agent_id: str, task_id: str, task_updates: dict
|
|
187
|
-
) -> AgentAutonomous:
|
|
188
|
-
"""Update an autonomous task for an agent.
|
|
189
|
-
|
|
190
|
-
Args:
|
|
191
|
-
agent_id: ID of the agent
|
|
192
|
-
task_id: ID of the task to update
|
|
193
|
-
task_updates: Dictionary containing fields to update
|
|
194
|
-
|
|
195
|
-
Returns:
|
|
196
|
-
AgentAutonomous: The updated task
|
|
197
|
-
"""
|
|
198
|
-
pass
|
intentkit/abstracts/twitter.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
-
from typing import Optional
|
|
3
2
|
|
|
4
3
|
from tweepy.asynchronous import AsyncClient
|
|
5
4
|
|
|
@@ -15,7 +14,7 @@ class TwitterABC(ABC):
|
|
|
15
14
|
use_key = False
|
|
16
15
|
|
|
17
16
|
@abstractmethod
|
|
18
|
-
async def get_client(self) ->
|
|
17
|
+
async def get_client(self) -> AsyncClient | None:
|
|
19
18
|
"""Get a configured Tweepy client.
|
|
20
19
|
|
|
21
20
|
Returns:
|
|
@@ -25,7 +24,7 @@ class TwitterABC(ABC):
|
|
|
25
24
|
|
|
26
25
|
@property
|
|
27
26
|
@abstractmethod
|
|
28
|
-
def self_id(self) ->
|
|
27
|
+
def self_id(self) -> str | None:
|
|
29
28
|
"""Get the Twitter user ID.
|
|
30
29
|
|
|
31
30
|
Returns:
|
|
@@ -35,7 +34,7 @@ class TwitterABC(ABC):
|
|
|
35
34
|
|
|
36
35
|
@property
|
|
37
36
|
@abstractmethod
|
|
38
|
-
def self_username(self) ->
|
|
37
|
+
def self_username(self) -> str | None:
|
|
39
38
|
"""Get the Twitter username.
|
|
40
39
|
|
|
41
40
|
Returns:
|
|
@@ -45,7 +44,7 @@ class TwitterABC(ABC):
|
|
|
45
44
|
|
|
46
45
|
@property
|
|
47
46
|
@abstractmethod
|
|
48
|
-
def self_name(self) ->
|
|
47
|
+
def self_name(self) -> str | None:
|
|
49
48
|
"""Get the Twitter display name.
|
|
50
49
|
|
|
51
50
|
Returns:
|
intentkit/clients/__init__.py
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
from intentkit.clients.cdp import
|
|
1
|
+
from intentkit.clients.cdp import (
|
|
2
|
+
get_cdp_client,
|
|
3
|
+
get_cdp_network,
|
|
4
|
+
get_evm_account,
|
|
5
|
+
get_wallet_provider,
|
|
6
|
+
)
|
|
2
7
|
from intentkit.clients.twitter import (
|
|
3
8
|
TwitterClient,
|
|
4
9
|
TwitterClientConfig,
|
|
@@ -10,7 +15,9 @@ __all__ = [
|
|
|
10
15
|
"TwitterClient",
|
|
11
16
|
"TwitterClientConfig",
|
|
12
17
|
"get_twitter_client",
|
|
13
|
-
"
|
|
18
|
+
"get_evm_account",
|
|
14
19
|
"get_cdp_client",
|
|
20
|
+
"get_wallet_provider",
|
|
21
|
+
"get_cdp_network",
|
|
15
22
|
"get_web3_client",
|
|
16
23
|
]
|