intentkit 1.0.0__tar.gz → 1.2.0__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.
Files changed (734) hide show
  1. {intentkit-1.0.0 → intentkit-1.2.0}/PKG-INFO +1 -1
  2. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/__init__.py +1 -1
  3. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/config.py +2 -1
  4. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/api.py +32 -2
  5. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/engine.py +2 -1
  6. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/__init__.py +6 -0
  7. intentkit-1.2.0/intentkit/core/lead/skills/update_user_profile.py +134 -0
  8. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/sub_agents/__init__.py +11 -0
  9. intentkit-1.2.0/intentkit/core/lead/sub_agents/user_manager.py +82 -0
  10. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/prompt.py +7 -0
  11. intentkit-1.2.0/intentkit/core/team/wechat_session_notice.py +88 -0
  12. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/llm.csv +2 -0
  13. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/llm.py +38 -2
  14. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/llm_picker.py +3 -0
  15. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/user.py +24 -0
  16. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/__init__.py +1 -1
  17. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/minimax.py +2 -2
  18. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/__init__.py +1 -1
  19. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/minimax.py +2 -2
  20. {intentkit-1.0.0 → intentkit-1.2.0}/pyproject.toml +1 -1
  21. {intentkit-1.0.0 → intentkit-1.2.0}/.gitignore +0 -0
  22. {intentkit-1.0.0 → intentkit-1.2.0}/LICENSE +0 -0
  23. {intentkit-1.0.0 → intentkit-1.2.0}/app/team/intentkit/docker-compose.yml +0 -0
  24. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/.dockerignore +0 -0
  25. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/LICENSE +0 -0
  26. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/MANIFEST.in +0 -0
  27. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/README.md +0 -0
  28. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/__init__.py +0 -0
  29. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/agent.py +0 -0
  30. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/api.py +0 -0
  31. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/engine.py +0 -0
  32. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/graph.py +0 -0
  33. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/skill.py +0 -0
  34. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/twitter.py +0 -0
  35. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/abstracts/wallet.py +0 -0
  36. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/__init__.py +0 -0
  37. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/mcp/__init__.py +0 -0
  38. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/mcp/client.py +0 -0
  39. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/mcp/registry.py +0 -0
  40. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/mcp/tool.py +0 -0
  41. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/mcp/wrapper.py +0 -0
  42. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/moralis.py +0 -0
  43. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/s3.py +0 -0
  44. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/s3_setup.py +0 -0
  45. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/supabase.py +0 -0
  46. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/twitter.py +0 -0
  47. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/clients/web3_ens.py +0 -0
  48. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/__init__.py +0 -0
  49. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/base.py +0 -0
  50. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/db.py +0 -0
  51. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/db_mig.py +0 -0
  52. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/config/redis.py +0 -0
  53. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/__init__.py +0 -0
  54. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/account_checking.py +0 -0
  55. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/__init__.py +0 -0
  56. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/analytics.py +0 -0
  57. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/constants.py +0 -0
  58. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/management.py +0 -0
  59. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/notifications.py +0 -0
  60. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/public_info.py +0 -0
  61. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/queries.py +0 -0
  62. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent/wallet.py +0 -0
  63. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent_activity.py +0 -0
  64. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/agent_post.py +0 -0
  65. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/asset.py +0 -0
  66. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/autonomous.py +0 -0
  67. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/avatar.py +0 -0
  68. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/budget.py +0 -0
  69. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/chat.py +0 -0
  70. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/cleanup.py +0 -0
  71. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/client.py +0 -0
  72. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/__init__.py +0 -0
  73. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/adjustment.py +0 -0
  74. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/base.py +0 -0
  75. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/expense.py +0 -0
  76. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/list_events.py +0 -0
  77. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/plan_credit.py +0 -0
  78. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/recharge.py +0 -0
  79. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/refill.py +0 -0
  80. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/reward.py +0 -0
  81. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/credit/withdraw.py +0 -0
  82. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/draft.py +0 -0
  83. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/draft_chat.py +0 -0
  84. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/engine.py +0 -0
  85. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/executor.py +0 -0
  86. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/__init__.py +0 -0
  87. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/cache.py +0 -0
  88. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/constants.py +0 -0
  89. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/service.py +0 -0
  90. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/add_autonomous_task.py +0 -0
  91. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/base.py +0 -0
  92. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/call_agent.py +0 -0
  93. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/create_team_agent.py +0 -0
  94. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/delete_autonomous_task.py +0 -0
  95. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/edit_autonomous_task.py +0 -0
  96. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/get_post.py +0 -0
  97. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/get_self_info.py +0 -0
  98. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/get_team_agent.py +0 -0
  99. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/get_team_info.py +0 -0
  100. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/list_autonomous_tasks.py +0 -0
  101. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/list_skills.py +0 -0
  102. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/list_team_agents.py +0 -0
  103. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/llm.py +0 -0
  104. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/recent_team_activities.py +0 -0
  105. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/recent_team_posts.py +0 -0
  106. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/update_self.py +0 -0
  107. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/update_self_memory.py +0 -0
  108. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/skills/update_team_agent.py +0 -0
  109. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/sub_agents/agent_manager.py +0 -0
  110. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/sub_agents/content_manager.py +0 -0
  111. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/sub_agents/self_updater.py +0 -0
  112. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/lead/sub_agents/task_manager.py +0 -0
  113. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/__init__.py +0 -0
  114. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/engine.py +0 -0
  115. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/service.py +0 -0
  116. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/__init__.py +0 -0
  117. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/add_autonomous_task.py +0 -0
  118. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/base.py +0 -0
  119. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/delete_autonomous_task.py +0 -0
  120. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/draft.py +0 -0
  121. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/edit_autonomous_task.py +0 -0
  122. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/list_autonomous_tasks.py +0 -0
  123. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/llm.py +0 -0
  124. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/manager/skills/public_info.py +0 -0
  125. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/memory.py +0 -0
  126. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/middleware.py +0 -0
  127. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/public_agents.py +0 -0
  128. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/public_api.py +0 -0
  129. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/scheduler.py +0 -0
  130. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/share_link.py +0 -0
  131. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/statistics.py +0 -0
  132. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/__init__.py +0 -0
  133. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/base.py +0 -0
  134. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/call_agent.py +0 -0
  135. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/create_activity.py +0 -0
  136. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/create_post.py +0 -0
  137. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/current_time.py +0 -0
  138. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/get_post.py +0 -0
  139. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/read_webpage.py +0 -0
  140. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/recent_activities.py +0 -0
  141. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/recent_posts.py +0 -0
  142. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/search_web.py +0 -0
  143. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/system_skills/update_memory.py +0 -0
  144. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/task_registry.py +0 -0
  145. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/__init__.py +0 -0
  146. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/channel.py +0 -0
  147. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/feed.py +0 -0
  148. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/membership.py +0 -0
  149. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/push.py +0 -0
  150. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/team/subscription.py +0 -0
  151. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/template.py +0 -0
  152. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/core/user.py +0 -0
  153. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/__init__.py +0 -0
  154. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/__init__.py +0 -0
  155. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/agent.py +0 -0
  156. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/autonomous.py +0 -0
  157. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/core.py +0 -0
  158. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/db.py +0 -0
  159. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/public.json +0 -0
  160. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/public_info.py +0 -0
  161. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/response.py +0 -0
  162. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/schema.json +0 -0
  163. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent/user_input.py +0 -0
  164. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent_activity.py +0 -0
  165. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent_data.py +0 -0
  166. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/agent_post.py +0 -0
  167. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/app_setting.py +0 -0
  168. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/chat.py +0 -0
  169. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/__init__.py +0 -0
  170. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/account.py +0 -0
  171. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/base.py +0 -0
  172. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/event.py +0 -0
  173. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/price.py +0 -0
  174. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/credit/transaction.py +0 -0
  175. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/draft.py +0 -0
  176. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/share_link.py +0 -0
  177. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/skill.py +0 -0
  178. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/team.py +0 -0
  179. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/team_channel.py +0 -0
  180. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/team_feed.py +0 -0
  181. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/template.py +0 -0
  182. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/user_data.py +0 -0
  183. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/models/x402_order.py +0 -0
  184. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/__init__.py +0 -0
  185. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/__init__.py +0 -0
  186. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/aave_v3.svg +0 -0
  187. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/base.py +0 -0
  188. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/borrow.py +0 -0
  189. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/constants.py +0 -0
  190. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/get_reserve_data.py +0 -0
  191. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/get_user_account_data.py +0 -0
  192. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/repay.py +0 -0
  193. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/schema.json +0 -0
  194. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/set_collateral.py +0 -0
  195. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/supply.py +0 -0
  196. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/utils.py +0 -0
  197. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aave_v3/withdraw.py +0 -0
  198. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/__init__.py +0 -0
  199. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/acp.png +0 -0
  200. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/base.py +0 -0
  201. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/cancel_checkout.py +0 -0
  202. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/complete_checkout.py +0 -0
  203. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/create_checkout.py +0 -0
  204. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/get_checkout.py +0 -0
  205. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/list_products.py +0 -0
  206. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/acp/schema.json +0 -0
  207. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/__init__.py +0 -0
  208. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/add_liquidity.py +0 -0
  209. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/aerodrome.svg +0 -0
  210. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/base.py +0 -0
  211. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/constants.py +0 -0
  212. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/get_positions.py +0 -0
  213. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/quote.py +0 -0
  214. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/remove_liquidity.py +0 -0
  215. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/schema.json +0 -0
  216. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/swap.py +0 -0
  217. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aerodrome/utils.py +0 -0
  218. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/README.md +0 -0
  219. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/__init__.py +0 -0
  220. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/aixbt.jpg +0 -0
  221. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/base.py +0 -0
  222. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/projects.py +0 -0
  223. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/aixbt/schema.json +0 -0
  224. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/allora/__init__.py +0 -0
  225. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/allora/allora.jpeg +0 -0
  226. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/allora/base.py +0 -0
  227. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/allora/price.py +0 -0
  228. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/allora/schema.json +0 -0
  229. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/base.py +0 -0
  230. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/__init__.py +0 -0
  231. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/base.py +0 -0
  232. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/basename.svg +0 -0
  233. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/constants.py +0 -0
  234. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/register.py +0 -0
  235. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/basename/schema.json +0 -0
  236. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/README.md +0 -0
  237. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/__init__.py +0 -0
  238. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/base.py +0 -0
  239. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/carv.webp +0 -0
  240. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/fetch_news.py +0 -0
  241. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/onchain_query.py +0 -0
  242. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/schema.json +0 -0
  243. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/carv/token_info_and_price.py +0 -0
  244. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/README.md +0 -0
  245. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/__init__.py +0 -0
  246. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/base.py +0 -0
  247. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/casino.png +0 -0
  248. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/deck_draw.py +0 -0
  249. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/deck_shuffle.py +0 -0
  250. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/dice_roll.py +0 -0
  251. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/schema.json +0 -0
  252. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/casino/utils.py +0 -0
  253. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/__init__.py +0 -0
  254. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/base.py +0 -0
  255. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/cdp.png +0 -0
  256. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/get_balance.py +0 -0
  257. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/get_wallet_details.py +0 -0
  258. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/native_transfer.py +0 -0
  259. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cdp/schema.json +0 -0
  260. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/README.md +0 -0
  261. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/__init__.py +0 -0
  262. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/base.py +0 -0
  263. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/chain_lookup.py +0 -0
  264. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/chainlist.png +0 -0
  265. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/chainlist/schema.json +0 -0
  266. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/README.md +0 -0
  267. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/__init__.py +0 -0
  268. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/base.py +0 -0
  269. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/constants.py +0 -0
  270. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/cookiefun.png +0 -0
  271. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/get_account_details.py +0 -0
  272. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
  273. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
  274. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/get_sectors.py +0 -0
  275. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/schema.json +0 -0
  276. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cookiefun/search_accounts.py +0 -0
  277. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/__init__.py +0 -0
  278. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/api.py +0 -0
  279. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/base.py +0 -0
  280. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
  281. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
  282. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
  283. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  284. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  285. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
  286. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
  287. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptocompare/schema.json +0 -0
  288. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/__init__.py +0 -0
  289. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/base.py +0 -0
  290. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
  291. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
  292. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  293. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/cryptopanic/schema.json +0 -0
  294. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/README.md +0 -0
  295. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/__init__.py +0 -0
  296. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/base.py +0 -0
  297. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
  298. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
  299. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dapplooker/schema.json +0 -0
  300. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/__init__.py +0 -0
  301. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/api.py +0 -0
  302. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/base.py +0 -0
  303. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/__init__.py +0 -0
  304. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  305. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
  306. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
  307. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
  308. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
  309. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
  310. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
  311. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/config/__init__.py +0 -0
  312. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/config/chains.py +0 -0
  313. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/defillama.jpeg +0 -0
  314. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/fees/__init__.py +0 -0
  315. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
  316. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/schema.json +0 -0
  317. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
  318. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  319. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  320. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  321. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  322. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tests/__init__.py +0 -0
  323. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
  324. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
  325. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/__init__.py +0 -0
  326. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  327. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
  328. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  329. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_protocol.py +0 -0
  330. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  331. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
  332. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/volumes/__init__.py +0 -0
  333. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  334. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  335. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
  336. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/yields/__init__.py +0 -0
  337. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
  338. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
  339. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/README.md +0 -0
  340. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/__init__.py +0 -0
  341. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/base.py +0 -0
  342. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/dexscreener.png +0 -0
  343. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/get_pair_info.py +0 -0
  344. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/get_token_pairs.py +0 -0
  345. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/get_tokens_info.py +0 -0
  346. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/model/__init__.py +0 -0
  347. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
  348. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/schema.json +0 -0
  349. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/search_token.py +0 -0
  350. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dexscreener/utils.py +0 -0
  351. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/__init__.py +0 -0
  352. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/base.py +0 -0
  353. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/dune.png +0 -0
  354. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/execute_query.py +0 -0
  355. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/get_query_results.py +0 -0
  356. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/run_sql.py +0 -0
  357. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/dune/schema.json +0 -0
  358. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/README.md +0 -0
  359. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/__init__.py +0 -0
  360. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/base.py +0 -0
  361. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/elfa.jpg +0 -0
  362. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/mention.py +0 -0
  363. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/schema.json +0 -0
  364. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/stats.py +0 -0
  365. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/tokens.py +0 -0
  366. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/elfa/utils.py +0 -0
  367. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/README.md +0 -0
  368. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/__init__.py +0 -0
  369. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/abi/__init__.py +0 -0
  370. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/abi/approval.py +0 -0
  371. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/abi/erc20.py +0 -0
  372. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/abi/route.py +0 -0
  373. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/base.py +0 -0
  374. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/best_yield.py +0 -0
  375. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/enso.jpg +0 -0
  376. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/networks.py +0 -0
  377. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/prices.py +0 -0
  378. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/route.py +0 -0
  379. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/schema.json +0 -0
  380. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/tokens.py +0 -0
  381. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/enso/wallet.py +0 -0
  382. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/__init__.py +0 -0
  383. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/base.py +0 -0
  384. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/constants.py +0 -0
  385. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/erc20.svg +0 -0
  386. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/get_balance.py +0 -0
  387. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/get_token_address.py +0 -0
  388. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/schema.json +0 -0
  389. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/transfer.py +0 -0
  390. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc20/utils.py +0 -0
  391. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/__init__.py +0 -0
  392. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/base.py +0 -0
  393. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/constants.py +0 -0
  394. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/erc721.svg +0 -0
  395. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/get_balance.py +0 -0
  396. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/mint.py +0 -0
  397. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/schema.json +0 -0
  398. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/erc721/transfer.py +0 -0
  399. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/README.md +0 -0
  400. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/__init__.py +0 -0
  401. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/base.py +0 -0
  402. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/clear.py +0 -0
  403. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/crawl.py +0 -0
  404. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/firecrawl.png +0 -0
  405. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/query.py +0 -0
  406. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/schema.json +0 -0
  407. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/scrape.py +0 -0
  408. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/firecrawl/utils.py +0 -0
  409. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/README.md +0 -0
  410. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/__init__.py +0 -0
  411. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/base.py +0 -0
  412. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/github.jpg +0 -0
  413. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/github_search.py +0 -0
  414. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/github/schema.json +0 -0
  415. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/__init__.py +0 -0
  416. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/base.py +0 -0
  417. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/heurist.png +0 -0
  418. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_animagine_xl.py +0 -0
  419. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_arthemy_comics.py +0 -0
  420. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_arthemy_real.py +0 -0
  421. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_braindance.py +0 -0
  422. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  423. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_flux_1_dev.py +0 -0
  424. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/image_generation_sdxl.py +0 -0
  425. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/heurist/schema.json +0 -0
  426. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/README.md +0 -0
  427. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/__init__.py +0 -0
  428. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/base.py +0 -0
  429. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/get.py +0 -0
  430. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/http.svg +0 -0
  431. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/post.py +0 -0
  432. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/put.py +0 -0
  433. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/http/schema.json +0 -0
  434. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/base.py +0 -0
  435. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/gemini.py +0 -0
  436. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/gpt.py +0 -0
  437. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/grok.py +0 -0
  438. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/image.svg +0 -0
  439. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/openrouter.py +0 -0
  440. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/image/schema.json +0 -0
  441. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/README.md +0 -0
  442. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/__init__.py +0 -0
  443. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/base.py +0 -0
  444. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/jupiter.png +0 -0
  445. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/price.py +0 -0
  446. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/schema.json +0 -0
  447. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/jupiter/swap.py +0 -0
  448. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/README.md +0 -0
  449. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/__init__.py +0 -0
  450. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/base.py +0 -0
  451. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/lifi.png +0 -0
  452. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/schema.json +0 -0
  453. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/token_execute.py +0 -0
  454. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/token_quote.py +0 -0
  455. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/lifi/utils.py +0 -0
  456. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/mcp_coingecko/__init__.py +0 -0
  457. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/mcp_coingecko/coingecko.svg +0 -0
  458. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/mcp_coingecko/schema.json +0 -0
  459. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/README.md +0 -0
  460. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/__init__.py +0 -0
  461. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/api.py +0 -0
  462. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/base.py +0 -0
  463. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
  464. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/fetch_nft_portfolio.py +0 -0
  465. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/fetch_solana_portfolio.py +0 -0
  466. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/fetch_wallet_portfolio.py +0 -0
  467. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/moralis.png +0 -0
  468. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/moralis/schema.json +0 -0
  469. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/__init__.py +0 -0
  470. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/base.py +0 -0
  471. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/borrow.py +0 -0
  472. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/constants.py +0 -0
  473. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/deposit.py +0 -0
  474. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/get_position.py +0 -0
  475. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/get_vault_data.py +0 -0
  476. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/morpho.svg +0 -0
  477. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/repay.py +0 -0
  478. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/schema.json +0 -0
  479. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/supply_collateral.py +0 -0
  480. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/withdraw.py +0 -0
  481. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/morpho/withdraw_collateral.py +0 -0
  482. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/onchain.py +0 -0
  483. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/__init__.py +0 -0
  484. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/base.py +0 -0
  485. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/buy_nft.py +0 -0
  486. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/cancel_listing.py +0 -0
  487. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/constants.py +0 -0
  488. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/create_listing.py +0 -0
  489. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_collection.py +0 -0
  490. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_collection_stats.py +0 -0
  491. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_events.py +0 -0
  492. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_listings.py +0 -0
  493. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_nft.py +0 -0
  494. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_nfts_by_account.py +0 -0
  495. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/get_offers.py +0 -0
  496. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/onchain_base.py +0 -0
  497. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/opensea.svg +0 -0
  498. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/schema.json +0 -0
  499. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/opensea/update_listing.py +0 -0
  500. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/__init__.py +0 -0
  501. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/add_liquidity.py +0 -0
  502. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/base.py +0 -0
  503. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/constants.py +0 -0
  504. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/get_positions.py +0 -0
  505. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/pancakeswap.png +0 -0
  506. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/quote.py +0 -0
  507. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/remove_liquidity.py +0 -0
  508. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/schema.json +0 -0
  509. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/swap.py +0 -0
  510. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pancakeswap/utils.py +0 -0
  511. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/__init__.py +0 -0
  512. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/base.py +0 -0
  513. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/cancel_order.py +0 -0
  514. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_market.py +0 -0
  515. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_orderbook.py +0 -0
  516. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_orders.py +0 -0
  517. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_positions.py +0 -0
  518. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_price_history.py +0 -0
  519. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/get_trades.py +0 -0
  520. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/place_order.py +0 -0
  521. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/polymarket.png +0 -0
  522. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/schema.json +0 -0
  523. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/polymarket/search_markets.py +0 -0
  524. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/README.md +0 -0
  525. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/__init__.py +0 -0
  526. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/base.py +0 -0
  527. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/constants.py +0 -0
  528. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/moralis.png +0 -0
  529. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/schema.json +0 -0
  530. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/token_balances.py +0 -0
  531. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
  532. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
  533. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_history.py +0 -0
  534. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
  535. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
  536. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
  537. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
  538. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_stats.py +0 -0
  539. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
  540. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/__init__.py +0 -0
  541. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/base.py +0 -0
  542. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/fetch_price.py +0 -0
  543. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/fetch_price_feed.py +0 -0
  544. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/pyth.svg +0 -0
  545. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/pyth/schema.json +0 -0
  546. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/__init__.py +0 -0
  547. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/base.py +0 -0
  548. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/get_channel.py +0 -0
  549. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/get_message.py +0 -0
  550. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/schedule_message.py +0 -0
  551. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/schema.json +0 -0
  552. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/send_message.py +0 -0
  553. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/slack/slack.jpg +0 -0
  554. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/__init__.py +0 -0
  555. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/base.py +0 -0
  556. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/delete_data.py +0 -0
  557. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/fetch_data.py +0 -0
  558. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/insert_data.py +0 -0
  559. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/invoke_function.py +0 -0
  560. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/schema.json +0 -0
  561. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/supabase.svg +0 -0
  562. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/update_data.py +0 -0
  563. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/supabase/upsert_data.py +0 -0
  564. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/__init__.py +0 -0
  565. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/base.py +0 -0
  566. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/constants.py +0 -0
  567. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/create_flow.py +0 -0
  568. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/delete_flow.py +0 -0
  569. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/schema.json +0 -0
  570. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/superfluid.svg +0 -0
  571. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/superfluid/update_flow.py +0 -0
  572. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/README.md +0 -0
  573. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/__init__.py +0 -0
  574. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/base.py +0 -0
  575. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/schema.json +0 -0
  576. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/tavily.jpg +0 -0
  577. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/tavily_extract.py +0 -0
  578. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/tavily/tavily_search.py +0 -0
  579. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/README.md +0 -0
  580. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/__init__.py +0 -0
  581. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/base.py +0 -0
  582. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/constants.py +0 -0
  583. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/erc20_transfers.py +0 -0
  584. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/moralis.png +0 -0
  585. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/schema.json +0 -0
  586. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/token_analytics.py +0 -0
  587. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/token_price.py +0 -0
  588. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/token/token_search.py +0 -0
  589. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/__init__.py +0 -0
  590. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/base.py +0 -0
  591. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/follow_user.py +0 -0
  592. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/get_mentions.py +0 -0
  593. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/get_timeline.py +0 -0
  594. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/get_user_by_username.py +0 -0
  595. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/get_user_tweets.py +0 -0
  596. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/like_tweet.py +0 -0
  597. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/post_tweet.py +0 -0
  598. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/reply_tweet.py +0 -0
  599. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/retweet.py +0 -0
  600. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/schema.json +0 -0
  601. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/search_tweets.py +0 -0
  602. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/twitter/twitter.png +0 -0
  603. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/__init__.py +0 -0
  604. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/ask_user.py +0 -0
  605. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/base.py +0 -0
  606. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/schema.json +0 -0
  607. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/show_card.py +0 -0
  608. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/ui/ui.svg +0 -0
  609. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/__init__.py +0 -0
  610. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/add_liquidity.py +0 -0
  611. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/base.py +0 -0
  612. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/constants.py +0 -0
  613. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/get_positions.py +0 -0
  614. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/quote.py +0 -0
  615. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/remove_liquidity.py +0 -0
  616. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/schema.json +0 -0
  617. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/swap.py +0 -0
  618. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/uniswap.svg +0 -0
  619. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/uniswap/utils.py +0 -0
  620. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/unrealspeech/__init__.py +0 -0
  621. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/unrealspeech/base.py +0 -0
  622. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/unrealspeech/schema.json +0 -0
  623. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
  624. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
  625. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/__init__.py +0 -0
  626. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/base.py +0 -0
  627. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/input.py +0 -0
  628. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/schema.json +0 -0
  629. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/venice_audio.py +0 -0
  630. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
  631. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/README.md +0 -0
  632. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/__init__.py +0 -0
  633. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/api.py +0 -0
  634. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/base.py +0 -0
  635. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/config.py +0 -0
  636. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
  637. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
  638. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_enhance/image_enhance.py +0 -0
  639. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  640. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  641. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/README.md +0 -0
  642. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
  643. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_base.py +0 -0
  644. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  645. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  646. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  647. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
  648. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  649. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  650. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  651. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  652. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
  653. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
  654. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_upscale/image_upscale.py +0 -0
  655. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  656. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  657. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_vision/README.md +0 -0
  658. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
  659. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
  660. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
  661. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
  662. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/schema.json +0 -0
  663. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/utils.py +0 -0
  664. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/venice_image/venice_image.jpg +0 -0
  665. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/base.py +0 -0
  666. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/gemini.py +0 -0
  667. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/gpt.py +0 -0
  668. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/grok.py +0 -0
  669. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/schema.json +0 -0
  670. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/video/video.svg +0 -0
  671. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/README.md +0 -0
  672. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/__init__.py +0 -0
  673. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/base.py +0 -0
  674. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/document_indexer.py +0 -0
  675. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/langchain.png +0 -0
  676. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/schema.json +0 -0
  677. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
  678. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/utils.py +0 -0
  679. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/web_scraper/website_indexer.py +0 -0
  680. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/__init__.py +0 -0
  681. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/base.py +0 -0
  682. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/constants.py +0 -0
  683. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/schema.json +0 -0
  684. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/unwrap_eth.py +0 -0
  685. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/weth.svg +0 -0
  686. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/weth/wrap_eth.py +0 -0
  687. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/__init__.py +0 -0
  688. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/base.py +0 -0
  689. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/check_price.py +0 -0
  690. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/get_orders.py +0 -0
  691. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/http_request.py +0 -0
  692. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/httpx_compat.py +0 -0
  693. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/pay.py +0 -0
  694. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/schema.json +0 -0
  695. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/x402/x402.webp +0 -0
  696. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/README.md +0 -0
  697. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/__init__.py +0 -0
  698. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/base.py +0 -0
  699. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/price.py +0 -0
  700. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/schema.json +0 -0
  701. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/swap.py +0 -0
  702. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/transfer.py +0 -0
  703. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/skills/xmtp/xmtp.png +0 -0
  704. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/__init__.py +0 -0
  705. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/alert.py +0 -0
  706. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/alert_handler.py +0 -0
  707. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/chain.py +0 -0
  708. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/ens.py +0 -0
  709. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/error.py +0 -0
  710. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/logging.py +0 -0
  711. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/opengraph.py +0 -0
  712. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/pdf.py +0 -0
  713. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/random.py +0 -0
  714. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/s3_setup.py +0 -0
  715. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/schema.py +0 -0
  716. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/slack_alert.py +0 -0
  717. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/telegram_alert.py +0 -0
  718. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/templates/post_pdf.html +0 -0
  719. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/time.py +0 -0
  720. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/tx.py +0 -0
  721. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/utils/upload.py +0 -0
  722. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/__init__.py +0 -0
  723. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/cdp.py +0 -0
  724. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/evm_wallet.py +0 -0
  725. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/native.py +0 -0
  726. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy.py +0 -0
  727. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_client.py +0 -0
  728. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_nonce.py +0 -0
  729. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_safe.py +0 -0
  730. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_signer.py +0 -0
  731. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_types.py +0 -0
  732. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/privy_utils.py +0 -0
  733. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/signer.py +0 -0
  734. {intentkit-1.0.0 → intentkit-1.2.0}/intentkit/wallets/web3.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 1.0.0
