@lobehub/lobehub 2.0.0-next.272 → 2.0.0-next.274

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 (296) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/changelog/v1.json +18 -0
  3. package/locales/ar/chat.json +7 -0
  4. package/locales/ar/common.json +1 -1
  5. package/locales/ar/discover.json +2 -2
  6. package/locales/ar/models.json +40 -12
  7. package/locales/ar/onboarding.json +1 -1
  8. package/locales/ar/plugin.json +22 -1
  9. package/locales/ar/providers.json +0 -1
  10. package/locales/bg-BG/chat.json +7 -0
  11. package/locales/bg-BG/common.json +2 -0
  12. package/locales/bg-BG/discover.json +2 -2
  13. package/locales/bg-BG/models.json +48 -13
  14. package/locales/bg-BG/onboarding.json +1 -1
  15. package/locales/bg-BG/plugin.json +22 -1
  16. package/locales/bg-BG/providers.json +0 -1
  17. package/locales/de-DE/chat.json +7 -0
  18. package/locales/de-DE/common.json +2 -0
  19. package/locales/de-DE/discover.json +2 -2
  20. package/locales/de-DE/models.json +37 -13
  21. package/locales/de-DE/onboarding.json +3 -0
  22. package/locales/de-DE/plugin.json +22 -1
  23. package/locales/de-DE/providers.json +0 -1
  24. package/locales/en-US/chat.json +7 -0
  25. package/locales/en-US/discover.json +2 -2
  26. package/locales/en-US/models.json +15 -15
  27. package/locales/en-US/plugin.json +22 -1
  28. package/locales/en-US/providers.json +0 -1
  29. package/locales/es-ES/chat.json +7 -0
  30. package/locales/es-ES/common.json +2 -0
  31. package/locales/es-ES/discover.json +2 -2
  32. package/locales/es-ES/models.json +32 -14
  33. package/locales/es-ES/onboarding.json +3 -0
  34. package/locales/es-ES/plugin.json +22 -1
  35. package/locales/es-ES/providers.json +0 -1
  36. package/locales/fa-IR/chat.json +7 -0
  37. package/locales/fa-IR/common.json +2 -0
  38. package/locales/fa-IR/discover.json +2 -2
  39. package/locales/fa-IR/models.json +36 -14
  40. package/locales/fa-IR/onboarding.json +3 -0
  41. package/locales/fa-IR/plugin.json +22 -1
  42. package/locales/fa-IR/providers.json +0 -1
  43. package/locales/fr-FR/chat.json +7 -0
  44. package/locales/fr-FR/common.json +2 -0
  45. package/locales/fr-FR/discover.json +2 -2
  46. package/locales/fr-FR/models.json +95 -13
  47. package/locales/fr-FR/onboarding.json +3 -0
  48. package/locales/fr-FR/plugin.json +22 -1
  49. package/locales/fr-FR/providers.json +0 -1
  50. package/locales/it-IT/chat.json +7 -0
  51. package/locales/it-IT/common.json +2 -0
  52. package/locales/it-IT/discover.json +2 -2
  53. package/locales/it-IT/models.json +8 -13
  54. package/locales/it-IT/onboarding.json +3 -0
  55. package/locales/it-IT/plugin.json +22 -1
  56. package/locales/it-IT/providers.json +0 -1
  57. package/locales/ja-JP/chat.json +7 -0
  58. package/locales/ja-JP/common.json +2 -0
  59. package/locales/ja-JP/discover.json +2 -2
  60. package/locales/ja-JP/models.json +76 -8
  61. package/locales/ja-JP/onboarding.json +3 -0
  62. package/locales/ja-JP/plugin.json +22 -1
  63. package/locales/ja-JP/providers.json +0 -1
  64. package/locales/ko-KR/chat.json +7 -0
  65. package/locales/ko-KR/common.json +2 -0
  66. package/locales/ko-KR/discover.json +2 -2
  67. package/locales/ko-KR/models.json +8 -15
  68. package/locales/ko-KR/onboarding.json +3 -0
  69. package/locales/ko-KR/plugin.json +22 -1
  70. package/locales/ko-KR/providers.json +0 -1
  71. package/locales/nl-NL/chat.json +7 -0
  72. package/locales/nl-NL/common.json +2 -0
  73. package/locales/nl-NL/discover.json +2 -2
  74. package/locales/nl-NL/models.json +98 -9
  75. package/locales/nl-NL/onboarding.json +3 -0
  76. package/locales/nl-NL/plugin.json +22 -1
  77. package/locales/nl-NL/providers.json +0 -1
  78. package/locales/pl-PL/chat.json +7 -0
  79. package/locales/pl-PL/common.json +2 -0
  80. package/locales/pl-PL/discover.json +2 -2
  81. package/locales/pl-PL/models.json +38 -13
  82. package/locales/pl-PL/onboarding.json +3 -0
  83. package/locales/pl-PL/plugin.json +22 -1
  84. package/locales/pl-PL/providers.json +0 -1
  85. package/locales/pt-BR/chat.json +7 -0
  86. package/locales/pt-BR/common.json +2 -0
  87. package/locales/pt-BR/discover.json +2 -2
  88. package/locales/pt-BR/models.json +50 -13
  89. package/locales/pt-BR/onboarding.json +3 -0
  90. package/locales/pt-BR/plugin.json +22 -1
  91. package/locales/pt-BR/providers.json +0 -1
  92. package/locales/ru-RU/chat.json +7 -0
  93. package/locales/ru-RU/common.json +2 -0
  94. package/locales/ru-RU/discover.json +2 -2
  95. package/locales/ru-RU/models.json +54 -13
  96. package/locales/ru-RU/onboarding.json +3 -0
  97. package/locales/ru-RU/plugin.json +22 -1
  98. package/locales/ru-RU/providers.json +0 -1
  99. package/locales/tr-TR/chat.json +7 -0
  100. package/locales/tr-TR/common.json +2 -0
  101. package/locales/tr-TR/discover.json +2 -2
  102. package/locales/tr-TR/models.json +40 -13
  103. package/locales/tr-TR/onboarding.json +3 -0
  104. package/locales/tr-TR/plugin.json +22 -1
  105. package/locales/tr-TR/providers.json +0 -1
  106. package/locales/vi-VN/chat.json +7 -0
  107. package/locales/vi-VN/common.json +2 -0
  108. package/locales/vi-VN/discover.json +2 -2
  109. package/locales/vi-VN/models.json +8 -8
  110. package/locales/vi-VN/onboarding.json +3 -0
  111. package/locales/vi-VN/plugin.json +22 -1
  112. package/locales/vi-VN/providers.json +0 -1
  113. package/locales/zh-CN/chat.json +7 -0
  114. package/locales/zh-CN/discover.json +2 -2
  115. package/locales/zh-CN/models.json +95 -13
  116. package/locales/zh-CN/onboarding.json +3 -0
  117. package/locales/zh-CN/plugin.json +22 -1
  118. package/locales/zh-CN/providers.json +0 -1
  119. package/locales/zh-TW/chat.json +7 -0
  120. package/locales/zh-TW/common.json +2 -0
  121. package/locales/zh-TW/discover.json +2 -2
  122. package/locales/zh-TW/models.json +86 -13
  123. package/locales/zh-TW/onboarding.json +3 -0
  124. package/locales/zh-TW/plugin.json +22 -1
  125. package/locales/zh-TW/providers.json +0 -1
  126. package/package.json +1 -1
  127. package/packages/builtin-tool-agent-builder/package.json +1 -0
  128. package/packages/builtin-tool-agent-builder/src/client/Inspector/GetAvailableModels/index.tsx +66 -0
  129. package/packages/builtin-tool-agent-builder/src/client/Inspector/InstallPlugin/index.tsx +63 -0
  130. package/packages/builtin-tool-agent-builder/src/client/Inspector/SearchMarketTools/index.tsx +64 -0
  131. package/packages/builtin-tool-agent-builder/src/client/Inspector/UpdateConfig/index.tsx +94 -0
  132. package/packages/builtin-tool-agent-builder/src/client/Inspector/UpdatePrompt/index.tsx +96 -0
  133. package/packages/builtin-tool-agent-builder/src/client/Inspector/index.ts +29 -0
  134. package/packages/builtin-tool-agent-builder/src/client/index.ts +13 -0
  135. package/packages/builtin-tool-agent-builder/src/executor.ts +132 -0
  136. package/packages/builtin-tool-cloud-sandbox/src/client/Inspector/ExecuteCode/index.tsx +5 -14
  137. package/packages/builtin-tool-cloud-sandbox/src/client/Inspector/RunCommand/index.tsx +5 -13
  138. package/packages/builtin-tool-group-agent-builder/package.json +7 -1
  139. package/packages/builtin-tool-group-agent-builder/src/ExecutionRuntime/index.ts +331 -87
  140. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/BatchCreateAgents/index.tsx +110 -0
  141. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/CreateAgent/index.tsx +72 -0
  142. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/InviteAgent/index.tsx +57 -0
  143. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/RemoveAgent/index.tsx +57 -0
  144. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/SearchAgent/index.tsx +66 -0
  145. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/UpdateAgentPrompt/index.tsx +120 -0
  146. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/UpdateGroup/index.tsx +87 -0
  147. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/UpdateGroupPrompt/index.tsx +99 -0
  148. package/packages/builtin-tool-group-agent-builder/src/client/Inspector/index.ts +52 -0
  149. package/packages/builtin-tool-group-agent-builder/src/client/Render/BatchCreateAgents.tsx +103 -0
  150. package/packages/builtin-tool-group-agent-builder/src/client/Render/UpdateAgentPrompt/index.tsx +36 -0
  151. package/packages/builtin-tool-group-agent-builder/src/client/Render/UpdateGroupPrompt/index.tsx +36 -0
  152. package/packages/builtin-tool-group-agent-builder/src/client/Render/index.ts +16 -0
  153. package/packages/builtin-tool-group-agent-builder/src/client/Streaming/BatchCreateAgents/index.tsx +88 -0
  154. package/packages/builtin-tool-group-agent-builder/src/client/Streaming/UpdateAgentPrompt/index.tsx +37 -0
  155. package/packages/builtin-tool-group-agent-builder/src/client/Streaming/UpdateGroupPrompt/index.tsx +35 -0
  156. package/packages/builtin-tool-group-agent-builder/src/client/Streaming/index.ts +22 -0
  157. package/packages/builtin-tool-group-agent-builder/src/client/index.ts +26 -0
  158. package/packages/builtin-tool-group-agent-builder/src/executor.ts +284 -0
  159. package/packages/builtin-tool-group-agent-builder/src/index.ts +1 -14
  160. package/packages/builtin-tool-group-agent-builder/src/manifest.ts +160 -15
  161. package/packages/builtin-tool-group-agent-builder/src/systemRole.ts +232 -46
  162. package/packages/builtin-tool-group-agent-builder/src/types.ts +191 -41
  163. package/packages/builtin-tool-group-management/src/client/Inspector/Broadcast/index.tsx +2 -2
  164. package/packages/builtin-tool-group-management/src/manifest.ts +1 -1
  165. package/packages/builtin-tool-gtd/src/client/Inspector/ClearTodos/index.tsx +5 -11
  166. package/packages/builtin-tool-gtd/src/client/Inspector/CompleteTodos/index.tsx +3 -9
  167. package/packages/builtin-tool-gtd/src/client/Inspector/CreatePlan/index.tsx +6 -15
  168. package/packages/builtin-tool-gtd/src/client/Inspector/CreateTodos/index.tsx +3 -9
  169. package/packages/builtin-tool-gtd/src/client/Inspector/ExecTask/index.tsx +6 -17
  170. package/packages/builtin-tool-gtd/src/client/Inspector/RemoveTodos/index.tsx +3 -9
  171. package/packages/builtin-tool-gtd/src/client/Inspector/UpdatePlan/index.tsx +3 -9
  172. package/packages/builtin-tool-gtd/src/client/Inspector/UpdateTodos/index.tsx +3 -9
  173. package/packages/builtin-tool-knowledge-base/src/client/Inspector/ReadKnowledge/index.tsx +4 -16
  174. package/packages/builtin-tool-knowledge-base/src/client/Inspector/SearchKnowledgeBase/index.tsx +5 -16
  175. package/packages/builtin-tool-local-system/src/client/Inspector/EditLocalFile/index.tsx +4 -12
  176. package/packages/builtin-tool-local-system/src/client/Inspector/GlobLocalFiles/index.tsx +5 -13
  177. package/packages/builtin-tool-local-system/src/client/Inspector/GrepContent/index.tsx +5 -16
  178. package/packages/builtin-tool-local-system/src/client/Inspector/ListLocalFiles/index.tsx +5 -16
  179. package/packages/builtin-tool-local-system/src/client/Inspector/ReadLocalFile/index.tsx +5 -16
  180. package/packages/builtin-tool-local-system/src/client/Inspector/RenameLocalFile/index.tsx +5 -11
  181. package/packages/builtin-tool-local-system/src/client/Inspector/RunCommand/index.tsx +5 -13
  182. package/packages/builtin-tool-local-system/src/client/Inspector/SearchLocalFiles/index.tsx +5 -16
  183. package/packages/builtin-tool-local-system/src/client/Inspector/WriteLocalFile/index.tsx +6 -15
  184. package/packages/builtin-tool-notebook/src/client/Inspector/CreateDocument/index.tsx +7 -15
  185. package/packages/builtin-tool-page-agent/src/client/Inspector/EditTitle/index.tsx +5 -14
  186. package/packages/builtin-tool-page-agent/src/client/Inspector/GetPageContent/index.tsx +7 -8
  187. package/packages/builtin-tool-page-agent/src/client/Inspector/InitPage/index.tsx +4 -10
  188. package/packages/builtin-tool-page-agent/src/client/Inspector/ModifyNodes/index.tsx +3 -9
  189. package/packages/builtin-tool-page-agent/src/client/Inspector/ReplaceText/index.tsx +5 -11
  190. package/packages/builtin-tool-web-browsing/src/client/Inspector/CrawlMultiPages/index.tsx +6 -15
  191. package/packages/builtin-tool-web-browsing/src/client/Inspector/CrawlSinglePage/index.tsx +6 -15
  192. package/packages/builtin-tool-web-browsing/src/client/Inspector/Search/index.tsx +4 -15
  193. package/packages/database/src/models/chatGroup.ts +1 -1
  194. package/packages/model-bank/src/aiModels/aihubmix.ts +2 -1
  195. package/packages/model-bank/src/aiModels/google.ts +2 -1
  196. package/packages/model-bank/src/aiModels/infiniai.ts +9 -6
  197. package/packages/model-bank/src/aiModels/minimax.ts +9 -5
  198. package/packages/model-bank/src/aiModels/ollamacloud.ts +4 -2
  199. package/packages/model-bank/src/aiModels/vertexai.ts +2 -1
  200. package/packages/types/src/agentGroup/index.ts +8 -0
  201. package/patches/@upstash__qstash.patch +13 -1
  202. package/src/app/[variants]/(main)/agent/_layout/Sidebar/Header/Nav.tsx +1 -1
  203. package/src/app/[variants]/(main)/agent/cron/[cronId]/index.tsx +4 -3
  204. package/src/app/[variants]/(main)/agent/profile/features/ProfileEditor/index.tsx +1 -1
  205. package/src/app/[variants]/(main)/agent/profile/features/store/action.ts +18 -21
  206. package/src/app/[variants]/(main)/group/_layout/GroupIdSync.tsx +6 -1
  207. package/src/app/[variants]/(main)/group/_layout/Sidebar/GroupConfig/AgentProfilePopup.tsx +29 -21
  208. package/src/app/[variants]/(main)/group/_layout/Sidebar/GroupConfig/GroupMember.tsx +1 -0
  209. package/src/app/[variants]/(main)/group/_layout/Sidebar/GroupConfig/GroupMemberItem.tsx +35 -18
  210. package/src/app/[variants]/(main)/group/_layout/Sidebar/Header/AddTopicButon.tsx +2 -10
  211. package/src/app/[variants]/(main)/group/_layout/Sidebar/Header/Nav.tsx +10 -2
  212. package/src/app/[variants]/(main)/group/_layout/Sidebar/Header/index.tsx +1 -2
  213. package/src/app/[variants]/(main)/group/profile/features/AgentBuilder/AgentBuilderProvider.tsx +1 -0
  214. package/src/app/[variants]/(main)/group/profile/features/AgentBuilder/TopicSelector.tsx +15 -9
  215. package/src/app/[variants]/(main)/group/profile/features/AgentBuilder/index.tsx +12 -6
  216. package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor/AgentHeader.tsx → GroupProfile/GroupHeader.tsx} +22 -29
  217. package/src/app/[variants]/(main)/group/profile/features/GroupProfile/index.tsx +96 -0
  218. package/src/app/[variants]/(main)/group/profile/features/Header/AgentBuilderToggle.tsx +3 -4
  219. package/src/app/[variants]/(main)/group/profile/features/Header/AutoSaveHint.tsx +11 -7
  220. package/src/app/[variants]/(main)/group/profile/features/Header/ChromeTabs/index.tsx +147 -0
  221. package/src/app/[variants]/(main)/group/profile/features/Header/index.tsx +104 -13
  222. package/src/app/[variants]/(main)/group/profile/features/MemberProfile/AgentHeader.tsx +222 -0
  223. package/src/app/[variants]/(main)/group/profile/features/MemberProfile/index.tsx +155 -0
  224. package/src/app/[variants]/(main)/group/profile/features/ProfileHydration.tsx +63 -5
  225. package/src/app/[variants]/(main)/group/profile/index.tsx +34 -37
  226. package/src/app/[variants]/(mobile)/(home)/_layout/SessionHydration.tsx +1 -1
  227. package/src/app/[variants]/(mobile)/(home)/features/SessionListContent/List/Item/index.tsx +1 -1
  228. package/src/features/AgentBuilder/index.tsx +16 -1
  229. package/src/features/Conversation/Messages/AssistantGroup/Tool/Inspector/StatusIndicator.tsx +3 -2
  230. package/src/features/EditorCanvas/EditorCanvas.test.tsx +206 -0
  231. package/src/features/EditorCanvas/EditorDataMode.tsx +53 -19
  232. package/src/features/EditorModal/index.tsx +2 -2
  233. package/src/features/NavPanel/components/SessionHydration.tsx +1 -1
  234. package/src/features/ShareModal/ShareImage/ChatList/index.tsx +1 -1
  235. package/src/features/ShareModal/SharePdf/index.tsx +1 -1
  236. package/src/hooks/useBidirectionalQuerySync.ts +112 -0
  237. package/src/locales/default/chat.ts +10 -0
  238. package/src/locales/default/plugin.ts +22 -1
  239. package/src/server/modules/AgentRuntime/RuntimeExecutors.ts +45 -45
  240. package/src/server/modules/KeyVaultsEncrypt/index.ts +6 -6
  241. package/src/server/modules/S3/index.ts +1 -1
  242. package/src/server/routers/lambda/agent.ts +24 -0
  243. package/src/server/routers/lambda/agentGroup.ts +39 -0
  244. package/src/services/agent.ts +22 -0
  245. package/src/services/chatGroup/index.ts +14 -0
  246. package/src/store/agent/selectors/selectors.ts +3 -0
  247. package/src/store/agentGroup/initialState.ts +6 -0
  248. package/src/store/agentGroup/selectors/byId.ts +3 -1
  249. package/src/store/agentGroup/selectors/current.ts +2 -2
  250. package/src/store/agentGroup/slices/lifecycle.ts +18 -0
  251. package/src/store/chat/agents/__tests__/createAgentExecutors/fixtures/mockStore.ts +1 -1
  252. package/src/store/chat/slices/aiAgent/actions/__tests__/agentGroup.test.ts +4 -1
  253. package/src/store/chat/slices/aiAgent/actions/agentGroup.ts +1 -1
  254. package/src/store/chat/slices/aiChat/actions/__tests__/conversationLifecycle.test.ts +65 -0
  255. package/src/store/chat/slices/aiChat/actions/conversationLifecycle.ts +2 -1
  256. package/src/store/chat/slices/builtinTool/actions/__tests__/search.test.ts +1 -1
  257. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -6
  258. package/src/store/chat/slices/message/action.test.ts +5 -5
  259. package/src/store/chat/slices/message/actions/publicApi.ts +5 -5
  260. package/src/store/chat/slices/message/initialState.ts +0 -5
  261. package/src/store/chat/slices/message/selectors/displayMessage.test.ts +4 -4
  262. package/src/store/chat/slices/plugin/action.test.ts +54 -19
  263. package/src/store/chat/slices/plugin/actions/pluginTypes.ts +15 -21
  264. package/src/store/chat/slices/topic/action.test.ts +74 -24
  265. package/src/store/chat/slices/topic/action.ts +21 -13
  266. package/src/store/chat/slices/topic/selectors.test.ts +1 -1
  267. package/src/store/global/initialState.ts +10 -0
  268. package/src/store/global/selectors/systemStatus.ts +5 -0
  269. package/src/store/groupProfile/action.ts +168 -0
  270. package/src/store/groupProfile/index.ts +16 -0
  271. package/src/{app/[variants]/(main)/group/profile/features/store → store/groupProfile}/initialState.ts +17 -0
  272. package/src/store/groupProfile/selectors.ts +13 -0
  273. package/src/store/tool/slices/builtin/executors/index.ts +4 -0
  274. package/src/styles/text.ts +16 -0
  275. package/src/tools/inspectors.ts +13 -0
  276. package/src/tools/renders.ts +3 -0
  277. package/src/tools/streamings.ts +8 -0
  278. package/src/app/[variants]/(main)/group/profile/features/EditorCanvas/TypoBar.tsx +0 -129
  279. package/src/app/[variants]/(main)/group/profile/features/EditorCanvas/index.tsx +0 -138
  280. package/src/app/[variants]/(main)/group/profile/features/EditorCanvas/useSlashItems.tsx +0 -139
  281. package/src/app/[variants]/(main)/group/profile/features/ProfileEditor/index.tsx +0 -82
  282. package/src/app/[variants]/(main)/group/profile/features/ProfileProvider.tsx +0 -20
  283. package/src/app/[variants]/(main)/group/profile/features/StoreUpdater.tsx +0 -24
  284. package/src/app/[variants]/(main)/group/profile/features/store/action.ts +0 -163
  285. package/src/app/[variants]/(main)/group/profile/features/store/index.ts +0 -23
  286. package/src/app/[variants]/(main)/group/profile/features/store/selectors.ts +0 -7
  287. package/src/features/EditorModal/EditorCanvas.tsx +0 -84
  288. package/src/features/EditorModal/Typobar.tsx +0 -139
  289. package/src/store/chat/slices/builtinTool/actions/agentBuilder.ts +0 -192
  290. package/src/store/chat/slices/builtinTool/actions/groupAgentBuilder.ts +0 -242
  291. package/src/tools/executionRuntimes.ts +0 -14
  292. /package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor → MemberProfile}/AgentTool.tsx +0 -0
  293. /package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor → MemberProfile}/MentionList/MentionDropdown.tsx +0 -0
  294. /package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor → MemberProfile}/MentionList/index.tsx +0 -0
  295. /package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor → MemberProfile}/MentionList/types.ts +0 -0
  296. /package/src/app/[variants]/(main)/group/profile/features/{ProfileEditor → MemberProfile}/MentionList/useMentionItems.tsx +0 -0
