@lobehub/chat 1.82.0 → 1.82.1

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 (96) hide show
  1. package/.cursor/rules/desktop-local-tools-implement.mdc +80 -0
  2. package/.env.desktop +2 -1
  3. package/.github/scripts/pr-comment.js +4 -9
  4. package/CHANGELOG.md +25 -0
  5. package/changelog/v1.json +9 -0
  6. package/locales/ar/electron.json +38 -2
  7. package/locales/ar/plugin.json +31 -31
  8. package/locales/bg-BG/electron.json +38 -2
  9. package/locales/bg-BG/plugin.json +31 -31
  10. package/locales/de-DE/electron.json +38 -2
  11. package/locales/de-DE/plugin.json +3 -8
  12. package/locales/en-US/electron.json +38 -2
  13. package/locales/en-US/plugin.json +3 -8
  14. package/locales/es-ES/electron.json +38 -2
  15. package/locales/es-ES/plugin.json +31 -31
  16. package/locales/fa-IR/electron.json +38 -2
  17. package/locales/fa-IR/plugin.json +31 -31
  18. package/locales/fr-FR/electron.json +38 -2
  19. package/locales/fr-FR/plugin.json +31 -31
  20. package/locales/it-IT/electron.json +38 -2
  21. package/locales/it-IT/plugin.json +31 -31
  22. package/locales/ja-JP/electron.json +38 -2
  23. package/locales/ja-JP/plugin.json +31 -31
  24. package/locales/ko-KR/electron.json +38 -2
  25. package/locales/ko-KR/plugin.json +3 -8
  26. package/locales/nl-NL/electron.json +38 -2
  27. package/locales/nl-NL/plugin.json +31 -31
  28. package/locales/pl-PL/electron.json +38 -2
  29. package/locales/pl-PL/plugin.json +3 -8
  30. package/locales/pt-BR/electron.json +38 -2
  31. package/locales/pt-BR/plugin.json +31 -31
  32. package/locales/ru-RU/electron.json +38 -2
  33. package/locales/ru-RU/plugin.json +31 -31
  34. package/locales/tr-TR/electron.json +38 -2
  35. package/locales/tr-TR/plugin.json +31 -31
  36. package/locales/vi-VN/electron.json +38 -2
  37. package/locales/vi-VN/plugin.json +3 -8
  38. package/locales/zh-CN/electron.json +38 -2
  39. package/locales/zh-CN/plugin.json +14 -9
  40. package/locales/zh-TW/electron.json +38 -2
  41. package/locales/zh-TW/plugin.json +31 -31
  42. package/package.json +1 -1
  43. package/packages/electron-client-ipc/src/events/update.ts +3 -3
  44. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/Connection/Mode.tsx +222 -0
  45. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/Connection/Option.tsx +104 -0
  46. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/Connection/Sync.tsx +42 -0
  47. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/Connection/Waiting.tsx +203 -0
  48. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/Connection/index.tsx +57 -0
  49. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/UpdateModal.tsx +242 -0
  50. package/src/app/[variants]/(main)/_layout/Desktop/ElectronTitlebar/UpdateNotification.tsx +193 -0
  51. package/src/app/[variants]/(main)/_layout/Desktop/{Titlebar.tsx → ElectronTitlebar/index.tsx} +15 -1
  52. package/src/app/[variants]/(main)/_layout/Desktop/SideBar/BottomActions.tsx +3 -2
  53. package/src/app/[variants]/(main)/_layout/Desktop/index.tsx +1 -1
  54. package/src/app/[variants]/layout.tsx +2 -1
  55. package/src/features/Conversation/components/MarkdownElements/LocalFile/Render/LocalFile.tsx +65 -0
  56. package/src/features/Conversation/components/MarkdownElements/LocalFile/Render/index.tsx +29 -0
  57. package/src/features/Conversation/components/MarkdownElements/LocalFile/index.ts +16 -0
  58. package/src/features/Conversation/components/MarkdownElements/index.ts +7 -1
  59. package/src/features/Conversation/components/MarkdownElements/remarkPlugins/__snapshots__/createRemarkSelfClosingTagPlugin.test.ts.snap +260 -0
  60. package/src/features/Conversation/components/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.test.ts +204 -0
  61. package/src/features/Conversation/components/MarkdownElements/remarkPlugins/createRemarkSelfClosingTagPlugin.ts +133 -0
  62. package/src/features/Conversation/components/MarkdownElements/type.ts +5 -1
  63. package/src/features/PluginDevModal/MCPManifestForm/ArgsInput.tsx +20 -0
  64. package/src/features/PluginDevModal/MCPManifestForm/MCPTypeSelect.tsx +176 -0
  65. package/src/features/PluginDevModal/{MCPManifestForm.tsx → MCPManifestForm/index.tsx} +92 -30
  66. package/src/libs/mcp/__tests__/__snapshots__/index.test.ts.snap +0 -56
  67. package/src/locales/default/electron.ts +38 -2
  68. package/src/locales/default/plugin.ts +14 -7
  69. package/src/server/modules/ElectronIPCClient/index.ts +36 -0
  70. package/src/server/routers/lambda/session.ts +2 -6
  71. package/src/server/routers/tools/mcp.ts +6 -0
  72. package/src/server/services/file/impls/index.ts +9 -1
  73. package/src/server/services/file/impls/local.test.ts +299 -0
  74. package/src/server/services/file/impls/local.ts +183 -0
  75. package/src/server/services/mcp/index.ts +19 -0
  76. package/src/services/aiModel/index.ts +5 -1
  77. package/src/services/aiProvider/index.ts +5 -1
  78. package/src/services/electron/autoUpdate.ts +4 -0
  79. package/src/services/file/index.ts +5 -1
  80. package/src/services/mcp.ts +13 -2
  81. package/src/services/message/index.ts +5 -1
  82. package/src/services/plugin/index.ts +5 -1
  83. package/src/services/session/index.ts +5 -1
  84. package/src/services/tableViewer/desktop.ts +15 -0
  85. package/src/services/tableViewer/index.ts +4 -1
  86. package/src/services/thread/index.ts +5 -1
  87. package/src/services/topic/index.ts +5 -1
  88. package/src/services/user/index.ts +5 -1
  89. package/src/store/electron/actions/app.ts +59 -0
  90. package/src/store/electron/actions/sync.ts +5 -1
  91. package/src/store/electron/initialState.ts +3 -1
  92. package/src/store/electron/store.ts +6 -1
  93. package/src/store/tool/slices/customPlugin/action.ts +16 -4
  94. package/src/utils/client/GlobalAgentContextManager.ts +85 -0
  95. package/src/utils/promptTemplate.test.ts +78 -0
  96. package/src/utils/promptTemplate.ts +17 -0
