@lobehub/lobehub 2.0.0-next.95 → 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 (267) hide show
  1. package/CHANGELOG.md +58 -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 +18 -0
  6. package/locales/ar/common.json +21 -0
  7. package/locales/ar/hotkey.json +4 -0
  8. package/locales/ar/models.json +6 -0
  9. package/locales/bg-BG/common.json +21 -0
  10. package/locales/bg-BG/hotkey.json +4 -0
  11. package/locales/bg-BG/models.json +6 -0
  12. package/locales/de-DE/common.json +21 -0
  13. package/locales/de-DE/hotkey.json +4 -0
  14. package/locales/de-DE/models.json +6 -0
  15. package/locales/en-US/common.json +21 -0
  16. package/locales/en-US/hotkey.json +4 -0
  17. package/locales/en-US/models.json +6 -0
  18. package/locales/es-ES/common.json +21 -0
  19. package/locales/es-ES/hotkey.json +4 -0
  20. package/locales/es-ES/models.json +6 -0
  21. package/locales/fa-IR/common.json +21 -0
  22. package/locales/fa-IR/hotkey.json +4 -0
  23. package/locales/fa-IR/models.json +6 -0
  24. package/locales/fr-FR/common.json +21 -0
  25. package/locales/fr-FR/hotkey.json +4 -0
  26. package/locales/fr-FR/models.json +6 -0
  27. package/locales/it-IT/common.json +21 -0
  28. package/locales/it-IT/hotkey.json +4 -0
  29. package/locales/it-IT/models.json +6 -0
  30. package/locales/ja-JP/common.json +21 -0
  31. package/locales/ja-JP/hotkey.json +4 -0
  32. package/locales/ja-JP/models.json +6 -0
  33. package/locales/ko-KR/common.json +21 -0
  34. package/locales/ko-KR/hotkey.json +4 -0
  35. package/locales/ko-KR/models.json +6 -0
  36. package/locales/nl-NL/common.json +21 -0
  37. package/locales/nl-NL/hotkey.json +4 -0
  38. package/locales/nl-NL/models.json +6 -0
  39. package/locales/pl-PL/common.json +21 -0
  40. package/locales/pl-PL/hotkey.json +4 -0
  41. package/locales/pl-PL/models.json +6 -0
  42. package/locales/pt-BR/common.json +21 -0
  43. package/locales/pt-BR/hotkey.json +4 -0
  44. package/locales/pt-BR/models.json +6 -0
  45. package/locales/ru-RU/common.json +21 -0
  46. package/locales/ru-RU/hotkey.json +4 -0
  47. package/locales/ru-RU/models.json +6 -0
  48. package/locales/tr-TR/common.json +21 -0
  49. package/locales/tr-TR/hotkey.json +4 -0
  50. package/locales/tr-TR/models.json +6 -0
  51. package/locales/vi-VN/common.json +21 -0
  52. package/locales/vi-VN/hotkey.json +4 -0
  53. package/locales/vi-VN/models.json +6 -0
  54. package/locales/zh-CN/common.json +21 -0
  55. package/locales/zh-CN/hotkey.json +4 -0
  56. package/locales/zh-CN/models.json +6 -0
  57. package/locales/zh-TW/common.json +21 -0
  58. package/locales/zh-TW/hotkey.json +4 -0
  59. package/locales/zh-TW/models.json +6 -0
  60. package/package.json +3 -1
  61. package/packages/const/src/hotkeys.ts +6 -0
  62. package/packages/conversation-flow/src/__tests__/indexing.test.ts +513 -0
  63. package/packages/conversation-flow/src/__tests__/structuring.test.ts +600 -0
  64. package/packages/database/src/client/db.ts +12 -12
  65. package/packages/database/src/repositories/dataImporter/index.ts +10 -10
  66. package/packages/database/src/schemas/topic.ts +1 -1
  67. package/packages/database/src/server/models/ragEval/evaluation.ts +1 -1
  68. package/packages/types/src/hotkey.ts +1 -0
  69. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/ClassicChat.tsx +1 -1
  70. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/GroupChat.tsx +1 -1
  71. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/ChatItem/index.tsx +1 -1
  72. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/Content.tsx +2 -2
  73. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/index.tsx +1 -1
  74. package/src/app/[variants]/(main)/chat/components/conversation/features/ChatMinimap/index.tsx +1 -1
  75. package/src/app/[variants]/(main)/settings/_layout/Desktop/index.tsx +41 -8
  76. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/Card.tsx +6 -4
  77. package/src/app/[variants]/(main)/settings/provider/(list)/ProviderGrid/index.tsx +16 -4
  78. package/src/app/[variants]/(main)/settings/provider/(list)/index.tsx +15 -3
  79. package/src/app/[variants]/(main)/settings/provider/detail/index.tsx +23 -15
  80. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +1 -1
  81. package/src/components/InvalidAPIKey/APIKeyForm/ComfyUIForm.tsx +1 -1
  82. package/src/components/InvalidAPIKey/APIKeyForm/ProviderApiKeyForm.tsx +1 -1
  83. package/src/components/InvalidAPIKey/APIKeyForm/__tests__/ComfyUIForm.test.tsx +1 -1
  84. package/src/components/InvalidAPIKey/index.tsx +1 -1
  85. package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.test.ts +1 -2
  86. package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/index.tsx +2 -2
  87. package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.test.tsx +3 -3
  88. package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.tsx +6 -5
  89. package/src/features/{Conversation → ChatList}/Messages/Assistant/MessageContent.tsx +1 -1
  90. package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithContentId.tsx +2 -2
  91. package/src/features/{Conversation → ChatList}/Messages/Group/ContentBlock.tsx +2 -2
  92. package/src/features/{Conversation → ChatList}/Messages/Group/Error/index.tsx +2 -1
  93. package/src/features/{Conversation → ChatList}/Messages/Group/Group.tsx +1 -1
  94. package/src/features/{Conversation → ChatList}/Messages/Group/GroupItem.tsx +3 -2
  95. package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ApprovalActions.tsx +1 -1
  96. package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/index.tsx +1 -2
  97. package/src/features/{Conversation → ChatList}/Messages/Group/index.tsx +1 -1
  98. package/src/features/{Conversation → ChatList}/Messages/User/Extra.tsx +3 -3
  99. package/src/features/{Conversation → ChatList}/Messages/User/index.tsx +1 -1
  100. package/src/features/{Conversation → ChatList}/Messages/index.tsx +1 -1
  101. package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/Preview.tsx +1 -1
  102. package/src/features/{Conversation → ChatList}/components/SkeletonList.tsx +1 -1
  103. package/src/features/{Conversation → ChatList}/components/VirtualizedList/index.tsx +1 -1
  104. package/src/features/OllamaSetupGuide/index.tsx +1 -1
  105. package/src/features/PluginsUI/Render/MCPType/index.tsx +1 -1
  106. package/src/features/Portal/GroupThread/Body/ThreadChatItem.tsx +1 -1
  107. package/src/features/Portal/GroupThread/Body/ThreadChatList.tsx +1 -1
  108. package/src/features/Portal/Thread/Chat/ChatInput/index.tsx +1 -1
  109. package/src/features/Portal/Thread/Chat/ChatItem.tsx +1 -1
  110. package/src/features/Portal/Thread/Chat/ChatList.tsx +1 -1
  111. package/src/features/Portal/Thread/Chat/index.tsx +1 -1
  112. package/src/features/ShareModal/ShareImage/ChatList/index.tsx +1 -1
  113. package/src/layout/GlobalProvider/Cmdk.tsx +470 -0
  114. package/src/layout/GlobalProvider/CmdkLazy.tsx +17 -0
  115. package/src/layout/GlobalProvider/index.tsx +2 -0
  116. package/src/locales/default/common.ts +21 -0
  117. package/src/locales/default/hotkey.ts +4 -0
  118. package/src/services/debug.ts +4 -4
  119. package/src/services/electron/remoteServer.ts +5 -5
  120. package/src/services/electron/settings.ts +6 -6
  121. package/src/services/mcp.ts +18 -18
  122. package/src/services/models.ts +20 -20
  123. /package/src/features/{Conversation → ChatList}/Error/AccessCodeForm.tsx +0 -0
  124. /package/src/features/{Conversation → ChatList}/Error/ChatInvalidApiKey.tsx +0 -0
  125. /package/src/features/{Conversation → ChatList}/Error/ClerkLogin/index.tsx +0 -0
  126. /package/src/features/{Conversation → ChatList}/Error/ErrorJsonViewer.tsx +0 -0
  127. /package/src/features/{Conversation → ChatList}/Error/OAuthForm.tsx +0 -0
  128. /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/InvalidOllamaModel.tsx +0 -0
  129. /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/index.tsx +0 -0
  130. /package/src/features/{Conversation → ChatList}/Error/index.tsx +0 -0
  131. /package/src/features/{Conversation → ChatList}/Error/style.tsx +0 -0
  132. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/Icon.tsx +0 -0
  133. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/index.tsx +0 -0
  134. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/index.ts +0 -0
  135. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.test.ts +0 -0
  136. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.ts +0 -0
  137. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/Render.tsx +0 -0
  138. /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/index.ts +0 -0
  139. /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/Render/index.tsx +0 -0
  140. /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/index.ts +0 -0
  141. /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/Render.tsx +0 -0
  142. /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/index.ts +0 -0
  143. /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/Render.tsx +0 -0
  144. /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/index.ts +0 -0
  145. /package/src/features/{Conversation → ChatList}/MarkdownElements/index.ts +0 -0
  146. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/__snapshots__/createRemarkSelfClosingTagPlugin.test.ts.snap +0 -0
  147. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagPlugin.ts +0 -0
  148. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagWithAttributesPlugin.ts +0 -0
  149. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.test.ts +0 -0
  150. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.ts +0 -0
  151. /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.ts +0 -0
  152. /package/src/features/{Conversation → ChatList}/MarkdownElements/type.ts +0 -0
  153. /package/src/features/{Conversation → ChatList}/MarkdownElements/utils.ts +0 -0
  154. /package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/Error.tsx +0 -0
  155. /package/src/features/{Conversation → ChatList}/Messages/Assistant/CollapsedMessage.tsx +0 -0
  156. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/index.tsx +0 -0
  157. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/style.ts +0 -0
  158. /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/index.tsx +0 -0
  159. /package/src/features/{Conversation → ChatList}/Messages/Assistant/IntentUnderstanding.tsx +0 -0
  160. /package/src/features/{Conversation → ChatList}/Messages/Assistant/Reasoning/index.tsx +0 -0
  161. /package/src/features/{Conversation → ChatList}/Messages/Assistant/SearchGrounding.tsx +0 -0
  162. /package/src/features/{Conversation → ChatList}/Messages/Assistant/index.tsx +0 -0
  163. /package/src/features/{Conversation → ChatList}/Messages/Default.tsx +0 -0
  164. /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithoutContentId.tsx +0 -0
  165. /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/index.tsx +0 -0
  166. /package/src/features/{Conversation → ChatList}/Messages/Group/CollapsedMessage.tsx +0 -0
  167. /package/src/features/{Conversation → ChatList}/Messages/Group/EditState.tsx +0 -0
  168. /package/src/features/{Conversation → ChatList}/Messages/Group/GroupContext.ts +0 -0
  169. /package/src/features/{Conversation → ChatList}/Messages/Group/MessageContent.tsx +0 -0
  170. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
  171. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Debug.tsx +0 -0
  172. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginResult.tsx +0 -0
  173. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginState.tsx +0 -0
  174. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Settings.tsx +0 -0
  175. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/StatusIndicator.tsx +0 -0
  176. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/ToolTitle.tsx +0 -0
  177. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/index.tsx +0 -0
  178. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/AbortResponse.tsx +0 -0
  179. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
  180. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +0 -0
  181. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/index.tsx +0 -0
  182. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/CustomRender.tsx +0 -0
  183. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/ErrorResponse.tsx +0 -0
  184. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/Fallback.tsx +0 -0
  185. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/KeyValueEditor.tsx +0 -0
  186. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ModeSelector.tsx +0 -0
  187. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/index.tsx +0 -0
  188. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +0 -0
  189. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/PluginSettings.tsx +0 -0
  190. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/RejectedResponse.tsx +0 -0
  191. /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/index.tsx +0 -0
  192. /package/src/features/{Conversation → ChatList}/Messages/Group/Tools.tsx +0 -0
  193. /package/src/features/{Conversation → ChatList}/Messages/Supervisor/TodoList.tsx +0 -0
  194. /package/src/features/{Conversation → ChatList}/Messages/Supervisor/index.tsx +0 -0
  195. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
  196. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Debug.tsx +0 -0
  197. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginResult.tsx +0 -0
  198. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginState.tsx +0 -0
  199. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Settings.tsx +0 -0
  200. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/ToolTitle.tsx +0 -0
  201. /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/index.tsx +0 -0
  202. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
  203. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ValueCell.tsx +0 -0
  204. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/index.tsx +0 -0
  205. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/CustomRender.tsx +0 -0
  206. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/ErrorResponse.tsx +0 -0
  207. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/KeyValueEditor.tsx +0 -0
  208. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/PluginSettings.tsx +0 -0
  209. /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/index.tsx +0 -0
  210. /package/src/features/{Conversation → ChatList}/Messages/Tool/ToolItem.tsx +0 -0
  211. /package/src/features/{Conversation → ChatList}/Messages/Tool/index.tsx +0 -0
  212. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/ActionsBar.tsx +0 -0
  213. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/MessageBranch.tsx +0 -0
  214. /package/src/features/{Conversation → ChatList}/Messages/User/Actions/index.tsx +0 -0
  215. /package/src/features/{Conversation → ChatList}/Messages/User/BelowMessage.tsx +0 -0
  216. /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/Item.tsx +0 -0
  217. /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/index.tsx +0 -0
  218. /package/src/features/{Conversation → ChatList}/Messages/User/ImageFileListViewer.tsx +0 -0
  219. /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/ContentPreview.tsx +0 -0
  220. /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/index.tsx +0 -0
  221. /package/src/features/{Conversation → ChatList}/Messages/User/MessageContent.tsx +0 -0
  222. /package/src/features/{Conversation → ChatList}/Messages/User/VideoFileListViewer.tsx +0 -0
  223. /package/src/features/{Conversation → ChatList}/components/AutoScroll.tsx +0 -0
  224. /package/src/features/{Conversation → ChatList}/components/BackBottom/index.tsx +0 -0
  225. /package/src/features/{Conversation → ChatList}/components/BackBottom/style.ts +0 -0
  226. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/PdfPreview.tsx +0 -0
  227. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/index.tsx +0 -0
  228. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/style.ts +0 -0
  229. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/template.ts +0 -0
  230. /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/usePdfGeneration.ts +0 -0
  231. /package/src/features/{Conversation → ChatList}/components/Extras/ExtraContainer.tsx +0 -0
  232. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/FilePlayer.tsx +0 -0
  233. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/InitPlayer.tsx +0 -0
  234. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/Player.tsx +0 -0
  235. /package/src/features/{Conversation → ChatList}/components/Extras/TTS/index.tsx +0 -0
  236. /package/src/features/{Conversation → ChatList}/components/Extras/Translate.tsx +0 -0
  237. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/AnimatedNumber.tsx +0 -0
  238. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/ModelCard.tsx +0 -0
  239. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/TokenProgress.tsx +0 -0
  240. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/index.tsx +0 -0
  241. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/pricing.ts +0 -0
  242. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.test.ts +0 -0
  243. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.ts +0 -0
  244. /package/src/features/{Conversation → ChatList}/components/Extras/Usage/index.tsx +0 -0
  245. /package/src/features/{Conversation → ChatList}/components/History/HistoryDivider.tsx +0 -0
  246. /package/src/features/{Conversation → ChatList}/components/History/index.tsx +0 -0
  247. /package/src/features/{Conversation → ChatList}/components/OTPInput.tsx +0 -0
  248. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/index.tsx +0 -0
  249. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/style.ts +0 -0
  250. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/type.ts +0 -0
  251. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/Preview.tsx +0 -0
  252. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/index.tsx +0 -0
  253. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.test.ts +0 -0
  254. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.ts +0 -0
  255. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/type.ts +0 -0
  256. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/index.tsx +0 -0
  257. /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/style.ts +0 -0
  258. /package/src/features/{Conversation → ChatList}/components/ThreadDivider/index.tsx +0 -0
  259. /package/src/features/{Conversation → ChatList}/components/VirtualizedList/VirtuosoContext.ts +0 -0
  260. /package/src/features/{Conversation → ChatList}/components/WideScreenContainer/index.tsx +0 -0
  261. /package/src/features/{Conversation → ChatList}/context/InPortalThreadContext.ts +0 -0
  262. /package/src/features/{Conversation → ChatList}/hooks/useChatListActionsBar.tsx +0 -0
  263. /package/src/features/{Conversation → ChatList}/hooks/useDoubleClickEdit.ts +0 -0
  264. /package/src/features/{Conversation → ChatList}/index.ts +0 -0
  265. /package/src/features/{Conversation → ChatList}/types/index.ts +0 -0
  266. /package/src/features/{Conversation → ChatList}/utils/markdown.test.ts +0 -0
  267. /package/src/features/{Conversation → ChatList}/utils/markdown.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,64 @@
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
+
38
+ ## [Version 2.0.0-next.96](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.95...v2.0.0-next.96)
39
+
40
+ <sup>Released on **2025-11-20**</sup>
41
+
42
+ #### ✨ Features
43
+
44
+ - **misc**: Support Command Menu (CMD + J).
45
+
46
+ <br/>
47
+
48
+ <details>
49
+ <summary><kbd>Improvements and Fixes</kbd></summary>
50
+
51
+ #### What's improved
52
+
53
+ - **misc**: Support Command Menu (CMD + J), closes [#10271](https://github.com/lobehub/lobe-chat/issues/10271) ([a9aed0b](https://github.com/lobehub/lobe-chat/commit/a9aed0b))
54
+
55
+ </details>
56
+
57
+ <div align="right">
58
+
59
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
60
+
61
+ </div>
62
+
5
63
  ## [Version 2.0.0-next.95](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.94...v2.0.0-next.95)
6
64
 
7
65
  <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,22 @@
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
+ },
11
+ {
12
+ "children": {
13
+ "features": [
14
+ "Support Command Menu (CMD + J)."
15
+ ]
16
+ },
17
+ "date": "2025-11-20",
18
+ "version": "2.0.0-next.96"
19
+ },
2
20
  {
3
21
  "children": {
4
22
  "features": [
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "إغلاق",
138
+ "cmdk": {
139
+ "about": "حول",
140
+ "communitySupport": "دعم المجتمع",
141
+ "discover": "استكشاف",
142
+ "knowledgeBase": "قاعدة المعرفة",
143
+ "navigate": "التنقل",
144
+ "newAgent": "إنشاء مساعد جديد",
145
+ "noResults": "لم يتم العثور على نتائج",
146
+ "openSettings": "فتح الإعدادات",
147
+ "painting": "الرسم بالذكاء الاصطناعي",
148
+ "searchPlaceholder": "أدخل أمرًا أو ابحث...",
149
+ "settings": "الإعدادات",
150
+ "starOnGitHub": "قيّمنا على GitHub",
151
+ "submitIssue": "إرسال مشكلة",
152
+ "theme": "السمة",
153
+ "themeAuto": "اتباع النظام",
154
+ "themeDark": "الوضع الداكن",
155
+ "themeLight": "الوضع الفاتح",
156
+ "toOpen": "فتح",
157
+ "toSelect": "تحديد"
158
+ },
138
159
  "confirm": "تأكيد",
139
160
  "contact": "اتصل بنا",
140
161
  "copy": "نسخ",
@@ -7,6 +7,10 @@
7
7
  "desc": "مسح الرسائل والملفات المرفوعة في المحادثة الحالية",
8
8
  "title": "مسح رسائل المحادثة"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "افتح لوحة الأوامر العامة للوصول السريع إلى الميزات",
12
+ "title": "لوحة الأوامر"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "حذف الرسالة الأخيرة وإعادة إنشائها",
12
16
  "title": "حذف وإعادة إنشاء"
@@ -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
  },
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "Затвори",
138
+ "cmdk": {
139
+ "about": "Относно",
140
+ "communitySupport": "Общностна поддръжка",
141
+ "discover": "Открий",
142
+ "knowledgeBase": "База знания",
143
+ "navigate": "Навигация",
144
+ "newAgent": "Създай агент",
145
+ "noResults": "Няма намерени резултати",
146
+ "openSettings": "Отвори настройките",
147
+ "painting": "AI Рисуване",
148
+ "searchPlaceholder": "Въведете команда или търсене...",
149
+ "settings": "Настройки",
150
+ "starOnGitHub": "Дайте ни звезда в GitHub",
151
+ "submitIssue": "Подайте проблем",
152
+ "theme": "Тема",
153
+ "themeAuto": "Следвай системата",
154
+ "themeDark": "Тъмен режим",
155
+ "themeLight": "Светъл режим",
156
+ "toOpen": "Отвори",
157
+ "toSelect": "Избери"
158
+ },
138
159
  "confirm": "Потвърди",
139
160
  "contact": "Свържете се с нас",
140
161
  "copy": "Копирай",
@@ -7,6 +7,10 @@
7
7
  "desc": "Изтриване на текущите съобщения и качените файлове в сесията",
8
8
  "title": "Изтриване на съобщенията в сесията"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "Отворете глобалния панел с команди за бърз достъп до функции",
12
+ "title": "Панел с команди"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "Изтриване на последното съобщение и повторно генериране",
12
16
  "title": "Изтрий и генерирай отново"
@@ -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
  },
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "Schließen",
138
+ "cmdk": {
139
+ "about": "Über",
140
+ "communitySupport": "Community-Support",
141
+ "discover": "Entdecken",
142
+ "knowledgeBase": "Wissensdatenbank",
143
+ "navigate": "Navigieren",
144
+ "newAgent": "Neuen Assistenten erstellen",
145
+ "noResults": "Keine Ergebnisse gefunden",
146
+ "openSettings": "Einstellungen öffnen",
147
+ "painting": "KI-Malerei",
148
+ "searchPlaceholder": "Befehl eingeben oder suchen...",
149
+ "settings": "Einstellungen",
150
+ "starOnGitHub": "Gib uns einen Stern auf GitHub",
151
+ "submitIssue": "Problem melden",
152
+ "theme": "Design",
153
+ "themeAuto": "Systemeinstellung folgen",
154
+ "themeDark": "Dunkles Design",
155
+ "themeLight": "Helles Design",
156
+ "toOpen": "Öffnen",
157
+ "toSelect": "Auswählen"
158
+ },
138
159
  "confirm": "Bestätigen",
139
160
  "contact": "Kontakt",
140
161
  "copy": "Kopieren",
@@ -7,6 +7,10 @@
7
7
  "desc": "Aktuelle Nachrichten und hochgeladene Dateien im Gespräch löschen",
8
8
  "title": "Gesprächsnachrichten löschen"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "Öffne die globale Befehlspalette für schnellen Zugriff auf Funktionen",
12
+ "title": "Befehlspalette"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "Letzte Nachricht löschen und neu generieren",
12
16
  "title": "Löschen und neu generieren"
@@ -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
  },
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "Close",
138
+ "cmdk": {
139
+ "about": "About",
140
+ "communitySupport": "Community Support",
141
+ "discover": "Discover",
142
+ "knowledgeBase": "Knowledge Base",
143
+ "navigate": "Navigate",
144
+ "newAgent": "Create New Assistant",
145
+ "noResults": "No results found",
146
+ "openSettings": "Open Settings",
147
+ "painting": "AI Painting",
148
+ "searchPlaceholder": "Enter a command or search...",
149
+ "settings": "Settings",
150
+ "starOnGitHub": "Star us on GitHub",
151
+ "submitIssue": "Submit Issue",
152
+ "theme": "Theme",
153
+ "themeAuto": "Auto",
154
+ "themeDark": "Dark",
155
+ "themeLight": "Light",
156
+ "toOpen": "to Open",
157
+ "toSelect": "to Select"
158
+ },
138
159
  "confirm": "Confirm",
139
160
  "contact": "Contact Us",
140
161
  "copy": "Copy",
@@ -7,6 +7,10 @@
7
7
  "desc": "Clear the messages and uploaded files from the current conversation",
8
8
  "title": "Clear Conversation Messages"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "Open the global command palette for quick access to features",
12
+ "title": "Command Palette"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "Delete the last message and regenerate",
12
16
  "title": "Delete and Regenerate"
@@ -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
  },
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "Cerrar",
138
+ "cmdk": {
139
+ "about": "Acerca de",
140
+ "communitySupport": "Soporte de la comunidad",
141
+ "discover": "Descubrir",
142
+ "knowledgeBase": "Base de conocimientos",
143
+ "navigate": "Navegar",
144
+ "newAgent": "Nuevo asistente",
145
+ "noResults": "No se encontraron resultados",
146
+ "openSettings": "Abrir configuración",
147
+ "painting": "Dibujo con IA",
148
+ "searchPlaceholder": "Escribe un comando o busca...",
149
+ "settings": "Configuración",
150
+ "starOnGitHub": "Danos una estrella en GitHub",
151
+ "submitIssue": "Informar de un problema",
152
+ "theme": "Tema",
153
+ "themeAuto": "Seguir el sistema",
154
+ "themeDark": "Modo oscuro",
155
+ "themeLight": "Modo claro",
156
+ "toOpen": "Abrir",
157
+ "toSelect": "Seleccionar"
158
+ },
138
159
  "confirm": "Confirmar",
139
160
  "contact": "Contacto",
140
161
  "copy": "Copiar",
@@ -7,6 +7,10 @@
7
7
  "desc": "Eliminar los mensajes y archivos subidos de la conversación actual",
8
8
  "title": "Eliminar mensajes de la conversación"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "Abre el panel de comandos global para acceder rápidamente a las funciones",
12
+ "title": "Panel de Comandos"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "Eliminar el último mensaje y volver a generarlo",
12
16
  "title": "Eliminar y regenerar"
@@ -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
  },
@@ -135,6 +135,27 @@
135
135
  }
136
136
  },
137
137
  "close": "بستن",
138
+ "cmdk": {
139
+ "about": "درباره",
140
+ "communitySupport": "پشتیبانی جامعه",
141
+ "discover": "کشف",
142
+ "knowledgeBase": "پایگاه دانش",
143
+ "navigate": "ناوبری",
144
+ "newAgent": "دستیار جدید",
145
+ "noResults": "نتیجه‌ای یافت نشد",
146
+ "openSettings": "باز کردن تنظیمات",
147
+ "painting": "نقاشی با هوش مصنوعی",
148
+ "searchPlaceholder": "دستور وارد کنید یا جستجو کنید...",
149
+ "settings": "تنظیمات",
150
+ "starOnGitHub": "به ما در GitHub ستاره بدهید",
151
+ "submitIssue": "ارسال مشکل",
152
+ "theme": "تم",
153
+ "themeAuto": "همگام با سیستم",
154
+ "themeDark": "حالت تیره",
155
+ "themeLight": "حالت روشن",
156
+ "toOpen": "باز کردن",
157
+ "toSelect": "انتخاب"
158
+ },
138
159
  "confirm": "تأیید",
139
160
  "contact": "تماس با ما",
140
161
  "copy": "کپی",
@@ -7,6 +7,10 @@
7
7
  "desc": "حذف پیام‌ها و فایل‌های بارگذاری شده در جلسه جاری",
8
8
  "title": "حذف پیام‌های جلسه"
9
9
  },
10
+ "commandPalette": {
11
+ "desc": "باز کردن پنل فرمان جهانی برای دسترسی سریع به قابلیت‌ها",
12
+ "title": "پنل فرمان"
13
+ },
10
14
  "deleteAndRegenerateMessage": {
11
15
  "desc": "آخرین پیام را حذف کرده و دوباره تولید کن",
12
16
  "title": "حذف و تولید مجدد"