@lobehub/lobehub 2.0.0-next.233 → 2.0.0-next.235

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 (169) hide show
  1. package/.github/workflows/e2e.yml +6 -12
  2. package/.github/workflows/test.yml +3 -3
  3. package/CHANGELOG.md +59 -0
  4. package/CLAUDE.md +1 -1
  5. package/changelog/v1.json +18 -0
  6. package/docs/development/basic/feature-development.mdx +4 -5
  7. package/docs/development/basic/feature-development.zh-CN.mdx +4 -5
  8. package/e2e/README.md +6 -6
  9. package/e2e/src/features/community/detail-pages.feature +9 -9
  10. package/e2e/src/features/community/interactions.feature +13 -13
  11. package/e2e/src/features/community/smoke.feature +6 -6
  12. package/e2e/src/steps/agent/conversation-mgmt.steps.ts +196 -25
  13. package/e2e/src/steps/agent/conversation.steps.ts +58 -0
  14. package/e2e/src/steps/agent/message-ops.steps.ts +20 -15
  15. package/e2e/src/steps/community/detail-pages.steps.ts +60 -19
  16. package/e2e/src/steps/community/interactions.steps.ts +145 -32
  17. package/e2e/src/steps/hooks.ts +12 -2
  18. package/locales/ar/components.json +1 -0
  19. package/locales/ar/file.json +4 -0
  20. package/locales/ar/models.json +29 -0
  21. package/locales/ar/setting.json +7 -0
  22. package/locales/bg-BG/components.json +1 -0
  23. package/locales/bg-BG/file.json +4 -0
  24. package/locales/bg-BG/models.json +1 -0
  25. package/locales/bg-BG/setting.json +7 -0
  26. package/locales/de-DE/components.json +1 -0
  27. package/locales/de-DE/file.json +4 -0
  28. package/locales/de-DE/models.json +29 -0
  29. package/locales/de-DE/setting.json +7 -0
  30. package/locales/en-US/common.json +0 -1
  31. package/locales/en-US/components.json +1 -0
  32. package/locales/en-US/file.json +4 -0
  33. package/locales/en-US/models.json +1 -0
  34. package/locales/en-US/setting.json +3 -0
  35. package/locales/es-ES/components.json +1 -0
  36. package/locales/es-ES/file.json +4 -0
  37. package/locales/es-ES/models.json +43 -0
  38. package/locales/es-ES/setting.json +7 -0
  39. package/locales/fa-IR/components.json +1 -0
  40. package/locales/fa-IR/file.json +4 -0
  41. package/locales/fa-IR/models.json +54 -0
  42. package/locales/fa-IR/setting.json +7 -0
  43. package/locales/fr-FR/components.json +1 -0
  44. package/locales/fr-FR/file.json +4 -0
  45. package/locales/fr-FR/models.json +31 -0
  46. package/locales/fr-FR/setting.json +7 -0
  47. package/locales/it-IT/components.json +1 -0
  48. package/locales/it-IT/file.json +4 -0
  49. package/locales/it-IT/models.json +43 -0
  50. package/locales/it-IT/setting.json +7 -0
  51. package/locales/ja-JP/components.json +1 -0
  52. package/locales/ja-JP/file.json +4 -0
  53. package/locales/ja-JP/models.json +28 -0
  54. package/locales/ja-JP/setting.json +7 -0
  55. package/locales/ko-KR/components.json +1 -0
  56. package/locales/ko-KR/file.json +4 -0
  57. package/locales/ko-KR/models.json +37 -0
  58. package/locales/ko-KR/setting.json +7 -0
  59. package/locales/nl-NL/components.json +1 -0
  60. package/locales/nl-NL/file.json +4 -0
  61. package/locales/nl-NL/models.json +13 -0
  62. package/locales/nl-NL/setting.json +7 -0
  63. package/locales/pl-PL/components.json +1 -0
  64. package/locales/pl-PL/file.json +4 -0
  65. package/locales/pl-PL/models.json +13 -0
  66. package/locales/pl-PL/setting.json +7 -0
  67. package/locales/pt-BR/components.json +1 -0
  68. package/locales/pt-BR/file.json +4 -0
  69. package/locales/pt-BR/models.json +29 -0
  70. package/locales/pt-BR/setting.json +7 -0
  71. package/locales/ru-RU/components.json +1 -0
  72. package/locales/ru-RU/file.json +4 -0
  73. package/locales/ru-RU/models.json +1 -0
  74. package/locales/ru-RU/setting.json +7 -0
  75. package/locales/tr-TR/components.json +1 -0
  76. package/locales/tr-TR/file.json +4 -0
  77. package/locales/tr-TR/models.json +29 -0
  78. package/locales/tr-TR/setting.json +7 -0
  79. package/locales/vi-VN/components.json +1 -0
  80. package/locales/vi-VN/file.json +4 -0
  81. package/locales/vi-VN/models.json +1 -0
  82. package/locales/vi-VN/setting.json +7 -0
  83. package/locales/zh-CN/file.json +4 -0
  84. package/locales/zh-CN/models.json +46 -0
  85. package/locales/zh-CN/setting.json +3 -0
  86. package/locales/zh-TW/components.json +1 -0
  87. package/locales/zh-TW/file.json +4 -0
  88. package/locales/zh-TW/models.json +35 -0
  89. package/locales/zh-TW/setting.json +7 -0
  90. package/package.json +5 -5
  91. package/packages/const/src/index.ts +1 -0
  92. package/packages/const/src/lobehubSkill.ts +55 -0
  93. package/packages/types/package.json +1 -1
  94. package/packages/types/src/files/upload.ts +11 -1
  95. package/packages/types/src/message/common/tools.ts +1 -1
  96. package/packages/types/src/serverConfig.ts +1 -0
  97. package/public/not-compatible.html +1296 -0
  98. package/src/app/[variants]/(main)/resource/features/FileDetail.tsx +20 -12
  99. package/src/app/[variants]/(main)/resource/features/modal/FullscreenModal.tsx +2 -4
  100. package/src/app/[variants]/layout.tsx +50 -1
  101. package/src/features/ChatInput/ActionBar/Tools/LobehubSkillServerItem.tsx +304 -0
  102. package/src/features/ChatInput/ActionBar/Tools/useControls.tsx +74 -10
  103. package/src/features/Conversation/Messages/AssistantGroup/Tool/Inspector/ToolTitle.tsx +9 -0
  104. package/src/features/FileViewer/Renderer/Code/index.tsx +224 -0
  105. package/src/features/FileViewer/Renderer/Image/index.tsx +8 -1
  106. package/src/features/FileViewer/Renderer/PDF/index.tsx +3 -1
  107. package/src/features/FileViewer/Renderer/PDF/style.ts +2 -1
  108. package/src/features/FileViewer/index.tsx +135 -24
  109. package/src/features/PageEditor/EditorCanvas/useSlashItems.tsx +7 -4
  110. package/src/features/PageEditor/store/initialState.ts +2 -1
  111. package/src/features/ResourceManager/components/Editor/FileContent.tsx +1 -4
  112. package/src/features/ResourceManager/components/Editor/FileCopilot.tsx +64 -0
  113. package/src/features/ResourceManager/components/Editor/index.tsx +98 -31
  114. package/src/features/ResourceManager/components/Explorer/ItemDropdown/useFileItemDropdown.tsx +3 -2
  115. package/src/features/ResourceManager/components/Explorer/ListView/ColumnResizeHandle.tsx +119 -0
  116. package/src/features/ResourceManager/components/Explorer/ListView/ListItem/index.tsx +67 -22
  117. package/src/features/ResourceManager/components/Explorer/ListView/Skeleton.tsx +46 -11
  118. package/src/features/ResourceManager/components/Explorer/ListView/index.tsx +140 -81
  119. package/src/features/ResourceManager/components/Explorer/ToolBar/SortDropdown.tsx +20 -12
  120. package/src/features/ResourceManager/components/Explorer/ToolBar/ViewSwitcher.tsx +18 -10
  121. package/src/features/ResourceManager/components/UploadDock/Item.tsx +38 -6
  122. package/src/features/ResourceManager/components/UploadDock/index.tsx +62 -41
  123. package/src/features/ResourceManager/index.tsx +1 -0
  124. package/src/helpers/toolEngineering/index.test.ts +3 -0
  125. package/src/helpers/toolEngineering/index.ts +12 -1
  126. package/src/locales/default/file.ts +4 -0
  127. package/src/locales/default/setting.ts +3 -0
  128. package/src/server/globalConfig/index.ts +1 -0
  129. package/src/server/modules/ModelRuntime/index.test.ts +214 -1
  130. package/src/server/modules/ModelRuntime/index.ts +43 -7
  131. package/src/server/routers/lambda/_helpers/resolveContext.ts +8 -8
  132. package/src/server/routers/lambda/agent.ts +1 -1
  133. package/src/server/routers/lambda/aiModel.ts +1 -1
  134. package/src/server/routers/lambda/comfyui.ts +1 -1
  135. package/src/server/routers/lambda/document.ts +44 -0
  136. package/src/server/routers/lambda/exporter.ts +1 -1
  137. package/src/server/routers/lambda/image.ts +13 -13
  138. package/src/server/routers/lambda/klavis.ts +10 -10
  139. package/src/server/routers/lambda/market/index.ts +6 -6
  140. package/src/server/routers/lambda/message.ts +2 -2
  141. package/src/server/routers/lambda/plugin.ts +1 -1
  142. package/src/server/routers/lambda/ragEval.ts +2 -2
  143. package/src/server/routers/lambda/topic.ts +3 -3
  144. package/src/server/routers/lambda/user.ts +10 -10
  145. package/src/server/routers/lambda/userMemories.ts +6 -6
  146. package/src/server/routers/tools/market.ts +261 -0
  147. package/src/server/services/document/index.ts +22 -0
  148. package/src/services/document/index.ts +4 -0
  149. package/src/services/upload.ts +22 -2
  150. package/src/store/chat/slices/plugin/actions/internals.ts +15 -2
  151. package/src/store/chat/slices/plugin/actions/pluginTypes.ts +104 -0
  152. package/src/store/file/slices/fileManager/action.test.ts +9 -3
  153. package/src/store/file/slices/fileManager/action.ts +165 -70
  154. package/src/store/file/slices/upload/action.ts +3 -0
  155. package/src/store/global/actions/general.ts +15 -0
  156. package/src/store/global/initialState.ts +13 -0
  157. package/src/store/serverConfig/selectors.ts +1 -0
  158. package/src/store/tool/initialState.ts +11 -2
  159. package/src/store/tool/selectors/index.ts +1 -0
  160. package/src/store/tool/selectors/tool.ts +3 -1
  161. package/src/store/tool/slices/lobehubSkillStore/action.ts +361 -0
  162. package/src/store/tool/slices/lobehubSkillStore/index.ts +4 -0
  163. package/src/store/tool/slices/lobehubSkillStore/initialState.ts +24 -0
  164. package/src/store/tool/slices/lobehubSkillStore/selectors.ts +145 -0
  165. package/src/store/tool/slices/lobehubSkillStore/types.ts +100 -0
  166. package/src/store/tool/store.ts +8 -2
  167. package/vitest.config.mts +1 -0
  168. package/src/features/FileViewer/Renderer/JavaScript/index.tsx +0 -66
  169. package/src/features/FileViewer/Renderer/TXT/index.tsx +0 -50
