intentkit 0.6.6__tar.gz → 0.6.7.dev2__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 (401) hide show
  1. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/PKG-INFO +1 -1
  2. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/__init__.py +1 -1
  3. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/skill.py +42 -2
  4. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/agent.py +204 -3
  5. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/engine.py +0 -12
  6. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/skill.py +48 -2
  7. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/agent_data.py +30 -0
  8. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/app_setting.py +25 -1
  9. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/credit.py +15 -5
  10. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/pyproject.toml +1 -1
  11. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/__init__.py +24 -0
  12. intentkit-0.6.7.dev2/skills/system/add_autonomous_task.py +91 -0
  13. intentkit-0.6.7.dev2/skills/system/delete_autonomous_task.py +56 -0
  14. intentkit-0.6.7.dev2/skills/system/list_autonomous_tasks.py +52 -0
  15. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/schema.json +42 -0
  16. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/.gitignore +0 -0
  17. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/LICENSE +0 -0
  18. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/MANIFEST.in +0 -0
  19. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/README.md +0 -0
  20. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/__init__.py +0 -0
  21. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/agent.py +0 -0
  22. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/api.py +0 -0
  23. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/engine.py +0 -0
  24. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/exception.py +0 -0
  25. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/graph.py +0 -0
  26. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/abstracts/twitter.py +0 -0
  27. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/clients/__init__.py +0 -0
  28. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/clients/cdp.py +0 -0
  29. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/clients/twitter.py +0 -0
  30. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/config/__init__.py +0 -0
  31. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/config/config.py +0 -0
  32. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/__init__.py +0 -0
  33. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/api.py +0 -0
  34. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/client.py +0 -0
  35. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/credit.py +0 -0
  36. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/node.py +0 -0
  37. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/core/prompt.py +0 -0
  38. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/agent.py +0 -0
  39. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/agent_schema.json +0 -0
  40. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/base.py +0 -0
  41. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/chat.py +0 -0
  42. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/conversation.py +0 -0
  43. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/db.py +0 -0
  44. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/db_mig.py +0 -0
  45. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/generator.py +0 -0
  46. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/llm.py +0 -0
  47. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/redis.py +0 -0
  48. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/skill.py +0 -0
  49. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/models/user.py +0 -0
  50. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/__init__.py +0 -0
  51. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/acolyt/__init__.py +0 -0
  52. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/acolyt/acolyt.jpg +0 -0
  53. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/acolyt/ask.py +0 -0
  54. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/acolyt/base.py +0 -0
  55. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/acolyt/schema.json +0 -0
  56. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/README.md +0 -0
  57. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/__init__.py +0 -0
  58. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/aixbt.jpg +0 -0
  59. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/base.py +0 -0
  60. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/projects.py +0 -0
  61. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/aixbt/schema.json +0 -0
  62. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/allora/__init__.py +0 -0
  63. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/allora/allora.jpeg +0 -0
  64. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/allora/base.py +0 -0
  65. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/allora/price.py +0 -0
  66. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/allora/schema.json +0 -0
  67. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/base.py +0 -0
  68. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/README.md +0 -0
  69. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/__init__.py +0 -0
  70. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/base.py +0 -0
  71. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/carv.webp +0 -0
  72. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/fetch_news.py +0 -0
  73. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/onchain_query.py +0 -0
  74. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/schema.json +0 -0
  75. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/carv/token_info_and_price.py +0 -0
  76. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/__init__.py +0 -0
  77. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/base.py +0 -0
  78. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/cdp.png +0 -0
  79. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/get_balance.py +0 -0
  80. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/schema.json +0 -0
  81. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cdp/swap.py +0 -0
  82. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/README.md +0 -0
  83. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/__init__.py +0 -0
  84. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/base.py +0 -0
  85. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/chain_lookup.py +0 -0
  86. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/chainlist.png +0 -0
  87. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/chainlist/schema.json +0 -0
  88. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/common/__init__.py +0 -0
  89. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/common/base.py +0 -0
  90. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/common/common.jpg +0 -0
  91. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/common/current_time.py +0 -0
  92. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/common/schema.json +0 -0
  93. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/README.md +0 -0
  94. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/__init__.py +0 -0
  95. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/base.py +0 -0
  96. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/constants.py +0 -0
  97. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/cookiefun.png +0 -0
  98. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/get_account_details.py +0 -0
  99. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/get_account_feed.py +0 -0
  100. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/get_account_smart_followers.py +0 -0
  101. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/get_sectors.py +0 -0
  102. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/schema.json +0 -0
  103. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cookiefun/search_accounts.py +0 -0
  104. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/__init__.py +0 -0
  105. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/api.py +0 -0
  106. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/base.py +0 -0
  107. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/cryptocompare.png +0 -0
  108. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_news.py +0 -0
  109. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_price.py +0 -0
  110. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  111. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  112. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_top_volume.py +0 -0
  113. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  114. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptocompare/schema.json +0 -0
  115. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/__init__.py +0 -0
  116. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/base.py +0 -0
  117. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/cryptopanic.png +0 -0
  118. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  119. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  120. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/cryptopanic/schema.json +0 -0
  121. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/README.md +0 -0
  122. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/__init__.py +0 -0
  123. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/base.py +0 -0
  124. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/dapplooker.jpg +0 -0
  125. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/dapplooker_token_data.py +0 -0
  126. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dapplooker/schema.json +0 -0
  127. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/__init__.py +0 -0
  128. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/api.py +0 -0
  129. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/base.py +0 -0
  130. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/__init__.py +0 -0
  131. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  132. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_block.py +0 -0
  133. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_current_prices.py +0 -0
  134. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_first_price.py +0 -0
  135. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  136. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_price_chart.py +0 -0
  137. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  138. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/config/__init__.py +0 -0
  139. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/config/chains.py +0 -0
  140. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/defillama.jpeg +0 -0
  141. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/fees/__init__.py +0 -0
  142. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  143. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/schema.json +0 -0
  144. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/stablecoins/__init__.py +0 -0
  145. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  146. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  147. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  148. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  149. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tests/__init__.py +0 -0
  150. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tests/api_integration.test.py +0 -0
  151. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tests/api_unit.test.py +0 -0
  152. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/__init__.py +0 -0
  153. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  154. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_chains.py +0 -0
  155. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  156. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_protocol.py +0 -0
  157. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  158. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/tvl/fetch_protocols.py +0 -0
  159. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/volumes/__init__.py +0 -0
  160. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  161. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  162. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  163. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/yields/__init__.py +0 -0
  164. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  165. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/defillama/yields/fetch_pools.py +0 -0
  166. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/__init__.py +0 -0
  167. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/base.py +0 -0
  168. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/dexscreener.png +0 -0
  169. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/model/__init__.py +0 -0
  170. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/model/search_token_response.py +0 -0
  171. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/schema.json +0 -0
  172. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dexscreener/search_token.py +0 -0
  173. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/__init__.py +0 -0
  174. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/base.py +0 -0
  175. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/dune.png +0 -0
  176. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  177. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  178. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/dune_analytics/schema.json +0 -0
  179. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/README.md +0 -0
  180. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/__init__.py +0 -0
  181. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/base.py +0 -0
  182. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/elfa.jpg +0 -0
  183. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/mention.py +0 -0
  184. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/schema.json +0 -0
  185. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/stats.py +0 -0
  186. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/elfa/tokens.py +0 -0
  187. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/README.md +0 -0
  188. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/__init__.py +0 -0
  189. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/abi/__init__.py +0 -0
  190. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/abi/approval.py +0 -0
  191. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/abi/erc20.py +0 -0
  192. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/abi/route.py +0 -0
  193. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/base.py +0 -0
  194. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/best_yield.py +0 -0
  195. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/enso.jpg +0 -0
  196. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/networks.py +0 -0
  197. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/prices.py +0 -0
  198. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/route.py +0 -0
  199. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/schema.json +0 -0
  200. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/tokens.py +0 -0
  201. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/enso/wallet.py +0 -0
  202. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/README.md +0 -0
  203. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/__init__.py +0 -0
  204. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/base.py +0 -0
  205. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/clear.py +0 -0
  206. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/crawl.py +0 -0
  207. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/firecrawl.png +0 -0
  208. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/query.py +0 -0
  209. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/schema.json +0 -0
  210. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/scrape.py +0 -0
  211. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/firecrawl/utils.py +0 -0
  212. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/README.md +0 -0
  213. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/__init__.py +0 -0
  214. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/base.py +0 -0
  215. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/github.jpg +0 -0
  216. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/github_search.py +0 -0
  217. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/github/schema.json +0 -0
  218. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/__init__.py +0 -0
  219. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/base.py +0 -0
  220. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/heurist.png +0 -0
  221. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_animagine_xl.py +0 -0
  222. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_arthemy_comics.py +0 -0
  223. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_arthemy_real.py +0 -0
  224. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_braindance.py +0 -0
  225. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  226. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_flux_1_dev.py +0 -0
  227. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/image_generation_sdxl.py +0 -0
  228. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/heurist/schema.json +0 -0
  229. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/README.md +0 -0
  230. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/__init__.py +0 -0
  231. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/base.py +0 -0
  232. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/get.py +0 -0
  233. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/http.svg +0 -0
  234. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/post.py +0 -0
  235. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/put.py +0 -0
  236. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/http/schema.json +0 -0
  237. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/README.md +0 -0
  238. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/__init__.py +0 -0
  239. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/base.py +0 -0
  240. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/lifi.png +0 -0
  241. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/schema.json +0 -0
  242. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/token_execute.py +0 -0
  243. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/token_quote.py +0 -0
  244. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/lifi/utils.py +0 -0
  245. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/README.md +0 -0
  246. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/__init__.py +0 -0
  247. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/api.py +0 -0
  248. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/base.py +0 -0
  249. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/fetch_chain_portfolio.py +0 -0
  250. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/fetch_nft_portfolio.py +0 -0
  251. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/fetch_solana_portfolio.py +0 -0
  252. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  253. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/moralis.png +0 -0
  254. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/schema.json +0 -0
  255. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/tests/__init__.py +0 -0
  256. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/moralis/tests/test_wallet.py +0 -0
  257. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/nation/__init__.py +0 -0
  258. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/nation/base.py +0 -0
  259. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/nation/nation.png +0 -0
  260. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/nation/nft_check.py +0 -0
  261. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/nation/schema.json +0 -0
  262. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/__init__.py +0 -0
  263. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/base.py +0 -0
  264. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/dalle_image_generation.py +0 -0
  265. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/gpt_image_generation.py +0 -0
  266. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/gpt_image_to_image.py +0 -0
  267. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/image_to_text.py +0 -0
  268. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/openai.png +0 -0
  269. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/openai/schema.json +0 -0
  270. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/README.md +0 -0
  271. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/__init__.py +0 -0
  272. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/base.py +0 -0
  273. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/constants.py +0 -0
  274. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/moralis.png +0 -0
  275. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/schema.json +0 -0
  276. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/token_balances.py +0 -0
  277. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_approvals.py +0 -0
  278. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_defi_positions.py +0 -0
  279. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_history.py +0 -0
  280. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_net_worth.py +0 -0
  281. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_nfts.py +0 -0
  282. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_profitability.py +0 -0
  283. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_profitability_summary.py +0 -0
  284. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_stats.py +0 -0
  285. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/portfolio/wallet_swaps.py +0 -0
  286. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/skills.toml +0 -0
  287. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/__init__.py +0 -0
  288. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/base.py +0 -0
  289. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/get_channel.py +0 -0
  290. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/get_message.py +0 -0
  291. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/schedule_message.py +0 -0
  292. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/schema.json +0 -0
  293. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/send_message.py +0 -0
  294. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/slack/slack.jpg +0 -0
  295. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/__init__.py +0 -0
  296. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/base.py +0 -0
  297. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/delete_data.py +0 -0
  298. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/fetch_data.py +0 -0
  299. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/insert_data.py +0 -0
  300. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/invoke_function.py +0 -0
  301. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/schema.json +0 -0
  302. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/supabase.svg +0 -0
  303. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/update_data.py +0 -0
  304. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/supabase/upsert_data.py +0 -0
  305. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/base.py +0 -0
  306. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/read_agent_api_key.py +0 -0
  307. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/regenerate_agent_api_key.py +0 -0
  308. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/system/system.svg +0 -0
  309. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/README.md +0 -0
  310. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/__init__.py +0 -0
  311. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/base.py +0 -0
  312. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/schema.json +0 -0
  313. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/tavily.jpg +0 -0
  314. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/tavily_extract.py +0 -0
  315. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/tavily/tavily_search.py +0 -0
  316. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/README.md +0 -0
  317. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/__init__.py +0 -0
  318. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/base.py +0 -0
  319. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/constants.py +0 -0
  320. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/erc20_transfers.py +0 -0
  321. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/moralis.png +0 -0
  322. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/schema.json +0 -0
  323. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/token_analytics.py +0 -0
  324. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/token_price.py +0 -0
  325. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/token/token_search.py +0 -0
  326. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/__init__.py +0 -0
  327. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/base.py +0 -0
  328. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/follow_user.py +0 -0
  329. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/get_mentions.py +0 -0
  330. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/get_timeline.py +0 -0
  331. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/get_user_by_username.py +0 -0
  332. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/get_user_tweets.py +0 -0
  333. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/like_tweet.py +0 -0
  334. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/post_tweet.py +0 -0
  335. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/reply_tweet.py +0 -0
  336. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/retweet.py +0 -0
  337. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/schema.json +0 -0
  338. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/search_tweets.py +0 -0
  339. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/twitter/twitter.png +0 -0
  340. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/unrealspeech/__init__.py +0 -0
  341. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/unrealspeech/base.py +0 -0
  342. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/unrealspeech/schema.json +0 -0
  343. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/unrealspeech/text_to_speech.py +0 -0
  344. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/unrealspeech/unrealspeech.jpg +0 -0
  345. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/__init__.py +0 -0
  346. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/base.py +0 -0
  347. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/input.py +0 -0
  348. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/schema.json +0 -0
  349. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/venice_audio.py +0 -0
  350. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_audio/venice_logo.jpg +0 -0
  351. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/README.md +0 -0
  352. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/__init__.py +0 -0
  353. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/api.py +0 -0
  354. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/base.py +0 -0
  355. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/config.py +0 -0
  356. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_enhance/README.md +0 -0
  357. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_enhance/__init__.py +0 -0
  358. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  359. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  360. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  361. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/README.md +0 -0
  362. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/__init__.py +0 -0
  363. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  364. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  365. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  366. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  367. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  368. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  369. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  370. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  371. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  372. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_upscale/README.md +0 -0
  373. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_upscale/__init__.py +0 -0
  374. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  375. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  376. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  377. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_vision/README.md +0 -0
  378. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_vision/__init__.py +0 -0
  379. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_vision/image_vision.py +0 -0
  380. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  381. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  382. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/schema.json +0 -0
  383. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/utils.py +0 -0
  384. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/venice_image/venice_image.jpg +0 -0
  385. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/README.md +0 -0
  386. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/__init__.py +0 -0
  387. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/base.py +0 -0
  388. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/document_indexer.py +0 -0
  389. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/langchain.png +0 -0
  390. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/schema.json +0 -0
  391. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/scrape_and_index.py +0 -0
  392. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/utils.py +0 -0
  393. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/skills/web_scraper/website_indexer.py +0 -0
  394. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/__init__.py +0 -0
  395. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/chain.py +0 -0
  396. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/error.py +0 -0
  397. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/logging.py +0 -0
  398. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/random.py +0 -0
  399. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/s3.py +0 -0
  400. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/slack_alert.py +0 -0
  401. {intentkit-0.6.6 → intentkit-0.6.7.dev2}/utils/tx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.6