3
+ Version: 1.2.0
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__ = "1.0.0"
6
+ __version__ = "1.2.0"
7
7
  __author__ = "Ruihua"
8
8
  __email__ = "ruihua@crestal.network"
9
9
 
@@ -153,7 +153,8 @@ class Config:
153
153
  self.google_cloud_project: str | None = self.load("GOOGLE_CLOUD_PROJECT")
154
154
  self.deepseek_api_key: str | None = self.load("DEEPSEEK_API_KEY")
155
155
  self.xai_api_key: str | None = self.load("XAI_API_KEY")
156
- self.minimax_api_key: str | None = self.load("MINIMAX_API_KEY")
156
+ self.minimax_plan_api_key: str | None = self.load("MINIMAX_PLAN_API_KEY")
157
+ self.mimo_plan_api_key: str | None = self.load("MIMO_PLAN_API_KEY")
157
158
  self.openrouter_api_key: str | None = self.load("OPENROUTER_API_KEY")
158
159
  # OpenAI Compatible provider
159
160
  self.openai_compatible_api_key: str | None = self.load(
@@ -22,6 +22,10 @@ from intentkit.core.engine import execute_agent, stream_agent
22
22
  from intentkit.core.lead.engine import stream_lead
23
23
  from intentkit.core.lead.service import verify_team_membership
24
24
  from intentkit.core.team.channel import set_push_channel, set_push_channel_if_empty
25
+ from intentkit.core.team.wechat_session_notice import (
26
+ WECHAT_SESSION_EXPIRING,
27
+ build_expiring_prompt,
28
+ )
25
29
  from intentkit.models.chat import (
26
30
  AuthorType,
27
31
  ChatMessage,
@@ -31,6 +35,11 @@ from intentkit.models.chat import (
31
35
  from intentkit.models.user import User, UserUpdate
32
36
  from intentkit.utils.error import IntentKitAPIError
33
37
 
38
+ # Set of recognized system_trigger values. Each value supplies its own
39
+ # synthesized prompt and may override the author_type to TRIGGER so the
40
+ # event is recorded in chat history without looking like a real user message.
41
+ _SYSTEM_TRIGGERS: frozenset[str] = frozenset({WECHAT_SESSION_EXPIRING})
42
+
34
43
  # ⚠️ INTERNAL API ONLY - DO NOT EXPOSE TO PUBLIC INTERNET ⚠️
35
44
  core_router = APIRouter(
36
45
  prefix="/core",
@@ -91,6 +100,11 @@ class LeadExecuteRequest(BaseModel):
91
100
  chat_id: str
92
101
  message: str
93
102
  attachments: list[ChatMessageAttachment] | None = None
103
+ # When set, the integration is asking the lead agent to handle a
104
+ # system-driven event (e.g. wechat reply window about to close) rather
105
+ # than a real user message. The `message` field is replaced with a
106
+ # synthesized prompt and the saved record is tagged AuthorType.TRIGGER.
107
+ system_trigger: str | None = None
94
108
 
95
109
 
96
110
  # Per-channel config: (user_lookup, bind_field, author_type, chat_id_prefix)
@@ -131,15 +145,31 @@ async def _resolve_lead(
131
145
  else:
132
146
  user_id = request.channel_user_id
133
147
 
148
+ # System-driven trigger: replace the (likely empty) caller message with
149
+ # a synthesized prompt and tag the saved record as TRIGGER so chat-UI
150
+ # consumers can hide it the same way they hide autonomous task triggers.
151
+ message_text = request.message
152
+ saved_author_type = author_type
153
+ if request.system_trigger:
154
+ if request.system_trigger not in _SYSTEM_TRIGGERS:
155
+ raise IntentKitAPIError(
156
+ 400,
157
+ "Bad Request",
158
+ f"Unknown system_trigger: {request.system_trigger}",
159
+ )
160
+ if request.system_trigger == WECHAT_SESSION_EXPIRING:
161
+ message_text = await build_expiring_prompt(request.team_id)
162
+ saved_author_type = AuthorType.TRIGGER
163
+
134
164
  chat_msg = ChatMessageCreate(
135
165
  id=str(XID()),
136
166
  agent_id=f"team-{request.team_id}",
137
167
  chat_id=f"{chat_prefix}:{request.team_id}:{request.chat_id}",
138
168
  user_id=user_id,
139
169
  author_id=user_id,
140
- author_type=author_type,
170
+ author_type=saved_author_type,
141
171
  thread_type=author_type,
142
- message=request.message,
172
+ message=message_text,
143
173
  attachments=request.attachments,
144
174
  )
145
175
  return user_id, chat_msg
@@ -73,7 +73,8 @@ async def _build_lead_agent(team_id: str) -> Agent:
73
73
  "- `agent-manager`: Agent CRUD.\n"
74
74
  "- `task-manager`: Autonomous task scheduling and management.\n"
75
75
  "- `self-updater`: Update your own name, avatar, personality, or memory.\n"
76
- "- `content-manager`: Read team activities and posts.\n\n"
76
+ "- `content-manager`: Read team activities and posts.\n"
77
+ "- `user-manager`: Update the current user's profile (name, timezone, language).\n\n"
77
78
  "You can also use `lead_call_agent` to delegate to any team agent "
78
79
  "discovered via `lead_list_team_agents`.\n\n"
79
80
  "### Workflow\n\n"
@@ -72,6 +72,10 @@ from intentkit.core.lead.skills.update_team_agent import (
72
72
  UpdateTeamAgent,
73
73
  update_team_agent_skill,
74
74
  )
75
+ from intentkit.core.lead.skills.update_user_profile import (
76
+ LeadUpdateUserProfile,
77
+ lead_update_user_profile_skill,
78
+ )
75
79
 
76
80
  __all__ = [
77
81
  "CreateTeamAgent",
@@ -108,6 +112,8 @@ __all__ = [
108
112
  "lead_update_self_memory_skill",
109
113
  "ListTeamAgents",
110
114
  "list_team_agents_skill",
115
+ "LeadUpdateUserProfile",
116
+ "lead_update_user_profile_skill",
111
117
  "UpdateTeamAgent",
112
118
  "update_team_agent_skill",
113
119
  ]
@@ -0,0 +1,134 @@
1
+ """Skill to update the current user's profile."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import logging
6
+ from typing import Any, override
7
+ from zoneinfo import ZoneInfo, ZoneInfoNotFoundError
8
+
9
+ from langchain_core.tools import ArgsSchema
10
+ from langchain_core.tools.base import ToolException
11
+ from pydantic import BaseModel, Field
12
+
13
+ from intentkit.config.redis import get_redis
14
+ from intentkit.core.lead.skills.base import LeadSkill
15
+ from intentkit.models.user import UserUpdate
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+ # Must stay in sync with USER_CACHE_PREFIX in app/team/user.py — we duplicate
20
+ # the constant because core/ cannot import from app/.
21
+ _USER_CACHE_PREFIX = "intentkit:user:"
22
+
23
+
24
+ class UpdateUserProfileInput(BaseModel):
25
+ """Input model for lead_update_user_profile skill."""
26
+
27
+ name: str | None = Field(
28
+ default=None,
29
+ description="New display name (max 50 chars). Omit to keep unchanged.",
30
+ )
31
+ timezone: str | None = Field(
32
+ default=None,
33
+ description=(
34
+ "IANA timezone identifier (e.g. 'Asia/Shanghai', 'America/New_York'). "
35
+ "Convert offsets like 'GMT+8' to the corresponding IANA name first. "
36
+ "Omit to keep unchanged. Pass an empty string to clear."
37
+ ),
38
+ )
39
+ language: str | None = Field(
40
+ default=None,
41
+ description=(
42
+ "Preferred language as a BCP 47 tag (e.g. 'zh-CN', 'en', 'ja'). "
43
+ "Omit to keep unchanged. Pass an empty string to clear."
44
+ ),
45
+ )
46
+
47
+
48
+ class UpdateUserProfileOutput(BaseModel):
49
+ """Output model for lead_update_user_profile skill."""
50
+
51
+ message: str = Field(description="Success message")
52
+ updated_fields: list[str] = Field(description="List of fields that were updated")
53
+
54
+
55
+ class LeadUpdateUserProfile(LeadSkill):
56
+ """Skill to update the current user's profile (name, timezone, language).
57
+
58
+ Writes go through `UserUpdate.patch`, so a row is created if the user does
59
+ not yet exist. The user's API-side Redis cache is invalidated so the next
60
+ GET reflects the change.
61
+ """
62
+
63
+ name: str = "lead_update_user_profile"
64
+ description: str = (
65
+ "Update the current user's profile. Supported fields: name, timezone, "
66
+ "language. Only provide the fields you want to change. The user is "
67
+ "always taken from the current conversation context — never accept a "
68
+ "user id as input."
69
+ )
70
+ args_schema: ArgsSchema | None = UpdateUserProfileInput
71
+
72
+ @override
73
+ async def _arun(
74
+ self,
75
+ name: str | None = None,
76
+ timezone: str | None = None,
77
+ language: str | None = None,
78
+ **kwargs: Any,
79
+ ) -> UpdateUserProfileOutput:
80
+ context = self.get_context()
81
+ user_id = context.user_id
82
+ if not user_id:
83
+ raise ToolException("No user_id in context")
84
+
85
+ updates: dict[str, Any] = {}
86
+ updated_fields: list[str] = []
87
+
88
+ if name is not None:
89
+ trimmed = name.strip()
90
+ if trimmed:
91
+ updates["name"] = trimmed[:50]
92
+ updated_fields.append("name")
93
+
94
+ if timezone is not None:
95
+ tz = timezone.strip()
96
+ if tz:
97
+ try:
98
+ ZoneInfo(tz)
99
+ except (ZoneInfoNotFoundError, ValueError) as exc:
100
+ raise ToolException(
101
+ f"Invalid IANA timezone: {timezone!r}. "
102
+ "Use a name like 'Asia/Shanghai' or 'America/New_York'."
103
+ ) from exc
104
+ updates["timezone"] = tz
105
+ else:
106
+ updates["timezone"] = None
107
+ updated_fields.append("timezone")
108
+
109
+ if language is not None:
110
+ lang = language.strip()
111
+ updates["language"] = lang[:32] if lang else None
112
+ updated_fields.append("language")
113
+
114
+ if not updates:
115
+ return UpdateUserProfileOutput(
116
+ message="No fields provided to update.",
117
+ updated_fields=[],
118
+ )
119
+
120
+ await UserUpdate.model_validate(updates).patch(user_id)
121
+
122
+ try:
123
+ redis = get_redis()
124
+ await redis.delete(f"{_USER_CACHE_PREFIX}{user_id}")
125
+ except Exception as exc:
126
+ logger.warning("Failed to invalidate user cache for %s: %s", user_id, exc)
127
+
128
+ return UpdateUserProfileOutput(
129
+ message=f"User profile updated: {', '.join(updated_fields)}.",
130
+ updated_fields=updated_fields,
131
+ )
132
+
133
+
134
+ lead_update_user_profile_skill = LeadUpdateUserProfile()
@@ -23,6 +23,7 @@ SLUG_AGENT_MANAGER = "agent-manager"
23
23
  SLUG_TASK_MANAGER = "task-manager"
24
24
  SLUG_SELF_UPDATER = "self-updater"
25
25
  SLUG_CONTENT_MANAGER = "content-manager"
26
+ SLUG_USER_MANAGER = "user-manager"
26
27
 
27
28
 
28
29
  @dataclass
@@ -112,6 +113,10 @@ from intentkit.core.lead.sub_agents.task_manager import ( # noqa: E402
112
113
  build_task_manager,
113
114
  get_task_manager_skills,
114
115
  )
116
+ from intentkit.core.lead.sub_agents.user_manager import ( # noqa: E402
117
+ build_user_manager,
118
+ get_user_manager_skills,
119
+ )
115
120
 
116
121
  SUB_AGENT_REGISTRY: dict[str, SubAgentDefinition] = {
117
122
  SLUG_AGENT_MANAGER: SubAgentDefinition(
@@ -147,4 +152,10 @@ SUB_AGENT_REGISTRY: dict[str, SubAgentDefinition] = {
147
152
  build_fn=build_content_manager,
148
153
  skills_fn=get_content_manager_skills,
149
154
  ),
155
+ SLUG_USER_MANAGER: SubAgentDefinition(
156
+ slug=SLUG_USER_MANAGER,
157
+ description=("Manages the current user's profile: name, timezone, language."),
158
+ build_fn=build_user_manager,
159
+ skills_fn=get_user_manager_skills,
160
+ ),
150
161
  }
@@ -0,0 +1,82 @@
1
+ """User Manager sub-agent definition."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Sequence
6
+ from datetime import datetime, timezone
7
+
8
+ from langchain_core.tools import BaseTool
9
+
10
+ from intentkit.core.lead.skills.update_user_profile import (
11
+ lead_update_user_profile_skill,
12
+ )
13
+ from intentkit.models.agent import Agent
14
+ from intentkit.models.llm_picker import pick_default_model
15
+
16
+
17
+ def get_user_manager_skills() -> Sequence[BaseTool]:
18
+ """Return skills for the user-manager sub-agent."""
19
+ return [
20
+ lead_update_user_profile_skill,
21
+ ]
22
+
23
+
24
+ def build_user_manager(team_id: str) -> Agent:
25
+ """Build an in-memory User Manager sub-agent."""
26
+ now = datetime.now(timezone.utc)
27
+
28
+ prompt = (
29
+ "### Workflow\n\n"
30
+ "1. Confirm with the user which fields they want to change "
31
+ "(name, timezone, language).\n"
32
+ "2. Call `lead_update_user_profile` with only the fields being changed.\n"
33
+ "3. Report the result back to the user.\n\n"
34
+ "### Field Guidelines\n\n"
35
+ "- `name`: max 50 characters, the user's preferred display name.\n"
36
+ "- `timezone`: must be an IANA timezone (e.g. `Asia/Shanghai`, "
37
+ "`America/New_York`, `Europe/Berlin`). If the user gives an offset "
38
+ "like `GMT+8` or `UTC-5`, translate it to the matching IANA name "
39
+ "before calling the tool.\n"
40
+ "- `language`: BCP 47 tag (e.g. `zh-CN`, `en`, `ja`, `ko`). Use the "
41
+ "tag, not the language's English name.\n\n"
42
+ "### Boundaries\n\n"
43
+ "- Only ever update the current user. Never accept or use a user id "
44
+ "supplied by the user.\n"
45
+ "- Do not expose or modify any other user's profile.\n"
46
+ )
47
+
48
+ agent_data = {
49
+ "id": f"team-{team_id}-user-manager",
50
+ "owner": "system",
51
+ "team_id": team_id,
52
+ "name": "User Manager",
53
+ "purpose": "Manage the current user's profile (name, timezone, language).",
54
+ "principles": (
55
+ "1. Speak to users in their language.\n"
56
+ "2. Only operate on the current user — never on others.\n"
57
+ "3. Confirm what will be changed before updating."
58
+ ),
59
+ "model": pick_default_model(),
60
+ "prompt": prompt,
61
+ "temperature": 0.2,
62
+ "search_internet": False,
63
+ "super_mode": False,
64
+ "enable_todo": False,
65
+ "enable_activity": False,
66
+ "enable_post": False,
67
+ "enable_long_term_memory": False,
68
+ "sub_agents": None,
69
+ "skills": {
70
+ "ui": {
71
+ "enabled": True,
72
+ "states": {
73
+ "ui_show_card": "private",
74
+ "ui_ask_user": "private",
75
+ },
76
+ },
77
+ },
78
+ "created_at": now,
79
+ "updated_at": now,
80
+ }
81
+
82
+ return Agent.model_validate(agent_data)
@@ -224,6 +224,13 @@ async def _build_user_info_section(context: AgentContext) -> str:
224
224
  prompt_array.append(f"User X Username: {user.x_username}\n")
225
225
  if user.telegram_username:
226
226
  prompt_array.append(f"User Telegram Username: {user.telegram_username}\n")
227
+ if user.timezone:
228
+ prompt_array.append(f"User Timezone: {user.timezone}\n")
229
+ if user.language:
230
+ prompt_array.append(
231
+ f"User Preferred Language: {user.language} "
232
+ "(reply in this language unless the user clearly switches)\n"
233
+ )
227
234
 
228
235
  if prompt_array:
229
236
  prompt_array.append("\n")
@@ -0,0 +1,88 @@
1
+ """Build the synthesized prompt sent to the lead agent when the wechat
2
+ 24-hour reply window is about to close.
3
+
4
+ The Go integration's per-team timer fires this through the
5
+ ``/core/lead/stream`` endpoint with ``system_trigger='wechat_session_expiring'``.
6
+ The lead agent receives the prompt as a TRIGGER-author message, generates a
7
+ heads-up message for the user, and the response is dispatched back over
8
+ wechat by the existing sender path while the window is still open.
9
+ """
10
+
11
+ from __future__ import annotations
12
+
13
+ import asyncio
14
+ import logging
15
+
16
+ from intentkit.core.autonomous import list_autonomous_tasks
17
+ from intentkit.core.lead.service import get_team_agents
18
+
19
+ logger = logging.getLogger(__name__)
20
+
21
+
22
+ # Trigger value shared with integrations/wechat/bot/session_timer.go
23
+ # (SessionTriggerExpiring). Keep aligned.
24
+ WECHAT_SESSION_EXPIRING = "wechat_session_expiring"
25
+
26
+
27
+ async def _build_team_status_block(team_id: str) -> str:
28
+ """Return a compact, human-readable summary of the team's agents and
29
+ their currently enabled autonomous tasks. Best-effort: failures are
30
+ swallowed and reflected as a placeholder line so the notice still goes
31
+ out even if status collection breaks."""
32
+ try:
33
+ agents = await get_team_agents(team_id)
34
+ except Exception:
35
+ logger.warning(
36
+ "wechat session notice: failed to list team agents", exc_info=True
37
+ )
38
+ return "(暂无法获取 agent 状态)"
39
+
40
+ if not agents:
41
+ return "团队当前没有部署任何 agent。"
42
+
43
+ # Fan out per-agent task lookups concurrently — sequential awaits would
44
+ # add one DB round-trip per agent on the user-facing latency path.
45
+ task_results = await asyncio.gather(
46
+ *(list_autonomous_tasks(a.id) for a in agents),
47
+ return_exceptions=True,
48
+ )
49
+
50
+ lines: list[str] = []
51
+ for agent, tasks_or_err in zip(agents, task_results):
52
+ if isinstance(tasks_or_err, BaseException):
53
+ logger.warning(
54
+ "wechat session notice: failed to list autonomous tasks for %s",
55
+ agent.id,
56
+ exc_info=tasks_or_err,
57
+ )
58
+ tasks = []
59
+ else:
60
+ tasks = tasks_or_err
61
+
62
+ enabled_tasks = [t for t in tasks if t.enabled]
63
+ if enabled_tasks:
64
+ task_summaries = [f"{t.name}(cron={t.cron})" for t in enabled_tasks]
65
+ lines.append(
66
+ f"- {agent.name}: 进行中的自动任务 {len(enabled_tasks)} 个 — "
67
+ + ";".join(task_summaries)
68
+ )
69
+ else:
70
+ lines.append(f"- {agent.name}: 暂无启用中的自动任务。")
71
+
72
+ return "\n".join(lines)
73
+
74
+
75
+ async def build_expiring_prompt(team_id: str) -> str:
76
+ """Build the synthesized user-facing prompt for the lead agent."""
77
+ status_block = await _build_team_status_block(team_id)
78
+ return (
79
+ "系统事件:用户在微信上即将达到 24 小时未与你互动的时间窗口,"
80
+ "再过 30 分钟左右我将无法主动给 ta 发消息。"
81
+ "请直接以你自己的口吻给用户写一条微信消息,做到:\n"
82
+ "1) 简明告知微信对主动消息有 1 天的时间限制,即将到期;\n"
83
+ "2) 提示如果想继续接收推送,回复任意消息或交付一个新任务即可;\n"
84
+ "3) 顺带把当前每个 agent 的状态和未完成任务概要带上。\n\n"
85
+ "回复直接就是发给用户的文本,不要再加引导语、问候或 markdown。\n\n"
86
+ "当前团队状态如下:\n"
87
+ f"{status_block}"
88
+ )
@@ -6,6 +6,8 @@ minimax/minimax-m2.7,MiniMax M2.7,openrouter,TRUE,0.3,0.03,1.2,2,204800,131072,5
6
6
  minimax/minimax-m2-her,Minimax M2 Her,openrouter,TRUE,0.3,0.03,1.2,2,65536,2048,3,3,FALSE,FALSE,FALSE,FALSE,none,TRUE,TRUE,TRUE,300
7
7
  xiaomi/mimo-v2.5-pro,MiMo V2.5 Pro,openrouter,TRUE,1,0.2,3,3,1048576,131072,5,2,FALSE,FALSE,FALSE,FALSE,high,TRUE,TRUE,TRUE,300
8
8
  xiaomi/mimo-v2.5,MiMo V2.5,openrouter,TRUE,0.4,0.08,2,2,1048576,131072,4,3,TRUE,TRUE,TRUE,FALSE,high,TRUE,TRUE,TRUE,300
9
+ mimo-v2.5-pro,MiMo V2.5 Pro,mimo_plan,TRUE,1,0.2,3,3,1048576,131072,5,2,FALSE,FALSE,FALSE,FALSE,high,TRUE,TRUE,TRUE,300
10
+ mimo-v2.5,MiMo V2.5,mimo_plan,TRUE,0.4,0.08,2,2,1048576,131072,4,3,TRUE,TRUE,TRUE,FALSE,high,TRUE,TRUE,TRUE,300
9
11
  moonshotai/kimi-k2.6,Moonshot Kimi K2.6,openrouter,TRUE,0.95,0.16,4,2,256000,65536,4,3,TRUE,FALSE,FALSE,FALSE,high,TRUE,TRUE,TRUE,300
10
12
  qwen/qwen3.5-flash-02-23,Qwen3.5 Flash,openrouter,TRUE,0.1,,0.4,1,1000000,65536,4,5,TRUE,FALSE,TRUE,FALSE,none,TRUE,TRUE,TRUE,300
11
13
  z-ai/glm-4.7-flash,GLM 4.7 Flash,openrouter,TRUE,0.06,0.01,0.4,1,202752,131072,3,5,FALSE,FALSE,FALSE,FALSE,none,TRUE,TRUE,TRUE,300
@@ -242,6 +242,7 @@ class LLMProvider(str, Enum):
242
242
  XAI = "xai"
243
243
  OPENROUTER = "openrouter"
244
244
  MINIMAX = "minimax"
245
+ MIMO_PLAN = "mimo_plan"
245
246
  OLLAMA = "ollama"
246
247
  OPENAI_COMPATIBLE = "openai_compatible"
247
248
  ANTHROPIC_COMPATIBLE = "anthropic_compatible"
@@ -255,7 +256,8 @@ class LLMProvider(str, Enum):
255
256
  self.DEEPSEEK: bool(config.deepseek_api_key),
256
257
  self.XAI: bool(config.xai_api_key),
257
258
  self.OPENROUTER: bool(config.openrouter_api_key),
258
- self.MINIMAX: bool(config.minimax_api_key),
259
+ self.MINIMAX: bool(config.minimax_plan_api_key),
260
+ self.MIMO_PLAN: bool(config.mimo_plan_api_key),
259
261
  self.OLLAMA: True, # Ollama usually doesn't need a key
260
262
  self.OPENAI_COMPATIBLE: bool(
261
263
  config.openai_compatible_api_key
@@ -279,6 +281,7 @@ class LLMProvider(str, Enum):
279
281
  self.XAI: "xAI",
280
282
  self.OPENROUTER: "OpenRouter",
281
283
  self.MINIMAX: "MiniMax",
284
+ self.MIMO_PLAN: "MiMo",
282
285
  self.OLLAMA: "Ollama",
283
286
  self.OPENAI_COMPATIBLE: config.openai_compatible_provider,
284
287
  self.ANTHROPIC_COMPATIBLE: config.anthropic_compatible_provider,
@@ -1043,7 +1046,7 @@ class MiniMaxLLM(LLMModel):
1043
1046
 
1044
1047
  kwargs: dict[str, Any] = {
1045
1048
  "model": info.id,
1046
- "api_key": config.minimax_api_key,
1049
+ "api_key": config.minimax_plan_api_key,
1047
1050
  "base_url": "https://api.minimax.io/anthropic",
1048
1051
  "timeout": info.timeout,
1049
1052
  "max_retries": 3,
@@ -1059,6 +1062,38 @@ class MiniMaxLLM(LLMModel):
1059
1062
  return ChatAnthropic(**kwargs)
1060
1063
 
1061
1064
 
1065
+ class MimoPlanLLM(LLMModel):
1066
+ """Xiaomi MiMo Token Plan LLM configuration (OpenAI-compatible API)."""
1067
+
1068
+ @override
1069
+ async def create_instance(self, params: dict[str, Any] = {}) -> BaseChatModel:
1070
+ """Create and return a ChatOpenAI instance configured for MiMo."""
1071
+ from langchain_openai import ChatOpenAI
1072
+
1073
+ info = await self.model_info()
1074
+
1075
+ kwargs: dict[str, Any] = {
1076
+ "model_name": info.id,
1077
+ "openai_api_key": config.mimo_plan_api_key,
1078
+ "openai_api_base": "https://api.xiaomimimo.com/v1",
1079
+ "timeout": info.timeout,
1080
+ "max_retries": 3,
1081
+ }
1082
+
1083
+ if info.supports_temperature:
1084
+ kwargs["temperature"] = self.temperature
1085
+
1086
+ if info.supports_frequency_penalty:
1087
+ kwargs["frequency_penalty"] = self.frequency_penalty
1088
+
1089
+ if info.supports_presence_penalty:
1090
+ kwargs["presence_penalty"] = self.presence_penalty
1091
+
1092
+ kwargs.update(params)
1093
+
1094
+ return ChatOpenAI(**kwargs)
1095
+
1096
+
1062
1097
  class AnthropicCompatibleLLM(LLMModel):
1063
1098
  """Anthropic Compatible LLM configuration."""
1064
1099
 
@@ -1152,6 +1187,7 @@ async def create_llm_model(
1152
1187
  LLMProvider.OLLAMA: OllamaLLM,
1153
1188
  LLMProvider.OPENAI: OpenAILLM,
1154
1189
  LLMProvider.MINIMAX: MiniMaxLLM,
1190
+ LLMProvider.MIMO_PLAN: MimoPlanLLM,
1155
1191
  LLMProvider.OPENAI_COMPATIBLE: OpenAICompatibleLLM,
1156
1192
  LLMProvider.ANTHROPIC_COMPATIBLE: AnthropicCompatibleLLM,
1157
1193
  }
@@ -17,6 +17,7 @@ def pick_summarize_model() -> str:
17
17
  ("grok-4-1-fast-non-reasoning", LLMProvider.XAI),
18
18
  ("deepseek-v4-flash", LLMProvider.DEEPSEEK),
19
19
  ("MiniMax-M2.7", LLMProvider.MINIMAX),
20
+ ("mimo-v2.5", LLMProvider.MIMO_PLAN),
20
21
  ]
21
22
  if (
22
23
  LLMProvider.OPENAI_COMPATIBLE.is_configured
@@ -52,6 +53,7 @@ def pick_default_model() -> str:
52
53
  ("gpt-5.4-mini", LLMProvider.OPENAI),
53
54
  ("grok-4-1-fast-non-reasoning", LLMProvider.XAI),
54
55
  ("deepseek-v4-flash", LLMProvider.DEEPSEEK),
56
+ ("mimo-v2.5", LLMProvider.MIMO_PLAN),
55
57
  ]
56
58
  if LLMProvider.OPENAI_COMPATIBLE.is_configured and config.openai_compatible_model:
57
59
  order.append((config.openai_compatible_model, LLMProvider.OPENAI_COMPATIBLE))
@@ -109,6 +111,7 @@ def pick_long_context_model() -> str:
109
111
  ("gpt-5.4-nano", LLMProvider.OPENAI),
110
112
  ("deepseek-v4-flash", LLMProvider.DEEPSEEK),
111
113
  ("MiniMax-M2.7", LLMProvider.MINIMAX),
114
+ ("mimo-v2.5", LLMProvider.MIMO_PLAN),
112
115
  ]
113
116
  if LLMProvider.OPENAI_COMPATIBLE.is_configured and config.openai_compatible_model:
114
117
  order.append((config.openai_compatible_model, LLMProvider.OPENAI_COMPATIBLE))
@@ -109,6 +109,14 @@ class UserTable(Base):
109
109
  String,
110
110
  nullable=True,
111
111
  )
112
+ timezone: Mapped[str | None] = mapped_column(
113
+ String,
114
+ nullable=True,
115
+ )
116
+ language: Mapped[str | None] = mapped_column(
117
+ String,
118
+ nullable=True,
119
+ )
112
120
  extra: Mapped[dict[str, object] | None] = mapped_column(
113
121
  JSONB(),
114
122
  nullable=True,
@@ -180,6 +188,22 @@ class UserUpdate(BaseModel):
180
188
  wechat_id: Annotated[
181
189
  str | None, Field(None, description="User's WeChat ID (e.g. xxxxx@im.wechat)")
182
190
  ]
191
+ timezone: Annotated[
192
+ str | None,
193
+ Field(
194
+ None,
195
+ description=(
196
+ "IANA timezone identifier (e.g. 'Asia/Shanghai', 'America/New_York')"
197
+ ),
198
+ ),
199
+ ]
200
+ language: Annotated[
201
+ str | None,
202
+ Field(
203
+ None,
204
+ description="Preferred language as BCP 47 tag (e.g. 'zh-CN', 'en')",
205
+ ),
206
+ ]
183
207
  extra: Annotated[
184
208
  dict[str, object] | None, Field(None, description="Additional user information")
185
209
  ]
@@ -100,5 +100,5 @@ def available() -> bool:
100
100
  or system_config.google_api_key
101
101
  or system_config.xai_api_key
102
102
  or system_config.openrouter_api_key
103
- or system_config.minimax_api_key
103
+ or system_config.minimax_plan_api_key
104
104
  )
@@ -21,12 +21,12 @@ class MiniMaxImageBase(ImageBaseTool):
21
21
 
22
22
  @override
23
23
  def has_native_key(self) -> bool:
24
- return bool(config.minimax_api_key)
24
+ return bool(config.minimax_plan_api_key)
25
25
 
26
26
  @override
27
27
  async def _generate_native(self, prompt: str, images: list[bytes] | None) -> bytes:
28
28
  headers = {
29
- "Authorization": f"Bearer {config.minimax_api_key}",
29
+ "Authorization": f"Bearer {config.minimax_plan_api_key}",
30
30
  }
31
31
 
32
32
  body: dict[str, object] = {
@@ -92,5 +92,5 @@ def available() -> bool:
92
92
  system_config.openai_api_key
93
93
  or system_config.google_api_key
94
94
  or system_config.xai_api_key
95
- or system_config.minimax_api_key
95
+ or system_config.minimax_plan_api_key
96
96
  )