intentkit 0.8.34.dev2__tar.gz → 0.8.34.dev4__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.34.dev2 → intentkit-0.8.34.dev4}/PKG-INFO +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/__init__.py +1 -1
- {intentkit-0.8.34.dev2/intentkit/utils → intentkit-0.8.34.dev4/intentkit/clients}/s3.py +51 -29
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/config/config.py +8 -6
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/chat.py +2 -2
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/engine.py +11 -3
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/scheduler.py +0 -10
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/db.py +26 -76
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/skills.csv +0 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_animagine_xl.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_arthemy_comics.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_arthemy_real.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_braindance.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_flux_1_dev.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_sdxl.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/dalle_image_generation.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_avatar_generator.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_generation.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_mini_generator.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_to_image.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/venice_audio.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/api.py +1 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_base.py +2 -1
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/x402/__init__.py +0 -3
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/x402/schema.json +10 -15
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/pyproject.toml +1 -1
- intentkit-0.8.34.dev2/intentkit/skills/x402/ask_agent.py +0 -98
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/.gitignore +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/LICENSE +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/LICENSE +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/MANIFEST.in +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/agent.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/api.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/engine.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/graph.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/skill.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/abstracts/twitter.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/clients/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/clients/cdp.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/clients/twitter.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/clients/web3.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/config/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/account_checking.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/agent.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/api.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/asset.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/client.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/credit.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/draft.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/draft_chat.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/manager/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/manager/engine.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/manager/service.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/manager/skills.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/middleware.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/prompt.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/core/statistics.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/agent.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/agent_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/agent_public.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/agent_schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/app_setting.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/chat.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/credit.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/db_mig.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/draft.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/llm.csv +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/llm.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/redis.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/skill.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/team.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/models/user.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/acolyt/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/acolyt/ask.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/acolyt/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/acolyt/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/projects.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/aixbt/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/allora/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/allora/allora.jpeg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/allora/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/allora/price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/allora/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/basename/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/basename/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/basename/basename.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/basename/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/carv.webp +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/fetch_news.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/onchain_query.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/carv/token_info_and_price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/casino.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/deck_draw.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/deck_shuffle.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/dice_roll.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/casino/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cdp/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cdp/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cdp/cdp.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cdp/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/chain_lookup.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/chainlist/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/common/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/common/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/common/common.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/common/current_time.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/common/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/constants.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/api.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dapplooker/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/api.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/config/chains.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_protocol.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/get_pair_info.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/get_token_pairs.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/get_tokens_info.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/search_token.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dexscreener/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/mention.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/stats.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/tokens.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/elfa/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/abi/approval.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/abi/route.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/best_yield.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/enso.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/networks.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/prices.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/route.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/tokens.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/enso/wallet.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc20/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc20/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc20/erc20.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc20/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc721/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc721/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc721/erc721.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/erc721/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/clear.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/crawl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/query.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/scrape.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/firecrawl/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/github.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/github_search.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/github/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/heurist.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/get.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/http.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/post.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/put.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/http/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/lifi.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/token_execute.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/token_quote.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/lifi/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/api.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/fetch_nft_portfolio.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/fetch_solana_portfolio.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/fetch_wallet_portfolio.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/moralis.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/moralis/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/morpho/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/morpho/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/morpho/morpho.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/morpho/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/nation/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/nation/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/nation/nation.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/nation/nft_check.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/nation/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/onchain.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/image_to_text.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/openai.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/constants.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/moralis.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/pyth/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/pyth/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/pyth/pyth.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/pyth/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/skills.toml +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/get_channel.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/get_message.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/schedule_message.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/send_message.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/slack/slack.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/delete_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/fetch_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/insert_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/invoke_function.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/supabase.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/update_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/supabase/upsert_data.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/superfluid/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/superfluid/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/superfluid/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/superfluid/superfluid.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/add_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/delete_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/edit_autonomous_task.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/list_autonomous_tasks.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/read_agent_api_key.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/regenerate_agent_api_key.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/system/system.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/constants.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/moralis.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/token_analytics.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/token_price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/token/token_search.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/follow_user.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/get_mentions.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/get_timeline.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/like_tweet.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/post_tweet.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/reply_tweet.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/retweet.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/search_tweets.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/twitter/twitter.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/unrealspeech/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/unrealspeech/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/input.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/config.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_enhance/image_enhance.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_upscale/image_upscale.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/utils.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/weth/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/weth/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/weth/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/weth/weth.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/wow/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/wow/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/wow/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/wow/wow.svg +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/x402/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/x402/http_request.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/x402/x402.webp +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/README.md +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/base.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/price.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/schema.json +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/swap.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/transfer.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/__init__.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/chain.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/ens.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/error.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/logging.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/random.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/schema.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/slack_alert.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/utils/tx.py +0 -0
- {intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.8.34.
|
|
3
|
+
Version: 0.8.34.dev4
|
|
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
|
|
@@ -13,6 +13,8 @@ import httpx
|
|
|
13
13
|
from botocore.exceptions import ClientError
|
|
14
14
|
from mypy_boto3_s3.client import S3Client
|
|
15
15
|
|
|
16
|
+
from intentkit.config.config import config
|
|
17
|
+
|
|
16
18
|
logger = logging.getLogger(__name__)
|
|
17
19
|
|
|
18
20
|
# Global variables for S3 configuration
|
|
@@ -22,31 +24,47 @@ _prefix: str | None = None
|
|
|
22
24
|
_cdn_url: str | None = None
|
|
23
25
|
|
|
24
26
|
|
|
25
|
-
def
|
|
27
|
+
def get_s3_client() -> S3Client | None:
|
|
26
28
|
"""
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
Args:
|
|
30
|
-
bucket: S3 bucket name
|
|
31
|
-
cdn_url: CDN URL for the S3 bucket
|
|
32
|
-
env: Environment name for the prefix
|
|
33
|
-
|
|
34
|
-
Raises:
|
|
35
|
-
ValueError: If bucket or cdn_url is empty
|
|
29
|
+
Get or initialize S3 client and configuration.
|
|
30
|
+
Returns None if configuration is missing.
|
|
36
31
|
"""
|
|
37
32
|
global _bucket, _client, _prefix, _cdn_url
|
|
38
33
|
|
|
39
|
-
if not
|
|
40
|
-
|
|
41
|
-
if not cdn_url:
|
|
42
|
-
raise ValueError("S3 CDN URL cannot be empty")
|
|
34
|
+
if _client is not None:
|
|
35
|
+
return _client
|
|
43
36
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
37
|
+
if not config.aws_s3_bucket or not config.aws_s3_cdn_url:
|
|
38
|
+
# Only log once or if needed, but here we just return None
|
|
39
|
+
# The calling functions usually log "S3 not initialized"
|
|
40
|
+
return None
|
|
48
41
|
|
|
49
|
-
|
|
42
|
+
_bucket = config.aws_s3_bucket
|
|
43
|
+
_cdn_url = config.aws_s3_cdn_url
|
|
44
|
+
_prefix = f"{config.env}/intentkit/"
|
|
45
|
+
|
|
46
|
+
try:
|
|
47
|
+
if config.aws_s3_endpoint_url:
|
|
48
|
+
_client = cast(
|
|
49
|
+
S3Client,
|
|
50
|
+
boto3.client(
|
|
51
|
+
"s3",
|
|
52
|
+
endpoint_url=config.aws_s3_endpoint_url,
|
|
53
|
+
region_name=config.aws_s3_region_name,
|
|
54
|
+
aws_access_key_id=config.aws_s3_access_key_id,
|
|
55
|
+
aws_secret_access_key=config.aws_s3_secret_access_key,
|
|
56
|
+
),
|
|
57
|
+
)
|
|
58
|
+
logger.info(
|
|
59
|
+
f"S3 initialized with custom endpoint: {config.aws_s3_endpoint_url}, bucket: {_bucket}, prefix: {_prefix}"
|
|
60
|
+
)
|
|
61
|
+
else:
|
|
62
|
+
_client = cast(S3Client, boto3.client("s3"))
|
|
63
|
+
logger.info(f"S3 initialized with bucket: {_bucket}, prefix: {_prefix}")
|
|
64
|
+
return _client
|
|
65
|
+
except Exception as e:
|
|
66
|
+
logger.error(f"Failed to initialize S3 client: {e}")
|
|
67
|
+
return None
|
|
50
68
|
|
|
51
69
|
|
|
52
70
|
async def store_image(url: str, key: str) -> str:
|
|
@@ -64,15 +82,16 @@ async def store_image(url: str, key: str) -> str:
|
|
|
64
82
|
ClientError: If the upload fails
|
|
65
83
|
httpx.HTTPError: If the download fails
|
|
66
84
|
"""
|
|
67
|
-
|
|
85
|
+
client = get_s3_client()
|
|
86
|
+
if not client or not _bucket or not _prefix or not _cdn_url:
|
|
68
87
|
# If S3 is not initialized, log and return the original URL
|
|
69
88
|
logger.info("S3 not initialized. Returning original URL.")
|
|
70
89
|
return url
|
|
71
90
|
|
|
72
91
|
try:
|
|
73
92
|
# Download the image from the URL asynchronously
|
|
74
|
-
async with httpx.AsyncClient() as
|
|
75
|
-
response = await
|
|
93
|
+
async with httpx.AsyncClient() as http_client:
|
|
94
|
+
response = await http_client.get(url, follow_redirects=True)
|
|
76
95
|
response.raise_for_status()
|
|
77
96
|
|
|
78
97
|
# Prepare the S3 key with prefix
|
|
@@ -93,7 +112,7 @@ async def store_image(url: str, key: str) -> str:
|
|
|
93
112
|
content_type = "image/jpeg"
|
|
94
113
|
|
|
95
114
|
# Upload to S3
|
|
96
|
-
|
|
115
|
+
client.upload_fileobj(
|
|
97
116
|
file_obj,
|
|
98
117
|
_bucket,
|
|
99
118
|
prefixed_key,
|
|
@@ -131,7 +150,8 @@ async def store_image_bytes(
|
|
|
131
150
|
ClientError: If the upload fails
|
|
132
151
|
ValueError: If S3 is not initialized or image_bytes is empty
|
|
133
152
|
"""
|
|
134
|
-
|
|
153
|
+
client = get_s3_client()
|
|
154
|
+
if not client or not _bucket or not _prefix or not _cdn_url:
|
|
135
155
|
# If S3 is not initialized, log and return empty string
|
|
136
156
|
logger.info("S3 not initialized. Cannot store image bytes.")
|
|
137
157
|
return ""
|
|
@@ -158,7 +178,7 @@ async def store_image_bytes(
|
|
|
158
178
|
|
|
159
179
|
logger.info("uploading image to s3")
|
|
160
180
|
# Upload to S3
|
|
161
|
-
|
|
181
|
+
client.upload_fileobj(
|
|
162
182
|
file_obj,
|
|
163
183
|
_bucket,
|
|
164
184
|
prefixed_key,
|
|
@@ -189,7 +209,8 @@ async def store_file(
|
|
|
189
209
|
size: int | None = None,
|
|
190
210
|
) -> str:
|
|
191
211
|
"""Store raw file bytes with automatic content type detection."""
|
|
192
|
-
|
|
212
|
+
client = get_s3_client()
|
|
213
|
+
if not client or not _bucket or not _prefix or not _cdn_url:
|
|
193
214
|
logger.info("S3 not initialized. Cannot store file bytes.")
|
|
194
215
|
return ""
|
|
195
216
|
|
|
@@ -220,7 +241,7 @@ async def store_file(
|
|
|
220
241
|
effective_size,
|
|
221
242
|
)
|
|
222
243
|
|
|
223
|
-
|
|
244
|
+
client.upload_fileobj(
|
|
224
245
|
file_obj,
|
|
225
246
|
_bucket,
|
|
226
247
|
prefixed_key,
|
|
@@ -257,7 +278,8 @@ async def store_file_bytes(
|
|
|
257
278
|
ClientError: If the upload fails
|
|
258
279
|
ValueError: If S3 is not initialized, file_bytes is empty, or file exceeds size limit
|
|
259
280
|
"""
|
|
260
|
-
|
|
281
|
+
client = get_s3_client()
|
|
282
|
+
if not client or not _bucket or not _prefix or not _cdn_url:
|
|
261
283
|
logger.info("S3 not initialized. Cannot store file bytes.")
|
|
262
284
|
return ""
|
|
263
285
|
if not file_bytes:
|
|
@@ -303,7 +325,7 @@ async def store_file_bytes(
|
|
|
303
325
|
logger.info(f"Uploading {file_type} to S3 with content type {content_type}")
|
|
304
326
|
|
|
305
327
|
# Upload to S3
|
|
306
|
-
|
|
328
|
+
client.upload_fileobj(
|
|
307
329
|
file_obj,
|
|
308
330
|
_bucket,
|
|
309
331
|
prefixed_key,
|
|
@@ -7,7 +7,6 @@ from dotenv import load_dotenv
|
|
|
7
7
|
|
|
8
8
|
from intentkit.utils.chain import ChainProvider, QuicknodeChainProvider
|
|
9
9
|
from intentkit.utils.logging import setup_logging
|
|
10
|
-
from intentkit.utils.s3 import init_s3
|
|
11
10
|
from intentkit.utils.slack_alert import init_slack
|
|
12
11
|
|
|
13
12
|
SecretsMap = dict[str, str | int]
|
|
@@ -71,9 +70,16 @@ class Config:
|
|
|
71
70
|
self.redis_host: str | None = self.load("REDIS_HOST")
|
|
72
71
|
self.redis_port: int = self.load_int("REDIS_PORT", 6379)
|
|
73
72
|
self.redis_db: int = self.load_int("REDIS_DB", 0)
|
|
74
|
-
# AWS
|
|
73
|
+
# AWS S3
|
|
75
74
|
self.aws_s3_bucket: str | None = self.load("AWS_S3_BUCKET")
|
|
76
75
|
self.aws_s3_cdn_url: str | None = self.load("AWS_S3_CDN_URL")
|
|
76
|
+
# If using custom S3 endpoint
|
|
77
|
+
self.aws_s3_endpoint_url: str | None = self.load("AWS_S3_ENDPOINT_URL")
|
|
78
|
+
self.aws_s3_region_name: str | None = self.load("AWS_S3_REGION_NAME")
|
|
79
|
+
self.aws_s3_access_key_id: str | None = self.load("AWS_S3_ACCESS_KEY_ID")
|
|
80
|
+
self.aws_s3_secret_access_key: str | None = self.load(
|
|
81
|
+
"AWS_S3_SECRET_ACCESS_KEY"
|
|
82
|
+
)
|
|
77
83
|
# Internal API
|
|
78
84
|
self.internal_base_url: str = self.load(
|
|
79
85
|
"INTERNAL_BASE_URL", "http://intent-api"
|
|
@@ -89,7 +95,6 @@ class Config:
|
|
|
89
95
|
self.debug_password: str | None = self.load("DEBUG_PASSWORD")
|
|
90
96
|
# Payment
|
|
91
97
|
self.payment_enabled: bool = self.load("PAYMENT_ENABLED", "false") == "true"
|
|
92
|
-
self.x402_fee_address: str | None = self.load("X402_FEE_ADDRESS")
|
|
93
98
|
# Open API for agent
|
|
94
99
|
self.open_api_base_url: str = self.load(
|
|
95
100
|
"OPEN_API_BASE_URL", "http://localhost:8000"
|
|
@@ -183,9 +188,6 @@ class Config:
|
|
|
183
188
|
# If the slack alert token exists, init it
|
|
184
189
|
if self.slack_alert_token and self.slack_alert_channel:
|
|
185
190
|
init_slack(self.slack_alert_token, self.slack_alert_channel)
|
|
186
|
-
# If the AWS S3 bucket and CDN URL exist, init it
|
|
187
|
-
if self.aws_s3_bucket and self.aws_s3_cdn_url:
|
|
188
|
-
init_s3(self.aws_s3_bucket, self.aws_s3_cdn_url, self.env)
|
|
189
191
|
|
|
190
192
|
@overload
|
|
191
193
|
def load(self, key: str) -> str | None: ... # noqa: F811
|
|
@@ -6,7 +6,7 @@ including clearing thread history using LangGraph's checkpointer.
|
|
|
6
6
|
|
|
7
7
|
import logging
|
|
8
8
|
|
|
9
|
-
from intentkit.models.db import
|
|
9
|
+
from intentkit.models.db import get_checkpointer
|
|
10
10
|
from intentkit.utils.error import IntentKitAPIError
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
@@ -34,7 +34,7 @@ async def clear_thread_memory(agent_id: str, chat_id: str) -> bool:
|
|
|
34
34
|
thread_id = f"{agent_id}-{chat_id}"
|
|
35
35
|
|
|
36
36
|
# Get the LangGraph checkpointer instance
|
|
37
|
-
checkpointer =
|
|
37
|
+
checkpointer = get_checkpointer()
|
|
38
38
|
|
|
39
39
|
# Use the official LangGraph method to delete all thread content
|
|
40
40
|
await checkpointer.adelete_thread(thread_id)
|
|
@@ -26,6 +26,7 @@ from langchain_core.messages import (
|
|
|
26
26
|
HumanMessage,
|
|
27
27
|
)
|
|
28
28
|
from langchain_core.tools import BaseTool
|
|
29
|
+
from langgraph.checkpoint.memory import InMemorySaver
|
|
29
30
|
from langgraph.errors import GraphRecursionError
|
|
30
31
|
from langgraph.graph.state import CompiledStateGraph
|
|
31
32
|
from sqlalchemy import func, update
|
|
@@ -53,7 +54,10 @@ from intentkit.models.chat import (
|
|
|
53
54
|
ChatMessageSkillCall,
|
|
54
55
|
)
|
|
55
56
|
from intentkit.models.credit import CreditAccount, OwnerType
|
|
56
|
-
from intentkit.models.db import
|
|
57
|
+
from intentkit.models.db import (
|
|
58
|
+
get_checkpointer,
|
|
59
|
+
get_session,
|
|
60
|
+
)
|
|
57
61
|
from intentkit.models.llm import LLMModelInfo, create_llm_model
|
|
58
62
|
from intentkit.models.skill import AgentSkillData, ChatSkillData, Skill
|
|
59
63
|
from intentkit.models.user import User
|
|
@@ -121,7 +125,10 @@ async def build_agent(
|
|
|
121
125
|
)
|
|
122
126
|
|
|
123
127
|
# ==== Store buffered conversation history in memory.
|
|
124
|
-
|
|
128
|
+
try:
|
|
129
|
+
checkpointer = get_checkpointer()
|
|
130
|
+
except RuntimeError:
|
|
131
|
+
checkpointer = InMemorySaver()
|
|
125
132
|
|
|
126
133
|
# ==== Load skills
|
|
127
134
|
tools: list[BaseTool | dict] = []
|
|
@@ -192,7 +199,7 @@ async def build_agent(
|
|
|
192
199
|
middleware=middleware,
|
|
193
200
|
state_schema=AgentState,
|
|
194
201
|
context_schema=AgentContext,
|
|
195
|
-
checkpointer=
|
|
202
|
+
checkpointer=checkpointer,
|
|
196
203
|
debug=config.debug_checkpoint,
|
|
197
204
|
name=agent.id,
|
|
198
205
|
)
|
|
@@ -367,6 +374,7 @@ async def stream_agent_raw(
|
|
|
367
374
|
payer = user_message.user_id
|
|
368
375
|
if user_message.author_type in [
|
|
369
376
|
AuthorType.TELEGRAM,
|
|
377
|
+
AuthorType.DISCORD,
|
|
370
378
|
AuthorType.TWITTER,
|
|
371
379
|
AuthorType.API,
|
|
372
380
|
AuthorType.X402,
|
|
@@ -15,7 +15,6 @@ from intentkit.core.agent import (
|
|
|
15
15
|
)
|
|
16
16
|
from intentkit.core.credit import refill_all_free_credits
|
|
17
17
|
from intentkit.models.agent_data import AgentQuota
|
|
18
|
-
from intentkit.models.db import cleanup_checkpoints
|
|
19
18
|
|
|
20
19
|
|
|
21
20
|
def create_scheduler(
|
|
@@ -141,13 +140,4 @@ def create_scheduler(
|
|
|
141
140
|
replace_existing=True,
|
|
142
141
|
)
|
|
143
142
|
|
|
144
|
-
# Clean up old LangGraph checkpoints daily at UTC 2:30
|
|
145
|
-
scheduler.add_job(
|
|
146
|
-
cleanup_checkpoints,
|
|
147
|
-
trigger=CronTrigger(hour=2, minute=30, timezone="UTC"),
|
|
148
|
-
id="cleanup_checkpoints",
|
|
149
|
-
name="Clean up old checkpoints",
|
|
150
|
-
replace_existing=True,
|
|
151
|
-
)
|
|
152
|
-
|
|
153
143
|
return scheduler
|
|
@@ -3,19 +3,17 @@ from contextlib import asynccontextmanager
|
|
|
3
3
|
from typing import Annotated
|
|
4
4
|
from urllib.parse import quote_plus
|
|
5
5
|
|
|
6
|
-
from langgraph.checkpoint.
|
|
7
|
-
from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver
|
|
8
|
-
from langgraph.types import Checkpointer
|
|
6
|
+
from langgraph.checkpoint.postgres.shallow import AsyncShallowPostgresSaver
|
|
9
7
|
from psycopg import OperationalError
|
|
10
8
|
from psycopg_pool import AsyncConnectionPool
|
|
11
9
|
from pydantic import Field
|
|
12
|
-
from sqlalchemy import text
|
|
13
10
|
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engine
|
|
14
11
|
|
|
15
12
|
from intentkit.models.db_mig import safe_migrate
|
|
16
13
|
|
|
17
14
|
engine: AsyncEngine | None = None
|
|
18
|
-
|
|
15
|
+
_connection_pool: AsyncConnectionPool | None = None
|
|
16
|
+
_checkpointer: AsyncShallowPostgresSaver | None = None
|
|
19
17
|
|
|
20
18
|
|
|
21
19
|
async def check_connection(conn):
|
|
@@ -54,9 +52,9 @@ async def init_db(
|
|
|
54
52
|
auto_migrate: Whether to run migrations automatically (default: True)
|
|
55
53
|
pool_size: Database connection pool size (default: 3)
|
|
56
54
|
"""
|
|
57
|
-
global engine,
|
|
58
|
-
# Initialize psycopg pool and
|
|
59
|
-
if
|
|
55
|
+
global engine, _connection_pool, _checkpointer
|
|
56
|
+
# Initialize psycopg pool and AsyncShallowPostgresSaver if not already initialized
|
|
57
|
+
if _connection_pool is None:
|
|
60
58
|
if host:
|
|
61
59
|
conn_string = (
|
|
62
60
|
f"postgresql://{username}:{quote_plus(password)}@{host}:{port}/{dbname}"
|
|
@@ -72,13 +70,17 @@ async def init_db(
|
|
|
72
70
|
# Set connection max lifetime to prevent stale connections
|
|
73
71
|
max_lifetime=3600, # 1 hour
|
|
74
72
|
)
|
|
75
|
-
|
|
73
|
+
_connection_pool = pool
|
|
74
|
+
_checkpointer = AsyncShallowPostgresSaver(pool)
|
|
76
75
|
if auto_migrate:
|
|
77
76
|
# Migrate can not use pool, so we start from scratch
|
|
78
|
-
async with
|
|
77
|
+
async with AsyncShallowPostgresSaver.from_conn_string(
|
|
78
|
+
conn_string
|
|
79
|
+
) as saver:
|
|
79
80
|
await saver.setup()
|
|
80
81
|
else:
|
|
81
|
-
|
|
82
|
+
# For in-memory, we don't need a pool, but we need to handle it if requested
|
|
83
|
+
pass
|
|
82
84
|
# Initialize SQLAlchemy engine with pool settings
|
|
83
85
|
if engine is None:
|
|
84
86
|
if host:
|
|
@@ -141,75 +143,23 @@ def get_engine() -> AsyncEngine:
|
|
|
141
143
|
return engine
|
|
142
144
|
|
|
143
145
|
|
|
144
|
-
def
|
|
145
|
-
"""Get the
|
|
146
|
+
def get_connection_pool() -> AsyncConnectionPool:
|
|
147
|
+
"""Get the AsyncConnectionPool instance.
|
|
146
148
|
|
|
147
149
|
Returns:
|
|
148
|
-
|
|
150
|
+
AsyncConnectionPool: The AsyncConnectionPool instance
|
|
149
151
|
"""
|
|
150
|
-
if
|
|
152
|
+
if _connection_pool is None:
|
|
151
153
|
raise RuntimeError("Database pool not initialized. Call init_db first.")
|
|
152
|
-
return
|
|
154
|
+
return _connection_pool
|
|
153
155
|
|
|
154
156
|
|
|
155
|
-
|
|
156
|
-
"""
|
|
157
|
-
Clean up old checkpoints, writes, and blobs, keeping only the latest one for each thread.
|
|
158
|
-
This helps reduce database size while maintaining the current state of agents.
|
|
159
|
-
"""
|
|
160
|
-
assert engine is not None, "Database engine not initialized. Call init_db first."
|
|
161
|
-
|
|
162
|
-
# SQL to keep only the latest checkpoint for each thread
|
|
163
|
-
# We assume checkpoint_id is sortable (ULID/UUIDv7 style which LangGraph uses)
|
|
164
|
-
cleanup_checkpoints_sql = text("""
|
|
165
|
-
DELETE FROM checkpoints
|
|
166
|
-
WHERE (thread_id, checkpoint_ns, checkpoint_id) NOT IN (
|
|
167
|
-
SELECT DISTINCT ON (thread_id, checkpoint_ns)
|
|
168
|
-
thread_id, checkpoint_ns, checkpoint_id
|
|
169
|
-
FROM checkpoints
|
|
170
|
-
ORDER BY thread_id, checkpoint_ns, checkpoint_id DESC
|
|
171
|
-
);
|
|
172
|
-
""")
|
|
173
|
-
|
|
174
|
-
# SQL to clean up writes that reference deleted checkpoints
|
|
175
|
-
cleanup_writes_sql = text("""
|
|
176
|
-
DELETE FROM checkpoint_writes
|
|
177
|
-
WHERE (thread_id, checkpoint_ns, checkpoint_id) NOT IN (
|
|
178
|
-
SELECT thread_id, checkpoint_ns, checkpoint_id
|
|
179
|
-
FROM checkpoints
|
|
180
|
-
);
|
|
181
|
-
""")
|
|
182
|
-
|
|
183
|
-
# SQL to clean up blobs that are not referenced by any remaining checkpoint
|
|
184
|
-
# Optimized using NOT EXISTS instead of NOT IN for better performance
|
|
185
|
-
# Using CTE to materialize active channel versions first
|
|
186
|
-
cleanup_blobs_sql = text("""
|
|
187
|
-
WITH active_versions AS (
|
|
188
|
-
SELECT DISTINCT
|
|
189
|
-
thread_id,
|
|
190
|
-
checkpoint_ns,
|
|
191
|
-
key as channel,
|
|
192
|
-
value as version
|
|
193
|
-
FROM checkpoints,
|
|
194
|
-
jsonb_each_text(checkpoint -> 'channel_versions')
|
|
195
|
-
)
|
|
196
|
-
DELETE FROM checkpoint_blobs cb
|
|
197
|
-
WHERE NOT EXISTS (
|
|
198
|
-
SELECT 1
|
|
199
|
-
FROM active_versions av
|
|
200
|
-
WHERE av.thread_id = cb.thread_id
|
|
201
|
-
AND av.checkpoint_ns = cb.checkpoint_ns
|
|
202
|
-
AND av.channel = cb.channel
|
|
203
|
-
AND av.version = cb.version
|
|
204
|
-
);
|
|
205
|
-
""")
|
|
157
|
+
def get_checkpointer() -> AsyncShallowPostgresSaver:
|
|
158
|
+
"""Get the AsyncShallowPostgresSaver instance.
|
|
206
159
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
except Exception as e:
|
|
214
|
-
await session.rollback()
|
|
215
|
-
raise e
|
|
160
|
+
Returns:
|
|
161
|
+
AsyncShallowPostgresSaver: The AsyncShallowPostgresSaver instance
|
|
162
|
+
"""
|
|
163
|
+
if _checkpointer is None:
|
|
164
|
+
raise RuntimeError("Database pool not initialized. Call init_db first.")
|
|
165
|
+
return _checkpointer
|
|
@@ -167,7 +167,6 @@ firecrawl,firecrawl_clear_indexed_content,firecrawl_clear_indexed_content,TRUE,1
|
|
|
167
167
|
xmtp,xmtp_transfer,xmtp_transfer,TRUE,1,5,5,,,0x445750026A4a1906b61302442E085f9cbAfe206a
|
|
168
168
|
xmtp,xmtp_swap,xmtp_swap,TRUE,1,5,5,,,0x445750026A4a1906b61302442E085f9cbAfe206a
|
|
169
169
|
xmtp,xmtp_get_swap_price,xmtp_get_swap_price,TRUE,1,5,5,,,0x445750026A4a1906b61302442E085f9cbAfe206a
|
|
170
|
-
x402,x402_ask_agent,x402_ask_agent,TRUE,1,1,1,,,0x445750026A4a1906b61302442E085f9cbAfe206a
|
|
171
170
|
x402,x402_http_request,x402_http_request,TRUE,1,1,1,,,0x445750026A4a1906b61302442E085f9cbAfe206a
|
|
172
171
|
casino,deck_shuffle,casino_deck_shuffle,true,1,5,5,,,0x3cdd051eec909f94965f9c1c657f5b70a172b2c0
|
|
173
172
|
casino,deck_draw,casino_deck_draw,true,1,5,5,,,0x3cdd051eec909f94965f9c1c657f5b70a172b2c0
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/heurist/image_generation_sdxl.py
RENAMED
|
@@ -4,9 +4,9 @@ import httpx
|
|
|
4
4
|
from epyxid import XID
|
|
5
5
|
from pydantic import BaseModel, Field
|
|
6
6
|
|
|
7
|
+
from intentkit.clients.s3 import store_image
|
|
7
8
|
from intentkit.config.config import config
|
|
8
9
|
from intentkit.skills.heurist.base import HeuristBaseTool
|
|
9
|
-
from intentkit.utils.s3 import store_image
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger(__name__)
|
|
12
12
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/dalle_image_generation.py
RENAMED
|
@@ -6,8 +6,8 @@ import openai
|
|
|
6
6
|
from epyxid import XID
|
|
7
7
|
from pydantic import BaseModel, Field
|
|
8
8
|
|
|
9
|
+
from intentkit.clients.s3 import store_image
|
|
9
10
|
from intentkit.skills.openai.base import OpenAIBaseTool
|
|
10
|
-
from intentkit.utils.s3 import store_image
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
13
13
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_avatar_generator.py
RENAMED
|
@@ -7,8 +7,8 @@ import openai
|
|
|
7
7
|
from epyxid import XID
|
|
8
8
|
from pydantic import BaseModel, Field
|
|
9
9
|
|
|
10
|
+
from intentkit.clients.s3 import store_image_bytes
|
|
10
11
|
from intentkit.skills.openai.base import OpenAIBaseTool
|
|
11
|
-
from intentkit.utils.s3 import store_image_bytes
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_generation.py
RENAMED
|
@@ -8,8 +8,8 @@ import openai
|
|
|
8
8
|
from epyxid import XID
|
|
9
9
|
from pydantic import BaseModel, Field
|
|
10
10
|
|
|
11
|
+
from intentkit.clients.s3 import store_image_bytes
|
|
11
12
|
from intentkit.skills.openai.base import OpenAIBaseTool
|
|
12
|
-
from intentkit.utils.s3 import store_image_bytes
|
|
13
13
|
|
|
14
14
|
logger = logging.getLogger(__name__)
|
|
15
15
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_mini_generator.py
RENAMED
|
@@ -8,9 +8,9 @@ import openai
|
|
|
8
8
|
from epyxid import XID
|
|
9
9
|
from pydantic import BaseModel
|
|
10
10
|
|
|
11
|
+
from intentkit.clients.s3 import store_image_bytes
|
|
11
12
|
from intentkit.skills.openai.base import OpenAIBaseTool
|
|
12
13
|
from intentkit.skills.openai.gpt_image_generation import GPTImageGenerationInput
|
|
13
|
-
from intentkit.utils.s3 import store_image_bytes
|
|
14
14
|
|
|
15
15
|
logger = logging.getLogger(__name__)
|
|
16
16
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/openai/gpt_image_to_image.py
RENAMED
|
@@ -10,8 +10,8 @@ import openai
|
|
|
10
10
|
from epyxid import XID
|
|
11
11
|
from pydantic import BaseModel, Field
|
|
12
12
|
|
|
13
|
+
from intentkit.clients.s3 import store_image_bytes
|
|
13
14
|
from intentkit.skills.openai.base import OpenAIBaseTool
|
|
14
|
-
from intentkit.utils.s3 import store_image_bytes
|
|
15
15
|
|
|
16
16
|
logger = logging.getLogger(__name__)
|
|
17
17
|
|
{intentkit-0.8.34.dev2 → intentkit-0.8.34.dev4}/intentkit/skills/venice_audio/venice_audio.py
RENAMED
|
@@ -6,9 +6,9 @@ from typing import Any
|
|
|
6
6
|
import httpx
|
|
7
7
|
from pydantic import BaseModel
|
|
8
8
|
|
|
9
|
+
from intentkit.clients.s3 import store_file
|
|
9
10
|
from intentkit.skills.venice_audio.base import VeniceAudioBaseTool
|
|
10
11
|
from intentkit.skills.venice_audio.input import AllowedAudioFormat, VeniceAudioInput
|
|
11
|
-
from intentkit.utils.s3 import store_file
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
@@ -5,13 +5,14 @@ from typing import Any, Literal
|
|
|
5
5
|
|
|
6
6
|
from pydantic import BaseModel, Field
|
|
7
7
|
|
|
8
|
+
from intentkit.clients.s3 import store_image_bytes
|
|
9
|
+
|
|
8
10
|
# Import the generic base
|
|
9
11
|
from intentkit.skills.base import ToolException
|
|
10
12
|
from intentkit.skills.venice_image.base import VeniceImageBaseTool
|
|
11
13
|
from intentkit.skills.venice_image.image_generation.image_generation_input import (
|
|
12
14
|
VeniceImageGenerationInput,
|
|
13
15
|
)
|
|
14
|
-
from intentkit.utils.s3 import store_image_bytes
|
|
15
16
|
|
|
16
17
|
logger = logging.getLogger(__name__)
|
|
17
18
|
|