3
+ Version: 0.6.7.dev2
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.6"
6
+ __version__ = "0.6.7-dev2"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -1,7 +1,7 @@
1
1
  from abc import ABC, abstractmethod
2
- from typing import Any, Dict, Optional
2
+ from typing import Any, Dict, List, Optional
3
3
 
4
- from intentkit.models.agent import Agent
4
+ from intentkit.models.agent import Agent, AgentAutonomous
5
5
  from intentkit.models.agent_data import AgentData, AgentQuota
6
6
 
7
7
 
@@ -139,3 +139,43 @@ class SkillStoreABC(ABC):
139
139
  data: JSON data to store
140
140
  """
141
141
  pass
142
+
143
+ @staticmethod
144
+ @abstractmethod
145
+ async def list_autonomous_tasks(agent_id: str) -> List[AgentAutonomous]:
146
+ """List all autonomous tasks for an agent.
147
+
148
+ Args:
149
+ agent_id: ID of the agent
150
+
151
+ Returns:
152
+ List[AgentAutonomous]: List of autonomous task configurations
153
+ """
154
+ pass
155
+
156
+ @staticmethod
157
+ @abstractmethod
158
+ async def add_autonomous_task(
159
+ agent_id: str, task: AgentAutonomous
160
+ ) -> AgentAutonomous:
161
+ """Add a new autonomous task to an agent.
162
+
163
+ Args:
164
+ agent_id: ID of the agent
165
+ task: Autonomous task configuration
166
+
167
+ Returns:
168
+ AgentAutonomous: The created task
169
+ """
170
+ pass
171
+
172
+ @staticmethod
173
+ @abstractmethod
174
+ async def delete_autonomous_task(agent_id: str, task_id: str) -> None:
175
+ """Delete an autonomous task from an agent.
176
+
177
+ Args:
178
+ agent_id: ID of the agent
179
+ task_id: ID of the task to delete
180
+ """
181
+ pass
@@ -2,11 +2,12 @@ import logging
2
2
  import time
3
3
  from datetime import datetime, timedelta, timezone
4
4
  from decimal import Decimal
5
- from typing import Dict
5
+ from typing import Dict, List
6
6
 
7
- from sqlalchemy import func, select, text
7
+ from sqlalchemy import func, select, text, update
8
8
 
9
- from intentkit.models.agent import Agent
9
+ from intentkit.models.agent import Agent, AgentAutonomous, AgentTable
10
+ from intentkit.models.agent_data import AgentQuotaTable
10
11
  from intentkit.models.credit import CreditEventTable, EventType, UpstreamType
11
12
  from intentkit.models.db import get_session
12
13
  from intentkit.utils.error import IntentKitAPIError
@@ -189,3 +190,203 @@ async def agent_action_cost(agent_id: str) -> Dict[str, Decimal]:
189
190
  )
190
191
 
191
192
  return result
193
+
194
+
195
+ async def update_agent_action_cost():
196
+ """
197
+ Update action costs for all agents.
198
+
199
+ This function processes agents in batches of 100 to avoid memory issues.
200
+ For each agent, it calculates various action cost metrics:
201
+ - avg_action_cost: average cost per action
202
+ - min_action_cost: minimum cost per action
203
+ - max_action_cost: maximum cost per action
204
+ - low_action_cost: average cost of the lowest 20% of actions
205
+ - medium_action_cost: average cost of the middle 60% of actions
206
+ - high_action_cost: average cost of the highest 20% of actions
207
+
208
+ It then updates the corresponding record in the agent_quotas table.
209
+ """
210
+ logger.info("Starting update of agent average action costs")
211
+ start_time = time.time()
212
+ batch_size = 100
213
+ last_id = None
214
+ total_updated = 0
215
+
216
+ while True:
217
+ # Get a batch of agent IDs ordered by ID
218
+ async with get_session() as session:
219
+ query = select(AgentTable.id).order_by(AgentTable.id)
220
+
221
+ # Apply pagination if we have a last_id from previous batch
222
+ if last_id:
223
+ query = query.where(AgentTable.id > last_id)
224
+
225
+ query = query.limit(batch_size)
226
+ result = await session.execute(query)
227
+ agent_ids = [row[0] for row in result]
228
+
229
+ # If no more agents, we're done
230
+ if not agent_ids:
231
+ break
232
+
233
+ # Update last_id for next batch
234
+ last_id = agent_ids[-1]
235
+
236
+ # Process this batch of agents
237
+ logger.info(
238
+ f"Processing batch of {len(agent_ids)} agents starting with ID {agent_ids[0]}"
239
+ )
240
+ batch_start_time = time.time()
241
+
242
+ for agent_id in agent_ids:
243
+ try:
244
+ # Calculate action costs for this agent
245
+ costs = await agent_action_cost(agent_id)
246
+
247
+ # Update the agent's quota record
248
+ async with get_session() as session:
249
+ update_stmt = (
250
+ update(AgentQuotaTable)
251
+ .where(AgentQuotaTable.id == agent_id)
252
+ .values(
253
+ avg_action_cost=costs["avg_action_cost"],
254
+ min_action_cost=costs["min_action_cost"],
255
+ max_action_cost=costs["max_action_cost"],
256
+ low_action_cost=costs["low_action_cost"],
257
+ medium_action_cost=costs["medium_action_cost"],
258
+ high_action_cost=costs["high_action_cost"],
259
+ )
260
+ )
261
+ await session.execute(update_stmt)
262
+ await session.commit()
263
+
264
+ total_updated += 1
265
+ except Exception as e:
266
+ logger.error(
267
+ f"Error updating action costs for agent {agent_id}: {str(e)}"
268
+ )
269
+
270
+ batch_time = time.time() - batch_start_time
271
+ logger.info(f"Completed batch in {batch_time:.3f}s")
272
+
273
+ total_time = time.time() - start_time
274
+ logger.info(
275
+ f"Finished updating action costs for {total_updated} agents in {total_time:.3f}s"
276
+ )
277
+
278
+
279
+ async def list_autonomous_tasks(agent_id: str) -> List[AgentAutonomous]:
280
+ """
281
+ List all autonomous tasks for an agent.
282
+
283
+ Args:
284
+ agent_id: ID of the agent
285
+
286
+ Returns:
287
+ List[AgentAutonomous]: List of autonomous task configurations
288
+
289
+ Raises:
290
+ IntentKitAPIError: If agent is not found
291
+ """
292
+ agent = await Agent.get(agent_id)
293
+ if not agent:
294
+ raise IntentKitAPIError(
295
+ 400, "AgentNotFound", f"Agent with ID {agent_id} does not exist."
296
+ )
297
+
298
+ if not agent.autonomous:
299
+ return []
300
+
301
+ return agent.autonomous
302
+
303
+
304
+ async def add_autonomous_task(agent_id: str, task: AgentAutonomous) -> AgentAutonomous:
305
+ """
306
+ Add a new autonomous task to an agent.
307
+
308
+ Args:
309
+ agent_id: ID of the agent
310
+ task: Autonomous task configuration (id will be generated if not provided)
311
+
312
+ Returns:
313
+ AgentAutonomous: The created task with generated ID
314
+
315
+ Raises:
316
+ IntentKitAPIError: If agent is not found
317
+ """
318
+ agent = await Agent.get(agent_id)
319
+ if not agent:
320
+ raise IntentKitAPIError(
321
+ 400, "AgentNotFound", f"Agent with ID {agent_id} does not exist."
322
+ )
323
+
324
+ # Get current autonomous tasks
325
+ current_tasks = agent.autonomous or []
326
+ if not isinstance(current_tasks, list):
327
+ current_tasks = []
328
+
329
+ # Add the new task
330
+ current_tasks.append(task)
331
+
332
+ # Update the agent in the database
333
+ async with get_session() as session:
334
+ update_stmt = (
335
+ update(AgentTable)
336
+ .where(AgentTable.id == agent_id)
337
+ .values(autonomous=current_tasks)
338
+ )
339
+ await session.execute(update_stmt)
340
+ await session.commit()
341
+
342
+ logger.info(f"Added autonomous task {task.id} to agent {agent_id}")
343
+ return task
344
+
345
+
346
+ async def delete_autonomous_task(agent_id: str, task_id: str) -> None:
347
+ """
348
+ Delete an autonomous task from an agent.
349
+
350
+ Args:
351
+ agent_id: ID of the agent
352
+ task_id: ID of the task to delete
353
+
354
+ Raises:
355
+ IntentKitAPIError: If agent is not found or task is not found
356
+ """
357
+ agent = await Agent.get(agent_id)
358
+ if not agent:
359
+ raise IntentKitAPIError(
360
+ 400, "AgentNotFound", f"Agent with ID {agent_id} does not exist."
361
+ )
362
+
363
+ # Get current autonomous tasks
364
+ current_tasks = agent.autonomous or []
365
+ if not isinstance(current_tasks, list):
366
+ current_tasks = []
367
+
368
+ # Find and remove the task
369
+ task_found = False
370
+ updated_tasks = []
371
+ for task_data in current_tasks:
372
+ if isinstance(task_data, dict) and task_data.get("id") == task_id:
373
+ task_found = True
374
+ continue
375
+ updated_tasks.append(task_data)
376
+
377
+ if not task_found:
378
+ raise IntentKitAPIError(
379
+ 404, "TaskNotFound", f"Autonomous task with ID {task_id} not found."
380
+ )
381
+
382
+ # Update the agent in the database
383
+ async with get_session() as session:
384
+ update_stmt = (
385
+ update(AgentTable)
386
+ .where(AgentTable.id == agent_id)
387
+ .values(autonomous=updated_tasks)
388
+ )
389
+ await session.execute(update_stmt)
390
+ await session.commit()
391
+
392
+ logger.info(f"Deleted autonomous task {task_id} from agent {agent_id}")
@@ -1012,15 +1012,3 @@ async def thread_stats(agent_id: str, chat_id: str) -> list[BaseMessage]:
1012
1012
  return snap.values["messages"]
1013
1013
  else:
1014
1014
  return []
1015
-
1016
-
1017
- async def is_payment_required(input: ChatMessageCreate, agent: Agent) -> bool:
1018
- if not config.payment_enabled:
1019
- return False
1020
- payment_settings = await AppSetting.payment()
1021
- if payment_settings.agent_whitelist_enabled:
1022
- if agent.id not in payment_settings.agent_whitelist:
1023
- return False
1024
- if input.user_id and agent.owner:
1025
- return True
1026
- return False
@@ -1,8 +1,17 @@
1
- from typing import Any, Dict, Optional
1
+ from typing import Any, Dict, List, Optional
2
2
 
3
3
  from intentkit.abstracts.skill import SkillStoreABC
4
4
  from intentkit.config.config import config
5
- from intentkit.models.agent import Agent
5
+ from intentkit.core.agent import (
6
+ add_autonomous_task as _add_autonomous_task,
7
+ )
8
+ from intentkit.core.agent import (
9
+ delete_autonomous_task as _delete_autonomous_task,
10
+ )
11
+ from intentkit.core.agent import (
12
+ list_autonomous_tasks as _list_autonomous_tasks,
13
+ )
14
+ from intentkit.models.agent import Agent, AgentAutonomous
6
15
  from intentkit.models.agent_data import AgentData, AgentQuota
7
16
  from intentkit.models.skill import (
8
17
  AgentSkillData,
@@ -131,5 +140,42 @@ class SkillStore(SkillStoreABC):
131
140
  )
132
141
  await skill_data.save()
133
142
 
143
+ @staticmethod
144
+ async def list_autonomous_tasks(agent_id: str) -> List[AgentAutonomous]:
145
+ """List all autonomous tasks for an agent.
146
+
147
+ Args:
148
+ agent_id: ID of the agent
149
+
150
+ Returns:
151
+ List[AgentAutonomous]: List of autonomous task configurations
152
+ """
153
+ return await _list_autonomous_tasks(agent_id)
154
+
155
+ @staticmethod
156
+ async def add_autonomous_task(
157
+ agent_id: str, task: AgentAutonomous
158
+ ) -> AgentAutonomous:
159
+ """Add a new autonomous task to an agent.
160
+
161
+ Args:
162
+ agent_id: ID of the agent
163
+ task: Autonomous task configuration
164
+
165
+ Returns:
166
+ AgentAutonomous: The created task
167
+ """
168
+ return await _add_autonomous_task(agent_id, task)
169
+
170
+ @staticmethod
171
+ async def delete_autonomous_task(agent_id: str, task_id: str) -> None:
172
+ """Delete an autonomous task from an agent.
173
+
174
+ Args:
175
+ agent_id: ID of the agent
176
+ task_id: ID of the task to delete
177
+ """
178
+ await _delete_autonomous_task(agent_id, task_id)
179
+
134
180
 
135
181
  skill_store = SkillStore()
@@ -814,3 +814,33 @@ class AgentQuota(BaseModel):
814
814
  # Update this instance
815
815
  await db.refresh(quota_record)
816
816
  self.model_validate(quota_record)
817
+
818
+ @staticmethod
819
+ async def reset_daily_quotas():
820
+ """Reset daily quotas for all agents at UTC 00:00.
821
+ Resets message_count_daily and twitter_count_daily to 0.
822
+ """
823
+ from sqlalchemy import update
824
+
825
+ async with get_session() as session:
826
+ stmt = update(AgentQuotaTable).values(
827
+ message_count_daily=0,
828
+ twitter_count_daily=0,
829
+ free_income_daily=0,
830
+ )
831
+ await session.execute(stmt)
832
+ await session.commit()
833
+
834
+ @staticmethod
835
+ async def reset_monthly_quotas():
836
+ """Reset monthly quotas for all agents at the start of each month.
837
+ Resets message_count_monthly and autonomous_count_monthly to 0.
838
+ """
839
+ from sqlalchemy import update
840
+
841
+ async with get_session() as session:
842
+ stmt = update(AgentQuotaTable).values(
843
+ message_count_monthly=0, autonomous_count_monthly=0
844
+ )
845
+ await session.execute(stmt)
846
+ await session.commit()
@@ -46,6 +46,8 @@ class PaymentSettings(BaseModel):
46
46
  "credit_per_usdc": 1000,
47
47
  "fee_platform_percentage": 100,
48
48
  "fee_dev_percentage": 20,
49
+ "free_quota": 480,
50
+ "refill_amount": 20,
49
51
  "agent_whitelist_enabled": False,
50
52
  "agent_whitelist": [],
51
53
  }
@@ -68,6 +70,22 @@ class PaymentSettings(BaseModel):
68
70
  default=Decimal("20"), description="Developer fee percentage", ge=0, le=100
69
71
  ),
70
72
  ]
73
+ free_quota: Annotated[
74
+ Decimal,
75
+ Field(
76
+ default=Decimal("480"),
77
+ description="Daily free credit quota for new users",
78
+ ge=0,
79
+ ),
80
+ ]
81
+ refill_amount: Annotated[
82
+ Decimal,
83
+ Field(
84
+ default=Decimal("20"),
85
+ description="Hourly refill amount for free credits",
86
+ ge=0,
87
+ ),
88
+ ]
71
89
  agent_whitelist_enabled: Annotated[
72
90
  bool,
73
91
  Field(default=False, description="Whether agent whitelist is enabled"),
@@ -77,7 +95,13 @@ class PaymentSettings(BaseModel):
77
95
  Field(default_factory=list, description="List of whitelisted agent IDs"),
78
96
  ]
79
97
 
80
- @field_validator("credit_per_usdc", "fee_platform_percentage", "fee_dev_percentage")
98
+ @field_validator(
99
+ "credit_per_usdc",
100
+ "fee_platform_percentage",
101
+ "fee_dev_percentage",
102
+ "free_quota",
103
+ "refill_amount",
104
+ )
81
105
  @classmethod
82
106
  def round_decimal(cls, v: Any) -> Decimal:
83
107
  """Round decimal values to 4 decimal places."""
@@ -6,6 +6,7 @@ from typing import Annotated, Any, Dict, List, Optional, Tuple
6
6
 
7
7
  from epyxid import XID
8
8
  from fastapi import HTTPException
9
+ from intentkit.models.app_setting import AppSetting
9
10
  from intentkit.models.base import Base
10
11
  from intentkit.models.db import get_session
11
12
  from pydantic import BaseModel, ConfigDict, Field, field_validator
@@ -437,8 +438,8 @@ class CreditAccount(BaseModel):
437
438
  session: AsyncSession,
438
439
  owner_type: OwnerType,
439
440
  owner_id: str,
440
- free_quota: Decimal = Decimal("480.0"),
441
- refill_amount: Decimal = Decimal("20.0"),
441
+ free_quota: Optional[Decimal] = None,
442
+ refill_amount: Optional[Decimal] = None,
442
443
  ) -> "CreditAccount":
443
444
  """Get an existing credit account or create a new one if it doesn't exist.
