intentkit 0.17.26__tar.gz → 0.17.28__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 (731) hide show
  1. {intentkit-0.17.26 → intentkit-0.17.28}/PKG-INFO +1 -1
  2. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/__init__.py +1 -1
  3. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/cache.py +7 -2
  4. intentkit-0.17.28/intentkit/core/lead/constants.py +7 -0
  5. intentkit-0.17.28/intentkit/core/lead/engine.py +179 -0
  6. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/__init__.py +48 -0
  7. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/add_autonomous_task.py +1 -1
  8. intentkit-0.17.28/intentkit/core/lead/skills/call_agent.py +197 -0
  9. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/create_team_agent.py +1 -1
  10. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/delete_autonomous_task.py +1 -1
  11. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/edit_autonomous_task.py +1 -1
  12. intentkit-0.17.28/intentkit/core/lead/skills/get_post.py +67 -0
  13. intentkit-0.17.28/intentkit/core/lead/skills/get_self_info.py +60 -0
  14. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/get_team_agent.py +1 -1
  15. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/get_team_info.py +1 -1
  16. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/list_autonomous_tasks.py +1 -1
  17. intentkit-0.17.28/intentkit/core/lead/skills/list_skills.py +42 -0
  18. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/list_team_agents.py +1 -1
  19. intentkit-0.17.28/intentkit/core/lead/skills/llm.py +74 -0
  20. intentkit-0.17.28/intentkit/core/lead/skills/recent_team_activities.py +55 -0
  21. intentkit-0.17.28/intentkit/core/lead/skills/recent_team_posts.py +56 -0
  22. intentkit-0.17.28/intentkit/core/lead/skills/update_self.py +92 -0
  23. intentkit-0.17.28/intentkit/core/lead/skills/update_self_memory.py +49 -0
  24. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/update_team_agent.py +2 -2
  25. intentkit-0.17.28/intentkit/core/lead/sub_agents/__init__.py +150 -0
  26. intentkit-0.17.28/intentkit/core/lead/sub_agents/agent_manager.py +105 -0
  27. intentkit-0.17.28/intentkit/core/lead/sub_agents/content_manager.py +77 -0
  28. intentkit-0.17.28/intentkit/core/lead/sub_agents/self_updater.py +76 -0
  29. intentkit-0.17.28/intentkit/core/lead/sub_agents/task_manager.py +94 -0
  30. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/channel.py +24 -4
  31. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/team.py +56 -0
  32. {intentkit-0.17.26 → intentkit-0.17.28}/pyproject.toml +1 -1
  33. intentkit-0.17.26/intentkit/core/lead/engine.py +0 -221
  34. intentkit-0.17.26/intentkit/core/lead/skills/llm.py +0 -37
  35. {intentkit-0.17.26 → intentkit-0.17.28}/.gitignore +0 -0
  36. {intentkit-0.17.26 → intentkit-0.17.28}/LICENSE +0 -0
  37. {intentkit-0.17.26 → intentkit-0.17.28}/app/team/intentkit/docker-compose.yml +0 -0
  38. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/.dockerignore +0 -0
  39. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/LICENSE +0 -0
  40. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/MANIFEST.in +0 -0
  41. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/README.md +0 -0
  42. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/__init__.py +0 -0
  43. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/agent.py +0 -0
  44. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/api.py +0 -0
  45. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/engine.py +0 -0
  46. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/graph.py +0 -0
  47. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/skill.py +0 -0
  48. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/twitter.py +0 -0
  49. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/abstracts/wallet.py +0 -0
  50. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/__init__.py +0 -0
  51. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/mcp/__init__.py +0 -0
  52. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/mcp/client.py +0 -0
  53. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/mcp/registry.py +0 -0
  54. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/mcp/tool.py +0 -0
  55. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/mcp/wrapper.py +0 -0
  56. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/moralis.py +0 -0
  57. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/s3.py +0 -0
  58. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/s3_setup.py +0 -0
  59. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/supabase.py +0 -0
  60. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/twitter.py +0 -0
  61. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/clients/web3_ens.py +0 -0
  62. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/__init__.py +0 -0
  63. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/base.py +0 -0
  64. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/config.py +0 -0
  65. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/db.py +0 -0
  66. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/db_mig.py +0 -0
  67. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/config/redis.py +0 -0
  68. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/__init__.py +0 -0
  69. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/account_checking.py +0 -0
  70. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/__init__.py +0 -0
  71. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/analytics.py +0 -0
  72. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/constants.py +0 -0
  73. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/management.py +0 -0
  74. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/notifications.py +0 -0
  75. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/public_info.py +0 -0
  76. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/queries.py +0 -0
  77. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent/wallet.py +0 -0
  78. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent_activity.py +0 -0
  79. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/agent_post.py +0 -0
  80. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/api.py +0 -0
  81. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/asset.py +0 -0
  82. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/autonomous.py +0 -0
  83. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/avatar.py +0 -0
  84. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/budget.py +0 -0
  85. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/chat.py +0 -0
  86. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/cleanup.py +0 -0
  87. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/client.py +0 -0
  88. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/__init__.py +0 -0
  89. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/adjustment.py +0 -0
  90. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/base.py +0 -0
  91. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/expense.py +0 -0
  92. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/list_events.py +0 -0
  93. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/plan_credit.py +0 -0
  94. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/recharge.py +0 -0
  95. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/refill.py +0 -0
  96. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/reward.py +0 -0
  97. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/credit/withdraw.py +0 -0
  98. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/draft.py +0 -0
  99. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/draft_chat.py +0 -0
  100. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/engine.py +0 -0
  101. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/executor.py +0 -0
  102. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/__init__.py +0 -0
  103. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/service.py +0 -0
  104. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/lead/skills/base.py +0 -0
  105. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/__init__.py +0 -0
  106. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/engine.py +0 -0
  107. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/service.py +0 -0
  108. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/__init__.py +0 -0
  109. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/add_autonomous_task.py +0 -0
  110. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/base.py +0 -0
  111. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/delete_autonomous_task.py +0 -0
  112. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/draft.py +0 -0
  113. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/edit_autonomous_task.py +0 -0
  114. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/list_autonomous_tasks.py +0 -0
  115. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/llm.py +0 -0
  116. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/manager/skills/public_info.py +0 -0
  117. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/memory.py +0 -0
  118. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/middleware.py +0 -0
  119. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/prompt.py +0 -0
  120. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/public_agents.py +0 -0
  121. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/public_api.py +0 -0
  122. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/scheduler.py +0 -0
  123. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/statistics.py +0 -0
  124. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/__init__.py +0 -0
  125. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/base.py +0 -0
  126. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/call_agent.py +0 -0
  127. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/create_activity.py +0 -0
  128. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/create_post.py +0 -0
  129. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/current_time.py +0 -0
  130. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/get_post.py +0 -0
  131. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/read_webpage.py +0 -0
  132. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/recent_activities.py +0 -0
  133. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/recent_posts.py +0 -0
  134. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/search_web.py +0 -0
  135. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/system_skills/update_memory.py +0 -0
  136. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/task_registry.py +0 -0
  137. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/__init__.py +0 -0
  138. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/feed.py +0 -0
  139. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/membership.py +0 -0
  140. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/push.py +0 -0
  141. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/team/subscription.py +0 -0
  142. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/template.py +0 -0
  143. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/core/user.py +0 -0
  144. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/__init__.py +0 -0
  145. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/__init__.py +0 -0
  146. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/agent.py +0 -0
  147. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/autonomous.py +0 -0
  148. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/core.py +0 -0
  149. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/db.py +0 -0
  150. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/public.json +0 -0
  151. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/public_info.py +0 -0
  152. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/response.py +0 -0
  153. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/schema.json +0 -0
  154. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent/user_input.py +0 -0
  155. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent_activity.py +0 -0
  156. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent_data.py +0 -0
  157. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/agent_post.py +0 -0
  158. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/app_setting.py +0 -0
  159. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/chat.py +0 -0
  160. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/__init__.py +0 -0
  161. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/account.py +0 -0
  162. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/base.py +0 -0
  163. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/event.py +0 -0
  164. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/price.py +0 -0
  165. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/credit/transaction.py +0 -0
  166. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/draft.py +0 -0
  167. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/llm.csv +0 -0
  168. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/llm.py +0 -0
  169. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/llm_picker.py +0 -0
  170. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/skill.py +0 -0
  171. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/team_channel.py +0 -0
  172. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/team_feed.py +0 -0
  173. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/template.py +0 -0
  174. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/user.py +0 -0
  175. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/user_data.py +0 -0
  176. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/models/x402_order.py +0 -0
  177. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/__init__.py +0 -0
  178. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/__init__.py +0 -0
  179. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/aave_v3.svg +0 -0
  180. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/base.py +0 -0
  181. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/borrow.py +0 -0
  182. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/constants.py +0 -0
  183. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/get_reserve_data.py +0 -0
  184. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/get_user_account_data.py +0 -0
  185. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/repay.py +0 -0
  186. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/schema.json +0 -0
  187. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/set_collateral.py +0 -0
  188. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/supply.py +0 -0
  189. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/utils.py +0 -0
  190. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aave_v3/withdraw.py +0 -0
  191. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/__init__.py +0 -0
  192. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/acp.png +0 -0
  193. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/base.py +0 -0
  194. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/cancel_checkout.py +0 -0
  195. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/complete_checkout.py +0 -0
  196. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/create_checkout.py +0 -0
  197. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/get_checkout.py +0 -0
  198. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/list_products.py +0 -0
  199. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/acp/schema.json +0 -0
  200. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/__init__.py +0 -0
  201. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/add_liquidity.py +0 -0
  202. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/aerodrome.svg +0 -0
  203. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/base.py +0 -0
  204. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/constants.py +0 -0
  205. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/get_positions.py +0 -0
  206. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/quote.py +0 -0
  207. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/remove_liquidity.py +0 -0
  208. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/schema.json +0 -0
  209. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/swap.py +0 -0
  210. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aerodrome/utils.py +0 -0
  211. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/README.md +0 -0
  212. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/__init__.py +0 -0
  213. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/aixbt.jpg +0 -0
  214. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/base.py +0 -0
  215. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/projects.py +0 -0
  216. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/aixbt/schema.json +0 -0
  217. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/allora/__init__.py +0 -0
  218. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/allora/allora.jpeg +0 -0
  219. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/allora/base.py +0 -0
  220. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/allora/price.py +0 -0
  221. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/allora/schema.json +0 -0
  222. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/base.py +0 -0
  223. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/__init__.py +0 -0
  224. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/base.py +0 -0
  225. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/basename.svg +0 -0
  226. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/constants.py +0 -0
  227. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/register.py +0 -0
  228. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/basename/schema.json +0 -0
  229. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/README.md +0 -0
  230. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/__init__.py +0 -0
  231. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/base.py +0 -0
  232. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/carv.webp +0 -0
  233. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/fetch_news.py +0 -0
  234. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/onchain_query.py +0 -0
  235. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/schema.json +0 -0
  236. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/carv/token_info_and_price.py +0 -0
  237. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/README.md +0 -0
  238. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/__init__.py +0 -0
  239. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/base.py +0 -0
  240. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/casino.png +0 -0
  241. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/deck_draw.py +0 -0
  242. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/deck_shuffle.py +0 -0
  243. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/dice_roll.py +0 -0
  244. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/schema.json +0 -0
  245. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/casino/utils.py +0 -0
  246. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/__init__.py +0 -0
  247. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/base.py +0 -0
  248. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/cdp.png +0 -0
  249. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/get_balance.py +0 -0
  250. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/get_wallet_details.py +0 -0
  251. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/native_transfer.py +0 -0
  252. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cdp/schema.json +0 -0
  253. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/README.md +0 -0
  254. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/__init__.py +0 -0
  255. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/base.py +0 -0
  256. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/chain_lookup.py +0 -0
  257. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/chainlist.png +0 -0
  258. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/chainlist/schema.json +0 -0
  259. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/README.md +0 -0
  260. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/__init__.py +0 -0
  261. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/base.py +0 -0
  262. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/constants.py +0 -0
  263. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/cookiefun.png +0 -0
  264. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/get_account_details.py +0 -0
  265. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/get_account_feed.py +0 -0
  266. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/get_account_smart_followers.py +0 -0
  267. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/get_sectors.py +0 -0
  268. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/schema.json +0 -0
  269. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cookiefun/search_accounts.py +0 -0
  270. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/__init__.py +0 -0
  271. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/api.py +0 -0
  272. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/base.py +0 -0
  273. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/cryptocompare.png +0 -0
  274. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_news.py +0 -0
  275. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_price.py +0 -0
  276. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_top_exchanges.py +0 -0
  277. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_top_market_cap.py +0 -0
  278. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_top_volume.py +0 -0
  279. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/fetch_trading_signals.py +0 -0
  280. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptocompare/schema.json +0 -0
  281. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/__init__.py +0 -0
  282. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/base.py +0 -0
  283. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/cryptopanic.png +0 -0
  284. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/fetch_crypto_news.py +0 -0
  285. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/fetch_crypto_sentiment.py +0 -0
  286. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/cryptopanic/schema.json +0 -0
  287. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/README.md +0 -0
  288. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/__init__.py +0 -0
  289. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/base.py +0 -0
  290. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/dapplooker.jpg +0 -0
  291. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/dapplooker_token_data.py +0 -0
  292. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dapplooker/schema.json +0 -0
  293. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/__init__.py +0 -0
  294. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/api.py +0 -0
  295. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/base.py +0 -0
  296. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/__init__.py +0 -0
  297. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_batch_historical_prices.py +0 -0
  298. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_block.py +0 -0
  299. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_current_prices.py +0 -0
  300. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_first_price.py +0 -0
  301. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_historical_prices.py +0 -0
  302. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_price_chart.py +0 -0
  303. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/coins/fetch_price_percentage.py +0 -0
  304. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/config/__init__.py +0 -0
  305. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/config/chains.py +0 -0
  306. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/defillama.jpeg +0 -0
  307. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/fees/__init__.py +0 -0
  308. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/fees/fetch_fees_overview.py +0 -0
  309. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/schema.json +0 -0
  310. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/stablecoins/__init__.py +0 -0
  311. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_chains.py +0 -0
  312. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_charts.py +0 -0
  313. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/stablecoins/fetch_stablecoin_prices.py +0 -0
  314. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/stablecoins/fetch_stablecoins.py +0 -0
  315. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tests/__init__.py +0 -0
  316. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tests/api_integration.test.py +0 -0
  317. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tests/api_unit.test.py +0 -0
  318. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/__init__.py +0 -0
  319. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_chain_historical_tvl.py +0 -0
  320. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_chains.py +0 -0
  321. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_historical_tvl.py +0 -0
  322. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_protocol.py +0 -0
  323. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_protocol_current_tvl.py +0 -0
  324. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/tvl/fetch_protocols.py +0 -0
  325. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/volumes/__init__.py +0 -0
  326. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/volumes/fetch_dex_overview.py +0 -0
  327. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/volumes/fetch_dex_summary.py +0 -0
  328. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/volumes/fetch_options_overview.py +0 -0
  329. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/yields/__init__.py +0 -0
  330. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/yields/fetch_pool_chart.py +0 -0
  331. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/defillama/yields/fetch_pools.py +0 -0
  332. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/README.md +0 -0
  333. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/__init__.py +0 -0
  334. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/base.py +0 -0
  335. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/dexscreener.png +0 -0
  336. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/get_pair_info.py +0 -0
  337. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/get_token_pairs.py +0 -0
  338. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/get_tokens_info.py +0 -0
  339. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/model/__init__.py +0 -0
  340. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/model/search_token_response.py +0 -0
  341. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/schema.json +0 -0
  342. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/search_token.py +0 -0
  343. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dexscreener/utils.py +0 -0
  344. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/__init__.py +0 -0
  345. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/base.py +0 -0
  346. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/dune.png +0 -0
  347. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/execute_query.py +0 -0
  348. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/get_query_results.py +0 -0
  349. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/run_sql.py +0 -0
  350. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/dune/schema.json +0 -0
  351. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/README.md +0 -0
  352. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/__init__.py +0 -0
  353. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/base.py +0 -0
  354. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/elfa.jpg +0 -0
  355. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/mention.py +0 -0
  356. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/schema.json +0 -0
  357. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/stats.py +0 -0
  358. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/tokens.py +0 -0
  359. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/elfa/utils.py +0 -0
  360. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/README.md +0 -0
  361. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/__init__.py +0 -0
  362. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/abi/__init__.py +0 -0
  363. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/abi/approval.py +0 -0
  364. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/abi/erc20.py +0 -0
  365. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/abi/route.py +0 -0
  366. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/base.py +0 -0
  367. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/best_yield.py +0 -0
  368. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/enso.jpg +0 -0
  369. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/networks.py +0 -0
  370. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/prices.py +0 -0
  371. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/route.py +0 -0
  372. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/schema.json +0 -0
  373. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/tokens.py +0 -0
  374. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/enso/wallet.py +0 -0
  375. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/__init__.py +0 -0
  376. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/base.py +0 -0
  377. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/constants.py +0 -0
  378. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/erc20.svg +0 -0
  379. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/get_balance.py +0 -0
  380. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/get_token_address.py +0 -0
  381. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/schema.json +0 -0
  382. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/transfer.py +0 -0
  383. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc20/utils.py +0 -0
  384. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/__init__.py +0 -0
  385. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/base.py +0 -0
  386. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/constants.py +0 -0
  387. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/erc721.svg +0 -0
  388. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/get_balance.py +0 -0
  389. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/mint.py +0 -0
  390. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/schema.json +0 -0
  391. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/erc721/transfer.py +0 -0
  392. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/README.md +0 -0
  393. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/__init__.py +0 -0
  394. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/base.py +0 -0
  395. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/clear.py +0 -0
  396. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/crawl.py +0 -0
  397. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/firecrawl.png +0 -0
  398. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/query.py +0 -0
  399. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/schema.json +0 -0
  400. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/scrape.py +0 -0
  401. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/firecrawl/utils.py +0 -0
  402. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/README.md +0 -0
  403. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/__init__.py +0 -0
  404. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/base.py +0 -0
  405. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/github.jpg +0 -0
  406. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/github_search.py +0 -0
  407. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/github/schema.json +0 -0
  408. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/__init__.py +0 -0
  409. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/base.py +0 -0
  410. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/heurist.png +0 -0
  411. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_animagine_xl.py +0 -0
  412. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_arthemy_comics.py +0 -0
  413. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_arthemy_real.py +0 -0
  414. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_braindance.py +0 -0
  415. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_cyber_realistic_xl.py +0 -0
  416. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_flux_1_dev.py +0 -0
  417. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/image_generation_sdxl.py +0 -0
  418. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/heurist/schema.json +0 -0
  419. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/README.md +0 -0
  420. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/__init__.py +0 -0
  421. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/base.py +0 -0
  422. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/get.py +0 -0
  423. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/http.svg +0 -0
  424. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/post.py +0 -0
  425. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/put.py +0 -0
  426. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/http/schema.json +0 -0
  427. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/__init__.py +0 -0
  428. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/base.py +0 -0
  429. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/gemini.py +0 -0
  430. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/gpt.py +0 -0
  431. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/grok.py +0 -0
  432. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/image.svg +0 -0
  433. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/minimax.py +0 -0
  434. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/openrouter.py +0 -0
  435. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/image/schema.json +0 -0
  436. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/README.md +0 -0
  437. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/__init__.py +0 -0
  438. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/base.py +0 -0
  439. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/jupiter.png +0 -0
  440. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/price.py +0 -0
  441. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/schema.json +0 -0
  442. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/jupiter/swap.py +0 -0
  443. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/README.md +0 -0
  444. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/__init__.py +0 -0
  445. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/base.py +0 -0
  446. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/lifi.png +0 -0
  447. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/schema.json +0 -0
  448. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/token_execute.py +0 -0
  449. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/token_quote.py +0 -0
  450. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/lifi/utils.py +0 -0
  451. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/mcp_coingecko/__init__.py +0 -0
  452. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/mcp_coingecko/coingecko.svg +0 -0
  453. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/mcp_coingecko/schema.json +0 -0
  454. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/README.md +0 -0
  455. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/__init__.py +0 -0
  456. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/api.py +0 -0
  457. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/base.py +0 -0
  458. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/fetch_chain_portfolio.py +0 -0
  459. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/fetch_nft_portfolio.py +0 -0
  460. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/fetch_solana_portfolio.py +0 -0
  461. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/fetch_wallet_portfolio.py +0 -0
  462. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/moralis.png +0 -0
  463. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/moralis/schema.json +0 -0
  464. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/__init__.py +0 -0
  465. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/base.py +0 -0
  466. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/borrow.py +0 -0
  467. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/constants.py +0 -0
  468. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/deposit.py +0 -0
  469. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/get_position.py +0 -0
  470. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/get_vault_data.py +0 -0
  471. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/morpho.svg +0 -0
  472. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/repay.py +0 -0
  473. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/schema.json +0 -0
  474. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/supply_collateral.py +0 -0
  475. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/withdraw.py +0 -0
  476. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/morpho/withdraw_collateral.py +0 -0
  477. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/onchain.py +0 -0
  478. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/__init__.py +0 -0
  479. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/base.py +0 -0
  480. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/buy_nft.py +0 -0
  481. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/cancel_listing.py +0 -0
  482. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/constants.py +0 -0
  483. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/create_listing.py +0 -0
  484. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_collection.py +0 -0
  485. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_collection_stats.py +0 -0
  486. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_events.py +0 -0
  487. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_listings.py +0 -0
  488. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_nft.py +0 -0
  489. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_nfts_by_account.py +0 -0
  490. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/get_offers.py +0 -0
  491. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/onchain_base.py +0 -0
  492. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/opensea.svg +0 -0
  493. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/schema.json +0 -0
  494. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/opensea/update_listing.py +0 -0
  495. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/__init__.py +0 -0
  496. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/add_liquidity.py +0 -0
  497. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/base.py +0 -0
  498. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/constants.py +0 -0
  499. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/get_positions.py +0 -0
  500. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/pancakeswap.png +0 -0
  501. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/quote.py +0 -0
  502. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/remove_liquidity.py +0 -0
  503. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/schema.json +0 -0
  504. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/swap.py +0 -0
  505. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pancakeswap/utils.py +0 -0
  506. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/__init__.py +0 -0
  507. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/base.py +0 -0
  508. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/cancel_order.py +0 -0
  509. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_market.py +0 -0
  510. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_orderbook.py +0 -0
  511. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_orders.py +0 -0
  512. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_positions.py +0 -0
  513. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_price_history.py +0 -0
  514. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/get_trades.py +0 -0
  515. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/place_order.py +0 -0
  516. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/polymarket.png +0 -0
  517. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/schema.json +0 -0
  518. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/polymarket/search_markets.py +0 -0
  519. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/README.md +0 -0
  520. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/__init__.py +0 -0
  521. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/base.py +0 -0
  522. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/constants.py +0 -0
  523. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/moralis.png +0 -0
  524. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/schema.json +0 -0
  525. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/token_balances.py +0 -0
  526. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_approvals.py +0 -0
  527. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_defi_positions.py +0 -0
  528. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_history.py +0 -0
  529. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_net_worth.py +0 -0
  530. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_nfts.py +0 -0
  531. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_profitability.py +0 -0
  532. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_profitability_summary.py +0 -0
  533. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_stats.py +0 -0
  534. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/portfolio/wallet_swaps.py +0 -0
  535. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/__init__.py +0 -0
  536. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/base.py +0 -0
  537. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/fetch_price.py +0 -0
  538. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/fetch_price_feed.py +0 -0
  539. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/pyth.svg +0 -0
  540. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/pyth/schema.json +0 -0
  541. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/__init__.py +0 -0
  542. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/base.py +0 -0
  543. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/get_channel.py +0 -0
  544. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/get_message.py +0 -0
  545. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/schedule_message.py +0 -0
  546. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/schema.json +0 -0
  547. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/send_message.py +0 -0
  548. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/slack/slack.jpg +0 -0
  549. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/__init__.py +0 -0
  550. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/base.py +0 -0
  551. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/delete_data.py +0 -0
  552. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/fetch_data.py +0 -0
  553. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/insert_data.py +0 -0
  554. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/invoke_function.py +0 -0
  555. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/schema.json +0 -0
  556. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/supabase.svg +0 -0
  557. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/update_data.py +0 -0
  558. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/supabase/upsert_data.py +0 -0
  559. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/__init__.py +0 -0
  560. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/base.py +0 -0
  561. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/constants.py +0 -0
  562. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/create_flow.py +0 -0
  563. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/delete_flow.py +0 -0
  564. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/schema.json +0 -0
  565. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/superfluid.svg +0 -0
  566. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/superfluid/update_flow.py +0 -0
  567. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/README.md +0 -0
  568. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/__init__.py +0 -0
  569. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/base.py +0 -0
  570. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/schema.json +0 -0
  571. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/tavily.jpg +0 -0
  572. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/tavily_extract.py +0 -0
  573. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/tavily/tavily_search.py +0 -0
  574. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/README.md +0 -0
  575. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/__init__.py +0 -0
  576. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/base.py +0 -0
  577. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/constants.py +0 -0
  578. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/erc20_transfers.py +0 -0
  579. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/moralis.png +0 -0
  580. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/schema.json +0 -0
  581. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/token_analytics.py +0 -0
  582. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/token_price.py +0 -0
  583. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/token/token_search.py +0 -0
  584. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/__init__.py +0 -0
  585. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/base.py +0 -0
  586. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/follow_user.py +0 -0
  587. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/get_mentions.py +0 -0
  588. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/get_timeline.py +0 -0
  589. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/get_user_by_username.py +0 -0
  590. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/get_user_tweets.py +0 -0
  591. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/like_tweet.py +0 -0
  592. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/post_tweet.py +0 -0
  593. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/reply_tweet.py +0 -0
  594. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/retweet.py +0 -0
  595. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/schema.json +0 -0
  596. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/search_tweets.py +0 -0
  597. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/twitter/twitter.png +0 -0
  598. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/__init__.py +0 -0
  599. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/ask_user.py +0 -0
  600. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/base.py +0 -0
  601. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/schema.json +0 -0
  602. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/show_card.py +0 -0
  603. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/ui/ui.svg +0 -0
  604. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/__init__.py +0 -0
  605. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/add_liquidity.py +0 -0
  606. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/base.py +0 -0
  607. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/constants.py +0 -0
  608. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/get_positions.py +0 -0
  609. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/quote.py +0 -0
  610. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/remove_liquidity.py +0 -0
  611. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/schema.json +0 -0
  612. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/swap.py +0 -0
  613. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/uniswap.svg +0 -0
  614. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/uniswap/utils.py +0 -0
  615. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/unrealspeech/__init__.py +0 -0
  616. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/unrealspeech/base.py +0 -0
  617. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/unrealspeech/schema.json +0 -0
  618. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/unrealspeech/text_to_speech.py +0 -0
  619. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/unrealspeech/unrealspeech.jpg +0 -0
  620. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/__init__.py +0 -0
  621. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/base.py +0 -0
  622. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/input.py +0 -0
  623. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/schema.json +0 -0
  624. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/venice_audio.py +0 -0
  625. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_audio/venice_logo.jpg +0 -0
  626. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/README.md +0 -0
  627. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/__init__.py +0 -0
  628. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/api.py +0 -0
  629. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/base.py +0 -0
  630. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/config.py +0 -0
  631. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_enhance/README.md +0 -0
  632. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_enhance/__init__.py +0 -0
  633. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_enhance/image_enhance.py +0 -0
  634. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_enhance/image_enhance_base.py +0 -0
  635. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_enhance/image_enhance_input.py +0 -0
  636. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/README.md +0 -0
  637. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/__init__.py +0 -0
  638. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_base.py +0 -0
  639. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_fluently_xl.py +0 -0
  640. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev.py +0 -0
  641. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_flux_dev_uncensored.py +0 -0
  642. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_input.py +0 -0
  643. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_lustify_sdxl.py +0 -0
  644. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_pony_realism.py +0 -0
  645. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_stable_diffusion_3_5.py +0 -0
  646. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_generation/image_generation_venice_sd35.py +0 -0
  647. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_upscale/README.md +0 -0
  648. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_upscale/__init__.py +0 -0
  649. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_upscale/image_upscale.py +0 -0
  650. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_upscale/image_upscale_base.py +0 -0
  651. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_upscale/image_upscale_input.py +0 -0
  652. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_vision/README.md +0 -0
  653. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_vision/__init__.py +0 -0
  654. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_vision/image_vision.py +0 -0
  655. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_vision/image_vision_base.py +0 -0
  656. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/image_vision/image_vision_input.py +0 -0
  657. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/schema.json +0 -0
  658. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/utils.py +0 -0
  659. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/venice_image/venice_image.jpg +0 -0
  660. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/__init__.py +0 -0
  661. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/base.py +0 -0
  662. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/gemini.py +0 -0
  663. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/gpt.py +0 -0
  664. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/grok.py +0 -0
  665. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/minimax.py +0 -0
  666. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/schema.json +0 -0
  667. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/video/video.svg +0 -0
  668. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/README.md +0 -0
  669. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/__init__.py +0 -0
  670. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/base.py +0 -0
  671. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/document_indexer.py +0 -0
  672. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/langchain.png +0 -0
  673. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/schema.json +0 -0
  674. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/scrape_and_index.py +0 -0
  675. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/utils.py +0 -0
  676. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/web_scraper/website_indexer.py +0 -0
  677. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/__init__.py +0 -0
  678. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/base.py +0 -0
  679. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/constants.py +0 -0
  680. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/schema.json +0 -0
  681. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/unwrap_eth.py +0 -0
  682. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/weth.svg +0 -0
  683. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/weth/wrap_eth.py +0 -0
  684. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/__init__.py +0 -0
  685. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/base.py +0 -0
  686. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/check_price.py +0 -0
  687. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/get_orders.py +0 -0
  688. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/http_request.py +0 -0
  689. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/httpx_compat.py +0 -0
  690. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/pay.py +0 -0
  691. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/schema.json +0 -0
  692. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/x402/x402.webp +0 -0
  693. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/README.md +0 -0
  694. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/__init__.py +0 -0
  695. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/base.py +0 -0
  696. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/price.py +0 -0
  697. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/schema.json +0 -0
  698. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/swap.py +0 -0
  699. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/transfer.py +0 -0
  700. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/skills/xmtp/xmtp.png +0 -0
  701. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/__init__.py +0 -0
  702. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/alert.py +0 -0
  703. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/alert_handler.py +0 -0
  704. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/chain.py +0 -0
  705. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/ens.py +0 -0
  706. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/error.py +0 -0
  707. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/logging.py +0 -0
  708. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/opengraph.py +0 -0
  709. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/pdf.py +0 -0
  710. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/random.py +0 -0
  711. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/s3_setup.py +0 -0
  712. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/schema.py +0 -0
  713. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/slack_alert.py +0 -0
  714. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/telegram_alert.py +0 -0
  715. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/templates/post_pdf.html +0 -0
  716. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/time.py +0 -0
  717. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/tx.py +0 -0
  718. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/utils/upload.py +0 -0
  719. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/__init__.py +0 -0
  720. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/cdp.py +0 -0
  721. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/evm_wallet.py +0 -0
  722. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/native.py +0 -0
  723. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy.py +0 -0
  724. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_client.py +0 -0
  725. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_nonce.py +0 -0
  726. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_safe.py +0 -0
  727. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_signer.py +0 -0
  728. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_types.py +0 -0
  729. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/privy_utils.py +0 -0
  730. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/signer.py +0 -0
  731. {intentkit-0.17.26 → intentkit-0.17.28}/intentkit/wallets/web3.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: intentkit
