@lobehub/chat 1.81.3 → 1.81.4
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/changelog/v1.json +12 -0
- package/locales/ar/common.json +2 -0
- package/locales/ar/electron.json +32 -0
- package/locales/ar/models.json +126 -3
- package/locales/ar/plugin.json +1 -0
- package/locales/ar/tool.json +25 -0
- package/locales/bg-BG/common.json +2 -0
- package/locales/bg-BG/electron.json +32 -0
- package/locales/bg-BG/models.json +126 -3
- package/locales/bg-BG/plugin.json +1 -0
- package/locales/bg-BG/tool.json +25 -0
- package/locales/de-DE/common.json +2 -0
- package/locales/de-DE/electron.json +32 -0
- package/locales/de-DE/models.json +126 -3
- package/locales/de-DE/plugin.json +1 -0
- package/locales/de-DE/tool.json +25 -0
- package/locales/en-US/common.json +2 -0
- package/locales/en-US/electron.json +32 -0
- package/locales/en-US/models.json +126 -3
- package/locales/en-US/plugin.json +1 -0
- package/locales/en-US/tool.json +25 -0
- package/locales/es-ES/common.json +2 -0
- package/locales/es-ES/electron.json +32 -0
- package/locales/es-ES/models.json +126 -3
- package/locales/es-ES/plugin.json +1 -0
- package/locales/es-ES/tool.json +25 -0
- package/locales/fa-IR/common.json +2 -0
- package/locales/fa-IR/electron.json +32 -0
- package/locales/fa-IR/models.json +126 -3
- package/locales/fa-IR/plugin.json +1 -0
- package/locales/fa-IR/tool.json +25 -0
- package/locales/fr-FR/common.json +2 -0
- package/locales/fr-FR/electron.json +32 -0
- package/locales/fr-FR/models.json +126 -3
- package/locales/fr-FR/plugin.json +1 -0
- package/locales/fr-FR/tool.json +25 -0
- package/locales/it-IT/common.json +2 -0
- package/locales/it-IT/electron.json +32 -0
- package/locales/it-IT/models.json +126 -3
- package/locales/it-IT/plugin.json +1 -0
- package/locales/it-IT/tool.json +25 -0
- package/locales/ja-JP/common.json +2 -0
- package/locales/ja-JP/electron.json +32 -0
- package/locales/ja-JP/models.json +126 -3
- package/locales/ja-JP/plugin.json +1 -0
- package/locales/ja-JP/tool.json +25 -0
- package/locales/ko-KR/common.json +2 -0
- package/locales/ko-KR/electron.json +32 -0
- package/locales/ko-KR/models.json +126 -3
- package/locales/ko-KR/plugin.json +1 -0
- package/locales/ko-KR/tool.json +25 -0
- package/locales/nl-NL/common.json +2 -0
- package/locales/nl-NL/electron.json +32 -0
- package/locales/nl-NL/models.json +126 -3
- package/locales/nl-NL/plugin.json +1 -0
- package/locales/nl-NL/tool.json +25 -0
- package/locales/pl-PL/common.json +2 -0
- package/locales/pl-PL/electron.json +32 -0
- package/locales/pl-PL/models.json +126 -3
- package/locales/pl-PL/plugin.json +1 -0
- package/locales/pl-PL/tool.json +25 -0
- package/locales/pt-BR/common.json +2 -0
- package/locales/pt-BR/electron.json +32 -0
- package/locales/pt-BR/models.json +126 -3
- package/locales/pt-BR/plugin.json +1 -0
- package/locales/pt-BR/tool.json +25 -0
- package/locales/ru-RU/common.json +2 -0
- package/locales/ru-RU/electron.json +32 -0
- package/locales/ru-RU/models.json +126 -3
- package/locales/ru-RU/plugin.json +1 -0
- package/locales/ru-RU/tool.json +25 -0
- package/locales/tr-TR/common.json +2 -0
- package/locales/tr-TR/electron.json +32 -0
- package/locales/tr-TR/models.json +126 -3
- package/locales/tr-TR/plugin.json +1 -0
- package/locales/tr-TR/tool.json +25 -0
- package/locales/vi-VN/common.json +2 -0
- package/locales/vi-VN/electron.json +32 -0
- package/locales/vi-VN/models.json +126 -3
- package/locales/vi-VN/plugin.json +1 -0
- package/locales/vi-VN/tool.json +25 -0
- package/locales/zh-CN/common.json +2 -0
- package/locales/zh-CN/electron.json +32 -0
- package/locales/zh-CN/models.json +131 -8
- package/locales/zh-CN/plugin.json +1 -0
- package/locales/zh-CN/tool.json +25 -0
- package/locales/zh-TW/common.json +2 -0
- package/locales/zh-TW/electron.json +32 -0
- package/locales/zh-TW/models.json +126 -3
- package/locales/zh-TW/plugin.json +1 -0
- package/locales/zh-TW/tool.json +25 -0
- package/package.json +3 -2
- package/packages/electron-client-ipc/src/events/index.ts +5 -5
- package/packages/electron-client-ipc/src/events/localFile.ts +22 -0
- package/packages/electron-client-ipc/src/events/{file.ts → upload.ts} +1 -1
- package/packages/electron-client-ipc/src/types/index.ts +2 -1
- package/packages/electron-client-ipc/src/types/localFile.ts +52 -0
- package/scripts/prebuild.mts +5 -1
- package/src/app/(backend)/trpc/desktop/[trpc]/route.ts +26 -0
- package/src/features/Conversation/Messages/Assistant/Tool/Render/Arguments/ObjectEntity.tsx +81 -0
- package/src/features/Conversation/Messages/Assistant/Tool/Render/Arguments/ValueCell.tsx +43 -0
- package/src/features/Conversation/Messages/Assistant/Tool/Render/Arguments/index.tsx +120 -0
- package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +75 -2
- package/src/features/Conversation/Messages/Assistant/Tool/Render/KeyValueEditor.tsx +214 -0
- package/src/features/User/UserPanel/useMenu.tsx +8 -1
- package/src/libs/agent-runtime/google/index.ts +3 -0
- package/src/libs/trpc/client/desktop.ts +14 -0
- package/src/locales/default/common.ts +2 -0
- package/src/locales/default/electron.ts +34 -0
- package/src/locales/default/index.ts +2 -0
- package/src/locales/default/tool.ts +25 -0
- package/src/server/routers/desktop/index.ts +9 -0
- package/src/server/routers/desktop/pgTable.ts +43 -0
- package/src/services/electron/autoUpdate.ts +17 -0
- package/src/services/electron/file.ts +31 -0
- package/src/services/electron/localFileService.ts +39 -0
- package/src/services/electron/remoteServer.ts +40 -0
- package/src/store/chat/index.ts +1 -1
- package/src/store/chat/slices/builtinTool/actions/index.ts +3 -1
- package/src/store/chat/slices/builtinTool/actions/localFile.ts +129 -0
- package/src/store/chat/slices/builtinTool/initialState.ts +2 -0
- package/src/store/chat/slices/builtinTool/selectors.ts +2 -0
- package/src/store/chat/slices/plugin/action.ts +3 -3
- package/src/store/chat/store.ts +2 -0
- package/src/store/electron/actions/sync.ts +117 -0
- package/src/store/electron/index.ts +1 -0
- package/src/store/electron/initialState.ts +18 -0
- package/src/store/electron/selectors/index.ts +1 -0
- package/src/store/electron/selectors/sync.ts +9 -0
- package/src/store/electron/store.ts +29 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/local-files/Render/ListFiles/Result.tsx +42 -0
- package/src/tools/local-files/Render/ListFiles/index.tsx +68 -0
- package/src/tools/local-files/Render/ReadLocalFile/ReadFileSkeleton.tsx +50 -0
- package/src/tools/local-files/Render/ReadLocalFile/ReadFileView.tsx +197 -0
- package/src/tools/local-files/Render/ReadLocalFile/index.tsx +31 -0
- package/src/tools/local-files/Render/ReadLocalFile/style.ts +37 -0
- package/src/tools/local-files/Render/SearchFiles/Result.tsx +42 -0
- package/src/tools/local-files/Render/SearchFiles/SearchQuery/SearchView.tsx +77 -0
- package/src/tools/local-files/Render/SearchFiles/SearchQuery/index.tsx +72 -0
- package/src/tools/local-files/Render/SearchFiles/index.tsx +32 -0
- package/src/tools/local-files/Render/index.tsx +36 -0
- package/src/tools/local-files/components/FileItem.tsx +117 -0
- package/src/tools/local-files/index.ts +149 -0
- package/src/tools/local-files/systemRole.ts +46 -0
- package/src/tools/local-files/type.ts +33 -0
- package/src/tools/renders.ts +3 -0
- package/packages/electron-client-ipc/src/events/search.ts +0 -4
- package/src/features/Conversation/Messages/Assistant/Tool/Render/Arguments.tsx +0 -165
- /package/packages/electron-client-ipc/src/types/{file.ts → upload.ts} +0 -0
@@ -5,9 +5,15 @@
|
|
5
5
|
"01-ai/yi-1.5-9b-chat": {
|
6
6
|
"description": "零一萬物,最新開源微調模型,90億參數,微調支持多種對話場景,高質量訓練數據,對齊人類偏好。"
|
7
7
|
},
|
8
|
+
"360/deepseek-r1": {
|
9
|
+
"description": "【360部署版】DeepSeek-R1在後訓練階段大規模使用了強化學習技術,在僅有極少標註數據的情況下,極大提升了模型推理能力。在數學、程式碼、自然語言推理等任務上,性能比肩 OpenAI o1 正式版。"
|
10
|
+
},
|
8
11
|
"360gpt-pro": {
|
9
12
|
"description": "360GPT Pro 作為 360 AI 模型系列的重要成員,以高效的文本處理能力滿足多樣化的自然語言應用場景,支持長文本理解和多輪對話等功能。"
|
10
13
|
},
|
14
|
+
"360gpt-pro-trans": {
|
15
|
+
"description": "翻譯專用模型,深度微調優化,翻譯效果領先。"
|
16
|
+
},
|
11
17
|
"360gpt-turbo": {
|
12
18
|
"description": "360GPT Turbo 提供強大的計算和對話能力,具備出色的語義理解和生成效率,是企業和開發者理想的智能助理解決方案。"
|
13
19
|
},
|
@@ -62,6 +68,18 @@
|
|
62
68
|
"DeepSeek-R1-Distill-Qwen-7B": {
|
63
69
|
"description": "基於 Qwen2.5-Math-7B 的 DeepSeek-R1 蒸餾模型,通過強化學習與冷啟動數據優化推理性能,開源模型刷新多任務標杆。"
|
64
70
|
},
|
71
|
+
"DeepSeek-V3": {
|
72
|
+
"description": "DeepSeek-V3 是一款由深度求索公司自研的MoE模型。DeepSeek-V3 多項評測成績超越了 Qwen2.5-72B 和 Llama-3.1-405B 等其他開源模型,並在性能上和世界頂尖的閉源模型 GPT-4o 以及 Claude-3.5-Sonnet 不分伯仲。"
|
73
|
+
},
|
74
|
+
"Doubao-1.5-thinking-pro": {
|
75
|
+
"description": "Doubao-1.5全新深度思考模型,在數學、程式設計、科學推理等專業領域及創意寫作等通用任務中表現突出,在AIME 2024、Codeforces、GPQA等多項權威基準上達到或接近業界第一梯隊水平。支持128k上下文窗口,16k輸出。"
|
76
|
+
},
|
77
|
+
"Doubao-1.5-thinking-pro-vision": {
|
78
|
+
"description": "Doubao-1.5全新深度思考模型,在數學、程式設計、科學推理等專業領域及創意寫作等通用任務中表現突出,在AIME 2024、Codeforces、GPQA等多項權威基準上達到或接近業界第一梯隊水平。支持128k上下文窗口,16k輸出。"
|
79
|
+
},
|
80
|
+
"Doubao-1.5-vision-pro": {
|
81
|
+
"description": "Doubao-1.5-vision-pro 全新升級的多模態大模型,支持任意解析度和極端長寬比圖像識別,增強視覺推理、文檔識別、細節信息理解和指令遵循能力。"
|
82
|
+
},
|
65
83
|
"Doubao-1.5-vision-pro-32k": {
|
66
84
|
"description": "Doubao-1.5-vision-pro 全新升級的多模態大模型,支持任意解析度和極端長寬比圖像識別,增強視覺推理、文檔識別、細節信息理解和指令遵循能力。"
|
67
85
|
},
|
@@ -341,6 +359,15 @@
|
|
341
359
|
"SenseChat-Vision": {
|
342
360
|
"description": "最新版本模型 (V5.5),支持多圖的輸入,全面實現模型基礎能力優化,在對象屬性識別、空間關係、動作事件識別、場景理解、情感識別、邏輯常識推理和文本理解生成上都實現了較大提升。"
|
343
361
|
},
|
362
|
+
"SenseNova-V6-Pro": {
|
363
|
+
"description": "實現圖片、文本、視頻能力的原生統一,突破傳統多模態分立局限,在OpenCompass和SuperCLUE評測中斬獲雙冠軍。"
|
364
|
+
},
|
365
|
+
"SenseNova-V6-Reasoner": {
|
366
|
+
"description": "兼顧視覺、語言深度推理,實現慢思考和深度推理,呈現完整的思維鏈過程。"
|
367
|
+
},
|
368
|
+
"SenseNova-V6-Turbo": {
|
369
|
+
"description": "實現圖片、文本、視頻能力的原生統一,突破傳統多模態分立局限,在多模基礎能力、語言基礎能力等核心維度全面領先,文理兼修,在多項測評中多次位列國內外第一梯隊水平。"
|
370
|
+
},
|
344
371
|
"Skylark2-lite-8k": {
|
345
372
|
"description": "雲雀(Skylark)第二代模型,Skylark2-lite 模型有較高的回應速度,適用於實時性要求高、成本敏感、對模型精度要求不高的場景,上下文窗口長度為 8k。"
|
346
373
|
},
|
@@ -356,6 +383,21 @@
|
|
356
383
|
"Skylark2-pro-turbo-8k": {
|
357
384
|
"description": "雲雀(Skylark)第二代模型,Skylark2-pro-turbo-8k 推理更快,成本更低,上下文窗口長度為 8k。"
|
358
385
|
},
|
386
|
+
"THUDM/GLM-4-32B-0414": {
|
387
|
+
"description": "GLM-4-32B-0414 是 GLM 系列的新一代開源模型,擁有 320 億參數。該模型性能可與 OpenAI 的 GPT 系列和 DeepSeek 的 V3/R1 系列相媲美。"
|
388
|
+
},
|
389
|
+
"THUDM/GLM-4-9B-0414": {
|
390
|
+
"description": "GLM-4-9B-0414 是 GLM 系列的小型模型,擁有 90 億參數。該模型繼承了 GLM-4-32B 系列的技術特點,但提供了更輕量級的部署選擇。儘管規模較小,GLM-4-9B-0414 仍在程式碼生成、網頁設計、SVG 圖形生成和基於搜索的寫作等任務上展現出色能力。"
|
391
|
+
},
|
392
|
+
"THUDM/GLM-Z1-32B-0414": {
|
393
|
+
"description": "GLM-Z1-32B-0414 是一個具有深度思考能力的推理模型。該模型基於 GLM-4-32B-0414 通過冷啟動和擴展強化學習開發,並在數學、程式碼和邏輯任務上進行了進一步訓練。與基礎模型相比,GLM-Z1-32B-0414 顯著提升了數學能力和解決複雜任務的能力。"
|
394
|
+
},
|
395
|
+
"THUDM/GLM-Z1-9B-0414": {
|
396
|
+
"description": "GLM-Z1-9B-0414 是 GLM 系列的小型模型,僅有 90 億參數,但保持了開源傳統的同時展現出驚人的能力。儘管規模較小,該模型在數學推理和通用任務上仍表現出色,其整體性能在同等規模的開源模型中已處於領先水平。"
|
397
|
+
},
|
398
|
+
"THUDM/GLM-Z1-Rumination-32B-0414": {
|
399
|
+
"description": "GLM-Z1-Rumination-32B-0414 是一個具有沉思能力的深度推理模型(與 OpenAI 的 Deep Research 對標)。與典型的深度思考模型不同,沉思模型採用更長時間的深度思考來解決更開放和複雜的問題。"
|
400
|
+
},
|
359
401
|
"THUDM/chatglm3-6b": {
|
360
402
|
"description": "ChatGLM3-6B 是 ChatGLM 系列的開源模型,由智譜 AI 開發。該模型保留了前代模型的優秀特性,如對話流暢和部署門檻低,同時引入了新的特性。它採用了更多樣的訓練數據、更充分的訓練步數和更合理的訓練策略,在 10B 以下的預訓練模型中表現出色。ChatGLM3-6B 支持多輪對話、工具調用、代碼執行和 Agent 任務等複雜場景。除對話模型外,還開源了基礎模型 ChatGLM-6B-Base 和長文本對話模型 ChatGLM3-6B-32K。該模型對學術研究完全開放,在登記後也允許免費商業使用"
|
361
403
|
},
|
@@ -521,6 +563,9 @@
|
|
521
563
|
"charglm-3": {
|
522
564
|
"description": "CharGLM-3專為角色扮演與情感陪伴設計,支持超長多輪記憶與個性化對話,應用廣泛。"
|
523
565
|
},
|
566
|
+
"charglm-4": {
|
567
|
+
"description": "CharGLM-4 專為角色扮演與情感陪伴設計,支持超長多輪記憶與個性化對話,應用廣泛。"
|
568
|
+
},
|
524
569
|
"chatglm3": {
|
525
570
|
"description": "ChatGLM3 是智譜 AI 與清華 KEG 實驗室發佈的閉源模型,經過海量中英標識符的預訓練與人類偏好對齊訓練,相比一代模型在 MMLU、C-Eval、GSM8K 分別取得了 16%、36%、280% 的提升,並登頂中文任務榜單 C-Eval。適用於對知識量、推理能力、創造力要求較高的場景,比如廣告文案、小說寫作、知識類寫作、代碼生成等。"
|
526
571
|
},
|
@@ -632,9 +677,18 @@
|
|
632
677
|
"command-r-plus-04-2024": {
|
633
678
|
"description": "Command R+ 是一個遵循指令的對話模型,在語言任務方面表現出更高的質量、更可靠,並且相比以往模型具有更長的上下文長度。它最適用於複雜的 RAG 工作流和多步工具使用。"
|
634
679
|
},
|
680
|
+
"command-r-plus-08-2024": {
|
681
|
+
"description": "Command R+ 是一個遵循指令的對話模型,在語言任務方面表現出更高的品質、更可靠,並且相比以往模型具有更長的上下文長度。它最適用於複雜的 RAG 工作流和多步工具使用。"
|
682
|
+
},
|
635
683
|
"command-r7b-12-2024": {
|
636
684
|
"description": "command-r7b-12-2024 是一個小型且高效的更新版本,於 2024 年 12 月發布。它在 RAG、工具使用、代理等需要複雜推理和多步處理的任務中表現出色。"
|
637
685
|
},
|
686
|
+
"compound-beta": {
|
687
|
+
"description": "Compound-beta 是一個複合 AI 系統,由 GroqCloud 中已經支持的多個開放可用的模型提供支持,可以智能地、有選擇地使用工具來回答用戶查詢。"
|
688
|
+
},
|
689
|
+
"compound-beta-mini": {
|
690
|
+
"description": "Compound-beta-mini 是一個複合 AI 系統,由 GroqCloud 中已經支持的公開可用模型提供支持,可以智能地、有選擇地使用工具來回答用戶查詢。"
|
691
|
+
},
|
638
692
|
"dall-e-2": {
|
639
693
|
"description": "第二代 DALL·E 模型,支持更真實、準確的圖像生成,解析度是第一代的4倍"
|
640
694
|
},
|
@@ -779,6 +833,18 @@
|
|
779
833
|
"deepseek/deepseek-v3/community": {
|
780
834
|
"description": "DeepSeek-V3在推理速度方面實現了比之前模型的重大突破。在開源模型中排名第一,並可與全球最先進的閉源模型相媲美。DeepSeek-V3 采用了多頭潛在注意力(MLA)和DeepSeekMoE架構,這些架構在DeepSeek-V2中得到了全面驗證。此外,DeepSeek-V3開創了一種用於負載均衡的輔助無損策略,並設定了多標記預測訓練目標以獲得更強的性能。"
|
781
835
|
},
|
836
|
+
"deepseek_r1": {
|
837
|
+
"description": "DeepSeek-R1 是一款強化學習(RL)驅動的推理模型,解決了模型中的重複性和可讀性問題。在 RL 之前,DeepSeek-R1 引入了冷啟動數據,進一步優化了推理性能。它在數學、程式碼和推理任務中與 OpenAI-o1 表現相當,並且通過精心設計的訓練方法,提升了整體效果。"
|
838
|
+
},
|
839
|
+
"deepseek_r1_distill_llama_70b": {
|
840
|
+
"description": "DeepSeek-R1-Distill-Llama-70B 是基於 Llama-3.3-70B-Instruct 經過蒸餾訓練得到的模型。該模型是 DeepSeek-R1 系列的一部分,通過使用 DeepSeek-R1 生成的樣本進行微調,在數學、程式設計和推理等多個領域展現出優秀的性能。"
|
841
|
+
},
|
842
|
+
"deepseek_r1_distill_qwen_14b": {
|
843
|
+
"description": "DeepSeek-R1-Distill-Qwen-14B 是基於 Qwen2.5-14B 通過知識蒸餾得到的模型。該模型使用 DeepSeek-R1 生成的 80 萬個精選樣本進行微調,展現出優秀的推理能力。"
|
844
|
+
},
|
845
|
+
"deepseek_r1_distill_qwen_32b": {
|
846
|
+
"description": "DeepSeek-R1-Distill-Qwen-32B 是基於 Qwen2.5-32B 通過知識蒸餾得到的模型。該模型使用 DeepSeek-R1 生成的 80 萬個精選樣本進行微調,在數學、程式設計和推理等多個領域展現出卓越的性能。"
|
847
|
+
},
|
782
848
|
"doubao-1.5-lite-32k": {
|
783
849
|
"description": "Doubao-1.5-lite 全新一代輕量版模型,極致響應速度,效果與時延均達到全球一流水平。"
|
784
850
|
},
|
@@ -788,6 +854,9 @@
|
|
788
854
|
"doubao-1.5-pro-32k": {
|
789
855
|
"description": "Doubao-1.5-pro 全新一代主力模型,性能全面升級,在知識、程式碼、推理等方面表現卓越。"
|
790
856
|
},
|
857
|
+
"doubao-1.5-vision-lite": {
|
858
|
+
"description": "Doubao-1.5-vision-lite 全新升級的多模態大模型,支持任意解析度和極端長寬比圖像識別,增強視覺推理、文檔識別、細節信息理解和指令遵循能力。支持 128k 上下文窗口,輸出長度支持最大 16k tokens。"
|
859
|
+
},
|
791
860
|
"emohaa": {
|
792
861
|
"description": "Emohaa是一個心理模型,具備專業諮詢能力,幫助用戶理解情感問題。"
|
793
862
|
},
|
@@ -953,6 +1022,9 @@
|
|
953
1022
|
"glm-4-air": {
|
954
1023
|
"description": "GLM-4-Air是性價比高的版本,性能接近GLM-4,提供快速度和實惠的價格。"
|
955
1024
|
},
|
1025
|
+
"glm-4-air-250414": {
|
1026
|
+
"description": "GLM-4-Air 是性價比高的版本,性能接近GLM-4,提供快速度和實惠的價格。"
|
1027
|
+
},
|
956
1028
|
"glm-4-airx": {
|
957
1029
|
"description": "GLM-4-AirX提供GLM-4-Air的高效版本,推理速度可達其2.6倍。"
|
958
1030
|
},
|
@@ -962,6 +1034,9 @@
|
|
962
1034
|
"glm-4-flash": {
|
963
1035
|
"description": "GLM-4-Flash是處理簡單任務的理想選擇,速度最快且價格最優惠。"
|
964
1036
|
},
|
1037
|
+
"glm-4-flash-250414": {
|
1038
|
+
"description": "GLM-4-Flash 是處理簡單任務的理想選擇,速度最快且免費。"
|
1039
|
+
},
|
965
1040
|
"glm-4-flashx": {
|
966
1041
|
"description": "GLM-4-FlashX 是 Flash 的增強版本,具備超快的推理速度。"
|
967
1042
|
},
|
@@ -980,6 +1055,18 @@
|
|
980
1055
|
"glm-4v-plus": {
|
981
1056
|
"description": "GLM-4V-Plus具備對視頻內容及多圖片的理解能力,適合多模態任務。"
|
982
1057
|
},
|
1058
|
+
"glm-4v-plus-0111": {
|
1059
|
+
"description": "GLM-4V-Plus 具備對視頻內容及多圖片的理解能力,適合多模態任務。"
|
1060
|
+
},
|
1061
|
+
"glm-z1-air": {
|
1062
|
+
"description": "推理模型: 具備強大推理能力,適用於需要深度推理的任務。"
|
1063
|
+
},
|
1064
|
+
"glm-z1-airx": {
|
1065
|
+
"description": "極速推理:具有超快的推理速度和強大的推理效果。"
|
1066
|
+
},
|
1067
|
+
"glm-z1-flash": {
|
1068
|
+
"description": "GLM-Z1 系列具備強大的複雜推理能力,在邏輯推理、數學、程式設計等領域表現優異。最大上下文長度為32K。"
|
1069
|
+
},
|
983
1070
|
"glm-zero-preview": {
|
984
1071
|
"description": "GLM-Zero-Preview具備強大的複雜推理能力,在邏輯推理、數學、程式設計等領域表現優異。"
|
985
1072
|
},
|
@@ -1199,12 +1286,15 @@
|
|
1199
1286
|
"hunyuan-turbos-20250226": {
|
1200
1287
|
"description": "hunyuan-TurboS pv2.1.2 固定版本預訓練底座訓練token數升級;數學/邏輯/代碼等思考能力提升;中英文通用體驗效果提升,包括文本創作、文本理解、知識問答、閒聊等。"
|
1201
1288
|
},
|
1202
|
-
"hunyuan-turbos-20250313": {
|
1203
|
-
"description": "統一數學解題步驟的風格,加強數學多輪問答。文本創作優化回答風格,去除AI味,增加文采。"
|
1204
|
-
},
|
1205
1289
|
"hunyuan-turbos-latest": {
|
1206
1290
|
"description": "hunyuan-TurboS 混元旗艦大模型最新版本,具備更強的思考能力,更優的體驗效果。"
|
1207
1291
|
},
|
1292
|
+
"hunyuan-turbos-longtext-128k-20250325": {
|
1293
|
+
"description": "擅長處理長文任務如文檔摘要和文檔問答等,同時也具備處理通用文本生成任務的能力。在長文本的分析和生成上表現優異,能有效應對複雜和詳盡的長文內容處理需求。"
|
1294
|
+
},
|
1295
|
+
"hunyuan-turbos-vision": {
|
1296
|
+
"description": "此模型適用於圖文理解場景,是基於混元最新 turbos 的新一代視覺語言旗艦大模型,聚焦圖文理解相關任務,包括基於圖片的實體識別、知識問答、文案創作、拍照解題等方面,相比前一代模型全面提升。"
|
1297
|
+
},
|
1208
1298
|
"hunyuan-vision": {
|
1209
1299
|
"description": "混元最新多模態模型,支持圖片 + 文本輸入生成文本內容。"
|
1210
1300
|
},
|
@@ -1223,6 +1313,12 @@
|
|
1223
1313
|
"internlm3-latest": {
|
1224
1314
|
"description": "我們最新的模型系列,有著卓越的推理性能,領跑同量級開源模型。默認指向我們最新發布的 InternLM3 系列模型"
|
1225
1315
|
},
|
1316
|
+
"jamba-large": {
|
1317
|
+
"description": "我們最強大、最先進的模型,專為處理企業級複雜任務而設計,具備卓越的性能。"
|
1318
|
+
},
|
1319
|
+
"jamba-mini": {
|
1320
|
+
"description": "在同級別中最高效的模型,兼顧速度與品質,具備更小的體積。"
|
1321
|
+
},
|
1226
1322
|
"jina-deepsearch-v1": {
|
1227
1323
|
"description": "深度搜索結合了網路搜索、閱讀和推理,可進行全面調查。您可以將其視為一個代理,接受您的研究任務 - 它會進行廣泛搜索並經過多次迭代,然後才能給出答案。這個過程涉及持續的研究、推理和從各個角度解決問題。這與直接從預訓練數據生成答案的標準大模型以及依賴一次性表面搜索的傳統 RAG 系統有著根本的不同。"
|
1228
1324
|
},
|
@@ -1568,9 +1664,18 @@
|
|
1568
1664
|
"o1-preview": {
|
1569
1665
|
"description": "o1是OpenAI新的推理模型,適用於需要廣泛通用知識的複雜任務。該模型具有128K上下文和2023年10月的知識截止日期。"
|
1570
1666
|
},
|
1667
|
+
"o3": {
|
1668
|
+
"description": "o3 是一款全能強大的模型,在多個領域表現出色。它為數學、科學、程式設計和視覺推理任務樹立了新標杆。它也擅長技術寫作和指令遵循。用戶可利用它分析文本、程式碼和圖像,解決多步驟的複雜問題。"
|
1669
|
+
},
|
1571
1670
|
"o3-mini": {
|
1572
1671
|
"description": "o3-mini 是我們最新的小型推理模型,在與 o1-mini 相同的成本和延遲目標下提供高智能。"
|
1573
1672
|
},
|
1673
|
+
"o3-mini-high": {
|
1674
|
+
"description": "o3-mini 高推理等級版,在與 o1-mini 相同的成本和延遲目標下提供高智能。"
|
1675
|
+
},
|
1676
|
+
"o4-mini": {
|
1677
|
+
"description": "o4-mini 是我們最新的小型 o 系列模型。它專為快速有效的推理而優化,在編碼和視覺任務中表現出極高的效率和性能。"
|
1678
|
+
},
|
1574
1679
|
"open-codestral-mamba": {
|
1575
1680
|
"description": "Codestral Mamba 是專注於代碼生成的 Mamba 2 語言模型,為先進的代碼和推理任務提供強力支持。"
|
1576
1681
|
},
|
@@ -1598,6 +1703,12 @@
|
|
1598
1703
|
"openai/o1-preview": {
|
1599
1704
|
"description": "o1是OpenAI新的推理模型,適用於需要廣泛通用知識的複雜任務。該模型具有128K上下文和2023年10月的知識截止日期。"
|
1600
1705
|
},
|
1706
|
+
"openai/o4-mini": {
|
1707
|
+
"description": "o4-mini 專為快速有效的推理而優化,在編碼和視覺任務中表現出極高的效率和性能。"
|
1708
|
+
},
|
1709
|
+
"openai/o4-mini-high": {
|
1710
|
+
"description": "o4-mini 高推理等級版,專為快速有效的推理而優化,在編碼和視覺任務中表現出極高的效率和性能。"
|
1711
|
+
},
|
1601
1712
|
"openrouter/auto": {
|
1602
1713
|
"description": "根據上下文長度、主題和複雜性,你的請求將發送到 Llama 3 70B Instruct、Claude 3.5 Sonnet(自我調節)或 GPT-4o。"
|
1603
1714
|
},
|
@@ -1793,6 +1904,9 @@
|
|
1793
1904
|
"qwq-plus-latest": {
|
1794
1905
|
"description": "基於 Qwen2.5 模型訓練的 QwQ 推理模型,通過強化學習大幅度提升了模型推理能力。模型數學代碼等核心指標(AIME 24/25、LiveCodeBench)以及部分通用指標(IFEval、LiveBench等)達到 DeepSeek-R1 滿血版水平。"
|
1795
1906
|
},
|
1907
|
+
"qwq_32b": {
|
1908
|
+
"description": "Qwen 系列中等規模的推理模型。與傳統的指令調優模型相比,具備思考和推理能力的 QwQ 在下游任務中,尤其是在解決難題時,能夠顯著提升性能。"
|
1909
|
+
},
|
1796
1910
|
"r1-1776": {
|
1797
1911
|
"description": "R1-1776 是 DeepSeek R1 模型的一個版本,經過後訓練,可提供未經審查、無偏見的事實資訊。"
|
1798
1912
|
},
|
@@ -1853,12 +1967,21 @@
|
|
1853
1967
|
"step-2-16k": {
|
1854
1968
|
"description": "支持大規模上下文交互,適合複雜對話場景。"
|
1855
1969
|
},
|
1970
|
+
"step-2-16k-exp": {
|
1971
|
+
"description": "step-2模型的實驗版本,包含最新的特性,滾動更新中。不推薦在正式生產環境使用。"
|
1972
|
+
},
|
1856
1973
|
"step-2-mini": {
|
1857
1974
|
"description": "基於新一代自研Attention架構MFA的極速大模型,用極低成本達到和step1類似的效果,同時保持了更高的吞吐和更快響應時延。能夠處理通用任務,在程式碼能力上具備特長。"
|
1858
1975
|
},
|
1976
|
+
"step-r1-v-mini": {
|
1977
|
+
"description": "該模型是擁有強大的圖像理解能力的推理大模型,能夠處理圖像和文字信息,經過深度思考後輸出文本生成文本內容。該模型在視覺推理領域表現突出,同時擁有第一梯隊的數學、程式碼、文本推理能力。上下文長度為100k。"
|
1978
|
+
},
|
1859
1979
|
"taichu_llm": {
|
1860
1980
|
"description": "紫東太初語言大模型具備超強語言理解能力以及文本創作、知識問答、代碼編程、數學計算、邏輯推理、情感分析、文本摘要等能力。創新性地將大數據預訓練與多源豐富知識相結合,通過持續打磨算法技術,並不斷吸收海量文本數據中詞彙、結構、語法、語義等方面的新知識,實現模型效果不斷進化。為用戶提供更加便捷的信息和服務以及更為智能化的體驗。"
|
1861
1981
|
},
|
1982
|
+
"taichu_o1": {
|
1983
|
+
"description": "taichu_o1是新一代推理大模型,通過多模態互動和強化學習實現類人思維鏈,支持複雜決策推演,在保持高精度輸出的同時展現可模型推理的思維路徑,適用於策略分析與深度思考等場景。"
|
1984
|
+
},
|
1862
1985
|
"taichu_vl": {
|
1863
1986
|
"description": "融合了圖像理解、知識遷移、邏輯歸因等能力,在圖文問答領域表現突出。"
|
1864
1987
|
},
|
package/locales/zh-TW/tool.json
CHANGED
@@ -7,6 +7,20 @@
|
|
7
7
|
"images": "圖片:",
|
8
8
|
"prompt": "提示詞"
|
9
9
|
},
|
10
|
+
"localFiles": {
|
11
|
+
"file": "檔案",
|
12
|
+
"folder": "資料夾",
|
13
|
+
"open": "打開",
|
14
|
+
"openFile": "打開檔案",
|
15
|
+
"openFolder": "打開資料夾",
|
16
|
+
"read": {
|
17
|
+
"more": "查看更多"
|
18
|
+
},
|
19
|
+
"readFile": "讀取檔案",
|
20
|
+
"readFileError": "讀取檔案失敗,請檢查檔案路徑是否正確",
|
21
|
+
"readFiles": "讀取檔案",
|
22
|
+
"readFilesError": "讀取檔案失敗,請檢查檔案路徑是否正確"
|
23
|
+
},
|
10
24
|
"search": {
|
11
25
|
"createNewSearch": "建立新的搜尋紀錄",
|
12
26
|
"emptyResult": "沒有搜尋到結果,請修改關鍵字後重試",
|
@@ -44,5 +58,16 @@
|
|
44
58
|
"summary": "總結",
|
45
59
|
"summaryTooltip": "總結當前內容",
|
46
60
|
"viewMoreResults": "查看更多 {{results}} 個結果"
|
61
|
+
},
|
62
|
+
"updateArgs": {
|
63
|
+
"duplicateKeyError": "欄位鍵必須唯一",
|
64
|
+
"form": {
|
65
|
+
"add": "新增一項",
|
66
|
+
"key": "欄位鍵",
|
67
|
+
"value": "欄位值"
|
68
|
+
},
|
69
|
+
"formValidationFailed": "表單驗證失敗,請檢查參數格式",
|
70
|
+
"keyRequired": "欄位鍵不可為空",
|
71
|
+
"stringifyError": "無法序列化參數,請檢查參數格式"
|
47
72
|
}
|
48
73
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.81.
|
3
|
+
"version": "1.81.4",
|
4
4
|
"description": "Lobe Chat - an open-source, high-performance chatbot 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",
|
@@ -29,12 +29,13 @@
|
|
29
29
|
"packages/*"
|
30
30
|
],
|
31
31
|
"scripts": {
|
32
|
+
"prebuild": "tsx scripts/prebuild.mts",
|
32
33
|
"build": "next build",
|
33
34
|
"postbuild": "npm run build-sitemap && npm run build-migrate-db",
|
34
35
|
"build-migrate-db": "bun run db:migrate",
|
35
36
|
"build-sitemap": "tsx ./scripts/buildSitemapIndex/index.ts",
|
36
37
|
"build:analyze": "NODE_OPTIONS=--max-old-space-size=6144 ANALYZE=true next build",
|
37
|
-
"build:docker": "DOCKER=true next build && npm run build-sitemap",
|
38
|
+
"build:docker": "npm run prebuild && DOCKER=true next build && npm run build-sitemap",
|
38
39
|
"prebuild:electron": "cross-env NEXT_PUBLIC_IS_DESKTOP_APP=1 tsx scripts/prebuild.mts",
|
39
40
|
"build:electron": "cross-env NODE_OPTIONS=--max-old-space-size=6144 NEXT_PUBLIC_IS_DESKTOP_APP=1 NEXT_PUBLIC_SERVICE_MODE=server next build",
|
40
41
|
"db:generate": "drizzle-kit generate && npm run db:generate-client && npm run workflow:dbml",
|
@@ -1,10 +1,10 @@
|
|
1
|
-
import {
|
1
|
+
import { LocalFilesDispatchEvents } from './localFile';
|
2
2
|
import { MenuDispatchEvents } from './menu';
|
3
3
|
import { RemoteServerBroadcastEvents, RemoteServerDispatchEvents } from './remoteServer';
|
4
|
-
import { FilesSearchDispatchEvents } from './search';
|
5
4
|
import { ShortcutDispatchEvents } from './shortcut';
|
6
5
|
import { SystemDispatchEvents } from './system';
|
7
6
|
import { AutoUpdateBroadcastEvents, AutoUpdateDispatchEvents } from './update';
|
7
|
+
import { UploadFilesDispatchEvents } from './upload';
|
8
8
|
import { WindowsDispatchEvents } from './windows';
|
9
9
|
|
10
10
|
/**
|
@@ -13,13 +13,13 @@ import { WindowsDispatchEvents } from './windows';
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
14
14
|
export interface ClientDispatchEvents
|
15
15
|
extends WindowsDispatchEvents,
|
16
|
-
FilesSearchDispatchEvents,
|
17
16
|
SystemDispatchEvents,
|
18
17
|
MenuDispatchEvents,
|
19
|
-
|
18
|
+
LocalFilesDispatchEvents,
|
20
19
|
AutoUpdateDispatchEvents,
|
21
20
|
ShortcutDispatchEvents,
|
22
|
-
RemoteServerDispatchEvents
|
21
|
+
RemoteServerDispatchEvents,
|
22
|
+
UploadFilesDispatchEvents {}
|
23
23
|
|
24
24
|
export type ClientDispatchEventKey = keyof ClientDispatchEvents;
|
25
25
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import {
|
2
|
+
ListLocalFileParams,
|
3
|
+
LocalFileItem,
|
4
|
+
LocalReadFileParams,
|
5
|
+
LocalReadFileResult,
|
6
|
+
LocalReadFilesParams,
|
7
|
+
LocalSearchFilesParams,
|
8
|
+
OpenLocalFileParams,
|
9
|
+
OpenLocalFolderParams,
|
10
|
+
} from '../types';
|
11
|
+
|
12
|
+
export interface LocalFilesDispatchEvents {
|
13
|
+
// Local Files API Events
|
14
|
+
listLocalFiles: (params: ListLocalFileParams) => LocalFileItem[];
|
15
|
+
// New methods
|
16
|
+
openLocalFile: (params: OpenLocalFileParams) => void;
|
17
|
+
openLocalFolder: (params: OpenLocalFolderParams) => void;
|
18
|
+
readLocalFile: (params: LocalReadFileParams) => LocalReadFileResult;
|
19
|
+
|
20
|
+
readLocalFiles: (params: LocalReadFilesParams) => LocalReadFileResult[];
|
21
|
+
searchLocalFiles: (params: LocalSearchFilesParams) => LocalFileItem[];
|
22
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
// Define types for local file operations
|
2
|
+
export interface LocalFileItem {
|
3
|
+
contentType?: string;
|
4
|
+
createdTime: Date;
|
5
|
+
isDirectory: boolean;
|
6
|
+
lastAccessTime: Date;
|
7
|
+
// Spotlight specific metadata
|
8
|
+
metadata?: {
|
9
|
+
[key: string]: any;
|
10
|
+
};
|
11
|
+
modifiedTime: Date;
|
12
|
+
name: string;
|
13
|
+
path: string;
|
14
|
+
size: number;
|
15
|
+
type: string;
|
16
|
+
}
|
17
|
+
|
18
|
+
export interface ListLocalFileParams {
|
19
|
+
path: string;
|
20
|
+
}
|
21
|
+
|
22
|
+
export interface LocalReadFileParams {
|
23
|
+
path: string;
|
24
|
+
}
|
25
|
+
|
26
|
+
export interface LocalReadFilesParams {
|
27
|
+
paths: string[];
|
28
|
+
}
|
29
|
+
|
30
|
+
export interface LocalReadFileResult {
|
31
|
+
charCount: number;
|
32
|
+
content: string;
|
33
|
+
createdTime: Date;
|
34
|
+
fileType: string;
|
35
|
+
filename: string;
|
36
|
+
lineCount: number;
|
37
|
+
modifiedTime: Date;
|
38
|
+
}
|
39
|
+
|
40
|
+
export interface LocalSearchFilesParams {
|
41
|
+
directory?: string;
|
42
|
+
keywords: string; // Optional directory to limit search
|
43
|
+
}
|
44
|
+
|
45
|
+
export interface OpenLocalFileParams {
|
46
|
+
path: string;
|
47
|
+
}
|
48
|
+
|
49
|
+
export interface OpenLocalFolderParams {
|
50
|
+
isDirectory?: boolean;
|
51
|
+
path: string;
|
52
|
+
}
|
package/scripts/prebuild.mts
CHANGED
@@ -25,12 +25,16 @@ const partialBuildPages = [
|
|
25
25
|
disabled: isDesktop,
|
26
26
|
paths: ['src/app/[variants]/(main)/(mobile)'],
|
27
27
|
},
|
28
|
+
{
|
29
|
+
name: 'oauth',
|
30
|
+
disabled: isDesktop,
|
31
|
+
paths: ['src/app/[variants]/oauth', 'src/app/(backend)/oidc'],
|
32
|
+
},
|
28
33
|
{
|
29
34
|
name: 'api-webhooks',
|
30
35
|
disabled: isDesktop,
|
31
36
|
paths: ['src/app/(backend)/api/webhooks'],
|
32
37
|
},
|
33
|
-
|
34
38
|
// no need for web
|
35
39
|
{
|
36
40
|
name: 'desktop-devtools',
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { fetchRequestHandler } from '@trpc/server/adapters/fetch';
|
2
|
+
import type { NextRequest } from 'next/server';
|
3
|
+
|
4
|
+
import { pino } from '@/libs/logger';
|
5
|
+
import { createLambdaContext } from '@/libs/trpc/lambda/context';
|
6
|
+
import { desktopRouter } from '@/server/routers/desktop';
|
7
|
+
|
8
|
+
const handler = (req: NextRequest) =>
|
9
|
+
fetchRequestHandler({
|
10
|
+
/**
|
11
|
+
* @link https://trpc.io/docs/v11/context
|
12
|
+
*/
|
13
|
+
createContext: () => createLambdaContext(req),
|
14
|
+
|
15
|
+
endpoint: '/trpc/desktop',
|
16
|
+
|
17
|
+
onError: ({ error, path, type }) => {
|
18
|
+
pino.info(`Error in tRPC handler (tools) on path: ${path}, type: ${type}`);
|
19
|
+
console.error(error);
|
20
|
+
},
|
21
|
+
|
22
|
+
req,
|
23
|
+
router: desktopRouter,
|
24
|
+
});
|
25
|
+
|
26
|
+
export { handler as GET, handler as POST };
|
@@ -0,0 +1,81 @@
|
|
1
|
+
import { createStyles } from 'antd-style';
|
2
|
+
import { memo } from 'react';
|
3
|
+
|
4
|
+
import { useIsMobile } from '@/hooks/useIsMobile';
|
5
|
+
import { shinyTextStylish } from '@/styles/loading';
|
6
|
+
|
7
|
+
import ValueCell from './ValueCell';
|
8
|
+
|
9
|
+
const useStyles = createStyles(({ css, token }) => ({
|
10
|
+
arrayRow: css`
|
11
|
+
&:not(:first-child) {
|
12
|
+
border-block-start: 1px dotted ${token.colorBorderSecondary};
|
13
|
+
}
|
14
|
+
`,
|
15
|
+
colon: css`
|
16
|
+
color: ${token.colorTextTertiary};
|
17
|
+
`,
|
18
|
+
key: css`
|
19
|
+
color: ${token.colorTextTertiary};
|
20
|
+
`,
|
21
|
+
row: css`
|
22
|
+
display: flex;
|
23
|
+
align-items: baseline;
|
24
|
+
|
25
|
+
&:not(:first-child) {
|
26
|
+
border-block-start: 1px dotted ${token.colorBorderSecondary};
|
27
|
+
}
|
28
|
+
`,
|
29
|
+
shineText: shinyTextStylish(token),
|
30
|
+
value: css`
|
31
|
+
color: ${token.colorTextSecondary};
|
32
|
+
`,
|
33
|
+
}));
|
34
|
+
|
35
|
+
const formatValue = (value: any): string | string[] => {
|
36
|
+
if (Array.isArray(value)) {
|
37
|
+
return value.map((v) => (typeof v === 'object' ? JSON.stringify(v) : v));
|
38
|
+
}
|
39
|
+
|
40
|
+
if (typeof value === 'object' && value !== null) {
|
41
|
+
return Object.entries(value)
|
42
|
+
.map(([k, v]) => `${k}: ${typeof v === 'object' ? JSON.stringify(v) : v}`)
|
43
|
+
.join(', ');
|
44
|
+
}
|
45
|
+
return String(value);
|
46
|
+
};
|
47
|
+
|
48
|
+
interface ObjectEntityProps {
|
49
|
+
editable?: boolean;
|
50
|
+
hasMinWidth: boolean;
|
51
|
+
objectKey: string;
|
52
|
+
shine?: boolean;
|
53
|
+
value: any;
|
54
|
+
}
|
55
|
+
|
56
|
+
const ObjectEntity = memo<ObjectEntityProps>(({ hasMinWidth, shine, value, objectKey }) => {
|
57
|
+
const { styles, cx } = useStyles();
|
58
|
+
const isMobile = useIsMobile();
|
59
|
+
const formatedValue = formatValue(value);
|
60
|
+
|
61
|
+
return (
|
62
|
+
<div className={styles.row}>
|
63
|
+
<span
|
64
|
+
className={styles.key}
|
65
|
+
style={{ minWidth: hasMinWidth ? (isMobile ? 60 : 140) : undefined }}
|
66
|
+
>
|
67
|
+
{objectKey}
|
68
|
+
</span>
|
69
|
+
<span className={styles.colon}>:</span>
|
70
|
+
<div className={cx(shine ? styles.shineText : styles.value)} style={{ width: '100%' }}>
|
71
|
+
{typeof formatedValue === 'string' ? (
|
72
|
+
<ValueCell value={formatedValue} />
|
73
|
+
) : (
|
74
|
+
formatedValue.map((v, i) => <ValueCell key={i + v} value={v} />)
|
75
|
+
)}
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
);
|
79
|
+
});
|
80
|
+
|
81
|
+
export default ObjectEntity;
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { copyToClipboard } from '@lobehub/ui';
|
2
|
+
import { App } from 'antd';
|
3
|
+
import { createStyles } from 'antd-style';
|
4
|
+
import { memo } from 'react';
|
5
|
+
import { useTranslation } from 'react-i18next';
|
6
|
+
|
7
|
+
const useStyles = createStyles(({ css, token }) => ({
|
8
|
+
copyable: css`
|
9
|
+
cursor: pointer;
|
10
|
+
width: 100%;
|
11
|
+
margin-block: 2px;
|
12
|
+
padding: 4px;
|
13
|
+
|
14
|
+
&:hover {
|
15
|
+
border-radius: 6px;
|
16
|
+
background: ${token.colorFillTertiary};
|
17
|
+
}
|
18
|
+
`,
|
19
|
+
}));
|
20
|
+
|
21
|
+
interface ValueCellProps {
|
22
|
+
value: string;
|
23
|
+
}
|
24
|
+
|
25
|
+
const ValueCell = memo<ValueCellProps>(({ value }) => {
|
26
|
+
const { message } = App.useApp();
|
27
|
+
const { t } = useTranslation('common');
|
28
|
+
const { styles } = useStyles();
|
29
|
+
|
30
|
+
return (
|
31
|
+
<div
|
32
|
+
className={styles.copyable}
|
33
|
+
onClick={async () => {
|
34
|
+
await copyToClipboard(value);
|
35
|
+
message.success(t('copySuccess'));
|
36
|
+
}}
|
37
|
+
>
|
38
|
+
{value}
|
39
|
+
</div>
|
40
|
+
);
|
41
|
+
});
|
42
|
+
|
43
|
+
export default ValueCell;
|