@@ -0,0 +1,96 @@
1
+ 'use client';
2
+
3
+ import type { BuiltinInspectorProps } from '@lobechat/types';
4
+ import { Text } from '@lobehub/ui';
5
+ import { createStaticStyles, cssVar, cx } from 'antd-style';
6
+ import { Check } from 'lucide-react';
7
+ import { memo, useMemo } from 'react';
8
+ import { useTranslation } from 'react-i18next';
9
+
10
+ import { inspectorTextStyles, shinyTextStyles } from '@/styles';
11
+
12
+ import type { UpdatePromptParams, UpdatePromptState } from '../../../types';
13
+
14
+ const styles = createStaticStyles(({ css }) => ({
15
+ statusIcon: css`
16
+ margin-block-end: -2px;
17
+ margin-inline-start: 4px;
18
+ `,
19
+ }));
20
+
21
+ export const UpdatePromptInspector = memo<
22
+ BuiltinInspectorProps<UpdatePromptParams, UpdatePromptState>
23
+ >(({ args, partialArgs, isArgumentsStreaming, isLoading, pluginState }) => {
24
+ const { t } = useTranslation('plugin');
25
+
26
+ const prompt = args?.prompt || partialArgs?.prompt;
27
+
28
+ // Calculate length difference
29
+ const lengthDiff = useMemo(() => {
30
+ if (!pluginState) return null;
31
+
32
+ const newLength = pluginState.newPrompt?.length ?? 0;
33
+ const prevLength = pluginState.previousPrompt?.length ?? 0;
34
+ const diff = newLength - prevLength;
35
+
36
+ return diff;
37
+ }, [pluginState]);
38
+
39
+ // Initial streaming state
40
+ if (isArgumentsStreaming && !prompt) {
41
+ return (
42
+ <div className={cx(inspectorTextStyles.root, shinyTextStyles.shinyText)}>
43
+ <span>{t('builtins.lobe-agent-builder.apiName.updatePrompt')}</span>
44
+ </div>
45
+ );
46
+ }
47
+
48
+ // Calculate streaming length change
49
+ const streamingLength = prompt?.length ?? 0;
50
+ const isSuccess = pluginState?.success;
51
+
52
+ return (
53
+ <div
54
+ className={cx(
55
+ inspectorTextStyles.root,
56
+ (isArgumentsStreaming || isLoading) && shinyTextStyles.shinyText,
57
+ )}
58
+ >
59
+ <span>{t('builtins.lobe-agent-builder.apiName.updatePrompt')}</span>
60
+ {/* Show length diff when completed */}
61
+ {!isLoading && !isArgumentsStreaming && lengthDiff !== null && (
62
+ <Text
63
+ as={'span'}
64
+ code
65
+ color={lengthDiff >= 0 ? cssVar.colorSuccess : cssVar.colorError}
66
+ fontSize={12}
67
+ style={{ marginInlineStart: 4 }}
68
+ >
69
+ ({lengthDiff >= 0 ? '+' : ''}
70
+ {lengthDiff}
71
+ {t('builtins.lobe-agent-builder.inspector.chars')})
72
+ </Text>
73
+ )}
74
+ {/* Show streaming length */}
75
+ {(isArgumentsStreaming || isLoading) && streamingLength > 0 && (
76
+ <Text
77
+ as={'span'}
78
+ code
79
+ color={cssVar.colorTextDescription}
80
+ fontSize={12}
81
+ style={{ marginInlineStart: 4 }}
82
+ >
83
+ ({streamingLength}
84
+ {t('builtins.lobe-agent-builder.inspector.chars')})
85
+ </Text>
86
+ )}
87
+ {!isLoading && !isArgumentsStreaming && isSuccess && (
88
+ <Check className={styles.statusIcon} color={cssVar.colorSuccess} size={14} />
89
+ )}
90
+ </div>
91
+ );
92
+ });
93
+
94
+ UpdatePromptInspector.displayName = 'UpdatePromptInspector';
95
+
96
+ export default UpdatePromptInspector;
@@ -0,0 +1,29 @@
1
+ import { type BuiltinInspector } from '@lobechat/types';
2
+
3
+ import { AgentBuilderApiName } from '../../types';
4
+ import { GetAvailableModelsInspector } from './GetAvailableModels';
5
+ import { InstallPluginInspector } from './InstallPlugin';
6
+ import { SearchMarketToolsInspector } from './SearchMarketTools';
7
+ import { UpdateConfigInspector } from './UpdateConfig';
8
+ import { UpdatePromptInspector } from './UpdatePrompt';
9
+
10
+ /**
11
+ * Agent Builder Inspector Components Registry
12
+ *
13
+ * Inspector components customize the title/header area
14
+ * of tool calls in the conversation UI.
15
+ */
16
+ export const AgentBuilderInspectors: Record<string, BuiltinInspector> = {
17
+ [AgentBuilderApiName.getAvailableModels]: GetAvailableModelsInspector as BuiltinInspector,
18
+ [AgentBuilderApiName.installPlugin]: InstallPluginInspector as BuiltinInspector,
19
+ [AgentBuilderApiName.searchMarketTools]: SearchMarketToolsInspector as BuiltinInspector,
20
+ [AgentBuilderApiName.updateAgentConfig]: UpdateConfigInspector as BuiltinInspector,
21
+ [AgentBuilderApiName.updatePrompt]: UpdatePromptInspector as BuiltinInspector,
22
+ };
23
+
24
+ // Re-export individual inspectors for reuse in group-agent-builder
25
+ export { GetAvailableModelsInspector } from './GetAvailableModels';
26
+ export { InstallPluginInspector } from './InstallPlugin';
27
+ export { SearchMarketToolsInspector } from './SearchMarketTools';
28
+ export { UpdateConfigInspector } from './UpdateConfig';
29
+ export { UpdatePromptInspector } from './UpdatePrompt';
@@ -1,4 +1,17 @@
1
+ // Inspector components (customized tool call headers)
2
+ export { AgentBuilderInspectors } from './Inspector';
3
+ export {
4
+ GetAvailableModelsInspector,
5
+ InstallPluginInspector,
6
+ SearchMarketToolsInspector,
7
+ UpdateConfigInspector,
8
+ UpdatePromptInspector,
9
+ } from './Inspector';
10
+
11
+ // Intervention components (interactive editing)
1
12
  export { AgentBuilderInterventions } from './Intervention';
