@lobehub/lobehub 2.0.0-next.96 → 2.0.0-next.97

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 (217) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/apps/desktop/src/preload/index.ts +2 -2
  3. package/apps/desktop/src/preload/invoke.ts +1 -1
  4. package/apps/desktop/src/preload/routeInterceptor.ts +41 -41
  5. package/changelog/v1.json +9 -0
  6. package/locales/ar/models.json +6 -0
  7. package/locales/bg-BG/models.json +6 -0
  8. package/locales/de-DE/models.json +6 -0
  9. package/locales/en-US/models.json +6 -0
  10. package/locales/es-ES/models.json +6 -0
  11. package/locales/fa-IR/models.json +6 -0
  12. package/locales/fr-FR/models.json +6 -0
  13. package/locales/it-IT/models.json +6 -0
  14. package/locales/ja-JP/models.json +6 -0
  15. package/locales/ko-KR/models.json +6 -0
  16. package/locales/nl-NL/models.json +6 -0
  17. package/locales/pl-PL/models.json +6 -0
  18. package/locales/pt-BR/models.json +6 -0
  19. package/locales/ru-RU/models.json +6 -0
  20. package/locales/tr-TR/models.json +6 -0
  21. package/locales/vi-VN/models.json +6 -0
  22. package/locales/zh-CN/models.json +6 -0
  23. package/locales/zh-TW/models.json +6 -0
  24. package/package.json +1 -1
  25. package/packages/database/src/client/db.ts +12 -12
  26. package/packages/database/src/repositories/dataImporter/index.ts +10 -10
  27. package/packages/database/src/schemas/topic.ts +1 -1
  28. package/packages/database/src/server/models/ragEval/evaluation.ts +1 -1
  29. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/ClassicChat.tsx +1 -1
  30. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/GroupChat.tsx +1 -1
  31. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/ChatItem/index.tsx +1 -1
  32. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/Content.tsx +2 -2
  33. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/index.tsx +1 -1
  34. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatMinimap/index.tsx +1 -1
  35. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +1 -1
  36. package/src/components/InvalidAPIKey/APIKeyForm/ComfyUIForm.tsx +1 -1
  37. package/src/components/InvalidAPIKey/APIKeyForm/ProviderApiKeyForm.tsx +1 -1
  38. package/src/components/InvalidAPIKey/APIKeyForm/__tests__/ComfyUIForm.test.tsx +1 -1
  39. package/src/components/InvalidAPIKey/index.tsx +1 -1
  40. package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.test.ts +1 -2
  41. package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/index.tsx +2 -2
  42. package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.test.tsx +3 -3
  43. package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.tsx +6 -5
  44. package/src/features/{Conversation → ChatList}/Messages/Assistant/MessageContent.tsx +1 -1
  45. package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithContentId.tsx +2 -2
  46. package/src/features/{Conversation → ChatList}/Messages/Group/ContentBlock.tsx +2 -2
  47. package/src/features/{Conversation → ChatList}/Messages/Group/Error/index.tsx +2 -1
  48. package/src/features/{Conversation → ChatList}/Messages/Group/Group.tsx +1 -1
  49. package/src/features/{Conversation → ChatList}/Messages/Group/GroupItem.tsx +3 -2
  50. package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ApprovalActions.tsx +1 -1
  51. package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/index.tsx +1 -2
  52. package/src/features/{Conversation → ChatList}/Messages/Group/index.tsx +1 -1
  53. package/src/features/{Conversation → ChatList}/Messages/User/Extra.tsx +3 -3
  54. package/src/features/{Conversation → ChatList}/Messages/User/index.tsx +1 -1
  55. package/src/features/{Conversation → ChatList}/Messages/index.tsx +1 -1
  56. package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/Preview.tsx +1 -1
  57. package/src/features/{Conversation → ChatList}/components/SkeletonList.tsx +1 -1
  58. package/src/features/{Conversation → ChatList}/components/VirtualizedList/index.tsx +1 -1
  59. package/src/features/OllamaSetupGuide/index.tsx +1 -1
  60. package/src/features/PluginsUI/Render/MCPType/index.tsx +1 -1
  61. package/src/features/Portal/GroupThread/Body/ThreadChatItem.tsx +1 -1
  62. package/src/features/Portal/GroupThread/Body/ThreadChatList.tsx +1 -1
  63. package/src/features/Portal/Thread/Chat/ChatInput/index.tsx +1 -1
  64. package/src/features/Portal/Thread/Chat/ChatItem.tsx +1 -1
  65. package/src/features/Portal/Thread/Chat/ChatList.tsx +1 -1
  66. package/src/features/Portal/Thread/Chat/index.tsx +1 -1
  67. package/src/features/ShareModal/ShareImage/ChatList/index.tsx +1 -1
  68. package/src/services/debug.ts +4 -4
  69. package/src/services/electron/remoteServer.ts +5 -5
  70. package/src/services/electron/settings.ts +6 -6
  71. package/src/services/mcp.ts +18 -18
  72. package/src/services/models.ts +20 -20
  73. /package/src/features/{Conversation → ChatList}/Error/AccessCodeForm.tsx +0 -0
  74. /package/src/features/{Conversation → ChatList}/Error/ChatInvalidApiKey.tsx +0 -0
  75. /package/src/features/{Conversation → ChatList}/Error/ClerkLogin/index.tsx +0 -0
  76. /package/src/features/{Conversation → ChatList}/Error/ErrorJsonViewer.tsx +0 -0
  77. /package/src/features/{Conversation → ChatList}/Error/OAuthForm.tsx +0 -0
  78. /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/InvalidOllamaModel.tsx +0 -0
  79. /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/index.tsx +0 -0
  80. /package/src/features/{Conversation → ChatList}/Error/index.tsx +0 -0
  81. /package/src/features/{Conversation → ChatList}/Error/style.tsx +0 -0
  82. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/Icon.tsx +0 -0
  83. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/index.tsx +0 -0
  84. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/index.ts +0 -0
  85. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.test.ts +0 -0
  86. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.ts +0 -0
  87. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/Render.tsx +0 -0
  88. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/index.ts +0 -0
  89. /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/Render/index.tsx +0 -0
  90. /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/index.ts +0 -0
  91. /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/Render.tsx +0 -0
  92. /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/index.ts +0 -0
  93. /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/Render.tsx +0 -0
  94. /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/index.ts +0 -0
  95. /package/src/features/{Conversation → ChatList}/MarkdownElements/index.ts +0 -0
  96. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/__snapshots__/createRemarkSelfClosingTagPlugin.test.ts.snap +0 -0
  97. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagPlugin.ts +0 -0
  98. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagWithAttributesPlugin.ts +0 -0
  99. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.test.ts +0 -0
  100. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.ts +0 -0
  101. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.ts +0 -0
  102. /package/src/features/{Conversation → ChatList}/MarkdownElements/type.ts +0 -0
  103. /package/src/features/{Conversation → ChatList}/MarkdownElements/utils.ts +0 -0
  104. /package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/Error.tsx +0 -0
  105. /package/src/features/{Conversation → ChatList}/Messages/Assistant/CollapsedMessage.tsx +0 -0
  106. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/index.tsx +0 -0
  107. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/style.ts +0 -0
  108. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/index.tsx +0 -0
  109. /package/src/features/{Conversation → ChatList}/Messages/Assistant/IntentUnderstanding.tsx +0 -0
  110. /package/src/features/{Conversation → ChatList}/Messages/Assistant/Reasoning/index.tsx +0 -0
  111. /package/src/features/{Conversation → ChatList}/Messages/Assistant/SearchGrounding.tsx +0 -0
  112. /package/src/features/{Conversation → ChatList}/Messages/Assistant/index.tsx +0 -0
  113. /package/src/features/{Conversation → ChatList}/Messages/Default.tsx +0 -0
  114. /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithoutContentId.tsx +0 -0
  115. /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/index.tsx +0 -0
  116. /package/src/features/{Conversation → ChatList}/Messages/Group/CollapsedMessage.tsx +0 -0
  117. /package/src/features/{Conversation → ChatList}/Messages/Group/EditState.tsx +0 -0
  118. /package/src/features/{Conversation → ChatList}/Messages/Group/GroupContext.ts +0 -0
  119. /package/src/features/{Conversation → ChatList}/Messages/Group/MessageContent.tsx +0 -0
  120. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
  121. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Debug.tsx +0 -0
  122. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginResult.tsx +0 -0
  123. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginState.tsx +0 -0
  124. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Settings.tsx +0 -0
  125. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/StatusIndicator.tsx +0 -0
  126. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/ToolTitle.tsx +0 -0
  127. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/index.tsx +0 -0
  128. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/AbortResponse.tsx +0 -0
  129. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
  130. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +0 -0
  131. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/index.tsx +0 -0
  132. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/CustomRender.tsx +0 -0
  133. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/ErrorResponse.tsx +0 -0
  134. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/Fallback.tsx +0 -0
  135. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/KeyValueEditor.tsx +0 -0
  136. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ModeSelector.tsx +0 -0
  137. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/index.tsx +0 -0
  138. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +0 -0
  139. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/PluginSettings.tsx +0 -0
  140. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/RejectedResponse.tsx +0 -0
  141. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/index.tsx +0 -0
  142. /package/src/features/{Conversation → ChatList}/Messages/Group/Tools.tsx +0 -0
  143. /package/src/features/{Conversation → ChatList}/Messages/Supervisor/TodoList.tsx +0 -0
  144. /package/src/features/{Conversation → ChatList}/Messages/Supervisor/index.tsx +0 -0
  145. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
  146. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Debug.tsx +0 -0
  147. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginResult.tsx +0 -0
  148. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginState.tsx +0 -0
  149. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Settings.tsx +0 -0
  150. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/ToolTitle.tsx +0 -0
  151. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/index.tsx +0 -0
  152. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
  153. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ValueCell.tsx +0 -0
  154. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/index.tsx +0 -0
  155. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/CustomRender.tsx +0 -0
  156. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/ErrorResponse.tsx +0 -0
  157. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/KeyValueEditor.tsx +0 -0
  158. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/PluginSettings.tsx +0 -0
  159. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/index.tsx +0 -0
  160. /package/src/features/{Conversation → ChatList}/Messages/Tool/ToolItem.tsx +0 -0
  161. /package/src/features/{Conversation → ChatList}/Messages/Tool/index.tsx +0 -0
  162. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/ActionsBar.tsx +0 -0
  163. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/MessageBranch.tsx +0 -0
  164. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/index.tsx +0 -0
  165. /package/src/features/{Conversation → ChatList}/Messages/User/BelowMessage.tsx +0 -0
  166. /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/Item.tsx +0 -0
  167. /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/index.tsx +0 -0
  168. /package/src/features/{Conversation → ChatList}/Messages/User/ImageFileListViewer.tsx +0 -0
  169. /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/ContentPreview.tsx +0 -0
  170. /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/index.tsx +0 -0
  171. /package/src/features/{Conversation → ChatList}/Messages/User/MessageContent.tsx +0 -0
  172. /package/src/features/{Conversation → ChatList}/Messages/User/VideoFileListViewer.tsx +0 -0
  173. /package/src/features/{Conversation → ChatList}/components/AutoScroll.tsx +0 -0
  174. /package/src/features/{Conversation → ChatList}/components/BackBottom/index.tsx +0 -0
  175. /package/src/features/{Conversation → ChatList}/components/BackBottom/style.ts +0 -0
  176. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/PdfPreview.tsx +0 -0
  177. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/index.tsx +0 -0
  178. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/style.ts +0 -0
  179. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/template.ts +0 -0
  180. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/usePdfGeneration.ts +0 -0
  181. /package/src/features/{Conversation → ChatList}/components/Extras/ExtraContainer.tsx +0 -0
  182. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/FilePlayer.tsx +0 -0
  183. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/InitPlayer.tsx +0 -0
  184. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/Player.tsx +0 -0
  185. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/index.tsx +0 -0
  186. /package/src/features/{Conversation → ChatList}/components/Extras/Translate.tsx +0 -0
  187. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/AnimatedNumber.tsx +0 -0
  188. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/ModelCard.tsx +0 -0
  189. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/TokenProgress.tsx +0 -0
  190. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/index.tsx +0 -0
  191. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/pricing.ts +0 -0
  192. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.test.ts +0 -0
  193. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.ts +0 -0
  194. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/index.tsx +0 -0
  195. /package/src/features/{Conversation → ChatList}/components/History/HistoryDivider.tsx +0 -0
  196. /package/src/features/{Conversation → ChatList}/components/History/index.tsx +0 -0
  197. /package/src/features/{Conversation → ChatList}/components/OTPInput.tsx +0 -0
  198. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/index.tsx +0 -0
  199. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/style.ts +0 -0
  200. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/type.ts +0 -0
  201. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/Preview.tsx +0 -0
  202. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/index.tsx +0 -0
  203. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.test.ts +0 -0
  204. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.ts +0 -0
  205. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/type.ts +0 -0
  206. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/index.tsx +0 -0
  207. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/style.ts +0 -0
  208. /package/src/features/{Conversation → ChatList}/components/ThreadDivider/index.tsx +0 -0
  209. /package/src/features/{Conversation → ChatList}/components/VirtualizedList/VirtuosoContext.ts +0 -0
  210. /package/src/features/{Conversation → ChatList}/components/WideScreenContainer/index.tsx +0 -0
  211. /package/src/features/{Conversation → ChatList}/context/InPortalThreadContext.ts +0 -0
  212. /package/src/features/{Conversation → ChatList}/hooks/useChatListActionsBar.tsx +0 -0
  213. /package/src/features/{Conversation → ChatList}/hooks/useDoubleClickEdit.ts +0 -0
  214. /package/src/features/{Conversation → ChatList}/index.ts +0 -0
  215. /package/src/features/{Conversation → ChatList}/types/index.ts +0 -0
  216. /package/src/features/{Conversation → ChatList}/utils/markdown.test.ts +0 -0
  217. /package/src/features/{Conversation → ChatList}/utils/markdown.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.97](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.96...v2.0.0-next.97)
6
+
7
+ <sup>Released on **2025-11-21**</sup>
8
+
9
+ #### ♻ Code Refactoring
10
+
11
+ - **misc**: Refactor Conversation to ChatList.
12
+
13
+ #### 💄 Styles
14
+
15
+ - **misc**: Update i18n.
16
+
17
+ <br/>
18
+
19
+ <details>
20
+ <summary><kbd>Improvements and Fixes</kbd></summary>
21
+
22
+ #### Code refactoring
23
+
24
+ - **misc**: Refactor Conversation to ChatList, closes [#10330](https://github.com/lobehub/lobe-chat/issues/10330) ([bca70e2](https://github.com/lobehub/lobe-chat/commit/bca70e2))
25
+
26
+ #### Styles
27
+
28
+ - **misc**: Update i18n, closes [#10338](https://github.com/lobehub/lobe-chat/issues/10338) ([9c8cf81](https://github.com/lobehub/lobe-chat/commit/9c8cf81))
29
+
30
+ </details>
31
+
32
+ <div align="right">
33
+
34
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
35
+
36
+ </div>
37
+
5
38
  ## [Version 2.0.0-next.96](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.95...v2.0.0-next.96)
6
39
 
7
40
  <sup>Released on **2025-11-20**</sup>
@@ -4,9 +4,9 @@ import { setupRouteInterceptors } from './routeInterceptor';
4
4
  const setupPreload = () => {
5
5
  setupElectronApi();
6
6
 
7
- // 设置路由拦截逻辑
7
+ // Setup route interception logic
8
8
  window.addEventListener('DOMContentLoaded', () => {
9
- // 设置客户端路由拦截器
9
+ // Setup client-side route interceptor
10
10
  setupRouteInterceptors();
11
11
  });
12
12
  };
@@ -2,7 +2,7 @@ import { ClientDispatchEventKey, DispatchInvoke } from '@lobechat/electron-clien
2
2
  import { ipcRenderer } from 'electron';
3
3
 
4
4
  /**
5
- * client 端请求 electron main 端方法
5
+ * Client-side method to invoke electron main process
6
6
  */
7
7
  export const invoke: DispatchInvoke = async <T extends ClientDispatchEventKey>(
8
8
  event: T,
@@ -9,7 +9,7 @@ const interceptRoute = async (
9
9
  ) => {
10
10
  console.log(`[preload] Intercepted ${source} and prevented default behavior:`, path);
11
11
 
12
- // 使用electron-client-ipcdispatch方法
12
+ // Use electron-client-ipc's dispatch method
13
13
  try {
14
14
  await invoke('interceptRoute', { path, source, url });
15
15
  } catch (e) {
@@ -17,15 +17,15 @@ const interceptRoute = async (
17
17
  }
18
18
  };
19
19
  /**
20
- * 路由拦截器 - 负责捕获和拦截客户端路由导航
20
+ * Route interceptor - Responsible for capturing and intercepting client-side route navigation
21
21
  */
22
22
  export const setupRouteInterceptors = function () {
23
23
  console.log('[preload] Setting up route interceptors');
24
24
 
25
- // 存储被阻止的路径,避免pushState重复触发
25
+ // Store prevented paths to avoid pushState duplicate triggers
26
26
  const preventedPaths = new Set<string>();
27
27
 
28
- // 重写 window.open 方法来拦截 JavaScript 调用
28
+ // Override window.open method to intercept JavaScript calls
29
29
  const originalWindowOpen = window.open;
30
30
  window.open = function (url?: string | URL, target?: string, features?: string) {
31
31
  if (url) {
@@ -33,15 +33,15 @@ export const setupRouteInterceptors = function () {
33
33
  const urlString = typeof url === 'string' ? url : url.toString();
34
34
  const urlObj = new URL(urlString, window.location.href);
35
35
 
36
- // 检查是否为外部链接
36
+ // Check if it's an external link
37
37
  if (urlObj.origin !== window.location.origin) {
38
38
  console.log(`[preload] Intercepted window.open for external URL:`, urlString);
39
- // 调用主进程处理外部链接
39
+ // Call main process to handle external link
40
40
  invoke('openExternalLink', urlString);
41
- return null; // 返回 null 表示没有打开新窗口
41
+ return null; // Return null to indicate no window was opened
42
42
  }
43
43
  } catch (error) {
44
- // 处理无效 URL 或特殊协议
44
+ // Handle invalid URL or special protocol
45
45
  console.error(`[preload] Intercepted window.open for special protocol:`, url);
46
46
  console.error(error);
47
47
  invoke('openExternalLink', typeof url === 'string' ? url : url.toString());
@@ -49,11 +49,11 @@ export const setupRouteInterceptors = function () {
49
49
  }
50
50
  }
51
51
 
52
- // 对于内部链接,调用原始的 window.open
52
+ // For internal links, call original window.open
53
53
  return originalWindowOpen.call(window, url, target, features);
54
54
  };
55
55
 
56
- // 拦截所有a标签的点击事件 - 针对Next.jsLink组件
56
+ // Intercept all a tag click events - For Next.js Link component
57
57
  document.addEventListener(
58
58
  'click',
59
59
  async (e) => {
@@ -62,30 +62,30 @@ export const setupRouteInterceptors = function () {
62
62
  try {
63
63
  const url = new URL(link.href);
64
64
 
65
- // 检查是否为外部链接
65
+ // Check if it's an external link
66
66
  if (url.origin !== window.location.origin) {
67
67
  console.log(`[preload] Intercepted external link click:`, url.href);
68
- // 阻止默认的链接跳转行为
68
+ // Prevent default link navigation behavior
69
69
  e.preventDefault();
70
70
  e.stopPropagation();
71
- // 调用主进程处理外部链接
71
+ // Call main process to handle external link
72
72
  await invoke('openExternalLink', url.href);
73
- return false; // 明确阻止后续处理
73
+ return false; // Explicitly prevent subsequent processing
74
74
  }
75
75
 
76
- // 如果不是外部链接,则继续处理内部路由拦截逻辑
77
- // 使用共享配置检查是否需要拦截
76
+ // If not external link, continue with internal route interception logic
77
+ // Use shared config to check if interception is needed
78
78
  const matchedRoute = findMatchingRoute(url.pathname);
79
79
 
80
- // 如果是需要拦截的路径
80
+ // If it's a path that needs interception
81
81
  if (matchedRoute) {
82
82
  const currentPath = window.location.pathname;
83
83
  const isAlreadyInTargetPage = currentPath.startsWith(matchedRoute.pathPrefix);
84
84
 
85
- // 如果已经在目标页面下,则不拦截,让默认导航继续
85
+ // If already in target page, don't intercept, let default navigation continue
86
86
  if (isAlreadyInTargetPage) return;
87
87
 
88
- // 立即阻止默认行为,避免Next.js接管路由
88
+ // Immediately prevent default behavior to avoid Next.js taking over routing
89
89
  e.preventDefault();
90
90
  e.stopPropagation();
91
91
 
@@ -94,15 +94,15 @@ export const setupRouteInterceptors = function () {
94
94
  return false;
95
95
  }
96
96
  } catch (err) {
97
- // 处理可能的 URL 解析错误或其他问题
98
- // 例如 mailto:, tel: 等协议会导致 new URL() 抛出错误
97
+ // Handle possible URL parsing errors or other issues
98
+ // For example mailto:, tel: protocols will cause new URL() to throw error
99
99
  if (err instanceof TypeError && err.message.includes('Invalid URL')) {
100
100
  console.log(
101
101
  '[preload] Non-HTTP link clicked, allowing default browser behavior:',
102
102
  link.href,
103
103
  );
104
- // 对于非 HTTP/HTTPS 链接,允许浏览器默认处理
105
- // 不需要 e.preventDefault() invoke
104
+ // For non-HTTP/HTTPS links, allow browser default handling
105
+ // No need for e.preventDefault() or invoke
106
106
  } else {
107
107
  console.error('[preload] Link interception error:', err);
108
108
  }
@@ -112,28 +112,28 @@ export const setupRouteInterceptors = function () {
112
112
  true,
113
113
  );
114
114
 
115
- // 拦截 history API (用于捕获Next.jsuseRouter().push/replace)
115
+ // Intercept history API (for capturing Next.js useRouter().push/replace etc.)
116
116
  const originalPushState = history.pushState;
117
117
  const originalReplaceState = history.replaceState;
118
118
 
119
- // 重写pushState
119
+ // Override pushState
120
120
  history.pushState = function () {
121
121
  const url = arguments[2];
122
122
  if (typeof url === 'string') {
123
123
  try {
124
- // 只处理相对路径或当前域的URL
124
+ // Only handle relative paths or current domain URLs
125
125
  const parsedUrl = new URL(url, window.location.origin);
126
126
 
127
- // 使用共享配置检查是否需要拦截
127
+ // Use shared config to check if interception is needed
128
128
  const matchedRoute = findMatchingRoute(parsedUrl.pathname);
129
129
 
130
- // 检查是否需要拦截这个导航
130
+ // Check if this navigation needs interception
131
131
  if (matchedRoute) {
132
- // 检查当前页面是否已经在目标路径下,如果是则不拦截
132
+ // Check if current page is already under target path, if so don't intercept
133
133
  const currentPath = window.location.pathname;
134
134
  const isAlreadyInTargetPage = currentPath.startsWith(matchedRoute.pathPrefix);
135
135
 
136
- // 如果已经在目标页面下,则不拦截,让默认导航继续
136
+ // If already in target page, don't intercept, let default navigation continue
137
137
  if (isAlreadyInTargetPage) {
138
138
  console.log(
139
139
  `[preload] Skip pushState interception for ${parsedUrl.pathname} because already in target page ${matchedRoute.pathPrefix}`,
@@ -141,13 +141,13 @@ export const setupRouteInterceptors = function () {
141
141
  return Reflect.apply(originalPushState, this, arguments);
142
142
  }
143
143
 
144
- // 将此路径添加到已阻止集合中
144
+ // Add this path to prevented set
145
145
  preventedPaths.add(parsedUrl.pathname);
146
146
 
147
147
  interceptRoute(parsedUrl.pathname, 'push-state', parsedUrl.href);
148
148
 
149
- // 不执行原始的pushState操作,阻止导航发生
150
- // 但返回undefined以避免错误
149
+ // Don't execute original pushState operation, prevent navigation
150
+ // But return undefined to avoid errors
151
151
  return;
152
152
  }
153
153
  } catch (err) {
@@ -157,23 +157,23 @@ export const setupRouteInterceptors = function () {
157
157
  return Reflect.apply(originalPushState, this, arguments);
158
158
  };
159
159
 
160
- // 重写replaceState
160
+ // Override replaceState
161
161
  history.replaceState = function () {
162
162
  const url = arguments[2];
163
163
  if (typeof url === 'string') {
164
164
  try {
165
165
  const parsedUrl = new URL(url, window.location.origin);
166
166
 
167
- // 使用共享配置检查是否需要拦截
167
+ // Use shared config to check if interception is needed
168
168
  const matchedRoute = findMatchingRoute(parsedUrl.pathname);
169
169
 
170
- // 检查是否需要拦截这个导航
170
+ // Check if this navigation needs interception
171
171
  if (matchedRoute) {
172
- // 检查当前页面是否已经在目标路径下,如果是则不拦截
172
+ // Check if current page is already under target path, if so don't intercept
173
173
  const currentPath = window.location.pathname;
174
174
  const isAlreadyInTargetPage = currentPath.startsWith(matchedRoute.pathPrefix);
175
175
 
176
- // 如果已经在目标页面下,则不拦截,让默认导航继续
176
+ // If already in target page, don't intercept, let default navigation continue
177
177
  if (isAlreadyInTargetPage) {
178
178
  console.log(
179
179
  `[preload] Skip replaceState interception for ${parsedUrl.pathname} because already in target page ${matchedRoute.pathPrefix}`,
@@ -181,12 +181,12 @@ export const setupRouteInterceptors = function () {
181
181
  return Reflect.apply(originalReplaceState, this, arguments);
182
182
  }
183
183
 
184
- // 添加到已阻止集合
184
+ // Add to prevented set
185
185
  preventedPaths.add(parsedUrl.pathname);
186
186
 
187
187
  interceptRoute(parsedUrl.pathname, 'replace-state', parsedUrl.href);
188
188
 
189
- // 阻止导航
189
+ // Prevent navigation
190
190
  return;
191
191
  }
192
192
  } catch (err) {
@@ -196,7 +196,7 @@ export const setupRouteInterceptors = function () {
196
196
  return Reflect.apply(originalReplaceState, this, arguments);
197
197
  };
198
198
 
199
- // 监听并拦截路由错误 - 有时Next.js会在路由错误时尝试恢复导航
199
+ // Listen and intercept routing errors - Sometimes Next.js tries to recover navigation on routing errors
200
200
  window.addEventListener(
201
201
  'error',
202
202
  function (e) {
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "improvements": [
5
+ "Update i18n."
6
+ ]
7
+ },
8
+ "date": "2025-11-21",
9
+ "version": "2.0.0-next.97"
10
+ },
2
11
  {
3
12
  "children": {
4
13
  "features": [
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 من xAI، يتمتع بقدرات استدلال قوية."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "نموذج متعدد الوسائط متقدم، مُحسَّن خصيصًا لاستدعاء أدوات الوكلاء عالية الأداء."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "نموذج متعدد الوسائط متقدم، مُحسَّن خصيصًا لاستدعاء أدوات الوكلاء عالية الأداء."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "نحن سعداء بإصدار Grok 4 Fast، وهو أحدث تقدم لدينا في نماذج الاستدلال ذات التكلفة الفعالة."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 от xAI, с мощни способности за разсъждение."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Модерен мултимодален модел, специално оптимизиран за високоефективно използване на агентски инструменти."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Модерен мултимодален модел, специално оптимизиран за високоефективно използване на агентски инструменти."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "С удоволствие представяме Grok 4 Fast, нашият най-нов напредък в модели за разсъждение с висока ефективност на разходите."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI's Grok 4 mit starker Schlussfolgerungsfähigkeit."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Modernes multimodales Modell, speziell optimiert für die Nutzung leistungsstarker Agenten-Tools."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Modernes multimodales Modell, speziell optimiert für die Nutzung leistungsstarker Agenten-Tools."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Wir freuen uns, Grok 4 Fast vorzustellen, unseren neuesten Fortschritt bei kosteneffizienten Inferenzmodellen."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI's Grok 4, featuring strong reasoning capabilities."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Cutting-edge multimodal model optimized specifically for high-performance agent tool invocation."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Cutting-edge multimodal model optimized specifically for high-performance agent tool invocation."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "We are excited to release Grok 4 Fast, our latest advancement in cost-effective reasoning models."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 de xAI, con potentes capacidades de razonamiento."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Modelo multimodal de vanguardia, optimizado específicamente para llamadas de herramientas de agente de alto rendimiento."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Modelo multimodal de vanguardia, optimizado específicamente para llamadas de herramientas de agente de alto rendimiento."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Nos complace anunciar Grok 4 Fast, nuestro último avance en modelos de inferencia con alta relación costo-beneficio."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 از xAI با توانایی استدلال قدرتمند."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "مدل پیشرفته چندوجهی که به‌طور ویژه برای بهینه‌سازی فراخوانی ابزارهای نماینده با عملکرد بالا طراحی شده است."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "مدل پیشرفته چندوجهی که به‌طور ویژه برای بهینه‌سازی فراخوانی ابزارهای نماینده با عملکرد بالا طراحی شده است."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "خوشحالیم که Grok 4 Fast را منتشر می‌کنیم، که جدیدترین پیشرفت ما در زمینه مدل‌های استنتاج با صرفه‌جویی در هزینه است."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 de xAI, doté de puissantes capacités de raisonnement."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Modèle multimodal de pointe, spécialement optimisé pour l'appel d'outils d'agents haute performance."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Modèle multimodal de pointe, spécialement optimisé pour l'appel d'outils d'agents haute performance."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Nous sommes ravis de présenter Grok 4 Fast, notre dernière avancée dans les modèles de raisonnement à rapport coût-efficacité optimisé."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 di xAI, dotato di potenti capacità di ragionamento."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Modello multimodale all'avanguardia, ottimizzato specificamente per l'utilizzo ad alte prestazioni con strumenti di agenti."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Modello multimodale all'avanguardia, ottimizzato specificamente per l'utilizzo ad alte prestazioni con strumenti di agenti."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Siamo lieti di annunciare Grok 4 Fast, il nostro ultimo progresso nei modelli di inferenza con ottimo rapporto costo-efficacia."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI の Grok 4 は強力な推論能力を備えています。"
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "最先端のマルチモーダルモデルであり、高性能なエージェントツールの呼び出しに特化して最適化されています。"
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "最先端のマルチモーダルモデルであり、高性能なエージェントツールの呼び出しに特化して最適化されています。"
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "コスト効率の高い推論モデルにおける最新の進展として、Grok 4 Fastをリリースできることを嬉しく思います。"
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI의 Grok 4로, 강력한 추론 능력을 갖추고 있습니다."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "최첨단 멀티모달 모델로, 고성능 에이전트 도구 호출에 최적화되어 있습니다."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "최첨단 멀티모달 모델로, 고성능 에이전트 도구 호출에 최적화되어 있습니다."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "비용 효율적인 추론 모델 분야에서의 최신 진전인 Grok 4 Fast를 발표하게 되어 기쁩니다."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 van xAI, met krachtige redeneervaardigheden."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Geavanceerd multimodaal model, geoptimaliseerd voor het aanroepen van krachtige agenttools."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Geavanceerd multimodaal model, geoptimaliseerd voor het aanroepen van krachtige agenttools."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "We zijn verheugd Grok 4 Fast te introduceren, onze nieuwste vooruitgang in kosteneffectieve redeneermodellen."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 od xAI, wyposażony w potężne zdolności rozumowania."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Nowoczesny model multimodalny, zoptymalizowany specjalnie do wydajnego korzystania z narzędzi pośredniczących."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Nowoczesny model multimodalny, zoptymalizowany specjalnie do wydajnego korzystania z narzędzi pośredniczących."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Z radością prezentujemy Grok 4 Fast, nasz najnowszy postęp w modelach inferencyjnych o wysokiej efektywności kosztowej."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 da xAI, com forte capacidade de raciocínio."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Modelo multimodal de ponta, otimizado especialmente para chamadas de ferramentas de agente de alto desempenho."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Modelo multimodal de ponta, otimizado especialmente para chamadas de ferramentas de agente de alto desempenho."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Temos o prazer de lançar o Grok 4 Fast, nosso avanço mais recente em modelos de inferência com custo-benefício."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 от xAI с мощными возможностями рассуждения."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Передовая мультимодальная модель, специально оптимизированная для высокоэффективного вызова агентных инструментов."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Передовая мультимодальная модель, специально оптимизированная для высокоэффективного вызова агентных инструментов."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Мы рады представить Grok 4 Fast — наш последний прогресс в области экономически эффективных моделей для вывода."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI'nin Grok 4 modeli, güçlü akıl yürütme yeteneklerine sahiptir."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Yüksek performanslı aracı araç çağrıları için özel olarak optimize edilmiş, son teknoloji çok modlu model."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Yüksek performanslı aracı araç çağrıları için özel olarak optimize edilmiş, son teknoloji çok modlu model."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Maliyet-etkin çıkarım modellerinde en son gelişmemiz olan Grok 4 Fast’i sunmaktan mutluluk duyuyoruz."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "Grok 4 của xAI, có khả năng suy luận mạnh mẽ."
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "Mô hình đa phương thức tiên tiến, được tối ưu hóa đặc biệt để gọi công cụ đại diện hiệu suất cao."
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "Mô hình đa phương thức tiên tiến, được tối ưu hóa đặc biệt để gọi công cụ đại diện hiệu suất cao."
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "Chúng tôi rất vui mừng giới thiệu Grok 4 Fast, bước tiến mới nhất của chúng tôi trong các mô hình suy luận hiệu quả về chi phí."
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI 的 Grok 4,具备强大的推理能力。"
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "前沿多模态模型,专门针对高性能代理工具调用进行优化。"
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "前沿多模态模型,专门针对高性能代理工具调用进行优化。"
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "我们很高兴发布 Grok 4 Fast,这是我们在成本效益推理模型方面的最新进展。"
1912
1918
  },
@@ -1907,6 +1907,12 @@
1907
1907
  "grok-4-0709": {
1908
1908
  "description": "xAI 的 Grok 4,具備強大的推理能力。"
1909
1909
  },
1910
+ "grok-4-1-fast-non-reasoning": {
1911
+ "description": "前沿多模態模型,專為高效能代理工具調用進行優化。"
1912
+ },
1913
+ "grok-4-1-fast-reasoning": {
1914
+ "description": "前沿多模態模型,專為高效能代理工具調用進行優化。"
1915
+ },
1910
1916
  "grok-4-fast-non-reasoning": {
1911
1917
  "description": "我們很高興發布 Grok 4 Fast,這是我們在成本效益推理模型方面的最新進展。"
1912
1918
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.96",
3
+ "version": "2.0.0-next.97",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",