intentkit 0.6.9__tar.gz → 0.8.22__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of intentkit might be problematic. Click here for more details.
- {intentkit-0.6.9 → intentkit-0.8.22}/.gitignore +0 -3
- intentkit-0.8.22/LICENSE +21 -0
- {intentkit-0.6.9 → intentkit-0.8.22}/PKG-INFO +19 -19
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/MANIFEST.in +1 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/__init__.py +6 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/abstracts/agent.py +4 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/abstracts/engine.py +5 -5
- intentkit-0.8.22/intentkit/abstracts/graph.py +48 -0
- intentkit-0.8.22/intentkit/abstracts/skill.py +60 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/abstracts/twitter.py +4 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/clients/__init__.py +5 -2
- intentkit-0.8.22/intentkit/clients/cdp.py +128 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/clients/twitter.py +83 -62
- intentkit-0.8.22/intentkit/clients/web3.py +29 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/config/config.py +58 -21
- intentkit-0.8.22/intentkit/core/agent.py +741 -0
- intentkit-0.8.22/intentkit/core/api.py +100 -0
- intentkit-0.8.22/intentkit/core/asset.py +267 -0
- intentkit-0.8.22/intentkit/core/chat.py +51 -0
- intentkit-0.8.22/intentkit/core/client.py +85 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/core/credit.py +499 -140
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/core/engine.py +282 -380
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/core/node.py +20 -31
- intentkit-0.8.22/intentkit/core/prompt.py +462 -0
- intentkit-0.8.22/intentkit/core/scheduler.py +92 -0
- intentkit-0.8.22/intentkit/core/statistics.py +168 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/agent.py +1175 -832
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/agent_data.py +71 -40
- intentkit-0.8.22/intentkit/models/agent_public.json +98 -0
- intentkit-0.8.22/intentkit/models/agent_schema.json +382 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/app_setting.py +99 -35
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/chat.py +85 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/conversation.py +11 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/credit.py +366 -77
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/db.py +28 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/db_mig.py +4 -3
- intentkit-0.8.22/intentkit/models/llm.csv +28 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/llm.py +194 -304
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/redis.py +6 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/skill.py +190 -75
- intentkit-0.8.22/intentkit/models/skills.csv +174 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/user.py +110 -27
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/acolyt/__init__.py +2 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/acolyt/ask.py +4 -8
- intentkit-0.8.22/intentkit/skills/acolyt/base.py +33 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/acolyt/schema.json +4 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/__init__.py +4 -19
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/projects.py +25 -50
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/schema.json +4 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/allora/__init__.py +2 -9
- intentkit-0.8.22/intentkit/skills/allora/base.py +33 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/allora/price.py +5 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/allora/schema.json +3 -2
- intentkit-0.8.22/intentkit/skills/base.py +364 -0
- intentkit-0.8.22/intentkit/skills/basename/__init__.py +51 -0
- intentkit-0.8.22/intentkit/skills/basename/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/basename/basename.svg +11 -0
- intentkit-0.8.22/intentkit/skills/basename/schema.json +58 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/__init__.py +115 -121
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/base.py +184 -183
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/fetch_news.py +90 -92
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/onchain_query.py +162 -164
- intentkit-0.8.22/intentkit/skills/carv/schema.json +134 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/token_info_and_price.py +108 -110
- intentkit-0.8.22/intentkit/skills/casino/README.md +254 -0
- intentkit-0.8.22/intentkit/skills/casino/__init__.py +86 -0
- intentkit-0.8.22/intentkit/skills/casino/base.py +17 -0
- intentkit-0.8.22/intentkit/skills/casino/casino.png +0 -0
- intentkit-0.8.22/intentkit/skills/casino/deck_draw.py +127 -0
- intentkit-0.8.22/intentkit/skills/casino/deck_shuffle.py +118 -0
- intentkit-0.8.22/intentkit/skills/casino/dice_roll.py +100 -0
- intentkit-0.8.22/intentkit/skills/casino/schema.json +77 -0
- intentkit-0.8.22/intentkit/skills/casino/utils.py +107 -0
- intentkit-0.8.22/intentkit/skills/cdp/__init__.py +78 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cdp/base.py +1 -7
- intentkit-0.8.22/intentkit/skills/cdp/schema.json +122 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/__init__.py +2 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/chain_lookup.py +18 -19
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/schema.json +3 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/common/__init__.py +2 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/common/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/common/current_time.py +2 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/common/schema.json +2 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/__init__.py +6 -9
- intentkit-0.8.22/intentkit/skills/cookiefun/base.py +44 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/get_account_details.py +8 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/get_account_feed.py +20 -22
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/get_account_smart_followers.py +8 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/get_sectors.py +4 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/schema.json +1 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/search_accounts.py +10 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/__init__.py +7 -24
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/api.py +2 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/base.py +11 -25
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_news.py +7 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_price.py +9 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_top_exchanges.py +7 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_top_market_cap.py +7 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_top_volume.py +7 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/fetch_trading_signals.py +8 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/schema.json +3 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/__init__.py +7 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/base.py +51 -51
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/fetch_crypto_news.py +146 -153
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/fetch_crypto_sentiment.py +131 -136
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/schema.json +105 -103
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dapplooker/__init__.py +2 -9
- intentkit-0.8.22/intentkit/skills/dapplooker/base.py +31 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dapplooker/dapplooker_token_data.py +9 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dapplooker/schema.json +3 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/__init__.py +24 -74
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/api.py +6 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/base.py +11 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_batch_historical_prices.py +9 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_block.py +8 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_current_prices.py +9 -14
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_first_price.py +8 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_historical_prices.py +10 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_price_chart.py +10 -15
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/fetch_price_percentage.py +8 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/config/chains.py +1 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/fees/fetch_fees_overview.py +26 -29
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/schema.json +5 -1
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +18 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +9 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +7 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/stablecoins/fetch_stablecoins.py +9 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tests/api_integration.test.py +1 -1
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_chain_historical_tvl.py +6 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_chains.py +11 -14
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_historical_tvl.py +6 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_protocol.py +34 -43
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_protocol_current_tvl.py +5 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/fetch_protocols.py +39 -48
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/volumes/fetch_dex_overview.py +44 -51
- intentkit-0.8.22/intentkit/skills/defillama/volumes/fetch_dex_summary.py +118 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/volumes/fetch_options_overview.py +26 -31
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/yields/fetch_pool_chart.py +12 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/yields/fetch_pools.py +28 -33
- intentkit-0.8.22/intentkit/skills/dexscreener/README.md +154 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dexscreener/__init__.py +97 -93
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dexscreener/base.py +125 -133
- intentkit-0.8.22/intentkit/skills/dexscreener/get_pair_info.py +158 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/get_token_pairs.py +165 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/get_tokens_info.py +212 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/model/search_token_response.py +80 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/schema.json +91 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/search_token.py +182 -0
- intentkit-0.8.22/intentkit/skills/dexscreener/utils.py +420 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dune_analytics/__init__.py +7 -9
- intentkit-0.8.22/intentkit/skills/dune_analytics/base.py +48 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dune_analytics/fetch_kol_buys.py +123 -128
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dune_analytics/fetch_nation_metrics.py +232 -237
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dune_analytics/schema.json +104 -99
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/__init__.py +5 -18
- intentkit-0.8.22/intentkit/skills/elfa/base.py +34 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/mention.py +21 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/schema.json +3 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/stats.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/tokens.py +13 -16
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/utils.py +26 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/__init__.py +11 -31
- intentkit-0.8.22/intentkit/skills/enso/base.py +94 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/best_yield.py +17 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/networks.py +8 -16
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/prices.py +12 -18
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/route.py +35 -42
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/schema.json +3 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/tokens.py +30 -42
- intentkit-0.8.22/intentkit/skills/enso/wallet.py +264 -0
- intentkit-0.8.22/intentkit/skills/erc20/__init__.py +50 -0
- intentkit-0.8.22/intentkit/skills/erc20/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/erc20/erc20.svg +5 -0
- intentkit-0.8.22/intentkit/skills/erc20/schema.json +74 -0
- intentkit-0.8.22/intentkit/skills/erc721/__init__.py +53 -0
- intentkit-0.8.22/intentkit/skills/erc721/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/erc721/erc721.svg +5 -0
- intentkit-0.8.22/intentkit/skills/erc721/schema.json +90 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/README.md +11 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/__init__.py +5 -18
- intentkit-0.8.22/intentkit/skills/firecrawl/base.py +31 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/clear.py +5 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/crawl.py +25 -26
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/query.py +11 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/schema.json +6 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/scrape.py +156 -47
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/utils.py +50 -42
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/__init__.py +2 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/github_search.py +2 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/schema.json +3 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/__init__.py +8 -27
- intentkit-0.8.22/intentkit/skills/heurist/base.py +36 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_animagine_xl.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_arthemy_comics.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_arthemy_real.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_braindance.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_cyber_realistic_xl.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_flux_1_dev.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/image_generation_sdxl.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/schema.json +2 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/__init__.py +4 -15
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/get.py +21 -18
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/post.py +23 -20
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/put.py +23 -20
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/schema.json +4 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/__init__.py +8 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/base.py +1 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/schema.json +17 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/token_execute.py +37 -33
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/token_quote.py +8 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/utils.py +104 -51
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/__init__.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/api.py +6 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/base.py +18 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/fetch_chain_portfolio.py +10 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/fetch_nft_portfolio.py +22 -22
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/fetch_solana_portfolio.py +11 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/fetch_wallet_portfolio.py +8 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/schema.json +7 -2
- intentkit-0.8.22/intentkit/skills/morpho/__init__.py +52 -0
- intentkit-0.8.22/intentkit/skills/morpho/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/morpho/morpho.svg +12 -0
- intentkit-0.8.22/intentkit/skills/morpho/schema.json +73 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/nation/__init__.py +4 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/nation/base.py +5 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/nation/nft_check.py +4 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/nation/schema.json +4 -3
- intentkit-0.8.22/intentkit/skills/onchain.py +23 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/__init__.py +17 -18
- intentkit-0.8.22/intentkit/skills/openai/base.py +37 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/dalle_image_generation.py +4 -8
- intentkit-0.8.22/intentkit/skills/openai/gpt_avatar_generator.py +102 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/gpt_image_generation.py +5 -8
- intentkit-0.8.22/intentkit/skills/openai/gpt_image_mini_generator.py +92 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/gpt_image_to_image.py +5 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/image_to_text.py +5 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/schema.json +34 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/__init__.py +11 -35
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/base.py +37 -22
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/schema.json +3 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/token_balances.py +23 -25
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_approvals.py +18 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_defi_positions.py +6 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_history.py +32 -34
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_net_worth.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_nfts.py +21 -23
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_profitability.py +19 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_profitability_summary.py +7 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_stats.py +5 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/wallet_swaps.py +21 -23
- intentkit-0.8.22/intentkit/skills/pyth/__init__.py +50 -0
- intentkit-0.8.22/intentkit/skills/pyth/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/pyth/pyth.svg +6 -0
- intentkit-0.8.22/intentkit/skills/pyth/schema.json +75 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/skills.toml +40 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/__init__.py +5 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/base.py +20 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/get_channel.py +11 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/get_message.py +12 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/schedule_message.py +8 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/schema.json +2 -2
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/send_message.py +6 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/__init__.py +7 -23
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/base.py +9 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/delete_data.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/fetch_data.py +14 -18
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/insert_data.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/invoke_function.py +8 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/schema.json +2 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/update_data.py +8 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/upsert_data.py +6 -10
- intentkit-0.8.22/intentkit/skills/superfluid/__init__.py +53 -0
- intentkit-0.8.22/intentkit/skills/superfluid/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/superfluid/schema.json +89 -0
- intentkit-0.8.22/intentkit/skills/superfluid/superfluid.svg +6 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/__init__.py +7 -24
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/add_autonomous_task.py +11 -15
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/delete_autonomous_task.py +3 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/edit_autonomous_task.py +15 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/list_autonomous_tasks.py +4 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/read_agent_api_key.py +8 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/regenerate_agent_api_key.py +8 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/schema.json +6 -8
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/__init__.py +3 -12
- intentkit-0.8.22/intentkit/skills/tavily/base.py +31 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/schema.json +3 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/tavily_extract.py +8 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/tavily_search.py +12 -12
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/__init__.py +5 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/base.py +11 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/erc20_transfers.py +21 -23
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/schema.json +3 -6
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/token_analytics.py +5 -7
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/token_price.py +15 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/token_search.py +11 -13
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/__init__.py +11 -35
- intentkit-0.8.22/intentkit/skills/twitter/base.py +97 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/follow_user.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/get_mentions.py +9 -16
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/get_timeline.py +8 -16
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/get_user_by_username.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/get_user_tweets.py +9 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/like_tweet.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/post_tweet.py +25 -15
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/reply_tweet.py +23 -15
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/retweet.py +6 -10
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/schema.json +1 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/search_tweets.py +8 -16
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/unrealspeech/__init__.py +2 -7
- intentkit-0.8.22/intentkit/skills/unrealspeech/base.py +31 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/unrealspeech/schema.json +2 -5
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/unrealspeech/text_to_speech.py +11 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_audio/__init__.py +98 -106
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_audio/base.py +117 -119
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_audio/input.py +41 -41
- intentkit-0.8.22/intentkit/skills/venice_audio/schema.json +151 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_audio/venice_audio.py +255 -240
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/__init__.py +147 -154
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/api.py +138 -138
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/base.py +185 -188
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/config.py +33 -35
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_enhance/image_enhance.py +77 -80
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_enhance/image_enhance_base.py +21 -23
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_enhance/image_enhance_input.py +38 -40
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_base.py +115 -117
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_fluently_xl.py +26 -26
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev.py +27 -27
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +26 -26
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_input.py +158 -158
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +26 -26
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_pony_realism.py +26 -26
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +28 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/image_generation_venice_sd35.py +28 -28
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_upscale/image_upscale.py +88 -90
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_upscale/image_upscale_base.py +21 -23
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_upscale/image_upscale_input.py +22 -22
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_vision/image_vision.py +98 -100
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_vision/image_vision_base.py +17 -17
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_vision/image_vision_input.py +9 -9
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/schema.json +267 -267
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/utils.py +77 -78
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/__init__.py +5 -18
- intentkit-0.8.22/intentkit/skills/web_scraper/base.py +35 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/document_indexer.py +10 -11
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/schema.json +2 -6
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/scrape_and_index.py +29 -32
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/utils.py +62 -63
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/website_indexer.py +24 -28
- intentkit-0.8.22/intentkit/skills/weth/__init__.py +49 -0
- intentkit-0.8.22/intentkit/skills/weth/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/weth/schema.json +58 -0
- intentkit-0.8.22/intentkit/skills/weth/weth.svg +6 -0
- intentkit-0.8.22/intentkit/skills/wow/__init__.py +51 -0
- intentkit-0.8.22/intentkit/skills/wow/base.py +11 -0
- intentkit-0.8.22/intentkit/skills/wow/schema.json +89 -0
- intentkit-0.8.22/intentkit/skills/wow/wow.svg +7 -0
- intentkit-0.8.22/intentkit/skills/x402/__init__.py +61 -0
- intentkit-0.8.22/intentkit/skills/x402/ask_agent.py +98 -0
- intentkit-0.8.22/intentkit/skills/x402/base.py +99 -0
- intentkit-0.8.22/intentkit/skills/x402/http_request.py +117 -0
- intentkit-0.8.22/intentkit/skills/x402/schema.json +45 -0
- intentkit-0.8.22/intentkit/skills/x402/x402.webp +0 -0
- intentkit-0.8.22/intentkit/skills/xmtp/README.md +110 -0
- intentkit-0.8.22/intentkit/skills/xmtp/__init__.py +87 -0
- intentkit-0.8.22/intentkit/skills/xmtp/base.py +74 -0
- intentkit-0.8.22/intentkit/skills/xmtp/price.py +77 -0
- intentkit-0.8.22/intentkit/skills/xmtp/schema.json +73 -0
- intentkit-0.8.22/intentkit/skills/xmtp/swap.py +210 -0
- intentkit-0.8.22/intentkit/skills/xmtp/transfer.py +205 -0
- intentkit-0.8.22/intentkit/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/chain.py +3 -3
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/error.py +14 -1
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/logging.py +2 -4
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/s3.py +59 -7
- intentkit-0.8.22/intentkit/utils/schema.py +100 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/slack_alert.py +7 -8
- intentkit-0.8.22/intentkit/uv.lock +3377 -0
- intentkit-0.8.22/pyproject.toml +142 -0
- intentkit-0.6.9/abstracts/exception.py +0 -9
- intentkit-0.6.9/abstracts/graph.py +0 -25
- intentkit-0.6.9/abstracts/skill.py +0 -198
- intentkit-0.6.9/clients/cdp.py +0 -154
- intentkit-0.6.9/core/agent.py +0 -464
- intentkit-0.6.9/core/api.py +0 -40
- intentkit-0.6.9/core/client.py +0 -45
- intentkit-0.6.9/core/prompt.py +0 -57
- intentkit-0.6.9/core/skill.py +0 -200
- intentkit-0.6.9/models/agent_schema.json +0 -741
- intentkit-0.6.9/models/generator.py +0 -347
- intentkit-0.6.9/pyproject.toml +0 -119
- intentkit-0.6.9/skills/acolyt/base.py +0 -28
- intentkit-0.6.9/skills/allora/base.py +0 -28
- intentkit-0.6.9/skills/base.py +0 -194
- intentkit-0.6.9/skills/carv/schema.json +0 -137
- intentkit-0.6.9/skills/cdp/__init__.py +0 -140
- intentkit-0.6.9/skills/cdp/get_balance.py +0 -110
- intentkit-0.6.9/skills/cdp/schema.json +0 -425
- intentkit-0.6.9/skills/cdp/swap.py +0 -121
- intentkit-0.6.9/skills/cookiefun/base.py +0 -41
- intentkit-0.6.9/skills/dapplooker/base.py +0 -26
- intentkit-0.6.9/skills/defillama/volumes/fetch_dex_summary.py +0 -123
- intentkit-0.6.9/skills/dexscreener/model/search_token_response.py +0 -82
- intentkit-0.6.9/skills/dexscreener/schema.json +0 -48
- intentkit-0.6.9/skills/dexscreener/search_token.py +0 -321
- intentkit-0.6.9/skills/dune_analytics/base.py +0 -46
- intentkit-0.6.9/skills/elfa/base.py +0 -28
- intentkit-0.6.9/skills/enso/base.py +0 -67
- intentkit-0.6.9/skills/enso/wallet.py +0 -385
- intentkit-0.6.9/skills/firecrawl/base.py +0 -28
- intentkit-0.6.9/skills/heurist/base.py +0 -26
- intentkit-0.6.9/skills/moralis/tests/test_wallet.py +0 -511
- intentkit-0.6.9/skills/openai/base.py +0 -32
- intentkit-0.6.9/skills/tavily/base.py +0 -27
- intentkit-0.6.9/skills/twitter/base.py +0 -68
- intentkit-0.6.9/skills/unrealspeech/base.py +0 -21
- intentkit-0.6.9/skills/venice_audio/schema.json +0 -152
- intentkit-0.6.9/skills/venice_image/image_vision/__init__.py +0 -0
- intentkit-0.6.9/skills/web_scraper/base.py +0 -21
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/LICENSE +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/abstracts/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/abstracts/api.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/config/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/core/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/models/base.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/allora/allora.jpeg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/carv/carv.webp +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cdp/cdp.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/common/common.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/constants.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dapplooker/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/abi/approval.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/abi/route.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/enso/enso.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/github/github.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/heurist/heurist.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/http/http.svg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/lifi/lifi.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/moralis/moralis.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/nation/nation.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/openai/openai.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/constants.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/portfolio/moralis.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/slack/slack.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/supabase/supabase.svg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/base.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/system/system.svg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/constants.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/token/moralis.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/twitter/twitter.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.6.9/skills/moralis/tests → intentkit-0.8.22/intentkit/skills/venice_image/image_enhance}/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.6.9/skills/venice_image/image_enhance → intentkit-0.8.22/intentkit/skills/venice_image/image_generation}/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.6.9/skills/venice_image/image_generation → intentkit-0.8.22/intentkit/skills/venice_image/image_upscale}/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.6.9/skills/venice_image/image_upscale → intentkit-0.8.22/intentkit/skills/venice_image/image_vision}/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/README.md +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/__init__.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/random.py +0 -0
- {intentkit-0.6.9 → intentkit-0.8.22/intentkit}/utils/tx.py +0 -0
intentkit-0.8.22/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Crestal Network
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.22
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
|
-
Project-URL: Homepage, https://github.com/
|
|
6
|
-
Project-URL: Repository, https://github.com/
|
|
7
|
-
Project-URL: Documentation, https://github.com/
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/
|
|
9
|
-
Author-email:
|
|
5
|
+
Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
|
|
6
|
+
Project-URL: Repository, https://github.com/crestalnetwork/intentkit
|
|
7
|
+
Project-URL: Documentation, https://github.com/crestalnetwork/intentkit/tree/main/docs
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/crestalnetwork/intentkit/issues
|
|
9
|
+
Author-email: Ruihua <ruihua@crestal.network>
|
|
10
10
|
License: MIT License
|
|
11
11
|
|
|
12
12
|
Copyright (c) 2024 Crestal Network
|
|
@@ -34,20 +34,18 @@ Classifier: Development Status :: 4 - Beta
|
|
|
34
34
|
Classifier: Intended Audience :: Developers
|
|
35
35
|
Classifier: License :: OSI Approved :: MIT License
|
|
36
36
|
Classifier: Programming Language :: Python :: 3
|
|
37
|
-
Classifier: Programming Language :: Python :: 3.
|
|
37
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
38
38
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
39
39
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
40
|
-
Requires-Python:
|
|
40
|
+
Requires-Python: ==3.13.*
|
|
41
41
|
Requires-Dist: aiohttp>=3.11.16
|
|
42
42
|
Requires-Dist: aiosqlite>=0.21.0
|
|
43
43
|
Requires-Dist: asyncpg>=0.30.0
|
|
44
44
|
Requires-Dist: aws-secretsmanager-caching>=1.1.3
|
|
45
|
-
Requires-Dist: bip32>=2.0.0
|
|
46
45
|
Requires-Dist: boto3<2.0.0,>=1.37.23
|
|
47
46
|
Requires-Dist: botocore>=1.35.97
|
|
48
|
-
Requires-Dist: cdp-sdk>=1.
|
|
49
|
-
Requires-Dist: coinbase-agentkit
|
|
50
|
-
Requires-Dist: coinbase-agentkit<0.7.0,>=0.6.0
|
|
47
|
+
Requires-Dist: cdp-sdk>=1.31.1
|
|
48
|
+
Requires-Dist: coinbase-agentkit>=0.7.2
|
|
51
49
|
Requires-Dist: cron-validator<2.0.0,>=1.0.8
|
|
52
50
|
Requires-Dist: epyxid>=0.3.3
|
|
53
51
|
Requires-Dist: eth-keys>=0.4.0
|
|
@@ -55,28 +53,30 @@ Requires-Dist: eth-utils>=2.1.0
|
|
|
55
53
|
Requires-Dist: fastapi>=0.115.8
|
|
56
54
|
Requires-Dist: filetype<2.0.0,>=1.2.0
|
|
57
55
|
Requires-Dist: httpx>=0.28.1
|
|
56
|
+
Requires-Dist: jsonref>=1.1.0
|
|
58
57
|
Requires-Dist: langchain-community>=0.3.19
|
|
59
58
|
Requires-Dist: langchain-core>=0.3.43
|
|
59
|
+
Requires-Dist: langchain-deepseek>=0.1.4
|
|
60
60
|
Requires-Dist: langchain-mcp-adapters>=0.0.11
|
|
61
61
|
Requires-Dist: langchain-openai>=0.3.8
|
|
62
62
|
Requires-Dist: langchain-text-splitters>=0.3.8
|
|
63
63
|
Requires-Dist: langchain-xai>=0.2.1
|
|
64
|
-
Requires-Dist: langchain
|
|
65
|
-
Requires-Dist: langgraph-checkpoint-postgres
|
|
64
|
+
Requires-Dist: langchain>=0.3.25
|
|
65
|
+
Requires-Dist: langgraph-checkpoint-postgres>=2.0.16
|
|
66
66
|
Requires-Dist: langgraph-checkpoint>=2.0.18
|
|
67
|
-
Requires-Dist: langgraph-prebuilt
|
|
68
|
-
Requires-Dist: langgraph
|
|
67
|
+
Requires-Dist: langgraph-prebuilt>=0.6.1
|
|
68
|
+
Requires-Dist: langgraph>=0.6.1
|
|
69
69
|
Requires-Dist: langmem>=0.0.27
|
|
70
70
|
Requires-Dist: mypy-boto3-s3<2.0.0,>=1.37.24
|
|
71
71
|
Requires-Dist: openai>=1.59.6
|
|
72
|
-
Requires-Dist: pillow<
|
|
72
|
+
Requires-Dist: pillow<13.0.0,>=11.1.0
|
|
73
73
|
Requires-Dist: psycopg-pool>=3.2.4
|
|
74
74
|
Requires-Dist: psycopg>=3.2.9
|
|
75
|
-
Requires-Dist: pydantic
|
|
75
|
+
Requires-Dist: pydantic>=2.10.6
|
|
76
76
|
Requires-Dist: python-dotenv>=1.0.1
|
|
77
77
|
Requires-Dist: pytz>=2025.1
|
|
78
78
|
Requires-Dist: pyyaml>=6.0.2
|
|
79
|
-
Requires-Dist: redis<
|
|
79
|
+
Requires-Dist: redis<8.0.0,>=5.2.1
|
|
80
80
|
Requires-Dist: requests-oauthlib>=2.0.0
|
|
81
81
|
Requires-Dist: requests>=2.32.3
|
|
82
82
|
Requires-Dist: slack-sdk>=3.34.0
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
include README.md
|
|
2
2
|
include LICENSE
|
|
3
|
-
include pyproject.toml
|
|
4
3
|
recursive-include abstracts *.py
|
|
5
4
|
recursive-include clients *.py
|
|
6
5
|
recursive-include config *.py
|
|
@@ -12,4 +11,4 @@ recursive-exclude * __pycache__
|
|
|
12
11
|
recursive-exclude * *.pyc
|
|
13
12
|
recursive-exclude * *.pyo
|
|
14
13
|
recursive-exclude * .DS_Store
|
|
15
|
-
recursive-exclude * .ruff_cache
|
|
14
|
+
recursive-exclude * .ruff_cache
|
|
@@ -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.22"
|
|
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
|
]
|
|
@@ -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:
|
|
@@ -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
|
"""
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from collections.abc import Callable
|
|
2
|
+
from enum import Enum
|
|
3
|
+
from typing import Any, NotRequired
|
|
4
|
+
|
|
5
|
+
from langgraph.prebuilt.chat_agent_executor import AgentState as BaseAgentState
|
|
6
|
+
from pydantic import BaseModel
|
|
7
|
+
|
|
8
|
+
from intentkit.models.agent import Agent
|
|
9
|
+
from intentkit.models.chat import AuthorType
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AgentError(str, Enum):
|
|
13
|
+
"""The error types that can be raised by the agent."""
|
|
14
|
+
|
|
15
|
+
INSUFFICIENT_CREDITS = "insufficient_credits"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# We create the AgentState that we will pass around
|
|
19
|
+
# This simply involves a list of messages
|
|
20
|
+
# We want steps to return messages to append to the list
|
|
21
|
+
# So we annotate the messages attribute with operator.add
|
|
22
|
+
class AgentState(BaseAgentState):
|
|
23
|
+
"""The state of the agent."""
|
|
24
|
+
|
|
25
|
+
context: dict[str, Any]
|
|
26
|
+
error: NotRequired[AgentError]
|
|
27
|
+
__extra__: NotRequired[dict[str, Any]]
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class AgentContext(BaseModel):
|
|
31
|
+
agent_id: str
|
|
32
|
+
get_agent: Callable[[], Agent]
|
|
33
|
+
chat_id: str
|
|
34
|
+
user_id: str | None = None
|
|
35
|
+
app_id: str | None = None
|
|
36
|
+
entrypoint: AuthorType
|
|
37
|
+
is_private: bool
|
|
38
|
+
search: bool = False
|
|
39
|
+
thinking: bool = False
|
|
40
|
+
payer: str | None = None
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def agent(self) -> Agent:
|
|
44
|
+
return self.get_agent()
|
|
45
|
+
|
|
46
|
+
@property
|
|
47
|
+
def thread_id(self) -> str:
|
|
48
|
+
return f"{self.agent_id}-{self.chat_id}"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
from intentkit.models.agent import Agent
|
|
5
|
+
from intentkit.models.agent_data import AgentData, AgentQuota
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class SkillStoreABC(ABC):
|
|
9
|
+
"""Abstract base class for skill data storage operations.
|
|
10
|
+
|
|
11
|
+
This class defines the interface for interacting with skill-related data
|
|
12
|
+
for both agents and threads.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
@staticmethod
|
|
16
|
+
@abstractmethod
|
|
17
|
+
def get_system_config(key: str) -> Any:
|
|
18
|
+
"""Get system configuration value by key."""
|
|
19
|
+
pass
|
|
20
|
+
|
|
21
|
+
@staticmethod
|
|
22
|
+
@abstractmethod
|
|
23
|
+
async def get_agent_config(agent_id: str) -> Agent | None:
|
|
24
|
+
"""Get agent configuration.
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
Agent configuration if found, None otherwise
|
|
28
|
+
"""
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
@staticmethod
|
|
32
|
+
@abstractmethod
|
|
33
|
+
async def get_agent_data(agent_id: str) -> AgentData | None:
|
|
34
|
+
"""Get additional agent data.
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
Agent data if found, None otherwise
|
|
38
|
+
"""
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
@staticmethod
|
|
42
|
+
@abstractmethod
|
|
43
|
+
async def set_agent_data(agent_id: str, data: dict) -> None:
|
|
44
|
+
"""Update agent data.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
agent_id: ID of the agent
|
|
48
|
+
data: Dictionary containing fields to update
|
|
49
|
+
"""
|
|
50
|
+
pass
|
|
51
|
+
|
|
52
|
+
@staticmethod
|
|
53
|
+
@abstractmethod
|
|
54
|
+
async def get_agent_quota(agent_id: str) -> AgentQuota | None:
|
|
55
|
+
"""Get agent quota information.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
Agent quota if found, None otherwise
|
|
59
|
+
"""
|
|
60
|
+
pass
|
|
@@ -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:
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
from intentkit.clients.cdp import
|
|
1
|
+
from intentkit.clients.cdp import get_cdp_client, get_evm_account, get_wallet_provider
|
|
2
2
|
from intentkit.clients.twitter import (
|
|
3
3
|
TwitterClient,
|
|
4
4
|
TwitterClientConfig,
|
|
5
5
|
get_twitter_client,
|
|
6
6
|
)
|
|
7
|
+
from intentkit.clients.web3 import get_web3_client
|
|
7
8
|
|
|
8
9
|
__all__ = [
|
|
9
10
|
"TwitterClient",
|
|
10
11
|
"TwitterClientConfig",
|
|
11
12
|
"get_twitter_client",
|
|
12
|
-
"
|
|
13
|
+
"get_evm_account",
|
|
13
14
|
"get_cdp_client",
|
|
15
|
+
"get_wallet_provider",
|
|
16
|
+
"get_web3_client",
|
|
14
17
|
]
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import logging
|
|
3
|
+
|
|
4
|
+
from cdp import CdpClient, EvmServerAccount # noqa: E402
|
|
5
|
+
from coinbase_agentkit import ( # noqa: E402
|
|
6
|
+
CdpEvmWalletProvider,
|
|
7
|
+
CdpEvmWalletProviderConfig,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from intentkit.config.config import config
|
|
11
|
+
from intentkit.models.agent import Agent, AgentTable # noqa: E402
|
|
12
|
+
from intentkit.models.agent_data import AgentData
|
|
13
|
+
from intentkit.models.db import get_session
|
|
14
|
+
from intentkit.utils.error import IntentKitAPIError # noqa: E402
|
|
15
|
+
|
|
16
|
+
_wallet_providers: dict[str, tuple[str, str, CdpEvmWalletProvider]] = {}
|
|
17
|
+
_cdp_client: CdpClient | None = None
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def get_cdp_client() -> CdpClient:
|
|
23
|
+
global _cdp_client
|
|
24
|
+
if _cdp_client:
|
|
25
|
+
return _cdp_client
|
|
26
|
+
|
|
27
|
+
# Get credentials from global configuration
|
|
28
|
+
api_key_id = config.cdp_api_key_id
|
|
29
|
+
api_key_secret = config.cdp_api_key_secret
|
|
30
|
+
wallet_secret = config.cdp_wallet_secret
|
|
31
|
+
|
|
32
|
+
_cdp_client = CdpClient(
|
|
33
|
+
api_key_id=api_key_id,
|
|
34
|
+
api_key_secret=api_key_secret,
|
|
35
|
+
wallet_secret=wallet_secret,
|
|
36
|
+
)
|
|
37
|
+
return _cdp_client
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def _assert_cdp_wallet_provider(agent: Agent) -> None:
|
|
41
|
+
if agent.wallet_provider != "cdp":
|
|
42
|
+
raise IntentKitAPIError(
|
|
43
|
+
400,
|
|
44
|
+
"BadWalletProvider",
|
|
45
|
+
"Your agent wallet provider is not cdp but you selected a skill that requires a cdp wallet.",
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
async def _ensure_evm_account(
|
|
50
|
+
agent: Agent, agent_data: AgentData | None = None
|
|
51
|
+
) -> tuple[EvmServerAccount, AgentData]:
|
|
52
|
+
cdp_client = get_cdp_client()
|
|
53
|
+
agent_data = agent_data or await AgentData.get(agent.id)
|
|
54
|
+
address = agent_data.evm_wallet_address
|
|
55
|
+
account: EvmServerAccount | None = None
|
|
56
|
+
|
|
57
|
+
if not address:
|
|
58
|
+
logger.info("Creating new wallet...")
|
|
59
|
+
account = await cdp_client.evm.create_account(
|
|
60
|
+
name=agent.id,
|
|
61
|
+
)
|
|
62
|
+
address = account.address
|
|
63
|
+
logger.info("Created new wallet: %s", address)
|
|
64
|
+
|
|
65
|
+
agent_data.evm_wallet_address = address
|
|
66
|
+
await agent_data.save()
|
|
67
|
+
if not agent.slug:
|
|
68
|
+
async with get_session() as db:
|
|
69
|
+
db_agent = await db.get(AgentTable, agent.id)
|
|
70
|
+
if db_agent and not db_agent.slug:
|
|
71
|
+
db_agent.slug = agent_data.evm_wallet_address
|
|
72
|
+
await db.commit()
|
|
73
|
+
|
|
74
|
+
if account is None:
|
|
75
|
+
account = await cdp_client.evm.get_account(address=address)
|
|
76
|
+
|
|
77
|
+
return account, agent_data
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
async def get_evm_account(agent: Agent) -> EvmServerAccount:
|
|
81
|
+
_assert_cdp_wallet_provider(agent)
|
|
82
|
+
account, _ = await _ensure_evm_account(agent)
|
|
83
|
+
return account
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
async def get_wallet_provider(agent: Agent) -> CdpEvmWalletProvider:
|
|
87
|
+
_assert_cdp_wallet_provider(agent)
|
|
88
|
+
if not agent.network_id:
|
|
89
|
+
raise IntentKitAPIError(
|
|
90
|
+
400,
|
|
91
|
+
"BadNetworkID",
|
|
92
|
+
"Your agent network ID is not set. Please set it in the agent config.",
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
agent_data = await AgentData.get(agent.id)
|
|
96
|
+
address = agent_data.evm_wallet_address
|
|
97
|
+
|
|
98
|
+
cache_entry = _wallet_providers.get(agent.id)
|
|
99
|
+
if cache_entry:
|
|
100
|
+
cached_network_id, cached_address, provider = cache_entry
|
|
101
|
+
if cached_network_id == agent.network_id:
|
|
102
|
+
if not address:
|
|
103
|
+
address = cached_address or provider.get_address()
|
|
104
|
+
if cached_address == address:
|
|
105
|
+
return provider
|
|
106
|
+
|
|
107
|
+
account, agent_data = await _ensure_evm_account(agent, agent_data)
|
|
108
|
+
address = account.address
|
|
109
|
+
|
|
110
|
+
# Get credentials from global config
|
|
111
|
+
api_key_id = config.cdp_api_key_id
|
|
112
|
+
api_key_secret = config.cdp_api_key_secret
|
|
113
|
+
wallet_secret = config.cdp_wallet_secret
|
|
114
|
+
|
|
115
|
+
network_id = agent.network_id
|
|
116
|
+
|
|
117
|
+
wallet_provider_config = CdpEvmWalletProviderConfig(
|
|
118
|
+
api_key_id=api_key_id,
|
|
119
|
+
api_key_secret=api_key_secret,
|
|
120
|
+
network_id=network_id,
|
|
121
|
+
address=address,
|
|
122
|
+
wallet_secret=wallet_secret,
|
|
123
|
+
)
|
|
124
|
+
wallet_provider = await asyncio.to_thread(
|
|
125
|
+
CdpEvmWalletProvider, wallet_provider_config
|
|
126
|
+
)
|
|
127
|
+
_wallet_providers[agent.id] = (network_id, address, wallet_provider)
|
|
128
|
+
return wallet_provider
|