13
+
14
+ // Render components (read-only snapshots)
2
15
  export { AgentBuilderRenders } from './Render';
3
16
 
4
17
  // Re-export types and manifest for convenience
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Agent Builder Executor
3
+ *
4
+ * Handles all agent builder tool calls for configuring and customizing agents.
5
+ */
6
+ import { BaseExecutor, type BuiltinToolContext, type BuiltinToolResult } from '@lobechat/types';
7
+
8
+ import { AgentBuilderExecutionRuntime } from './ExecutionRuntime';
9
+ import {
10
+ AgentBuilderApiName,
11
+ AgentBuilderIdentifier,
12
+ type GetAvailableModelsParams,
13
+ type InstallPluginParams,
14
+ type SearchMarketToolsParams,
15
+ type UpdateAgentConfigParams,
16
+ type UpdatePromptParams,
17
+ } from './types';
18
+
19
+ const runtime = new AgentBuilderExecutionRuntime();
20
+
21
+ class AgentBuilderExecutor extends BaseExecutor<typeof AgentBuilderApiName> {
22
+ readonly identifier = AgentBuilderIdentifier;
23
+ protected readonly apiEnum = AgentBuilderApiName;
24
+
25
+ // ==================== Read Operations ====================
26
+
27
+ getAvailableModels = async (params: GetAvailableModelsParams): Promise<BuiltinToolResult> => {
28
+ const result = await runtime.getAvailableModels(params);
29
+ return {
30
+ content: result.content,
31
+ error: result.error
32
+ ? { body: result.error, message: String(result.error), type: 'RuntimeError' }
33
+ : undefined,
34
+ state: result.state,
35
+ success: result.success,
36
+ };
37
+ };
38
+
39
+ searchMarketTools = async (params: SearchMarketToolsParams): Promise<BuiltinToolResult> => {
40
+ const result = await runtime.searchMarketTools(params);
41
+ return {
42
+ content: result.content,
43
+ error: result.error
44
+ ? { body: result.error, message: String(result.error), type: 'RuntimeError' }
45
+ : undefined,
46
+ state: result.state,
47
+ success: result.success,
48
+ };
49
+ };
50
+
51
+ // ==================== Write Operations ====================
52
+
53
+ updateConfig = async (
54
+ params: UpdateAgentConfigParams,
55
+ ctx: BuiltinToolContext,
56
+ ): Promise<BuiltinToolResult> => {
57
+ const agentId = ctx.agentId;
58
+
59
+ if (!agentId) {
60
+ return {
61
+ content: 'No active agent found',
62
+ error: { message: 'No active agent found', type: 'NoAgentContext' },
63
+ success: false,
64
+ };
65
+ }
66
+
67
+ const result = await runtime.updateAgentConfig(agentId, params);
68
+ return {
69
+ content: result.content,
70
+ error: result.error
71
+ ? { body: result.error, message: String(result.error), type: 'RuntimeError' }
72
+ : undefined,
73
+ state: result.state,
74
+ success: result.success,
75
+ };
76
+ };
77
+
78
+ updatePrompt = async (
79
+ params: UpdatePromptParams,
80
+ ctx: BuiltinToolContext,
81
+ ): Promise<BuiltinToolResult> => {
82
+ const agentId = ctx.agentId;
83
+
84
+ if (!agentId) {
85
+ return {
86
+ content: 'No active agent found',
87
+ error: { message: 'No active agent found', type: 'NoAgentContext' },
88
+ success: false,
89
+ };
90
+ }
91
+
92
+ const result = await runtime.updatePrompt(agentId, {
93
+ streaming: true,
94
+ ...params,
95
+ });
96
+ return {
97
+ content: result.content,
98
+ error: result.error
99
+ ? { body: result.error, message: String(result.error), type: 'RuntimeError' }
100
+ : undefined,
101
+ state: result.state,
102
+ success: result.success,
103
+ };
104
+ };
105
+
106
+ installPlugin = async (
107
+ params: InstallPluginParams,
108
+ ctx: BuiltinToolContext,
109
+ ): Promise<BuiltinToolResult> => {
110
+ const agentId = ctx.agentId;
111
+
112
+ if (!agentId) {
113
+ return {
114
+ content: 'No active agent found',
115
+ error: { message: 'No active agent found', type: 'NoAgentContext' },
116
+ success: false,
117
+ };
118
+ }
119
+
120
+ const result = await runtime.installPlugin(agentId, params);
121
+ return {
122
+ content: result.content,
123
+ error: result.error
124
+ ? { body: result.error, message: String(result.error), type: 'RuntimeError' }
125
+ : undefined,
126
+ state: result.state,
127
+ success: result.success,
128
+ };
129
+ };
130
+ }
131
+
132
+ export const agentBuilderExecutor = new AgentBuilderExecutor();
@@ -6,20 +6,11 @@ import { Check, X } from 'lucide-react';
6
6
  import { memo } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
 
