intentkit 0.7.1.dev1__tar.gz → 0.7.1.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of intentkit might be problematic. Click here for more details.
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/PKG-INFO +1 -1
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/__init__.py +1 -1
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/credit.py +1 -1
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/credit.py +210 -7
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/db.py +17 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/llm.py +5 -4
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/user.py +8 -3
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/pyproject.toml +1 -1
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/.gitignore +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/LICENSE +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/MANIFEST.in +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/agent.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/engine.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/graph.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/skill.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/abstracts/twitter.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/clients/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/clients/cdp.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/clients/twitter.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/clients/web3.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/config/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/config/config.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/agent.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/chat.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/client.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/engine.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/node.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/prompt.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/core/skill.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/agent.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/agent_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/agent_schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/app_setting.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/chat.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/conversation.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/db_mig.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/generator.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/redis.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/models/skill.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/acolyt/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/acolyt/ask.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/acolyt/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/acolyt/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/projects.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/aixbt/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/allora/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/allora/allora.jpeg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/allora/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/allora/price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/allora/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/carv.webp +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/fetch_news.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/onchain_query.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/carv/token_info_and_price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/casino.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/deck_draw.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/deck_shuffle.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/dice_roll.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/casino/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/cdp.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/get_balance.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cdp/swap.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/chain_lookup.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/chainlist/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/common/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/common/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/common/common.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/common/current_time.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/common/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/constants.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dapplooker/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/config/chains.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_protocol.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/get_pair_info.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/get_token_pairs.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/get_tokens_info.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/search_token.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dexscreener/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/mention.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/stats.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/tokens.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/elfa/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/abi/approval.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/abi/route.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/best_yield.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/enso.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/networks.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/prices.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/route.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/tokens.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/enso/wallet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/clear.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/crawl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/firecrawl.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/query.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/scrape.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/firecrawl/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/github.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/github_search.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/github/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/heurist.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_animagine_xl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_arthemy_comics.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_arthemy_real.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_braindance.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_flux_1_dev.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/image_generation_sdxl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/heurist/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/get.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/http.svg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/post.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/put.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/http/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/lifi.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/token_execute.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/token_quote.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/lifi/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/fetch_nft_portfolio.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/fetch_solana_portfolio.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/fetch_wallet_portfolio.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/moralis.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/tests/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/moralis/tests/test_wallet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/nation/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/nation/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/nation/nation.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/nation/nft_check.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/nation/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/dalle_image_generation.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/gpt_image_generation.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/gpt_image_to_image.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/image_to_text.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/openai.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/openai/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/constants.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/moralis.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/skills.toml +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/get_channel.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/get_message.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/schedule_message.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/send_message.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/slack/slack.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/delete_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/fetch_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/insert_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/invoke_function.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/supabase.svg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/update_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/supabase/upsert_data.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/add_autonomous_task.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/delete_autonomous_task.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/edit_autonomous_task.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/list_autonomous_tasks.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/read_agent_api_key.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/regenerate_agent_api_key.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/system/system.svg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/constants.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/moralis.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/token_analytics.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/token_price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/token/token_search.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/follow_user.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/get_mentions.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/get_timeline.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/like_tweet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/post_tweet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/reply_tweet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/retweet.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/search_tweets.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/twitter/twitter.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/unrealspeech/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/unrealspeech/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/input.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/venice_audio.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/api.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/config.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_enhance/image_enhance.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_upscale/image_upscale.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/utils.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/README.md +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/base.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/price.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/schema.json +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/swap.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/transfer.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/skills/xmtp/xmtp.png +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/__init__.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/chain.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/error.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/logging.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/random.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/s3.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/slack_alert.py +0 -0
- {intentkit-0.7.1.dev1 → intentkit-0.7.1.dev3}/utils/tx.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.7.1.
|
|
3
|
+
Version: 0.7.1.dev3
|
|
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
|
|
@@ -1562,7 +1562,7 @@ async def refill_free_credits_for_account(
|
|
|
1562
1562
|
# If adding refill_amount would exceed free_quota, only add what's needed to reach free_quota
|
|
1563
1563
|
amount_to_add = min(
|
|
1564
1564
|
account.refill_amount, account.free_quota - account.free_credits
|
|
1565
|
-
)
|
|
1565
|
+
).quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
1566
1566
|
|
|
1567
1567
|
if amount_to_add <= Decimal("0"):
|
|
1568
1568
|
return # Nothing to add
|
|
@@ -26,6 +26,9 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
26
26
|
|
|
27
27
|
logger = logging.getLogger(__name__)
|
|
28
28
|
|
|
29
|
+
# Precision constant for 4 decimal places
|
|
30
|
+
FOURPLACES = Decimal("0.0001")
|
|
31
|
+
|
|
29
32
|
|
|
30
33
|
class CreditType(str, Enum):
|
|
31
34
|
"""Credit type is used in db column names, do not change it."""
|
|
@@ -114,6 +117,47 @@ class CreditAccountTable(Base):
|
|
|
114
117
|
String,
|
|
115
118
|
nullable=True,
|
|
116
119
|
)
|
|
120
|
+
# Total statistics fields
|
|
121
|
+
total_income = Column(
|
|
122
|
+
Numeric(22, 4),
|
|
123
|
+
default=0,
|
|
124
|
+
nullable=False,
|
|
125
|
+
)
|
|
126
|
+
total_free_income = Column(
|
|
127
|
+
Numeric(22, 4),
|
|
128
|
+
default=0,
|
|
129
|
+
nullable=False,
|
|
130
|
+
)
|
|
131
|
+
total_reward_income = Column(
|
|
132
|
+
Numeric(22, 4),
|
|
133
|
+
default=0,
|
|
134
|
+
nullable=False,
|
|
135
|
+
)
|
|
136
|
+
total_permanent_income = Column(
|
|
137
|
+
Numeric(22, 4),
|
|
138
|
+
default=0,
|
|
139
|
+
nullable=False,
|
|
140
|
+
)
|
|
141
|
+
total_expense = Column(
|
|
142
|
+
Numeric(22, 4),
|
|
143
|
+
default=0,
|
|
144
|
+
nullable=False,
|
|
145
|
+
)
|
|
146
|
+
total_free_expense = Column(
|
|
147
|
+
Numeric(22, 4),
|
|
148
|
+
default=0,
|
|
149
|
+
nullable=False,
|
|
150
|
+
)
|
|
151
|
+
total_reward_expense = Column(
|
|
152
|
+
Numeric(22, 4),
|
|
153
|
+
default=0,
|
|
154
|
+
nullable=False,
|
|
155
|
+
)
|
|
156
|
+
total_permanent_expense = Column(
|
|
157
|
+
Numeric(22, 4),
|
|
158
|
+
default=0,
|
|
159
|
+
nullable=False,
|
|
160
|
+
)
|
|
117
161
|
created_at = Column(
|
|
118
162
|
DateTime(timezone=True),
|
|
119
163
|
nullable=False,
|
|
@@ -186,6 +230,63 @@ class CreditAccount(BaseModel):
|
|
|
186
230
|
Optional[str],
|
|
187
231
|
Field(None, description="ID of the last event that modified this account"),
|
|
188
232
|
]
|
|
233
|
+
# Total statistics fields
|
|
234
|
+
total_income: Annotated[
|
|
235
|
+
Decimal,
|
|
236
|
+
Field(
|
|
237
|
+
default=Decimal("0"),
|
|
238
|
+
description="Total income from all credit transactions",
|
|
239
|
+
),
|
|
240
|
+
]
|
|
241
|
+
total_free_income: Annotated[
|
|
242
|
+
Decimal,
|
|
243
|
+
Field(
|
|
244
|
+
default=Decimal("0"),
|
|
245
|
+
description="Total income from free credit transactions",
|
|
246
|
+
),
|
|
247
|
+
]
|
|
248
|
+
total_reward_income: Annotated[
|
|
249
|
+
Decimal,
|
|
250
|
+
Field(
|
|
251
|
+
default=Decimal("0"),
|
|
252
|
+
description="Total income from reward credit transactions",
|
|
253
|
+
),
|
|
254
|
+
]
|
|
255
|
+
total_permanent_income: Annotated[
|
|
256
|
+
Decimal,
|
|
257
|
+
Field(
|
|
258
|
+
default=Decimal("0"),
|
|
259
|
+
description="Total income from permanent credit transactions",
|
|
260
|
+
),
|
|
261
|
+
]
|
|
262
|
+
total_expense: Annotated[
|
|
263
|
+
Decimal,
|
|
264
|
+
Field(
|
|
265
|
+
default=Decimal("0"),
|
|
266
|
+
description="Total expense from all credit transactions",
|
|
267
|
+
),
|
|
268
|
+
]
|
|
269
|
+
total_free_expense: Annotated[
|
|
270
|
+
Decimal,
|
|
271
|
+
Field(
|
|
272
|
+
default=Decimal("0"),
|
|
273
|
+
description="Total expense from free credit transactions",
|
|
274
|
+
),
|
|
275
|
+
]
|
|
276
|
+
total_reward_expense: Annotated[
|
|
277
|
+
Decimal,
|
|
278
|
+
Field(
|
|
279
|
+
default=Decimal("0"),
|
|
280
|
+
description="Total expense from reward credit transactions",
|
|
281
|
+
),
|
|
282
|
+
]
|
|
283
|
+
total_permanent_expense: Annotated[
|
|
284
|
+
Decimal,
|
|
285
|
+
Field(
|
|
286
|
+
default=Decimal("0"),
|
|
287
|
+
description="Total expense from permanent credit transactions",
|
|
288
|
+
),
|
|
289
|
+
]
|
|
189
290
|
created_at: Annotated[
|
|
190
291
|
datetime, Field(description="Timestamp when this account was created")
|
|
191
292
|
]
|
|
@@ -194,7 +295,19 @@ class CreditAccount(BaseModel):
|
|
|
194
295
|
]
|
|
195
296
|
|
|
196
297
|
@field_validator(
|
|
197
|
-
"free_quota",
|
|
298
|
+
"free_quota",
|
|
299
|
+
"refill_amount",
|
|
300
|
+
"free_credits",
|
|
301
|
+
"reward_credits",
|
|
302
|
+
"credits",
|
|
303
|
+
"total_income",
|
|
304
|
+
"total_free_income",
|
|
305
|
+
"total_reward_income",
|
|
306
|
+
"total_permanent_income",
|
|
307
|
+
"total_expense",
|
|
308
|
+
"total_free_expense",
|
|
309
|
+
"total_reward_expense",
|
|
310
|
+
"total_permanent_expense",
|
|
198
311
|
)
|
|
199
312
|
@classmethod
|
|
200
313
|
def round_decimal(cls, v: Any) -> Decimal:
|
|
@@ -300,13 +413,32 @@ class CreditAccount(BaseModel):
|
|
|
300
413
|
# check first, create if not exists
|
|
301
414
|
await cls.get_or_create_in_session(session, owner_type, owner_id)
|
|
302
415
|
|
|
416
|
+
# Quantize the amount to ensure proper precision
|
|
417
|
+
quantized_amount = amount.quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
303
418
|
values_dict = {
|
|
304
|
-
credit_type.value: getattr(CreditAccountTable, credit_type.value)
|
|
419
|
+
credit_type.value: getattr(CreditAccountTable, credit_type.value)
|
|
420
|
+
- quantized_amount,
|
|
305
421
|
"expense_at": datetime.now(timezone.utc),
|
|
422
|
+
# Update total expense statistics
|
|
423
|
+
"total_expense": CreditAccountTable.total_expense + quantized_amount,
|
|
306
424
|
}
|
|
307
425
|
if event_id:
|
|
308
426
|
values_dict["last_event_id"] = event_id
|
|
309
427
|
|
|
428
|
+
# Update corresponding statistics fields based on credit type
|
|
429
|
+
if credit_type == CreditType.FREE:
|
|
430
|
+
values_dict["total_free_expense"] = (
|
|
431
|
+
CreditAccountTable.total_free_expense + quantized_amount
|
|
432
|
+
)
|
|
433
|
+
elif credit_type == CreditType.REWARD:
|
|
434
|
+
values_dict["total_reward_expense"] = (
|
|
435
|
+
CreditAccountTable.total_reward_expense + quantized_amount
|
|
436
|
+
)
|
|
437
|
+
elif credit_type == CreditType.PERMANENT:
|
|
438
|
+
values_dict["total_permanent_expense"] = (
|
|
439
|
+
CreditAccountTable.total_permanent_expense + quantized_amount
|
|
440
|
+
)
|
|
441
|
+
|
|
310
442
|
stmt = (
|
|
311
443
|
update(CreditAccountTable)
|
|
312
444
|
.where(
|
|
@@ -348,14 +480,18 @@ class CreditAccount(BaseModel):
|
|
|
348
480
|
else:
|
|
349
481
|
if account.free_credits > 0:
|
|
350
482
|
details[CreditType.FREE] = account.free_credits
|
|
351
|
-
amount_left
|
|
483
|
+
amount_left = (amount_left - account.free_credits).quantize(
|
|
484
|
+
FOURPLACES, rounding=ROUND_HALF_UP
|
|
485
|
+
)
|
|
352
486
|
if amount_left <= account.reward_credits:
|
|
353
487
|
details[CreditType.REWARD] = amount_left
|
|
354
488
|
amount_left = Decimal("0")
|
|
355
489
|
else:
|
|
356
490
|
if account.reward_credits > 0:
|
|
357
491
|
details[CreditType.REWARD] = account.reward_credits
|
|
358
|
-
amount_left
|
|
492
|
+
amount_left = (amount_left - account.reward_credits).quantize(
|
|
493
|
+
FOURPLACES, rounding=ROUND_HALF_UP
|
|
494
|
+
)
|
|
359
495
|
details[CreditType.PERMANENT] = amount_left
|
|
360
496
|
|
|
361
497
|
# Create values dict based on what's in details, defaulting to 0 for missing keys
|
|
@@ -365,14 +501,41 @@ class CreditAccount(BaseModel):
|
|
|
365
501
|
if event_id:
|
|
366
502
|
values_dict["last_event_id"] = event_id
|
|
367
503
|
|
|
504
|
+
# Calculate total expense for statistics
|
|
505
|
+
total_expense_amount = Decimal("0")
|
|
506
|
+
|
|
368
507
|
# Add credit type values only if they exist in details
|
|
369
508
|
for credit_type in [CreditType.FREE, CreditType.REWARD, CreditType.PERMANENT]:
|
|
370
509
|
if credit_type in details:
|
|
510
|
+
# Quantize the amount to ensure proper precision
|
|
511
|
+
quantized_amount = details[credit_type].quantize(
|
|
512
|
+
FOURPLACES, rounding=ROUND_HALF_UP
|
|
513
|
+
)
|
|
371
514
|
values_dict[credit_type.value] = (
|
|
372
|
-
getattr(CreditAccountTable, credit_type.value)
|
|
373
|
-
- details[credit_type]
|
|
515
|
+
getattr(CreditAccountTable, credit_type.value) - quantized_amount
|
|
374
516
|
)
|
|
375
517
|
|
|
518
|
+
# Update corresponding statistics fields
|
|
519
|
+
total_expense_amount += quantized_amount
|
|
520
|
+
if credit_type == CreditType.FREE:
|
|
521
|
+
values_dict["total_free_expense"] = (
|
|
522
|
+
CreditAccountTable.total_free_expense + quantized_amount
|
|
523
|
+
)
|
|
524
|
+
elif credit_type == CreditType.REWARD:
|
|
525
|
+
values_dict["total_reward_expense"] = (
|
|
526
|
+
CreditAccountTable.total_reward_expense + quantized_amount
|
|
527
|
+
)
|
|
528
|
+
elif credit_type == CreditType.PERMANENT:
|
|
529
|
+
values_dict["total_permanent_expense"] = (
|
|
530
|
+
CreditAccountTable.total_permanent_expense + quantized_amount
|
|
531
|
+
)
|
|
532
|
+
|
|
533
|
+
# Update total expense if there was any expense
|
|
534
|
+
if total_expense_amount > 0:
|
|
535
|
+
values_dict["total_expense"] = (
|
|
536
|
+
CreditAccountTable.total_expense + total_expense_amount
|
|
537
|
+
)
|
|
538
|
+
|
|
376
539
|
stmt = (
|
|
377
540
|
update(CreditAccountTable)
|
|
378
541
|
.where(
|
|
@@ -416,13 +579,39 @@ class CreditAccount(BaseModel):
|
|
|
416
579
|
if event_id:
|
|
417
580
|
values_dict["last_event_id"] = event_id
|
|
418
581
|
|
|
582
|
+
# Calculate total income for statistics
|
|
583
|
+
total_income_amount = Decimal("0")
|
|
584
|
+
|
|
419
585
|
# Add credit type values based on amount_details
|
|
420
586
|
for credit_type, amount in amount_details.items():
|
|
421
587
|
if amount > 0:
|
|
588
|
+
# Quantize the amount to ensure 4 decimal places precision
|
|
589
|
+
quantized_amount = amount.quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
422
590
|
values_dict[credit_type.value] = (
|
|
423
|
-
getattr(CreditAccountTable, credit_type.value) +
|
|
591
|
+
getattr(CreditAccountTable, credit_type.value) + quantized_amount
|
|
424
592
|
)
|
|
425
593
|
|
|
594
|
+
# Update corresponding statistics fields
|
|
595
|
+
total_income_amount += quantized_amount
|
|
596
|
+
if credit_type == CreditType.FREE:
|
|
597
|
+
values_dict["total_free_income"] = (
|
|
598
|
+
CreditAccountTable.total_free_income + quantized_amount
|
|
599
|
+
)
|
|
600
|
+
elif credit_type == CreditType.REWARD:
|
|
601
|
+
values_dict["total_reward_income"] = (
|
|
602
|
+
CreditAccountTable.total_reward_income + quantized_amount
|
|
603
|
+
)
|
|
604
|
+
elif credit_type == CreditType.PERMANENT:
|
|
605
|
+
values_dict["total_permanent_income"] = (
|
|
606
|
+
CreditAccountTable.total_permanent_income + quantized_amount
|
|
607
|
+
)
|
|
608
|
+
|
|
609
|
+
# Update total income if there was any income
|
|
610
|
+
if total_income_amount > 0:
|
|
611
|
+
values_dict["total_income"] = (
|
|
612
|
+
CreditAccountTable.total_income + total_income_amount
|
|
613
|
+
)
|
|
614
|
+
|
|
426
615
|
stmt = (
|
|
427
616
|
update(CreditAccountTable)
|
|
428
617
|
.where(
|
|
@@ -487,6 +676,16 @@ class CreditAccount(BaseModel):
|
|
|
487
676
|
income_at=datetime.now(timezone.utc),
|
|
488
677
|
expense_at=None,
|
|
489
678
|
last_event_id=event_id if owner_type == OwnerType.USER else None,
|
|
679
|
+
# Initialize new statistics fields
|
|
680
|
+
# For USER accounts, initial free_quota counts as income
|
|
681
|
+
total_income=free_quota,
|
|
682
|
+
total_free_income=free_quota,
|
|
683
|
+
total_reward_income=0.0,
|
|
684
|
+
total_permanent_income=0.0,
|
|
685
|
+
total_expense=0.0,
|
|
686
|
+
total_free_expense=0.0,
|
|
687
|
+
total_reward_expense=0.0,
|
|
688
|
+
total_permanent_expense=0.0,
|
|
490
689
|
)
|
|
491
690
|
# Platform virtual accounts have fixed IDs, same as owner_id
|
|
492
691
|
if owner_type == OwnerType.PLATFORM:
|
|
@@ -621,6 +820,10 @@ class CreditAccount(BaseModel):
|
|
|
621
820
|
if not note:
|
|
622
821
|
raise ValueError("Quota update requires a note explaining the reason")
|
|
623
822
|
|
|
823
|
+
# Quantize values to ensure proper precision (4 decimal places)
|
|
824
|
+
free_quota = free_quota.quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
825
|
+
refill_amount = refill_amount.quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
826
|
+
|
|
624
827
|
# Update the free_quota field
|
|
625
828
|
stmt = (
|
|
626
829
|
update(CreditAccountTable)
|
|
@@ -6,6 +6,7 @@ from intentkit.models.db_mig import safe_migrate
|
|
|
6
6
|
from langgraph.checkpoint.memory import InMemorySaver
|
|
7
7
|
from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver
|
|
8
8
|
from langgraph.types import Checkpointer
|
|
9
|
+
from psycopg import OperationalError
|
|
9
10
|
from psycopg_pool import AsyncConnectionPool
|
|
10
11
|
from pydantic import Field
|
|
11
12
|
from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession, create_async_engine
|
|
@@ -14,6 +15,18 @@ engine = None
|
|
|
14
15
|
_langgraph_checkpointer: Optional[Checkpointer] = None
|
|
15
16
|
|
|
16
17
|
|
|
18
|
+
async def check_connection(conn):
|
|
19
|
+
"""
|
|
20
|
+
Pre-ping function to validate connection health before returning to application.
|
|
21
|
+
This helps handle database restarts and failovers gracefully.
|
|
22
|
+
"""
|
|
23
|
+
try:
|
|
24
|
+
await conn.execute("SELECT 1")
|
|
25
|
+
except OperationalError:
|
|
26
|
+
# Re-raise the exception to let the connection pool know this connection is broken
|
|
27
|
+
raise
|
|
28
|
+
|
|
29
|
+
|
|
17
30
|
async def init_db(
|
|
18
31
|
host: Optional[str],
|
|
19
32
|
username: Optional[str],
|
|
@@ -51,6 +64,10 @@ async def init_db(
|
|
|
51
64
|
max_size=pool_size * 2,
|
|
52
65
|
timeout=60,
|
|
53
66
|
max_idle=30 * 60,
|
|
67
|
+
# Add health check function to handle database restarts
|
|
68
|
+
check=check_connection,
|
|
69
|
+
# Set connection max lifetime to prevent stale connections
|
|
70
|
+
max_lifetime=3600, # 1 hour
|
|
54
71
|
)
|
|
55
72
|
_langgraph_checkpointer = AsyncPostgresSaver(pool)
|
|
56
73
|
if auto_migrate:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import logging
|
|
3
3
|
from datetime import datetime, timezone
|
|
4
|
-
from decimal import Decimal
|
|
4
|
+
from decimal import ROUND_HALF_UP, Decimal
|
|
5
5
|
from enum import Enum
|
|
6
6
|
from typing import Annotated, Any, Optional
|
|
7
7
|
|
|
@@ -17,6 +17,7 @@ from sqlalchemy import Boolean, Column, DateTime, Integer, Numeric, String, func
|
|
|
17
17
|
logger = logging.getLogger(__name__)
|
|
18
18
|
|
|
19
19
|
_credit_per_usdc = None
|
|
20
|
+
FOURPLACES = Decimal("0.0001")
|
|
20
21
|
|
|
21
22
|
|
|
22
23
|
class LLMProvider(str, Enum):
|
|
@@ -219,14 +220,14 @@ class LLMModelInfo(BaseModel):
|
|
|
219
220
|
* Decimal(input_tokens)
|
|
220
221
|
* self.input_price
|
|
221
222
|
/ Decimal(1000000)
|
|
222
|
-
)
|
|
223
|
+
).quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
223
224
|
output_cost = (
|
|
224
225
|
_credit_per_usdc
|
|
225
226
|
* Decimal(output_tokens)
|
|
226
227
|
* self.output_price
|
|
227
228
|
/ Decimal(1000000)
|
|
228
|
-
)
|
|
229
|
-
return input_cost + output_cost
|
|
229
|
+
).quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
230
|
+
return (input_cost + output_cost).quantize(FOURPLACES, rounding=ROUND_HALF_UP)
|
|
230
231
|
|
|
231
232
|
|
|
232
233
|
# Define all available models
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from datetime import datetime, timezone
|
|
3
|
-
from decimal import Decimal
|
|
3
|
+
from decimal import ROUND_HALF_UP, Decimal
|
|
4
4
|
from typing import Annotated, Optional, Type, TypeVar
|
|
5
5
|
|
|
6
6
|
from intentkit.models.base import Base
|
|
@@ -148,8 +148,13 @@ class UserUpdate(BaseModel):
|
|
|
148
148
|
upstream_tx_id = f"nft_{id}_{timestamp}"
|
|
149
149
|
|
|
150
150
|
# Calculate new quota values based on nft_count
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
FOURPLACES = Decimal("0.0001")
|
|
152
|
+
free_quota = Decimal(480 + 48 * new_nft_count).quantize(
|
|
153
|
+
FOURPLACES, rounding=ROUND_HALF_UP
|
|
154
|
+
)
|
|
155
|
+
refill_amount = Decimal(20 + 2 * new_nft_count).quantize(
|
|
156
|
+
FOURPLACES, rounding=ROUND_HALF_UP
|
|
157
|
+
)
|
|
153
158
|
note = f"NFT count changed to {new_nft_count}"
|
|
154
159
|
|
|
155
160
|
# Update daily quota
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|