intentkit 0.6.0.dev11__tar.gz → 0.6.0.dev13__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of intentkit might be problematic. Click here for more details.
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/PKG-INFO +1 -1
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/__init__.py +1 -1
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/skill.py +12 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/config/config.py +1 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/skill.py +11 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent_schema.json +4 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/skill.py +19 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/pyproject.toml +1 -1
- intentkit-0.6.0.dev13/skills/firecrawl/README.md +211 -0
- intentkit-0.6.0.dev13/skills/firecrawl/__init__.py +107 -0
- intentkit-0.6.0.dev13/skills/firecrawl/base.py +28 -0
- intentkit-0.6.0.dev13/skills/firecrawl/clear.py +87 -0
- intentkit-0.6.0.dev13/skills/firecrawl/crawl.py +407 -0
- intentkit-0.6.0.dev13/skills/firecrawl/firecrawl.png +0 -0
- intentkit-0.6.0.dev13/skills/firecrawl/query.py +123 -0
- intentkit-0.6.0.dev13/skills/firecrawl/schema.json +153 -0
- intentkit-0.6.0.dev13/skills/firecrawl/scrape.py +324 -0
- intentkit-0.6.0.dev13/skills/firecrawl/utils.py +306 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/.gitignore +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/LICENSE +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/MANIFEST.in +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/agent.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/engine.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/exception.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/graph.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/twitter.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/cdp.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/twitter.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/config/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/agent.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/client.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/credit.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/engine.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/node.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/prompt.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent_data.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/app_setting.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/chat.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/conversation.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/credit.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/db.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/db_mig.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/generator.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/llm.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/redis.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/user.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/acolyt.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/ask.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/aixbt.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/projects.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/allora.jpeg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/price.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/carv.webp +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/fetch_news.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/onchain_query.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/token_info_and_price.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/cdp.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/get_balance.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/chain_lookup.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/chainlist.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/common.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/current_time.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/constants.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/cookiefun.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_details.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_feed.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_smart_followers.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_sectors.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/search_accounts.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/cryptocompare.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_news.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_price.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_volume.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_trading_signals.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/cryptopanic.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/fetch_crypto_news.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/dapplooker.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/dapplooker_token_data.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_block.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_current_prices.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_first_price.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_historical_prices.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_price_chart.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_price_percentage.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/config/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/config/chains.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/defillama.jpeg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/fees/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/fees/fetch_fees_overview.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/api_integration.test.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/api_unit.test.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_chains.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocol.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocols.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_options_overview.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/fetch_pool_chart.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/fetch_pools.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/dexscreener.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/model/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/model/search_token_response.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/search_token.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/dune.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/fetch_kol_buys.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/elfa.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/mention.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/stats.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/tokens.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/approval.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/erc20.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/route.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/best_yield.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/enso.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/networks.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/prices.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/route.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/tokens.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/wallet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/github.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/github_search.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/heurist.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_animagine_xl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_arthemy_comics.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_arthemy_real.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_braindance.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_flux_1_dev.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_sdxl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/lifi.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/token_execute.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/token_quote.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/utils.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_chain_portfolio.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_nft_portfolio.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_solana_portfolio.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_wallet_portfolio.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/moralis.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/tests/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/tests/test_wallet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/nation.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/nft_check.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/dalle_image_generation.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/gpt_image_generation.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/gpt_image_to_image.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/image_to_text.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/openai.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/constants.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/moralis.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/token_balances.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_approvals.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_defi_positions.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_history.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_net_worth.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_nfts.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_profitability.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_profitability_summary.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_stats.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_swaps.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/skills.toml +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/get_channel.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/get_message.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/schedule_message.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/send_message.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/slack.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/read_agent_api_key.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/regenerate_agent_api_key.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/system.svg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily_extract.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily_search.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/constants.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/erc20_transfers.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/moralis.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_analytics.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_price.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_search.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/follow_user.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_mentions.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_timeline.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_user_by_username.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_user_tweets.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/like_tweet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/post_tweet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/reply_tweet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/retweet.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/search_tweets.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/twitter.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/text_to_speech.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/unrealspeech.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/input.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/venice_audio.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/venice_logo.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/api.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/config.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_input.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision_base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision_input.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/utils.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/venice_image.jpg +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/README.md +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/base.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/document_indexer.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/langchain.png +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/schema.json +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/scrape_and_index.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/utils.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/website_indexer.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/__init__.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/chain.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/error.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/logging.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/middleware.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/random.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/s3.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/slack_alert.py +0 -0
- {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/tx.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: intentkit
|
|
3
|
-
Version: 0.6.0.
|
|
3
|
+
Version: 0.6.0.dev13
|
|
4
4
|
Summary: Intent-based AI Agent Platform - Core Package
|
|
5
5
|
Project-URL: Homepage, https://github.com/crestal-network/intentkit
|
|
6
6
|
Project-URL: Repository, https://github.com/crestal-network/intentkit
|
|
@@ -91,6 +91,18 @@ class SkillStoreABC(ABC):
|
|
|
91
91
|
"""
|
|
92
92
|
pass
|
|
93
93
|
|
|
94
|
+
@staticmethod
|
|
95
|
+
@abstractmethod
|
|
96
|
+
async def delete_agent_skill_data(agent_id: str, skill: str, key: str) -> None:
|
|
97
|
+
"""Delete skill data for an agent.
|
|
98
|
+
|
|
99
|
+
Args:
|
|
100
|
+
agent_id: ID of the agent
|
|
101
|
+
skill: Name of the skill
|
|
102
|
+
key: Data key
|
|
103
|
+
"""
|
|
104
|
+
pass
|
|
105
|
+
|
|
94
106
|
@staticmethod
|
|
95
107
|
@abstractmethod
|
|
96
108
|
async def get_thread_skill_data(
|
|
@@ -121,6 +121,7 @@ class Config:
|
|
|
121
121
|
self.moralis_api_key = self.load("MORALIS_API_KEY")
|
|
122
122
|
self.tavily_api_key = self.load("TAVILY_API_KEY")
|
|
123
123
|
self.cookiefun_api_key = self.load("COOKIEFUN_API_KEY")
|
|
124
|
+
self.firecrawl_api_key = self.load("FIRECRAWL_API_KEY")
|
|
124
125
|
# Sentry
|
|
125
126
|
self.sentry_dsn = self.load("SENTRY_DSN")
|
|
126
127
|
self.sentry_sample_rate = float(self.load("SENTRY_SAMPLE_RATE", "0.1"))
|
|
@@ -78,6 +78,17 @@ class SkillStore(SkillStoreABC):
|
|
|
78
78
|
)
|
|
79
79
|
await skill_data.save()
|
|
80
80
|
|
|
81
|
+
@staticmethod
|
|
82
|
+
async def delete_agent_skill_data(agent_id: str, skill: str, key: str) -> None:
|
|
83
|
+
"""Delete skill data for an agent.
|
|
84
|
+
|
|
85
|
+
Args:
|
|
86
|
+
agent_id: ID of the agent
|
|
87
|
+
skill: Name of the skill
|
|
88
|
+
key: Data key
|
|
89
|
+
"""
|
|
90
|
+
await AgentSkillData.delete(agent_id, skill, key)
|
|
91
|
+
|
|
81
92
|
@staticmethod
|
|
82
93
|
async def get_thread_skill_data(
|
|
83
94
|
thread_id: str, skill: str, key: str
|
|
@@ -539,6 +539,10 @@
|
|
|
539
539
|
"title": "Web Scraper & Content Indexing",
|
|
540
540
|
"$ref": "../skills/web_scraper/schema.json"
|
|
541
541
|
},
|
|
542
|
+
"firecrawl": {
|
|
543
|
+
"title": "Firecrawl Web Scraping",
|
|
544
|
+
"$ref": "../skills/firecrawl/schema.json"
|
|
545
|
+
},
|
|
542
546
|
"aixbt": {
|
|
543
547
|
"title": "AIXBT",
|
|
544
548
|
"$ref": "../skills/aixbt/schema.json"
|
|
@@ -172,6 +172,25 @@ class AgentSkillData(AgentSkillDataCreate):
|
|
|
172
172
|
)
|
|
173
173
|
return result.data if result else None
|
|
174
174
|
|
|
175
|
+
@classmethod
|
|
176
|
+
async def delete(cls, agent_id: str, skill: str, key: str) -> None:
|
|
177
|
+
"""Delete skill data for an agent.
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
agent_id: ID of the agent
|
|
181
|
+
skill: Name of the skill
|
|
182
|
+
key: Data key
|
|
183
|
+
"""
|
|
184
|
+
async with get_session() as db:
|
|
185
|
+
await db.execute(
|
|
186
|
+
delete(AgentSkillDataTable).where(
|
|
187
|
+
AgentSkillDataTable.agent_id == agent_id,
|
|
188
|
+
AgentSkillDataTable.skill == skill,
|
|
189
|
+
AgentSkillDataTable.key == key,
|
|
190
|
+
)
|
|
191
|
+
)
|
|
192
|
+
await db.commit()
|
|
193
|
+
|
|
175
194
|
@classmethod
|
|
176
195
|
async def clean_data(cls, agent_id: str):
|
|
177
196
|
"""Clean all skill data for an agent.
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Firecrawl Skills
|
|
2
|
+
|
|
3
|
+
The Firecrawl skills provide advanced web scraping and content indexing capabilities using the Firecrawl API. These skills can handle JavaScript-heavy websites, PDFs, and provide automatic content indexing for intelligent querying.
|
|
4
|
+
|
|
5
|
+
## Skills Overview
|
|
6
|
+
|
|
7
|
+
### 1. firecrawl_scrape
|
|
8
|
+
Scrapes a single webpage and optionally indexes the content for future querying.
|
|
9
|
+
|
|
10
|
+
**Parameters:**
|
|
11
|
+
- `url` (required): The URL to scrape
|
|
12
|
+
- `formats` (optional): Output formats - markdown, html, rawHtml, screenshot, links, extract (default: ["markdown"])
|
|
13
|
+
- `include_tags` (optional): HTML tags to include (e.g., ["h1", "h2", "p"])
|
|
14
|
+
- `exclude_tags` (optional): HTML tags to exclude
|
|
15
|
+
- `only_main_content` (optional): Extract only main content (default: true)
|
|
16
|
+
- `index_content` (optional): Whether to index content for querying (default: true)
|
|
17
|
+
- `chunk_size` (optional): Size of text chunks for indexing (default: 1000)
|
|
18
|
+
- `chunk_overlap` (optional): Overlap between chunks (default: 200)
|
|
19
|
+
|
|
20
|
+
### 2. firecrawl_crawl
|
|
21
|
+
Crawls multiple pages from a website and indexes all content.
|
|
22
|
+
|
|
23
|
+
**Parameters:**
|
|
24
|
+
- `url` (required): The base URL to start crawling
|
|
25
|
+
- `include_paths` (optional): URL patterns to include (e.g., ["/docs/*"])
|
|
26
|
+
- `exclude_paths` (optional): URL patterns to exclude
|
|
27
|
+
- `max_depth` (optional): Maximum crawl depth (default: 2)
|
|
28
|
+
- `limit` (optional): Maximum number of pages to crawl (default: 5)
|
|
29
|
+
- `index_content` (optional): Whether to index content for querying (default: true)
|
|
30
|
+
- `chunk_size` (optional): Size of text chunks for indexing (default: 1000)
|
|
31
|
+
- `chunk_overlap` (optional): Overlap between chunks (default: 200)
|
|
32
|
+
|
|
33
|
+
### 3. firecrawl_query_indexed_content
|
|
34
|
+
Queries previously indexed Firecrawl content using semantic search.
|
|
35
|
+
|
|
36
|
+
**Parameters:**
|
|
37
|
+
- `query` (required): The search query
|
|
38
|
+
- `limit` (optional): Maximum number of results to return (1-10, default: 4)
|
|
39
|
+
|
|
40
|
+
### 4. firecrawl_clear_indexed_content
|
|
41
|
+
Clears all previously indexed Firecrawl content from the vector store.
|
|
42
|
+
|
|
43
|
+
**Parameters:**
|
|
44
|
+
- `confirm` (required): Must be set to true to confirm the deletion (default: false)
|
|
45
|
+
|
|
46
|
+
**Note:** This action is permanent and cannot be undone. Use when you want to start fresh with new content.
|
|
47
|
+
|
|
48
|
+
## API Key Configuration
|
|
49
|
+
Set your Firecrawl API key as an environment variable:
|
|
50
|
+
```bash
|
|
51
|
+
export FIRECRAWL_API_KEY=fc-your-api-key-here
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Testing Instructions
|
|
55
|
+
|
|
56
|
+
### Step 1: Create an Agent with Firecrawl Skills
|
|
57
|
+
|
|
58
|
+
1. **Create a new agent** via the API or UI with the following skills:
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"skills": [
|
|
62
|
+
"firecrawl_scrape",
|
|
63
|
+
"firecrawl_crawl",
|
|
64
|
+
"firecrawl_query_indexed_content",
|
|
65
|
+
"firecrawl_clear_indexed_content"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
2. **Note the agent ID** for testing
|
|
71
|
+
|
|
72
|
+
### Step 2: Test Single Page Scraping
|
|
73
|
+
|
|
74
|
+
**Test scraping a documentation homepage:**
|
|
75
|
+
```
|
|
76
|
+
Prompt: "Use firecrawl_scrape to scrape https://docs.joincommonwealth.xyz/ and index the content for future querying"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**Expected Result:**
|
|
80
|
+
- Content successfully scraped
|
|
81
|
+
- Content automatically indexed with metadata
|
|
82
|
+
- Confirmation of chunk creation and indexing
|
|
83
|
+
|
|
84
|
+
### Step 3: Test Content Crawling
|
|
85
|
+
|
|
86
|
+
**Test crawling multiple pages:**
|
|
87
|
+
```
|
|
88
|
+
Prompt: "Use firecrawl_crawl to crawl https://docs.joincommonwealth.xyz/ with max_depth=2 and limit=3 to index multiple documentation pages"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Expected Result:**
|
|
92
|
+
- Multiple pages crawled and scraped
|
|
93
|
+
- Each page indexed separately
|
|
94
|
+
- Batch processing confirmation
|
|
95
|
+
|
|
96
|
+
### Step 4: Test Content Querying
|
|
97
|
+
|
|
98
|
+
**Test querying indexed content:**
|
|
99
|
+
```
|
|
100
|
+
Prompt: "Use firecrawl_query_indexed_content to search for 'What is All Street and what is its purpose?' in the indexed content"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Expected Result:**
|
|
104
|
+
- Relevant content retrieved from indexed documents
|
|
105
|
+
- Results tagged with [Firecrawl Scrape] or [Firecrawl Crawl]
|
|
106
|
+
- Source URLs and metadata included
|
|
107
|
+
|
|
108
|
+
### Step 5: Test Advanced Scraping Options
|
|
109
|
+
|
|
110
|
+
**Test with specific formatting:**
|
|
111
|
+
```
|
|
112
|
+
Prompt: "Use firecrawl_scrape to scrape https://docs.joincommonwealth.xyz/all-street-manifesto with formats=['markdown', 'html'] and include_tags=['h1', 'h2', 'p'] and index_content=true"
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Expected Result:**
|
|
116
|
+
- Content in both markdown and HTML formats
|
|
117
|
+
- Only specified HTML tags included
|
|
118
|
+
- Content indexed for querying
|
|
119
|
+
|
|
120
|
+
### Step 6: Test Multiple Queries
|
|
121
|
+
|
|
122
|
+
**Test different query types:**
|
|
123
|
+
```
|
|
124
|
+
Prompt: "Use firecrawl_query_indexed_content to search for 'democratize finance' in the indexed content"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Expected Result:**
|
|
128
|
+
- Relevant content retrieved from Firecrawl's independent vector store
|
|
129
|
+
- Results tagged with [Firecrawl Scrape] or [Firecrawl Crawl]
|
|
130
|
+
- Source URLs and metadata included
|
|
131
|
+
|
|
132
|
+
### Step 7: Test Clear Indexed Content
|
|
133
|
+
|
|
134
|
+
**Test clearing all indexed content:**
|
|
135
|
+
```
|
|
136
|
+
Prompt: "Use firecrawl_clear_indexed_content with confirm=true to clear all indexed content"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
**Expected Result:**
|
|
140
|
+
- All indexed content removed from vector store
|
|
141
|
+
- Confirmation message displayed
|
|
142
|
+
- Subsequent queries return no results
|
|
143
|
+
|
|
144
|
+
### Step 8: Test Re-indexing After Clear
|
|
145
|
+
|
|
146
|
+
**Test that content can be re-indexed after clearing:**
|
|
147
|
+
```
|
|
148
|
+
Prompt: "Use firecrawl_scrape to scrape https://example.com and index the content"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Expected Result:**
|
|
152
|
+
- Content successfully scraped and indexed
|
|
153
|
+
- Fresh vector store created
|
|
154
|
+
- Content available for querying again
|
|
155
|
+
|
|
156
|
+
## Common Use Cases
|
|
157
|
+
|
|
158
|
+
### Documentation Indexing
|
|
159
|
+
```
|
|
160
|
+
1. Scrape main documentation page
|
|
161
|
+
2. Crawl related documentation sections
|
|
162
|
+
3. Query for specific technical information
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Competitive Analysis
|
|
166
|
+
```
|
|
167
|
+
1. Scrape competitor websites
|
|
168
|
+
2. Index product information and features
|
|
169
|
+
3. Query for specific comparisons
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Research and Knowledge Base
|
|
173
|
+
```
|
|
174
|
+
1. Crawl research papers or articles
|
|
175
|
+
2. Index academic or technical content
|
|
176
|
+
3. Query for specific concepts or methodologies
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Troubleshooting
|
|
180
|
+
|
|
181
|
+
### Common Issues
|
|
182
|
+
|
|
183
|
+
1. **API Key Not Found**
|
|
184
|
+
- Ensure `FIRECRAWL_API_KEY` environment variable is set
|
|
185
|
+
- Restart the IntentKit server after setting the key
|
|
186
|
+
|
|
187
|
+
2. **Scraping Failures**
|
|
188
|
+
- Check if the URL is accessible
|
|
189
|
+
- Verify Firecrawl API quota and limits
|
|
190
|
+
- Some websites may block scraping
|
|
191
|
+
|
|
192
|
+
3. **Indexing Errors**
|
|
193
|
+
- Ensure OpenAI API key is configured for embeddings
|
|
194
|
+
- Check if content is too large for processing
|
|
195
|
+
- Verify vector store permissions
|
|
196
|
+
|
|
197
|
+
4. **Query Returns No Results**
|
|
198
|
+
- Ensure content was successfully indexed
|
|
199
|
+
- Try broader or different search terms
|
|
200
|
+
- Check if vector store contains data
|
|
201
|
+
|
|
202
|
+
## Features and Benefits
|
|
203
|
+
|
|
204
|
+
- **JavaScript Rendering**: Handles SPAs and dynamic content
|
|
205
|
+
- **PDF Support**: Can scrape and index PDF documents
|
|
206
|
+
- **Intelligent Chunking**: Optimized text splitting for better search
|
|
207
|
+
- **Independent Storage**: Uses its own dedicated vector store for Firecrawl content
|
|
208
|
+
- **Metadata Rich**: Includes source URLs, timestamps, and content types
|
|
209
|
+
- **Semantic Search**: Uses OpenAI embeddings for intelligent querying
|
|
210
|
+
- **Batch Processing**: Efficient handling of multiple pages
|
|
211
|
+
- **Content Filtering**: Flexible include/exclude options for targeted scraping
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"""Firecrawl skills for web scraping and crawling."""
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from typing import TypedDict
|
|
5
|
+
|
|
6
|
+
from intentkit.abstracts.skill import SkillStoreABC
|
|
7
|
+
from intentkit.skills.base import SkillConfig, SkillState
|
|
8
|
+
from intentkit.skills.firecrawl.base import FirecrawlBaseTool
|
|
9
|
+
from intentkit.skills.firecrawl.clear import FirecrawlClearIndexedContent
|
|
10
|
+
from intentkit.skills.firecrawl.crawl import FirecrawlCrawl
|
|
11
|
+
from intentkit.skills.firecrawl.query import FirecrawlQueryIndexedContent
|
|
12
|
+
from intentkit.skills.firecrawl.scrape import FirecrawlScrape
|
|
13
|
+
|
|
14
|
+
# Cache skills at the system level, because they are stateless
|
|
15
|
+
_cache: dict[str, FirecrawlBaseTool] = {}
|
|
16
|
+
|
|
17
|
+
logger = logging.getLogger(__name__)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SkillStates(TypedDict):
|
|
21
|
+
firecrawl_scrape: SkillState
|
|
22
|
+
firecrawl_crawl: SkillState
|
|
23
|
+
firecrawl_query_indexed_content: SkillState
|
|
24
|
+
firecrawl_clear_indexed_content: SkillState
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class Config(SkillConfig):
|
|
28
|
+
"""Configuration for Firecrawl skills."""
|
|
29
|
+
|
|
30
|
+
states: SkillStates
|
|
31
|
+
api_key: str = ""
|
|
32
|
+
api_key_provider: str = "agent_owner"
|
|
33
|
+
rate_limit_number: int = 100
|
|
34
|
+
rate_limit_minutes: int = 60
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
async def get_skills(
|
|
38
|
+
config: "Config",
|
|
39
|
+
is_private: bool,
|
|
40
|
+
store: SkillStoreABC,
|
|
41
|
+
**_,
|
|
42
|
+
) -> list[FirecrawlBaseTool]:
|
|
43
|
+
"""Get all Firecrawl skills.
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
config: The configuration for Firecrawl skills.
|
|
47
|
+
is_private: Whether to include private skills.
|
|
48
|
+
store: The skill store for persisting data.
|
|
49
|
+
|
|
50
|
+
Returns:
|
|
51
|
+
A list of Firecrawl skills.
|
|
52
|
+
"""
|
|
53
|
+
available_skills = []
|
|
54
|
+
|
|
55
|
+
# Include skills based on their state
|
|
56
|
+
for skill_name, state in config["states"].items():
|
|
57
|
+
if state == "disabled":
|
|
58
|
+
continue
|
|
59
|
+
elif state == "public" or (state == "private" and is_private):
|
|
60
|
+
available_skills.append(skill_name)
|
|
61
|
+
|
|
62
|
+
# Get each skill using the cached getter
|
|
63
|
+
return [get_firecrawl_skill(name, store) for name in available_skills]
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def get_firecrawl_skill(
|
|
67
|
+
name: str,
|
|
68
|
+
store: SkillStoreABC,
|
|
69
|
+
) -> FirecrawlBaseTool:
|
|
70
|
+
"""Get a Firecrawl skill by name.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
name: The name of the skill to get
|
|
74
|
+
store: The skill store for persisting data
|
|
75
|
+
|
|
76
|
+
Returns:
|
|
77
|
+
The requested Firecrawl skill
|
|
78
|
+
|
|
79
|
+
Raises:
|
|
80
|
+
ValueError: If the skill name is unknown
|
|
81
|
+
"""
|
|
82
|
+
if name == "firecrawl_scrape":
|
|
83
|
+
if name not in _cache:
|
|
84
|
+
_cache[name] = FirecrawlScrape(
|
|
85
|
+
skill_store=store,
|
|
86
|
+
)
|
|
87
|
+
return _cache[name]
|
|
88
|
+
elif name == "firecrawl_crawl":
|
|
89
|
+
if name not in _cache:
|
|
90
|
+
_cache[name] = FirecrawlCrawl(
|
|
91
|
+
skill_store=store,
|
|
92
|
+
)
|
|
93
|
+
return _cache[name]
|
|
94
|
+
elif name == "firecrawl_query_indexed_content":
|
|
95
|
+
if name not in _cache:
|
|
96
|
+
_cache[name] = FirecrawlQueryIndexedContent(
|
|
97
|
+
skill_store=store,
|
|
98
|
+
)
|
|
99
|
+
return _cache[name]
|
|
100
|
+
elif name == "firecrawl_clear_indexed_content":
|
|
101
|
+
if name not in _cache:
|
|
102
|
+
_cache[name] = FirecrawlClearIndexedContent(
|
|
103
|
+
skill_store=store,
|
|
104
|
+
)
|
|
105
|
+
return _cache[name]
|
|
106
|
+
else:
|
|
107
|
+
raise ValueError(f"Unknown Firecrawl skill: {name}")
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Type
|
|
2
|
+
|
|
3
|
+
from pydantic import BaseModel, Field
|
|
4
|
+
|
|
5
|
+
from intentkit.abstracts.skill import SkillStoreABC
|
|
6
|
+
from intentkit.skills.base import IntentKitSkill, SkillContext
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class FirecrawlBaseTool(IntentKitSkill):
|
|
10
|
+
"""Base class for Firecrawl tools."""
|
|
11
|
+
|
|
12
|
+
name: str = Field(description="The name of the tool")
|
|
13
|
+
description: str = Field(description="A description of what the tool does")
|
|
14
|
+
args_schema: Type[BaseModel]
|
|
15
|
+
skill_store: SkillStoreABC = Field(
|
|
16
|
+
description="The skill store for persisting data"
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
def get_api_key(self, context: SkillContext) -> str:
|
|
20
|
+
"""Get the Firecrawl API key from configuration."""
|
|
21
|
+
skill_config = context.config
|
|
22
|
+
if skill_config.get("api_key_provider") == "agent_owner":
|
|
23
|
+
return skill_config.get("api_key")
|
|
24
|
+
return self.skill_store.get_system_config("firecrawl_api_key")
|
|
25
|
+
|
|
26
|
+
@property
|
|
27
|
+
def category(self) -> str:
|
|
28
|
+
return "firecrawl"
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Type
|
|
3
|
+
|
|
4
|
+
from langchain_core.runnables import RunnableConfig
|
|
5
|
+
from pydantic import BaseModel, Field
|
|
6
|
+
|
|
7
|
+
from intentkit.skills.firecrawl.base import FirecrawlBaseTool
|
|
8
|
+
|
|
9
|
+
logger = logging.getLogger(__name__)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class FirecrawlClearInput(BaseModel):
|
|
13
|
+
"""Input for Firecrawl clear tool."""
|
|
14
|
+
|
|
15
|
+
confirm: bool = Field(
|
|
16
|
+
description="Confirmation to clear all indexed content (must be true)",
|
|
17
|
+
default=False,
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class FirecrawlClearIndexedContent(FirecrawlBaseTool):
|
|
22
|
+
"""Tool for clearing all indexed Firecrawl content.
|
|
23
|
+
|
|
24
|
+
This tool removes all previously indexed content from the Firecrawl vector store,
|
|
25
|
+
allowing for a fresh start with new content.
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
name: str = "firecrawl_clear_indexed_content"
|
|
29
|
+
description: str = (
|
|
30
|
+
"Clear all previously indexed Firecrawl content from the vector store.\n"
|
|
31
|
+
"This will permanently delete all indexed content and cannot be undone.\n"
|
|
32
|
+
"Use this tool when you want to start fresh with new content."
|
|
33
|
+
)
|
|
34
|
+
args_schema: Type[BaseModel] = FirecrawlClearInput
|
|
35
|
+
|
|
36
|
+
async def _arun(
|
|
37
|
+
self,
|
|
38
|
+
confirm: bool = False,
|
|
39
|
+
config: RunnableConfig = None,
|
|
40
|
+
**kwargs,
|
|
41
|
+
) -> str:
|
|
42
|
+
"""Clear all indexed Firecrawl content for the agent.
|
|
43
|
+
|
|
44
|
+
Args:
|
|
45
|
+
confirm: Must be True to confirm the deletion
|
|
46
|
+
config: The configuration for the tool call
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
str: Confirmation message
|
|
50
|
+
"""
|
|
51
|
+
context = self.context_from_config(config)
|
|
52
|
+
agent_id = context.agent.id if context and context.agent else None
|
|
53
|
+
|
|
54
|
+
if not agent_id:
|
|
55
|
+
return "Error: Agent ID not available for clearing content."
|
|
56
|
+
|
|
57
|
+
if not confirm:
|
|
58
|
+
return "Error: You must set confirm=true to clear all indexed content."
|
|
59
|
+
|
|
60
|
+
logger.info(
|
|
61
|
+
f"firecrawl_clear: Starting clear indexed content operation for agent {agent_id}"
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
try:
|
|
65
|
+
# Delete vector store data (using web_scraper storage format for compatibility)
|
|
66
|
+
vector_store_key = f"vector_store_{agent_id}"
|
|
67
|
+
await self.skill_store.delete_agent_skill_data(
|
|
68
|
+
agent_id, "web_scraper", vector_store_key
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# Delete metadata
|
|
72
|
+
metadata_key = f"indexed_urls_{agent_id}"
|
|
73
|
+
await self.skill_store.delete_agent_skill_data(
|
|
74
|
+
agent_id, "web_scraper", metadata_key
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
logger.info(
|
|
78
|
+
f"firecrawl_clear: Successfully cleared all indexed content for agent {agent_id}"
|
|
79
|
+
)
|
|
80
|
+
return "Successfully cleared all Firecrawl indexed content. The vector store is now empty and ready for new content."
|
|
81
|
+
|
|
82
|
+
except Exception as e:
|
|
83
|
+
logger.error(
|
|
84
|
+
f"firecrawl_clear: Error clearing indexed content for agent {agent_id}: {e}",
|
|
85
|
+
exc_info=True,
|
|
86
|
+
)
|
|
87
|
+
return f"Error clearing indexed content: {str(e)}"
|