intentkit 0.8.17.dev2__tar.gz → 0.8.49__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.
- {intentkit-0.8.17.dev2 → intentkit-0.8.49}/.gitignore +2 -1
- intentkit-0.8.49/LICENSE +21 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49}/PKG-INFO +6 -5
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/MANIFEST.in +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/__init__.py +6 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/agent.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/graph.py +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/skill.py +1 -1
- intentkit-0.8.49/intentkit/abstracts/wallet.py +161 -0
- intentkit-0.8.49/intentkit/clients/__init__.py +204 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/cdp.py +27 -0
- intentkit-0.8.49/intentkit/clients/privy.py +2302 -0
- {intentkit-0.8.17.dev2/utils → intentkit-0.8.49/intentkit/clients}/s3.py +52 -29
- intentkit-0.8.49/intentkit/clients/signer.py +146 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/twitter.py +4 -4
- intentkit-0.8.49/intentkit/config/config.py +242 -0
- intentkit-0.8.49/intentkit/core/account_checking.py +802 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/agent.py +148 -9
- intentkit-0.8.49/intentkit/core/agent_activity.py +90 -0
- intentkit-0.8.49/intentkit/core/agent_post.py +90 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/api.py +17 -3
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/asset.py +19 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/chat.py +5 -3
- intentkit-0.8.49/intentkit/core/cleanup.py +80 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/credit.py +12 -11
- intentkit-0.8.49/intentkit/core/draft.py +202 -0
- intentkit-0.8.49/intentkit/core/draft_chat.py +119 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/engine.py +209 -155
- intentkit-0.8.49/intentkit/core/manager/__init__.py +25 -0
- intentkit-0.8.49/intentkit/core/manager/engine.py +223 -0
- intentkit-0.8.49/intentkit/core/manager/service.py +174 -0
- intentkit-0.8.49/intentkit/core/manager/skills.py +178 -0
- intentkit-0.8.49/intentkit/core/middleware.py +260 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/prompt.py +54 -97
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/scheduler.py +70 -6
- intentkit-0.8.49/intentkit/core/system_skills/__init__.py +27 -0
- intentkit-0.8.49/intentkit/core/system_skills/call_agent.py +122 -0
- intentkit-0.8.49/intentkit/core/system_skills/create_activity.py +97 -0
- intentkit-0.8.49/intentkit/core/system_skills/create_post.py +143 -0
- intentkit-0.8.49/intentkit/core/system_skills/recent_activities.py +62 -0
- intentkit-0.8.49/intentkit/core/template.py +198 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent.py +297 -91
- intentkit-0.8.49/intentkit/models/agent_activity.py +62 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_data.py +112 -73
- intentkit-0.8.49/intentkit/models/agent_post.py +246 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_schema.json +7 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/app_setting.py +9 -7
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/chat.py +75 -121
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/credit.py +105 -96
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/db.py +35 -17
- intentkit-0.8.49/intentkit/models/db_mig.py +220 -0
- intentkit-0.8.49/intentkit/models/draft.py +223 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/llm.csv +15 -10
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/llm.py +152 -40
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/skill.py +39 -32
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/skills.csv +5 -4
- intentkit-0.8.49/intentkit/models/team.py +189 -0
- intentkit-0.8.49/intentkit/models/template.py +185 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/user.py +44 -18
- intentkit-0.8.49/intentkit/models/x402_order.py +167 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/ask.py +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/base.py +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/token_info_and_price.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/deck_draw.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/deck_shuffle.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/dice_roll.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/utils.py +3 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/schema.json +3 -3
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/chain_lookup.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/api.py +13 -6
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/base.py +10 -6
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/api.py +28 -23
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/base.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocol.py +5 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_dex_overview.py +4 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_dex_summary.py +7 -3
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_pair_info.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_token_pairs.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/get_tokens_info.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/search_token.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/schema.json +4 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/__init__.py +6 -0
- intentkit-0.8.49/intentkit/skills/enso/base.py +166 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/best_yield.py +4 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/route.py +7 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/wallet.py +4 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/schema.json +4 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/utils.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_animagine_xl.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_arthemy_comics.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_arthemy_real.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_braindance.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_cyber_realistic_xl.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_flux_1_dev.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/image_generation_sdxl.py +1 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/schema.json +3 -3
- intentkit-0.8.49/intentkit/skills/jupiter/README.md +92 -0
- intentkit-0.8.49/intentkit/skills/jupiter/__init__.py +26 -0
- intentkit-0.8.49/intentkit/skills/jupiter/base.py +75 -0
- intentkit-0.8.49/intentkit/skills/jupiter/jupiter.png +0 -0
- intentkit-0.8.49/intentkit/skills/jupiter/price.py +105 -0
- intentkit-0.8.49/intentkit/skills/jupiter/schema.json +70 -0
- intentkit-0.8.49/intentkit/skills/jupiter/swap.py +89 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/base.py +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/token_execute.py +126 -42
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/api.py +26 -14
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_nft_portfolio.py +3 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_solana_portfolio.py +3 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_wallet_portfolio.py +3 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/schema.json +8 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/__init__.py +7 -5
- intentkit-0.8.49/intentkit/skills/onchain.py +190 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/__init__.py +17 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/dalle_image_generation.py +1 -1
- intentkit-0.8.49/intentkit/skills/openai/gpt_avatar_generator.py +102 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/gpt_image_generation.py +2 -2
- intentkit-0.8.49/intentkit/skills/openai/gpt_image_mini_generator.py +92 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/gpt_image_to_image.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/schema.json +36 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/schema.json +6 -6
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/add_autonomous_task.py +7 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/delete_autonomous_task.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/edit_autonomous_task.py +9 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/list_autonomous_tasks.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/read_agent_api_key.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/regenerate_agent_api_key.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/schema.json +6 -6
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/__init__.py +6 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/schema.json +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/schema.json +5 -5
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/__init__.py +11 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/base.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/venice_audio.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/api.py +1 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_base.py +2 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale.py +2 -2
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/schema.json +3 -3
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/schema.json +4 -4
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/utils.py +11 -8
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/__init__.py +12 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/__init__.py +11 -3
- intentkit-0.8.49/intentkit/skills/x402/base.py +225 -0
- intentkit-0.8.49/intentkit/skills/x402/check_price.py +153 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/http_request.py +16 -2
- intentkit-0.8.49/intentkit/skills/x402/pay.py +152 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/schema.json +37 -10
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/swap.py +3 -1
- intentkit-0.8.49/intentkit/utils/__init__.py +5 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/chain.py +198 -96
- intentkit-0.8.49/intentkit/utils/ens.py +135 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/error.py +4 -3
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/logging.py +7 -7
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/slack_alert.py +5 -5
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/tx.py +16 -8
- {intentkit-0.8.17.dev2 → intentkit-0.8.49}/pyproject.toml +71 -48
- intentkit-0.8.17.dev2/clients/__init__.py +0 -17
- intentkit-0.8.17.dev2/config/config.py +0 -211
- intentkit-0.8.17.dev2/core/node.py +0 -214
- intentkit-0.8.17.dev2/models/conversation.py +0 -286
- intentkit-0.8.17.dev2/models/db_mig.py +0 -102
- intentkit-0.8.17.dev2/skills/enso/base.py +0 -94
- intentkit-0.8.17.dev2/skills/onchain.py +0 -23
- intentkit-0.8.17.dev2/skills/x402/ask_agent.py +0 -98
- intentkit-0.8.17.dev2/skills/x402/base.py +0 -99
- intentkit-0.8.17.dev2/utils/__init__.py +0 -1
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/LICENSE +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/api.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/engine.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/abstracts/twitter.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/clients/web3.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/config/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/client.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/core/statistics.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/agent_public.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/models/redis.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/acolyt/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/projects.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/aixbt/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/allora.jpeg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/allora/price.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/basename.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/basename/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/carv.webp +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/fetch_news.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/carv/onchain_query.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/casino.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/casino/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cdp/cdp.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/chainlist/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/common.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/common/current_time.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/constants.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/config/chains.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dexscreener/utils.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/mention.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/stats.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/tokens.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/elfa/utils.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/approval.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/abi/route.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/enso.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/networks.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/prices.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/enso/tokens.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/erc20.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc20/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/erc721.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/erc721/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/clear.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/crawl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/query.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/firecrawl/scrape.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/github.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/github_search.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/github/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/heurist.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/heurist/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/get.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/http.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/post.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/http/put.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/lifi.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/token_quote.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/lifi/utils.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/moralis/moralis.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/morpho.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/morpho/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/nation.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/nft_check.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/nation/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/image_to_text.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/openai/openai.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/constants.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/moralis.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/pyth.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/pyth/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/skills.toml +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/get_channel.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/get_message.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/schedule_message.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/send_message.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/slack/slack.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/delete_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/fetch_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/insert_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/invoke_function.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/supabase.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/update_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/supabase/upsert_data.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/superfluid/superfluid.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/system/system.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/constants.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/moralis.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_analytics.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_price.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/token/token_search.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/follow_user.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_mentions.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_timeline.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/like_tweet.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/post_tweet.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/reply_tweet.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/retweet.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/search_tweets.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/twitter/twitter.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/input.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/config.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/utils.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/weth/weth.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/wow/wow.svg +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/x402/x402.webp +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/README.md +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/base.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/price.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/schema.json +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/transfer.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/random.py +0 -0
- {intentkit-0.8.17.dev2 → intentkit-0.8.49/intentkit}/utils/schema.py +0 -0
intentkit-0.8.49/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.8.
|
|
3
|
+
Version: 0.8.49
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
|
|
6
6
|
Project-URL: Repository, https://github.com/crestalnetwork/intentkit
|
|
7
7
|
Project-URL: Documentation, https://github.com/crestalnetwork/intentkit/tree/main/docs
|
|
8
8
|
Project-URL: Bug Tracker, https://github.com/crestalnetwork/intentkit/issues
|
|
9
|
-
Author-email:
|
|
9
|
+
Author-email: Ruihua <ruihua@crestal.network>
|
|
10
10
|
License: MIT License
|
|
11
11
|
|
|
12
12
|
Copyright (c) 2024 Crestal Network
|
|
@@ -48,6 +48,7 @@ Requires-Dist: cdp-sdk>=1.31.1
|
|
|
48
48
|
Requires-Dist: coinbase-agentkit>=0.7.2
|
|
49
49
|
Requires-Dist: cron-validator<2.0.0,>=1.0.8
|
|
50
50
|
Requires-Dist: epyxid>=0.3.3
|
|
51
|
+
Requires-Dist: eth-abi>=5.0.0
|
|
51
52
|
Requires-Dist: eth-keys>=0.4.0
|
|
52
53
|
Requires-Dist: eth-utils>=2.1.0
|
|
53
54
|
Requires-Dist: fastapi>=0.115.8
|
|
@@ -57,6 +58,7 @@ Requires-Dist: jsonref>=1.1.0
|
|
|
57
58
|
Requires-Dist: langchain-community>=0.3.19
|
|
58
59
|
Requires-Dist: langchain-core>=0.3.43
|
|
59
60
|
Requires-Dist: langchain-deepseek>=0.1.4
|
|
61
|
+
Requires-Dist: langchain-google-genai>=3.2.0
|
|
60
62
|
Requires-Dist: langchain-mcp-adapters>=0.0.11
|
|
61
63
|
Requires-Dist: langchain-openai>=0.3.8
|
|
62
64
|
Requires-Dist: langchain-text-splitters>=0.3.8
|
|
@@ -66,17 +68,16 @@ Requires-Dist: langgraph-checkpoint-postgres>=2.0.16
|
|
|
66
68
|
Requires-Dist: langgraph-checkpoint>=2.0.18
|
|
67
69
|
Requires-Dist: langgraph-prebuilt>=0.6.1
|
|
68
70
|
Requires-Dist: langgraph>=0.6.1
|
|
69
|
-
Requires-Dist: langmem>=0.0.27
|
|
70
71
|
Requires-Dist: mypy-boto3-s3<2.0.0,>=1.37.24
|
|
71
72
|
Requires-Dist: openai>=1.59.6
|
|
72
|
-
Requires-Dist: pillow<
|
|
73
|
+
Requires-Dist: pillow<13.0.0,>=11.1.0
|
|
73
74
|
Requires-Dist: psycopg-pool>=3.2.4
|
|
74
75
|
Requires-Dist: psycopg>=3.2.9
|
|
75
76
|
Requires-Dist: pydantic>=2.10.6
|
|
76
77
|
Requires-Dist: python-dotenv>=1.0.1
|
|
77
78
|
Requires-Dist: pytz>=2025.1
|
|
78
79
|
Requires-Dist: pyyaml>=6.0.2
|
|
79
|
-
Requires-Dist: redis<
|
|
80
|
+
Requires-Dist: redis<8.0.0,>=5.2.1
|
|
80
81
|
Requires-Dist: requests-oauthlib>=2.0.0
|
|
81
82
|
Requires-Dist: requests>=2.32.3
|
|
82
83
|
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.8.
|
|
7
|
-
__author__ = "
|
|
8
|
-
__email__ = "
|
|
6
|
+
__version__ = "0.8.49"
|
|
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,4 +1,5 @@
|
|
|
1
1
|
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any
|
|
2
3
|
|
|
3
4
|
from intentkit.models.agent import Agent
|
|
4
5
|
from intentkit.models.agent_data import AgentData, AgentQuota
|
|
@@ -41,7 +42,7 @@ class AgentStoreABC(ABC):
|
|
|
41
42
|
pass
|
|
42
43
|
|
|
43
44
|
@abstractmethod
|
|
44
|
-
async def set_data(self, data: dict) -> None:
|
|
45
|
+
async def set_data(self, data: dict[str, Any]) -> None:
|
|
45
46
|
"""Update agent data.
|
|
46
47
|
|
|
47
48
|
Args:
|
|
@@ -2,7 +2,7 @@ from collections.abc import Callable
|
|
|
2
2
|
from enum import Enum
|
|
3
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
|
|
@@ -19,7 +19,7 @@ class AgentError(str, Enum):
|
|
|
19
19
|
# This simply involves a list of messages
|
|
20
20
|
# We want steps to return messages to append to the list
|
|
21
21
|
# So we annotate the messages attribute with operator.add
|
|
22
|
-
class AgentState(BaseAgentState):
|
|
22
|
+
class AgentState(BaseAgentState[Any]):
|
|
23
23
|
"""The state of the agent."""
|
|
24
24
|
|
|
25
25
|
context: dict[str, Any]
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Unified wallet abstractions for on-chain skills.
|
|
3
|
+
|
|
4
|
+
This module defines abstract interfaces for wallet providers and signers,
|
|
5
|
+
allowing skills to work with different wallet implementations (CDP, Privy, etc.)
|
|
6
|
+
without knowing the specific implementation details.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from abc import ABC, abstractmethod
|
|
10
|
+
from typing import Any
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UnifiedWalletProvider(ABC):
|
|
14
|
+
"""
|
|
15
|
+
Abstract interface for wallet providers.
|
|
16
|
+
|
|
17
|
+
This interface defines the common operations that any wallet provider
|
|
18
|
+
(CDP, Privy/Safe, etc.) must implement to be used by on-chain skills.
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
@abstractmethod
|
|
22
|
+
def get_address(self) -> str:
|
|
23
|
+
"""
|
|
24
|
+
Get the wallet's public address (synchronous).
|
|
25
|
+
|
|
26
|
+
Returns:
|
|
27
|
+
The wallet address as a checksummed hex string.
|
|
28
|
+
"""
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
@abstractmethod
|
|
32
|
+
async def get_address_async(self) -> str:
|
|
33
|
+
"""
|
|
34
|
+
Get the wallet's public address (asynchronous).
|
|
35
|
+
|
|
36
|
+
Returns:
|
|
37
|
+
The wallet address as a checksummed hex string.
|
|
38
|
+
"""
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
@abstractmethod
|
|
42
|
+
async def get_balance(self, chain_id: int | None = None) -> int:
|
|
43
|
+
"""
|
|
44
|
+
Get native token balance in wei.
|
|
45
|
+
|
|
46
|
+
Args:
|
|
47
|
+
chain_id: Optional chain ID, uses default if not specified.
|
|
48
|
+
|
|
49
|
+
Returns:
|
|
50
|
+
Balance in wei as an integer.
|
|
51
|
+
"""
|
|
52
|
+
pass
|
|
53
|
+
|
|
54
|
+
@abstractmethod
|
|
55
|
+
async def execute_transaction(
|
|
56
|
+
self,
|
|
57
|
+
to: str,
|
|
58
|
+
value: int = 0,
|
|
59
|
+
data: bytes = b"",
|
|
60
|
+
chain_id: int | None = None,
|
|
61
|
+
) -> dict[str, Any]:
|
|
62
|
+
"""
|
|
63
|
+
Execute a transaction.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
to: Destination address.
|
|
67
|
+
value: Amount of native token to send (in wei).
|
|
68
|
+
data: Transaction calldata.
|
|
69
|
+
chain_id: Optional chain ID (uses default if not specified).
|
|
70
|
+
|
|
71
|
+
Returns:
|
|
72
|
+
Dict with 'success' (bool), 'tx_hash' (str), and optional 'error' (str).
|
|
73
|
+
"""
|
|
74
|
+
pass
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class UnifiedWalletSigner(ABC):
|
|
78
|
+
"""
|
|
79
|
+
Abstract interface for EVM signers.
|
|
80
|
+
|
|
81
|
+
This interface is compatible with eth_account's signing interfaces,
|
|
82
|
+
allowing it to be used with libraries like x402 that expect standard
|
|
83
|
+
EVM signers.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
@property
|
|
87
|
+
@abstractmethod
|
|
88
|
+
def address(self) -> str:
|
|
89
|
+
"""
|
|
90
|
+
The wallet address used for signing.
|
|
91
|
+
|
|
92
|
+
Note: For Privy, this is the EOA address (not the Safe address),
|
|
93
|
+
as signatures must come from the actual signer.
|
|
94
|
+
"""
|
|
95
|
+
pass
|
|
96
|
+
|
|
97
|
+
@abstractmethod
|
|
98
|
+
def sign_message(self, signable_message: Any) -> Any:
|
|
99
|
+
"""
|
|
100
|
+
Sign a message (EIP-191 personal_sign).
|
|
101
|
+
|
|
102
|
+
Args:
|
|
103
|
+
signable_message: The message to sign, typically an
|
|
104
|
+
eth_account.messages.SignableMessage.
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
The signature, typically as an eth_account SignedMessage or
|
|
108
|
+
compatible object.
|
|
109
|
+
"""
|
|
110
|
+
pass
|
|
111
|
+
|
|
112
|
+
@abstractmethod
|
|
113
|
+
def sign_transaction(self, transaction_dict: dict[str, Any]) -> Any:
|
|
114
|
+
"""
|
|
115
|
+
Sign a transaction.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
transaction_dict: The transaction dictionary to sign.
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
The signed transaction.
|
|
122
|
+
"""
|
|
123
|
+
pass
|
|
124
|
+
|
|
125
|
+
@abstractmethod
|
|
126
|
+
def sign_typed_data(
|
|
127
|
+
self,
|
|
128
|
+
domain_data: dict[str, Any] | None = None,
|
|
129
|
+
message_types: dict[str, Any] | None = None,
|
|
130
|
+
message_data: dict[str, Any] | None = None,
|
|
131
|
+
full_message: dict[str, Any] | None = None,
|
|
132
|
+
) -> Any:
|
|
133
|
+
"""
|
|
134
|
+
Sign typed data (EIP-712).
|
|
135
|
+
|
|
136
|
+
Args:
|
|
137
|
+
domain_data: The EIP-712 domain data.
|
|
138
|
+
message_types: The type definitions.
|
|
139
|
+
message_data: The message data to sign.
|
|
140
|
+
full_message: Alternative: the complete typed data structure.
|
|
141
|
+
|
|
142
|
+
Returns:
|
|
143
|
+
The signature.
|
|
144
|
+
"""
|
|
145
|
+
pass
|
|
146
|
+
|
|
147
|
+
@abstractmethod
|
|
148
|
+
def unsafe_sign_hash(self, message_hash: Any) -> Any:
|
|
149
|
+
"""
|
|
150
|
+
Sign a raw hash directly (unsafe, use with caution).
|
|
151
|
+
|
|
152
|
+
This method signs a hash without any prefix or encoding.
|
|
153
|
+
It should only be used when you know exactly what you're signing.
|
|
154
|
+
|
|
155
|
+
Args:
|
|
156
|
+
message_hash: The 32-byte hash to sign.
|
|
157
|
+
|
|
158
|
+
Returns:
|
|
159
|
+
The signature.
|
|
160
|
+
"""
|
|
161
|
+
pass
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
"""
|
|
2
|
+
IntentKit clients module.
|
|
3
|
+
|
|
4
|
+
This module provides unified access to various client implementations,
|
|
5
|
+
including wallet providers that support both CDP and Privy backends.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import json
|
|
9
|
+
import logging
|
|
10
|
+
from typing import TYPE_CHECKING, Any, Union
|
|
11
|
+
|
|
12
|
+
from intentkit.clients.cdp import (
|
|
13
|
+
get_cdp_client,
|
|
14
|
+
get_cdp_network,
|
|
15
|
+
get_evm_account,
|
|
16
|
+
)
|
|
17
|
+
from intentkit.clients.cdp import (
|
|
18
|
+
get_wallet_provider as get_cdp_wallet_provider,
|
|
19
|
+
)
|
|
20
|
+
from intentkit.clients.twitter import (
|
|
21
|
+
TwitterClient,
|
|
22
|
+
TwitterClientConfig,
|
|
23
|
+
get_twitter_client,
|
|
24
|
+
)
|
|
25
|
+
from intentkit.clients.web3 import get_web3_client
|
|
26
|
+
from intentkit.utils.error import IntentKitAPIError
|
|
27
|
+
|
|
28
|
+
if TYPE_CHECKING:
|
|
29
|
+
from coinbase_agentkit import CdpEvmWalletProvider
|
|
30
|
+
|
|
31
|
+
from intentkit.clients.privy import SafeWalletProvider
|
|
32
|
+
from intentkit.models.agent import Agent
|
|
33
|
+
|
|
34
|
+
logger = logging.getLogger(__name__)
|
|
35
|
+
|
|
36
|
+
# Type alias for unified wallet provider
|
|
37
|
+
WalletProviderType = Union["CdpEvmWalletProvider", "SafeWalletProvider"]
|
|
38
|
+
WalletSignerType = Any # Can be ThreadSafeEvmWalletSigner or PrivyWalletSigner
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
async def get_wallet_provider(agent: "Agent") -> WalletProviderType:
|
|
42
|
+
"""
|
|
43
|
+
Get wallet provider based on agent's wallet_provider setting.
|
|
44
|
+
|
|
45
|
+
This function automatically selects the appropriate wallet provider
|
|
46
|
+
implementation based on the agent's configuration.
|
|
47
|
+
|
|
48
|
+
Args:
|
|
49
|
+
agent: The agent to get the wallet provider for.
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
CdpEvmWalletProvider for CDP agents.
|
|
53
|
+
SafeWalletProvider for Privy agents.
|
|
54
|
+
|
|
55
|
+
Raises:
|
|
56
|
+
IntentKitAPIError: If the wallet provider is not supported or not configured.
|
|
57
|
+
"""
|
|
58
|
+
if agent.wallet_provider == "cdp":
|
|
59
|
+
return await get_cdp_wallet_provider(agent)
|
|
60
|
+
|
|
61
|
+
elif agent.wallet_provider == "privy":
|
|
62
|
+
from intentkit.clients.privy import get_wallet_provider as get_privy_provider
|
|
63
|
+
from intentkit.models.agent_data import AgentData
|
|
64
|
+
|
|
65
|
+
agent_data = await AgentData.get(agent.id)
|
|
66
|
+
if not agent_data.privy_wallet_data:
|
|
67
|
+
raise IntentKitAPIError(
|
|
68
|
+
400,
|
|
69
|
+
"PrivyWalletNotInitialized",
|
|
70
|
+
"Privy wallet has not been initialized for this agent. "
|
|
71
|
+
"Please ensure the agent was created with wallet_provider='privy'.",
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
try:
|
|
75
|
+
privy_data = json.loads(agent_data.privy_wallet_data)
|
|
76
|
+
except json.JSONDecodeError as e:
|
|
77
|
+
raise IntentKitAPIError(
|
|
78
|
+
500,
|
|
79
|
+
"PrivyWalletDataCorrupted",
|
|
80
|
+
f"Failed to parse Privy wallet data: {e}",
|
|
81
|
+
) from e
|
|
82
|
+
|
|
83
|
+
return get_privy_provider(privy_data)
|
|
84
|
+
|
|
85
|
+
elif agent.wallet_provider == "readonly":
|
|
86
|
+
raise IntentKitAPIError(
|
|
87
|
+
400,
|
|
88
|
+
"ReadonlyWalletNotSupported",
|
|
89
|
+
"Readonly wallets cannot perform on-chain operations that require signing.",
|
|
90
|
+
)
|
|
91
|
+
|
|
92
|
+
elif agent.wallet_provider == "none" or agent.wallet_provider is None:
|
|
93
|
+
raise IntentKitAPIError(
|
|
94
|
+
400,
|
|
95
|
+
"NoWalletConfigured",
|
|
96
|
+
"This agent does not have a wallet configured. "
|
|
97
|
+
"Please set wallet_provider to 'cdp' or 'privy' in the agent configuration.",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
else:
|
|
101
|
+
raise IntentKitAPIError(
|
|
102
|
+
400,
|
|
103
|
+
"UnsupportedWalletProvider",
|
|
104
|
+
f"Wallet provider '{agent.wallet_provider}' is not supported for on-chain operations. "
|
|
105
|
+
"Supported providers are: 'cdp', 'privy'.",
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
async def get_wallet_signer(agent: "Agent") -> WalletSignerType:
|
|
110
|
+
"""
|
|
111
|
+
Get EVM signer based on agent's wallet_provider setting.
|
|
112
|
+
|
|
113
|
+
This function returns a signer compatible with eth_account interfaces,
|
|
114
|
+
suitable for use with libraries like x402 that require signing capabilities.
|
|
115
|
+
|
|
116
|
+
Args:
|
|
117
|
+
agent: The agent to get the wallet signer for.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
A signer object with sign_message, sign_typed_data, and unsafe_sign_hash methods.
|
|
121
|
+
- For CDP: ThreadSafeEvmWalletSigner wrapping CdpEvmWalletProvider
|
|
122
|
+
- For Privy: PrivyWalletSigner
|
|
123
|
+
|
|
124
|
+
Raises:
|
|
125
|
+
IntentKitAPIError: If the wallet provider is not supported or not configured.
|
|
126
|
+
"""
|
|
127
|
+
if agent.wallet_provider == "cdp":
|
|
128
|
+
# Import here to avoid circular imports
|
|
129
|
+
from intentkit.clients.cdp import get_wallet_provider as get_cdp_provider
|
|
130
|
+
|
|
131
|
+
provider = await get_cdp_provider(agent)
|
|
132
|
+
|
|
133
|
+
# Create thread-safe signer wrapper
|
|
134
|
+
from intentkit.clients.signer import ThreadSafeEvmWalletSigner
|
|
135
|
+
|
|
136
|
+
return ThreadSafeEvmWalletSigner(provider)
|
|
137
|
+
|
|
138
|
+
elif agent.wallet_provider == "privy":
|
|
139
|
+
from intentkit.clients.privy import get_wallet_signer as get_privy_signer
|
|
140
|
+
from intentkit.models.agent_data import AgentData
|
|
141
|
+
|
|
142
|
+
agent_data = await AgentData.get(agent.id)
|
|
143
|
+
if not agent_data.privy_wallet_data:
|
|
144
|
+
raise IntentKitAPIError(
|
|
145
|
+
400,
|
|
146
|
+
"PrivyWalletNotInitialized",
|
|
147
|
+
"Privy wallet has not been initialized for this agent. "
|
|
148
|
+
"Please ensure the agent was created with wallet_provider='privy'.",
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
try:
|
|
152
|
+
privy_data = json.loads(agent_data.privy_wallet_data)
|
|
153
|
+
except json.JSONDecodeError as e:
|
|
154
|
+
raise IntentKitAPIError(
|
|
155
|
+
500,
|
|
156
|
+
"PrivyWalletDataCorrupted",
|
|
157
|
+
f"Failed to parse Privy wallet data: {e}",
|
|
158
|
+
) from e
|
|
159
|
+
|
|
160
|
+
return get_privy_signer(privy_data)
|
|
161
|
+
|
|
162
|
+
elif agent.wallet_provider == "readonly":
|
|
163
|
+
raise IntentKitAPIError(
|
|
164
|
+
400,
|
|
165
|
+
"ReadonlyWalletNotSupported",
|
|
166
|
+
"Readonly wallets cannot perform signing operations.",
|
|
167
|
+
)
|
|
168
|
+
|
|
169
|
+
elif agent.wallet_provider == "none" or agent.wallet_provider is None:
|
|
170
|
+
raise IntentKitAPIError(
|
|
171
|
+
400,
|
|
172
|
+
"NoWalletConfigured",
|
|
173
|
+
"This agent does not have a wallet configured. "
|
|
174
|
+
"Please set wallet_provider to 'cdp' or 'privy' in the agent configuration.",
|
|
175
|
+
)
|
|
176
|
+
|
|
177
|
+
else:
|
|
178
|
+
raise IntentKitAPIError(
|
|
179
|
+
400,
|
|
180
|
+
"UnsupportedWalletProvider",
|
|
181
|
+
f"Wallet provider '{agent.wallet_provider}' is not supported for signing. "
|
|
182
|
+
"Supported providers are: 'cdp', 'privy'.",
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
# Legacy alias for backwards compatibility
|
|
187
|
+
# This now routes to the unified function
|
|
188
|
+
get_cdp_wallet_provider_legacy = get_cdp_wallet_provider
|
|
189
|
+
|
|
190
|
+
__all__ = [
|
|
191
|
+
# Twitter client
|
|
192
|
+
"TwitterClient",
|
|
193
|
+
"TwitterClientConfig",
|
|
194
|
+
"get_twitter_client",
|
|
195
|
+
# CDP specific (for backwards compatibility)
|
|
196
|
+
"get_evm_account",
|
|
197
|
+
"get_cdp_client",
|
|
198
|
+
"get_cdp_network",
|
|
199
|
+
# Web3
|
|
200
|
+
"get_web3_client",
|
|
201
|
+
# Unified wallet functions (recommended)
|
|
202
|
+
"get_wallet_provider",
|
|
203
|
+
"get_wallet_signer",
|
|
204
|
+
]
|
|
@@ -83,6 +83,33 @@ async def get_evm_account(agent: Agent) -> EvmServerAccount:
|
|
|
83
83
|
return account
|
|
84
84
|
|
|
85
85
|
|
|
86
|
+
def get_cdp_network(agent: Agent) -> str:
|
|
87
|
+
if not agent.network_id:
|
|
88
|
+
raise IntentKitAPIError(
|
|
89
|
+
400,
|
|
90
|
+
"BadNetworkID",
|
|
91
|
+
"Your agent network ID is not set. Please set it in the agent config.",
|
|
92
|
+
)
|
|
93
|
+
mapping = {
|
|
94
|
+
"ethereum-mainnet": "ethereum",
|
|
95
|
+
"base-mainnet": "base",
|
|
96
|
+
"arbitrum-mainnet": "arbitrum",
|
|
97
|
+
"optimism-mainnet": "optimism",
|
|
98
|
+
"polygon-mainnet": "polygon",
|
|
99
|
+
"base-sepolia": "base-sepolia",
|
|
100
|
+
}
|
|
101
|
+
if agent.network_id == "solana":
|
|
102
|
+
raise IntentKitAPIError(
|
|
103
|
+
400, "BadNetworkID", "Solana is not supported by CDP EVM."
|
|
104
|
+
)
|
|
105
|
+
cdp_network = mapping.get(agent.network_id)
|
|
106
|
+
if not cdp_network:
|
|
107
|
+
raise IntentKitAPIError(
|
|
108
|
+
400, "BadNetworkID", f"Unsupported network ID: {agent.network_id}"
|
|
109
|
+
)
|
|
110
|
+
return cdp_network
|
|
111
|
+
|
|
112
|
+
|
|
86
113
|
async def get_wallet_provider(agent: Agent) -> CdpEvmWalletProvider:
|
|
87
114
|
_assert_cdp_wallet_provider(agent)
|
|
88
115
|
if not agent.network_id:
|