3
- Version: 0.17.26
3
+ Version: 0.17.28
4
4
  Summary: Intent-based AI Agent Platform - Core Package
5
5
  Project-URL: Homepage, https://github.com/crestalnetwork/intentkit
6
6
  Project-URL: Repository, https://github.com/crestalnetwork/intentkit
@@ -3,7 +3,7 @@
3
3
  A powerful platform for building AI agents with blockchain and cryptocurrency capabilities.
4
4
  """
5
5
 
6
- __version__ = "0.17.26"
6
+ __version__ = "0.17.28"
7
7
  __author__ = "Ruihua"
8
8
  __email__ = "ruihua@crestal.network"
9
9
 
@@ -23,8 +23,9 @@ lead_cached_at: dict[str, datetime] = {}
23
23
  def invalidate_lead_cache(team_id: str) -> None:
24
24
  """Remove cached lead agent and executor for a team.
25
25
 
26
- Call this when the team's agent list changes (create, archive, reactivate)
27
- so the lead agent is rebuilt with an up-to-date sub_agents list.
26
+ Call this when the team's agent list changes (create, archive, reactivate).
27
+ Sub-agent caches are NOT invalidated here because sub-agents are static
28
+ definitions that don't depend on the team's agent list.
28
29
  """
29
30
  _ = lead_cached_at.pop(team_id, None)
30
31
  _ = lead_executors.pop(team_id, None)
@@ -46,3 +47,7 @@ def cleanup_cache(now: datetime) -> None:
46
47
  _ = lead_executors.pop(cache_key, None)
47
48
  _ = lead_agents.pop(cache_key, None)
48
49
  logger.debug("Removed expired lead executor for %s", cache_key)
50
+
51
+ from intentkit.core.lead.sub_agents import cleanup_sub_agent_caches
52
+
53
+ cleanup_sub_agent_caches(expired_before)
@@ -0,0 +1,7 @@
1
+ """Shared constants for the lead agent system."""
2
+
3
+ # Defaults for the lead agent — used by engine and get_self_info skill.
4
+ LEAD_DEFAULT_NAME = "Team Lead"
5
+ LEAD_DEFAULT_PERSONALITY = (
6
+ "Helpful team assistant. Let sub-agents handle technical details."
7
+ )
@@ -0,0 +1,179 @@
1
+ """Streaming utilities for the on-demand lead agent."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import asyncio
6
+ import logging
7
+ import time
8
+ from collections.abc import AsyncGenerator
9
+ from datetime import datetime, timezone
10
+ from typing import Any
11
+
12
+ from langgraph.graph.state import CompiledStateGraph
13
+
14
+ from intentkit.abstracts.graph import AgentContext, AgentState
15
+ from intentkit.core.engine import stream_agent_raw
16
+ from intentkit.core.executor import build_executor
17
+ from intentkit.core.lead.cache import (
18
+ cleanup_cache,
19
+ lead_agents,
20
+ lead_cached_at,
21
+ lead_executors,
22
+ )
23
+ from intentkit.core.lead.constants import LEAD_DEFAULT_NAME, LEAD_DEFAULT_PERSONALITY
24
+ from intentkit.core.lead.service import verify_team_membership
25
+ from intentkit.core.lead.skills import (
26
+ get_team_info_skill,
27
+ list_team_agents_skill,
28
+ )
29
+ from intentkit.core.lead.skills.call_agent import lead_call_agent_skill
30
+ from intentkit.models.agent import Agent
31
+ from intentkit.models.agent_data import AgentData
32
+ from intentkit.models.chat import ChatMessage, ChatMessageCreate
33
+ from intentkit.models.llm_picker import pick_default_model
34
+ from intentkit.models.team import Team
35
+ from intentkit.utils.error import IntentKitAPIError
36
+
37
+ logger = logging.getLogger(__name__)
38
+
39
+
40
+ async def get_lead_agent(team_id: str) -> Agent:
41
+ """Get the lead agent for a team, using cache if available."""
42
+ lead_agent = lead_agents.get(team_id)
43
+ if not lead_agent:
44
+ lead_agent = await _build_lead_agent(team_id)
45
+ return lead_agent
46
+
47
+
48
+ async def stream_lead(
49
+ team_id: str, user_id: str, message: ChatMessageCreate
50
+ ) -> AsyncGenerator[ChatMessage, None]:
51
+ """Stream chat messages for the lead agent of a team."""
52
+
53
+ await verify_team_membership(team_id, user_id)
54
+
55
+ executor, lead_agent, cold_start_cost = await _get_lead_executor(team_id)
56
+
57
+ if not message.agent_id:
58
+ message.agent_id = lead_agent.id
59
+ if not message.team_id:
60
+ message.team_id = team_id
61
+ message.cold_start_cost = cold_start_cost
62
+
63
+ async for chat_message in stream_agent_raw(message, lead_agent, executor):
64
+ yield chat_message
65
+
66
+
67
+ async def _build_lead_agent(team_id: str) -> Agent:
68
+ now = datetime.now(timezone.utc)
69
+
70
+ prompt = (
71
+ "### Sub-Agents\n\n"
72
+ "Use `lead_call_agent` to delegate:\n\n"
73
+ "- `agent-manager`: Agent CRUD, LLM model info, skill listing.\n"
74
+ "- `task-manager`: Autonomous task scheduling and management.\n"
75
+ "- `self-updater`: Update your own name, avatar, personality, or memory.\n"
76
+ "- `content-manager`: Read team activities and posts.\n\n"
77
+ "### Workflow\n\n"
78
+ "- Agent operations (create, configure, update, model/skill queries) "
79
+ "→ `agent-manager`\n"
80
+ "- Task management (schedule, edit, delete) → `task-manager`\n"
81
+ "- Self-improvement (update your name, avatar, personality, memory) "
82
+ "→ `self-updater`\n"
83
+ "- Content review (activities, posts) → `content-manager`\n"
84
+ "- Quick team overview → answer directly via "
85
+ "`lead_get_team_info` or `lead_list_team_agents`\n"
86
+ "- Pass full user context when delegating, including agent IDs/names if provided.\n"
87
+ )
88
+
89
+ # Parallelize independent DB lookups
90
+ owner, lead_config = await asyncio.gather(
91
+ Team.get_owner(team_id),
92
+ Team.get_lead_agent_config(team_id),
93
+ )
94
+ if not owner:
95
+ raise IntentKitAPIError(
96
+ 500, "TeamOwnerNotFound", f"Team '{team_id}' has no owner"
97
+ )
98
+ lead_config = lead_config or {}
99
+
100
+ agent_data = {
101
+ "id": "team-" + team_id,
102
+ "owner": owner,
103
+ "team_id": team_id,
104
+ "name": lead_config.get("name", LEAD_DEFAULT_NAME),
105
+ "purpose": "Coordinate sub-agents for team agent and task management.",
106
+ "personality": lead_config.get("personality", LEAD_DEFAULT_PERSONALITY),
107
+ "principles": "Speak to users in the language they ask their questions.",
108
+ "model": pick_default_model(),
109
+ "prompt": prompt,
110
+ "prompt_append": None,
111
+ "temperature": 0.2,
112
+ "frequency_penalty": 0.0,
113
+ "presence_penalty": 0.0,
114
+ "search_internet": True,
115
+ "super_mode": False,
116
+ "enable_todo": False,
117
+ "enable_activity": False,
118
+ "enable_post": False,
119
+ "enable_long_term_memory": True,
120
+ "sub_agents": None,
121
+ "skills": {
122
+ "ui": {
123
+ "enabled": True,
124
+ "states": {
125
+ "ui_show_card": "private",
126
+ "ui_ask_user": "private",
127
+ },
128
+ },
129
+ },
130
+ "created_at": now,
131
+ "updated_at": now,
132
+ }
133
+
134
+ agent = Agent.model_validate(agent_data)
135
+
136
+ # Apply persisted avatar override
137
+ if lead_config.get("avatar"):
138
+ agent.picture = lead_config["avatar"]
139
+
140
+ return agent
141
+
142
+
143
+ async def _get_lead_executor(
144
+ team_id: str,
145
+ ) -> tuple[CompiledStateGraph[AgentState, AgentContext, Any, Any], Agent, float]:
146
+ now = datetime.now(timezone.utc)
147
+ cleanup_cache(now)
148
+
149
+ executor = lead_executors.get(team_id)
150
+ lead_agent = lead_agents.get(team_id)
151
+ cold_start_cost = 0.0
152
+
153
+ if not executor or not lead_agent:
154
+ start = time.perf_counter()
155
+
156
+ if not lead_agent:
157
+ lead_agent = await _build_lead_agent(team_id)
158
+ lead_agents[team_id] = lead_agent
159
+
160
+ if not executor:
161
+ custom_skills = [
162
+ lead_call_agent_skill,
163
+ get_team_info_skill,
164
+ list_team_agents_skill,
165
+ ]
166
+ executor = await build_executor(
167
+ lead_agent,
168
+ AgentData.model_construct(id=lead_agent.id),
169
+ custom_skills,
170
+ )
171
+ lead_executors[team_id] = executor
172
+
173
+ cold_start_cost = time.perf_counter() - start
174
+ lead_cached_at[team_id] = now
175
+ logger.info("Initialized lead executor for team %s", team_id)
176
+ else:
177
+ lead_cached_at[team_id] = now
178
+
179
+ return executor, lead_agent, cold_start_cost
@@ -4,6 +4,10 @@ from intentkit.core.lead.skills.add_autonomous_task import (
4
4
  LeadAddAutonomousTask,
5
5
  lead_add_autonomous_task_skill,
6
6
  )