@@ -99,6 +99,7 @@
99
99
  "ModelSwitchPanel.goToSettings": "Đi tới cài đặt",
100
100
  "ModelSwitchPanel.manageProvider": "Quản Lý Nhà Cung Cấp",
101
101
  "ModelSwitchPanel.provider": "Nhà cung cấp",
102
+ "ModelSwitchPanel.searchPlaceholder": "Tìm kiếm mô hình...",
102
103
  "ModelSwitchPanel.title": "Mô hình",
103
104
  "ModelSwitchPanel.useModelFrom": "Sử dụng mô hình này từ:",
104
105
  "MultiImagesUpload.actions.uploadMore": "Nhấn hoặc kéo để tải thêm",
@@ -37,6 +37,7 @@
37
37
  "header.actions.notionGuide.title": "Nhập từ Notion",
38
38
  "header.actions.uploadFile": "Tải Lên Tệp",
39
39
  "header.actions.uploadFolder": "Tải Lên Thư Mục",
40
+ "header.actions.uploadFolder.creatingFolders": "Đang tạo cấu trúc thư mục...",
40
41
  "header.newPageButton": "Trang Mới",
41
42
  "header.uploadButton": "Tải Lên",
42
43
  "home.getStarted": "Bắt Đầu",
@@ -119,6 +120,8 @@
119
120
  "title": "Tài Nguyên",