9
- import { highlightTextStyles, shinyTextStyles } from '@/styles';
9
+ import { highlightTextStyles, inspectorTextStyles, shinyTextStyles } from '@/styles';
10
10
 
11
11
  import { type ExecuteCodeState } from '../../../types';
12
12
 
13
- const styles = createStaticStyles(({ css, cssVar }) => ({
14
- root: css`
15
- overflow: hidden;
16
- display: -webkit-box;
17
- -webkit-box-orient: vertical;
18
- -webkit-line-clamp: 1;
19
-
20
- color: ${cssVar.colorTextSecondary};
21
- `,
22
-
13
+ const styles = createStaticStyles(({ css }) => ({
23
14
  statusIcon: css`
24
15
  margin-block-end: -2px;
25
16
  margin-inline-start: 4px;
@@ -42,13 +33,13 @@ export const ExecuteCodeInspector = memo<
42
33
  if (isArgumentsStreaming) {
43
34
  if (!description)
44
35
  return (
45
- <div className={cx(styles.root, shinyTextStyles.shinyText)}>
36
+ <div className={cx(inspectorTextStyles.root, shinyTextStyles.shinyText)}>
46
37
  <span>{t('builtins.lobe-cloud-sandbox.apiName.executeCode')}</span>
47
38
  </div>
48
39
  );
49
40
 
50
41
  return (
51
- <div className={cx(styles.root, shinyTextStyles.shinyText)}>
42
+ <div className={cx(inspectorTextStyles.root, shinyTextStyles.shinyText)}>
52
43
  <span>{t('builtins.lobe-cloud-sandbox.apiName.executeCode')}: </span>
53
44
  <span className={highlightTextStyles.gold}>{description}</span>
54
45
  </div>
@@ -56,7 +47,7 @@ export const ExecuteCodeInspector = memo<
56
47
  }
57
48
 
58
49
  return (
59
- <div className={cx(styles.root, isLoading && shinyTextStyles.shinyText)}>
50
+ <div className={cx(inspectorTextStyles.root, isLoading && shinyTextStyles.shinyText)}>
60
51
  <span style={{ marginInlineStart: 2 }}>
61
52
  <span>{t('builtins.lobe-cloud-sandbox.apiName.executeCode')}: </span>
62
53
  {description && <span className={highlightTextStyles.primary}>{description}</span>}
@@ -6,19 +6,11 @@ import { Check, X } from 'lucide-react';
6
6
  import { memo } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
 
9
- import { highlightTextStyles, shinyTextStyles } from '@/styles';
9
+ import { highlightTextStyles, inspectorTextStyles, shinyTextStyles } from '@/styles';
10
10
 
11
11
  import { type RunCommandState } from '../../../types';
12
12
 
13
- const styles = createStaticStyles(({ css, cssVar }) => ({
14
- root: css`
15
- overflow: hidden;
16
- display: -webkit-box;
17
- -webkit-box-orient: vertical;
18
- -webkit-line-clamp: 1;
19
-
20
- color: ${cssVar.colorTextSecondary};
21
- `,
13
+ const styles = createStaticStyles(({ css }) => ({
22
14
  statusIcon: css`
23
15
  margin-block-end: -2px;
24
16
  margin-inline-start: 4px;
@@ -41,13 +33,13 @@ export const RunCommandInspector = memo<BuiltinInspectorProps<RunCommandParams,
41
33
  if (isArgumentsStreaming) {
42
34
  if (!description)
43
35
  return (
44
- <div className={cx(styles.root, shinyTextStyles.shinyText)}>
36
+ <div className={cx(inspectorTextStyles.root, shinyTextStyles.shinyText)}>
45
37
  <span>{t('builtins.lobe-cloud-sandbox.apiName.runCommand')}</span>
46
38
  </div>
47
39
  );
48
40
 
49
41
  return (
50
- <div className={cx(styles.root, shinyTextStyles.shinyText)}>
42
+ <div className={cx(inspectorTextStyles.root, shinyTextStyles.shinyText)}>
51
43
  <span>{t('builtins.lobe-cloud-sandbox.apiName.runCommand')}: </span>
52
44
  <span className={highlightTextStyles.primary}>{description}</span>
53
45
  </div>
@@ -55,7 +47,7 @@ export const RunCommandInspector = memo<BuiltinInspectorProps<RunCommandParams,
55
47
  }
56
48
 
57
49
  return (
58
- <div className={cx(styles.root, isLoading && shinyTextStyles.shinyText)}>
50
+ <div className={cx(inspectorTextStyles.root, isLoading && shinyTextStyles.shinyText)}>
59
51
  <span style={{ marginInlineStart: 2 }}>
60
52
  <span>{t('builtins.lobe-cloud-sandbox.apiName.runCommand')}: </span>
61
53
  {description && <span className={highlightTextStyles.primary}>{description}</span>}
@@ -4,6 +4,8 @@
4
4
  "private": true,
5
5
  "exports": {
6
6
  ".": "./src/index.ts",
7
+ "./client": "./src/client/index.ts",
8
+ "./executor": "./src/executor.ts",
7
9
  "./executionRuntime": "./src/ExecutionRuntime/index.ts"
8
10
  },
9
11
  "main": "./src/index.ts",
@@ -14,6 +16,10 @@
14
16
  "@lobechat/types": "workspace:*"
15
17
  },
16
18
  "peerDependencies": {
17
- "react": "*"
19
+ "@lobehub/ui": "^4",
20
+ "antd": "^6",
21
+ "lucide-react": "*",
22
+ "react": "*",
23
+ "react-i18next": "*"
18
24
  }
19
25
  }