7
+ from intentkit.core.lead.skills.call_agent import (
8
+ LeadCallAgent,
9
+ lead_call_agent_skill,
10
+ )
7
11
  from intentkit.core.lead.skills.create_team_agent import (
8
12
  CreateTeamAgent,
9
13
  create_team_agent_skill,
@@ -16,6 +20,14 @@ from intentkit.core.lead.skills.edit_autonomous_task import (
16
20
  LeadEditAutonomousTask,
17
21
  lead_edit_autonomous_task_skill,
18
22
  )
23
+ from intentkit.core.lead.skills.get_post import (
24
+ LeadGetPost,
25
+ lead_get_post_skill,
26
+ )
27
+ from intentkit.core.lead.skills.get_self_info import (
28
+ LeadGetSelfInfo,
29
+ lead_get_self_info_skill,
30
+ )
19
31
  from intentkit.core.lead.skills.get_team_agent import (
20
32
  GetTeamAgent,
21
33
  get_team_agent_skill,
@@ -28,6 +40,10 @@ from intentkit.core.lead.skills.list_autonomous_tasks import (
28
40
  LeadListAutonomousTasks,
29
41
  lead_list_autonomous_tasks_skill,
30
42
  )
43
+ from intentkit.core.lead.skills.list_skills import (
44
+ LeadListAvailableSkills,
45
+ lead_list_available_skills_skill,
46
+ )
31
47
  from intentkit.core.lead.skills.list_team_agents import (
32
48
  ListTeamAgents,
33
49
  list_team_agents_skill,
@@ -36,6 +52,22 @@ from intentkit.core.lead.skills.llm import (
36
52
  LeadGetAvailableLLMs,
37
53
  lead_get_available_llms_skill,
38
54
  )
55
+ from intentkit.core.lead.skills.recent_team_activities import (
56
+ LeadRecentTeamActivities,
57
+ lead_recent_team_activities_skill,
58
+ )
59
+ from intentkit.core.lead.skills.recent_team_posts import (
60
+ LeadRecentTeamPosts,
61
+ lead_recent_team_posts_skill,
62
+ )
63
+ from intentkit.core.lead.skills.update_self import (
64
+ LeadUpdateSelf,
65
+ lead_update_self_skill,
66
+ )
67
+ from intentkit.core.lead.skills.update_self_memory import (
68
+ LeadUpdateSelfMemory,
69
+ lead_update_self_memory_skill,
70
+ )
39
71
  from intentkit.core.lead.skills.update_team_agent import (
40
72
  UpdateTeamAgent,
41
73
  update_team_agent_skill,
@@ -50,14 +82,30 @@ __all__ = [
50
82
  "get_team_info_skill",
51
83
  "LeadAddAutonomousTask",
52
84
  "lead_add_autonomous_task_skill",
85
+ "LeadCallAgent",
86
+ "lead_call_agent_skill",
53
87
  "LeadDeleteAutonomousTask",
54
88
  "lead_delete_autonomous_task_skill",
55
89
  "LeadEditAutonomousTask",
56
90
  "lead_edit_autonomous_task_skill",
57
91
  "LeadGetAvailableLLMs",
58
92
  "lead_get_available_llms_skill",
93
+ "LeadGetPost",
94
+ "lead_get_post_skill",
95
+ "LeadGetSelfInfo",
96
+ "lead_get_self_info_skill",
59
97
  "LeadListAutonomousTasks",
60
98
  "lead_list_autonomous_tasks_skill",
99
+ "LeadListAvailableSkills",
100
+ "lead_list_available_skills_skill",
101
+ "LeadRecentTeamActivities",
102
+ "lead_recent_team_activities_skill",
103
+ "LeadRecentTeamPosts",
104
+ "lead_recent_team_posts_skill",
105
+ "LeadUpdateSelf",
106
+ "lead_update_self_skill",
107
+ "LeadUpdateSelfMemory",
108
+ "lead_update_self_memory_skill",
61
109
  "ListTeamAgents",
62
110
  "list_team_agents_skill",
63
111
  "UpdateTeamAgent",
@@ -63,7 +63,7 @@ class LeadAddAutonomousTask(LeadSkill):
63
63
  **kwargs: Any,
64
64
  ) -> AddAutonomousTaskOutput:
65
65
  context = self.get_context()
66
- await verify_agent_in_team(agent_id, context.agent_id)
66
+ await verify_agent_in_team(agent_id, context.team_id)
67
67
 
68
68
  task_request = AutonomousCreateRequest(
69
69
  name=name,
@@ -0,0 +1,197 @@
1
+ """Team-aware call_agent skill for the lead agent."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import asyncio
6
+ from typing import Literal, override
7
+
8
+ from epyxid import XID
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.abstracts.graph import AgentContext
14
+ from intentkit.core.lead.skills.base import LeadSkill
15
+ from intentkit.core.system_skills.call_agent import CALL_AGENT_TIMEOUT, MAX_CALL_DEPTH
16
+ from intentkit.models.chat import (
17
+ AuthorType,
18
+ ChatMessage,
19
+ ChatMessageAttachment,
20
+ ChatMessageCreate,
21
+ )
22
+
23
+
24
+ class LeadCallAgentInput(BaseModel):
25
+ """Input schema for calling a sub-agent."""
26
+
27
+ agent_id: str = Field(..., description="Target agent ID or slug")
28
+ message: str = Field(..., description="Message to send")
29
+
30
+
31
+ class LeadCallAgent(LeadSkill):
32
+ """Team-aware call_agent that supports both in-memory sub-agents and DB agents.
33
+
34
+ Resolution order:
35
+ 1. Check in-memory sub-agent registry (agent-manager, task-manager, etc.)
36
+ 2. Fall back to database agent lookup (scoped to team)
37
+ """
38
+
39
+ name: str = "lead_call_agent"
40
+ description: str = "Delegate a task to a sub-agent by sending it a message and receiving its response."
41
+ args_schema: ArgsSchema | None = LeadCallAgentInput
42
+ response_format: Literal["content", "content_and_artifact"] = "content_and_artifact"
43
+
44
+ @override
45
+ async def _arun(
46
+ self,
47
+ agent_id: str,
48
+ message: str,
49
+ ) -> tuple[str, list[ChatMessageAttachment]]:
50
+ try:
51
+ context = self.get_context()
52
+
53
+ if context.call_depth >= MAX_CALL_DEPTH:
54
+ raise ToolException(
55
+ f"Maximum call_agent recursion depth ({MAX_CALL_DEPTH}) exceeded. "
56
+ "Cannot call another agent from this depth."
57
+ )
58
+
59
+ from intentkit.core.lead.sub_agents import (
60
+ SUB_AGENT_REGISTRY,
61
+ )
62
+
63
+ team_id = context.team_id
64
+ if not team_id:
65
+ raise ToolException("No team_id in context")
66
+
67
+ if agent_id in SUB_AGENT_REGISTRY:
68
+ return await self._call_sub_agent(context, agent_id, message, team_id)
69
+
70
+ return await self._call_db_agent(context, agent_id, message)
71
+
72
+ except TimeoutError as e:
73
+ self.logger.error(
74
+ "lead_call_agent timed out after %ss for '%s'",
75
+ CALL_AGENT_TIMEOUT,
76
+ agent_id,
77
+ )
78
+ raise ToolException(
79
+ f"Agent '{agent_id}' did not respond within "
80
+ f"{CALL_AGENT_TIMEOUT} seconds"
81
+ ) from e
82
+ except ToolException:
83
+ raise
84
+ except Exception as e:
85
+ self.logger.error("lead_call_agent failed: %s", e, exc_info=True)
86
+ raise ToolException(f"Call agent failed with error: {e}") from e
87
+
88
+ async def _call_sub_agent(
89
+ self,
90
+ context: AgentContext,
91
+ slug: str,
92
+ message: str,
93
+ team_id: str,
94
+ ) -> tuple[str, list[ChatMessageAttachment]]:
95
+ """Call an in-memory sub-agent via stream_agent_raw."""
96
+ from intentkit.core.engine import stream_agent_raw
97
+ from intentkit.core.lead.sub_agents import get_sub_agent_executor
98
+
99
+ executor, sub_agent = await get_sub_agent_executor(team_id, slug)
100
+
101
+ chat_message = self._build_chat_message(context, sub_agent.id, team_id, message)
102
+
103
+ all_attachments: list[ChatMessageAttachment] = []
104
+ last_message = None
105
+
106
+ async with asyncio.timeout(CALL_AGENT_TIMEOUT):
107
+ async for chat_msg in stream_agent_raw(chat_message, sub_agent, executor):
108
+ if chat_msg.attachments:
109
+ all_attachments.extend(chat_msg.attachments)
110
+ last_message = chat_msg
111
+
112
+ return self._check_response(last_message, all_attachments, slug)
113
+
114
+ async def _call_db_agent(
115
+ self,
116
+ context: AgentContext,
117
+ agent_id: str,
118
+ message: str,
119
+ ) -> tuple[str, list[ChatMessageAttachment]]:
120
+ """Call a database agent, scoped to the same team."""
121
+ from intentkit.core.agent import get_agent_by_id_or_slug
122
+ from intentkit.core.engine import execute_agent
123
+
124
+ resolved_agent = await get_agent_by_id_or_slug(agent_id)
125
+ if not resolved_agent:
126
+ raise ToolException(f"Agent '{agent_id}' not found")
127
+
128
+ if resolved_agent.team_id != context.team_id:
129
+ raise ToolException(f"Agent '{agent_id}' does not belong to this team")
130
+
131
+ chat_message = self._build_chat_message(
132
+ context, resolved_agent.id, context.team_id, message
133
+ )
134
+
135
+ async with asyncio.timeout(CALL_AGENT_TIMEOUT):
136
+ results = await execute_agent(chat_message)
137
+
138
+ if not results:
139
+ raise ToolException(f"No response received from agent '{agent_id}'")
140
+
141
+ all_attachments: list[ChatMessageAttachment] = []
142
+ for msg in results:
143
+ if msg.attachments:
144
+ all_attachments.extend(msg.attachments)
145
+
146
+ return self._check_response(results[-1], all_attachments, agent_id)
147
+
148
+ @staticmethod
149
+ def _build_chat_message(
150
+ context: AgentContext,
151
+ target_agent_id: str,
152
+ team_id: str | None,
153
+ message: str,
154
+ ) -> ChatMessageCreate:
155
+ """Build a ChatMessageCreate for calling a sub-agent."""
156
+ return ChatMessageCreate(
157
+ id=str(XID()),
158
+ agent_id=target_agent_id,
159
+ chat_id=f"call-{context.agent_id}-{context.chat_id}",
160
+ user_id=context.user_id,
161
+ author_id=context.agent_id,
162
+ author_type=AuthorType.INTERNAL,
163
+ thread_type=context.entrypoint,
164
+ team_id=team_id,
165
+ message=message,
166
+ call_depth=context.call_depth + 1,
167
+ )
168
+
169
+ @staticmethod
170
+ def _check_response(
171
+ last_message: ChatMessage | None,
172
+ all_attachments: list[ChatMessageAttachment],
173
+ agent_id: str,
174
+ ) -> tuple[str, list[ChatMessageAttachment]]:
175
+ """Validate the last message and return response text + attachments."""
176
+ if not last_message:
177
+ raise ToolException(f"No response received from agent '{agent_id}'")
178
+
179
+ if last_message.author_type == AuthorType.AGENT:
180
+ return last_message.message, all_attachments
181
+
182
+ if last_message.author_type == AuthorType.SYSTEM:
183
+ error_info = ""
184
+ if last_message.error_type:
185
+ error_info = f" (error_type: {last_message.error_type})"
186
+ raise ToolException(
187
+ f"Agent '{agent_id}' returned a system error{error_info}: "
188
+ f"{last_message.message}"
189
+ )
190
+
191
+ raise ToolException(
192
+ f"Agent '{agent_id}' did not return an agent response. "
193
+ f"Last message type: {last_message.author_type}"
194
+ )
195
+
196
+
197
+ lead_call_agent_skill = LeadCallAgent()
@@ -149,7 +149,7 @@ class CreateTeamAgent(LeadSkill):
149
149
  # Invalidate lead cache so lead agent rebuilds sub-agents list
150
150
  from intentkit.core.lead.cache import invalidate_lead_cache
151
151
 
152
- invalidate_lead_cache(context.agent_id)
152
+ invalidate_lead_cache(context.team_id)
153
153
 
154
154
  return CreateTeamAgentOutput(
155
155
  agent_id=created_agent.id,
@@ -48,7 +48,7 @@ class LeadDeleteAutonomousTask(LeadSkill):
48
48
  **kwargs: Any,
49
49
  ) -> DeleteAutonomousTaskOutput:
50
50
  context = self.get_context()
51
- await verify_agent_in_team(agent_id, context.agent_id)
51
+ await verify_agent_in_team(agent_id, context.team_id)
52
52
  await delete_autonomous_task(agent_id, task_id)
53
53
  return DeleteAutonomousTaskOutput(
54
54
  success=True, message=f"Successfully deleted autonomous task {task_id}"
@@ -63,7 +63,7 @@ class LeadEditAutonomousTask(LeadSkill):
63
63
  **kwargs: Any,
64
64
  ) -> EditAutonomousTaskOutput:
65
65
  context = self.get_context()
66
- await verify_agent_in_team(agent_id, context.agent_id)
66
+ await verify_agent_in_team(agent_id, context.team_id)
67
67
 
68
68
  task_update = AutonomousUpdateRequest(
69
69
  name=name,
@@ -0,0 +1,67 @@
1
+ """Skill to retrieve a single post's full content for the lead agent."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Any, override
6
+
7
+ from langchain_core.tools import ArgsSchema
8
+ from pydantic import BaseModel, Field
9
+
10
+ from intentkit.core.lead.skills.base import LeadSkill
11
+
12
+
13
+ class LeadGetPostInput(BaseModel):
14
+ """Input schema for getting a post by ID."""
15
+
16
+ post_id: str = Field(..., description="The ID of the post to retrieve")
17
+
18
+
19
+ class LeadGetPost(LeadSkill):
20
+ """Skill for retrieving a single post's full content by ID.
21
+
22
+ This is a lead-specific wrapper that can read posts from any agent in the team.
23
+ """
24
+
25
+ name: str = "lead_get_post"
26
+ description: str = "Get the full content of a post by its ID."
27
+ args_schema: ArgsSchema | None = LeadGetPostInput
28
+
29
+ @override
30
+ async def _arun(self, post_id: str, **kwargs: Any) -> str:
31
+ from intentkit.core.agent_post import get_agent_post
32
+ from intentkit.core.lead.service import verify_agent_in_team
33
+
34
+ context = self.get_context()
35
+
36
+ post = await get_agent_post(post_id)
37
+
38
+ if post is None:
39
+ return f"Post with ID '{post_id}' not found."
40
+
41
+ # Verify the post's agent belongs to this team
42
+ if context.team_id:
43
+ try:
44
+ await verify_agent_in_team(post.agent_id, context.team_id)
45
+ except Exception:
46
+ return f"Post with ID '{post_id}' not found."
47
+
48
+ result_lines = [
49
+ f"Post (ID: {post.id})",
50
+ f"Agent: {post.agent_name}",
51
+ f"Title: {post.title}",
52
+ f"Created: {post.created_at.isoformat()}",
53
+ ]
54
+ if post.slug:
55
+ result_lines.append(f"Slug: {post.slug}")
56
+ if post.excerpt:
57
+ result_lines.append(f"Excerpt: {post.excerpt}")
58
+ if post.tags:
59
+ result_lines.append(f"Tags: {', '.join(post.tags)}")
60
+ if post.cover:
61
+ result_lines.append(f"Cover: {post.cover}")
62
+ result_lines.append(f"\n{post.markdown}")
63
+
64
+ return "\n".join(result_lines)
65
+
66
+
67
+ lead_get_post_skill = LeadGetPost()
@@ -0,0 +1,60 @@
1
+ """Skill to get the lead agent's current configuration."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import asyncio
6
+ from typing import Any, override
7
+
8
+ from langchain_core.tools import ArgsSchema
9
+ from langchain_core.tools.base import ToolException
10
+ from pydantic import BaseModel, Field
11
+
12
+ from intentkit.core.lead.constants import LEAD_DEFAULT_NAME, LEAD_DEFAULT_PERSONALITY
13
+ from intentkit.core.lead.skills.base import LeadSkill
14
+ from intentkit.models.agent_data import AgentData
15
+ from intentkit.models.team import Team
16
+ from intentkit.skills.base import NoArgsSchema
17
+
18
+
19
+ class GetSelfInfoOutput(BaseModel):
20
+ """Output model for lead_get_self_info skill."""
21
+
22
+ name: str = Field(description="Current lead agent name")
23
+ avatar: str | None = Field(description="Current lead agent avatar URL")
24
+ personality: str | None = Field(description="Current lead agent personality")
25
+ memory: str | None = Field(description="Current lead agent long-term memory")
26
+
27
+
28
+ class LeadGetSelfInfo(LeadSkill):
29
+ """Skill to retrieve the lead agent's current configuration."""
30
+
31
+ name: str = "lead_get_self_info"
32
+ description: str = (
33
+ "Get the lead agent's current name, avatar, personality, and memory."
34
+ )
35
+ args_schema: ArgsSchema | None = NoArgsSchema
36
+
37
+ @override
38
+ async def _arun(self, **kwargs: Any) -> GetSelfInfoOutput:
39
+ context = self.get_context()
40
+ team_id = context.team_id
41
+ if not team_id:
42
+ raise ToolException("No team_id in context")
43
+ lead_agent_id = f"team-{team_id}"
44
+
45
+ # Parallelize independent DB lookups
46
+ raw_config, agent_data = await asyncio.gather(
47
+ Team.get_lead_agent_config(team_id),
48
+ AgentData.get(lead_agent_id),
49
+ )
50
+ lead_config = raw_config or {}
51
+
52
+ return GetSelfInfoOutput(
53
+ name=lead_config.get("name", LEAD_DEFAULT_NAME),
54
+ avatar=lead_config.get("avatar"),
55
+ personality=lead_config.get("personality", LEAD_DEFAULT_PERSONALITY),
56
+ memory=agent_data.long_term_memory,
57
+ )
58
+
59
+
60
+ lead_get_self_info_skill = LeadGetSelfInfo()