@@ -0,0 +1,80 @@
1
+ ---
2
+ description:
3
+ globs:
4
+ alwaysApply: false
5
+ ---
6
+ **新增桌面端工具流程:**
7
+
8
+ 1. **定义工具接口 (Manifest):**
9
+ * **文件:** `src/tools/[tool_category]/index.ts` (例如: `src/tools/local-files/index.ts`)
10
+ * **操作:**
11
+ * 在 `ApiName` 对象(例如 `LocalFilesApiName`)中添加一个新的、唯一的 API 名称。
12
+ * 在 `Manifest` 对象(例如 `LocalFilesManifest`)的 `api` 数组中,新增一个对象来定义新工具的接口。
13
+ * **关键字段:**
14
+ * `name`: 使用上一步定义的 API 名称。
15
+ * `description`: 清晰描述工具的功能,供 Agent 理解和向用户展示。
16
+ * `parameters`: 使用 JSON Schema 定义工具所需的输入参数。
17
+ * `type`: 通常是 'object'。
18
+ * `properties`: 定义每个参数的名称、`description`、`type` (string, number, boolean, array, etc.),使用英文。
19
+ * `required`: 一个字符串数组,列出必须提供的参数名称。
20
+
21
+ 2. **定义相关类型:**
22
+ * **文件 1:** `packages/electron-client-ipc/src/types.ts` (或类似的共享 IPC 类型文件)
23
+ * **操作:** 定义传递给 IPC 事件的参数类型接口 (例如: `RenameLocalFileParams`, `MoveLocalFileParams`)。确保与 Manifest 中定义的 `parameters` 一致。
24
+ * **文件 2:** `src/tools/[tool_category]/type.ts` (例如: `src/tools/local-files/type.ts`)
25
+ * **操作:** 定义此工具执行后,存储在前端 Zustand Store 中的状态类型接口 (例如: `LocalRenameFileState`, `LocalMoveFileState`)。这通常包含操作结果(成功/失败)、错误信息以及相关数据(如旧路径、新路径等)。
26
+
27
+ 3. **实现前端状态管理 (Store Action):**
28
+ * **文件:** `src/store/chat/slices/builtinTool/actions/[tool_category].ts` (例如: `src/store/chat/slices/builtinTool/actions/localFile.ts`)
29
+ * **操作:**
30
+ * 导入在步骤 2 中定义的 IPC 参数类型和状态类型。
31
+ * 在 Action 接口 (例如: `LocalFileAction`) 中添加新 Action 的方法签名,使用对应的 IPC 参数类型。
32
+ * 在 `createSlice` (例如: `localFileSlice`) 中实现该 Action 方法:
33
+ * 接收 `id` (消息 ID) 和 `params` (符合 IPC 参数类型)。
34
+ * 设置加载状态 (`toggleLocalFileLoading(id, true)`)。
35
+ * 调用对应的 `Service` 层方法 (见步骤 4),传递 `params`。
36
+ * 使用 `try...catch` 处理 `Service` 调用可能发生的错误。
37
+ * **成功时:**
38
+ * 调用 `updatePluginState(id, {...})` 更新插件状态,使用步骤 2 中定义的状态类型。
39
+ * 调用 `internal_updateMessageContent(id, JSON.stringify({...}))` 更新消息内容,通常包含成功确认信息。
40
+ * **失败时:**
41
+ * 记录错误 (`console.error`)。
42
+ * 调用 `updatePluginState(id, {...})` 更新插件状态,包含错误信息。
43
+ * 调用 `internal_updateMessagePluginError(id, {...})` 设置消息的错误状态。
44
+ * 调用 `internal_updateMessageContent(id, JSON.stringify({...}))` 更新消息内容,包含错误信息。
45
+ * 在 `finally` 块中取消加载状态 (`toggleLocalFileLoading(id, false)`)。
46
+ * 返回操作是否成功 (`boolean`)。
47
+
48
+ 4. **实现 Service 层 (调用 IPC):**
49
+ * **文件:** `src/services/electron/[tool_category]Service.ts` (例如: `src/services/electron/localFileService.ts`)
50
+ * **操作:**
51
+ * 导入在步骤 2 中定义的 IPC 参数类型。
52
+ * 添加一个新的 `async` 方法,方法名通常与 Action 名称对应 (例如: `renameLocalFile`)。
53
+ * 方法接收 `params` (符合 IPC 参数类型)。
54
+ * 使用从 `@lobechat/electron-client-ipc` 导入的 `dispatch` (或 `invoke`) 函数,调用与 Manifest 中 `name` 字段匹配的 IPC 事件名称,并将 `params` 传递过去。
55
+ * 定义方法的返回类型,通常是 `Promise<{ success: boolean; error?: string }>`,与后端 Controller 返回的结构一致。
56
+
57
+ 5. **实现后端逻辑 (Controller / IPC Handler):**
58
+ * **文件:** `apps/desktop/src/main/controllers/[ToolName]Ctr.ts` (例如: `apps/desktop/src/main/controllers/LocalFileCtr.ts`)
59
+ * **操作:**
60
+ * 导入 Node.js 相关模块 (`fs`, `path` 等) 和 IPC 相关依赖 (`ipcClientEvent`, 参数类型等)。
61
+ * 添加一个新的 `async` 方法,方法名通常以 `handle` 开头 (例如: `handleRenameFile`)。
62
+ * 使用 `@ipcClientEvent('yourApiName')` 装饰器将此方法注册为对应 IPC 事件的处理器,确保 `'yourApiName'` 与 Manifest 中的 `name` 和 Service 层调用的事件名称一致。
63
+ * 方法的参数应解构自 Service 层传递过来的对象,类型与步骤 2 中定义的 IPC 参数类型匹配。
64
+ * 实现核心业务逻辑:
65
+ * 进行必要的输入验证。
66
+ * 执行文件系统操作或其他后端任务 (例如: `fs.promises.rename`)。
67
+ * 使用 `try...catch` 捕获执行过程中的错误。
68
+ * 处理特定错误码 (`error.code`) 以提供更友好的错误消息。
69
+ * 返回一个包含 `success` (boolean) 和可选 `error` (string) 字段的对象。
70
+
71
+ 6. **更新 Agent 文档 (System Role):**
72
+ * **文件:** `src/tools/[tool_category]/systemRole.ts` (例如: `src/tools/local-files/systemRole.ts`)
73
+ * **操作:**
74
+ * 在 `<core_capabilities>` 部分添加新工具的简要描述。
75
+ * 如果需要,更新 `<workflow>`。
76
+ * 在 `<tool_usage_guidelines>` 部分为新工具添加详细的使用说明,解释其参数、用途和预期行为。
77
+ * 如有必要,更新 `<security_considerations>`。
78
+ * 如有必要(例如工具返回了新的数据结构或路径),更新 `<response_format>` 中的示例。
79
+
80
+ 通过遵循这些步骤,可以系统地将新的桌面端工具集成到 LobeChat 的插件系统中。
package/.env.desktop CHANGED
@@ -1,7 +1,8 @@
1
1
  # copy this file to .env when you want to develop the desktop app or you will fail