120
121
  "toggleLeftPanel": "Hiện/Ẩn Bảng Bên Trái",
121
122
  "uploadDock.body.collapse": "Thu Gọn",
123
+ "uploadDock.body.item.cancel": "Hủy",
124
+ "uploadDock.body.item.cancelled": "Đã hủy",
122
125
  "uploadDock.body.item.done": "Đã tải lên",
123
126
  "uploadDock.body.item.error": "Tải lên thất bại, vui lòng thử lại",
124
127
  "uploadDock.body.item.pending": "Đang chuẩn bị tải lên...",
@@ -126,6 +129,7 @@
126
129
  "uploadDock.body.item.restTime": "Còn lại {{time}}",
127
130
  "uploadDock.fileQueueInfo": "Đang tải lên {{count}} tệp đầu tiên, còn lại {{remaining}} trong hàng đợi",
128
131
  "uploadDock.totalCount": "Tổng cộng {{count}} mục",
132
+ "uploadDock.uploadStatus.cancelled": "Tải lên đã bị hủy",
129
133
  "uploadDock.uploadStatus.error": "Lỗi tải lên",
130
134
  "uploadDock.uploadStatus.pending": "Đang chờ tải lên",
131
135
  "uploadDock.uploadStatus.processing": "Đang tải lên",
@@ -335,6 +335,7 @@
335
335
  "computer-use-preview.description": "computer-use-preview là mô hình chuyên biệt cho công cụ \"sử dụng máy tính\", được huấn luyện để hiểu và thực hiện các tác vụ liên quan đến máy tính.",
336
336
  "dall-e-2.description": "DALL·E thế hệ thứ hai với khả năng tạo hình ảnh thực tế, chính xác hơn và độ phân giải gấp 4 lần thế hệ đầu.",
337
337
  "dall-e-3.description": "Mô hình DALL·E mới nhất, phát hành vào tháng 11 năm 2023, hỗ trợ tạo hình ảnh thực tế, chính xác hơn với chi tiết mạnh mẽ hơn.",
338
+ "databricks/dbrx-instruct.description": "DBRX Instruct cung cấp khả năng xử lý hướng dẫn đáng tin cậy cao trong nhiều ngành công nghiệp.",
338
339
  "meta.llama3-8b-instruct-v1:0.description": "Meta Llama 3 là một mô hình ngôn ngữ mở dành cho nhà phát triển, nhà nghiên cứu và doanh nghiệp, được thiết kế để hỗ trợ xây dựng, thử nghiệm và mở rộng các ý tưởng AI sinh ngữ một cách có trách nhiệm. Là một phần trong nền tảng đổi mới cộng đồng toàn cầu, mô hình này phù hợp với môi trường có tài nguyên hạn chế, thiết bị biên và yêu cầu thời gian huấn luyện nhanh hơn.",
339
340
  "meta/Llama-3.2-11B-Vision-Instruct.description": "Khả năng suy luận hình ảnh mạnh mẽ trên ảnh độ phân giải cao, phù hợp cho các ứng dụng hiểu thị giác.",
340
341
  "meta/Llama-3.2-90B-Vision-Instruct.description": "Khả năng suy luận hình ảnh tiên tiến dành cho các ứng dụng tác tử hiểu thị giác.",
@@ -127,6 +127,10 @@
127
127
  "llm.proxyUrl.title": "URL proxy API",
128
128
  "llm.waitingForMore": "Sẽ có thêm <1>mô hình được bổ sung</1>, hãy đón chờ",
129
129
  "llm.waitingForMoreLinkAriaLabel": "Mở biểu mẫu yêu cầu Nhà cung cấp",
130
+ "marketPublish.forkConfirm.by": "bởi {{author}}",
131
+ "marketPublish.forkConfirm.confirm": "Xác nhận Đăng tải",
132
+ "marketPublish.forkConfirm.description": "Bạn sắp đăng tải một phiên bản phái sinh dựa trên một tác nhân hiện có từ cộng đồng. Tác nhân mới của bạn sẽ được tạo thành một mục riêng biệt trên chợ ứng dụng.",
133
+ "marketPublish.forkConfirm.title": "Đăng tải Tác nhân Phái sinh",
130
134
  "marketPublish.modal.changelog.extra": "Mô tả những thay đổi và cải tiến chính trong phiên bản này",
131
135
  "marketPublish.modal.changelog.label": "Nhật ký thay đổi",
132
136
  "marketPublish.modal.changelog.maxLengthError": "Nhật ký thay đổi không được vượt quá 500 ký tự",
@@ -524,6 +528,9 @@
524
528
  "tools.klavis.servers": "máy chủ",
525
529
  "tools.klavis.tools": "công cụ",
526
530
  "tools.klavis.verifyAuth": "Tôi đã hoàn tất xác thực",
531
+ "tools.lobehubSkill.authorize": "Ủy quyền",
532
+ "tools.lobehubSkill.connect": "Kết nối",
533
+ "tools.lobehubSkill.error": "Lỗi",
527
534
  "tools.notInstalled": "Chưa Cài Đặt",
528
535
  "tools.notInstalledWarning": "Kỹ năng này hiện chưa được cài đặt, điều này có thể ảnh hưởng đến chức năng của tác nhân.",
529
536
  "tools.plugins.enabled": "Đã bật: {{num}}",
@@ -37,6 +37,7 @@
37
37
  "header.actions.notionGuide.title": "导入 Notion 内容",
38
38
  "header.actions.uploadFile": "上传文件",
39
39
  "header.actions.uploadFolder": "上传文件夹",
40
+ "header.actions.uploadFolder.creatingFolders": "正在创建文件夹结构...",
40
41
  "header.newPageButton": "新建文稿",
