intentkit 0.6.0.dev13__tar.gz → 0.6.0.dev15__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 (398) hide show
  1. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/PKG-INFO +1 -1
  2. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/__init__.py +1 -1
  3. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/engine.py +2 -1
  4. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/node.py +3 -1
  5. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/agent_schema.json +8 -0
  6. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/pyproject.toml +1 -1
  7. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/base.py +37 -17
  8. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_news.py +2 -2
  9. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_price.py +2 -2
  10. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_top_exchanges.py +2 -2
  11. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_top_market_cap.py +2 -2
  12. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_top_volume.py +2 -2
  13. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/fetch_trading_signals.py +2 -2
  14. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/base.py +3 -3
  15. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/base.py +2 -2
  16. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/networks.py +1 -1
  17. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/route.py +1 -1
  18. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/tokens.py +1 -1
  19. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/clear.py +1 -1
  20. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/crawl.py +2 -10
  21. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/query.py +4 -4
  22. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/scrape.py +2 -8
  23. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_animagine_xl.py +1 -1
  24. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_arthemy_comics.py +1 -1
  25. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_arthemy_real.py +1 -1
  26. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_braindance.py +1 -1
  27. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_cyber_realistic_xl.py +1 -1
  28. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_flux_1_dev.py +1 -1
  29. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/image_generation_sdxl.py +1 -1
  30. intentkit-0.6.0.dev15/skills/http/README.md +78 -0
  31. intentkit-0.6.0.dev15/skills/http/__init__.py +100 -0
  32. intentkit-0.6.0.dev15/skills/http/base.py +21 -0
  33. intentkit-0.6.0.dev15/skills/http/get.py +96 -0
  34. intentkit-0.6.0.dev15/skills/http/http.svg +15 -0
  35. intentkit-0.6.0.dev15/skills/http/post.py +113 -0
  36. intentkit-0.6.0.dev15/skills/http/put.py +113 -0
  37. intentkit-0.6.0.dev15/skills/http/schema.json +92 -0
  38. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/token_execute.py +1 -1
  39. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/dalle_image_generation.py +1 -1
  40. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/gpt_image_generation.py +1 -1
  41. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/gpt_image_to_image.py +1 -1
  42. intentkit-0.6.0.dev15/skills/supabase/__init__.py +116 -0
  43. intentkit-0.6.0.dev15/skills/supabase/base.py +72 -0
  44. intentkit-0.6.0.dev15/skills/supabase/delete_data.py +102 -0
  45. intentkit-0.6.0.dev15/skills/supabase/fetch_data.py +120 -0
  46. intentkit-0.6.0.dev15/skills/supabase/insert_data.py +70 -0
  47. intentkit-0.6.0.dev15/skills/supabase/invoke_function.py +74 -0
  48. intentkit-0.6.0.dev15/skills/supabase/schema.json +168 -0
  49. intentkit-0.6.0.dev15/skills/supabase/supabase.svg +15 -0
  50. intentkit-0.6.0.dev15/skills/supabase/update_data.py +105 -0
  51. intentkit-0.6.0.dev15/skills/supabase/upsert_data.py +77 -0
  52. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/read_agent_api_key.py +1 -1
  53. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/regenerate_agent_api_key.py +1 -1
  54. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/base.py +1 -39
  55. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/follow_user.py +3 -3
  56. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/get_mentions.py +6 -6
  57. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/get_timeline.py +5 -5
  58. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/get_user_by_username.py +3 -3
  59. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/get_user_tweets.py +5 -5
  60. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/like_tweet.py +3 -3
  61. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/post_tweet.py +4 -4
  62. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/reply_tweet.py +4 -4
  63. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/retweet.py +3 -3
  64. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/search_tweets.py +5 -5
  65. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/unrealspeech/text_to_speech.py +1 -1
  66. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/document_indexer.py +2 -2
  67. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/scrape_and_index.py +8 -8
  68. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/website_indexer.py +4 -4
  69. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/.gitignore +0 -0
  70. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/LICENSE +0 -0
  71. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/MANIFEST.in +0 -0
  72. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/README.md +0 -0
  73. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/__init__.py +0 -0
  74. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/agent.py +0 -0
  75. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/api.py +0 -0
  76. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/engine.py +0 -0
  77. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/exception.py +0 -0
  78. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/graph.py +0 -0
  79. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/skill.py +0 -0
  80. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/abstracts/twitter.py +0 -0
  81. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/clients/__init__.py +0 -0
  82. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/clients/cdp.py +0 -0
  83. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/clients/twitter.py +0 -0
  84. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/config/__init__.py +0 -0
  85. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/config/config.py +0 -0
  86. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/__init__.py +0 -0
  87. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/agent.py +0 -0
  88. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/api.py +0 -0
  89. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/client.py +0 -0
  90. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/credit.py +0 -0
  91. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/prompt.py +0 -0
  92. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/core/skill.py +0 -0
  93. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/agent.py +0 -0
  94. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/agent_data.py +0 -0
  95. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/app_setting.py +0 -0
  96. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/base.py +0 -0
  97. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/chat.py +0 -0
  98. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/conversation.py +0 -0
  99. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/credit.py +0 -0
  100. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/db.py +0 -0
  101. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/db_mig.py +0 -0
  102. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/generator.py +0 -0
  103. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/llm.py +0 -0
  104. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/redis.py +0 -0
  105. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/skill.py +0 -0
  106. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/models/user.py +0 -0
  107. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/__init__.py +0 -0
  108. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/acolyt/__init__.py +0 -0
  109. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/acolyt/acolyt.jpg +0 -0
  110. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/acolyt/ask.py +0 -0
  111. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/acolyt/base.py +0 -0
  112. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/acolyt/schema.json +0 -0
  113. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/README.md +0 -0
  114. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/__init__.py +0 -0
  115. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/aixbt.jpg +0 -0
  116. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/base.py +0 -0
  117. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/projects.py +0 -0
  118. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/aixbt/schema.json +0 -0
  119. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/allora/__init__.py +0 -0
  120. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/allora/allora.jpeg +0 -0
  121. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/allora/base.py +0 -0
  122. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/allora/price.py +0 -0
  123. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/allora/schema.json +0 -0
  124. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/README.md +0 -0
  125. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/__init__.py +0 -0
  126. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/base.py +0 -0
  127. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/carv.webp +0 -0
  128. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/fetch_news.py +0 -0
  129. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/onchain_query.py +0 -0
  130. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/schema.json +0 -0
  131. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/carv/token_info_and_price.py +0 -0
  132. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cdp/__init__.py +0 -0
  133. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cdp/base.py +0 -0
  134. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cdp/cdp.png +0 -0
  135. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cdp/get_balance.py +0 -0
  136. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cdp/schema.json +0 -0
  137. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/README.md +0 -0
  138. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/__init__.py +0 -0
  139. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/base.py +0 -0
  140. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/chain_lookup.py +0 -0
  141. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/chainlist.png +0 -0
  142. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/chainlist/schema.json +0 -0
  143. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/common/__init__.py +0 -0
  144. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/common/base.py +0 -0
  145. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/common/common.jpg +0 -0
  146. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/common/current_time.py +0 -0
  147. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/common/schema.json +0 -0
  148. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/README.md +0 -0
  149. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/__init__.py +0 -0
  150. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/base.py +0 -0
  151. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/constants.py +0 -0
  152. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/cookiefun.png +0 -0
  153. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/get_account_details.py +0 -0
  154. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/get_account_feed.py +0 -0
  155. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/get_account_smart_followers.py +0 -0
  156. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/get_sectors.py +0 -0
  157. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/schema.json +0 -0
  158. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cookiefun/search_accounts.py +0 -0
  159. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/__init__.py +0 -0
  160. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/api.py +0 -0
  161. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/base.py +0 -0
  162. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/cryptocompare.png +0 -0
  163. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptocompare/schema.json +0 -0
  164. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/__init__.py +0 -0
  165. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/base.py +0 -0
  166. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/cryptopanic.png +0 -0
  167. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  168. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  169. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/cryptopanic/schema.json +0 -0
  170. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/README.md +0 -0
  171. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/__init__.py +0 -0
  172. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/base.py +0 -0
  173. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/dapplooker.jpg +0 -0
  174. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/dapplooker_token_data.py +0 -0
  175. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dapplooker/schema.json +0 -0
  176. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/__init__.py +0 -0
  177. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/api.py +0 -0
  178. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/__init__.py +0 -0
  179. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  180. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_block.py +0 -0
  181. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_current_prices.py +0 -0
  182. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_first_price.py +0 -0
  183. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  184. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_price_chart.py +0 -0
  185. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  186. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/config/__init__.py +0 -0
  187. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/config/chains.py +0 -0
  188. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/defillama.jpeg +0 -0
  189. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/fees/__init__.py +0 -0
  190. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  191. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/schema.json +0 -0
  192. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/stablecoins/__init__.py +0 -0
  193. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  194. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  195. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  196. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  197. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tests/__init__.py +0 -0
  198. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tests/api_integration.test.py +0 -0
  199. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tests/api_unit.test.py +0 -0
  200. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/__init__.py +0 -0
  201. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  202. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_chains.py +0 -0
  203. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  204. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_protocol.py +0 -0
  205. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  206. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/tvl/fetch_protocols.py +0 -0
  207. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/volumes/__init__.py +0 -0
  208. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  209. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  210. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  211. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/yields/__init__.py +0 -0
  212. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  213. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/defillama/yields/fetch_pools.py +0 -0
  214. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/__init__.py +0 -0
  215. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/base.py +0 -0
  216. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/dexscreener.png +0 -0
  217. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/model/__init__.py +0 -0
  218. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/model/search_token_response.py +0 -0
  219. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/schema.json +0 -0
  220. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dexscreener/search_token.py +0 -0
  221. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/__init__.py +0 -0
  222. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/base.py +0 -0
  223. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/dune.png +0 -0
  224. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  225. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  226. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/dune_analytics/schema.json +0 -0
  227. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/README.md +0 -0
  228. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/__init__.py +0 -0
  229. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/base.py +0 -0
  230. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/elfa.jpg +0 -0
  231. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/mention.py +0 -0
  232. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/schema.json +0 -0
  233. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/stats.py +0 -0
  234. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/elfa/tokens.py +0 -0
  235. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/README.md +0 -0
  236. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/__init__.py +0 -0
  237. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/abi/__init__.py +0 -0
  238. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/abi/approval.py +0 -0
  239. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/abi/erc20.py +0 -0
  240. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/abi/route.py +0 -0
  241. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/best_yield.py +0 -0
  242. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/enso.jpg +0 -0
  243. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/prices.py +0 -0
  244. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/schema.json +0 -0
  245. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/enso/wallet.py +0 -0
  246. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/README.md +0 -0
  247. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/__init__.py +0 -0
  248. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/base.py +0 -0
  249. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/firecrawl.png +0 -0
  250. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/schema.json +0 -0
  251. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/firecrawl/utils.py +0 -0
  252. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/README.md +0 -0
  253. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/__init__.py +0 -0
  254. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/base.py +0 -0
  255. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/github.jpg +0 -0
  256. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/github_search.py +0 -0
  257. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/github/schema.json +0 -0
  258. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/__init__.py +0 -0
  259. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/base.py +0 -0
  260. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/heurist.png +0 -0
  261. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/heurist/schema.json +0 -0
  262. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/README.md +0 -0
  263. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/__init__.py +0 -0
  264. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/base.py +0 -0
  265. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/lifi.png +0 -0
  266. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/schema.json +0 -0
  267. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/token_quote.py +0 -0
  268. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/lifi/utils.py +0 -0
  269. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/README.md +0 -0
  270. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/__init__.py +0 -0
  271. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/api.py +0 -0
  272. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/base.py +0 -0
  273. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/fetch_chain_portfolio.py +0 -0
  274. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/fetch_nft_portfolio.py +0 -0
  275. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/fetch_solana_portfolio.py +0 -0
  276. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  277. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/moralis.png +0 -0
  278. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/schema.json +0 -0
  279. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/tests/__init__.py +0 -0
  280. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/moralis/tests/test_wallet.py +0 -0
  281. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/nation/__init__.py +0 -0
  282. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/nation/base.py +0 -0
  283. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/nation/nation.png +0 -0
  284. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/nation/nft_check.py +0 -0
  285. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/nation/schema.json +0 -0
  286. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/__init__.py +0 -0
  287. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/base.py +0 -0
  288. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/image_to_text.py +0 -0
  289. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/openai.png +0 -0
  290. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/openai/schema.json +0 -0
  291. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/README.md +0 -0
  292. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/__init__.py +0 -0
  293. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/base.py +0 -0
  294. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/constants.py +0 -0
  295. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/moralis.png +0 -0
  296. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/schema.json +0 -0
  297. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/token_balances.py +0 -0
  298. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_approvals.py +0 -0
  299. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_defi_positions.py +0 -0
  300. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_history.py +0 -0
  301. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_net_worth.py +0 -0
  302. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_nfts.py +0 -0
  303. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_profitability.py +0 -0
  304. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_profitability_summary.py +0 -0
  305. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_stats.py +0 -0
  306. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/portfolio/wallet_swaps.py +0 -0
  307. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/skills.toml +0 -0
  308. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/__init__.py +0 -0
  309. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/base.py +0 -0
  310. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/get_channel.py +0 -0
  311. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/get_message.py +0 -0
  312. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/schedule_message.py +0 -0
  313. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/schema.json +0 -0
  314. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/send_message.py +0 -0
  315. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/slack/slack.jpg +0 -0
  316. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/__init__.py +0 -0
  317. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/base.py +0 -0
  318. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/schema.json +0 -0
  319. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/system/system.svg +0 -0
  320. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/README.md +0 -0
  321. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/__init__.py +0 -0
  322. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/base.py +0 -0
  323. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/schema.json +0 -0
  324. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/tavily.jpg +0 -0
  325. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/tavily_extract.py +0 -0
  326. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/tavily/tavily_search.py +0 -0
  327. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/README.md +0 -0
  328. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/__init__.py +0 -0
  329. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/constants.py +0 -0
  330. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/erc20_transfers.py +0 -0
  331. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/moralis.png +0 -0
  332. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/schema.json +0 -0
  333. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/token_analytics.py +0 -0
  334. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/token_price.py +0 -0
  335. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/token/token_search.py +0 -0
  336. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/__init__.py +0 -0
  337. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/base.py +0 -0
  338. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/schema.json +0 -0
  339. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/twitter/twitter.png +0 -0
  340. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/unrealspeech/__init__.py +0 -0
  341. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/unrealspeech/base.py +0 -0
  342. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/unrealspeech/schema.json +0 -0
  343. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/unrealspeech/unrealspeech.jpg +0 -0
  344. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/__init__.py +0 -0
  345. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/base.py +0 -0
  346. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/input.py +0 -0
  347. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/schema.json +0 -0
  348. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/venice_audio.py +0 -0
  349. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_audio/venice_logo.jpg +0 -0
  350. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/README.md +0 -0
  351. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/__init__.py +0 -0
  352. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/api.py +0 -0
  353. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/base.py +0 -0
  354. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/config.py +0 -0
  355. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_enhance/README.md +0 -0
  356. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_enhance/__init__.py +0 -0
  357. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  358. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  359. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  360. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/README.md +0 -0
  361. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/__init__.py +0 -0
  362. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  363. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  364. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  365. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  366. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  367. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  368. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  369. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  370. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  371. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_upscale/README.md +0 -0
  372. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_upscale/__init__.py +0 -0
  373. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  374. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  375. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  376. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_vision/README.md +0 -0
  377. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_vision/__init__.py +0 -0
  378. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_vision/image_vision.py +0 -0
  379. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  380. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  381. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/schema.json +0 -0
  382. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/utils.py +0 -0
  383. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/venice_image/venice_image.jpg +0 -0
  384. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/README.md +0 -0
  385. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/__init__.py +0 -0
  386. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/base.py +0 -0
  387. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/langchain.png +0 -0
  388. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/schema.json +0 -0
  389. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/skills/web_scraper/utils.py +0 -0
  390. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/__init__.py +0 -0
  391. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/chain.py +0 -0
  392. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/error.py +0 -0
  393. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/logging.py +0 -0
  394. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/middleware.py +0 -0
  395. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/random.py +0 -0
  396. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/s3.py +0 -0
  397. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/slack_alert.py +0 -0
  398. {intentkit-0.6.0.dev13 → intentkit-0.6.0.dev15}/utils/tx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.0.dev13
