intentkit 0.7.5.dev4__tar.gz → 0.7.5.dev6__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 (426) hide show
  1. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/PKG-INFO +1 -1
  2. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/__init__.py +1 -1
  3. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/agent.py +2 -2
  4. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/chat.py +3 -1
  5. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/credit.py +20 -11
  6. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/engine.py +10 -6
  7. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/agent.py +41 -21
  8. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/agent_data.py +6 -2
  9. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/credit.py +16 -3
  10. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/pyproject.toml +1 -1
  11. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/error.py +3 -0
  12. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/.gitignore +0 -0
  13. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/LICENSE +0 -0
  14. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/MANIFEST.in +0 -0
  15. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/README.md +0 -0
  16. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/__init__.py +0 -0
  17. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/agent.py +0 -0
  18. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/api.py +0 -0
  19. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/engine.py +0 -0
  20. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/graph.py +0 -0
  21. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/skill.py +0 -0
  22. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/abstracts/twitter.py +0 -0
  23. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/clients/__init__.py +0 -0
  24. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/clients/cdp.py +0 -0
  25. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/clients/twitter.py +0 -0
  26. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/clients/web3.py +0 -0
  27. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/config/__init__.py +0 -0
  28. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/config/config.py +0 -0
  29. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/__init__.py +0 -0
  30. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/api.py +0 -0
  31. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/client.py +0 -0
  32. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/node.py +0 -0
  33. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/core/prompt.py +0 -0
  34. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/agent_public.json +0 -0
  35. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/agent_schema.json +0 -0
  36. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/app_setting.py +0 -0
  37. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/base.py +0 -0
  38. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/chat.py +0 -0
  39. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/conversation.py +0 -0
  40. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/db.py +0 -0
  41. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/db_mig.py +0 -0
  42. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/generator.py +0 -0
  43. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/llm.py +0 -0
  44. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/redis.py +0 -0
  45. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/skill.py +0 -0
  46. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/models/user.py +0 -0
  47. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/__init__.py +0 -0
  48. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/acolyt/__init__.py +0 -0
  49. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/acolyt/acolyt.jpg +0 -0
  50. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/acolyt/ask.py +0 -0
  51. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/acolyt/base.py +0 -0
  52. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/acolyt/schema.json +0 -0
  53. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/README.md +0 -0
  54. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/__init__.py +0 -0
  55. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/aixbt.jpg +0 -0
  56. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/base.py +0 -0
  57. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/projects.py +0 -0
  58. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/aixbt/schema.json +0 -0
  59. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/allora/__init__.py +0 -0
  60. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/allora/allora.jpeg +0 -0
  61. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/allora/base.py +0 -0
  62. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/allora/price.py +0 -0
  63. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/allora/schema.json +0 -0
  64. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/base.py +0 -0
  65. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/README.md +0 -0
  66. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/__init__.py +0 -0
  67. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/base.py +0 -0
  68. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/carv.webp +0 -0
  69. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/fetch_news.py +0 -0
  70. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/onchain_query.py +0 -0
  71. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/schema.json +0 -0
  72. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/carv/token_info_and_price.py +0 -0
  73. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/README.md +0 -0
  74. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/__init__.py +0 -0
  75. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/base.py +0 -0
  76. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/casino.png +0 -0
  77. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/deck_draw.py +0 -0
  78. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/deck_shuffle.py +0 -0
  79. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/dice_roll.py +0 -0
  80. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/schema.json +0 -0
  81. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/casino/utils.py +0 -0
  82. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/__init__.py +0 -0
  83. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/base.py +0 -0
  84. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/cdp.png +0 -0
  85. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/get_balance.py +0 -0
  86. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/schema.json +0 -0
  87. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cdp/swap.py +0 -0
  88. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/README.md +0 -0
  89. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/__init__.py +0 -0
  90. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/base.py +0 -0
  91. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/chain_lookup.py +0 -0
  92. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/chainlist.png +0 -0
  93. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/chainlist/schema.json +0 -0
  94. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/common/__init__.py +0 -0
  95. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/common/base.py +0 -0
  96. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/common/common.jpg +0 -0
  97. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/common/current_time.py +0 -0
  98. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/common/schema.json +0 -0
  99. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/README.md +0 -0
  100. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/__init__.py +0 -0
  101. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/base.py +0 -0
  102. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/constants.py +0 -0
  103. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/cookiefun.png +0 -0
  104. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/get_account_details.py +0 -0
  105. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/get_account_feed.py +0 -0
  106. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/get_account_smart_followers.py +0 -0
  107. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/get_sectors.py +0 -0
  108. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/schema.json +0 -0
  109. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cookiefun/search_accounts.py +0 -0
  110. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/__init__.py +0 -0
  111. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/api.py +0 -0
  112. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/base.py +0 -0
  113. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/cryptocompare.png +0 -0
  114. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_news.py +0 -0
  115. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_price.py +0 -0
  116. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  117. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  118. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_top_volume.py +0 -0
  119. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  120. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptocompare/schema.json +0 -0
  121. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/__init__.py +0 -0
  122. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/base.py +0 -0
  123. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/cryptopanic.png +0 -0
  124. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  125. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  126. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/cryptopanic/schema.json +0 -0
  127. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/README.md +0 -0
  128. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/__init__.py +0 -0
  129. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/base.py +0 -0
  130. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/dapplooker.jpg +0 -0
  131. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/dapplooker_token_data.py +0 -0
  132. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dapplooker/schema.json +0 -0
  133. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/__init__.py +0 -0
  134. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/api.py +0 -0
  135. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/base.py +0 -0
  136. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/__init__.py +0 -0
  137. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  138. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_block.py +0 -0
  139. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_current_prices.py +0 -0
  140. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_first_price.py +0 -0
  141. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  142. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_price_chart.py +0 -0
  143. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  144. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/config/__init__.py +0 -0
  145. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/config/chains.py +0 -0
  146. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/defillama.jpeg +0 -0
  147. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/fees/__init__.py +0 -0
  148. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  149. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/schema.json +0 -0
  150. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/stablecoins/__init__.py +0 -0
  151. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  152. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  153. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  154. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  155. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tests/__init__.py +0 -0
  156. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tests/api_integration.test.py +0 -0
  157. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tests/api_unit.test.py +0 -0
  158. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/__init__.py +0 -0
  159. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  160. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_chains.py +0 -0
  161. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  162. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_protocol.py +0 -0
  163. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  164. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/tvl/fetch_protocols.py +0 -0
  165. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/volumes/__init__.py +0 -0
  166. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  167. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  168. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  169. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/yields/__init__.py +0 -0
  170. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  171. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/defillama/yields/fetch_pools.py +0 -0
  172. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/README.md +0 -0
  173. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/__init__.py +0 -0
  174. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/base.py +0 -0
  175. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/dexscreener.png +0 -0
  176. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/get_pair_info.py +0 -0
  177. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/get_token_pairs.py +0 -0
  178. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/get_tokens_info.py +0 -0
  179. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/model/__init__.py +0 -0
  180. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/model/search_token_response.py +0 -0
  181. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/schema.json +0 -0
  182. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/search_token.py +0 -0
  183. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dexscreener/utils.py +0 -0
  184. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/__init__.py +0 -0
  185. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/base.py +0 -0
  186. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/dune.png +0 -0
  187. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  188. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  189. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/dune_analytics/schema.json +0 -0
  190. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/README.md +0 -0
  191. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/__init__.py +0 -0
  192. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/base.py +0 -0
  193. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/elfa.jpg +0 -0
  194. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/mention.py +0 -0
  195. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/schema.json +0 -0
  196. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/stats.py +0 -0
  197. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/tokens.py +0 -0
  198. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/elfa/utils.py +0 -0
  199. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/README.md +0 -0
  200. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/__init__.py +0 -0
  201. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/abi/__init__.py +0 -0
  202. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/abi/approval.py +0 -0
  203. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/abi/erc20.py +0 -0
  204. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/abi/route.py +0 -0
  205. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/base.py +0 -0
  206. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/best_yield.py +0 -0
  207. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/enso.jpg +0 -0
  208. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/networks.py +0 -0
  209. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/prices.py +0 -0
  210. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/route.py +0 -0
  211. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/schema.json +0 -0
  212. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/tokens.py +0 -0
  213. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/enso/wallet.py +0 -0
  214. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/README.md +0 -0
  215. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/__init__.py +0 -0
  216. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/base.py +0 -0
  217. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/clear.py +0 -0
  218. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/crawl.py +0 -0
  219. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/firecrawl.png +0 -0
  220. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/query.py +0 -0
  221. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/schema.json +0 -0
  222. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/scrape.py +0 -0
  223. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/firecrawl/utils.py +0 -0
  224. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/README.md +0 -0
  225. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/__init__.py +0 -0
  226. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/base.py +0 -0
  227. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/github.jpg +0 -0
  228. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/github_search.py +0 -0
  229. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/github/schema.json +0 -0
  230. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/__init__.py +0 -0
  231. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/base.py +0 -0
  232. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/heurist.png +0 -0
  233. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_animagine_xl.py +0 -0
  234. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_arthemy_comics.py +0 -0
  235. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_arthemy_real.py +0 -0
  236. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_braindance.py +0 -0
  237. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  238. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_flux_1_dev.py +0 -0
  239. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/image_generation_sdxl.py +0 -0
  240. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/heurist/schema.json +0 -0
  241. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/README.md +0 -0
  242. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/__init__.py +0 -0
  243. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/base.py +0 -0
  244. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/get.py +0 -0
  245. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/http.svg +0 -0
  246. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/post.py +0 -0
  247. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/put.py +0 -0
  248. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/http/schema.json +0 -0
  249. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/README.md +0 -0
  250. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/__init__.py +0 -0
  251. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/base.py +0 -0
  252. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/lifi.png +0 -0
  253. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/schema.json +0 -0
  254. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/token_execute.py +0 -0
  255. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/token_quote.py +0 -0
  256. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/lifi/utils.py +0 -0
  257. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/README.md +0 -0
  258. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/__init__.py +0 -0
  259. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/api.py +0 -0
  260. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/base.py +0 -0
  261. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/fetch_chain_portfolio.py +0 -0
  262. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/fetch_nft_portfolio.py +0 -0
  263. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/fetch_solana_portfolio.py +0 -0
  264. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  265. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/moralis.png +0 -0
  266. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/schema.json +0 -0
  267. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/tests/__init__.py +0 -0
  268. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/moralis/tests/test_wallet.py +0 -0
  269. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/nation/__init__.py +0 -0
  270. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/nation/base.py +0 -0
  271. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/nation/nation.png +0 -0
  272. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/nation/nft_check.py +0 -0
  273. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/nation/schema.json +0 -0
  274. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/__init__.py +0 -0
  275. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/base.py +0 -0
  276. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/dalle_image_generation.py +0 -0
  277. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/gpt_image_generation.py +0 -0
  278. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/gpt_image_to_image.py +0 -0
  279. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/image_to_text.py +0 -0
  280. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/openai.png +0 -0
  281. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/openai/schema.json +0 -0
  282. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/README.md +0 -0
  283. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/__init__.py +0 -0
  284. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/base.py +0 -0
  285. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/constants.py +0 -0
  286. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/moralis.png +0 -0
  287. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/schema.json +0 -0
  288. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/token_balances.py +0 -0
  289. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_approvals.py +0 -0
  290. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_defi_positions.py +0 -0
  291. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_history.py +0 -0
  292. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_net_worth.py +0 -0
  293. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_nfts.py +0 -0
  294. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_profitability.py +0 -0
  295. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_profitability_summary.py +0 -0
  296. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_stats.py +0 -0
  297. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/portfolio/wallet_swaps.py +0 -0
  298. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/skills.toml +0 -0
  299. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/__init__.py +0 -0
  300. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/base.py +0 -0
  301. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/get_channel.py +0 -0
  302. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/get_message.py +0 -0
  303. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/schedule_message.py +0 -0
  304. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/schema.json +0 -0
  305. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/send_message.py +0 -0
  306. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/slack/slack.jpg +0 -0
  307. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/__init__.py +0 -0
  308. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/base.py +0 -0
  309. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/delete_data.py +0 -0
  310. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/fetch_data.py +0 -0
  311. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/insert_data.py +0 -0
  312. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/invoke_function.py +0 -0
  313. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/schema.json +0 -0
  314. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/supabase.svg +0 -0
  315. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/update_data.py +0 -0
  316. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/supabase/upsert_data.py +0 -0
  317. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/__init__.py +0 -0
  318. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/add_autonomous_task.py +0 -0
  319. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/base.py +0 -0
  320. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/delete_autonomous_task.py +0 -0
  321. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/edit_autonomous_task.py +0 -0
  322. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/list_autonomous_tasks.py +0 -0
  323. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/read_agent_api_key.py +0 -0
  324. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/regenerate_agent_api_key.py +0 -0
  325. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/schema.json +0 -0
  326. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/system/system.svg +0 -0
  327. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/README.md +0 -0
  328. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/__init__.py +0 -0
  329. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/base.py +0 -0
  330. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/schema.json +0 -0
  331. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/tavily.jpg +0 -0
  332. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/tavily_extract.py +0 -0
  333. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/tavily/tavily_search.py +0 -0
  334. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/README.md +0 -0
  335. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/__init__.py +0 -0
  336. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/base.py +0 -0
  337. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/constants.py +0 -0
  338. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/erc20_transfers.py +0 -0
  339. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/moralis.png +0 -0
  340. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/schema.json +0 -0
  341. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/token_analytics.py +0 -0
  342. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/token_price.py +0 -0
  343. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/token/token_search.py +0 -0
  344. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/__init__.py +0 -0
  345. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/base.py +0 -0
  346. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/follow_user.py +0 -0
  347. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/get_mentions.py +0 -0
  348. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/get_timeline.py +0 -0
  349. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/get_user_by_username.py +0 -0
  350. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/get_user_tweets.py +0 -0
  351. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/like_tweet.py +0 -0
  352. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/post_tweet.py +0 -0
  353. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/reply_tweet.py +0 -0
  354. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/retweet.py +0 -0
  355. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/schema.json +0 -0
  356. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/search_tweets.py +0 -0
  357. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/twitter/twitter.png +0 -0
  358. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/unrealspeech/__init__.py +0 -0
  359. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/unrealspeech/base.py +0 -0
  360. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/unrealspeech/schema.json +0 -0
  361. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/unrealspeech/text_to_speech.py +0 -0
  362. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/unrealspeech/unrealspeech.jpg +0 -0
  363. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/__init__.py +0 -0
  364. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/base.py +0 -0
  365. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/input.py +0 -0
  366. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/schema.json +0 -0
  367. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/venice_audio.py +0 -0
  368. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_audio/venice_logo.jpg +0 -0
  369. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/README.md +0 -0
  370. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/__init__.py +0 -0
  371. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/api.py +0 -0
  372. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/base.py +0 -0
  373. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/config.py +0 -0
  374. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_enhance/README.md +0 -0
  375. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_enhance/__init__.py +0 -0
  376. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  377. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  378. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  379. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/README.md +0 -0
  380. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/__init__.py +0 -0
  381. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  382. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  383. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  384. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  385. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  386. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  387. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  388. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  389. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  390. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_upscale/README.md +0 -0
  391. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_upscale/__init__.py +0 -0
  392. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  393. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  394. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  395. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_vision/README.md +0 -0
  396. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_vision/__init__.py +0 -0
  397. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_vision/image_vision.py +0 -0
  398. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  399. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  400. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/schema.json +0 -0
  401. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/utils.py +0 -0
  402. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/venice_image/venice_image.jpg +0 -0
  403. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/README.md +0 -0
  404. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/__init__.py +0 -0
  405. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/base.py +0 -0
  406. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/document_indexer.py +0 -0
  407. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/langchain.png +0 -0
  408. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/schema.json +0 -0
  409. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/scrape_and_index.py +0 -0
  410. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/utils.py +0 -0
  411. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/web_scraper/website_indexer.py +0 -0
  412. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/README.md +0 -0
  413. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/__init__.py +0 -0
  414. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/base.py +0 -0
  415. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/price.py +0 -0
  416. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/schema.json +0 -0
  417. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/swap.py +0 -0
  418. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/transfer.py +0 -0
  419. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/skills/xmtp/xmtp.png +0 -0
  420. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/__init__.py +0 -0
  421. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/chain.py +0 -0
  422. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/logging.py +0 -0
  423. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/random.py +0 -0
  424. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/s3.py +0 -0
  425. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/slack_alert.py +0 -0
  426. {intentkit-0.7.5.dev4 → intentkit-0.7.5.dev6}/utils/tx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.7.5.dev4
