intentkit 0.6.12__tar.gz → 0.6.13__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 (413) hide show
  1. {intentkit-0.6.12 → intentkit-0.6.13}/PKG-INFO +1 -1
  2. {intentkit-0.6.12 → intentkit-0.6.13}/__init__.py +1 -1
  3. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/graph.py +3 -2
  4. {intentkit-0.6.12 → intentkit-0.6.13}/config/config.py +7 -0
  5. intentkit-0.6.13/core/api.py +100 -0
  6. intentkit-0.6.13/core/client.py +85 -0
  7. {intentkit-0.6.12 → intentkit-0.6.13}/core/engine.py +2 -2
  8. {intentkit-0.6.12 → intentkit-0.6.13}/core/prompt.py +13 -23
  9. {intentkit-0.6.12 → intentkit-0.6.13}/models/agent.py +24 -33
  10. {intentkit-0.6.12 → intentkit-0.6.13}/models/agent_schema.json +25 -3
  11. {intentkit-0.6.12 → intentkit-0.6.13}/models/chat.py +1 -0
  12. {intentkit-0.6.12 → intentkit-0.6.13}/pyproject.toml +1 -1
  13. intentkit-0.6.12/core/api.py +0 -40
  14. intentkit-0.6.12/core/client.py +0 -45
  15. {intentkit-0.6.12 → intentkit-0.6.13}/.gitignore +0 -0
  16. {intentkit-0.6.12 → intentkit-0.6.13}/LICENSE +0 -0
  17. {intentkit-0.6.12 → intentkit-0.6.13}/MANIFEST.in +0 -0
  18. {intentkit-0.6.12 → intentkit-0.6.13}/README.md +0 -0
  19. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/__init__.py +0 -0
  20. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/agent.py +0 -0
  21. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/api.py +0 -0
  22. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/engine.py +0 -0
  23. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/exception.py +0 -0
  24. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/skill.py +0 -0
  25. {intentkit-0.6.12 → intentkit-0.6.13}/abstracts/twitter.py +0 -0
  26. {intentkit-0.6.12 → intentkit-0.6.13}/clients/__init__.py +0 -0
  27. {intentkit-0.6.12 → intentkit-0.6.13}/clients/cdp.py +0 -0
  28. {intentkit-0.6.12 → intentkit-0.6.13}/clients/twitter.py +0 -0
  29. {intentkit-0.6.12 → intentkit-0.6.13}/config/__init__.py +0 -0
  30. {intentkit-0.6.12 → intentkit-0.6.13}/core/__init__.py +0 -0
  31. {intentkit-0.6.12 → intentkit-0.6.13}/core/agent.py +0 -0
  32. {intentkit-0.6.12 → intentkit-0.6.13}/core/credit.py +0 -0
  33. {intentkit-0.6.12 → intentkit-0.6.13}/core/node.py +0 -0
  34. {intentkit-0.6.12 → intentkit-0.6.13}/core/skill.py +0 -0
  35. {intentkit-0.6.12 → intentkit-0.6.13}/models/agent_data.py +0 -0
  36. {intentkit-0.6.12 → intentkit-0.6.13}/models/app_setting.py +0 -0
  37. {intentkit-0.6.12 → intentkit-0.6.13}/models/base.py +0 -0
  38. {intentkit-0.6.12 → intentkit-0.6.13}/models/conversation.py +0 -0
  39. {intentkit-0.6.12 → intentkit-0.6.13}/models/credit.py +0 -0
  40. {intentkit-0.6.12 → intentkit-0.6.13}/models/db.py +0 -0
  41. {intentkit-0.6.12 → intentkit-0.6.13}/models/db_mig.py +0 -0
  42. {intentkit-0.6.12 → intentkit-0.6.13}/models/generator.py +0 -0
  43. {intentkit-0.6.12 → intentkit-0.6.13}/models/llm.py +0 -0
  44. {intentkit-0.6.12 → intentkit-0.6.13}/models/redis.py +0 -0
  45. {intentkit-0.6.12 → intentkit-0.6.13}/models/skill.py +0 -0
  46. {intentkit-0.6.12 → intentkit-0.6.13}/models/user.py +0 -0
  47. {intentkit-0.6.12 → intentkit-0.6.13}/skills/__init__.py +0 -0
  48. {intentkit-0.6.12 → intentkit-0.6.13}/skills/acolyt/__init__.py +0 -0
  49. {intentkit-0.6.12 → intentkit-0.6.13}/skills/acolyt/acolyt.jpg +0 -0
  50. {intentkit-0.6.12 → intentkit-0.6.13}/skills/acolyt/ask.py +0 -0
  51. {intentkit-0.6.12 → intentkit-0.6.13}/skills/acolyt/base.py +0 -0
  52. {intentkit-0.6.12 → intentkit-0.6.13}/skills/acolyt/schema.json +0 -0
  53. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/README.md +0 -0
  54. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/__init__.py +0 -0
  55. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/aixbt.jpg +0 -0
  56. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/base.py +0 -0
  57. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/projects.py +0 -0
  58. {intentkit-0.6.12 → intentkit-0.6.13}/skills/aixbt/schema.json +0 -0
  59. {intentkit-0.6.12 → intentkit-0.6.13}/skills/allora/__init__.py +0 -0
  60. {intentkit-0.6.12 → intentkit-0.6.13}/skills/allora/allora.jpeg +0 -0
  61. {intentkit-0.6.12 → intentkit-0.6.13}/skills/allora/base.py +0 -0
  62. {intentkit-0.6.12 → intentkit-0.6.13}/skills/allora/price.py +0 -0
  63. {intentkit-0.6.12 → intentkit-0.6.13}/skills/allora/schema.json +0 -0
  64. {intentkit-0.6.12 → intentkit-0.6.13}/skills/base.py +0 -0
  65. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/README.md +0 -0
  66. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/__init__.py +0 -0
  67. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/base.py +0 -0
  68. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/carv.webp +0 -0
  69. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/fetch_news.py +0 -0
  70. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/onchain_query.py +0 -0
  71. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/schema.json +0 -0
  72. {intentkit-0.6.12 → intentkit-0.6.13}/skills/carv/token_info_and_price.py +0 -0
  73. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/__init__.py +0 -0
  74. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/base.py +0 -0
  75. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/cdp.png +0 -0
  76. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/get_balance.py +0 -0
  77. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/schema.json +0 -0
  78. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cdp/swap.py +0 -0
  79. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/README.md +0 -0
  80. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/__init__.py +0 -0
  81. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/base.py +0 -0
  82. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/chain_lookup.py +0 -0
  83. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/chainlist.png +0 -0
  84. {intentkit-0.6.12 → intentkit-0.6.13}/skills/chainlist/schema.json +0 -0
  85. {intentkit-0.6.12 → intentkit-0.6.13}/skills/common/__init__.py +0 -0
  86. {intentkit-0.6.12 → intentkit-0.6.13}/skills/common/base.py +0 -0
  87. {intentkit-0.6.12 → intentkit-0.6.13}/skills/common/common.jpg +0 -0
  88. {intentkit-0.6.12 → intentkit-0.6.13}/skills/common/current_time.py +0 -0
  89. {intentkit-0.6.12 → intentkit-0.6.13}/skills/common/schema.json +0 -0
  90. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/README.md +0 -0
  91. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/__init__.py +0 -0
  92. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/base.py +0 -0
  93. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/constants.py +0 -0
  94. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/cookiefun.png +0 -0
  95. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/get_account_details.py +0 -0
  96. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/get_account_feed.py +0 -0
  97. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/get_account_smart_followers.py +0 -0
  98. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/get_sectors.py +0 -0
  99. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/schema.json +0 -0
  100. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cookiefun/search_accounts.py +0 -0
  101. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/__init__.py +0 -0
  102. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/api.py +0 -0
  103. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/base.py +0 -0
  104. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/cryptocompare.png +0 -0
  105. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_news.py +0 -0
  106. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_price.py +0 -0
  107. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  108. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  109. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_top_volume.py +0 -0
  110. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/fetch_trading_signals.py +0 -0
  111. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptocompare/schema.json +0 -0
  112. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/__init__.py +0 -0
  113. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/base.py +0 -0
  114. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/cryptopanic.png +0 -0
  115. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/fetch_crypto_news.py +0 -0
  116. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  117. {intentkit-0.6.12 → intentkit-0.6.13}/skills/cryptopanic/schema.json +0 -0
  118. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/README.md +0 -0
  119. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/__init__.py +0 -0
  120. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/base.py +0 -0
  121. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/dapplooker.jpg +0 -0
  122. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/dapplooker_token_data.py +0 -0
  123. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dapplooker/schema.json +0 -0
  124. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/__init__.py +0 -0
  125. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/api.py +0 -0
  126. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/base.py +0 -0
  127. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/__init__.py +0 -0
  128. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  129. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_block.py +0 -0
  130. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_current_prices.py +0 -0
  131. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_first_price.py +0 -0
  132. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_historical_prices.py +0 -0
  133. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_price_chart.py +0 -0
  134. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/coins/fetch_price_percentage.py +0 -0
  135. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/config/__init__.py +0 -0
  136. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/config/chains.py +0 -0
  137. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/defillama.jpeg +0 -0
  138. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/fees/__init__.py +0 -0
  139. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/fees/fetch_fees_overview.py +0 -0
  140. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/schema.json +0 -0
  141. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/stablecoins/__init__.py +0 -0
  142. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  143. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  144. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  145. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  146. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tests/__init__.py +0 -0
  147. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tests/api_integration.test.py +0 -0
  148. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tests/api_unit.test.py +0 -0
  149. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/__init__.py +0 -0
  150. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  151. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_chains.py +0 -0
  152. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  153. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_protocol.py +0 -0
  154. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  155. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/tvl/fetch_protocols.py +0 -0
  156. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/volumes/__init__.py +0 -0
  157. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  158. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  159. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/volumes/fetch_options_overview.py +0 -0
  160. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/yields/__init__.py +0 -0
  161. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/yields/fetch_pool_chart.py +0 -0
  162. {intentkit-0.6.12 → intentkit-0.6.13}/skills/defillama/yields/fetch_pools.py +0 -0
  163. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/__init__.py +0 -0
  164. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/base.py +0 -0
  165. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/dexscreener.png +0 -0
  166. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/model/__init__.py +0 -0
  167. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/model/search_token_response.py +0 -0
  168. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/schema.json +0 -0
  169. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dexscreener/search_token.py +0 -0
  170. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/__init__.py +0 -0
  171. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/base.py +0 -0
  172. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/dune.png +0 -0
  173. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/fetch_kol_buys.py +0 -0
  174. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/fetch_nation_metrics.py +0 -0
  175. {intentkit-0.6.12 → intentkit-0.6.13}/skills/dune_analytics/schema.json +0 -0
  176. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/README.md +0 -0
  177. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/__init__.py +0 -0
  178. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/base.py +0 -0
  179. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/elfa.jpg +0 -0
  180. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/mention.py +0 -0
  181. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/schema.json +0 -0
  182. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/stats.py +0 -0
  183. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/tokens.py +0 -0
  184. {intentkit-0.6.12 → intentkit-0.6.13}/skills/elfa/utils.py +0 -0
  185. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/README.md +0 -0
  186. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/__init__.py +0 -0
  187. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/abi/__init__.py +0 -0
  188. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/abi/approval.py +0 -0
  189. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/abi/erc20.py +0 -0
  190. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/abi/route.py +0 -0
  191. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/base.py +0 -0
  192. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/best_yield.py +0 -0
  193. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/enso.jpg +0 -0
  194. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/networks.py +0 -0
  195. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/prices.py +0 -0
  196. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/route.py +0 -0
  197. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/schema.json +0 -0
  198. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/tokens.py +0 -0
  199. {intentkit-0.6.12 → intentkit-0.6.13}/skills/enso/wallet.py +0 -0
  200. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/README.md +0 -0
  201. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/__init__.py +0 -0
  202. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/base.py +0 -0
  203. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/clear.py +0 -0
  204. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/crawl.py +0 -0
  205. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/firecrawl.png +0 -0
  206. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/query.py +0 -0
  207. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/schema.json +0 -0
  208. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/scrape.py +0 -0
  209. {intentkit-0.6.12 → intentkit-0.6.13}/skills/firecrawl/utils.py +0 -0
  210. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/README.md +0 -0
  211. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/__init__.py +0 -0
  212. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/base.py +0 -0
  213. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/github.jpg +0 -0
  214. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/github_search.py +0 -0
  215. {intentkit-0.6.12 → intentkit-0.6.13}/skills/github/schema.json +0 -0
  216. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/__init__.py +0 -0
  217. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/base.py +0 -0
  218. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/heurist.png +0 -0
  219. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_animagine_xl.py +0 -0
  220. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_arthemy_comics.py +0 -0
  221. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_arthemy_real.py +0 -0
  222. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_braindance.py +0 -0
  223. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  224. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_flux_1_dev.py +0 -0
  225. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/image_generation_sdxl.py +0 -0
  226. {intentkit-0.6.12 → intentkit-0.6.13}/skills/heurist/schema.json +0 -0
  227. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/README.md +0 -0
  228. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/__init__.py +0 -0
  229. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/base.py +0 -0
  230. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/get.py +0 -0
  231. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/http.svg +0 -0
  232. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/post.py +0 -0
  233. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/put.py +0 -0
  234. {intentkit-0.6.12 → intentkit-0.6.13}/skills/http/schema.json +0 -0
  235. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/README.md +0 -0
  236. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/__init__.py +0 -0
  237. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/base.py +0 -0
  238. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/lifi.png +0 -0
  239. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/schema.json +0 -0
  240. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/token_execute.py +0 -0
  241. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/token_quote.py +0 -0
  242. {intentkit-0.6.12 → intentkit-0.6.13}/skills/lifi/utils.py +0 -0
  243. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/README.md +0 -0
  244. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/__init__.py +0 -0
  245. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/api.py +0 -0
  246. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/base.py +0 -0
  247. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/fetch_chain_portfolio.py +0 -0
  248. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/fetch_nft_portfolio.py +0 -0
  249. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/fetch_solana_portfolio.py +0 -0
  250. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/fetch_wallet_portfolio.py +0 -0
  251. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/moralis.png +0 -0
  252. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/schema.json +0 -0
  253. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/tests/__init__.py +0 -0
  254. {intentkit-0.6.12 → intentkit-0.6.13}/skills/moralis/tests/test_wallet.py +0 -0
  255. {intentkit-0.6.12 → intentkit-0.6.13}/skills/nation/__init__.py +0 -0
  256. {intentkit-0.6.12 → intentkit-0.6.13}/skills/nation/base.py +0 -0
  257. {intentkit-0.6.12 → intentkit-0.6.13}/skills/nation/nation.png +0 -0
  258. {intentkit-0.6.12 → intentkit-0.6.13}/skills/nation/nft_check.py +0 -0
  259. {intentkit-0.6.12 → intentkit-0.6.13}/skills/nation/schema.json +0 -0
  260. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/__init__.py +0 -0
  261. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/base.py +0 -0
  262. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/dalle_image_generation.py +0 -0
  263. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/gpt_image_generation.py +0 -0
  264. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/gpt_image_to_image.py +0 -0
  265. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/image_to_text.py +0 -0
  266. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/openai.png +0 -0
  267. {intentkit-0.6.12 → intentkit-0.6.13}/skills/openai/schema.json +0 -0
  268. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/README.md +0 -0
  269. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/__init__.py +0 -0
  270. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/base.py +0 -0
  271. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/constants.py +0 -0
  272. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/moralis.png +0 -0
  273. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/schema.json +0 -0
  274. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/token_balances.py +0 -0
  275. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_approvals.py +0 -0
  276. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_defi_positions.py +0 -0
  277. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_history.py +0 -0
  278. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_net_worth.py +0 -0
  279. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_nfts.py +0 -0
  280. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_profitability.py +0 -0
  281. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_profitability_summary.py +0 -0
  282. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_stats.py +0 -0
  283. {intentkit-0.6.12 → intentkit-0.6.13}/skills/portfolio/wallet_swaps.py +0 -0
  284. {intentkit-0.6.12 → intentkit-0.6.13}/skills/skills.toml +0 -0
  285. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/__init__.py +0 -0
  286. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/base.py +0 -0
  287. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/get_channel.py +0 -0
  288. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/get_message.py +0 -0
  289. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/schedule_message.py +0 -0
  290. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/schema.json +0 -0
  291. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/send_message.py +0 -0
  292. {intentkit-0.6.12 → intentkit-0.6.13}/skills/slack/slack.jpg +0 -0
  293. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/__init__.py +0 -0
  294. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/base.py +0 -0
  295. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/delete_data.py +0 -0
  296. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/fetch_data.py +0 -0
  297. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/insert_data.py +0 -0
  298. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/invoke_function.py +0 -0
  299. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/schema.json +0 -0
  300. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/supabase.svg +0 -0
  301. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/update_data.py +0 -0
  302. {intentkit-0.6.12 → intentkit-0.6.13}/skills/supabase/upsert_data.py +0 -0
  303. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/__init__.py +0 -0
  304. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/add_autonomous_task.py +0 -0
  305. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/base.py +0 -0
  306. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/delete_autonomous_task.py +0 -0
  307. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/edit_autonomous_task.py +0 -0
  308. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/list_autonomous_tasks.py +0 -0
  309. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/read_agent_api_key.py +0 -0
  310. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/regenerate_agent_api_key.py +0 -0
  311. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/schema.json +0 -0
  312. {intentkit-0.6.12 → intentkit-0.6.13}/skills/system/system.svg +0 -0
  313. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/README.md +0 -0
  314. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/__init__.py +0 -0
  315. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/base.py +0 -0
  316. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/schema.json +0 -0
  317. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/tavily.jpg +0 -0
  318. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/tavily_extract.py +0 -0
  319. {intentkit-0.6.12 → intentkit-0.6.13}/skills/tavily/tavily_search.py +0 -0
  320. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/README.md +0 -0
  321. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/__init__.py +0 -0
  322. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/base.py +0 -0
  323. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/constants.py +0 -0
  324. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/erc20_transfers.py +0 -0
  325. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/moralis.png +0 -0
  326. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/schema.json +0 -0
  327. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/token_analytics.py +0 -0
  328. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/token_price.py +0 -0
  329. {intentkit-0.6.12 → intentkit-0.6.13}/skills/token/token_search.py +0 -0
  330. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/__init__.py +0 -0
  331. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/base.py +0 -0
  332. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/follow_user.py +0 -0
  333. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/get_mentions.py +0 -0
  334. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/get_timeline.py +0 -0
  335. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/get_user_by_username.py +0 -0
  336. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/get_user_tweets.py +0 -0
  337. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/like_tweet.py +0 -0
  338. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/post_tweet.py +0 -0
  339. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/reply_tweet.py +0 -0
  340. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/retweet.py +0 -0
  341. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/schema.json +0 -0
  342. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/search_tweets.py +0 -0
  343. {intentkit-0.6.12 → intentkit-0.6.13}/skills/twitter/twitter.png +0 -0
  344. {intentkit-0.6.12 → intentkit-0.6.13}/skills/unrealspeech/__init__.py +0 -0
  345. {intentkit-0.6.12 → intentkit-0.6.13}/skills/unrealspeech/base.py +0 -0
  346. {intentkit-0.6.12 → intentkit-0.6.13}/skills/unrealspeech/schema.json +0 -0
  347. {intentkit-0.6.12 → intentkit-0.6.13}/skills/unrealspeech/text_to_speech.py +0 -0
  348. {intentkit-0.6.12 → intentkit-0.6.13}/skills/unrealspeech/unrealspeech.jpg +0 -0
  349. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/__init__.py +0 -0
  350. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/base.py +0 -0
  351. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/input.py +0 -0
  352. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/schema.json +0 -0
  353. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/venice_audio.py +0 -0
  354. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_audio/venice_logo.jpg +0 -0
  355. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/README.md +0 -0
  356. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/__init__.py +0 -0
  357. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/api.py +0 -0
  358. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/base.py +0 -0
  359. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/config.py +0 -0
  360. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_enhance/README.md +0 -0
  361. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_enhance/__init__.py +0 -0
  362. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_enhance/image_enhance.py +0 -0
  363. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  364. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  365. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/README.md +0 -0
  366. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/__init__.py +0 -0
  367. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_base.py +0 -0
  368. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  369. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  370. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  371. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_input.py +0 -0
  372. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  373. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  374. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  375. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  376. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_upscale/README.md +0 -0
  377. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_upscale/__init__.py +0 -0
  378. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_upscale/image_upscale.py +0 -0
  379. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  380. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  381. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_vision/README.md +0 -0
  382. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_vision/__init__.py +0 -0
  383. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_vision/image_vision.py +0 -0
  384. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_vision/image_vision_base.py +0 -0
  385. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/image_vision/image_vision_input.py +0 -0
  386. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/schema.json +0 -0
  387. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/utils.py +0 -0
  388. {intentkit-0.6.12 → intentkit-0.6.13}/skills/venice_image/venice_image.jpg +0 -0
  389. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/README.md +0 -0
  390. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/__init__.py +0 -0
  391. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/base.py +0 -0
  392. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/document_indexer.py +0 -0
  393. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/langchain.png +0 -0
  394. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/schema.json +0 -0
  395. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/scrape_and_index.py +0 -0
  396. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/utils.py +0 -0
  397. {intentkit-0.6.12 → intentkit-0.6.13}/skills/web_scraper/website_indexer.py +0 -0
  398. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/README.md +0 -0
  399. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/__init__.py +0 -0
  400. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/base.py +0 -0
  401. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/price.py +0 -0
  402. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/schema.json +0 -0
  403. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/swap.py +0 -0
  404. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/transfer.py +0 -0
  405. {intentkit-0.6.12 → intentkit-0.6.13}/skills/xmtp/xmtp.png +0 -0
  406. {intentkit-0.6.12 → intentkit-0.6.13}/utils/__init__.py +0 -0
  407. {intentkit-0.6.12 → intentkit-0.6.13}/utils/chain.py +0 -0
  408. {intentkit-0.6.12 → intentkit-0.6.13}/utils/error.py +0 -0
  409. {intentkit-0.6.12 → intentkit-0.6.13}/utils/logging.py +0 -0
  410. {intentkit-0.6.12 → intentkit-0.6.13}/utils/random.py +0 -0
  411. {intentkit-0.6.12 → intentkit-0.6.13}/utils/s3.py +0 -0
  412. {intentkit-0.6.12 → intentkit-0.6.13}/utils/slack_alert.py +0 -0
  413. {intentkit-0.6.12 → intentkit-0.6.13}/utils/tx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.6.12