3
+ Version: 0.6.0.dev15
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.13"
6
+ __version__ = "0.6.0-dev.15"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -546,12 +546,13 @@ async def stream_agent(message: ChatMessageCreate):
546
546
  thread_id = f"{input.agent_id}-{input.chat_id}"
547
547
  stream_config = {
548
548
  "configurable": {
549
- "agent": agent,
549
+ "agent_id": agent.id,
550
550
  "thread_id": thread_id,
551
551
  "chat_id": input.chat_id,
552
552
  "user_id": input.user_id,
553
553
  "app_id": input.app_id,
554
554
  "entrypoint": input.author_type,
555
+ "is_private": is_private,
555
556
  "payer": payer if payment_enabled else None,
556
557
  },
557
558
  "recursion_limit": recursion_limit,
@@ -25,6 +25,7 @@ from pydantic import BaseModel
25
25
 
26
26
  from intentkit.abstracts.graph import AgentError, AgentState
27
27
  from intentkit.core.credit import skill_cost
28
+ from intentkit.models.agent import Agent
28
29
  from intentkit.models.credit import CreditAccount, OwnerType
29
30
  from intentkit.models.skill import Skill
30
31
 
@@ -202,7 +203,8 @@ class PostModelNode(RunnableCallable):
202
203
  return state_update
203
204
  logger.debug(f"last: {messages[-1]}")
204
205
  msg = messages[-1]
205
- agent = cfg.get("agent")
206
+ agent_id = cfg.get("agent_id")
207
+ agent = await Agent.get(agent_id)
206
208
  account = await CreditAccount.get_or_create(OwnerType.USER, payer)
207
209
  if hasattr(msg, "tool_calls") and msg.tool_calls:
208
210
  for tool_call in msg.tool_calls:
@@ -535,6 +535,10 @@
535
535
  "title": "System",
536
536
  "$ref": "../skills/system/schema.json"
537
537
  },