3
+ Version: 0.7.5.dev6
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
6
6
  Project-URL: Repository, https://github.com/crestalnetwork/intentkit
@@ -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.7.5-dev4"
6
+ __version__ = "0.7.5-dev6"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -261,7 +261,7 @@ async def deploy_agent(
261
261
  """
262
262
  existing_agent = await Agent.get(agent_id)
263
263
  if not existing_agent:
264
- agent = AgentCreate.model_validate(input)
264
+ agent = AgentCreate.model_validate(agent)
265
265
  agent.id = agent_id
266
266
  if owner:
267
267
  agent.owner = owner
@@ -286,7 +286,7 @@ async def deploy_agent(
286
286
  return agent_response
287
287
 
288
288
  if owner and owner != existing_agent.owner:
289
- raise IntentKitAPIError(403, "forbidden", "forbidden")
289
+ raise IntentKitAPIError(403, "Forbidden", "forbidden")
290
290
 
291
291
  # Update agent
292
292
  latest_agent = await agent.override(agent_id)
@@ -46,4 +46,6 @@ async def clear_thread_memory(agent_id: str, chat_id: str) -> bool:
46
46
  logger.error(
47
47
  f"Failed to clear thread memory for agent_id: {agent_id}, chat_id: {chat_id}. Error: {str(e)}"
48
48
  )
49
- raise IntentKitAPIError(500, "ServerError", "Failed to clear thread memory")
49
+ raise IntentKitAPIError(
50
+ status_code=500, key="ServerError", message="Failed to clear thread memory"
51
+ )
@@ -4,7 +4,6 @@ from decimal import ROUND_HALF_UP, Decimal
4
4
  from typing import List, Optional, Tuple
5
5
 
6
6
  from epyxid import XID
7
- from fastapi import HTTPException
8
7
  from pydantic import BaseModel
9
8
  from sqlalchemy import desc, select
10
9
  from sqlalchemy.ext.asyncio import AsyncSession
@@ -39,6 +38,7 @@ from intentkit.models.credit import (
39
38
  )
40
39
  from intentkit.models.db import get_session
41
40
  from intentkit.models.skill import Skill
41
+ from intentkit.utils.error import IntentKitAPIError
42
42
  from intentkit.utils.slack_alert import send_slack_message
43
43
 
44
44
  logger = logging.getLogger(__name__)
@@ -72,7 +72,9 @@ async def update_credit_event_note(
72
72
  event = result.scalar_one_or_none()
73
73
 
74
74
  if not event:
75
- raise HTTPException(status_code=404, detail="Credit event not found")
75
+ raise IntentKitAPIError(
76
+ status_code=404, key="CreditEventNotFound", message="Credit event not found"
77
+ )
76
78
 
77
79
  # Update the note
78
80
  event.note = note
@@ -244,10 +246,14 @@ async def withdraw(
244
246
  # Get agent to retrieve user_id from agent.owner
245
247
  agent = await Agent.get(agent_id)
246
248
  if not agent:
247
- raise HTTPException(status_code=404, detail="Agent not found")
249
+ raise IntentKitAPIError(
250
+ status_code=404, key="AgentNotFound", message="Agent not found"
251
+ )
248
252
 
249
253
  if not agent.owner:
250
- raise HTTPException(status_code=400, detail="Agent has no owner")
254
+ raise IntentKitAPIError(
255
+ status_code=400, key="AgentNoOwner", message="Agent has no owner"
256
+ )
251
257
 
252
258
  # Get agent wallet address
253
259
  agent_data = await AgentData.get(agent.id)
@@ -264,9 +270,10 @@ async def withdraw(
264
270
 
265
271
  # Check if agent has sufficient permanent credits
266
272
  if agent_account.credits < amount:
267
- raise HTTPException(
273
+ raise IntentKitAPIError(
268
274
  status_code=400,
269
- detail=f"Insufficient balance. Available: {agent_account.credits}, Required: {amount}",
275
+ key="InsufficientBalance",
276
+ message=f"Insufficient balance. Available: {agent_account.credits}, Required: {amount}",
270
277
  )
271
278
 
272
279
  # 1. Create credit event record first to get event_id
@@ -916,9 +923,10 @@ async def fetch_credit_event_by_upstream_tx_id(
916
923
 
917
924
  # Raise 404 if not found
918
925
  if not result:
919
- raise HTTPException(
926
+ raise IntentKitAPIError(
920
927
  status_code=404,
921
- detail=f"Credit event with upstream_tx_id '{upstream_tx_id}' not found",
928
+ key="CreditEventNotFound",
929
+ message=f"Credit event with upstream_tx_id '{upstream_tx_id}' not found",
922
930
  )
923
931
 
924
932
  # Convert to Pydantic model and return
@@ -940,7 +948,7 @@ async def fetch_credit_event_by_id(
940
948
  The credit event if found.
941
949
 
942
950
  Raises:
943
- HTTPException: If the credit event is not found.
951
+ IntentKitAPIError: If the credit event is not found.
944
952
  """
945
953
  # Build the query to find the event by ID
946
954
  stmt = select(CreditEventTable).where(CreditEventTable.id == event_id)
@@ -950,9 +958,10 @@ async def fetch_credit_event_by_id(
950
958
 
951
959
  # Raise 404 if not found
952
960
  if not result:
953
- raise HTTPException(
961
+ raise IntentKitAPIError(
954
962
  status_code=404,
955
- detail=f"Credit event with ID '{event_id}' not found",
963
+ key="CreditEventNotFound",
964
+ message=f"Credit event with ID '{event_id}' not found",
956
965
  )
957
966
 
958
967
  # Convert to Pydantic model and return
@@ -21,7 +21,6 @@ from typing import Optional
21
21
 
22
22
  import sqlalchemy
23
23
  from epyxid import XID
24
- from fastapi import HTTPException
25
24
  from langchain_core.messages import (
26
25
  BaseMessage,
27
26
  HumanMessage,
@@ -194,7 +193,9 @@ async def initialize_agent(aid, is_private=False):
194
193
  # get the agent from the database
195
194
  agent: Optional[Agent] = await Agent.get(aid)
196
195
  if not agent:
197
- raise HTTPException(status_code=404, detail="Agent not found")
196
+ raise IntentKitAPIError(
197
+ status_code=404, key="AgentNotFound", message="Agent not found"
198
+ )
198
199
 
199
200
  # Create the agent using the new create_agent function
200
201
  executor = await create_agent(agent, is_private)
@@ -214,7 +215,9 @@ async def agent_executor(
214
215
  start = time.perf_counter()
215
216
  agent = await Agent.get(agent_id)
216
217
  if not agent:
217
- raise HTTPException(status_code=404, detail="Agent not found")
218
+ raise IntentKitAPIError(
219
+ status_code=404, key="AgentNotFound", message="Agent not found"
220
+ )
218
221
  agents = _private_agents if is_private else _agents
219
222
  agents_updated = _private_agents_updated if is_private else _agents_updated
220
223
 
@@ -830,9 +833,10 @@ async def clean_agent_memory(
830
833
  # get the agent from the database
831
834
  try:
832
835
  if not clean_skill and not clean_agent:
833
- raise HTTPException(
836
+ raise IntentKitAPIError(
834
837
  status_code=400,
835
- detail="at least one of skills data or agent memory should be true.",
838
+ key="InvalidCleanupParameters",
839
+ message="at least one of skills data or agent memory should be true",
836
840
  )
837
841
 
838
842
  if clean_skill:
@@ -879,7 +883,7 @@ async def clean_agent_memory(
879
883
  except SQLAlchemyError as e:
880
884
  # Handle other SQLAlchemy-related errors
881
885
  logger.error(e)
882
- raise HTTPException(status_code=500, detail=str(e))
886
+ raise IntentKitAPIError(status_code=500, key="DatabaseError", message=str(e))
883
887
  except Exception as e:
884
888
  logger.error("failed to cleanup the agent memory: " + str(e))
885
889
  raise e
@@ -12,13 +12,13 @@ import jsonref
12
12
  import yaml
13
13
  from cron_validator import CronValidator
14
14
  from epyxid import XID
15
- from fastapi import HTTPException
16
15
  from intentkit.models.agent_data import AgentData
17
16
  from intentkit.models.base import Base
18
17
  from intentkit.models.credit import CreditAccount
19
18
  from intentkit.models.db import get_session
20
19
  from intentkit.models.llm import LLMModelInfo, LLMModelInfoTable, LLMProvider
21
20
  from intentkit.models.skill import SkillTable
21
+ from intentkit.utils.error import IntentKitAPIError
22
22
  from pydantic import BaseModel, ConfigDict, field_validator
23
23
  from pydantic import Field as PydanticField
24
24
  from pydantic.json_schema import SkipJsonSchema
@@ -791,20 +791,25 @@ class AgentUpdate(AgentUserInput):
791
791
  for autonomous_config in self.autonomous:
792
792
  # Check that exactly one scheduling method is provided
793
793
  if not autonomous_config.minutes and not autonomous_config.cron:
794
- raise HTTPException(
795
- status_code=400, detail="either minutes or cron must have a value"
794
+ raise IntentKitAPIError(
795
+ status_code=400,
796
+ key="InvalidAutonomousConfig",
797
+ message="either minutes or cron must have a value",
796
798
  )
797
799
 
798
800
  if autonomous_config.minutes and autonomous_config.cron:
799
- raise HTTPException(
800
- status_code=400, detail="only one of minutes or cron can be set"
801
+ raise IntentKitAPIError(
802
+ status_code=400,
803
+ key="InvalidAutonomousConfig",
804
+ message="only one of minutes or cron can be set",
801
805
  )
802
806
 
803
807
  # Validate minimum interval of 5 minutes
804
808
  if autonomous_config.minutes and autonomous_config.minutes < 5:
805
- raise HTTPException(
809
+ raise IntentKitAPIError(
806
810
  status_code=400,
807
- detail="The shortest execution interval is 5 minutes",
811
+ key="InvalidAutonomousInterval",
812
+ message="The shortest execution interval is 5 minutes",
808
813
  )
809
814
 
810
815
  # Validate cron expression to ensure interval is at least 5 minutes
@@ -814,15 +819,18 @@ class AgentUpdate(AgentUserInput):
814
819
  try:
815
820
  CronValidator.parse(autonomous_config.cron)
816
821
  except ValueError:
817
- raise HTTPException(
822
+ raise IntentKitAPIError(
818
823
  status_code=400,
819
- detail=f"Invalid cron expression format: {autonomous_config.cron}",
824
+ key="InvalidCronExpression",
825
+ message=f"Invalid cron expression format: {autonomous_config.cron}",
820
826
  )
821
827
 
822
828
  parts = autonomous_config.cron.split()
823
829
  if len(parts) < 5:
824
- raise HTTPException(
825
- status_code=400, detail="Invalid cron expression format"
830
+ raise IntentKitAPIError(
831
+ status_code=400,
832
+ key="InvalidCronExpression",
833
+ message="Invalid cron expression format",
826
834
  )
827
835
 
828
836
  minute, hour, day_of_month, month, day_of_week = parts[:5]
@@ -830,25 +838,28 @@ class AgentUpdate(AgentUserInput):
830
838
  # Check if minutes or hours have too frequent intervals
831
839
  if "*" in minute and "*" in hour:
832
840
  # If both minute and hour are wildcards, it would run every minute
833
- raise HTTPException(
841
+ raise IntentKitAPIError(
834
842
  status_code=400,
835
- detail="The shortest execution interval is 5 minutes",
843
+ key="InvalidAutonomousInterval",
844
+ message="The shortest execution interval is 5 minutes",
836
845
  )
837
846
 
838
847
  if "/" in minute:
839
848
  # Check step value in minute field (e.g., */15)
840
849
  step = int(minute.split("/")[1])
841
850
  if step < 5 and hour == "*":
842
- raise HTTPException(
851
+ raise IntentKitAPIError(
843
852
  status_code=400,
844
- detail="The shortest execution interval is 5 minutes",
853
+ key="InvalidAutonomousInterval",
854
+ message="The shortest execution interval is 5 minutes",
845
855
  )
846
856
 
847
857
  # Check for comma-separated values or ranges that might result in multiple executions per hour
848
858
  if ("," in minute or "-" in minute) and hour == "*":
849
- raise HTTPException(
859
+ raise IntentKitAPIError(
850
860
  status_code=400,
851
- detail="The shortest execution interval is 5 minutes",
861
+ key="InvalidAutonomousInterval",
862
+ message="The shortest execution interval is 5 minutes",
852
863
  )
853
864
 
854
865
  # deprecated, use override instead
@@ -860,7 +871,11 @@ class AgentUpdate(AgentUserInput):
860
871
  async with get_session() as db:
861
872
  db_agent = await db.get(AgentTable, id)
862
873
  if not db_agent:
863
- raise HTTPException(status_code=404, detail="Agent not found")
874
+ raise IntentKitAPIError(
875
+ status_code=404,
876
+ key="AgentNotFound",
877
+ message="Agent not found",
878
+ )
864
879
  # update
865
880
  for key, value in self.model_dump(exclude_unset=True).items():
866
881
  setattr(db_agent, key, value)
@@ -876,7 +891,11 @@ class AgentUpdate(AgentUserInput):
876
891
  async with get_session() as db:
877
892
  db_agent = await db.get(AgentTable, id)
878
893
  if not db_agent:
879
- raise HTTPException(status_code=404, detail="Agent not found")
894
+ raise IntentKitAPIError(
895
+ status_code=404,
896
+ key="AgentNotFound",
897
+ message="Agent not found",
898
+ )
880
899
  # update
881
900
  for key, value in self.model_dump().items():
882
901
  setattr(db_agent, key, value)
@@ -917,9 +936,10 @@ class AgentCreate(AgentUpdate):
917
936
  select(AgentTable).where(AgentTable.upstream_id == self.upstream_id)
918
937
  )
919
938
  if existing:
920
- raise HTTPException(
939
+ raise IntentKitAPIError(
921
940
  status_code=400,
922
- detail="Upstream id already in use",
941
+ key="UpstreamIdConflict",
942
+ message="Upstream id already in use",
923
943
  )
924
944
 
925
945
  async def get_by_upstream_id(self) -> Optional["Agent"]:
@@ -3,9 +3,9 @@ from datetime import datetime, timezone
3
3
  from decimal import Decimal
4
4
  from typing import Annotated, Any, Dict, Optional
5
5
 
6
- from fastapi import HTTPException
7
6
  from intentkit.models.base import Base
8
7
  from intentkit.models.db import get_session
8
+ from intentkit.utils.error import IntentKitAPIError
9
9
  from pydantic import BaseModel, ConfigDict
10
10
  from pydantic import Field as PydanticField
11
11
  from sqlalchemy import (
@@ -754,7 +754,11 @@ class AgentQuota(BaseModel):
754
754
  await session.execute(stmt)
755
755
  except Exception as e:
756
756
  logger.error(f"Error adding free income: {str(e)}")
757
- raise HTTPException(status_code=500, detail=f"Database error: {str(e)}")
757
+ raise IntentKitAPIError(
758
+ status_code=500,
759
+ key="DatabaseError",
760
+ message=f"Database error: {str(e)}",
761
+ )
758
762
 
759
763
  async def add_message(self) -> None:
760
764
  """Add a message to the agent's message count."""
@@ -9,6 +9,7 @@ from fastapi import HTTPException
9
9
  from intentkit.models.app_setting import AppSetting
10
10
  from intentkit.models.base import Base
11
11
  from intentkit.models.db import get_session
12
+ from intentkit.utils.error import IntentKitAPIError
12
13
  from pydantic import BaseModel, ConfigDict, Field, field_validator
13
14
  from sqlalchemy import (
14
15
  ARRAY,
@@ -347,7 +348,11 @@ class CreditAccount(BaseModel):
347
348
  )
348
349
  result = await session.scalar(stmt)
349
350
  if not result:
350
- raise HTTPException(status_code=404, detail="Credit account not found")
351
+ raise IntentKitAPIError(
352
+ status_code=404,
353
+ key="CreditAccountNotFound",
354
+ message="Credit account not found",
355
+ )
351
356
  return cls.model_validate(result)
352
357
 
353
358
  @classmethod
@@ -451,7 +456,11 @@ class CreditAccount(BaseModel):
451
456
  )
452
457
  res = await session.scalar(stmt)
453
458
  if not res:
454
- raise HTTPException(status_code=500, detail="Failed to expense credits")
459
+ raise IntentKitAPIError(
460
+ status_code=500,
461
+ key="CreditExpenseFailed",
462
+ message="Failed to expense credits",
463
+ )
455
464
  return cls.model_validate(res)
456
465
 
457
466
  @classmethod
@@ -548,7 +557,11 @@ class CreditAccount(BaseModel):
548
557
  )
549
558
  res = await session.scalar(stmt)
550
559
  if not res:
551
- raise HTTPException(status_code=500, detail="Failed to expense credits")
560
+ raise IntentKitAPIError(
561
+ status_code=500,
562
+ key="CreditExpenseFailed",
563
+ message="Failed to expense credits",
564
+ )
552
565
  return cls.model_validate(res), details
553
566
 
554
567
  def has_sufficient_credits(self, amount: Decimal) -> bool:
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.7.5-dev4"
3
+ version = "0.7.5-dev6"
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"
@@ -23,6 +23,9 @@ class RateLimitExceeded(Exception):
23
23
 
24
24
 
25
25
  class IntentKitAPIError(Exception):
26
+ """All 3 parameters: status_code, key and message is required.
27
+ The key is PascalCase string, to allow the frontend to test errors."""
28
+
26
29
  def __init__(self, status_code: int, key: str, message: str):
27
30
  self.key = key
28
31
  self.message = message
File without changes
File without changes