3
+ Version: 0.6.13
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.12"
6
+ __version__ = "0.6.13"
7
7
  __author__ = "hyacinthus"
8
8
  __email__ = "hyacinthus@gmail.com"
9
9
 
@@ -1,11 +1,12 @@
1
1
  import asyncio
2
2
  from enum import Enum
3
- from typing import Any, Dict, Literal, NotRequired, Optional
3
+ from typing import Any, Dict, NotRequired, Optional
4
4
 
5
5
  from langgraph.prebuilt.chat_agent_executor import AgentState as BaseAgentState
6
6
  from pydantic import BaseModel
7
7
 
8
8
  from intentkit.models.agent import Agent
9
+ from intentkit.models.chat import AuthorType
9
10
 
10
11
 
11
12
  class AgentError(str, Enum):
@@ -31,7 +32,7 @@ class AgentContext(BaseModel):
31
32
  chat_id: str
32
33
  user_id: Optional[str] = None
33
34
  app_id: Optional[str] = None
34
- entrypoint: Literal["web", "twitter", "telegram", "trigger", "api"]
35
+ entrypoint: AuthorType
35
36
  is_private: bool
36
37
  payer: Optional[str] = None
37
38
 
@@ -96,9 +96,16 @@ class Config:
96
96
  self.eternal_api_key = self.load("ETERNAL_API_KEY")
