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.

Files changed (380) hide show
  1. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/PKG-INFO +1 -1
  2. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/__init__.py +1 -1
  3. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/skill.py +12 -0
  4. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/config/config.py +1 -0
  5. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/skill.py +11 -0
  6. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent_schema.json +4 -0
  7. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/skill.py +19 -0
  8. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/pyproject.toml +1 -1
  9. intentkit-0.6.0.dev13/skills/firecrawl/README.md +211 -0
  10. intentkit-0.6.0.dev13/skills/firecrawl/__init__.py +107 -0
  11. intentkit-0.6.0.dev13/skills/firecrawl/base.py +28 -0
  12. intentkit-0.6.0.dev13/skills/firecrawl/clear.py +87 -0
  13. intentkit-0.6.0.dev13/skills/firecrawl/crawl.py +407 -0
  14. intentkit-0.6.0.dev13/skills/firecrawl/firecrawl.png +0 -0
  15. intentkit-0.6.0.dev13/skills/firecrawl/query.py +123 -0
  16. intentkit-0.6.0.dev13/skills/firecrawl/schema.json +153 -0
  17. intentkit-0.6.0.dev13/skills/firecrawl/scrape.py +324 -0
  18. intentkit-0.6.0.dev13/skills/firecrawl/utils.py +306 -0
  19. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/.gitignore +0 -0
  20. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/LICENSE +0 -0
  21. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/MANIFEST.in +0 -0
  22. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/README.md +0 -0
  23. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/__init__.py +0 -0
  24. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/agent.py +0 -0
  25. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/api.py +0 -0
  26. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/engine.py +0 -0
  27. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/exception.py +0 -0
  28. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/graph.py +0 -0
  29. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/abstracts/twitter.py +0 -0
  30. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/__init__.py +0 -0
  31. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/cdp.py +0 -0
  32. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/clients/twitter.py +0 -0
  33. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/config/__init__.py +0 -0
  34. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/__init__.py +0 -0
  35. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/agent.py +0 -0
  36. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/api.py +0 -0
  37. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/client.py +0 -0
  38. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/credit.py +0 -0
  39. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/engine.py +0 -0
  40. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/node.py +0 -0
  41. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/core/prompt.py +0 -0
  42. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent.py +0 -0
  43. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/agent_data.py +0 -0
  44. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/app_setting.py +0 -0
  45. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/base.py +0 -0
  46. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/chat.py +0 -0
  47. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/conversation.py +0 -0
  48. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/credit.py +0 -0
  49. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/db.py +0 -0
  50. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/db_mig.py +0 -0
  51. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/generator.py +0 -0
  52. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/llm.py +0 -0
  53. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/redis.py +0 -0
  54. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/models/user.py +0 -0
  55. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/__init__.py +0 -0
  56. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/__init__.py +0 -0
  57. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/acolyt.jpg +0 -0
  58. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/ask.py +0 -0
  59. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/base.py +0 -0
  60. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/acolyt/schema.json +0 -0
  61. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/README.md +0 -0
  62. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/__init__.py +0 -0
  63. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/aixbt.jpg +0 -0
  64. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/base.py +0 -0
  65. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/projects.py +0 -0
  66. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/aixbt/schema.json +0 -0
  67. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/__init__.py +0 -0
  68. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/allora.jpeg +0 -0
  69. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/base.py +0 -0
  70. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/price.py +0 -0
  71. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/allora/schema.json +0 -0
  72. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/base.py +0 -0
  73. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/README.md +0 -0
  74. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/__init__.py +0 -0
  75. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/base.py +0 -0
  76. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/carv.webp +0 -0
  77. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/fetch_news.py +0 -0
  78. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/onchain_query.py +0 -0
  79. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/schema.json +0 -0
  80. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/carv/token_info_and_price.py +0 -0
  81. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/__init__.py +0 -0
  82. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/base.py +0 -0
  83. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/cdp.png +0 -0
  84. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/get_balance.py +0 -0
  85. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cdp/schema.json +0 -0
  86. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/README.md +0 -0
  87. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/__init__.py +0 -0
  88. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/base.py +0 -0
  89. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/chain_lookup.py +0 -0
  90. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/chainlist.png +0 -0
  91. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/chainlist/schema.json +0 -0
  92. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/__init__.py +0 -0
  93. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/base.py +0 -0
  94. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/common.jpg +0 -0
  95. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/current_time.py +0 -0
  96. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/common/schema.json +0 -0
  97. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/README.md +0 -0
  98. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/__init__.py +0 -0
  99. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/base.py +0 -0
  100. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/constants.py +0 -0
  101. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/cookiefun.png +0 -0
  102. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_details.py +0 -0
  103. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_feed.py +0 -0
  104. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_account_smart_followers.py +0 -0
  105. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/get_sectors.py +0 -0
  106. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/schema.json +0 -0
  107. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cookiefun/search_accounts.py +0 -0
  108. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/__init__.py +0 -0
  109. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/api.py +0 -0
  110. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/base.py +0 -0
  111. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/cryptocompare.png +0 -0
  112. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_news.py +0 -0
  113. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_price.py +0 -0
  114. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  115. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  116. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_top_volume.py +0 -0
  117. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  118. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptocompare/schema.json +0 -0
  119. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/__init__.py +0 -0
  120. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/base.py +0 -0
  121. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/cryptopanic.png +0 -0
  122. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  123. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  124. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/cryptopanic/schema.json +0 -0
  125. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/README.md +0 -0
  126. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/__init__.py +0 -0
  127. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/base.py +0 -0
  128. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/dapplooker.jpg +0 -0
  129. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/dapplooker_token_data.py +0 -0
  130. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dapplooker/schema.json +0 -0
  131. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/__init__.py +0 -0
  132. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/api.py +0 -0
  133. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/base.py +0 -0
  134. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/__init__.py +0 -0
  135. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  136. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_block.py +0 -0
  137. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_current_prices.py +0 -0
  138. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_first_price.py +0 -0
  139. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  140. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_price_chart.py +0 -0
  141. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  142. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/config/__init__.py +0 -0
  143. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/config/chains.py +0 -0
  144. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/defillama.jpeg +0 -0
  145. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/fees/__init__.py +0 -0
  146. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  147. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/schema.json +0 -0
  148. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/__init__.py +0 -0
  149. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  150. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  151. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  152. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  153. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/__init__.py +0 -0
  154. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/api_integration.test.py +0 -0
  155. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tests/api_unit.test.py +0 -0
  156. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/__init__.py +0 -0
  157. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  158. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_chains.py +0 -0
  159. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  160. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocol.py +0 -0
  161. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  162. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/tvl/fetch_protocols.py +0 -0
  163. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/__init__.py +0 -0
  164. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  165. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  166. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  167. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/__init__.py +0 -0
  168. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  169. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/defillama/yields/fetch_pools.py +0 -0
  170. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/__init__.py +0 -0
  171. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/base.py +0 -0
  172. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/dexscreener.png +0 -0
  173. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/model/__init__.py +0 -0
  174. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/model/search_token_response.py +0 -0
  175. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/schema.json +0 -0
  176. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dexscreener/search_token.py +0 -0
  177. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/__init__.py +0 -0
  178. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/base.py +0 -0
  179. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/dune.png +0 -0
  180. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  181. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  182. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/dune_analytics/schema.json +0 -0
  183. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/README.md +0 -0
  184. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/__init__.py +0 -0
  185. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/base.py +0 -0
  186. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/elfa.jpg +0 -0
  187. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/mention.py +0 -0
  188. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/schema.json +0 -0
  189. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/stats.py +0 -0
  190. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/elfa/tokens.py +0 -0
  191. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/README.md +0 -0
  192. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/__init__.py +0 -0
  193. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/__init__.py +0 -0
  194. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/approval.py +0 -0
  195. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/erc20.py +0 -0
  196. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/abi/route.py +0 -0
  197. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/base.py +0 -0
  198. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/best_yield.py +0 -0
  199. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/enso.jpg +0 -0
  200. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/networks.py +0 -0
  201. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/prices.py +0 -0
  202. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/route.py +0 -0
  203. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/schema.json +0 -0
  204. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/tokens.py +0 -0
  205. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/enso/wallet.py +0 -0
  206. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/README.md +0 -0
  207. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/__init__.py +0 -0
  208. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/base.py +0 -0
  209. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/github.jpg +0 -0
  210. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/github_search.py +0 -0
  211. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/github/schema.json +0 -0
  212. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/__init__.py +0 -0
  213. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/base.py +0 -0
  214. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/heurist.png +0 -0
  215. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_animagine_xl.py +0 -0
  216. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_arthemy_comics.py +0 -0
  217. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_arthemy_real.py +0 -0
  218. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_braindance.py +0 -0
  219. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  220. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_flux_1_dev.py +0 -0
  221. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/image_generation_sdxl.py +0 -0
  222. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/heurist/schema.json +0 -0
  223. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/README.md +0 -0
  224. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/__init__.py +0 -0
  225. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/base.py +0 -0
  226. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/lifi.png +0 -0
  227. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/schema.json +0 -0
  228. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/token_execute.py +0 -0
  229. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/token_quote.py +0 -0
  230. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/lifi/utils.py +0 -0
  231. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/README.md +0 -0
  232. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/__init__.py +0 -0
  233. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/api.py +0 -0
  234. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/base.py +0 -0
  235. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_chain_portfolio.py +0 -0
  236. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_nft_portfolio.py +0 -0
  237. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_solana_portfolio.py +0 -0
  238. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  239. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/moralis.png +0 -0
  240. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/schema.json +0 -0
  241. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/tests/__init__.py +0 -0
  242. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/moralis/tests/test_wallet.py +0 -0
  243. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/__init__.py +0 -0
  244. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/base.py +0 -0
  245. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/nation.png +0 -0
  246. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/nft_check.py +0 -0
  247. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/nation/schema.json +0 -0
  248. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/__init__.py +0 -0
  249. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/base.py +0 -0
  250. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/dalle_image_generation.py +0 -0
  251. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/gpt_image_generation.py +0 -0
  252. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/gpt_image_to_image.py +0 -0
  253. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/image_to_text.py +0 -0
  254. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/openai.png +0 -0
  255. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/openai/schema.json +0 -0
  256. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/README.md +0 -0
  257. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/__init__.py +0 -0
  258. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/base.py +0 -0
  259. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/constants.py +0 -0
  260. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/moralis.png +0 -0
  261. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/schema.json +0 -0
  262. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/token_balances.py +0 -0
  263. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_approvals.py +0 -0
  264. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_defi_positions.py +0 -0
  265. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_history.py +0 -0
  266. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_net_worth.py +0 -0
  267. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_nfts.py +0 -0
  268. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_profitability.py +0 -0
  269. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_profitability_summary.py +0 -0
  270. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_stats.py +0 -0
  271. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/portfolio/wallet_swaps.py +0 -0
  272. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/skills.toml +0 -0
  273. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/__init__.py +0 -0
  274. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/base.py +0 -0
  275. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/get_channel.py +0 -0
  276. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/get_message.py +0 -0
  277. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/schedule_message.py +0 -0
  278. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/schema.json +0 -0
  279. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/send_message.py +0 -0
  280. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/slack/slack.jpg +0 -0
  281. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/__init__.py +0 -0
  282. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/base.py +0 -0
  283. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/read_agent_api_key.py +0 -0
  284. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/regenerate_agent_api_key.py +0 -0
  285. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/schema.json +0 -0
  286. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/system/system.svg +0 -0
  287. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/README.md +0 -0
  288. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/__init__.py +0 -0
  289. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/base.py +0 -0
  290. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/schema.json +0 -0
  291. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily.jpg +0 -0
  292. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily_extract.py +0 -0
  293. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/tavily/tavily_search.py +0 -0
  294. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/README.md +0 -0
  295. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/__init__.py +0 -0
  296. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/base.py +0 -0
  297. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/constants.py +0 -0
  298. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/erc20_transfers.py +0 -0
  299. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/moralis.png +0 -0
  300. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/schema.json +0 -0
  301. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_analytics.py +0 -0
  302. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_price.py +0 -0
  303. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/token/token_search.py +0 -0
  304. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/__init__.py +0 -0
  305. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/base.py +0 -0
  306. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/follow_user.py +0 -0
  307. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_mentions.py +0 -0
  308. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_timeline.py +0 -0
  309. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_user_by_username.py +0 -0
  310. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/get_user_tweets.py +0 -0
  311. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/like_tweet.py +0 -0
  312. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/post_tweet.py +0 -0
  313. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/reply_tweet.py +0 -0
  314. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/retweet.py +0 -0
  315. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/schema.json +0 -0
  316. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/search_tweets.py +0 -0
  317. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/twitter/twitter.png +0 -0
  318. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/__init__.py +0 -0
  319. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/base.py +0 -0
  320. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/schema.json +0 -0
  321. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/text_to_speech.py +0 -0
  322. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/unrealspeech/unrealspeech.jpg +0 -0
  323. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/__init__.py +0 -0
  324. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/base.py +0 -0
  325. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/input.py +0 -0
  326. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/schema.json +0 -0
  327. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/venice_audio.py +0 -0
  328. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_audio/venice_logo.jpg +0 -0
  329. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/README.md +0 -0
  330. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/__init__.py +0 -0
  331. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/api.py +0 -0
  332. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/base.py +0 -0
  333. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/config.py +0 -0
  334. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/README.md +0 -0
  335. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/__init__.py +0 -0
  336. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  337. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  338. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  339. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/README.md +0 -0
  340. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/__init__.py +0 -0
  341. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  342. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  343. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  344. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  345. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  346. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  347. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  348. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  349. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  350. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/README.md +0 -0
  351. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/__init__.py +0 -0
  352. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  353. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  354. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  355. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/README.md +0 -0
  356. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/__init__.py +0 -0
  357. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision.py +0 -0
  358. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  359. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  360. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/schema.json +0 -0
  361. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/utils.py +0 -0
  362. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/venice_image/venice_image.jpg +0 -0
  363. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/README.md +0 -0
  364. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/__init__.py +0 -0
  365. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/base.py +0 -0
  366. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/document_indexer.py +0 -0
  367. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/langchain.png +0 -0
  368. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/schema.json +0 -0
  369. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/scrape_and_index.py +0 -0
  370. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/utils.py +0 -0
  371. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/skills/web_scraper/website_indexer.py +0 -0
  372. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/__init__.py +0 -0
  373. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/chain.py +0 -0
  374. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/error.py +0 -0
  375. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/logging.py +0 -0
  376. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/middleware.py +0 -0
  377. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/random.py +0 -0
  378. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/s3.py +0 -0
  379. {intentkit-0.6.0.dev11 → intentkit-0.6.0.dev13}/utils/slack_alert.py +0 -0
  380. {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.dev11
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
@@ -3,7 +3,7 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.6.0-dev.11"
6
+ __version__ = "0.6.0-dev.13"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -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.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.6.0-dev.11"
3
+ version = "0.6.0-dev.13"
4
4
  description = "Intent-based AI Agent Platform - Core Package"
5
5
  authors = [{ name = "hyacinthus", email = "hyacinthus@gmail.com" }]
6
6
  requires-python = ">=3.12"
@@ -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)}"