@lobehub/lobehub 2.0.0-next.3 → 2.0.0-next.30

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 (726) hide show
  1. package/.env.desktop +1 -2
  2. package/.env.example +0 -3
  3. package/.env.example.development +0 -2
  4. package/.github/workflows/claude-auto-testing.yml +73 -0
  5. package/.github/workflows/claude-translate-comments.yml +67 -0
  6. package/.github/workflows/desktop-pr-build.yml +18 -16
  7. package/.github/workflows/docker.yml +25 -20
  8. package/.github/workflows/e2e.yml +17 -3
  9. package/.github/workflows/release-desktop-beta.yml +12 -12
  10. package/.github/workflows/release.yml +3 -5
  11. package/.github/workflows/test.yml +47 -12
  12. package/.nvmrc +1 -1
  13. package/CHANGELOG.md +667 -0
  14. package/Dockerfile +1 -3
  15. package/README.md +2 -45
  16. package/README.zh-CN.md +2 -45
  17. package/apps/desktop/src/main/controllers/AuthCtr.ts +53 -39
  18. package/apps/desktop/src/main/controllers/MenuCtr.ts +5 -5
  19. package/apps/desktop/src/main/controllers/NotificationCtr.ts +29 -29
  20. package/apps/desktop/src/main/controllers/RemoteServerConfigCtr.ts +16 -16
  21. package/apps/desktop/src/main/controllers/ShortcutCtr.ts +2 -2
  22. package/apps/desktop/src/main/controllers/TrayMenuCtr.ts +18 -18
  23. package/apps/desktop/src/main/controllers/UpdaterCtr.ts +4 -4
  24. package/apps/desktop/src/main/controllers/__tests__/AuthCtr.test.ts +706 -0
  25. package/apps/desktop/src/main/controllers/__tests__/TrayMenuCtr.test.ts +5 -5
  26. package/apps/desktop/src/main/controllers/index.ts +4 -4
  27. package/apps/desktop/src/main/utils/next-electron-rsc.ts +7 -5
  28. package/apps/desktop/tsconfig.json +0 -1
  29. package/changelog/v1.json +227 -0
  30. package/docs/development/database-schema.dbml +12 -0
  31. package/docs/self-hosting/advanced/auth/next-auth/auth0.mdx +2 -2
  32. package/docs/self-hosting/advanced/auth/next-auth/auth0.zh-CN.mdx +2 -2
  33. package/docs/self-hosting/advanced/auth/next-auth/authelia.mdx +2 -2
  34. package/docs/self-hosting/advanced/auth/next-auth/authelia.zh-CN.mdx +2 -2
  35. package/docs/self-hosting/advanced/auth/next-auth/authentik.mdx +2 -2
  36. package/docs/self-hosting/advanced/auth/next-auth/authentik.zh-CN.mdx +2 -2
  37. package/docs/self-hosting/advanced/auth/next-auth/casdoor.mdx +2 -2
  38. package/docs/self-hosting/advanced/auth/next-auth/casdoor.zh-CN.mdx +2 -2
  39. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.mdx +2 -2
  40. package/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust.zh-CN.mdx +2 -2
  41. package/docs/self-hosting/advanced/auth/next-auth/github.mdx +2 -2
  42. package/docs/self-hosting/advanced/auth/next-auth/github.zh-CN.mdx +2 -2
  43. package/docs/self-hosting/advanced/auth/next-auth/google.mdx +32 -29
  44. package/docs/self-hosting/advanced/auth/next-auth/keycloak.mdx +2 -2
  45. package/docs/self-hosting/advanced/auth/next-auth/keycloak.zh-CN.mdx +2 -2
  46. package/docs/self-hosting/advanced/auth/next-auth/logto.mdx +5 -3
  47. package/docs/self-hosting/advanced/auth/next-auth/logto.zh-CN.mdx +5 -3
  48. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.mdx +2 -2
  49. package/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id.zh-CN.mdx +2 -2
  50. package/docs/self-hosting/advanced/auth/next-auth/okta.mdx +2 -2
  51. package/docs/self-hosting/advanced/auth/next-auth/okta.zh-CN.mdx +2 -2
  52. package/docs/self-hosting/advanced/auth/next-auth/wechat.mdx +2 -2
  53. package/docs/self-hosting/advanced/auth/next-auth/wechat.zh-CN.mdx +2 -2
  54. package/docs/self-hosting/advanced/auth/next-auth/zitadel.mdx +2 -2
  55. package/docs/self-hosting/advanced/auth/next-auth/zitadel.zh-CN.mdx +2 -2
  56. package/docs/self-hosting/advanced/auth.mdx +32 -21
  57. package/docs/self-hosting/advanced/auth.zh-CN.mdx +30 -19
  58. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  59. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  60. package/docs/self-hosting/advanced/online-search.mdx +30 -25
  61. package/docs/self-hosting/advanced/online-search.zh-CN.mdx +25 -23
  62. package/e2e/src/features/discover/detail-pages.feature +95 -0
  63. package/e2e/src/features/discover/interactions.feature +113 -0
  64. package/e2e/src/features/discover/smoke.feature +34 -1
  65. package/e2e/src/steps/discover/detail-pages.steps.ts +295 -0
  66. package/e2e/src/steps/discover/interactions.steps.ts +451 -0
  67. package/e2e/src/steps/discover/smoke.steps.ts +116 -4
  68. package/e2e/tsconfig.json +0 -1
  69. package/locales/ar/labs.json +4 -0
  70. package/locales/ar/models.json +15 -6
  71. package/locales/ar/oauth.json +1 -0
  72. package/locales/bg-BG/labs.json +4 -0
  73. package/locales/bg-BG/models.json +15 -6
  74. package/locales/bg-BG/oauth.json +1 -0
  75. package/locales/de-DE/labs.json +4 -0
  76. package/locales/de-DE/models.json +15 -6
  77. package/locales/de-DE/oauth.json +1 -0
  78. package/locales/en-US/labs.json +4 -0
  79. package/locales/en-US/models.json +15 -6
  80. package/locales/en-US/oauth.json +1 -0
  81. package/locales/es-ES/labs.json +4 -0
  82. package/locales/es-ES/models.json +15 -6
  83. package/locales/es-ES/oauth.json +1 -0
  84. package/locales/fa-IR/labs.json +4 -0
  85. package/locales/fa-IR/models.json +15 -6
  86. package/locales/fa-IR/oauth.json +1 -0
  87. package/locales/fr-FR/labs.json +4 -0
  88. package/locales/fr-FR/models.json +15 -6
  89. package/locales/fr-FR/oauth.json +1 -0
  90. package/locales/it-IT/labs.json +4 -0
  91. package/locales/it-IT/models.json +15 -6
  92. package/locales/it-IT/oauth.json +1 -0
  93. package/locales/ja-JP/labs.json +4 -0
  94. package/locales/ja-JP/models.json +15 -6
  95. package/locales/ja-JP/oauth.json +1 -0
  96. package/locales/ko-KR/labs.json +4 -0
  97. package/locales/ko-KR/models.json +21 -12
  98. package/locales/ko-KR/oauth.json +1 -0
  99. package/locales/nl-NL/labs.json +4 -0
  100. package/locales/nl-NL/models.json +15 -6
  101. package/locales/nl-NL/oauth.json +1 -0
  102. package/locales/pl-PL/labs.json +4 -0
  103. package/locales/pl-PL/models.json +15 -6
  104. package/locales/pl-PL/oauth.json +1 -0
  105. package/locales/pt-BR/labs.json +4 -0
  106. package/locales/pt-BR/models.json +15 -6
  107. package/locales/pt-BR/oauth.json +1 -0
  108. package/locales/ru-RU/labs.json +4 -0
  109. package/locales/ru-RU/models.json +15 -6
  110. package/locales/ru-RU/oauth.json +1 -0
  111. package/locales/tr-TR/labs.json +4 -0
  112. package/locales/tr-TR/models.json +15 -6
  113. package/locales/tr-TR/oauth.json +1 -0
  114. package/locales/vi-VN/labs.json +4 -0
  115. package/locales/vi-VN/models.json +15 -6
  116. package/locales/vi-VN/oauth.json +1 -0
  117. package/locales/zh-CN/labs.json +4 -0
  118. package/locales/zh-CN/models.json +15 -6
  119. package/locales/zh-CN/oauth.json +1 -0
  120. package/locales/zh-TW/labs.json +4 -0
  121. package/locales/zh-TW/models.json +15 -6
  122. package/locales/zh-TW/oauth.json +1 -0
  123. package/next.config.ts +2 -3
  124. package/package.json +74 -80
  125. package/packages/const/src/index.ts +0 -1
  126. package/packages/const/src/url.ts +1 -4
  127. package/packages/const/src/user.ts +5 -2
  128. package/packages/const/src/version.ts +3 -3
  129. package/packages/context-engine/src/index.ts +1 -6
  130. package/packages/context-engine/src/processors/GroupMessageFlatten.ts +12 -2
  131. package/packages/context-engine/src/processors/__tests__/GroupMessageFlatten.test.ts +73 -9
  132. package/packages/context-engine/src/providers/index.ts +0 -2
  133. package/packages/database/migrations/0041_improve_index.sql +10 -0
  134. package/packages/database/migrations/0042_improve_agent_index.sql +1 -0
  135. package/packages/database/migrations/0043_add_ai_model_settings.sql +1 -0
  136. package/packages/database/migrations/meta/0041_snapshot.json +7784 -0
  137. package/packages/database/migrations/meta/0042_snapshot.json +7800 -0
  138. package/packages/database/migrations/meta/0043_snapshot.json +8419 -0
  139. package/packages/database/migrations/meta/_journal.json +21 -0
  140. package/packages/database/package.json +2 -2
  141. package/packages/database/src/core/migrations.json +33 -0
  142. package/packages/database/src/core/web-server.ts +2 -1
  143. package/packages/database/src/models/__tests__/message.grouping.test.ts +812 -0
  144. package/packages/database/src/models/__tests__/message.test.ts +256 -233
  145. package/packages/database/src/models/agent.ts +16 -13
  146. package/packages/database/src/models/message.ts +90 -74
  147. package/packages/database/src/models/session.ts +80 -28
  148. package/packages/database/src/models/user.ts +2 -1
  149. package/packages/database/src/repositories/aiInfra/index.test.ts +198 -0
  150. package/packages/database/src/repositories/aiInfra/index.ts +2 -1
  151. package/packages/database/src/repositories/dataImporter/deprecated/__tests__/index.test.ts +2 -1
  152. package/packages/database/src/repositories/dataImporter/deprecated/index.ts +7 -1
  153. package/packages/database/src/schemas/agent.ts +13 -11
  154. package/packages/database/src/schemas/aiInfra.ts +2 -0
  155. package/packages/database/src/schemas/message.ts +5 -1
  156. package/packages/database/src/schemas/relations.ts +6 -4
  157. package/packages/database/src/schemas/session.ts +2 -0
  158. package/packages/database/src/schemas/topic.ts +6 -1
  159. package/packages/database/src/utils/__tests__/groupMessages.test.ts +145 -2
  160. package/packages/database/src/utils/groupMessages.ts +7 -5
  161. package/packages/electron-client-ipc/package.json +4 -1
  162. package/packages/file-loaders/package.json +1 -0
  163. package/packages/memory-extract/package.json +2 -2
  164. package/packages/model-bank/src/aiModels/anthropic.ts +0 -63
  165. package/packages/model-bank/src/aiModels/higress.ts +0 -55
  166. package/packages/model-bank/src/aiModels/infiniai.ts +21 -0
  167. package/packages/model-bank/src/aiModels/ollamacloud.ts +13 -0
  168. package/packages/model-bank/src/aiModels/siliconcloud.ts +19 -0
  169. package/packages/model-runtime/src/core/streams/openai/__snapshots__/responsesStream.test.ts.snap +0 -38
  170. package/packages/model-runtime/src/providers/minimax/index.ts +5 -5
  171. package/packages/model-runtime/src/providers/search1api/index.test.ts +2 -2
  172. package/packages/model-runtime/src/utils/googleErrorParser.test.ts +125 -0
  173. package/packages/model-runtime/src/utils/googleErrorParser.ts +103 -77
  174. package/packages/types/src/discover/mcp.ts +6 -0
  175. package/packages/types/src/index.ts +0 -1
  176. package/packages/types/src/message/common/base.ts +13 -0
  177. package/packages/types/src/message/common/image.ts +8 -0
  178. package/packages/types/src/message/common/metadata.ts +39 -0
  179. package/packages/types/src/message/common/tools.ts +10 -0
  180. package/packages/types/src/message/db/params.ts +47 -1
  181. package/packages/types/src/message/ui/chat.ts +4 -1
  182. package/packages/types/src/message/ui/params.ts +49 -4
  183. package/packages/types/src/plugins/mcp.ts +4 -1
  184. package/packages/types/src/search.ts +16 -0
  185. package/packages/types/src/serverConfig.ts +2 -6
  186. package/packages/types/src/topic/topic.ts +14 -0
  187. package/packages/types/src/user/index.ts +2 -76
  188. package/packages/types/src/user/preference.ts +105 -0
  189. package/packages/types/src/user/settings/index.ts +22 -0
  190. package/packages/utils/src/apiKey.test.ts +139 -0
  191. package/packages/utils/src/client/clipboard.ts +2 -2
  192. package/packages/utils/src/client/exportFile.ts +10 -10
  193. package/packages/utils/src/client/parserPlaceholder.ts +18 -18
  194. package/packages/utils/src/client/topic.ts +10 -10
  195. package/packages/utils/src/client/xor-obfuscation.ts +11 -11
  196. package/packages/utils/src/server/auth.ts +6 -6
  197. package/packages/utils/src/server/geo.ts +9 -9
  198. package/packages/utils/src/server/xor.ts +7 -7
  199. package/packages/web-crawler/src/crawImpl/firecrawl.ts +39 -12
  200. package/packages/web-crawler/tsconfig.json +0 -1
  201. package/renovate.json +23 -1
  202. package/scripts/migrateServerDB/errorHint.js +1 -7
  203. package/scripts/migrateServerDB/index.ts +2 -1
  204. package/src/app/(backend)/webapi/revalidate/route.ts +1 -1
  205. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  206. package/src/app/[variants]/(main)/(mobile)/me/(home)/__tests__/useCategory.test.tsx +9 -0
  207. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  208. package/src/app/[variants]/(main)/(mobile)/me/(home)/layout.tsx +0 -2
  209. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/TopActions.tsx +1 -4
  210. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/index.tsx +2 -2
  211. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/V1Mobile/useSend.ts +6 -4
  212. package/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/useSend.ts +15 -10
  213. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/Actions.tsx +3 -28
  214. package/src/app/[variants]/(main)/chat/@session/features/SessionListContent/List/Item/index.tsx +4 -2
  215. package/src/app/[variants]/(main)/chat/_layout/Desktop/index.tsx +0 -2
  216. package/src/app/[variants]/(main)/chat/_layout/Mobile.tsx +1 -5
  217. package/src/app/[variants]/(main)/chat/settings/features/HeaderContent.tsx +2 -62
  218. package/src/app/[variants]/(main)/discover/(list)/features/Pagination.tsx +1 -0
  219. package/src/app/[variants]/(main)/discover/(list)/features/SortButton/index.tsx +1 -1
  220. package/src/app/[variants]/(main)/discover/(list)/mcp/features/List/Item.tsx +1 -0
  221. package/src/app/[variants]/(main)/discover/(list)/model/features/List/Item.tsx +1 -0
  222. package/src/app/[variants]/(main)/discover/(list)/provider/features/List/Item.tsx +1 -0
  223. package/src/app/[variants]/(main)/discover/components/CategoryMenu.tsx +9 -1
  224. package/src/app/[variants]/(main)/image/@topic/features/Topics/TopicList.tsx +1 -0
  225. package/src/app/[variants]/(main)/image/features/PromptInput/index.tsx +1 -1
  226. package/src/app/[variants]/(main)/image/page.tsx +0 -2
  227. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +8 -6
  228. package/src/app/[variants]/(main)/labs/page.tsx +19 -22
  229. package/src/app/[variants]/(main)/profile/_layout/Desktop/index.tsx +23 -24
  230. package/src/app/[variants]/(main)/profile/_layout/Mobile/index.tsx +5 -9
  231. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +0 -2
  232. package/src/app/[variants]/(main)/settings/_layout/Mobile/index.tsx +0 -2
  233. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +1 -1
  234. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +6 -8
  235. package/src/app/[variants]/(main)/settings/provider/detail/azureai/index.tsx +1 -1
  236. package/src/app/[variants]/(main)/settings/provider/detail/bedrock/index.tsx +1 -1
  237. package/src/app/[variants]/(main)/settings/provider/detail/cloudflare/index.tsx +1 -1
  238. package/src/app/[variants]/(main)/settings/provider/detail/comfyui/index.tsx +1 -1
  239. package/src/app/[variants]/(main)/settings/provider/detail/github/index.tsx +1 -1
  240. package/src/app/[variants]/(main)/settings/provider/detail/vertexai/index.tsx +1 -1
  241. package/src/app/[variants]/(main)/settings/provider/features/ProviderConfig/index.tsx +2 -4
  242. package/src/app/[variants]/layout.tsx +1 -0
  243. package/src/app/[variants]/loading/index.tsx +1 -10
  244. package/src/app/[variants]/oauth/ResultLayout.tsx +47 -0
  245. package/src/app/[variants]/oauth/callback/error/page.tsx +20 -33
  246. package/src/app/[variants]/oauth/callback/layout.tsx +1 -0
  247. package/src/app/[variants]/oauth/callback/success/page.tsx +8 -22
  248. package/src/app/[variants]/oauth/consent/[uid]/Consent/BuiltinConsent.tsx +47 -0
  249. package/src/app/[variants]/oauth/consent/[uid]/{Consent.tsx → Consent/index.tsx} +12 -1
  250. package/src/app/[variants]/oauth/consent/[uid]/Login.tsx +19 -2
  251. package/src/app/sitemap.tsx +7 -1
  252. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  253. package/src/components/Link.tsx +12 -0
  254. package/src/components/Skeleton/SkeletonSwitch.tsx +13 -0
  255. package/src/components/Skeleton/index.ts +2 -0
  256. package/src/components/Thinking/index.tsx +4 -3
  257. package/src/config/db.ts +0 -5
  258. package/src/config/featureFlags/schema.test.ts +0 -2
  259. package/src/config/featureFlags/schema.ts +0 -6
  260. package/src/config/modelProviders/ai21.ts +1 -16
  261. package/src/config/modelProviders/ai302.ts +1 -128
  262. package/src/config/modelProviders/ai360.ts +1 -32
  263. package/src/config/modelProviders/anthropic.ts +1 -94
  264. package/src/config/modelProviders/azure.ts +1 -51
  265. package/src/config/modelProviders/baichuan.ts +1 -57
  266. package/src/config/modelProviders/bedrock.ts +1 -276
  267. package/src/config/modelProviders/cloudflare.ts +1 -64
  268. package/src/config/modelProviders/deepseek.ts +1 -19
  269. package/src/config/modelProviders/fireworksai.ts +1 -174
  270. package/src/config/modelProviders/giteeai.ts +1 -135
  271. package/src/config/modelProviders/github.ts +1 -254
  272. package/src/config/modelProviders/google.ts +1 -130
  273. package/src/config/modelProviders/groq.ts +1 -119
  274. package/src/config/modelProviders/higress.ts +1 -1736
  275. package/src/config/modelProviders/huggingface.ts +1 -54
  276. package/src/config/modelProviders/hunyuan.ts +1 -83
  277. package/src/config/modelProviders/infiniai.ts +1 -74
  278. package/src/config/modelProviders/internlm.ts +1 -20
  279. package/src/config/modelProviders/minimax.ts +1 -1
  280. package/src/config/modelProviders/mistral.ts +1 -95
  281. package/src/config/modelProviders/modelscope.ts +1 -27
  282. package/src/config/modelProviders/moonshot.ts +1 -29
  283. package/src/config/modelProviders/novita.ts +1 -105
  284. package/src/config/modelProviders/ollama.ts +1 -325
  285. package/src/config/modelProviders/openai.ts +1 -242
  286. package/src/config/modelProviders/openrouter.ts +1 -240
  287. package/src/config/modelProviders/perplexity.ts +1 -45
  288. package/src/config/modelProviders/ppio.ts +1 -152
  289. package/src/config/modelProviders/qiniu.ts +2 -19
  290. package/src/config/modelProviders/qwen.ts +1 -245
  291. package/src/config/modelProviders/search1api.ts +1 -34
  292. package/src/config/modelProviders/sensenova.ts +1 -69
  293. package/src/config/modelProviders/siliconcloud.ts +1 -417
  294. package/src/config/modelProviders/spark.ts +1 -59
  295. package/src/config/modelProviders/stepfun.ts +1 -98
  296. package/src/config/modelProviders/taichu.ts +1 -18
  297. package/src/config/modelProviders/togetherai.ts +1 -274
  298. package/src/config/modelProviders/upstage.ts +1 -28
  299. package/src/config/modelProviders/wenxin.ts +1 -140
  300. package/src/config/modelProviders/xai.ts +1 -38
  301. package/src/config/modelProviders/zeroone.ts +1 -81
  302. package/src/config/modelProviders/zhipu.ts +1 -108
  303. package/src/envs/app.ts +5 -8
  304. package/src/envs/auth.ts +0 -179
  305. package/src/features/AgentSetting/AgentPlugin/index.tsx +2 -2
  306. package/src/features/ChatInput/ActionBar/STT/browser.tsx +2 -2
  307. package/src/features/ChatInput/ActionBar/STT/openai.tsx +2 -2
  308. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +1 -3
  309. package/src/features/ChatInput/ActionBar/index.tsx +2 -2
  310. package/src/features/ChatInput/InputEditor/index.tsx +2 -2
  311. package/src/features/Conversation/Error/ErrorJsonViewer.tsx +4 -3
  312. package/src/features/Conversation/Error/OllamaBizError/index.tsx +7 -2
  313. package/src/features/Conversation/Error/index.tsx +15 -5
  314. package/src/features/Conversation/MarkdownElements/LobeArtifact/Render/index.tsx +2 -2
  315. package/src/features/Conversation/Messages/Assistant/Extra/index.tsx +2 -2
  316. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +5 -3
  317. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/BuiltinPluginTitle.tsx +2 -2
  318. package/src/features/Conversation/Messages/Assistant/Tool/Inspector/ToolTitle.tsx +4 -2
  319. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  320. package/src/features/Conversation/Messages/Assistant/Tool/Render/index.tsx +2 -2
  321. package/src/features/Conversation/Messages/Assistant/Tool/index.tsx +2 -2
  322. package/src/features/Conversation/Messages/Assistant/index.tsx +4 -4
  323. package/src/features/Conversation/Messages/Default.tsx +2 -2
  324. package/src/features/Conversation/Messages/Group/Actions/WithContentId.tsx +152 -0
  325. package/src/features/Conversation/Messages/Group/Actions/WithoutContentId.tsx +70 -0
  326. package/src/features/Conversation/Messages/Group/Actions/index.tsx +21 -0
  327. package/src/features/Conversation/Messages/Group/ContentBlock.tsx +91 -0
  328. package/src/features/Conversation/Messages/Group/EditState.tsx +51 -0
  329. package/src/features/Conversation/Messages/Group/Error/index.tsx +53 -0
  330. package/src/features/Conversation/Messages/Group/GroupChildren.tsx +73 -0
  331. package/src/features/Conversation/Messages/Group/MessageContent.tsx +39 -0
  332. package/src/features/Conversation/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +49 -0
  333. package/src/features/Conversation/Messages/Group/Tool/Inspector/Debug.tsx +70 -0
  334. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginResult.tsx +34 -0
  335. package/src/features/Conversation/Messages/Group/Tool/Inspector/PluginState.tsx +18 -0
  336. package/src/features/Conversation/Messages/Group/Tool/Inspector/Settings.tsx +40 -0
  337. package/src/features/Conversation/Messages/Group/Tool/Inspector/ToolTitle.tsx +92 -0
  338. package/src/features/Conversation/Messages/Group/Tool/Inspector/index.tsx +176 -0
  339. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +81 -0
  340. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +43 -0
  341. package/src/features/Conversation/Messages/Group/Tool/Render/Arguments/index.tsx +134 -0
  342. package/src/features/Conversation/Messages/Group/Tool/Render/CustomRender.tsx +88 -0
  343. package/src/features/Conversation/Messages/Group/Tool/Render/ErrorResponse.tsx +35 -0
  344. package/src/features/Conversation/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +29 -0
  345. package/src/features/Conversation/Messages/Group/Tool/Render/PluginSettings.tsx +66 -0
  346. package/src/features/Conversation/Messages/Group/Tool/Render/index.tsx +105 -0
  347. package/src/features/Conversation/Messages/Group/Tool/index.tsx +75 -0
  348. package/src/features/Conversation/Messages/Group/Tools.tsx +46 -0
  349. package/src/features/Conversation/Messages/Group/index.tsx +140 -0
  350. package/src/features/Conversation/Messages/User/Extra.tsx +2 -2
  351. package/src/features/Conversation/Messages/User/index.tsx +4 -4
  352. package/src/features/Conversation/Messages/index.tsx +15 -3
  353. package/src/features/Conversation/components/AutoScroll.tsx +2 -2
  354. package/src/features/Conversation/components/Extras/Usage/UsageDetail/index.tsx +9 -6
  355. package/src/features/Conversation/components/ShareMessageModal/ShareImage/Preview.tsx +2 -2
  356. package/src/features/DataImporter/index.tsx +15 -60
  357. package/src/features/DevPanel/PostgresViewer/usePgTable.ts +3 -2
  358. package/src/features/MCP/utils.test.ts +91 -0
  359. package/src/features/MCP/utils.ts +20 -2
  360. package/src/features/PluginStore/Content.tsx +2 -3
  361. package/src/features/PluginStore/McpList/index.tsx +6 -2
  362. package/src/features/PluginTag/index.tsx +1 -3
  363. package/src/features/PluginsUI/Render/BuiltinType/index.test.tsx +37 -28
  364. package/src/features/Portal/Artifacts/Body/index.tsx +2 -2
  365. package/src/helpers/isCanUseFC.ts +0 -8
  366. package/src/hooks/useEnabledChatModels.ts +0 -8
  367. package/src/hooks/useInterceptingRoutes.test.ts +21 -3
  368. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  369. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  370. package/src/hooks/useModelSupportFiles.ts +1 -11
  371. package/src/hooks/useModelSupportReasoning.ts +1 -11
  372. package/src/hooks/useModelSupportToolUse.ts +1 -11
  373. package/src/hooks/useModelSupportVision.ts +1 -11
  374. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  375. package/src/libs/next-auth/auth.config.ts +3 -6
  376. package/src/libs/next-auth/sso-providers/auth0.ts +0 -7
  377. package/src/libs/next-auth/sso-providers/authelia.ts +3 -5
  378. package/src/libs/next-auth/sso-providers/authentik.ts +0 -7
  379. package/src/libs/next-auth/sso-providers/cloudflare-zero-trust.ts +3 -6
  380. package/src/libs/next-auth/sso-providers/cognito.ts +1 -5
  381. package/src/libs/next-auth/sso-providers/generic-oidc.ts +3 -5
  382. package/src/libs/next-auth/sso-providers/github.ts +0 -6
  383. package/src/libs/next-auth/sso-providers/google.ts +0 -2
  384. package/src/libs/next-auth/sso-providers/index.ts +0 -2
  385. package/src/libs/next-auth/sso-providers/keycloak.ts +0 -3
  386. package/src/libs/next-auth/sso-providers/logto.ts +3 -5
  387. package/src/libs/next-auth/sso-providers/okta.ts +0 -4
  388. package/src/libs/next-auth/sso-providers/zitadel.ts +0 -7
  389. package/src/libs/oidc-provider/provider.ts +1 -1
  390. package/src/libs/trpc/client/index.ts +0 -1
  391. package/src/libs/trpc/client/lambda.ts +8 -5
  392. package/src/libs/trpc/lambda/context.ts +4 -1
  393. package/src/locales/default/labs.ts +4 -0
  394. package/src/locales/default/oauth.ts +1 -0
  395. package/src/server/globalConfig/index.ts +0 -23
  396. package/src/server/modules/AssistantStore/index.ts +1 -1
  397. package/src/server/modules/ModelRuntime/trace.ts +11 -4
  398. package/src/server/routers/desktop/mcp.ts +1 -3
  399. package/src/server/routers/lambda/__tests__/integration/message.integration.test.ts +810 -70
  400. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  401. package/src/server/routers/lambda/config/index.test.ts +38 -30
  402. package/src/server/routers/lambda/market/index.ts +4 -2
  403. package/src/server/routers/lambda/message.ts +60 -52
  404. package/src/server/routers/lambda/session.ts +8 -5
  405. package/src/server/routers/lambda/topic.ts +7 -1
  406. package/src/server/routers/lambda/user.ts +32 -31
  407. package/src/server/routers/tools/mcp.ts +2 -3
  408. package/src/server/routers/tools/search.test.ts +1 -7
  409. package/src/server/routers/tools/search.ts +1 -4
  410. package/src/server/services/mcp/deps/MCPSystemDepsCheckService.test.ts +541 -0
  411. package/src/server/services/message/__tests__/index.test.ts +348 -0
  412. package/src/server/services/message/index.ts +159 -0
  413. package/src/server/services/search/impls/firecrawl/index.ts +51 -11
  414. package/src/server/services/search/impls/firecrawl/type.ts +60 -9
  415. package/src/services/__tests__/tool.test.ts +0 -3
  416. package/src/services/aiModel/index.test.ts +3 -6
  417. package/src/services/aiModel/index.ts +55 -7
  418. package/src/services/aiProvider/index.test.ts +2 -5
  419. package/src/services/aiProvider/index.ts +47 -7
  420. package/src/services/chat/chat.test.ts +13 -40
  421. package/src/services/chat/contextEngineering.test.ts +0 -30
  422. package/src/services/chat/contextEngineering.ts +7 -17
  423. package/src/services/chat/helper.ts +7 -31
  424. package/src/services/chat/index.ts +5 -10
  425. package/src/services/chat/types.ts +1 -1
  426. package/src/services/chatGroup/index.ts +64 -9
  427. package/src/services/config.ts +1 -65
  428. package/src/services/export/index.ts +9 -4
  429. package/src/services/file/index.ts +59 -10
  430. package/src/services/import/index.ts +132 -7
  431. package/src/services/mcp.test.ts +777 -0
  432. package/src/services/mcp.ts +40 -6
  433. package/src/services/message/index.ts +203 -10
  434. package/src/services/message/{__tests__/server.test.ts → server.test.ts} +3 -3
  435. package/src/services/models.ts +2 -11
  436. package/src/services/plugin/index.test.ts +8 -0
  437. package/src/services/plugin/index.ts +51 -10
  438. package/src/services/session/index.test.ts +8 -0
  439. package/src/services/session/index.ts +143 -10
  440. package/src/services/tableViewer/client.ts +12 -15
  441. package/src/services/thread/index.test.ts +8 -0
  442. package/src/services/thread/index.ts +37 -7
  443. package/src/services/topic/index.test.ts +8 -0
  444. package/src/services/topic/index.ts +74 -10
  445. package/src/services/user/index.test.ts +8 -0
  446. package/src/services/user/index.ts +50 -11
  447. package/src/store/aiInfra/slices/aiModel/action.test.ts +17 -9
  448. package/src/store/chat/helpers.test.ts +99 -0
  449. package/src/store/chat/helpers.ts +21 -2
  450. package/src/store/chat/selectors.ts +1 -1
  451. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChat.test.ts +17 -251
  452. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +339 -7
  453. package/src/store/chat/slices/aiChat/actions/__tests__/helpers.ts +9 -5
  454. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +49 -178
  455. package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +272 -14
  456. package/src/store/chat/slices/aiChat/actions/generateAIGroupChat.ts +7 -2
  457. package/src/store/chat/slices/builtinTool/actions/index.ts +1 -4
  458. package/src/store/chat/slices/builtinTool/actions/search.ts +3 -3
  459. package/src/store/chat/slices/message/action.test.ts +157 -16
  460. package/src/store/chat/slices/message/action.ts +153 -77
  461. package/src/store/chat/slices/message/reducer.test.ts +363 -5
  462. package/src/store/chat/slices/message/reducer.ts +87 -3
  463. package/src/store/chat/slices/message/{selectors.test.ts → selectors/chat.test.ts} +266 -30
  464. package/src/store/chat/slices/message/{selectors.ts → selectors/chat.ts} +29 -79
  465. package/src/store/chat/slices/message/selectors/index.ts +2 -0
  466. package/src/store/chat/slices/message/selectors/messageState.test.ts +36 -0
  467. package/src/store/chat/slices/message/selectors/messageState.ts +80 -0
  468. package/src/store/chat/slices/plugin/action.test.ts +118 -157
  469. package/src/store/chat/slices/plugin/action.ts +53 -68
  470. package/src/store/chat/slices/thread/action.test.ts +13 -4
  471. package/src/store/chat/slices/thread/action.ts +3 -1
  472. package/src/store/chat/slices/topic/action.test.ts +1 -1
  473. package/src/store/chat/slices/topic/action.ts +1 -2
  474. package/src/store/chat/slices/topic/reducer.ts +1 -2
  475. package/src/store/file/slices/chat/action.ts +1 -4
  476. package/src/store/file/slices/fileManager/action.ts +2 -3
  477. package/src/store/global/store.ts +1 -7
  478. package/src/store/session/slices/sessionGroup/action.test.ts +5 -5
  479. package/src/store/tool/selectors/tool.test.ts +1 -1
  480. package/src/store/tool/selectors/tool.ts +6 -8
  481. package/src/store/tool/slices/builtin/action.test.ts +83 -35
  482. package/src/store/tool/slices/builtin/action.ts +0 -9
  483. package/src/store/tool/slices/builtin/selectors.test.ts +4 -30
  484. package/src/store/tool/slices/builtin/selectors.ts +15 -21
  485. package/src/store/tool/slices/mcpStore/action.test.ts +95 -3
  486. package/src/store/tool/slices/mcpStore/action.ts +177 -53
  487. package/src/store/tool/slices/oldStore/initialState.ts +1 -2
  488. package/src/store/user/initialState.ts +1 -7
  489. package/src/store/user/selectors.ts +1 -5
  490. package/src/store/user/slices/common/action.test.ts +1 -4
  491. package/src/store/user/slices/common/action.ts +5 -4
  492. package/src/store/user/slices/preference/action.ts +8 -1
  493. package/src/store/user/slices/preference/selectors/index.ts +2 -0
  494. package/src/store/user/slices/preference/selectors/labPrefer.ts +13 -0
  495. package/src/store/user/slices/preference/{selectors.ts → selectors/preference.ts} +0 -2
  496. package/src/store/user/slices/settings/selectors/index.ts +1 -0
  497. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  498. package/src/store/user/store.ts +0 -3
  499. package/src/tools/index.ts +0 -6
  500. package/src/tools/renders.ts +0 -3
  501. package/src/tools/web-browsing/Portal/Search/Footer.tsx +2 -2
  502. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  503. package/tsconfig.json +9 -3
  504. package/packages/const/src/guide.ts +0 -89
  505. package/packages/context-engine/src/providers/InboxGuide.ts +0 -102
  506. package/packages/context-engine/src/providers/__tests__/InboxGuideProvider.test.ts +0 -121
  507. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  508. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  509. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  510. package/src/app/(backend)/trpc/edge/[trpc]/route.ts +0 -26
  511. package/src/app/[variants]/(main)/(mobile)/me/data/features/Category.tsx +0 -48
  512. package/src/app/[variants]/(main)/(mobile)/me/data/features/Header.tsx +0 -33
  513. package/src/app/[variants]/(main)/(mobile)/me/data/layout.tsx +0 -13
  514. package/src/app/[variants]/(main)/(mobile)/me/data/loading.tsx +0 -5
  515. package/src/app/[variants]/(main)/(mobile)/me/data/page.tsx +0 -29
  516. package/src/app/[variants]/(main)/chat/features/Migration/DBReader.ts +0 -290
  517. package/src/app/[variants]/(main)/chat/features/Migration/ExportConfigButton.tsx +0 -35
  518. package/src/app/[variants]/(main)/chat/features/Migration/Failed.tsx +0 -120
  519. package/src/app/[variants]/(main)/chat/features/Migration/Modal.tsx +0 -81
  520. package/src/app/[variants]/(main)/chat/features/Migration/Start.tsx +0 -108
  521. package/src/app/[variants]/(main)/chat/features/Migration/UpgradeButton.tsx +0 -71
  522. package/src/app/[variants]/(main)/chat/features/Migration/const.ts +0 -15
  523. package/src/app/[variants]/(main)/chat/features/Migration/index.tsx +0 -50
  524. package/src/app/[variants]/loading/Client/Content.tsx +0 -48
  525. package/src/app/[variants]/loading/Client/Error.tsx +0 -27
  526. package/src/app/[variants]/loading/Client/Redirect.tsx +0 -47
  527. package/src/app/[variants]/loading/Client/index.tsx +0 -22
  528. package/src/components/InnerLink.tsx +0 -20
  529. package/src/database/_deprecated/core/__tests__/db-upgrade.test.ts +0 -42
  530. package/src/database/_deprecated/core/__tests__/db.test.ts +0 -79
  531. package/src/database/_deprecated/core/__tests__/model.test.ts +0 -55
  532. package/src/database/_deprecated/core/db.ts +0 -246
  533. package/src/database/_deprecated/core/index.ts +0 -2
  534. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/input.json +0 -55
  535. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/fixtures/output.json +0 -60
  536. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.test.ts +0 -14
  537. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/index.ts +0 -22
  538. package/src/database/_deprecated/core/migrations/migrateSettingsToUser/type.ts +0 -105
  539. package/src/database/_deprecated/core/model.ts +0 -218
  540. package/src/database/_deprecated/core/schemas.ts +0 -88
  541. package/src/database/_deprecated/core/types/db.ts +0 -15
  542. package/src/database/_deprecated/models/__DEBUG.ts +0 -124
  543. package/src/database/_deprecated/models/__tests__/file.test.ts +0 -83
  544. package/src/database/_deprecated/models/__tests__/message.test.ts +0 -426
  545. package/src/database/_deprecated/models/__tests__/plugin.test.ts +0 -81
  546. package/src/database/_deprecated/models/__tests__/session.test.ts +0 -253
  547. package/src/database/_deprecated/models/__tests__/sessionGroup.test.ts +0 -220
  548. package/src/database/_deprecated/models/__tests__/topic.test.ts +0 -523
  549. package/src/database/_deprecated/models/__tests__/user.test.ts +0 -82
  550. package/src/database/_deprecated/models/file.ts +0 -51
  551. package/src/database/_deprecated/models/message.ts +0 -277
  552. package/src/database/_deprecated/models/plugin.ts +0 -62
  553. package/src/database/_deprecated/models/session.ts +0 -271
  554. package/src/database/_deprecated/models/sessionGroup.ts +0 -93
  555. package/src/database/_deprecated/models/topic.ts +0 -250
  556. package/src/database/_deprecated/models/user.ts +0 -69
  557. package/src/database/_deprecated/schemas/files.ts +0 -39
  558. package/src/database/_deprecated/schemas/message.ts +0 -50
  559. package/src/database/_deprecated/schemas/plugin.ts +0 -12
  560. package/src/database/_deprecated/schemas/session.ts +0 -54
  561. package/src/database/_deprecated/schemas/sessionGroup.ts +0 -8
  562. package/src/database/_deprecated/schemas/topic.ts +0 -12
  563. package/src/database/_deprecated/schemas/user.ts +0 -40
  564. package/src/envs/__tests__/auth.test.ts +0 -200
  565. package/src/features/DataImporter/_deprecated.ts +0 -43
  566. package/src/features/InitClientDB/EnableModal.tsx +0 -118
  567. package/src/features/InitClientDB/ErrorResult.tsx +0 -143
  568. package/src/features/InitClientDB/InitIndicator.tsx +0 -124
  569. package/src/features/InitClientDB/PGliteIcon.tsx +0 -28
  570. package/src/features/InitClientDB/features/DatabaseRepair/Backup.tsx +0 -75
  571. package/src/features/InitClientDB/features/DatabaseRepair/Diagnosis.tsx +0 -98
  572. package/src/features/InitClientDB/features/DatabaseRepair/Repair.tsx +0 -218
  573. package/src/features/InitClientDB/features/DatabaseRepair/index.tsx +0 -91
  574. package/src/features/InitClientDB/index.tsx +0 -37
  575. package/src/hooks/_header.ts +0 -23
  576. package/src/libs/next-auth/sso-providers/azure-ad.ts +0 -33
  577. package/src/libs/trpc/client/edge.ts +0 -26
  578. package/src/libs/trpc/edge/context.ts +0 -71
  579. package/src/libs/trpc/edge/index.ts +0 -45
  580. package/src/libs/trpc/edge/init.ts +0 -26
  581. package/src/libs/trpc/edge/middleware/jwtPayload.test.ts +0 -75
  582. package/src/libs/trpc/edge/middleware/jwtPayload.ts +0 -14
  583. package/src/migrations/FromV0ToV1.ts +0 -10
  584. package/src/migrations/FromV1ToV2/fixtures/input-v1-session.json +0 -191
  585. package/src/migrations/FromV1ToV2/fixtures/output-v2.json +0 -202
  586. package/src/migrations/FromV1ToV2/index.ts +0 -82
  587. package/src/migrations/FromV1ToV2/migrations.test.ts +0 -224
  588. package/src/migrations/FromV1ToV2/types/v1.ts +0 -78
  589. package/src/migrations/FromV1ToV2/types/v2.ts +0 -52
  590. package/src/migrations/FromV2ToV3/fixtures/input-v2-session.json +0 -72
  591. package/src/migrations/FromV2ToV3/fixtures/output-v3-from-v1.json +0 -203
  592. package/src/migrations/FromV2ToV3/fixtures/output-v3.json +0 -74
  593. package/src/migrations/FromV2ToV3/index.ts +0 -30
  594. package/src/migrations/FromV2ToV3/migrations.test.ts +0 -42
  595. package/src/migrations/FromV2ToV3/types/v3.ts +0 -27
  596. package/src/migrations/FromV3ToV4/fixtures/azure-input-v3.json +0 -79
  597. package/src/migrations/FromV3ToV4/fixtures/azure-output-v4.json +0 -75
  598. package/src/migrations/FromV3ToV4/fixtures/ollama-input-v3.json +0 -85
  599. package/src/migrations/FromV3ToV4/fixtures/ollama-output-v4.json +0 -86
  600. package/src/migrations/FromV3ToV4/fixtures/openai-input-v3.json +0 -77
  601. package/src/migrations/FromV3ToV4/fixtures/openai-output-v4.json +0 -77
  602. package/src/migrations/FromV3ToV4/fixtures/openrouter-input-v3.json +0 -82
  603. package/src/migrations/FromV3ToV4/fixtures/openrouter-output-v4.json +0 -85
  604. package/src/migrations/FromV3ToV4/fixtures/output-v4-from-v1.json +0 -203
  605. package/src/migrations/FromV3ToV4/index.ts +0 -102
  606. package/src/migrations/FromV3ToV4/migrations.test.ts +0 -195
  607. package/src/migrations/FromV3ToV4/types/v3.ts +0 -52
  608. package/src/migrations/FromV3ToV4/types/v4.ts +0 -37
  609. package/src/migrations/FromV4ToV5/fixtures/from-v1-to-v5-output.json +0 -245
  610. package/src/migrations/FromV4ToV5/fixtures/function-input-v4.json +0 -96
  611. package/src/migrations/FromV4ToV5/fixtures/function-output-v5.json +0 -120
  612. package/src/migrations/FromV4ToV5/index.ts +0 -58
  613. package/src/migrations/FromV4ToV5/migrations.test.ts +0 -49
  614. package/src/migrations/FromV4ToV5/types/v4.ts +0 -21
  615. package/src/migrations/FromV4ToV5/types/v5.ts +0 -27
  616. package/src/migrations/FromV5ToV6/fixtures/from-v1-to-v6-output.json +0 -247
  617. package/src/migrations/FromV5ToV6/fixtures/session-input-v5.json +0 -81
  618. package/src/migrations/FromV5ToV6/fixtures/session-output-v6.json +0 -85
  619. package/src/migrations/FromV5ToV6/index.ts +0 -61
  620. package/src/migrations/FromV5ToV6/migrations.test.ts +0 -50
  621. package/src/migrations/FromV5ToV6/types/v5.ts +0 -48
  622. package/src/migrations/FromV5ToV6/types/v6.ts +0 -63
  623. package/src/migrations/FromV6ToV7/fixtures/output-v7-from-v1.json +0 -203
  624. package/src/migrations/FromV6ToV7/fixtures/provider-input-v6.json +0 -103
  625. package/src/migrations/FromV6ToV7/fixtures/provider-output-v7.json +0 -118
  626. package/src/migrations/FromV6ToV7/index.ts +0 -101
  627. package/src/migrations/FromV6ToV7/migrations.test.ts +0 -64
  628. package/src/migrations/FromV6ToV7/types/v6.ts +0 -61
  629. package/src/migrations/FromV6ToV7/types/v7.ts +0 -69
  630. package/src/migrations/VersionController.test.ts +0 -88
  631. package/src/migrations/VersionController.ts +0 -67
  632. package/src/migrations/index.ts +0 -61
  633. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  634. package/src/server/globalConfig/_deprecated.ts +0 -41
  635. package/src/server/routers/edge/appStatus.ts +0 -3
  636. package/src/server/routers/edge/index.ts +0 -14
  637. package/src/server/routers/edge/upload.ts +0 -16
  638. package/src/services/aiModel/client.ts +0 -70
  639. package/src/services/aiModel/server.test.ts +0 -122
  640. package/src/services/aiModel/server.ts +0 -51
  641. package/src/services/aiModel/type.ts +0 -32
  642. package/src/services/aiProvider/client.ts +0 -58
  643. package/src/services/aiProvider/server.ts +0 -43
  644. package/src/services/aiProvider/type.ts +0 -27
  645. package/src/services/baseClientService/index.ts +0 -9
  646. package/src/services/chat/__snapshots__/chat.test.ts.snap +0 -110
  647. package/src/services/chatGroup/client.ts +0 -63
  648. package/src/services/chatGroup/server.ts +0 -67
  649. package/src/services/chatGroup/type.ts +0 -22
  650. package/src/services/export/_deprecated.ts +0 -155
  651. package/src/services/export/client.ts +0 -15
  652. package/src/services/export/server.ts +0 -9
  653. package/src/services/export/type.ts +0 -5
  654. package/src/services/file/_deprecated.test.ts +0 -119
  655. package/src/services/file/_deprecated.ts +0 -80
  656. package/src/services/file/client.test.ts +0 -199
  657. package/src/services/file/client.ts +0 -85
  658. package/src/services/file/server.ts +0 -53
  659. package/src/services/file/type.ts +0 -13
  660. package/src/services/import/_deprecated.ts +0 -115
  661. package/src/services/import/client.test.ts +0 -1015
  662. package/src/services/import/client.ts +0 -64
  663. package/src/services/import/server.ts +0 -133
  664. package/src/services/import/type.ts +0 -17
  665. package/src/services/message/_deprecated.test.ts +0 -398
  666. package/src/services/message/_deprecated.ts +0 -168
  667. package/src/services/message/client.test.ts +0 -410
  668. package/src/services/message/client.ts +0 -186
  669. package/src/services/message/server.ts +0 -150
  670. package/src/services/message/type.ts +0 -54
  671. package/src/services/plugin/_deprecated.test.ts +0 -162
  672. package/src/services/plugin/_deprecated.ts +0 -42
  673. package/src/services/plugin/client.test.ts +0 -177
  674. package/src/services/plugin/client.ts +0 -46
  675. package/src/services/plugin/server.ts +0 -42
  676. package/src/services/plugin/type.ts +0 -23
  677. package/src/services/session/_deprecated.test.ts +0 -440
  678. package/src/services/session/_deprecated.ts +0 -190
  679. package/src/services/session/client.test.ts +0 -413
  680. package/src/services/session/client.ts +0 -193
  681. package/src/services/session/server.test.ts +0 -260
  682. package/src/services/session/server.ts +0 -125
  683. package/src/services/session/type.ts +0 -82
  684. package/src/services/thread/client.ts +0 -51
  685. package/src/services/thread/server.ts +0 -32
  686. package/src/services/thread/type.ts +0 -21
  687. package/src/services/topic/_deprecated.test.ts +0 -245
  688. package/src/services/topic/_deprecated.ts +0 -75
  689. package/src/services/topic/client.ts +0 -89
  690. package/src/services/topic/pglite.test.ts +0 -212
  691. package/src/services/topic/server.ts +0 -57
  692. package/src/services/topic/type.ts +0 -40
  693. package/src/services/user/_deprecated.test.ts +0 -101
  694. package/src/services/user/_deprecated.ts +0 -70
  695. package/src/services/user/client.test.ts +0 -108
  696. package/src/services/user/client.ts +0 -104
  697. package/src/services/user/server.test.ts +0 -149
  698. package/src/services/user/server.ts +0 -47
  699. package/src/services/user/type.ts +0 -21
  700. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +0 -121
  701. package/src/store/chat/slices/builtinTool/actions/dalle.ts +0 -124
  702. package/src/store/global/actions/clientDb.ts +0 -67
  703. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  704. package/src/store/user/slices/modelList/action.test.ts +0 -359
  705. package/src/store/user/slices/modelList/action.ts +0 -223
  706. package/src/store/user/slices/modelList/initialState.ts +0 -15
  707. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  708. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  709. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  710. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  711. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  712. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  713. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  714. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  715. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
  716. package/src/tools/dalle/Render/GalleyGrid.tsx +0 -60
  717. package/src/tools/dalle/Render/Item/EditMode.tsx +0 -66
  718. package/src/tools/dalle/Render/Item/Error.tsx +0 -49
  719. package/src/tools/dalle/Render/Item/Image.tsx +0 -44
  720. package/src/tools/dalle/Render/Item/ImageFileItem.tsx +0 -57
  721. package/src/tools/dalle/Render/Item/index.tsx +0 -88
  722. package/src/tools/dalle/Render/ToolBar.tsx +0 -56
  723. package/src/tools/dalle/Render/index.tsx +0 -52
  724. package/src/tools/dalle/index.ts +0 -92
  725. /package/src/{app/[variants]/(main)/settings/provider/features/ProviderConfig → components/Skeleton}/SkeletonInput.tsx +0 -0
  726. /package/src/{middleware.ts → proxy.ts} +0 -0