444
445
 
@@ -448,15 +449,24 @@ class CreditAccount(BaseModel):
448
449
  session: Async session to use for database queries
449
450
  owner_type: Type of the owner
450
451
  owner_id: ID of the owner
451
- free_quota: Daily quota for a new account if created
452
+ free_quota: Daily quota for a new account if created (if None, reads from payment settings)
453
+ refill_amount: Hourly refill amount (if None, reads from payment settings)
452
454
 
453
455
  Returns:
454
456
  CreditAccount: The existing or newly created credit account
455
457
  """
458
+ # Get payment settings if values not provided
459
+ if free_quota is None or refill_amount is None:
460
+ payment_settings = await AppSetting.payment()
461
+ if free_quota is None:
462
+ free_quota = payment_settings.free_quota
463
+ if refill_amount is None:
464
+ refill_amount = payment_settings.refill_amount
465
+
456
466
  if owner_type != OwnerType.USER:
457
467
  # only users have daily quota
458
- free_quota = 0.0
459
- refill_amount = 0.0
468
+ free_quota = Decimal("0.0")
469
+ refill_amount = Decimal("0.0")
460
470
  # Create event_id at the beginning for consistency
461
471
  event_id = str(XID())
462
472
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.6.6"
3
+ version = "0.6.7-dev2"
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"
@@ -5,7 +5,10 @@ from typing import TypedDict
5
5
 
6
6
  from intentkit.abstracts.skill import SkillStoreABC
7
7
  from intentkit.skills.base import SkillConfig, SkillOwnerState
8
+ from intentkit.skills.system.add_autonomous_task import AddAutonomousTask
8
9
  from intentkit.skills.system.base import SystemBaseTool
10
+ from intentkit.skills.system.delete_autonomous_task import DeleteAutonomousTask
11
+ from intentkit.skills.system.list_autonomous_tasks import ListAutonomousTasks
9
12
  from intentkit.skills.system.read_agent_api_key import ReadAgentApiKey
10
13
  from intentkit.skills.system.regenerate_agent_api_key import RegenerateAgentApiKey
11
14
 
@@ -18,6 +21,9 @@ logger = logging.getLogger(__name__)
18
21
  class SkillStates(TypedDict):
19
22
  read_agent_api_key: SkillOwnerState
20
23
  regenerate_agent_api_key: SkillOwnerState
24
+ list_autonomous_tasks: SkillOwnerState
25
+ add_autonomous_task: SkillOwnerState
26
+ delete_autonomous_task: SkillOwnerState
21
27
 
22
28
 
23
29
  class Config(SkillConfig):
@@ -85,6 +91,24 @@ def get_system_skill(
85
91
  skill_store=store,
86
92
  )
87
93
  return _cache[name]
94
+ elif name == "list_autonomous_tasks":
95
+ if name not in _cache:
96
+ _cache[name] = ListAutonomousTasks(
97
+ skill_store=store,
98
+ )
99
+ return _cache[name]
100
+ elif name == "add_autonomous_task":
101
+ if name not in _cache:
102
+ _cache[name] = AddAutonomousTask(
103
+ skill_store=store,
104
+ )
105
+ return _cache[name]
106
+ elif name == "delete_autonomous_task":
107
+ if name not in _cache:
108
+ _cache[name] = DeleteAutonomousTask(
109
+ skill_store=store,
110
+ )
111
+ return _cache[name]
88
112
  else:
89
113
  logger.warning(f"Unknown system skill: {name}")
90
114
  return None
@@ -0,0 +1,91 @@
1
+ from typing import Optional
2
+
3
+ from langchain_core.runnables import RunnableConfig
4
+ from pydantic import BaseModel, Field
5
+
6
+ from intentkit.models.agent import AgentAutonomous
7
+ from intentkit.skills.system.base import SystemBaseTool
8
+
9
+
10
+ class AddAutonomousTaskInput(BaseModel):
11
+ """Input model for add_autonomous_task skill."""
12
+
13
+ name: Optional[str] = Field(
14
+ default=None, description="Display name of the autonomous task configuration"
15
+ )
16
+ description: Optional[str] = Field(
17
+ default=None, description="Description of the autonomous task configuration"
18
+ )
19
+ minutes: Optional[int] = Field(
20
+ default=None,
21
+ description="Interval in minutes between operations, mutually exclusive with cron",
22
+ )
23
+ cron: Optional[str] = Field(
24
+ default=None,
25
+ description="Cron expression for scheduling operations, mutually exclusive with minutes",
26
+ )
27
+ prompt: str = Field(description="Special prompt used during autonomous operation")
28
+ enabled: Optional[bool] = Field(
29
+ default=False, description="Whether the autonomous configuration is enabled"
30
+ )
31
+
32
+
33
+ class AddAutonomousTaskOutput(BaseModel):
34
+ """Output model for add_autonomous_task skill."""
35
+
36
+ task: AgentAutonomous = Field(
37
+ description="The created autonomous task configuration"
38
+ )
39
+
40
+
41
+ class AddAutonomousTask(SystemBaseTool):
42
+ """Skill to add a new autonomous task to an agent."""
43
+
44
+ name: str = "system_add_autonomous_task"
45
+ description: str = (
46
+ "Add a new autonomous task configuration to the agent. "
47
+ "Allows setting up scheduled operations with custom prompts and intervals. "
48
+ "The minutes and cron fields are mutually exclusive. But you must provide one of them."
49
+ )
50
+ args_schema = AddAutonomousTaskInput
51
+
52
+ async def _arun(
53
+ self,
54
+ name: Optional[str] = None,
55
+ description: Optional[str] = None,
56
+ minutes: Optional[int] = None,
57
+ cron: Optional[str] = None,
58
+ prompt: str = "",
59
+ enabled: Optional[bool] = False,
60
+ config: RunnableConfig = None,
61
+ **kwargs,
62
+ ) -> AddAutonomousTaskOutput:
63
+ """Add an autonomous task to the agent.
64
+
65
+ Args:
66
+ name: Display name of the task
67
+ description: Description of the task
68
+ minutes: Interval in minutes (mutually exclusive with cron)
69
+ cron: Cron expression (mutually exclusive with minutes)
70
+ prompt: Special prompt for autonomous operation
71
+ enabled: Whether the task is enabled
72
+ config: Runtime configuration containing agent context
73
+
74
+ Returns:
75
+ AddAutonomousTaskOutput: The created task
76
+ """
77
+ context = self.context_from_config(config)
78
+ agent_id = context["agent_id"]
79
+
80
+ task = AgentAutonomous(
81
+ name=name,
82
+ description=description,
83
+ minutes=minutes,
84
+ cron=cron,
85
+ prompt=prompt,
86
+ enabled=enabled,
87
+ )
88
+
89
+ created_task = await self.skill_store.add_autonomous_task(agent_id, task)
90
+
91
+ return AddAutonomousTaskOutput(task=created_task)