97
97
  self.reigent_api_key = self.load("REIGENT_API_KEY")
98
98
  self.venice_api_key = self.load("VENICE_API_KEY")
99
+ # LLM Config
99
100
  self.system_prompt = self.load("SYSTEM_PROMPT")
100
101
  self.input_token_limit = self.load_int("INPUT_TOKEN_LIMIT", 60000)
102
+ # XMTP
103
+ self.xmtp_system_prompt = self.load(
104
+ "XMTP_SYSTEM_PROMPT",
105
+ "You are assisting a user who uses an XMTP client that only displays plain-text messages, so do not use Markdown formatting.",
106
+ )
101
107
  # Telegram server settings
108
+ self.tg_system_prompt = self.load("TG_SYSTEM_PROMPT")
102
109
  self.tg_base_url = self.load("TG_BASE_URL")
103
110
  self.tg_server_host = self.load("TG_SERVER_HOST", "127.0.0.1")
104
111
  self.tg_server_port = self.load("TG_SERVER_PORT", "8081")
@@ -0,0 +1,100 @@
1
+ """Core API Router.
2
+
3
+ This module provides the core API endpoints for agent execution and management.
4
+ """
5
+
6
+ from typing import Annotated
7
+
8
+ from fastapi import APIRouter, Body
9
+ from fastapi.responses import StreamingResponse
10
+ from pydantic import AfterValidator
11
+
12
+ from intentkit.core.engine import execute_agent, stream_agent
13
+ from intentkit.models.chat import ChatMessage, ChatMessageCreate
14
+
15
+ core_router = APIRouter(prefix="/core", tags=["Core"])
16
+
17
+
18
+ @core_router.post("/execute", response_model=list[ChatMessage])
19
+ async def execute(
20
+ message: Annotated[
21
+ ChatMessageCreate, AfterValidator(ChatMessageCreate.model_validate)
22
+ ] = Body(
23
+ ChatMessageCreate,
24
+ description="The chat message containing agent_id, chat_id and message content",
25
+ ),
26
+ ) -> list[ChatMessage]:
27
+ """Execute an agent with the provided message and return all results.
28
+
29
+ This endpoint executes an agent with the provided message and returns all
30
+ generated messages as a complete list after execution finishes.
31
+
32
+ **Request Body:**
33
+ * `message` - The chat message containing agent_id, chat_id and message content
34
+
35
+ **Response:**
36
+ Returns a list of ChatMessage objects containing:
37
+ * Skill call results (including tool executions)
38
+ * Agent reasoning and responses
39
+ * System messages or error notifications
40
+
41
+ **Returns:**
42
+ * `list[ChatMessage]` - Complete list of response messages
43
+
44
+ **Raises:**
45
+ * `HTTPException`:
46
+ - 400: If input parameters are invalid
47
+ - 404: If agent not found
48
+ - 500: For other server-side errors
49
+ """
50
+ return await execute_agent(message)
51
+
52
+
53
+ @core_router.post("/stream")
54
+ async def stream(
55
+ message: Annotated[
56
+ ChatMessageCreate, AfterValidator(ChatMessageCreate.model_validate)
57
+ ] = Body(
58
+ ChatMessageCreate,
59
+ description="The chat message containing agent_id, chat_id and message content",
60
+ ),
61
+ ) -> StreamingResponse:
62
+ """Stream agent execution results in real-time using Server-Sent Events.
63
+
64
+ This endpoint executes an agent with the provided message and streams the results
65
+ in real-time using the SSE (Server-Sent Events) standard format.
66
+
67
+ **Request Body:**
68
+ * `message` - The chat message containing agent_id, chat_id and message content
69
+
70
+ **Stream Format:**
71
+ The response uses Server-Sent Events with the following format:
72
+ * Event type: `message`
73
+ * Data: ChatMessage object as JSON
74
+ * Format: `event: message\\ndata: {ChatMessage JSON}\\n\\n`
75
+
76
+ **Response Content:**
77
+ Each streamed message can be:
78
+ * Skill call results (including tool executions)
79
+ * Agent reasoning and responses
80
+ * System messages or error notifications
81
+
82
+ **Returns:**
83
+ * `StreamingResponse` - SSE stream with real-time ChatMessage objects
84
+
85
+ **Raises:**
86
+ * `HTTPException`:
87
+ - 400: If input parameters are invalid
88
+ - 404: If agent not found
89
+ - 500: For other server-side errors
90
+ """
91
+
92
+ async def generate():
93
+ async for chat_message in stream_agent(message):
94
+ yield f"event: message\ndata: {chat_message.model_dump_json()}\n\n"
95
+
96
+ return StreamingResponse(
97
+ generate(),
98
+ media_type="text/event-stream",
99
+ headers={"Cache-Control": "no-cache", "Connection": "keep-alive"},
100
+ )
@@ -0,0 +1,85 @@
1
+ """Core Client Module.
2
+
3
+ This module provides client functions for core API endpoints with environment-aware routing.
4
+ """
5
+
6
+ from typing import AsyncIterator
7
+
8
+ import httpx
9
+
10
+ from intentkit.config.config import config
11
+ from intentkit.core.engine import execute_agent as local_execute_agent
12
+ from intentkit.core.engine import stream_agent as local_stream_agent
13
+ from intentkit.models.chat import ChatMessage, ChatMessageCreate
14
+
15
+
16
+ async def execute_agent(message: ChatMessageCreate) -> list[ChatMessage]:
17
+ """Execute an agent with environment-aware routing.
18
+
19
+ In local environment, directly calls the local execute_agent function.
20
+ In other environments, makes HTTP request to the core API endpoint.
21
+
22
+ Args:
23
+ message (ChatMessage): The chat message containing agent_id, chat_id and message content
24
+ debug (bool): Enable debug mode
25
+
26
+ Returns:
27
+ list[ChatMessage]: Formatted response lines from agent execution
28
+
29
+ Raises:
30
+ HTTPException: For API errors (in non-local environment)
31
+ Exception: For other execution errors
32
+ """
33
+ if config.env == "local":
34
+ return await local_execute_agent(message)
35
+
36
+ # Make HTTP request in non-local environment
37
+ url = f"{config.internal_base_url}/core/execute"
38
+ async with httpx.AsyncClient() as client:
39
+ response = await client.post(
40
+ url,
41
+ json=message.model_dump(mode="json"),
42
+ timeout=300,
43
+ )
44
+ response.raise_for_status()
45
+ json_data = response.json()
46
+ return [ChatMessage.model_validate(msg) for msg in json_data]
47
+
48
+
49
+ async def stream_agent(message: ChatMessageCreate) -> AsyncIterator[ChatMessage]:
50
+ """Stream agent execution with environment-aware routing using Server-Sent Events.
51
+
52
+ In local environment, directly calls the local stream_agent function.
53
+ In other environments, makes HTTP request to the core stream API endpoint and parses SSE format.
54
+
55
+ Args:
56
+ message (ChatMessageCreate): The chat message containing agent_id, chat_id and message content
57
+ debug (bool): Enable debug mode
58
+
59
+ Yields:
60
+ ChatMessage: Individual response messages from agent execution
61
+
62
+ Raises:
63
+ HTTPException: For API errors (in non-local environment)
64
+ Exception: For other execution errors
65
+ """
66
+ if config.env == "local":
67
+ async for chat_message in local_stream_agent(message):
68
+ yield chat_message
69
+ return
70
+
71
+ # Make HTTP request in non-local environment
72
+ url = f"{config.internal_base_url}/core/stream"
73
+ async with httpx.AsyncClient() as client:
74
+ async with client.stream(
75
+ "POST",
76
+ url,
77
+ json=message.model_dump(mode="json"),
78
+ timeout=300,
79
+ ) as response:
80
+ response.raise_for_status()
81
+ async for line in response.aiter_lines():
82
+ if line.startswith("data: "):
83
+ json_str = line[6:] # Remove "data: " prefix
84
+ if json_str.strip():
85
+ yield ChatMessage.model_validate_json(json_str)
@@ -758,7 +758,7 @@ async def stream_agent(message: ChatMessageCreate):
758
758
  author_type=AuthorType.SYSTEM,