41
42
  "header.uploadButton": "上传",
42
43
  "home.getStarted": "开始使用",
@@ -119,6 +120,8 @@
119
120
  "title": "资源",
120
121
  "toggleLeftPanel": "显示/隐藏左侧面板",
121
122
  "uploadDock.body.collapse": "收起",
123
+ "uploadDock.body.item.cancel": "取消",
124
+ "uploadDock.body.item.cancelled": "已取消",
122
125
  "uploadDock.body.item.done": "已上传",
123
126
  "uploadDock.body.item.error": "上传遇到了问题,请重试",
124
127
  "uploadDock.body.item.pending": "准备上传…",
@@ -126,6 +129,7 @@
126
129
  "uploadDock.body.item.restTime": "剩余 {{time}}",
127
130
  "uploadDock.fileQueueInfo": "正在上传前 {{count}} 个文件,剩余 {{remaining}} 个文件将排队上传",
128
131
  "uploadDock.totalCount": "共 {{count}} 项",
132
+ "uploadDock.uploadStatus.cancelled": "上传已取消",
129
133
  "uploadDock.uploadStatus.error": "上传出错",
130
134
  "uploadDock.uploadStatus.pending": "等待上传",
131
135
  "uploadDock.uploadStatus.processing": "正在上传",
@@ -413,6 +413,52 @@
413
413
  "deepseek_r1_distill_llama_70b.description": "DeepSeek-R1-Distill-Llama-70B 是基于 Llama-3.3-70B-Instruct 蒸馏而成。作为 DeepSeek-R1 系列的一部分,使用 DeepSeek-R1 生成的样本进行微调,在数学、编程和推理方面表现出色。",
414
414
  "deepseek_r1_distill_qwen_14b.description": "DeepSeek-R1-Distill-Qwen-14B 是基于 Qwen2.5-14B 蒸馏而成,并使用 DeepSeek-R1 生成的 80 万高质量样本进行微调,具备强大的推理能力。",
415
415
  "deepseek_r1_distill_qwen_32b.description": "DeepSeek-R1-Distill-Qwen-32B 是基于 Qwen2.5-32B 蒸馏而成,并使用 DeepSeek-R1 生成的 80 万高质量样本进行微调,在数学、编程和推理方面表现卓越。",
416
+ "devstral-2:123b.description": "Devstral 2 123B 擅长使用工具探索代码库、编辑多个文件,并支持软件工程代理。",
417
+ "doubao-1.5-lite-32k.description": "Doubao-1.5-lite 是一款全新轻量级模型,响应速度极快,兼具卓越质量与低延迟。",
418
+ "doubao-1.5-pro-256k.description": "Doubao-1.5-pro-256k 是 Doubao-1.5-Pro 的全面升级版,整体性能提升 10%。支持 256k 上下文窗口和最多 12k 输出 token,性能更强、窗口更大,适用于更广泛的场景。",
419
+ "doubao-1.5-pro-32k.description": "Doubao-1.5-pro 是新一代旗舰模型,全面升级,在知识、编程和推理方面表现出色。",
420
+ "doubao-1.5-thinking-pro-m.description": "Doubao-1.5 是一款全新的深度推理模型(m 版本原生支持多模态深度推理),在数学、编程、科学推理以及创意写作等通用任务中表现卓越。其在 AIME 2024、Codeforces 和 GPQA 等基准测试中达到或接近顶级水平。支持 128k 上下文窗口和 16k 输出。",
421
+ "doubao-1.5-thinking-pro.description": "Doubao-1.5 是一款全新的深度推理模型,在数学、编程、科学推理以及创意写作等通用任务中表现卓越。其在 AIME 2024、Codeforces 和 GPQA 等基准测试中达到或接近顶级水平。支持 128k 上下文窗口和 16k 输出。",
422
+ "doubao-1.5-thinking-vision-pro.description": "全新视觉深度推理模型,具备更强的多模态理解与推理能力,在 59 个公开基准中有 37 项达到 SOTA 水平。",
423
+ "doubao-1.5-ui-tars.description": "Doubao-1.5-UI-TARS 是一款原生面向图形界面的代理模型,具备类人感知、推理与操作能力,可与界面无缝交互。",
424
+ "doubao-1.5-vision-lite.description": "Doubao-1.5-vision-lite 是升级版多模态模型,支持任意分辨率和极端长宽比图像,提升视觉推理、文档识别、细节理解与指令遵循能力。支持 128k 上下文窗口和最多 16k 输出 token。",
425
+ "doubao-1.5-vision-pro-32k.description": "Doubao-1.5-vision-pro 是升级版多模态模型,支持任意分辨率和极端长宽比图像,提升视觉推理、文档识别、细节理解与指令遵循能力。",
426
+ "doubao-1.5-vision-pro.description": "Doubao-1.5-vision-pro 是升级版多模态模型,支持任意分辨率和极端长宽比图像,提升视觉推理、文档识别、细节理解与指令遵循能力。",
427
+ "doubao-lite-128k.description": "超快响应,性价比更高,适用于多种场景,支持推理与微调,具备 128k 上下文窗口。",
428
+ "doubao-lite-32k.description": "超快响应,性价比更高,适用于多种场景,支持推理与微调,具备 32k 上下文窗口。",
429
+ "doubao-lite-4k.description": "超快响应,性价比更高,适用于多种场景,支持推理与微调,具备 4k 上下文窗口。",
430
+ "doubao-pro-256k.description": "性能最强的旗舰模型,适用于复杂任务,在参考问答、摘要、创作、文本分类和角色扮演等方面表现优异。支持推理与微调,具备 256k 上下文窗口。",
431
+ "doubao-pro-32k.description": "性能最强的旗舰模型,适用于复杂任务,在参考问答、摘要、创作、文本分类和角色扮演等方面表现优异。支持推理与微调,具备 32k 上下文窗口。",
432
+ "doubao-seed-1.6-flash.description": "Doubao-Seed-1.6-flash 是一款超快多模态深度推理模型,TPOT 低至 10ms,支持文本与图像输入,在文本理解上超越前代 lite 模型,在视觉方面媲美主流 pro 模型。支持 256k 上下文窗口和最多 16k 输出 token。",
433
+ "doubao-seed-1.6-lite.description": "Doubao-Seed-1.6-lite 是一款全新多模态深度推理模型,支持可调推理强度(最小、低、中、高),性价比更高,是通用任务的优选,支持最长 256k 上下文窗口。",
434
+ "doubao-seed-1.6-thinking.description": "Doubao-Seed-1.6-thinking 在推理能力上显著增强,相较 Doubao-1.5-thinking-pro 在编程、数学和逻辑推理方面进一步提升,并新增视觉理解能力。支持 256k 上下文窗口和最多 16k 输出 token。",
435
+ "doubao-seed-1.6-vision.description": "Doubao-Seed-1.6-vision 是一款视觉深度推理模型,具备更强的多模态理解与推理能力,适用于教育、图像审核、安检和 AI 搜索问答等场景。支持 256k 上下文窗口和最多 64k 输出 token。",
436
+ "doubao-seed-1.6.description": "Doubao-Seed-1.6 是一款全新多模态深度推理模型,支持自动、思考与非思考模式。在非思考模式下,其性能显著优于 Doubao-1.5-pro/250115。支持 256k 上下文窗口和最多 16k 输出 token。",
437
+ "doubao-seed-1.8.description": "Doubao-Seed-1.8 拥有更强的多模态理解能力与 Agent 能力,支持文本/图像/视频输入与上下文缓存,在复杂任务中表现更加出色。",
438
+ "doubao-seed-code.description": "Doubao-Seed-Code 针对代理式编程深度优化,支持多模态输入(文本/图像/视频)和 256k 上下文窗口,兼容 Anthropic API,适用于编程、视觉理解与代理工作流。",
439
+ "doubao-seededit-3-0-i2i-250628.description": "字节跳动 Seed 推出的 Doubao 图像模型,支持文本与图像输入,具备高度可控的高质量图像生成能力。支持文本引导的图像编辑,输出尺寸长边在 512 至 1536 之间。",
440
+ "doubao-seedream-3-0-t2i-250415.description": "Seedream 3.0 是字节跳动 Seed 推出的图像生成模型,支持文本与图像输入,具备高度可控的高质量图像生成能力。可根据文本提示生成图像。",
441
+ "doubao-seedream-4-0-250828.description": "Seedream 4.0 是字节跳动 Seed 推出的图像生成模型,支持文本与图像输入,具备高度可控的高质量图像生成能力。可根据文本提示生成图像。",
442
+ "doubao-vision-lite-32k.description": "Doubao-vision 是 Doubao 推出的多模态模型,具备强大的图像理解与推理能力,并能精准执行指令。在图文提取与基于图像的推理任务中表现优异,支持更复杂、更广泛的视觉问答场景。",
443
+ "doubao-vision-pro-32k.description": "Doubao-vision 是 Doubao 推出的多模态模型,具备强大的图像理解与推理能力,并能精准执行指令。在图文提取与基于图像的推理任务中表现优异,支持更复杂、更广泛的视觉问答场景。",
444
+ "emohaa.description": "Emohaa 是一款心理健康模型,具备专业咨询能力,帮助用户理解情绪问题。",
445
+ "ernie-4.5-0.3b.description": "ERNIE 4.5 0.3B 是一款开源轻量级模型,适用于本地和定制化部署。",
446
+ "ernie-4.5-21b-a3b.description": "ERNIE 4.5 21B A3B 是一款开源大参数模型,具备更强的理解与生成能力。",
447
+ "ernie-4.5-300b-a47b.description": "ERNIE 4.5 300B A47B 是百度 ERNIE 的超大规模 MoE 模型,推理能力卓越。",
448
+ "ernie-4.5-8k-preview.description": "ERNIE 4.5 8K Preview 是一款用于评估 ERNIE 4.5 的 8K 上下文预览模型。",
449
+ "ernie-4.5-turbo-128k-preview.description": "ERNIE 4.5 Turbo 128K 预览版,具备发布级能力,适用于集成与灰度测试。",
450
+ "ernie-4.5-turbo-128k.description": "ERNIE 4.5 Turbo 128K 是一款高性能通用模型,支持搜索增强与工具调用,适用于问答、编程与代理场景。",
451
+ "ernie-4.5-turbo-32k.description": "ERNIE 4.5 Turbo 32K 是一款中等长度上下文版本,适用于问答、知识库检索与多轮对话。",
452
+ "ernie-4.5-turbo-latest.description": "最新 ERNIE 4.5 Turbo,整体性能优化,适合作为主力生产模型。",
453
+ "ernie-4.5-turbo-vl-32k-preview.description": "ERNIE 4.5 Turbo VL 32K Preview 是一款 32K 多模态预览模型,用于评估长上下文视觉能力。",
454
+ "ernie-4.5-turbo-vl-32k.description": "ERNIE 4.5 Turbo VL 32K 是一款中长上下文多模态模型,适用于长文档与图像联合理解。",
455
+ "ernie-4.5-turbo-vl-latest.description": "ERNIE 4.5 Turbo VL 最新版,图文理解与推理能力进一步提升。",
456
+ "ernie-4.5-turbo-vl-preview.description": "ERNIE 4.5 Turbo VL Preview 是一款多模态预览模型,适用于图文理解与生成,支持视觉问答与内容理解。",
457
+ "ernie-4.5-turbo-vl.description": "ERNIE 4.5 Turbo VL 是一款成熟的多模态模型,适用于生产级图文理解与识别。",
458
+ "ernie-4.5-vl-28b-a3b.description": "ERNIE 4.5 VL 28B A3B 是一款开源多模态模型,支持图文理解与推理。",
459
+ "ernie-5.0-thinking-latest.description": "文心 5.0 Thinking 是一款原生全模态旗舰模型,统一建模文本、图像、音频与视频,在复杂问答、创作与智能体场景中实现全面能力升级。",
460
+ "ernie-5.0-thinking-preview.description": "文心 5.0 Thinking Preview 是一款原生全模态旗舰模型,统一建模文本、图像、音频与视频,在复杂问答、创作与智能体场景中实现全面能力升级。",
461
+ "ernie-char-8k.description": "ERNIE Character 8K 是一款角色对话模型,适用于 IP 角色构建与长期陪伴聊天。",
416
462
  "gemini-flash-latest.description": "Latest release of Gemini Flash",
417
463
  "gemini-flash-lite-latest.description": "Latest release of Gemini Flash-Lite",
418
464
  "gemini-pro-latest.description": "Latest release of Gemini Pro",
@@ -528,6 +528,9 @@
528
528
  "tools.klavis.servers": "个服务器",
529
529
  "tools.klavis.tools": "个工具",
530
530
  "tools.klavis.verifyAuth": "我已完成认证",
531
+ "tools.lobehubSkill.authorize": "授权",
532
+ "tools.lobehubSkill.connect": "连接",
533
+ "tools.lobehubSkill.error": "错误",
531
534
  "tools.notInstalled": "未安装",
532
535
  "tools.notInstalledWarning": "当前技能暂未安装,可能会影响助理使用",
533
536
  "tools.plugins.enabled": "已启用 {{num}}",
@@ -99,6 +99,7 @@
99
99
  "ModelSwitchPanel.goToSettings": "前往設定",
100
100
  "ModelSwitchPanel.manageProvider": "管理提供者",
101
101
  "ModelSwitchPanel.provider": "提供商",
102
+ "ModelSwitchPanel.searchPlaceholder": "搜尋模型...",
102
103
  "ModelSwitchPanel.title": "模型",
103
104
  "ModelSwitchPanel.useModelFrom": "使用此模型來自:",
104
105
  "MultiImagesUpload.actions.uploadMore": "點擊或拖曳上傳更多",
@@ -37,6 +37,7 @@
37
37
  "header.actions.notionGuide.title": "匯入 Notion 內容",
38
38
  "header.actions.uploadFile": "上傳檔案",
39
39
  "header.actions.uploadFolder": "上傳資料夾",
40
+ "header.actions.uploadFolder.creatingFolders": "正在建立資料夾結構...",
40
41
  "header.newPageButton": "新增文件",
41
42
  "header.uploadButton": "上傳",
42
43
  "home.getStarted": "開始使用",
@@ -119,6 +120,8 @@
119
120
  "title": "資源",
120
121
  "toggleLeftPanel": "顯示/隱藏左側面板",
121
122
  "uploadDock.body.collapse": "收起",
123
+ "uploadDock.body.item.cancel": "取消",
124
+ "uploadDock.body.item.cancelled": "已取消",
122
125
  "uploadDock.body.item.done": "已上傳",
123
126
  "uploadDock.body.item.error": "上傳失敗,請重試",
124
127
  "uploadDock.body.item.pending": "準備上傳...",
@@ -126,6 +129,7 @@
126
129
  "uploadDock.body.item.restTime": "剩餘 {{time}}",
127
130
  "uploadDock.fileQueueInfo": "正在上傳前 {{count}} 個檔案,剩餘 {{remaining}} 個檔案將排隊上傳",
128
131
  "uploadDock.totalCount": "共 {{count}} 項",
132
+ "uploadDock.uploadStatus.cancelled": "上傳已取消",
129
133
  "uploadDock.uploadStatus.error": "上傳出錯",
130
134
  "uploadDock.uploadStatus.pending": "等待上傳",
131
135
  "uploadDock.uploadStatus.processing": "正在上傳",
@@ -491,6 +491,41 @@
491
491
  "flux-pro.description": "頂級商業圖像生成模型,擁有無與倫比的圖像品質與多樣化輸出能力。",
492
492
  "flux-schnell.description": "FLUX.1 [schnell] 是最先進的開源少步驟模型,超越同類競品,甚至優於如 Midjourney v6.0 與 DALL-E 3(HD)等強大非蒸餾模型。其精細調校保留預訓練多樣性,顯著提升視覺品質、指令遵循、尺寸與比例變化、字體處理與輸出多樣性。",
493
493
  "flux.1-schnell.description": "FLUX.1-schnell 是一款高效能圖像生成模型,支援快速多風格輸出。",
494
+ "gemini-1.0-pro-001.description": "Gemini 1.0 Pro 001(調校版)在處理複雜任務時提供穩定且可調整的效能。",
495
+ "gemini-1.0-pro-002.description": "Gemini 1.0 Pro 002(調校版)在處理複雜任務時提供強大的多模態支援。",
496
+ "gemini-1.0-pro-latest.description": "Gemini 1.0 Pro 是 Google 所推出的高效能 AI 模型,專為大規模任務擴展而設計。",
497
+ "gemini-1.5-flash-001.description": "Gemini 1.5 Flash 001 是一款高效率的多模態模型,適用於廣泛應用的擴展場景。",
498
+ "gemini-1.5-flash-002.description": "Gemini 1.5 Flash 002 是一款高效率的多模態模型,專為大規模部署而打造。",
499
+ "gemini-1.5-flash-8b-exp-0924.description": "Gemini 1.5 Flash 8B 0924 是最新的實驗性模型,在文字與多模態應用上有顯著提升。",
500
+ "gemini-1.5-flash-8b-latest.description": "Gemini 1.5 Flash 8B 是一款高效率的多模態模型,專為大規模部署而設計。",
501
+ "gemini-1.5-flash-8b.description": "Gemini 1.5 Flash 8B 是一款高效率的多模態模型,適用於廣泛應用的擴展場景。",
502
+ "gemini-1.5-flash-exp-0827.description": "Gemini 1.5 Flash 0827 提供針對複雜任務的最佳化多模態處理能力。",
503
+ "gemini-1.5-flash-latest.description": "Gemini 1.5 Flash 是 Google 最新的多模態 AI 模型,具備快速處理能力,支援文字、圖像與影片輸入,能高效擴展至各類任務。",
504
+ "gemini-1.5-pro-001.description": "Gemini 1.5 Pro 001 是一款可擴展的多模態 AI 解決方案,適用於處理複雜任務。",
505
+ "gemini-1.5-pro-002.description": "Gemini 1.5 Pro 002 是最新的生產就緒模型,輸出品質更高,特別適用於數學、長上下文與視覺任務。",
506
+ "gemini-1.5-pro-exp-0801.description": "Gemini 1.5 Pro 0801 提供強大的多模態處理能力,並具備更高的應用開發彈性。",
507
+ "gemini-1.5-pro-exp-0827.description": "Gemini 1.5 Pro 0827 採用最新優化技術,提升多模態處理效率。",
508
+ "gemini-1.5-pro-latest.description": "Gemini 1.5 Pro 支援最多 200 萬個 token,是一款中型多模態模型,適合處理複雜任務。",
509
+ "gemini-2.0-flash-001.description": "Gemini 2.0 Flash 提供次世代功能,包括極速處理、原生工具使用、多模態生成,以及 100 萬 token 的上下文視窗。",
510
+ "gemini-2.0-flash-exp-image-generation.description": "Gemini 2.0 Flash 實驗性模型,支援圖像生成功能。",
511
+ "gemini-2.0-flash-exp.description": "Gemini 2.0 Flash 的一個變體,針對成本效益與低延遲進行最佳化。",
512
+ "gemini-2.0-flash-lite-001.description": "Gemini 2.0 Flash 的一個變體,針對成本效益與低延遲進行最佳化。",
513
+ "gemini-2.0-flash-lite.description": "Gemini 2.0 Flash 的一個變體,針對成本效益與低延遲進行最佳化。",
514
+ "gemini-2.0-flash.description": "Gemini 2.0 Flash 提供次世代功能,包括極速處理、原生工具使用、多模態生成,以及 100 萬 token 的上下文視窗。",
515
+ "gemini-2.5-flash-image-preview.description": "Nano Banana 是 Google 最新、最快且最有效率的原生多模態模型,支援對話式圖像生成與編輯。",
516
+ "gemini-2.5-flash-image-preview:image.description": "Nano Banana 是 Google 最新、最快且最有效率的原生多模態模型,支援對話式圖像生成與編輯。",
517
+ "gemini-2.5-flash-image.description": "Nano Banana 是 Google 最新、最快且最有效率的原生多模態模型,支援對話式圖像生成與編輯。",
518
+ "gemini-2.5-flash-image:image.description": "Nano Banana 是 Google 最新、最快且最有效率的原生多模態模型,支援對話式圖像生成與編輯。",
519
+ "gemini-2.5-flash-lite-preview-06-17.description": "Gemini 2.5 Flash-Lite Preview 是 Google 體積最小、性價比最高的模型,專為大規模應用而設計。",
520
+ "gemini-2.5-flash-lite-preview-09-2025.description": "Gemini 2.5 Flash-Lite 的預覽版本(2025 年 9 月 25 日)。",
521
+ "gemini-2.5-flash-lite.description": "Gemini 2.5 Flash-Lite 是 Google 體積最小、性價比最高的模型,專為大規模應用而設計。",
522
+ "gemini-2.5-flash-preview-04-17.description": "Gemini 2.5 Flash Preview 是 Google 功能最完整、性價比最高的模型。",
523
+ "gemini-2.5-flash-preview-09-2025.description": "Gemini 2.5 Flash 的預覽版本(2025 年 9 月 25 日)。",
524
+ "gemini-2.5-flash.description": "Gemini 2.5 Flash 是 Google 功能最完整、性價比最高的模型。",
525
+ "gemini-2.5-pro-preview-03-25.description": "Gemini 2.5 Pro Preview 是 Google 最先進的推理模型,能處理程式碼、數學與 STEM 問題,並分析大型資料集、程式碼庫與長篇文件。",
526
+ "gemini-2.5-pro-preview-05-06.description": "Gemini 2.5 Pro Preview 是 Google 最先進的推理模型,能處理程式碼、數學與 STEM 問題,並分析大型資料集、程式碼庫與長篇文件。",
527
+ "gemini-2.5-pro-preview-06-05.description": "Gemini 2.5 Pro Preview 是 Google 最先進的推理模型,能處理程式碼、數學與 STEM 問題,並分析大型資料集、程式碼庫與長篇文件。",
528
+ "gemini-2.5-pro.description": "Gemini 2.5 Pro 是 Google 的旗艦推理模型,支援長上下文,適用於處理複雜任務。",
494
529
  "gemini-flash-latest.description": "Gemini Flash 最新版本",
495
530
  "gemini-flash-lite-latest.description": "Gemini Flash-Lite 最新版本",
496
531
  "gemini-pro-latest.description": "Gemini Pro 最新版本",
@@ -127,6 +127,10 @@
127
127
  "llm.proxyUrl.title": "API 代理位址",
128
128
  "llm.waitingForMore": "更多模型正在 <1>計劃接入</1> 中,敬請期待",
129
129
  "llm.waitingForMoreLinkAriaLabel": "開啟模型服務商接入需求表單",
130
+ "marketPublish.forkConfirm.by": "由 {{author}}",
131
+ "marketPublish.forkConfirm.confirm": "確認發佈",
132
+ "marketPublish.forkConfirm.description": "您即將發佈一個基於社群中現有代理所衍生的版本。您的新代理將作為獨立項目發佈至市集。",
133
+ "marketPublish.forkConfirm.title": "發佈衍生代理",
130
134
  "marketPublish.modal.changelog.extra": "描述此版本的主要變更與改進",
131
135
  "marketPublish.modal.changelog.label": "變更日誌",
132
136
  "marketPublish.modal.changelog.maxLengthError": "變更日誌不能超過 500 個字元",
@@ -524,6 +528,9 @@
524
528
  "tools.klavis.servers": "個伺服器",
525
529
  "tools.klavis.tools": "個工具",
526
530
  "tools.klavis.verifyAuth": "我已完成驗證",
531
+ "tools.lobehubSkill.authorize": "授權",
532
+ "tools.lobehubSkill.connect": "連接",
533
+ "tools.lobehubSkill.error": "錯誤",
527
534
  "tools.notInstalled": "尚未安裝",
528
535
  "tools.notInstalledWarning": "目前外掛尚未安裝,可能會影響助手使用",
529
536
  "tools.plugins.enabled": "已啟用 {{num}}",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.233",
3
+ "version": "2.0.0-next.235",
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",
@@ -58,7 +58,7 @@
58
58
  "dev:mobile": "next dev -p 3018",
59
59
  "docs:i18n": "lobe-i18n md && npm run lint:md && npm run lint:mdx && prettier -c --write locales/**/*",
60
60
  "docs:seo": "lobe-seo && npm run lint:mdx",
61
- "e2e": "cd e2e && npm run test:smoke",
61
+ "e2e": "cd e2e && npm run test",
62
62
  "e2e:install": "playwright install",
63
63
  "e2e:ui": "playwright test --ui",
64
64
  "i18n": "npm run workflow:i18n && lobe-i18n && prettier -c --write \"locales/**\"",
@@ -202,11 +202,11 @@
202
202
  "@lobehub/chat-plugin-sdk": "^1.32.4",
203
203
  "@lobehub/chat-plugins-gateway": "^1.9.0",
204
204
  "@lobehub/desktop-ipc-typings": "workspace:*",
205
- "@lobehub/editor": "^3.6.0",
205
+ "@lobehub/editor": "^3.8.0",
206
206
  "@lobehub/icons": "^4.0.2",
207
- "@lobehub/market-sdk": "^0.27.1",
207
+ "@lobehub/market-sdk": "0.28.0",
208
208
  "@lobehub/tts": "^4.0.2",
209
- "@lobehub/ui": "^4.11.5",
209
+ "@lobehub/ui": "^4.11.6",
210
210
  "@modelcontextprotocol/sdk": "^1.25.1",
211
211
  "@neondatabase/serverless": "^1.0.2",
212
212
  "@next/third-parties": "^16.1.1",
@@ -4,6 +4,7 @@ export * from './discover';
4
4
  export * from './editor';
5
5
  export * from './klavis';
6
6
  export * from './layoutTokens';
7
+ export * from './lobehubSkill';
7
8
  export * from './message';
8
9
  export * from './meta';
9
10
  export * from './plugin';
@@ -0,0 +1,55 @@
1
+ import { type IconType, SiLinear } from '@icons-pack/react-simple-icons';
2
+
3
+ export interface LobehubSkillProviderType {
4
+ /**
5
+ * Whether this provider is visible by default in the UI
6
+ */
7
+ defaultVisible?: boolean;
8
+ /**
9
+ * Icon - can be a URL string or a React icon component
10
+ */
11
+ icon: string | IconType;
12
+ /**
13
+ * Provider ID (matches Market API, e.g., 'linear', 'microsoft')
14
+ */
15
+ id: string;
16
+ /**
17
+ * Display label for the provider
18
+ */
19
+ label: string;
20
+ }
21
+
22
+ /**
23
+ * Predefined LobeHub Skill Provider list
24
+ *
25
+ * Note:
26
+ * - This list is used for UI display (icons, labels)
27
+ * - Actual availability depends on Market API response
28
+ * - Add new providers here when Market adds support
29
+ */
30
+ export const LOBEHUB_SKILL_PROVIDERS: LobehubSkillProviderType[] = [
31
+ {
32
+ defaultVisible: true,
33
+ icon: SiLinear,
34
+ id: 'linear',
35
+ label: 'Linear',
36
+ },
37
+ {
38
+ defaultVisible: true,
39
+ icon: 'https://hub-apac-1.lobeobjects.space/assets/logos/outlook.svg',
40
+ id: 'microsoft',
41
+ label: 'Outlook Calendar',
42
+ },
43
+ ];
44
+
45
+ /**
46
+ * Get provider config by ID
47
+ */
48
+ export const getLobehubSkillProviderById = (id: string) =>
49
+ LOBEHUB_SKILL_PROVIDERS.find((p) => p.id === id);
50
+
51
+ /**
52
+ * Get all visible providers (for default UI display)
53
+ */
54
+ export const getVisibleLobehubSkillProviders = () =>
55
+ LOBEHUB_SKILL_PROVIDERS.filter((p) => p.defaultVisible !== false);
@@ -8,7 +8,7 @@
8
8
  "@lobechat/python-interpreter": "workspace:*",
9
9
  "@lobechat/web-crawler": "workspace:*",
10
10
  "@lobehub/chat-plugin-sdk": "^1.32.4",
11
- "@lobehub/market-sdk": "beta",
11
+ "@lobehub/market-sdk": "0.28.0",
12
12
  "@lobehub/market-types": "^1.11.4",
13
13
  "model-bank": "workspace:*",
14
14
  "type-fest": "^4.41.0",
@@ -14,7 +14,13 @@ export interface FileUploadState {
14
14
  speed: number;
15
15
  }
16
16
 
17
- export type FileUploadStatus = 'pending' | 'uploading' | 'processing' | 'success' | 'error';
17
+ export type FileUploadStatus =
18
+ | 'pending'
19
+ | 'uploading'
20
+ | 'processing'
21
+ | 'success'
22
+ | 'error'
23
+ | 'cancelled';
18
24
 
19
25
  export type FileProcessStatus = 'pending' | 'chunking' | 'embedding' | 'success' | 'error';
20
26
 
@@ -22,6 +28,10 @@ export const UPLOAD_STATUS_SET = new Set(['uploading', 'pending', 'processing'])
22
28
 
23
29
  // the file that is upload at chat page
24
30
  export interface UploadFileItem {
31
+ /**
32
+ * AbortController to cancel the upload
33
+ */
34
+ abortController?: AbortController;
25
35
  /**
26
36
  * base64 data, it will use in other data
27
37
  */
@@ -26,7 +26,7 @@ export interface ChatPluginPayload {
26
26
  /**
27
27
  * Tool source indicates where the tool comes from
28
28
  */
29
- export type ToolSource = 'builtin' | 'plugin' | 'mcp' | 'klavis';
29
+ export type ToolSource = 'builtin' | 'plugin' | 'mcp' | 'klavis' | 'lobehubSkill';
30
30
 
31
31
  export interface ChatToolPayload {
32
32
  apiName: string;
@@ -51,6 +51,7 @@ export interface GlobalServerConfig {
51
51
  defaultAgent?: PartialDeep<UserDefaultAgent>;
52
52
  enableEmailVerification?: boolean;
53
53
  enableKlavis?: boolean;
54
+ enableLobehubSkill?: boolean;
54
55
  enableMagicLink?: boolean;
55
56
  enableMarketTrustedClient?: boolean;
56
57
  enableUploadFileToServer?: boolean;