538
+ "http": {
539
+ "title": "HTTP Client",
540
+ "$ref": "../skills/http/schema.json"
541
+ },
538
542
  "web_scraper": {
539
543
  "title": "Web Scraper & Content Indexing",
540
544
  "$ref": "../skills/web_scraper/schema.json"
@@ -567,6 +571,10 @@
567
571
  "title": "Slack",
568
572
  "$ref": "../skills/slack/schema.json"
569
573
  },
574
+ "supabase": {
575
+ "title": "Supabase",
576
+ "$ref": "../skills/supabase/schema.json"
577
+ },
570
578
  "venice_audio": {
571
579
  "title": "Venice Audio",
572
580
  "$ref": "../skills/venice_audio/schema.json"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.6.0-dev.13"
3
+ version = "0.6.0-dev.15"
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"
@@ -1,3 +1,4 @@
1
+ import asyncio
1
2
  import logging
2
3
  from typing import Any, Callable, Dict, Literal, NotRequired, Optional, TypedDict, Union
3
4
 
@@ -30,10 +31,33 @@ class SkillConfig(TypedDict):
30
31
 
31
32
 
32
33
  class SkillContext(BaseModel):
33
- agent: Agent
34
- config: Dict[str, Any]
35
- user_id: Optional[str]
34
+ skill_category: str
35
+ agent_id: str
36
+ user_id: Optional[str] = None
37
+ chat_id: Optional[str] = None
38
+ app_id: Optional[str] = None
36
39
  entrypoint: Literal["web", "twitter", "telegram", "trigger", "api"]
40
+ is_private: bool
41
+ payer: Optional[str] = None
42
+ _agent: Optional[Agent] = None
43
+
44
+ @property
45
+ def agent(self) -> Agent:
46
+ if self._agent is None:
47
+ self._agent = asyncio.run(Agent.get(self.agent_id))
48
+ return self._agent
49
+
50
+ @property
51
+ def config(self) -> Dict[str, Any]:
52
+ agent = self.agent
53
+ config = None
54
+ if agent.skills:
55
+ config = agent.skills.get(self.skill_category)
56
+ if not config:
57
+ raise ValueError(
58
+ f"Skill {self.skill_category} not found in agent {self.agent_id}"
59
+ )
60
+ return config
37
61
 
38
62
 
39
63
  class IntentKitSkill(BaseTool):
@@ -156,19 +180,15 @@ class IntentKitSkill(BaseTool):
156
180
  def context_from_config(self, runner_config: RunnableConfig) -> SkillContext:
157
181
  if "configurable" not in runner_config:
158
182
  raise ValueError("configurable not in runner_config")
159
- if "agent" not in runner_config["configurable"]:
160
- raise ValueError("agent not in runner_config['configurable']")
161
- agent: Agent = runner_config["configurable"].get("agent")
162
- config = None
163
- if agent.skills:
164
- config = agent.skills.get(self.category)
165
- if not config:
166
- config = getattr(agent, self.category + "_config", {})
167
- if not config:
168
- config = {}
183
+ configurable = runner_config["configurable"]
184
+ if not configurable:
185
+ raise ValueError("configurable in runnable config is empty")
169
186
  return SkillContext(
170
- agent=agent,
171
- config=config,
172
- user_id=runner_config["configurable"].get("user_id"),
173
- entrypoint=runner_config["configurable"].get("entrypoint"),
187
+ skill_category=self.category,
188
+ agent_id=configurable.get("agent_id"),
189
+ user_id=configurable.get("user_id"),
190
+ app_id=configurable.get("app_id"),
191
+ chat_id=configurable.get("chat_id"),
192
+ entrypoint=configurable.get("entrypoint"),
193
+ is_private=configurable.get("is_private"),
174
194
  )
@@ -57,7 +57,7 @@ class CryptoCompareFetchNews(CryptoCompareBaseTool):
57
57
  context = self.context_from_config(config)
58
58
 
59
59
  # Check rate limit
60
- await self.check_rate_limit(context.agent.id, max_requests=5, interval=60)
60
+ await self.check_rate_limit(context.agent_id, max_requests=5, interval=60)
61
61
 
62
62
  # Get API key from context
63
63
  api_key = context.config.get("api_key")
@@ -93,4 +93,4 @@ class CryptoCompareFetchNews(CryptoCompareBaseTool):
93
93
 
94
94
  except Exception as e:
95
95
  logger.error("Error fetching news: %s", str(e))
96
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
96
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -67,7 +67,7 @@ class CryptoCompareFetchPrice(CryptoCompareBaseTool):
67
67
  context = self.context_from_config(config)
68
68
 
69
69
  # Check rate limit
70
- await self.check_rate_limit(context.agent.id, max_requests=10, interval=60)
70
+ await self.check_rate_limit(context.agent_id, max_requests=10, interval=60)
71
71
 
72
72
  # Get API key from context
73
73
  api_key = context.config.get("api_key")
@@ -96,4 +96,4 @@ class CryptoCompareFetchPrice(CryptoCompareBaseTool):
96
96
 
97
97
  except Exception as e:
98
98
  logger.error("Error fetching price: %s", str(e))
99
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
99
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -73,7 +73,7 @@ class CryptoCompareFetchTopExchanges(CryptoCompareBaseTool):
73
73
  context = self.context_from_config(config)
74
74
 
75
75
  # Check rate limit
76
- await self.check_rate_limit(context.agent.id, max_requests=5, interval=60)
76
+ await self.check_rate_limit(context.agent_id, max_requests=5, interval=60)
77
77
 
78
78
  # Get API key from context
79
79
  api_key = context.config.get("api_key")
@@ -110,4 +110,4 @@ class CryptoCompareFetchTopExchanges(CryptoCompareBaseTool):
110
110
 
111
111
  except Exception as e:
112
112
  logger.error("Error fetching top exchanges: %s", str(e))
113
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
113
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -66,7 +66,7 @@ class CryptoCompareFetchTopMarketCap(CryptoCompareBaseTool):
66
66
  context = self.context_from_config(config)
67
67
 
68
68
  # Check rate limit
69
- await self.check_rate_limit(context.agent.id, max_requests=5, interval=60)
69
+ await self.check_rate_limit(context.agent_id, max_requests=5, interval=60)
70
70
 
71
71
  # Get API key from context
72
72
  api_key = context.config.get("api_key")
@@ -106,4 +106,4 @@ class CryptoCompareFetchTopMarketCap(CryptoCompareBaseTool):
106
106
 
107
107
  except Exception as e:
108
108
  logger.error("Error fetching top market cap: %s", str(e))
109
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
109
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -65,7 +65,7 @@ class CryptoCompareFetchTopVolume(CryptoCompareBaseTool):
65
65
  context = self.context_from_config(config)
66
66
 
67
67
  # Check rate limit
68
- await self.check_rate_limit(context.agent.id, max_requests=5, interval=60)
68
+ await self.check_rate_limit(context.agent_id, max_requests=5, interval=60)
69
69
 
70
70
  # Get API key from context
71
71
  api_key = context.config.get("api_key")
@@ -105,4 +105,4 @@ class CryptoCompareFetchTopVolume(CryptoCompareBaseTool):
105
105
 
106
106
  except Exception as e:
107
107
  logger.error("Error fetching top volume: %s", str(e))
108
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
108
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -68,7 +68,7 @@ class CryptoCompareFetchTradingSignals(CryptoCompareBaseTool):
68
68
  context = self.context_from_config(config)
69
69
 
70
70
  # Check rate limit
71
- await self.check_rate_limit(context.agent.id, max_requests=5, interval=60)
71
+ await self.check_rate_limit(context.agent_id, max_requests=5, interval=60)
72
72
 
73
73
  # Get API key from context
74
74
  api_key = context.config.get("api_key")
@@ -104,4 +104,4 @@ class CryptoCompareFetchTradingSignals(CryptoCompareBaseTool):
104
104
 
105
105
  except Exception as e:
106
106
  logger.error("Error fetching trading signals: %s", str(e))
107
- raise type(e)(f"[agent:{context.agent.id}]: {e}") from e
107
+ raise type(e)(f"[agent:{context.agent_id}]: {e}") from e
@@ -52,7 +52,7 @@ class DefiLlamaBaseTool(IntentKitSkill):
52
52
  Rate limit status and error message if limited
53
53
  """
54
54
  rate_limit = await self.skill_store.get_agent_skill_data(
55
- context.agent.id, self.name, "rate_limit"
55
+ context.agent_id, self.name, "rate_limit"
56
56
  )
57
57
  current_time = datetime.now(tz=timezone.utc)
58
58
 
@@ -67,7 +67,7 @@ class DefiLlamaBaseTool(IntentKitSkill):
67
67
 
68
68
  rate_limit["count"] += 1
69
69
  await self.skill_store.save_agent_skill_data(
70
- context.agent.id, self.name, "rate_limit", rate_limit
70
+ context.agent_id, self.name, "rate_limit", rate_limit
71
71
  )
72
72
  return False, None
73
73
 
@@ -76,7 +76,7 @@ class DefiLlamaBaseTool(IntentKitSkill):
76
76
  "reset_time": (current_time + timedelta(minutes=interval)).isoformat(),
77
77
  }
78
78
  await self.skill_store.save_agent_skill_data(
79
- context.agent.id, self.name, "rate_limit", new_rate_limit
79
+ context.agent_id, self.name, "rate_limit", new_rate_limit
80
80
  )
81
81
  return False, None
82
82
 
@@ -32,7 +32,7 @@ class EnsoBaseTool(IntentKitSkill):
32
32
  Returns:
33
33
  Optional[EvmServerAccount]: The account object if available.
34
34
  """
35
- client: CdpClient = await get_cdp_client(context.agent.id, self.skill_store)
35
+ client: CdpClient = await get_cdp_client(context.agent_id, self.skill_store)
36
36
  return await client.get_account()
37
37
 
38
38
  async def get_wallet_provider(
@@ -46,7 +46,7 @@ class EnsoBaseTool(IntentKitSkill):
46
46
  Returns:
47
47
  Optional[CdpEvmServerWalletProvider]: The wallet provider if available.
48
48
  """
49
- client: CdpClient = await get_cdp_client(context.agent.id, self.skill_store)
49
+ client: CdpClient = await get_cdp_client(context.agent_id, self.skill_store)
50
50
  return await client.get_wallet_provider()
51
51
 
52
52
  def get_chain_provider(self, context: SkillContext) -> Optional[ChainProvider]:
@@ -86,7 +86,7 @@ class EnsoGetNetworks(EnsoBaseTool):
86
86
  )
87
87
 
88
88
  await self.skill_store.save_agent_skill_data(
89
- context.agent.id,
89
+ context.agent_id,
90
90
  "enso_get_networks",
91
91
  "networks",
92
92
  networks_memory,
@@ -184,7 +184,7 @@ class EnsoRouteShortcut(EnsoBaseTool):
184
184
  """
185
185
 
186
186
  context: SkillContext = self.context_from_config(config)
187
- agent_id = context.agent.id
187
+ agent_id = context.agent_id
188
188
  api_token = self.get_api_token(context)
189
189
  account = await self.get_account(context)
190
190
 
@@ -158,7 +158,7 @@ class EnsoGetTokens(EnsoBaseTool):
158
158
  url = f"{base_url}/api/v1/tokens"
159
159
 
160
160
  context: SkillContext = self.context_from_config(config)
161
- agent_id = context.agent.id
161
+ agent_id = context.agent_id
162
162
  api_token = self.get_api_token(context)
163
163
  main_tokens = self.get_main_tokens(context)
164
164
  headers = {
@@ -49,7 +49,7 @@ class FirecrawlClearIndexedContent(FirecrawlBaseTool):
49
49
  str: Confirmation message
50
50
  """
51
51
  context = self.context_from_config(config)
52
- agent_id = context.agent.id if context and context.agent else None
52
+ agent_id = context.agent_id
53
53
 
54
54
  if not agent_id:
55
55
  return "Error: Agent ID not available for clearing content."
@@ -302,21 +302,13 @@ class FirecrawlCrawl(FirecrawlBaseTool):
302
302
  "language", ""
303
303
  ),
304
304
  "source_type": "firecrawl_crawl",
305
- "indexed_at": str(
306
- context.agent.id
307
- if context and context.agent
308
- else "unknown"
309
- ),
305
+ "indexed_at": str(context.agent_id),
310
306
  },
311
307
  )
312
308
  documents.append(document)
313
309
 
314
310
  # Get agent ID for indexing
315
- agent_id = (
316
- context.agent.id
317
- if context and context.agent
318
- else None
319
- )
311
+ agent_id = context.agent_id
320
312
  if agent_id and documents:
321
313
  # Index all documents
322
314
  total_chunks, was_merged = await index_documents(
@@ -54,10 +54,10 @@ class FirecrawlQueryIndexedContent(FirecrawlBaseTool):
54
54
  raise ValueError("Configuration is required but not provided")
55
55
 
56
56
  context = self.context_from_config(config)
57
- if not context or not context.agent or not context.agent.id:
57
+ if not context or not context.agent_id:
58
58
  raise ValueError("Agent ID is required but not found in configuration")
59
59
 
60
- agent_id = context.agent.id
60
+ agent_id = context.agent_id
61
61
 
62
62
  logger.info(f"[{agent_id}] Starting Firecrawl query operation: '{query}'")
63
63
 
@@ -111,8 +111,8 @@ class FirecrawlQueryIndexedContent(FirecrawlBaseTool):
111
111
  try:
112
112
  if config:
113
113
  context = self.context_from_config(config)
114
- if context and context.agent and context.agent.id:
115
- agent_id = context.agent.id
114
+ if context and context.agent_id:
115
+ agent_id = context.agent_id
116
116
  except Exception:
117
117
  pass
118
118
 
@@ -255,18 +255,12 @@ class FirecrawlScrape(FirecrawlBaseTool):
255
255
  "description": metadata.get("description", ""),
256
256
  "language": metadata.get("language", ""),
257
257
  "source_type": "firecrawl_scrape",
258
- "indexed_at": str(
259
- context.agent.id
260
- if context and context.agent
261
- else "unknown"
262
- ),
258
+ "indexed_at": str(context.agent_id),
263
259
  },
264
260
  )
265
261
 
266
262
  # Get agent ID for indexing
267
- agent_id = (
268
- context.agent.id if context and context.agent else None
269
- )
263
+ agent_id = context.agent_id
270
264
  if agent_id:
271
265
  # Index the document
272
266
  total_chunks, was_merged = await index_documents(
@@ -137,7 +137,7 @@ class ImageGenerationAnimagineXL(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -137,7 +137,7 @@ class ImageGenerationArthemyComics(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -137,7 +137,7 @@ class ImageGenerationArthemyReal(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -137,7 +137,7 @@ class ImageGenerationBrainDance(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -137,7 +137,7 @@ class ImageGenerationCyberRealisticXL(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -137,7 +137,7 @@ class ImageGenerationFlux1Dev(HeuristBaseTool):
137
137
  # Store the image URL
138
138
  image_url = response.text.strip('"')
139
139
  # Generate a key with agent ID as prefix
140
- image_key = f"{context.agent.id}/heurist/{job_id}"
140
+ image_key = f"{context.agent_id}/heurist/{job_id}"
141
141
  # Store the image and get the CDN URL
142
142
  stored_url = await store_image(image_url, image_key)
143
143
 
@@ -136,7 +136,7 @@ class ImageGenerationSDXL(HeuristBaseTool):
136
136
  # Store the image URL
137
137
  image_url = response.text.strip('"')
138
138
  # Generate a key with agent ID as prefix
139
- image_key = f"{context.agent.id}/heurist/{job_id}"
139
+ image_key = f"{context.agent_id}/heurist/{job_id}"
140
140
  # Store the image and get the CDN URL
141
141
  stored_url = await store_image(image_url, image_key)
142
142
 
@@ -0,0 +1,78 @@
1
+ # HTTP Client Skills
2
+
3
+ This skill category provides HTTP client functionality for making web requests using the httpx async client library.
4
+
5
+ ## Available Skills
6
+
7
+ ### http_get
8
+ Make HTTP GET requests to fetch data from web APIs and websites.
9
+
10
+ **Parameters:**
11
+ - `url` (string, required): The URL to send the GET request to
12
+ - `headers` (dict, optional): Custom headers to include in the request
13
+ - `params` (dict, optional): Query parameters to include in the request
14
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
15
+
16
+ **Example usage:**
17
+ ```
18
+ Fetch data from https://api.example.com/users with timeout of 10 seconds
19
+ ```
20
+
21
+ ### http_post
22
+ Make HTTP POST requests to send data to web APIs and submit forms.
23
+
24
+ **Parameters:**
25
+ - `url` (string, required): The URL to send the POST request to
26
+ - `data` (dict or string, optional): The data to send in the request body
27
+ - `headers` (dict, optional): Custom headers to include in the request
28
+ - `params` (dict, optional): Query parameters to include in the request
29
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
30
+
31
+ **Example usage:**
32
+ ```
33
+ Send a POST request to https://api.example.com/users with JSON data {"name": "John", "email": "john@example.com"}
34
+ ```
35
+
36
+ ### http_put
37
+ Make HTTP PUT requests to update or replace data on web APIs.
38
+
39
+ **Parameters:**
40
+ - `url` (string, required): The URL to send the PUT request to
41
+ - `data` (dict or string, optional): The data to send in the request body
42
+ - `headers` (dict, optional): Custom headers to include in the request
43
+ - `params` (dict, optional): Query parameters to include in the request
44
+ - `timeout` (float, optional): Request timeout in seconds (default: 30)
45
+
46
+ **Example usage:**
47
+ ```
48
+ Update user data at https://api.example.com/users/123 with {"name": "Jane Doe"}
49
+ ```
50
+
51
+ ## Features
52
+
53
+ - **Async Support**: All HTTP operations are asynchronous using httpx
54
+ - **Automatic JSON Handling**: Dictionary data is automatically sent as JSON with proper Content-Type headers
55
+ - **Error Handling**: Comprehensive error handling for timeouts, HTTP errors, and connection issues
56
+ - **Flexible Data Types**: Support for both JSON (dict) and raw string data in POST/PUT requests
57
+ - **Custom Headers**: Support for custom headers in all request types
58
+ - **Query Parameters**: Support for URL query parameters
59
+ - **Configurable Timeouts**: Customizable request timeouts
60
+
61
+ ## Configuration
62
+
63
+ Each skill can be configured with one of three states:
64
+ - `disabled`: Skill is not available
65
+ - `public`: Available to both agent owner and all users
66
+ - `private`: Available only to the agent owner
67
+
68
+ ## Natural Language Usage
69
+
70
+ These skills are designed to work seamlessly with natural language instructions:
71
+
72
+ - "Get the weather data from the API"
73
+ - "Send a POST request to create a new user"
74
+ - "Update the user profile using PUT request"
75
+ - "Fetch the latest news from the RSS feed"
76
+ - "Submit the form data to the webhook"
77
+
78
+ The AI agent will automatically select the appropriate HTTP method and construct the proper request based on your natural language description.