759
759
  thread_type=input.author_type,
760
760
  reply_to=input.id,
761
- message="IntentKit Internal Error",
761
+ message="Agent Internal Error",
762
762
  time_cost=time.perf_counter() - start,
763
763
  )
764
764
  error_message = await error_message_create.save()
@@ -800,7 +800,7 @@ async def stream_agent(message: ChatMessageCreate):
800
800
  author_type=AuthorType.SYSTEM,
801
801
  thread_type=input.author_type,
802
802
  reply_to=input.id,
803
- message="Internal Agent Error",
803
+ message="Agent Internal Error",
804
804
  time_cost=time.perf_counter() - start,
805
805
  )
806
806
  error_message = await error_message_create.save()
@@ -252,23 +252,6 @@ def escape_prompt(prompt: str) -> str:
252
252
  # ============================================================================
253
253
 
254
254
 
255
- def _build_social_entrypoint_prompt(agent: Agent, entrypoint: str) -> Optional[str]:
256
- """Build prompt for social media entrypoints (Twitter, Telegram)."""
257
- if (
258
- agent.twitter_entrypoint_enabled
259
- and agent.twitter_entrypoint_prompt
260
- and entrypoint == AuthorType.TWITTER.value
261
- ):
262
- return agent.twitter_entrypoint_prompt
263
- elif (
264
- agent.telegram_entrypoint_enabled
265
- and agent.telegram_entrypoint_prompt
266
- and entrypoint == AuthorType.TELEGRAM.value
267
- ):
268
- return agent.telegram_entrypoint_prompt
269
- return None
270
-
271
-
272
255
  def _build_autonomous_task_prompt(agent: Agent, context: AgentContext) -> str:
273
256
  """Build prompt for autonomous task entrypoint."""
274
257
  task_id = context.chat_id.removeprefix("autonomous-")
@@ -327,11 +310,18 @@ async def build_entrypoint_prompt(agent: Agent, context: AgentContext) -> Option
327
310
  entrypoint_prompt = None
328
311
 
329
312
  # Handle social media entrypoints
330
- entrypoint_prompt = _build_social_entrypoint_prompt(agent, entrypoint)
331
-
332
- # Handle autonomous task entrypoint
333
- if not entrypoint_prompt and entrypoint == AuthorType.TRIGGER.value:
334
- entrypoint_prompt = _build_autonomous_task_prompt(agent, context)
313
+ if entrypoint == AuthorType.TELEGRAM.value:
314
+ if config.tg_system_prompt:
315
+ entrypoint_prompt = "\n\n" + config.tg_system_prompt
316
+ if agent.telegram_entrypoint_prompt:
317
+ entrypoint_prompt = "\n\n" + agent.telegram_entrypoint_prompt
318
+ elif entrypoint == AuthorType.XMTP.value:
319
+ if config.xmtp_system_prompt:
320
+ entrypoint_prompt = "\n\n" + config.xmtp_system_prompt
321
+ if agent.xmtp_entrypoint_prompt:
322
+ entrypoint_prompt = "\n\n" + agent.xmtp_entrypoint_prompt
323
+ elif entrypoint == AuthorType.TRIGGER.value:
324
+ entrypoint_prompt = "\n\n" + _build_autonomous_task_prompt(agent, context)
335
325
 
