@lobehub/chat 1.85.6 → 1.85.7

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 (63) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/apps/desktop/electron-builder.js +10 -13
  3. package/changelog/v1.json +9 -0
  4. package/locales/ar/models.json +3 -0
  5. package/locales/ar/plugin.json +1 -1
  6. package/locales/bg-BG/models.json +3 -0
  7. package/locales/bg-BG/plugin.json +1 -1
  8. package/locales/de-DE/models.json +3 -0
  9. package/locales/de-DE/plugin.json +1 -1
  10. package/locales/en-US/models.json +3 -0
  11. package/locales/en-US/plugin.json +1 -1
  12. package/locales/es-ES/models.json +3 -0
  13. package/locales/es-ES/plugin.json +1 -1
  14. package/locales/fa-IR/models.json +3 -0
  15. package/locales/fa-IR/plugin.json +1 -1
  16. package/locales/fr-FR/models.json +3 -0
  17. package/locales/fr-FR/plugin.json +1 -1
  18. package/locales/it-IT/models.json +3 -0
  19. package/locales/it-IT/plugin.json +1 -1
  20. package/locales/ja-JP/models.json +3 -0
  21. package/locales/ja-JP/plugin.json +1 -1
  22. package/locales/ko-KR/models.json +3 -0
  23. package/locales/ko-KR/plugin.json +1 -1
  24. package/locales/nl-NL/models.json +3 -0
  25. package/locales/nl-NL/plugin.json +1 -1
  26. package/locales/pl-PL/models.json +3 -0
  27. package/locales/pl-PL/plugin.json +1 -1
  28. package/locales/pt-BR/models.json +3 -0
  29. package/locales/pt-BR/plugin.json +1 -1
  30. package/locales/ru-RU/models.json +3 -0
  31. package/locales/ru-RU/plugin.json +1 -1
  32. package/locales/tr-TR/models.json +3 -0
  33. package/locales/tr-TR/plugin.json +1 -1
  34. package/locales/vi-VN/models.json +3 -0
  35. package/locales/vi-VN/plugin.json +1 -1
  36. package/locales/zh-CN/models.json +3 -0
  37. package/locales/zh-CN/plugin.json +1 -1
  38. package/locales/zh-TW/models.json +3 -0
  39. package/locales/zh-TW/plugin.json +1 -1
  40. package/package.json +2 -2
  41. package/src/features/PluginDevModal/MCPManifestForm/index.tsx +11 -1
  42. package/src/locales/default/plugin.ts +1 -1
  43. package/src/store/chat/slices/builtinTool/actions/localFile.ts +1 -1
  44. package/src/tools/index.ts +3 -3
  45. package/src/tools/{local-files → local-system}/Render/ListFiles/Result.tsx +1 -1
  46. package/src/tools/{local-files → local-system}/Render/ListFiles/index.tsx +1 -1
  47. package/src/tools/{local-files → local-system}/Render/ReadLocalFile/index.tsx +1 -1
  48. package/src/tools/{local-files → local-system}/Render/RenameLocalFile/index.tsx +1 -1
  49. package/src/tools/{local-files → local-system}/Render/RunCommand/index.tsx +1 -1
  50. package/src/tools/{local-files → local-system}/Render/SearchFiles/Result.tsx +2 -2
  51. package/src/tools/{local-files → local-system}/Render/SearchFiles/SearchQuery/index.tsx +1 -1
  52. package/src/tools/{local-files → local-system}/Render/SearchFiles/index.tsx +1 -1
  53. package/src/tools/{local-files → local-system}/Render/index.tsx +6 -6
  54. package/src/tools/{local-files → local-system}/index.ts +10 -10
  55. package/src/tools/renders.ts +3 -3
  56. /package/src/tools/{local-files → local-system}/Render/ReadLocalFile/ReadFileSkeleton.tsx +0 -0
  57. /package/src/tools/{local-files → local-system}/Render/ReadLocalFile/ReadFileView.tsx +0 -0
  58. /package/src/tools/{local-files → local-system}/Render/ReadLocalFile/style.ts +0 -0
  59. /package/src/tools/{local-files → local-system}/Render/SearchFiles/SearchQuery/SearchView.tsx +0 -0
  60. /package/src/tools/{local-files → local-system}/Render/WriteFile/index.tsx +0 -0
  61. /package/src/tools/{local-files → local-system}/components/FileItem.tsx +0 -0
  62. /package/src/tools/{local-files → local-system}/systemRole.ts +0 -0
  63. /package/src/tools/{local-files → local-system}/type.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.85.7](https://github.com/lobehub/lobe-chat/compare/v1.85.6...v1.85.7)
6
+
7
+ <sup>Released on **2025-05-11**</sup>
8
+
9
+ #### 🐛 Bug Fixes
10
+
11
+ - **misc**: Fix streamable http url valid and refactor local files to local system.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### What's fixed
19
+
20
+ - **misc**: Fix streamable http url valid and refactor local files to local system, closes [#7794](https://github.com/lobehub/lobe-chat/issues/7794) ([37fd5fe](https://github.com/lobehub/lobe-chat/commit/37fd5fe))
21
+
22
+ </details>
23
+
24
+ <div align="right">
25
+
26
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
27
+
28
+ </div>
29
+
5
30
  ### [Version 1.85.6](https://github.com/lobehub/lobe-chat/compare/v1.85.5...v1.85.6)
6
31
 
7
32
  <sup>Released on **2025-05-10**</sup>
@@ -9,7 +9,8 @@ const channel = process.env.UPDATE_CHANNEL;
9
9
  console.log(`🚄 Build Version ${packageJSON.version}, Channel: ${channel}`);
10
10
 
11
11
  const isNightly = channel === 'nightly';
12
- const isBeta = channel === 'beta';
12
+ const isBeta = packageJSON.name.includes('beta');
13
+
13
14
  /**
14
15
  * @type {import('electron-builder').Configuration}
15
16
  * @see https://www.electron.build/configuration
@@ -53,18 +54,14 @@ const config = {
53
54
  mac: {
54
55
  compression: 'maximum',
55
56
  entitlementsInherit: 'build/entitlements.mac.plist',
56
- extendInfo: [
57
- { NSCameraUsageDescription: "Application requests access to the device's camera." },
58
- { NSMicrophoneUsageDescription: "Application requests access to the device's microphone." },
59
- {
60
- NSDocumentsFolderUsageDescription:
61
- "Application requests access to the user's Documents folder.",
62
- },
63
- {
64
- NSDownloadsFolderUsageDescription:
65
- "Application requests access to the user's Downloads folder.",
66
- },
67
- ],
57
+ extendInfo: {
58
+ NSCameraUsageDescription: "Application requests access to the device's camera.",
59
+ NSDocumentsFolderUsageDescription:
60
+ "Application requests access to the user's Documents folder.",
61
+ NSDownloadsFolderUsageDescription:
62
+ "Application requests access to the user's Downloads folder.",
63
+ NSMicrophoneUsageDescription: "Application requests access to the device's microphone.",
64
+ },
68
65
  gatekeeperAssess: false,
69
66
  hardenedRuntime: true,
70
67
  notarize: true,
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "fixes": [
5
+ "Fix streamable http url valid and refactor local files to local system."
6
+ ]
7
+ },
8
+ "date": "2025-05-11",
9
+ "version": "1.85.7"
10
+ },
2
11
  {
3
12
  "children": {},
4
13
  "date": "2025-05-10",
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 هو نموذج لغوي كبير من الجيل الجديد من Alibaba، يدعم أداءً ممتازًا لتلبية احتياجات التطبيقات المتنوعة."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 هو الجيل الجديد من نموذج اللغة واسع النطاق من علي بابا، يدعم مجموعة متنوعة من احتياجات التطبيقات بأداء ممتاز."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 هو نموذج جديد من الجيل التالي مع تحسينات كبيرة في القدرات، حيث يصل إلى مستويات رائدة في الصناعة في الاستدلال، والعموم، والوكلاء، واللغات المتعددة، ويدعم التبديل بين أنماط التفكير."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "نوع ملحق MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "أدخل عنوان HTTP القابل للبث لخادم MCP الخاص بك، ولا ينتهي بـ /sse",
114
+ "desc": "أدخل عنوان HTTP القابل للبث لخادم MCP الخاص بك، لا يدعم وضع SSE",
115
115
  "invalid": "يرجى إدخال عنوان URL صالح",
116
116
  "label": "عنوان URL لنقطة نهاية HTTP",
117
117
  "required": "يرجى إدخال عنوان URL لخدمة MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 е новото поколение голям езиков модел на Alibaba, предлагащ отлична производителност за разнообразни приложения."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 е новото поколение на Alibaba голям езиков модел, който предлага отлична производителност, за да отговори на разнообразни приложения."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 е ново поколение модел с значително подобрени способности, който достига водещо ниво в индустрията в области като разсъждение, общо използване, агенти и многоезичност, и поддържа превключване на режимите на разсъждение."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Тип на MCP плъгин"
112
112
  },
113
113
  "url": {
114
- "desc": "Въведете адреса на вашия MCP сървър Streamable HTTP, който не завършва с /sse",
114
+ "desc": "Въведете адреса на вашия MCP сървър Streamable HTTP, не поддържа режим SSE",
115
115
  "invalid": "Моля, въведете валиден URL адрес",
116
116
  "label": "HTTP Endpoint URL",
117
117
  "required": "Моля, въведете URL на MCP услугата"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 ist das neue große Sprachmodell von Alibaba, das mit hervorragender Leistung eine Vielzahl von Anwendungsanforderungen unterstützt."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 ist das neue, großangelegte Sprachmodell von Alibaba, das mit hervorragender Leistung vielfältige Anwendungsbedürfnisse unterstützt."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 ist ein neues, leistungsstarkes Modell der nächsten Generation, das in den Bereichen Inferenz, Allgemeinwissen, Agenten und Mehrsprachigkeit erhebliche Fortschritte erzielt hat und den Wechsel zwischen Denkmodi unterstützt."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP-Plugin-Typ"
112
112
  },
113
113
  "url": {
114
- "desc": "Geben Sie Ihre MCP-Server-Streamable-HTTP-Adresse ein, die nicht mit /sse endet",
114
+ "desc": "Geben Sie Ihre MCP-Server-Streamable-HTTP-Adresse ein, SSE-Modus wird nicht unterstützt",
115
115
  "invalid": "Bitte geben Sie eine gültige URL ein",
116
116
  "label": "HTTP Endpoint-URL",
117
117
  "required": "Bitte geben Sie die MCP-Dienst-URL ein"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 is Alibaba's next-generation large-scale language model, supporting diverse application needs with excellent performance."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 is Alibaba's next-generation large-scale language model, designed to support diverse application needs with outstanding performance."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 is a next-generation model with significantly enhanced capabilities, achieving industry-leading levels in reasoning, general tasks, agent functionality, and multilingual support, while also supporting mode switching."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP Plugin Type"
112
112
  },
113
113
  "url": {
114
- "desc": "Enter your MCP Server Streamable HTTP address, which should not end with /sse",
114
+ "desc": "Enter your MCP Server Streamable HTTP address, SSE mode is not supported.",
115
115
  "invalid": "Please enter a valid URL",
116
116
  "label": "HTTP Endpoint URL",
117
117
  "required": "Please enter the MCP service URL"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 es el nuevo modelo de lenguaje a gran escala de Alibaba, que ofrece un rendimiento excepcional para satisfacer diversas necesidades de aplicación."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 es la nueva generación de modelo de lenguaje a gran escala de Alibaba, que ofrece un rendimiento excepcional para satisfacer diversas necesidades de aplicación."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 es un modelo de nueva generación con capacidades significativamente mejoradas, alcanzando niveles líderes en la industria en razonamiento, generalidad, agentes y multilingüismo, y soporta el cambio de modo de pensamiento."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Tipo de complemento MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Introduce la dirección HTTP transmitible de tu servidor MCP, que no debe terminar con /sse",
114
+ "desc": "Introduce la dirección HTTP transmitible de tu servidor MCP, no se admite el modo SSE",
115
115
  "invalid": "Por favor, introduce una URL válida",
116
116
  "label": "URL del Endpoint HTTP",
117
117
  "required": "Por favor, introduce la URL del servicio MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 مدل زبان بزرگ نسل جدید علی‌بابا است که با عملکرد عالی از نیازهای متنوع کاربردی پشتیبانی می‌کند."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 مدل زبان نسل جدید علی‌بابا است که با عملکرد عالی، نیازهای متنوع کاربردی را پشتیبانی می‌کند."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 یک مدل جدید نسل جدید با توانایی‌های به طور قابل توجهی بهبود یافته است که در استدلال، عمومی، نمایندگی و چند زبانه در چندین توانایی کلیدی به سطح پیشرفته صنعت دست یافته و از جابجایی حالت تفکر پشتیبانی می‌کند."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "نوع افزونه MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "آدرس HTTP قابل پخش سرور MCP خود را وارد کنید، که با /sse پایان نمی‌یابد",
114
+ "desc": "آدرس HTTP قابل پخش سرور MCP خود را وارد کنید، حالت SSE پشتیبانی نمی‌شود",
115
115
  "invalid": "لطفاً یک آدرس URL معتبر وارد کنید",
116
116
  "label": "آدرس URL نقطه پایانی HTTP",
117
117
  "required": "لطفاً URL سرویس MCP را وارد کنید"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 est le nouveau modèle de langage à grande échelle d'Alibaba, offrant d'excellentes performances pour des besoins d'application diversifiés."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 est le nouveau modèle de langage à grande échelle d'Alibaba, offrant d'excellentes performances pour répondre à des besoins d'application diversifiés."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 est un modèle de nouvelle génération avec des capacités considérablement améliorées, atteignant des niveaux de pointe dans plusieurs compétences clés telles que le raisonnement, l'universalité, l'agent et le multilingue, tout en prenant en charge le changement de mode de pensée."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Type de plugin MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Entrez l'adresse HTTP Streamable de votre serveur MCP, sans terminer par /sse",
114
+ "desc": "Entrez l'adresse HTTP Streamable de votre serveur MCP, le mode SSE n'est pas pris en charge",
115
115
  "invalid": "Veuillez entrer une URL valide",
116
116
  "label": "URL de l'endpoint HTTP",
117
117
  "required": "Veuillez entrer l'URL du service MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 è la nuova generazione di modelli di linguaggio su larga scala di Alibaba, supporta prestazioni eccellenti per esigenze applicative diversificate."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 è la nuova generazione di modelli linguistici su larga scala di Alibaba, che supporta una varietà di esigenze applicative con prestazioni eccellenti."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 è un modello di nuova generazione con capacità notevolmente migliorate, raggiungendo livelli leader del settore in inferenza, generazione generale, agenti e multilinguismo, e supporta il passaggio tra modalità di pensiero."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Tipo di plugin MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Inserisci l'indirizzo HTTP Streamable del tuo server MCP, che non deve terminare con /sse",
114
+ "desc": "Inserisci il tuo indirizzo HTTP Streamable del server MCP, il supporto per la modalità SSE non è disponibile",
115
115
  "invalid": "Inserisci un URL valido",
116
116
  "label": "URL Endpoint HTTP",
117
117
  "required": "Inserisci l'URL del servizio MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2は、Alibabaの新世代大規模言語モデルであり、優れた性能で多様なアプリケーションニーズをサポートします。"
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3は、Alibabaの次世代大規模言語モデルであり、優れた性能で多様なアプリケーションニーズをサポートします。"
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3は能力が大幅に向上した新世代の通義千問大モデルで、推論、一般、エージェント、多言語などの複数のコア能力において業界のリーダーレベルに達し、思考モードの切り替えをサポートしています。"
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCPプラグインタイプ"
112
112
  },
113
113
  "url": {
114
- "desc": "あなたのMCPサーバーストリーミングHTTPアドレスを入力してください。/sseで終わることはありません",
114
+ "desc": "あなたのMCPサーバーのストリーミングHTTPアドレスを入力してください。SSEモードはサポートされていません。",
115
115
  "invalid": "有効な URL アドレスを入力してください",
116
116
  "label": "HTTP エンドポイント URL",
117
117
  "required": "MCP サービスの URL を入力してください"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2는 Alibaba의 차세대 대규모 언어 모델로, 뛰어난 성능으로 다양한 응용 요구를 지원합니다."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3는 알리바바의 차세대 대규모 언어 모델로, 뛰어난 성능으로 다양한 응용 요구를 지원합니다."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3는 능력이 대폭 향상된 새로운 세대의 통합 지식 모델로, 추론, 일반, 에이전트 및 다국어 등 여러 핵심 능력에서 업계 선두 수준에 도달하며, 사고 모드 전환을 지원합니다."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP 플러그인 유형"
112
112
  },
113
113
  "url": {
114
- "desc": "MCP 서버의 스트리밍 HTTP 주소를 입력하세요. /sse로 끝나지 않습니다.",
114
+ "desc": "MCP 서버의 스트리밍 HTTP 주소를 입력하세요. SSE 모드는 지원하지 않습니다.",
115
115
  "invalid": "유효한 URL 주소를 입력하세요",
116
116
  "label": "HTTP 엔드포인트 URL",
117
117
  "required": "MCP 서비스 URL을 입력하세요"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 is Alibaba's nieuwe generatie grootschalig taalmodel, ondersteunt diverse toepassingsbehoeften met uitstekende prestaties."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 is het nieuwe generatie grootschalige taalmodel van Alibaba, dat uitstekende prestaties levert ter ondersteuning van diverse applicatiebehoeften."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 is een nieuwe generatie van het Qwen grote model met aanzienlijk verbeterde capaciteiten, die de industrie leidende niveaus bereikt in redeneren, algemeen gebruik, agent en meertalige ondersteuning, en ondersteunt de schakeling tussen denkmodi."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP-plugintype"
112
112
  },
113
113
  "url": {
114
- "desc": "Voer je MCP Server Streamable HTTP-adres in, dit eindigt niet op /sse",
114
+ "desc": "Voer je MCP Server Streamable HTTP-adres in, SSE-modus wordt niet ondersteund",
115
115
  "invalid": "Voer een geldige URL in",
116
116
  "label": "HTTP Endpoint URL",
117
117
  "required": "Voer de MCP service URL in"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 to nowa generacja dużego modelu językowego Alibaba, wspierająca różnorodne potrzeby aplikacyjne dzięki doskonałej wydajności."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 to nowa generacja dużego modelu językowego od Alibaba, który wspiera różnorodne potrzeby aplikacyjne dzięki doskonałej wydajności."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 to nowa generacja modelu Qwen, który znacznie zwiększa możliwości w zakresie wnioskowania, ogólności, agenta i wielojęzyczności, osiągając wiodące w branży wyniki w wielu kluczowych obszarach i wspierając przełączanie trybów myślenia."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Typ wtyczki MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Wprowadź adres HTTP swojego serwera MCP Streamable, który nie kończy się na /sse",
114
+ "desc": "Wprowadź adres URL swojego serwera MCP Streamable HTTP, nie obsługuje trybu SSE",
115
115
  "invalid": "Proszę wprowadzić prawidłowy adres URL",
116
116
  "label": "URL punktu końcowego HTTP",
117
117
  "required": "Proszę wprowadzić adres URL usługi MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 é a nova geração de modelo de linguagem em larga escala da Alibaba, oferecendo desempenho excepcional para atender a diversas necessidades de aplicação."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 é a nova geração do modelo de linguagem em larga escala da Alibaba, que oferece desempenho excepcional para atender a diversas necessidades de aplicação."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 é um novo modelo de linguagem de próxima geração com capacidades significativamente aprimoradas, alcançando níveis líderes da indústria em raciocínio, generalidade, agentes e multilíngue, e suporta a alternância de modos de pensamento."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Tipo de plugin MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Insira o endereço HTTP Streamable do seu servidor MCP, que não deve terminar com /sse",
114
+ "desc": "Insira o endereço HTTP transmitível do seu servidor MCP, o modo SSE não é suportado",
115
115
  "invalid": "Por favor, insira um URL válido",
116
116
  "label": "URL do Endpoint HTTP",
117
117
  "required": "Por favor, insira o URL do serviço MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 — это новое поколение крупномасштабной языковой модели от Alibaba, обеспечивающее отличные результаты для разнообразных приложений."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 — это новое поколение масштабной языковой модели от Alibaba, которая поддерживает разнообразные потребности приложений с выдающимися показателями."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 — это новое поколение модели Qwen с значительно улучшенными возможностями, достигнувшими ведущих позиций в отрасли в области вывода, универсальности, агентов и многоязычности, а также поддерживающей переключение режимов размышления."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Тип плагина MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Введите адрес вашего MCP Server Streamable HTTP, который не заканчивается на /sse",
114
+ "desc": "Введите адрес вашего MCP сервера Streamable HTTP, режим SSE не поддерживается",
115
115
  "invalid": "Пожалуйста, введите действительный URL-адрес",
116
116
  "label": "URL-адрес HTTP Endpoint",
117
117
  "required": "Пожалуйста, введите URL службы MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2, Alibaba'nın yeni nesil büyük ölçekli dil modelidir, mükemmel performans ile çeşitli uygulama ihtiyaçlarını destekler."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3, Alibaba'nın yeni nesil büyük ölçekli dil modelidir ve çeşitli uygulama ihtiyaçlarını mükemmel bir performansla destekler."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3, akıl yürütme, genel, Ajan ve çok dilli gibi birçok temel yetenekte endüstri lideri seviyesine ulaşan yeni nesil bir modeldir ve düşünme modu geçişini destekler."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP Eklenti Türü"
112
112
  },
113
113
  "url": {
114
- "desc": "MCP Sunucu Akış HTTP adresinizi girin, /sse ile bitmemelidir",
114
+ "desc": "MCP Sunucu Akış HTTP adresinizi girin, SSE modunu desteklemez",
115
115
  "invalid": "Lütfen geçerli bir URL adresi girin",
116
116
  "label": "HTTP Endpoint URL",
117
117
  "required": "Lütfen MCP hizmet URL'sini girin"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 là mô hình ngôn ngữ quy mô lớn thế hệ mới của Alibaba, hỗ trợ các nhu cầu ứng dụng đa dạng với hiệu suất xuất sắc."
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 là mô hình ngôn ngữ quy mô lớn thế hệ mới của Alibaba, hỗ trợ nhu cầu ứng dụng đa dạng với hiệu suất xuất sắc."
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3 là một mô hình lớn thế hệ mới với khả năng vượt trội, đạt được trình độ hàng đầu trong nhiều khả năng cốt lõi như suy luận, tổng quát, đại lý và đa ngôn ngữ, đồng thời hỗ trợ chuyển đổi chế độ suy nghĩ."
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "Loại plugin MCP"
112
112
  },
113
113
  "url": {
114
- "desc": "Nhập địa chỉ HTTP Streamable của máy chủ MCP của bạn, không kết thúc bằng /sse",
114
+ "desc": "Nhập địa chỉ HTTP Streamable của máy chủ MCP của bạn, không hỗ trợ chế độ SSE",
115
115
  "invalid": "Vui lòng nhập địa chỉ URL hợp lệ",
116
116
  "label": "URL Điểm cuối HTTP",
117
117
  "required": "Vui lòng nhập URL dịch vụ MCP"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 是阿里巴巴的新一代大规模语言模型,以优异的性能支持多元化的应用需求。"
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 是阿里巴巴的新一代大规模语言模型,以优异的性能支持多元化的应用需求。"
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3是一款能力大幅提升的新一代通义千问大模型,在推理、通用、Agent和多语言等多个核心能力上均达到业界领先水平,并支持思考模式切换。"
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP 插件类型"
112
112
  },
113
113
  "url": {
114
- "desc": "输入你的 MCP Server Streamable HTTP 地址,不会以 /sse 结尾",
114
+ "desc": "输入你的 MCP Server Streamable HTTP 地址,不支持 SSE 模式",
115
115
  "invalid": "请输入有效的 URL 地址",
116
116
  "label": "Streamable HTTP Endpoint URL",
117
117
  "required": "请输入 MCP 服务 URL"
@@ -1982,6 +1982,9 @@
1982
1982
  "qwen2:72b": {
1983
1983
  "description": "Qwen2 是阿里巴巴的新一代大規模語言模型,以優異的性能支持多元化的應用需求。"
1984
1984
  },
1985
+ "qwen3": {
1986
+ "description": "Qwen3 是阿里巴巴的新一代大規模語言模型,以優異的性能支持多元化的應用需求。"
1987
+ },
1985
1988
  "qwen3-0.6b": {
1986
1989
  "description": "Qwen3是一款能力大幅提升的新一代通義千問大模型,在推理、通用、Agent和多語言等多個核心能力上均達到業界領先水平,並支持思考模式切換。"
1987
1990
  },
@@ -111,7 +111,7 @@
111
111
  "title": "MCP 插件類型"
112
112
  },
113
113
  "url": {
114
- "desc": "輸入你的 MCP Server Streamable HTTP 地址,結尾不會有 /sse",
114
+ "desc": "輸入你的 MCP 伺服器可串流的 HTTP 地址,不支援 SSE 模式",
115
115
  "invalid": "請輸入有效的 URL 地址",
116
116
  "label": "HTTP Endpoint URL",
117
117
  "required": "請輸入 MCP 服務 URL"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.85.6",
3
+ "version": "1.85.7",
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",
@@ -200,7 +200,7 @@
200
200
  "langfuse": "^3.37.1",
201
201
  "langfuse-core": "^3.37.1",
202
202
  "lodash-es": "^4.17.21",
203
- "lucide-react": "^0.508.0",
203
+ "lucide-react": "^0.509.0",
204
204
  "mammoth": "^1.9.0",
205
205
  "mdast-util-to-markdown": "^2.1.2",
206
206
  "modern-screenshot": "^4.6.0",
@@ -17,6 +17,7 @@ import { isDesktop } from '@/const/version';
17
17
  import { mcpService } from '@/services/mcp';
18
18
  import { useToolStore } from '@/store/tool';
19
19
  import { pluginSelectors } from '@/store/tool/selectors';
20
+ import { electronStylish } from '@/styles/electron';
20
21
 
21
22
  import ArgsInput from './ArgsInput';
22
23
  import EnvEditor from './EnvEditor';
@@ -225,6 +226,7 @@ const MCPManifestForm = ({ form, isEditMode }: MCPManifestFormProps) => {
225
226
  />
226
227
  <Flexbox horizontal justify={'space-between'}>
227
228
  <Button
229
+ className={electronStylish.nodrag}
228
230
  onClick={() => {
229
231
  setIsImportModalVisible(false);
230
232
  }}
@@ -296,7 +298,15 @@ const MCPManifestForm = ({ form, isEditMode }: MCPManifestFormProps) => {
296
298
  name={HTTP_URL_KEY}
297
299
  rules={[
298
300
  { message: t('dev.mcp.url.required'), required: true },
299
- { message: t('dev.mcp.url.invalid'), type: 'url' },
301
+ {
302
+ message: t('dev.mcp.url.invalid'),
303
+ validator: async (_, value) => {
304
+ if (!value) return true;
305
+
306
+ // 如果不是 URL 就会自动抛出错误
307
+ new URL(value);
308
+ },
309
+ },
300
310
  ]}
301
311
  tag={'url'}
302
312
  >
@@ -111,7 +111,7 @@ export default {
111
111
  title: 'MCP 插件类型',
112
112
  },
113
113
  url: {
114
- desc: '输入你的 MCP Server Streamable HTTP 地址,不会以 /sse 结尾',
114
+ desc: '输入你的 MCP Server Streamable HTTP 地址,不支持 SSE 模式',
115
115
  invalid: '请输入有效的 URL 地址',
116
116
  label: 'Streamable HTTP Endpoint URL',
117
117
  required: '请输入 MCP 服务 URL',
@@ -19,7 +19,7 @@ import {
19
19
  LocalReadFileState,
20
20
  LocalReadFilesState,
21
21
  LocalRenameFileState,
22
- } from '@/tools/local-files/type';
22
+ } from '@/tools/local-system/type';
23
23
 
24
24
  export interface LocalFileAction {
25
25
  internal_triggerLocalFileToolCalling: <T = any>(
@@ -3,7 +3,7 @@ import { LobeBuiltinTool } from '@/types/tool';
3
3
 
4
4
  import { ArtifactsManifest } from './artifacts';
5
5
  import { DalleManifest } from './dalle';
6
- import { LocalFilesManifest } from './local-files';
6
+ import { LocalSystemManifest } from './local-system';
7
7
  import { WebBrowsingManifest } from './web-browsing';
8
8
 
9
9
  export const builtinTools: LobeBuiltinTool[] = [
@@ -19,8 +19,8 @@ export const builtinTools: LobeBuiltinTool[] = [
19
19
  },
20
20
  {
21
21
  hidden: !isDesktop,
22
- identifier: LocalFilesManifest.identifier,
23
- manifest: LocalFilesManifest,
22
+ identifier: LocalSystemManifest.identifier,
23
+ manifest: LocalSystemManifest,
24
24
  type: 'builtin',
25
25
  },
26
26
  {
@@ -5,7 +5,7 @@ import { Flexbox } from 'react-layout-kit';
5
5
 
6
6
  import { useChatStore } from '@/store/chat';
7
7
  import { chatToolSelectors } from '@/store/chat/selectors';
8
- import FileItem from '@/tools/local-files/components/FileItem';
8
+ import FileItem from '@/tools/local-system/components/FileItem';
9
9
  import { ChatMessagePluginError } from '@/types/message';
10
10
 
11
11
  interface SearchFilesProps {
@@ -2,7 +2,7 @@ import { ListLocalFileParams } from '@lobechat/electron-client-ipc';
2
2
  import React, { memo } from 'react';
3
3
 
4
4
  import { LocalFolder } from '@/features/LocalFile';
5
- import { LocalFileListState } from '@/tools/local-files/type';
5
+ import { LocalFileListState } from '@/tools/local-system/type';
6
6
  import { ChatMessagePluginError } from '@/types/message';
7
7
 
8
8
  import SearchResult from './Result';
@@ -3,7 +3,7 @@ import { memo } from 'react';
3
3
 
4
4
  import { useChatStore } from '@/store/chat';
5
5
  import { chatToolSelectors } from '@/store/chat/slices/builtinTool/selectors';
6
- import { LocalReadFileState } from '@/tools/local-files/type';
6
+ import { LocalReadFileState } from '@/tools/local-system/type';
7
7
  import { ChatMessagePluginError } from '@/types/message';
8
8
 
9
9
  import ReadFileSkeleton from './ReadFileSkeleton';
@@ -7,7 +7,7 @@ import React, { memo } from 'react';
7
7
  import { Flexbox } from 'react-layout-kit';
8
8
 
9
9
  import { LocalFile } from '@/features/LocalFile';
10
- import { LocalReadFileState } from '@/tools/local-files/type';
10
+ import { LocalReadFileState } from '@/tools/local-system/type';
11
11
  import { ChatMessagePluginError } from '@/types/message';
12
12
 
13
13
  const useStyles = createStyles(({ css, token }) => ({
@@ -3,7 +3,7 @@ import { Terminal } from '@xterm/xterm';
3
3
  import '@xterm/xterm/css/xterm.css';
4
4
  import { memo, useEffect, useRef } from 'react';
5
5
 
6
- import { LocalReadFileState } from '@/tools/local-files/type';
6
+ import { LocalReadFileState } from '@/tools/local-system/type';
7
7
  import { ChatMessagePluginError } from '@/types/message';
8
8
 
9
9
  interface RunCommandProps {
@@ -4,8 +4,8 @@ import { Flexbox } from 'react-layout-kit';
4
4
 
5
5
  import { useChatStore } from '@/store/chat';
6
6
  import { chatToolSelectors } from '@/store/chat/selectors';
7
- import FileItem from '@/tools/local-files/components/FileItem';
8
- import { FileResult } from '@/tools/local-files/type';
7
+ import FileItem from '@/tools/local-system/components/FileItem';
8
+ import { FileResult } from '@/tools/local-system/type';
9
9
  import { ChatMessagePluginError } from '@/types/message';
10
10
 
11
11
  interface SearchFilesProps {
@@ -7,7 +7,7 @@ import { Flexbox } from 'react-layout-kit';
7
7
 
8
8
  import { useChatStore } from '@/store/chat';
9
9
  import { chatToolSelectors } from '@/store/chat/selectors';
10
- import { LocalFileSearchState } from '@/tools/local-files/type';
10
+ import { LocalFileSearchState } from '@/tools/local-system/type';
11
11
 
12
12
  import SearchView from './SearchView';
13
13
 
@@ -1,7 +1,7 @@
1
1
  import { LocalSearchFilesParams } from '@lobechat/electron-client-ipc';
2
2
  import { memo } from 'react';
3
3
 
4
- import { LocalFileSearchState } from '@/tools/local-files/type';
4
+ import { LocalFileSearchState } from '@/tools/local-system/type';
5
5
  import { ChatMessagePluginError } from '@/types/message';
6
6
 
7
7
  import SearchResult from './Result';
@@ -1,7 +1,7 @@
1
1
  import { LocalFileItem } from '@lobechat/electron-client-ipc';
2
2
  import { memo } from 'react';
3
+ import { LocalSystemApiName } from 'src/tools/local-system';
3
4
 
4
- import { LocalFilesApiName } from '@/tools/local-files';
5
5
  import { BuiltinRenderProps } from '@/types/tool';
6
6
 
7
7
  import ListFiles from './ListFiles';
@@ -11,11 +11,11 @@ import SearchFiles from './SearchFiles';
11
11
  import WriteFile from './WriteFile';
12
12
 
13
13
  const RenderMap = {
14
- [LocalFilesApiName.searchLocalFiles]: SearchFiles,
15
- [LocalFilesApiName.listLocalFiles]: ListFiles,
16
- [LocalFilesApiName.readLocalFile]: ReadLocalFile,
17
- [LocalFilesApiName.renameLocalFile]: RenameLocalFile,
18
- [LocalFilesApiName.writeLocalFile]: WriteFile,
14
+ [LocalSystemApiName.searchLocalFiles]: SearchFiles,
15
+ [LocalSystemApiName.listLocalFiles]: ListFiles,
16
+ [LocalSystemApiName.readLocalFile]: ReadLocalFile,
17
+ [LocalSystemApiName.renameLocalFile]: RenameLocalFile,
18
+ [LocalSystemApiName.writeLocalFile]: WriteFile,
19
19
  };
20
20
 
21
21
  const LocalFilesRender = memo<BuiltinRenderProps<LocalFileItem[]>>(
@@ -2,7 +2,7 @@ import { BuiltinToolManifest } from '@/types/tool';
2
2
 
3
3
  import { systemPrompt } from './systemRole';
4
4
 
5
- export const LocalFilesApiName = {
5
+ export const LocalSystemApiName = {
6
6
  listLocalFiles: 'listLocalFiles',
7
7
  moveLocalFiles: 'moveLocalFiles',
8
8
  readLocalFile: 'readLocalFile',
@@ -11,12 +11,12 @@ export const LocalFilesApiName = {
11
11
  writeLocalFile: 'writeLocalFile',
12
12
  };
13
13
 
14
- export const LocalFilesManifest: BuiltinToolManifest = {
14
+ export const LocalSystemManifest: BuiltinToolManifest = {
15
15
  api: [
16
16
  {
17
17
  description:
18
18
  'List files and folders in a specified directory. Input should be a path. Output is a JSON array of file/folder names.',
19
- name: LocalFilesApiName.listLocalFiles,
19
+ name: LocalSystemApiName.listLocalFiles,
20
20
  parameters: {
21
21
  properties: {
22
22
  path: {
@@ -31,7 +31,7 @@ export const LocalFilesManifest: BuiltinToolManifest = {
31
31
  {
32
32
  description:
33
33
  'Read the content of a specific file. Input should be the file path. Output is the file content as a string.',
34
- name: LocalFilesApiName.readLocalFile,
34
+ name: LocalSystemApiName.readLocalFile,
35
35
  parameters: {
36
36
  properties: {
37
37
  loc: {
@@ -54,7 +54,7 @@ export const LocalFilesManifest: BuiltinToolManifest = {
54
54
  {
55
55
  description:
56
56
  'Search for files within the workspace based on a query string and optional filter options. Input should include the search query and any filter options. Output is a JSON array of matching file paths.',
57
- name: LocalFilesApiName.searchLocalFiles,
57
+ name: LocalSystemApiName.searchLocalFiles,
58
58
  parameters: {
59
59
  properties: {
60
60
  contentContains: {
@@ -130,7 +130,7 @@ export const LocalFilesManifest: BuiltinToolManifest = {
130
130
  {
131
131
  description:
132
132
  'Moves or renames multiple files/directories. Input is an array of objects, each containing an oldPath and a newPath.',
133
- name: LocalFilesApiName.moveLocalFiles,
133
+ name: LocalSystemApiName.moveLocalFiles,
134
134
  parameters: {
135
135
  properties: {
136
136
  items: {
@@ -160,7 +160,7 @@ export const LocalFilesManifest: BuiltinToolManifest = {
160
160
  {
161
161
  description:
162
162
  'Rename a file or folder in its current location. Input should be the current full path and the new name.',
163
- name: LocalFilesApiName.renameLocalFile,
163
+ name: LocalSystemApiName.renameLocalFile,
164
164
  parameters: {
165
165
  properties: {
166
166
  newName: {
@@ -179,7 +179,7 @@ export const LocalFilesManifest: BuiltinToolManifest = {
179
179
  {
180
180
  description:
181
181
  'Write content to a specific file. Input should be the file path and content. Overwrites existing file or creates a new one.',
182
- name: LocalFilesApiName.writeLocalFile,
182
+ name: LocalSystemApiName.writeLocalFile,
183
183
  parameters: {
184
184
  properties: {
185
185
  content: {
@@ -196,10 +196,10 @@ export const LocalFilesManifest: BuiltinToolManifest = {
196
196
  },
197
197
  },
198
198
  ],
199
- identifier: 'lobe-local-files',
199
+ identifier: 'lobe-local-system',
200
200
  meta: {
201
201
  avatar: '📁',
202
- title: 'Local Files',
202
+ title: 'Local System',
203
203
  },
204
204
  systemRole: systemPrompt,
205
205
  type: 'builtin',
@@ -2,13 +2,13 @@ import { BuiltinRender } from '@/types/tool';
2
2
 
3
3
  import { DalleManifest } from './dalle';
4
4
  import DalleRender from './dalle/Render';
5
- import { LocalFilesManifest } from './local-files';
6
- import LocalFilesRender from './local-files/Render';
5
+ import { LocalSystemManifest } from './local-system';
6
+ import LocalFilesRender from './local-system/Render';
7
7
  import { WebBrowsingManifest } from './web-browsing';
8
8
  import WebBrowsing from './web-browsing/Render';
9
9
 
10
10
  export const BuiltinToolsRenders: Record<string, BuiltinRender> = {
11
11
  [DalleManifest.identifier]: DalleRender as BuiltinRender,
12
12
  [WebBrowsingManifest.identifier]: WebBrowsing as BuiltinRender,
13
- [LocalFilesManifest.identifier]: LocalFilesRender as BuiltinRender,
13
+ [LocalSystemManifest.identifier]: LocalFilesRender as BuiltinRender,
14
14
  };
File without changes