@@ -1,11 +1,17 @@
1
1
  /* eslint-disable sort-keys-fix/sort-keys-fix, typescript-sort-keys/interface */
2
2
  // Disable the auto sort key eslint rule to make the code more logic and readable
3
- import { DEFAULT_AGENT_CHAT_CONFIG, INBOX_SESSION_ID, isDesktop } from '@lobechat/const';
3
+ import {
4
+ DEFAULT_AGENT_CHAT_CONFIG,
5
+ INBOX_SESSION_ID,
6
+ LOADING_FLAT,
7
+ isDesktop,
8
+ } from '@lobechat/const';
4
9
  import { knowledgeBaseQAPrompts } from '@lobechat/prompts';
5
10
  import {
6
11
  ChatImageItem,
7
12
  ChatTopic,
8
13
  ChatVideoItem,
14
+ CreateNewMessageParams,
9
15
  MessageSemanticSearchChunk,
10
16
  SendMessageParams,
11
17
  SendMessageServerResponse,
@@ -13,8 +19,10 @@ import {
13
19
  UIChatMessage,
14
20
  } from '@lobechat/types';
15
21
  import { TRPCClientError } from '@trpc/client';
22
+ import debug from 'debug';
16
23
  import { t } from 'i18next';
17
24
  import { produce } from 'immer';
25
+ import pMap from 'p-map';
18
26
  import { StateCreator } from 'zustand/vanilla';
19
27
 
20
28
  import { aiChatService } from '@/services/aiChat';
@@ -30,21 +38,36 @@ import { getSessionStoreState } from '@/store/session';
30
38
  import { WebBrowsingManifest } from '@/tools/web-browsing';
31
39
  import { setNamespace } from '@/utils/storeDebug';
32
40
 
33
- import { chatSelectors, topicSelectors } from '../../../selectors';
41
+ import { chatSelectors, threadSelectors, topicSelectors } from '../../../selectors';
34
42
  import { messageMapKey } from '../../../utils/messageMapKey';
35
43
 
36
44
  const n = setNamespace('ai');
45
+ const log = debug('lobe-store:ai-chat-v2');
37
46
 
38
47
  export interface AIGenerateV2Action {
39
48
  /**
40
49
  * Sends a new message to the AI chat system
41
50
  */
42
- sendMessageInServer: (params: SendMessageParams) => Promise<void>;
51
+ sendMessage: (params: SendMessageParams) => Promise<void>;
43
52
  /**
44
- * Cancels sendMessageInServer operation for a specific topic/session
53
+ * Cancels sendMessage operation for a specific topic/session
45
54
  */
46
55
  cancelSendMessageInServer: (topicId?: string) => void;
47
56
  clearSendMessageError: () => void;
57
+ /**
58
+ */
59
+ triggerToolsCalling: (
60
+ id: string,
61
+ params?: { threadId?: string; inPortalThread?: boolean; inSearchWorkflow?: boolean },
62
+ ) => Promise<void>;
63
+ callToolFollowAssistantMessage: (params: {
64
+ parentId: string;
65
+ traceId?: string;
66
+ threadId?: string;
67
+ inPortalThread?: boolean;
68
+ inSearchWorkflow?: boolean;
69
+ }) => Promise<void>;
70
+
48
71
  internal_refreshAiChat: (params: {
49
72
  topics?: ChatTopic[];
50
73
  messages: UIChatMessage[];
@@ -57,7 +80,7 @@ export interface AIGenerateV2Action {
57
80
  */
58
81
  internal_execAgentRuntime: (params: {
59
82
  messages: UIChatMessage[];
60
- userMessageId: string;
83
+ userMessageId?: string;
61
84
  assistantMessageId: string;
62
85
  isWelcomeQuestion?: boolean;
63
86
  inSearchWorkflow?: boolean;
@@ -70,7 +93,7 @@ export interface AIGenerateV2Action {
70
93
  traceId?: string;
71
94
  }) => Promise<void>;
72
95
  /**
73
- * Toggle sendMessageInServer operation state
96
+ * Toggle sendMessage operation state
74
97
  */
75
98
  internal_toggleSendMessageOperation: (
76
99
  key: string | { sessionId: string; topicId?: string | null },
@@ -90,7 +113,7 @@ export const generateAIChatV2: StateCreator<
90
113
  [],
91
114
  AIGenerateV2Action
92
115
  > = (set, get) => ({
93
- sendMessageInServer: async ({ message, files, onlyAddUserMessage, isWelcomeQuestion }) => {
116
+ sendMessage: async ({ message, files, onlyAddUserMessage, isWelcomeQuestion }) => {
94
117
  const { activeTopicId, activeId, activeThreadId, internal_execAgentRuntime, mainInputEditor } =
95
118
  get();
96
119
  if (!activeId) return;
@@ -151,7 +174,7 @@ export const generateAIChatV2: StateCreator<
151
174
 
152
175
  const operationKey = messageMapKey(activeId, activeTopicId);
153
176
 
154
- // Start tracking sendMessageInServer operation with AbortController
177
+ // Start tracking sendMessage operation with AbortController
155
178
  const abortController = get().internal_toggleSendMessageOperation(operationKey, true)!;
156
179
 
157
180
  const jsonState = mainInputEditor?.getJSONState();
@@ -205,7 +228,7 @@ export const generateAIChatV2: StateCreator<
205
228
  }
206
229
  }
207
230
  } finally {
208
- // Stop tracking sendMessageInServer operation
231
+ // Stop tracking sendMessage operation
209
232
  get().internal_toggleSendMessageOperation(operationKey, false);
210
233
  }
211
234
 
@@ -290,7 +313,7 @@ export const generateAIChatV2: StateCreator<
290
313
  get().internal_toggleSendMessageOperation(
291
314
  operationKey,
292
315
  false,
293
- 'User cancelled sendMessageInServer operation',
316
+ 'User cancelled sendMessage operation',
294
317
  );
295
318
 
296
319
  // Only clear creating message state if it's the active session
@@ -325,9 +348,16 @@ export const generateAIChatV2: StateCreator<
325
348
  ragQuery,
326
349
  messages: originalMessages,
327
350
  } = params;
351
+
352
+ log(
353
+ '[internal_execAgentRuntime] start, assistantId: %s, messages count: %d',
354
+ assistantId,
355
+ originalMessages.length,
356
+ );
357
+
328
358
  const {
329
359
  internal_fetchAIChatMessage,
330
- triggerToolCalls,
360
+ triggerToolsCalling,
331
361
  refreshMessages,
332
362
  internal_updateMessageRAG,
333
363
  } = get();
@@ -338,11 +368,14 @@ export const generateAIChatV2: StateCreator<
338
368
  const agentStoreState = getAgentStoreState();
339
369
  const { model, provider, chatConfig } = agentSelectors.currentAgentConfig(agentStoreState);
340
370
 
371
+ log('[internal_execAgentRuntime] Agent config: model=%s, provider=%s', model, provider);
372
+
341
373
  let fileChunks: MessageSemanticSearchChunk[] | undefined;
342
374
  let ragQueryId;
343
375
 
344
376
  // go into RAG flow if there is ragQuery flag
345
- if (ragQuery) {
377
+ if (ragQuery && userMessageId) {
378
+ log('[internal_execAgentRuntime] Entering RAG flow with query: %s', ragQuery);
346
379
  // 1. get the relative chunks from semantic search
347
380
  const { chunks, queryId, rewriteQuery } = await get().internal_retrieveChunks(
348
381
  userMessageId,
@@ -470,7 +503,7 @@ export const generateAIChatV2: StateCreator<
470
503
  if (isToolsCalling) {
471
504
  get().internal_toggleMessageInToolsCalling(true, assistantId);
472
505
  await refreshMessages();
473
- await triggerToolCalls(assistantId, {
506
+ await triggerToolsCalling(assistantId, {
474
507
  threadId: params?.threadId,
475
508
  inPortalThread: params?.inPortalThread,
476
509
  });
@@ -481,6 +514,7 @@ export const generateAIChatV2: StateCreator<
481
514
  }
482
515
 
483
516
  // 4. fetch the AI response
517
+ log('[internal_execAgentRuntime] Fetching AI response for assistantId: %s', assistantId);
484
518
  const { isFunctionCall, content } = await internal_fetchAIChatMessage({
485
519
  messages,
486
520
  messageId: assistantId,
@@ -491,13 +525,18 @@ export const generateAIChatV2: StateCreator<
491
525
 
492
526
  // 5. if it's the function call message, trigger the function method
493
527
  if (isFunctionCall) {
528
+ log('[internal_execAgentRuntime] AI response is function call, triggering tools calling');
494
529
  get().internal_toggleMessageInToolsCalling(true, assistantId);
495
530
  await refreshMessages();
496
- await triggerToolCalls(assistantId, {
531
+ await triggerToolsCalling(assistantId, {
497
532
  threadId: params?.threadId,
498
533
  inPortalThread: params?.inPortalThread,
499
534
  });
500
535
  } else {
536
+ log(
537
+ '[internal_execAgentRuntime] AI response completed, content length: %d',
538
+ content?.length || 0,
539
+ );
501
540
  // 显示桌面通知(仅在桌面端且窗口隐藏时)
502
541
  if (isDesktop) {
503
542
  try {
@@ -534,6 +573,225 @@ export const generateAIChatV2: StateCreator<
534
573
  await get().internal_summaryHistory(historyMessages);
535
574
  }
536
575
  },
576
+ triggerToolsCalling: async (assistantId, { threadId, inPortalThread, inSearchWorkflow } = {}) => {
577
+ log('[triggerToolsCalling] start, assistantId (block ID): %s', assistantId);
578
+
579
+ const foundMessage = chatSelectors.getMessageById(assistantId)(get());
580
+ if (!foundMessage) {
581
+ log('[triggerToolsCalling] Message not found, returning');
582
+ return;
583
+ }
584
+
585
+ // Determine if this is a group message or a block
586
+ let groupMessage: UIChatMessage;
587
+ let latestBlock: UIChatMessage;
588
+
589
+ if (foundMessage.role === 'group') {
590
+ // Case 1: assistantId matches a group message ID directly
591
+ // Find the block within children that matches assistantId
592
+ groupMessage = foundMessage;
593
+ const block = foundMessage.children?.find((item) => item.id === assistantId);
594
+
595
+ if (!block) {
596
+ log(
597
+ '[triggerToolsCalling] Block with id %s not found in group message children, returning',
598
+ assistantId,
599
+ );
600
+ return;
601
+ }
602
+ latestBlock = block as UIChatMessage;
603
+ } else if (foundMessage.parentId) {
604
+ // Case 2: assistantId is a block ID, need to get parent group message
605
+ const parentMsg = chatSelectors.getMessageById(foundMessage.parentId)(get());
606
+ if (!parentMsg || parentMsg.role !== 'group') {
607
+ log('[triggerToolsCalling] Parent group message not found, returning');
608
+ return;
609
+ }
610
+ groupMessage = parentMsg;
611
+ latestBlock = foundMessage;
612
+ } else {
613
+ log(
614
+ '[triggerToolsCalling] Message is neither a group message nor a block with parentId, returning',
615
+ );
616
+ return;
617
+ }
618
+
619
+ log('[triggerToolsCalling] Found group message: %O', {
620
+ id: groupMessage.id,
621
+ groupId: groupMessage.groupId,
622
+ childrenCount: groupMessage.children?.length,
623
+ latestBlockId: latestBlock.id,
624
+ });
625
+
626
+ if (!latestBlock.tools) {
627
+ log('[triggerToolsCalling] Latest block has no tools, returning');
628
+ return;
629
+ }
630
+
631
+ log(
632
+ '[triggerToolsCalling] Latest block found with %d tools: %O',
633
+ latestBlock.tools.length,
634
+ latestBlock.tools.map((t) => ({ id: t.id, type: t.type, identifier: t.identifier })),
635
+ );
636
+
637
+ let shouldCreateMessage = false;
638
+ let latestToolId = '';
639
+
640
+ await pMap(
641
+ latestBlock.tools,
642
+ async (payload) => {
643
+ log(
644
+ '[triggerToolsCalling] Processing tool: %s (type: %s)',
645
+ payload.identifier,
646
+ payload.type,
647
+ );
648
+
649
+ // 2. 使用 createNewMessage 创建 tool 消息
650
+ const toolMessage: CreateNewMessageParams = {
651
+ content: '',
652
+ parentId: assistantId,
653
+ plugin: payload,
654
+ role: 'tool',
655
+ sessionId: get().activeId,
656
+ tool_call_id: payload.id,
657
+ threadId,
658
+ topicId: get().activeTopicId, // if there is activeTopicId,then add it to topicId
659
+ groupId: groupMessage.groupId, // Propagate groupId from parent message for group chat
660
+ };
661
+
662
+ const result = await get().internal_createMessage(toolMessage);
663
+
664
+ if (!result) {
665
+ log('[triggerToolsCalling] Failed to create tool message for %s', payload.identifier);
666
+ return;
667
+ }
668
+
669
+ log('[triggerToolsCalling] Tool message created: %s', result.id);
670
+
671
+ // 3. 执行 tool(这时 tool 消息已经创建,且 UI 已更新)
672
+ const data = await get().internal_invokeDifferentTypePlugin(result.id, payload);
673
+
674
+ if (data && !['markdown', 'standalone'].includes(payload.type)) {
675
+ shouldCreateMessage = true;
676
+ latestToolId = result.id;
677
+ log(
678
+ '[triggerToolsCalling] Tool %s requires follow-up assistant message',
679
+ payload.identifier,
680
+ );
681
+ } else {
682
+ log('[triggerToolsCalling] Tool %s completed without follow-up', payload.identifier);
683
+ }
684
+ },
685
+ { concurrency: 5 },
686
+ );
687
+
688
+ await get().internal_toggleMessageInToolsCalling(false, assistantId);
689
+
690
+ if (!shouldCreateMessage) {
691
+ log('[triggerToolsCalling] No follow-up message needed, completed');
692
+ return;
693
+ }
694
+
695
+ const traceId = chatSelectors.getTraceIdByMessageId(latestToolId)(get());
696
+ log(
697
+ '[triggerToolsCalling] Calling follow-up assistant message with latestToolId: %s',
698
+ latestToolId,
699
+ );
700
+
701
+ await get().callToolFollowAssistantMessage({
702
+ traceId,
703
+ threadId,
704
+ inPortalThread,
705
+ inSearchWorkflow,
706
+ parentId: latestToolId,
707
+ });
708
+ log('[triggerToolsCalling] completed');
709
+ },
710
+
711
+ callToolFollowAssistantMessage: async ({
712
+ parentId,
713
+ traceId,
714
+ threadId,
715
+ inPortalThread,
716
+ inSearchWorkflow,
717
+ }) => {
718
+ log('[callToolFollowAssistantMessage] start, parentId: %s', parentId);
719
+
720
+ const chats = inPortalThread
721
+ ? threadSelectors.portalAIChatsWithHistoryConfig(get())
722
+ : chatSelectors.mainAIChatsWithHistoryConfig(get());
723
+
724
+ let assistantMessageId: string;
725
+
726
+ // 获取 agent 配置
727
+ const agentStoreState = getAgentStoreState();
728
+ const { model, provider } = agentSelectors.currentAgentConfig(agentStoreState);
729
+
730
+ // 查找包含 parentId 的 group message
731
+ // parentId 是 tool result message 的 id,它存储在 assistant block 的 tools[].result_msg_id 中
732
+ let groupMessageId: string | undefined;
733
+
734
+ // 遍历所有 group messages,找到包含该 tool result 的那个
735
+ for (const msg of chats) {
736
+ if (msg.role === 'group' && msg.children) {
737
+ for (const child of msg.children) {
738
+ // 检查 child 的 tools 中是否有 result_msg_id === parentId
739
+ if (child.tools?.some((tool) => tool.result_msg_id === parentId)) {
740
+ groupMessageId = msg.id;
741
+ log('[callToolFollowAssistantMessage] Found group message: %s', groupMessageId);
742
+ break;
743
+ }
744
+ }
745
+ if (groupMessageId) break;
746
+ }
747
+ }
748
+
749
+ // 创建新的 assistant message,作为 group message 的新 block
750
+ const assistantMessage: CreateNewMessageParams = {
751
+ role: 'assistant',
752
+ content: LOADING_FLAT,
753
+ parentId,
754
+ sessionId: get().activeId,
755
+ topicId: get().activeTopicId,
756
+ threadId,
757
+ traceId,
758
+ model,
759
+ provider,
760
+ };
761
+
762
+ log('[callToolFollowAssistantMessage] Creating new assistant message block with params: %O', {
763
+ parentId,
764
+ groupMessageId,
765
+ model,
766
+ provider,
767
+ sessionId: get().activeId,
768
+ topicId: get().activeTopicId,
769
+ });
770
+
771
+ const result = await get().internal_createMessage(assistantMessage, { groupMessageId });
772
+
773
+ if (!result) {
774
+ log('[callToolFollowAssistantMessage] Failed to create assistant message');
775
+ return;
776
+ }
777
+
778
+ assistantMessageId = result.id;
779
+ log(
780
+ '[callToolFollowAssistantMessage] Assistant message created successfully, id: %s',
781
+ assistantMessageId,
782
+ );
783
+
784
+ log('[callToolFollowAssistantMessage] Starting agent runtime with %d messages', chats.length);
785
+ await get().internal_execAgentRuntime({
786
+ messages: chats,
787
+ assistantMessageId,
788
+ traceId,
789
+ threadId,
790
+ inPortalThread,
791
+ inSearchWorkflow,
792
+ });
793
+ log('[callToolFollowAssistantMessage] completed');
794
+ },
537
795
 
538
796
  internal_updateSendMessageOperation: (key, value, actionName) => {
539
797
  const operationKey = typeof key === 'string' ? key : messageMapKey(key.sessionId, key.topicId);
@@ -294,7 +294,7 @@ export const chatAiGroupChat: StateCreator<
294
294
  targetId: targetMemberId,
295
295
  };
296
296
 
297
- const messageId = await internal_createMessage(userMessage);
297
+ const result = await internal_createMessage(userMessage);
298
298
 
299
299
  // if only add user message, then stop
300
300
  if (onlyAddUserMessage) {
@@ -302,6 +302,9 @@ export const chatAiGroupChat: StateCreator<
302
302
  return;
303
303
  }
304
304
 
305
+ if (!result) return;
306
+ const messageId = result.id;
307
+
305
308
  if (messageId) {
306
309
  // Use the specific group's config rather than relying on active session
307
310
  const groupConfig = selectGroupConfig(groupId);
@@ -668,7 +671,9 @@ export const chatAiGroupChat: StateCreator<
668
671
 
669
672
  console.log('DEBUG: Creating agent message with:', agentMessage);
670
673
 
671
- const assistantId = await internal_createMessage(agentMessage);
674
+ const result = await internal_createMessage(agentMessage);
675
+ if (!result) return;
676
+ const assistantId = result.id;
672
677
 
673
678
  const systemMessage: UIChatMessage = {
674
679
  id: 'group-system',
@@ -2,14 +2,12 @@ import { StateCreator } from 'zustand/vanilla';
2
2
 
3
3
  import { ChatStore } from '@/store/chat/store';
4
4
 
5
- import { ChatDallEAction, dalleSlice } from './dalle';
6
5
  import { ChatCodeInterpreterAction, codeInterpreterSlice } from './interpreter';
7
6
  import { LocalFileAction, localSystemSlice } from './localSystem';
8
7
  import { SearchAction, searchSlice } from './search';
9
8
 
10
9
  export interface ChatBuiltinToolAction
11
- extends ChatDallEAction,
12
- SearchAction,
10
+ extends SearchAction,
13
11
  LocalFileAction,
14
12
  ChatCodeInterpreterAction {}
15
13
 
@@ -19,7 +17,6 @@ export const chatToolSlice: StateCreator<
19
17
  [],
20
18
  ChatBuiltinToolAction
21
19
  > = (...params) => ({
22
- ...dalleSlice(...params),
23
20
  ...searchSlice(...params),
24
21
  ...localSystemSlice(...params),
25
22
  ...codeInterpreterSlice(...params),
@@ -106,16 +106,16 @@ export const searchSlice: StateCreator<
106
106
  });
107
107
  };
108
108
 
109
- const [newMessageId] = await Promise.all([
109
+ const [result] = await Promise.all([
110
110
  // 1. 添加 tool message
111
111
  internal_createMessage(toolMessage),
112
112
  // 2. 将这条 tool call message 插入到 ai 消息的 tools 中
113
113
  addToolItem(),
114
114
  ]);
115
- if (!newMessageId) return;
115
+ if (!result) return;
116
116
 
117
117
  // 将新创建的 tool message 激活
118
- openToolUI(newMessageId, message.plugin.identifier);
118
+ openToolUI(result.id, message.plugin.identifier);
119
119
  },
120
120
 
121
121
  search: async (id, params, aiSummary = true) => {