336
326
  # Process with admin LLM skill control if enabled
337
327
  if entrypoint_prompt and config.admin_llm_skill_control:
@@ -406,7 +396,7 @@ def create_formatted_prompt_function(agent: Agent, agent_data: AgentData) -> Cal
406
396
  entrypoint_prompt = await build_entrypoint_prompt(agent, context)
407
397
  if entrypoint_prompt:
408
398
  final_system_prompt = (
409
- f"{final_system_prompt}## Entrypoint rules\n\n{entrypoint_prompt}\n\n"
399
+ f"{final_system_prompt}## Entrypoint rules{entrypoint_prompt}\n\n"
410
400
  )
411
401
 
412
402
  # Add user info if user_id is a valid EVM wallet address
@@ -398,6 +398,11 @@ class AgentTable(Base):
398
398
  nullable=True,
399
399
  comment="Telegram integration configuration settings",
400
400
  )
401
+ xmtp_entrypoint_prompt = Column(
402
+ String,
403
+ nullable=True,
404
+ comment="Extra prompt for xmtp entrypoint",
405
+ )
401
406
  # auto timestamp
402
407
  created_at = Column(
403
408
  DateTime(timezone=True),
@@ -628,7 +633,7 @@ class AgentUpdate(BaseModel):
628
633
  str,
629
634
  PydanticField(
630
635
  default="gpt-5-mini",
631
- description="AI model identifier to be used by this agent for processing requests. Available models: gpt-4o, gpt-4o-mini, deepseek-chat, deepseek-reasoner, grok-2, eternalai, reigent, venice-uncensored",
636
+ description="AI model identifier to be used by this agent for processing requests.",
632
637
  json_schema_extra={
633
638
  "x-group": "ai",
634
639
  },
@@ -771,7 +776,7 @@ class AgentUpdate(BaseModel):
771
776
  ),
772
777
  ]