2
2
  APP_URL=http://localhost:3015
3
- FEATURE_FLAGS=+pin_list
3
+ FEATURE_FLAGS=-check_updates,+pin_list
4
4
  KEY_VAULTS_SECRET=oLXWIiR/AKF+rWaqy9lHkrYgzpATbW3CtJp3UfkVgpE=
5
5
  DATABASE_URL=postgresql://postgres@localhost:5432/postgres
6
6
  DEFAULT_AGENT_CONFIG="model=qwen2.5;provider=ollama;chatConfig.searchFCModel.provider=ollama;chatConfig.searchFCModel.model=qwen2.5"
7
7
  SYSTEM_AGENT="default=ollama/qwen2.5"
8
+ SEARCH_PROVIDERS=search1api
@@ -21,21 +21,16 @@ module.exports = async ({ github, context, releaseUrl, version, tag }) => {
21
21
  // Organize assets by platform
22
22
  const macAssets = release.data.assets.filter(
23
23
  (asset) =>
24
- ((asset.name.includes('.dmg') || asset.name.includes('.zip')) &&
25
- !asset.name.includes('.blockmap')) ||
26
- (asset.name.includes('latest-mac') && asset.name.endsWith('.yml')),
24
+ (asset.name.includes('.dmg') || asset.name.includes('.zip')) &&
25
+ !asset.name.includes('.blockmap'),
27
26
  );
28
27
 
29
28
  const winAssets = release.data.assets.filter(
30
- (asset) =>
31
- (asset.name.includes('.exe') && !asset.name.includes('.blockmap')) ||
32
- (asset.name.includes('latest-win') && asset.name.endsWith('.yml')),
29
+ (asset) => asset.name.includes('.exe') && !asset.name.includes('.blockmap'),
33
30
  );
34
31
 
35
32
  const linuxAssets = release.data.assets.filter(
36
- (asset) =>
37
- (asset.name.includes('.AppImage') && !asset.name.includes('.blockmap')) ||
38
- (asset.name.includes('latest-linux') && asset.name.endsWith('.yml')),
33
+ (asset) => asset.name.includes('.AppImage') && !asset.name.includes('.blockmap'),
39
34
  );
40
35
 
41
36
  // Generate combined download table
package/CHANGELOG.md CHANGED
@@ -2,6 +2,31 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ### [Version 1.82.1](https://github.com/lobehub/lobe-chat/compare/v1.82.0...v1.82.1)
6
+
7
+ <sup>Released on **2025-04-23**</sup>
8
+
9
+ #### 💄 Styles
10
+
11
+ - **misc**: Improve mcp server type select and fix refresh mcp manifest issue.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### Styles
19
+
20
+ - **misc**: Improve mcp server type select and fix refresh mcp manifest issue, closes [#7517](https://github.com/lobehub/lobe-chat/issues/7517) ([53d8eac](https://github.com/lobehub/lobe-chat/commit/53d8eac))
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.82.0](https://github.com/lobehub/lobe-chat/compare/v1.81.9...v1.82.0)
6
31
 
7
32
  <sup>Released on **2025-04-22**</sup>
package/changelog/v1.json CHANGED
@@ -1,4 +1,13 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "improvements": [
5
+ "Improve mcp server type select and fix refresh mcp manifest issue."
6
+ ]
7
+ },
8
+ "date": "2025-04-23",
9
+ "version": "1.82.1"
10
+ },
2
11
  {
3
12
  "children": {
4
13
  "features": [
@@ -17,16 +17,52 @@
17
17
  "statusDisconnected": "غير متصل",
18
18
  "urlRequired": "يرجى إدخال عنوان الخادم"
19
19
  },
20
+ "sync": {
21
+ "continue": "استمر",
22
+ "inCloud": "تستخدم حاليًا المزامنة السحابية",
23
+ "inLocalStorage": "تستخدم حاليًا التخزين المحلي",
24
+ "isIniting": "جارٍ التهيئة...",
25
+ "lobehubCloud": {
26
+ "description": "الإصدار السحابي المقدم رسميًا",
27
+ "title": "LobeHub Cloud"
28
+ },
29
+ "local": {
30
+ "description": "استخدام قاعدة بيانات محلية، متاحة بالكامل دون اتصال",
31
+ "title": "قاعدة بيانات محلية"
32
+ },
33
+ "mode": {
34
+ "cloudSync": "مزامنة سحابية",
35
+ "localStorage": "تخزين محلي",
36
+ "title": "اختر وضع الاتصال الخاص بك",
37
+ "useSelfHosted": "استخدام نسخة مستضافة ذاتيًا؟"
38
+ },
39
+ "selfHosted": {
40
+ "description": "نسخة المجتمع التي تم نشرها ذاتيًا",
41
+ "title": "نسخة مستضافة ذاتيًا"
42
+ }
43
+ },
20
44
  "updater": {
45
+ "checkingUpdate": "التحقق من وجود تحديثات",
46
+ "checkingUpdateDesc": "جارٍ الحصول على معلومات الإصدار...",
47
+ "downloadNewVersion": "تحميل إصدار جديد",
21
48
  "downloadingUpdate": "جارٍ تنزيل التحديث",
22
49
  "downloadingUpdateDesc": "يتم تنزيل التحديث، يرجى الانتظار...",
50
+ "installLater": "تحديث عند بدء التشغيل التالي",
51
+ "isLatestVersion": "الإصدار الحالي هو الأحدث",
52
+ "isLatestVersionDesc": "رائع، الإصدار {{version}} الذي تستخدمه هو أحدث إصدار متاح.",
23
53
  "later": "تحديث لاحقًا",
24
54
  "newVersionAvailable": "يتوفر إصدار جديد",
25
55
  "newVersionAvailableDesc": "تم العثور على إصدار جديد {{version}}، هل ترغب في التنزيل الآن؟",
26
- "restartAndInstall": "إعادة التشغيل والتثبيت",
56
+ "restartAndInstall": "تثبيت التحديث وإعادة التشغيل",
27
57
  "updateError": "خطأ في التحديث",
28
58
  "updateReady": "التحديث جاهز",
29
- "updateReadyDesc": "تم تنزيل Lobe Chat {{version}} بنجاح، سيتم التثبيت بعد إعادة تشغيل التطبيق.",
59
+ "updateReadyDesc": "تم تنزيل الإصدار الجديد {{version}}، يمكنك إكمال التثبيت بعد إعادة تشغيل التطبيق.",
30
60
  "upgradeNow": "تحديث الآن"
61
+ },
62
+ "waitingOAuth": {
63
+ "cancel": "إلغاء",
64
+ "description": "تم فتح صفحة التفويض في المتصفح، يرجى إكمال التفويض في المتصفح",
65
+ "helpText": "إذا لم يفتح المتصفح تلقائيًا، يرجى النقر على إلغاء ثم المحاولة مرة أخرى",
66
+ "title": "انتظار الاتصال بالتفويض"
31
67
  }
32
68
  }
@@ -34,37 +34,6 @@
34
34
  "desc": "العلامة المميزة للبرنامج المساعد",
35
35
  "label": "المعرف"
36
36
  },
37
- "mcp": {
38
- "args": {
39
- "desc": "قائمة المعلمات المرسلة إلى أمر STDIO",
40
- "label": "معلمات الأمر",
41
- "placeholder": "على سبيل المثال: --port 8080 --debug",
42
- "tooltip": "اضغط على Enter بعد إدخال المعلمات أو استخدم الفاصلة/المسافة للفصل"
43
- },
44
- "command": {
45
- "desc": "الملف القابل للتنفيذ أو البرنامج النصي لبدء مكون MCP STDIO",
46
- "label": "الأمر",
47
- "placeholder": "على سبيل المثال: python main.py أو /path/to/executable"
48
- },
49
- "endpoint": {
50
- "desc": "أدخل عنوان خادم HTTP القابل للبث MCP الخاص بك",
51
- "label": "عنوان URL لنقطة نهاية MCP"
52
- },
53
- "identifier": {
54
- "desc": "حدد اسمًا لمكون MCP الخاص بك، يجب أن يكون باستخدام أحرف إنجليزية",
55
- "invalid": "يمكنك إدخال أحرف إنجليزية، أرقام، والرمزين - و _ فقط",
56
- "label": "اسم مكون MCP",
57
- "placeholder": "على سبيل المثال: my-mcp-plugin"
58
- },
59
- "type": {
60
- "desc": "اختر طريقة الاتصال لمكون MCP، النسخة على الويب تدعم فقط HTTP القابل للبث",
61
- "label": "نوع مكون MCP"
62
- },
63
- "url": {
64
- "desc": "أدخل عنوان نقطة نهاية مكون HTTP MCP الخاص بك",
65
- "label": "عنوان URL لنقطة نهاية HTTP"
66
- }
67
- },
68
37
  "mode": {
69
38
  "mcp": "مكون MCP",
70
39
  "mcpExp": "تجريبي",
@@ -76,6 +45,37 @@
76
45
  "placeholder": "محرك البحث"
77
46
  }
78
47
  },
48
+ "mcp": {
49
+ "args": {
50
+ "desc": "قائمة المعلمات المرسلة إلى أمر STDIO",
51
+ "label": "معلمات الأمر",
52
+ "placeholder": "على سبيل المثال: --port 8080 --debug",
53
+ "tooltip": "اضغط على Enter بعد إدخال المعلمات أو استخدم الفاصلة/المسافة للفصل"
54
+ },
55
+ "command": {
56
+ "desc": "الملف القابل للتنفيذ أو البرنامج النصي المستخدم لبدء ملحق MCP STDIO",
57
+ "label": "الأمر",
58
+ "placeholder": "على سبيل المثال: python main.py أو /path/to/executable"
59
+ },
60
+ "endpoint": {
61
+ "desc": "أدخل عنوان خادم MCP Streamable HTTP الخاص بك",
62
+ "label": "عنوان URL لنقطة نهاية MCP"
63
+ },
64
+ "identifier": {
65
+ "desc": "حدد اسمًا لملحق MCP الخاص بك، يجب أن يكون باستخدام أحرف إنجليزية",
66
+ "invalid": "يمكنك إدخال أحرف إنجليزية، أرقام، والرمزين - و _ فقط",
67
+ "label": "اسم ملحق MCP",
68
+ "placeholder": "على سبيل المثال: my-mcp-plugin"
69
+ },
70
+ "type": {
71
+ "desc": "اختر طريقة الاتصال لملحق MCP، النسخة الويب تدعم فقط Streamable HTTP",
72
+ "label": "نوع ملحق MCP"
73
+ },
74
+ "url": {
75
+ "desc": "أدخل عنوان HTTP القابل للبث لخادم MCP الخاص بك، ولا ينتهي بـ /sse",
76
+ "label": "عنوان URL لنقطة نهاية HTTP"
77
+ }
78
+ },
79
79
  "meta": {
80
80
  "author": {
81
81
  "desc": "مؤلف البرنامج المساعد",
@@ -17,16 +17,52 @@
17
17
  "statusDisconnected": "Не е свързан",
18
18
  "urlRequired": "Моля, въведете адреса на сървъра"
19
19
  },
20
+ "sync": {
21
+ "continue": "Продължи",
22
+ "inCloud": "В момента използвате облачно синхронизиране",
23
+ "inLocalStorage": "В момента използвате локално хранилище",
24
+ "isIniting": "Инициализиране...",
25
+ "lobehubCloud": {
26
+ "description": "Официално предоставената облачна версия",
27
+ "title": "LobeHub Облак"
28
+ },
29
+ "local": {
30
+ "description": "Използва локална база данни, напълно офлайн",
31
+ "title": "Локална база данни"
32
+ },
33
+ "mode": {
34
+ "cloudSync": "Облачно синхронизиране",
35
+ "localStorage": "Локално хранилище",
36
+ "title": "Изберете вашия режим на свързване",
37
+ "useSelfHosted": "Използвате ли самостоятелно хостван екземпляр?"
38
+ },
39
+ "selfHosted": {
40
+ "description": "Общностна версия, разположена от вас",
41
+ "title": "Самостоятелно хостван екземпляр"
42
+ }
43
+ },
20
44
  "updater": {
45
+ "checkingUpdate": "Проверка за нова версия",
46
+ "checkingUpdateDesc": "Извличане на информация за версията...",
47
+ "downloadNewVersion": "Изтегляне на нова версия",
21
48
  "downloadingUpdate": "Изтегляне на актуализация",
22
49
  "downloadingUpdateDesc": "Актуализацията се изтегля, моля изчакайте...",
50
+ "installLater": "Актуализиране при следващо стартиране",
51
+ "isLatestVersion": "Вече имате най-новата версия",
52
+ "isLatestVersionDesc": "Страхотно, версията {{version}} е най-новата налична версия.",
23
53
  "later": "Актуализирай по-късно",
24
54
  "newVersionAvailable": "Налична е нова версия",
25
55
  "newVersionAvailableDesc": "Открита е нова версия {{version}}, искате ли да я изтеглите сега?",
26
- "restartAndInstall": "Рестартирай и инсталирай",
56
+ "restartAndInstall": "Инсталиране на актуализацията и рестартиране",
27
57
  "updateError": "Грешка при актуализацията",
28
58
  "updateReady": "Актуализацията е готова",
29
- "updateReadyDesc": "Lobe Chat {{version}} е изтеглен, рестартирайте приложението, за да завършите инсталацията.",
59
+ "updateReadyDesc": "Нова версия {{version}} е изтеглена, инсталацията ще завърши след рестартиране на приложението.",
30
60
  "upgradeNow": "Актуализирай сега"
61
+ },
62
+ "waitingOAuth": {
63
+ "cancel": "Отмени",
64
+ "description": "Браузърът е отворил страницата за авторизация, моля, завършете авторизацията в браузъра",
65
+ "helpText": "Ако браузърът не се е отворил автоматично, моля, кликнете върху отмяна и опитайте отново",
66
+ "title": "Изчакване на авторизационна връзка"
31
67
  }
32
68
  }
@@ -34,37 +34,6 @@
34
34
  "desc": "Уникалният идентификатор на плъгина",
35
35
  "label": "Идентификатор"
36
36
  },
37
- "mcp": {
38
- "args": {
39
- "desc": "Списък с параметри, предадени на STDIO командата",
40
- "label": "Командни параметри",
41
- "placeholder": "Например: --port 8080 --debug",
42
- "tooltip": "Натиснете Enter след въвеждане на параметри или използвайте запетая/интервал за разделяне"
43
- },
44
- "command": {
45
- "desc": "Изпълним файл или скрипт за стартиране на MCP STDIO плъгина",
46
- "label": "Команда",
47
- "placeholder": "Например: python main.py или /path/to/executable"
48
- },
49
- "endpoint": {
50
- "desc": "Въведете адреса на вашия MCP Streamable HTTP сървър",
51
- "label": "MCP Endpoint URL"
52
- },
53
- "identifier": {
54
- "desc": "Определете име за вашия MCP плъгин, трябва да използвате английски символи",
55
- "invalid": "Можете да въвеждате само английски символи, цифри, - и _",
56
- "label": "Име на MCP плъгин",
57
- "placeholder": "Например: my-mcp-plugin"
58
- },
59
- "type": {
60
- "desc": "Изберете начина на комуникация на MCP плъгина, уеб версията поддържа само Streamable HTTP",
61
- "label": "Тип на MCP плъгин"
62
- },
63
- "url": {
64
- "desc": "Въведете адреса на вашия MCP HTTP плъгин",
65
- "label": "HTTP Endpoint URL"
66
- }
67
- },
68
37
  "mode": {
69
38
  "mcp": "MCP плъгин",
70
39
  "mcpExp": "Експериментален",
@@ -76,6 +45,37 @@
76
45
  "placeholder": "Търсачка"
77
46
  }
78
47
  },
48
+ "mcp": {
49
+ "args": {
50
+ "desc": "Списък с параметри, предадени на STDIO командата",
51
+ "label": "Командни параметри",
52
+ "placeholder": "Например: --port 8080 --debug",
53
+ "tooltip": "Натиснете Enter след въвеждане на параметри или използвайте запетая/интервал за разделяне"
54
+ },
55
+ "command": {
56
+ "desc": "Изпълним файл или скрипт за стартиране на MCP STDIO плъгин",
57
+ "label": "Команда",
58
+ "placeholder": "Например: python main.py или /path/to/executable"
59
+ },
60
+ "endpoint": {
61
+ "desc": "Въведете адреса на вашия MCP Streamable HTTP Server",
62
+ "label": "MCP Endpoint URL"
63
+ },
64
+ "identifier": {
65
+ "desc": "Определете име за вашия MCP плъгин, трябва да използвате английски символи",
66
+ "invalid": "Можете да въвеждате само английски символи, цифри, - и _",
67
+ "label": "Име на MCP плъгин",
68
+ "placeholder": "Например: my-mcp-plugin"
69
+ },
70
+ "type": {
71
+ "desc": "Изберете начина на комуникация на MCP плъгина, уеб версията поддържа само Streamable HTTP",
72
+ "label": "Тип на MCP плъгин"
73
+ },
74
+ "url": {
75
+ "desc": "Въведете адреса на вашия MCP сървър Streamable HTTP, който не завършва с /sse",
76
+ "label": "HTTP Endpoint URL"
77
+ }
78
+ },
79
79
  "meta": {
80
80
  "author": {
81
81
  "desc": "Авторът на плъгина",
@@ -17,16 +17,52 @@
17
17
  "statusDisconnected": "Nicht verbunden",
18
18
  "urlRequired": "Bitte geben Sie die Serveradresse ein"
19
19
  },
20
+ "sync": {
21
+ "continue": "Fortfahren",
22
+ "inCloud": "Aktuell Cloud-Synchronisierung verwenden",
23
+ "inLocalStorage": "Aktuell lokale Speicherung verwenden",
24
+ "isIniting": "Wird initialisiert...",
25
+ "lobehubCloud": {
26
+ "description": "Offizielle Cloud-Version",
27
+ "title": "LobeHub Cloud"
28
+ },
29
+ "local": {
30
+ "description": "Verwendet lokale Datenbank, vollständig offline verfügbar",
31
+ "title": "Lokale Datenbank"
32
+ },
33
+ "mode": {
34
+ "cloudSync": "Cloud-Synchronisierung",
35
+ "localStorage": "Lokale Speicherung",
36
+ "title": "Wählen Sie Ihren Verbindungsmodus",
37
+ "useSelfHosted": "Selbstgehostete Instanz verwenden?"
38
+ },
39
+ "selfHosted": {
40
+ "description": "Community-Version, die selbst bereitgestellt wird",
41
+ "title": "Selbstgehostete Instanz"
42
+ }
43
+ },
20
44
  "updater": {
45
+ "checkingUpdate": "Überprüfen auf Updates",
46
+ "checkingUpdateDesc": "Versioninformationen werden abgerufen...",
47
+ "downloadNewVersion": "Neue Version herunterladen",
21
48
  "downloadingUpdate": "Update wird heruntergeladen",
22
49
  "downloadingUpdateDesc": "Das Update wird heruntergeladen, bitte warten...",
50
+ "installLater": "Beim nächsten Start aktualisieren",
51
+ "isLatestVersion": "Sie verwenden bereits die neueste Version",
52
+ "isLatestVersionDesc": "Fantastisch, die verwendete Version {{version}} ist die aktuellste Version.",
23
53
  "later": "Später aktualisieren",
24
54
  "newVersionAvailable": "Neue Version verfügbar",
25
55
  "newVersionAvailableDesc": "Eine neue Version {{version}} wurde gefunden, möchten Sie jetzt herunterladen?",
26
- "restartAndInstall": "Neustarten und installieren",
56
+ "restartAndInstall": "Update installieren und neu starten",
27
57
  "updateError": "Update-Fehler",
28
58
  "updateReady": "Update ist bereit",
29
- "updateReadyDesc": "Lobe Chat {{version}} wurde heruntergeladen, starten Sie die Anwendung neu, um die Installation abzuschließen.",
59
+ "updateReadyDesc": "Die neue Version {{version}} wurde heruntergeladen, die Installation wird nach dem Neustart der Anwendung abgeschlossen.",
30
60
  "upgradeNow": "Jetzt aktualisieren"
61
+ },
62
+ "waitingOAuth": {
63
+ "cancel": "Abbrechen",
64
+ "description": "Der Browser hat die Autorisierungsseite geöffnet, bitte schließen Sie die Autorisierung im Browser ab",
65
+ "helpText": "Wenn der Browser nicht automatisch geöffnet wurde, klicken Sie bitte auf Abbrechen und versuchen Sie es erneut",
66
+ "title": "Warten auf Autorisierungsverbindung"
31
67
  }
32
68
  }
@@ -47,15 +47,10 @@
47
47
  },
48
48
  "mcp": {
49
49
  "args": {
50
- "desc": "Liste der Parameter, die an den STDIO-Befehl übergeben werden",
51
- "label": "Befehlsparameter",
52
- "placeholder": "z.B.: --port 8080 --debug",
53
- "tooltip": "Drücken Sie die Eingabetaste oder verwenden Sie Kommas/Leerzeichen zur Trennung der Eingabeparameter"
50
+ "label": "Befehlsparameter"
54
51
  },
55
52
  "command": {
56
- "desc": "Die ausführbare Datei oder das Skript zum Starten des MCP STDIO-Plugins",
57
- "label": "Befehl",
58
- "placeholder": "z.B.: python main.py oder /path/to/executable"
53
+ "label": "Befehl"
59
54
  },
60
55
  "endpoint": {
61
56
  "desc": "Geben Sie die Adresse Ihres MCP Streamable HTTP Servers ein",
@@ -72,7 +67,7 @@
72
67
  "label": "MCP-Plugin-Typ"
73
68
  },
74
69
  "url": {
75
- "desc": "Geben Sie die Endpoint-Adresse Ihres MCP HTTP-Plugins ein",
70
+ "desc": "Geben Sie Ihre MCP-Server-Streamable-HTTP-Adresse ein, die nicht mit /sse endet",
76
71
  "label": "HTTP Endpoint-URL"
77
72
  }
78
73
  },
@@ -17,16 +17,52 @@
17
17
  "statusDisconnected": "Not connected",
18
18
  "urlRequired": "Please enter the server address"
19
19
  },
20
+ "sync": {
21
+ "continue": "Continue",
22
+ "inCloud": "Currently using cloud sync",
23
+ "inLocalStorage": "Currently using local storage",
24
+ "isIniting": "Initializing...",
25
+ "lobehubCloud": {
26
+ "description": "Officially provided cloud version",
27
+ "title": "LobeHub Cloud"
28
+ },
29
+ "local": {
30
+ "description": "Uses a local database, fully available offline",
31
+ "title": "Local Database"
32
+ },
33
+ "mode": {
34
+ "cloudSync": "Cloud Sync",
35
+ "localStorage": "Local Storage",
36
+ "title": "Select your connection mode",
37
+ "useSelfHosted": "Use a self-hosted instance?"
38
+ },
39
+ "selfHosted": {
40
+ "description": "Community version that you can deploy yourself",
41
+ "title": "Self-Hosted Instance"
42
+ }
43
+ },
20
44
  "updater": {
45
+ "checkingUpdate": "Checking for updates",
46
+ "checkingUpdateDesc": "Retrieving version information...",
47
+ "downloadNewVersion": "Download new version",
21
48
  "downloadingUpdate": "Downloading update",
22
49
  "downloadingUpdateDesc": "The update is downloading, please wait...",
50
+ "installLater": "Update on next launch",
51
+ "isLatestVersion": "You are using the latest version",
52
+ "isLatestVersionDesc": "Great! The version {{version}} you are using is the latest available.",
23
53
  "later": "Update later",
24
54
  "newVersionAvailable": "New version available",
25
55
  "newVersionAvailableDesc": "A new version {{version}} has been found, would you like to download it now?",
26
- "restartAndInstall": "Restart and install",
56
+ "restartAndInstall": "Install updates and restart",
27
57
  "updateError": "Update error",
28
58
  "updateReady": "Update ready",
29
- "updateReadyDesc": "Lobe Chat {{version}} has been downloaded, restart the application to complete the installation.",
59
+ "updateReadyDesc": "The new version {{version}} has been downloaded. Restart the application to complete the installation.",
30
60
  "upgradeNow": "Update now"
61
+ },
62
+ "waitingOAuth": {
63
+ "cancel": "Cancel",
64
+ "description": "The browser has opened the authorization page, please complete the authorization in the browser",
65
+ "helpText": "If the browser did not open automatically, please click cancel and try again",
66
+ "title": "Waiting for Authorization Connection"
31
67
  }
32
68
  }
@@ -47,15 +47,10 @@
47
47
  },
48
48
  "mcp": {
49
49
  "args": {
50
- "desc": "List of parameters to pass to the STDIO command",
51
- "label": "Command Parameters",
52
- "placeholder": "e.g., --port 8080 --debug",
53
- "tooltip": "Press Enter after entering parameters or separate with commas/spaces"
50
+ "label": "Command Parameters"
54
51
  },
55
52
  "command": {
56
- "desc": "Executable file or script to start the MCP STDIO plugin",
57
- "label": "Command",
58
- "placeholder": "e.g., python main.py or /path/to/executable"
53
+ "label": "Command"
59
54
  },
60
55
  "endpoint": {
61
56
  "desc": "Enter the address of your MCP Streamable HTTP Server",
@@ -72,7 +67,7 @@
72
67
  "label": "MCP Plugin Type"
73
68
  },
74
69
  "url": {
75
- "desc": "Enter the Endpoint address of your MCP HTTP plugin",
70
+ "desc": "Enter your MCP Server Streamable HTTP address, which should not end with /sse",
76
71
  "label": "HTTP Endpoint URL"
77
72
  }
78
73
  },