@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.
- package/CHANGELOG.md +33 -0
- package/apps/desktop/src/preload/index.ts +2 -2
- package/apps/desktop/src/preload/invoke.ts +1 -1
- package/apps/desktop/src/preload/routeInterceptor.ts +41 -41
- package/changelog/v1.json +9 -0
- package/locales/ar/models.json +6 -0
- package/locales/bg-BG/models.json +6 -0
- package/locales/de-DE/models.json +6 -0
- package/locales/en-US/models.json +6 -0
- package/locales/es-ES/models.json +6 -0
- package/locales/fa-IR/models.json +6 -0
- package/locales/fr-FR/models.json +6 -0
- package/locales/it-IT/models.json +6 -0
- package/locales/ja-JP/models.json +6 -0
- package/locales/ko-KR/models.json +6 -0
- package/locales/nl-NL/models.json +6 -0
- package/locales/pl-PL/models.json +6 -0
- package/locales/pt-BR/models.json +6 -0
- package/locales/ru-RU/models.json +6 -0
- package/locales/tr-TR/models.json +6 -0
- package/locales/vi-VN/models.json +6 -0
- package/locales/zh-CN/models.json +6 -0
- package/locales/zh-TW/models.json +6 -0
- package/package.json +1 -1
- package/packages/database/src/client/db.ts +12 -12
- package/packages/database/src/repositories/dataImporter/index.ts +10 -10
- package/packages/database/src/schemas/topic.ts +1 -1
- package/packages/database/src/server/models/ragEval/evaluation.ts +1 -1
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/ClassicChat.tsx +1 -1
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatInput/Desktop/GroupChat.tsx +1 -1
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/ChatItem/index.tsx +1 -1
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/Content.tsx +2 -2
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatList/index.tsx +1 -1
- package/src/app/[variants]/(main)/chat/components/conversation/features/ChatMinimap/index.tsx +1 -1
- package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +1 -1
- package/src/components/InvalidAPIKey/APIKeyForm/ComfyUIForm.tsx +1 -1
- package/src/components/InvalidAPIKey/APIKeyForm/ProviderApiKeyForm.tsx +1 -1
- package/src/components/InvalidAPIKey/APIKeyForm/__tests__/ComfyUIForm.test.tsx +1 -1
- package/src/components/InvalidAPIKey/index.tsx +1 -1
- package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.test.ts +1 -2
- package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/index.tsx +2 -2
- package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.test.tsx +3 -3
- package/src/features/{Conversation → ChatList}/Messages/Assistant/Extra/index.tsx +6 -5
- package/src/features/{Conversation → ChatList}/Messages/Assistant/MessageContent.tsx +1 -1
- package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithContentId.tsx +2 -2
- package/src/features/{Conversation → ChatList}/Messages/Group/ContentBlock.tsx +2 -2
- package/src/features/{Conversation → ChatList}/Messages/Group/Error/index.tsx +2 -1
- package/src/features/{Conversation → ChatList}/Messages/Group/Group.tsx +1 -1
- package/src/features/{Conversation → ChatList}/Messages/Group/GroupItem.tsx +3 -2
- package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ApprovalActions.tsx +1 -1
- package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/index.tsx +1 -2
- package/src/features/{Conversation → ChatList}/Messages/Group/index.tsx +1 -1
- package/src/features/{Conversation → ChatList}/Messages/User/Extra.tsx +3 -3
- package/src/features/{Conversation → ChatList}/Messages/User/index.tsx +1 -1
- package/src/features/{Conversation → ChatList}/Messages/index.tsx +1 -1
- package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/Preview.tsx +1 -1
- package/src/features/{Conversation → ChatList}/components/SkeletonList.tsx +1 -1
- package/src/features/{Conversation → ChatList}/components/VirtualizedList/index.tsx +1 -1
- package/src/features/OllamaSetupGuide/index.tsx +1 -1
- package/src/features/PluginsUI/Render/MCPType/index.tsx +1 -1
- package/src/features/Portal/GroupThread/Body/ThreadChatItem.tsx +1 -1
- package/src/features/Portal/GroupThread/Body/ThreadChatList.tsx +1 -1
- package/src/features/Portal/Thread/Chat/ChatInput/index.tsx +1 -1
- package/src/features/Portal/Thread/Chat/ChatItem.tsx +1 -1
- package/src/features/Portal/Thread/Chat/ChatList.tsx +1 -1
- package/src/features/Portal/Thread/Chat/index.tsx +1 -1
- package/src/features/ShareModal/ShareImage/ChatList/index.tsx +1 -1
- package/src/services/debug.ts +4 -4
- package/src/services/electron/remoteServer.ts +5 -5
- package/src/services/electron/settings.ts +6 -6
- package/src/services/mcp.ts +18 -18
- package/src/services/models.ts +20 -20
- /package/src/features/{Conversation → ChatList}/Error/AccessCodeForm.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/ChatInvalidApiKey.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/ClerkLogin/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/ErrorJsonViewer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/OAuthForm.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/InvalidOllamaModel.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/OllamaBizError/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Error/style.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/Icon.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/Render/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.test.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeArtifact/rehypePlugin.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/Render.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LobeThinking/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/Render/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/LocalFile/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/Render.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/Mention/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/Render.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/Thinking/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/__snapshots__/createRemarkSelfClosingTagPlugin.test.ts.snap +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagPlugin.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkCustomTagWithAttributesPlugin.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.test.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/remarkPlugins/getNodeContent.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/type.ts +0 -0
- /package/src/features/{Conversation → ChatList}/MarkdownElements/utils.ts +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/Actions/Error.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/CollapsedMessage.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/Item/style.ts +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/FileChunks/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/IntentUnderstanding.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/Reasoning/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/SearchGrounding.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Assistant/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Default.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/WithoutContentId.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Actions/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/CollapsedMessage.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/EditState.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/GroupContext.ts +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/MessageContent.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Debug.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginResult.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/PluginState.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/Settings.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/StatusIndicator.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/ToolTitle.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Inspector/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/AbortResponse.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/ValueCell.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Arguments/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/CustomRender.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/ErrorResponse.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/Fallback.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/KeyValueEditor.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/ModeSelector.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/Intervention/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/LoadingPlaceholder/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/PluginSettings.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/Render/RejectedResponse.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tool/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Group/Tools.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Supervisor/TodoList.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Supervisor/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/BuiltinPluginTitle.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Debug.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginResult.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/PluginState.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/Settings.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/ToolTitle.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Inspector/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ObjectEntity.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/ValueCell.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/Arguments/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/CustomRender.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/ErrorResponse.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/KeyValueEditor.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/PluginSettings.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/Render/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/ToolItem.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/Tool/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/Actions/ActionsBar.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/Actions/MessageBranch.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/Actions/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/BelowMessage.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/Item.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/FileListViewer/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/ImageFileListViewer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/ContentPreview.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/MarkdownRender/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/MessageContent.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/Messages/User/VideoFileListViewer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/AutoScroll.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/BackBottom/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/BackBottom/style.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/PdfPreview.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/style.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/template.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ChatItem/ShareMessageModal/SharePdf/usePdfGeneration.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/ExtraContainer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/TTS/FilePlayer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/TTS/InitPlayer.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/TTS/Player.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/TTS/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Translate.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/AnimatedNumber.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/ModelCard.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/TokenProgress.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/pricing.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.test.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/UsageDetail/tokens.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/Extras/Usage/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/History/HistoryDivider.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/History/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/OTPInput.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/style.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareImage/type.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/Preview.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.test.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/template.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/ShareText/type.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/ShareMessageModal/style.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/ThreadDivider/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/components/VirtualizedList/VirtuosoContext.ts +0 -0
- /package/src/features/{Conversation → ChatList}/components/WideScreenContainer/index.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/context/InPortalThreadContext.ts +0 -0
- /package/src/features/{Conversation → ChatList}/hooks/useChatListActionsBar.tsx +0 -0
- /package/src/features/{Conversation → ChatList}/hooks/useDoubleClickEdit.ts +0 -0
- /package/src/features/{Conversation → ChatList}/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/types/index.ts +0 -0
- /package/src/features/{Conversation → ChatList}/utils/markdown.test.ts +0 -0
- /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
|
+
[](#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
|
-
*
|
|
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
|
-
//
|
|
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
|
-
//
|
|
25
|
+
// Store prevented paths to avoid pushState duplicate triggers
|
|
26
26
|
const preventedPaths = new Set<string>();
|
|
27
27
|
|
|
28
|
-
//
|
|
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; //
|
|
41
|
+
return null; // Return null to indicate no window was opened
|
|
42
42
|
}
|
|
43
43
|
} catch (error) {
|
|
44
|
-
//
|
|
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
|
-
//
|
|
52
|
+
// For internal links, call original window.open
|
|
53
53
|
return originalWindowOpen.call(window, url, target, features);
|
|
54
54
|
};
|
|
55
55
|
|
|
56
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
98
|
-
//
|
|
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
|
-
//
|
|
105
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
119
|
+
// Override pushState
|
|
120
120
|
history.pushState = function () {
|
|
121
121
|
const url = arguments[2];
|
|
122
122
|
if (typeof url === 'string') {
|
|
123
123
|
try {
|
|
124
|
-
//
|
|
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
|
-
//
|
|
150
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
package/locales/ar/models.json
CHANGED
|
@@ -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.
|
|
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",
|