773
778
  wallet_provider: Annotated[
774
- Optional[Literal["cdp"]],
779
+ Optional[Literal["cdp", "readonly"]],
775
780
  PydanticField(
776
781
  default="cdp",
777
782
  description="Provider of the agent's wallet",
@@ -780,6 +785,13 @@ class AgentUpdate(BaseModel):
780
785
  },
781
786
  ),
782
787
  ]
788
+ readonly_wallet_address: Annotated[
789
+ Optional[str],
790
+ PydanticField(
791
+ default=None,
792
+ description="Address of the agent's wallet, only used when wallet_provider is readonly. Agent will not be able to sign transactions.",
793
+ ),
794
+ ]
783
795
  network_id: Annotated[
784
796
  Optional[
785
797
  Literal[
@@ -827,70 +839,49 @@ class AgentUpdate(BaseModel):
827
839
  },
828
840
  ),
829
841
  ]
830
- # if twitter_enabled, the twitter_entrypoint will be enabled, twitter_config will be checked
831
- twitter_entrypoint_enabled: Annotated[
842
+ # if telegram_entrypoint_enabled, the telegram_entrypoint_enabled will be enabled, telegram_config will be checked
843
+ telegram_entrypoint_enabled: Annotated[
832
844
  Optional[bool],
833
845
  PydanticField(
834
846
  default=False,
835
- description="Dangerous, reply all mentions from x.com",
847
+ description="Whether the agent can play telegram bot",
836
848
  json_schema_extra={
837
849
  "x-group": "entrypoint",
838
850
  },
839
851
  ),
840
852
  ]
841
- twitter_entrypoint_prompt: Annotated[
853
+ telegram_entrypoint_prompt: Annotated[
842
854
  Optional[str],
843
855
  PydanticField(
844
856
  default=None,
845
- description="Extra prompt for twitter entrypoint",
857
+ description="Extra prompt for telegram entrypoint",
846
858
  max_length=10000,
847
859
  json_schema_extra={
848
860
  "x-group": "entrypoint",
849
861
  },
850
862
  ),
851
863
  ]
852
- twitter_config: Annotated[
864
+ telegram_config: Annotated[
853
865
  Optional[dict],
854
866
  PydanticField(
855
867
  default=None,
856
- description="You must use your own key for twitter entrypoint, it is separated from twitter skills",
857
- json_schema_extra={
858
- "x-group": "entrypoint",
859
- },
860
- ),
861
- ]
862
- # if telegram_entrypoint_enabled, the telegram_entrypoint_enabled will be enabled, telegram_config will be checked
863
- telegram_entrypoint_enabled: Annotated[
864
- Optional[bool],
865
- PydanticField(
866
- default=False,
867
- description="Whether the agent can play telegram bot",
868
+ description="Telegram integration configuration settings",
868
869
  json_schema_extra={
869
870
  "x-group": "entrypoint",
870
871
  },
871
872
  ),
872
873
  ]
873
- telegram_entrypoint_prompt: Annotated[
874
+ xmtp_entrypoint_prompt: Annotated[
874
875
  Optional[str],
875
876
  PydanticField(
876
877
  default=None,
877
- description="Extra prompt for telegram entrypoint",
878
+ description="Extra prompt for xmtp entrypoint, xmtp support is in beta",
878
879
  max_length=10000,
879
880
  json_schema_extra={
880
881
  "x-group": "entrypoint",
881
882
  },
882
883
  ),
883
884
  ]
884
- telegram_config: Annotated[
885
- Optional[dict],
886
- PydanticField(
887
- default=None,
888
- description="Telegram integration configuration settings",
889
- json_schema_extra={
890
- "x-group": "entrypoint",
891
- },
892
- ),
893
- ]
894
885
 
895
886
  @field_validator("purpose", "personality", "principles", "prompt", "prompt_append")
896
887
  @classmethod
@@ -1658,7 +1649,7 @@ class AgentResponse(BaseModel):
1658
1649
  ),
1659
1650
  ]
1660
1651
  wallet_provider: Annotated[
1661
- Optional[Literal["cdp"]],
1652
+ Optional[Literal["cdp", "readonly"]],
1662
1653
  PydanticField(
1663
1654
  default="cdp",
1664
1655
  description="Provider of the agent's wallet",
@@ -715,10 +715,11 @@
715
715
  "type": "string",
716
716
  "description": "Provider of the agent's wallet",
717
717
  "enum": [
718
- "cdp"
718
+ "cdp",
719
+ "readonly"
719
720
  ],
720
721
  "default": "cdp",
721
- "x-group": "internal"
722
+ "x-group": "onchain"
722
723
  },
723
724
  "network_id": {
724
725
  "title": "Network ID",
@@ -741,5 +742,26 @@
741
742
  "x-group": "internal"
742
743
  }
743
744
  },
744
- "additionalProperties": false
745
+ "additionalProperties": false,
746
+ "if": {
747
+ "properties": {
748
+ "wallet_provider": {
749
+ "const": "readonly"
750
+ }
751
+ }
752
+ },
753
+ "then": {
754
+ "properties": {
755
+ "readonly_wallet_address": {
756
+ "title": "Readonly Wallet Address",
757
+ "type": "string",
758
+ "description": "Wallet address for readonly wallet provider",
759
+ "maxLength": 100,
760
+ "x-group": "onchain"
761
+ }
762
+ },
763
+ "required": [
764
+ "readonly_wallet_address"
765
+ ]
766
+ }
745
767
  }
@@ -45,6 +45,7 @@ class AuthorType(str, Enum):
45
45
  WEB = "web"
46
46
  SYSTEM = "system"
47
47
  API = "api"
48
+ XMTP = "xmtp"
48
49
 
49
50
 
50
51
  class ChatMessageAttachment(TypedDict):
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "intentkit"
3
- version = "0.6.12"
3
+ version = "0.6.13"
4
4
  description = "Intent-based AI Agent Platform - Core Package"
5
5
  authors = [{ name = "hyacinthus", email = "hyacinthus@gmail.com" }]
6
6
  requires-python = ">=3.12"
@@ -1,40 +0,0 @@
1
- """Core API Router.
2
-
3
- This module provides the core API endpoints for agent execution and management.
4
- """
5
-
6
- from typing import Annotated
7
-
8
- from fastapi import APIRouter, Body
9
- from pydantic import AfterValidator
10
-
11
- from intentkit.core.engine import execute_agent
12
- from intentkit.models.chat import ChatMessage, ChatMessageCreate
13
-
14
- core_router = APIRouter(prefix="/core", tags=["Core"])
15
-
16
-
17
- @core_router.post("/execute", response_model=list[ChatMessage])
18
- async def execute(
19
- message: Annotated[
20
- ChatMessageCreate, AfterValidator(ChatMessageCreate.model_validate)
21
- ] = Body(
22
- ChatMessageCreate,
23
- description="The chat message containing agent_id, chat_id and message content",
24
- ),
25
- ) -> list[ChatMessage]:
26
- """Execute an agent with the given input and return response lines.
27
-
28
- **Request Body:**
29
- * `message` - The chat message containing agent_id, chat_id and message content
30
-
31
- **Returns:**
32
- * `list[ChatMessage]` - Formatted response lines from agent execution
33
-
34
- **Raises:**
35
- * `HTTPException`:
36
- - 400: If input parameters are invalid
37
- - 404: If agent not found
38
- - 500: For other server-side errors
39
- """
40
- return await execute_agent(message)
@@ -1,45 +0,0 @@
1
- """Core Client Module.
2
-
3
- This module provides client functions for core API endpoints with environment-aware routing.
4
- """
5
-
6
- import httpx
7
-
8
- from intentkit.config.config import config
9
- from intentkit.core.engine import execute_agent as local_execute_agent
10
- from intentkit.models.chat import ChatMessage, ChatMessageCreate
11
-
12
-
13
- async def execute_agent(
14
- message: ChatMessageCreate, debug: bool = False
15
- ) -> list[ChatMessage]:
16
- """Execute an agent with environment-aware routing.
17
-
18
- In local environment, directly calls the local execute_agent function.
19
- In other environments, makes HTTP request to the core API endpoint.
20
-
21
- Args:
22
- message (ChatMessage): The chat message containing agent_id, chat_id and message content
23
- debug (bool): Enable debug mode
24
-
25
- Returns:
26
- list[ChatMessage]: Formatted response lines from agent execution
27
-
28
- Raises:
29
- HTTPException: For API errors (in non-local environment)
30
- Exception: For other execution errors
31
- """
32
- if config.env == "local":
33
- return await local_execute_agent(message, debug)
34
-
35
- # Make HTTP request in non-local environment
36
- url = f"{config.internal_base_url}/core/execute"
37
- async with httpx.AsyncClient() as client:
38
- response = await client.post(
39
- url,
40
- json=message.model_dump(mode="json"),
41
- timeout=180,
42
- )
43
- response.raise_for_status()
44
- json_data = response.json()
45
- return [ChatMessage.model_validate(msg) for msg in json_data]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes