@lobehub/chat 0.158.0 → 0.158.2

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 (121) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/locales/ar/common.json +1 -0
  3. package/locales/ar/metadata.json +18 -0
  4. package/locales/ar/plugin.json +5 -6
  5. package/locales/ar/tool.json +2 -1
  6. package/locales/bg-BG/common.json +1 -0
  7. package/locales/bg-BG/metadata.json +18 -0
  8. package/locales/bg-BG/plugin.json +5 -6
  9. package/locales/bg-BG/tool.json +2 -1
  10. package/locales/de-DE/common.json +1 -0
  11. package/locales/de-DE/metadata.json +18 -0
  12. package/locales/de-DE/plugin.json +5 -6
  13. package/locales/de-DE/tool.json +2 -1
  14. package/locales/en-US/common.json +2 -1
  15. package/locales/en-US/metadata.json +18 -0
  16. package/locales/en-US/plugin.json +5 -6
  17. package/locales/en-US/tool.json +2 -1
  18. package/locales/es-ES/common.json +1 -0
  19. package/locales/es-ES/metadata.json +18 -0
  20. package/locales/es-ES/plugin.json +5 -6
  21. package/locales/es-ES/tool.json +2 -1
  22. package/locales/fr-FR/common.json +1 -0
  23. package/locales/fr-FR/metadata.json +18 -0
  24. package/locales/fr-FR/plugin.json +5 -6
  25. package/locales/fr-FR/tool.json +2 -1
  26. package/locales/it-IT/common.json +1 -0
  27. package/locales/it-IT/metadata.json +18 -0
  28. package/locales/it-IT/plugin.json +5 -6
  29. package/locales/it-IT/tool.json +2 -1
  30. package/locales/ja-JP/common.json +1 -0
  31. package/locales/ja-JP/metadata.json +18 -0
  32. package/locales/ja-JP/plugin.json +5 -6
  33. package/locales/ja-JP/tool.json +2 -1
  34. package/locales/ko-KR/common.json +1 -0
  35. package/locales/ko-KR/metadata.json +18 -0
  36. package/locales/ko-KR/plugin.json +5 -6
  37. package/locales/ko-KR/tool.json +2 -1
  38. package/locales/nl-NL/common.json +1 -0
  39. package/locales/nl-NL/metadata.json +18 -0
  40. package/locales/nl-NL/plugin.json +63 -64
  41. package/locales/nl-NL/tool.json +2 -1
  42. package/locales/pl-PL/common.json +1 -0
  43. package/locales/pl-PL/metadata.json +18 -0
  44. package/locales/pl-PL/plugin.json +98 -99
  45. package/locales/pl-PL/tool.json +2 -1
  46. package/locales/pt-BR/common.json +1 -0
  47. package/locales/pt-BR/metadata.json +18 -0
  48. package/locales/pt-BR/plugin.json +5 -6
  49. package/locales/pt-BR/tool.json +2 -1
  50. package/locales/ru-RU/common.json +1 -0
  51. package/locales/ru-RU/metadata.json +18 -0
  52. package/locales/ru-RU/plugin.json +5 -6
  53. package/locales/ru-RU/tool.json +2 -1
  54. package/locales/tr-TR/common.json +1 -0
  55. package/locales/tr-TR/metadata.json +18 -0
  56. package/locales/tr-TR/plugin.json +5 -6
  57. package/locales/tr-TR/tool.json +2 -1
  58. package/locales/vi-VN/common.json +1 -0
  59. package/locales/vi-VN/metadata.json +18 -0
  60. package/locales/vi-VN/plugin.json +5 -6
  61. package/locales/vi-VN/tool.json +2 -1
  62. package/locales/zh-CN/common.json +1 -0
  63. package/locales/zh-CN/metadata.json +18 -0
  64. package/locales/zh-CN/plugin.json +5 -6
  65. package/locales/zh-CN/tool.json +2 -1
  66. package/locales/zh-TW/common.json +1 -0
  67. package/locales/zh-TW/metadata.json +18 -0
  68. package/locales/zh-TW/plugin.json +5 -6
  69. package/locales/zh-TW/tool.json +2 -1
  70. package/package.json +2 -1
  71. package/public/manifest.json +76 -16
  72. package/public/og/cover.png +0 -0
  73. package/public/screenshots/shot-1.desktop.png +0 -0
  74. package/public/screenshots/shot-1.mobile.png +0 -0
  75. package/public/screenshots/shot-2.desktop.png +0 -0
  76. package/public/screenshots/shot-2.mobile.png +0 -0
  77. package/public/screenshots/shot-3.desktop.png +0 -0
  78. package/public/screenshots/shot-3.mobile.png +0 -0
  79. package/public/screenshots/shot-4.desktop.png +0 -0
  80. package/public/screenshots/shot-4.mobile.png +0 -0
  81. package/public/screenshots/shot-5.desktop.png +0 -0
  82. package/public/screenshots/shot-5.mobile.png +0 -0
  83. package/src/app/(auth)/login/[[...login]]/page.tsx +14 -7
  84. package/src/app/(auth)/signup/[[...signup]]/page.tsx +14 -7
  85. package/src/app/(main)/(mobile)/me/(home)/features/useCategory.tsx +16 -1
  86. package/src/app/(main)/(mobile)/me/(home)/page.tsx +10 -0
  87. package/src/app/(main)/(mobile)/me/data/page.tsx +10 -0
  88. package/src/app/(main)/(mobile)/me/profile/page.tsx +11 -0
  89. package/src/app/(main)/(mobile)/me/settings/page.tsx +11 -0
  90. package/src/app/(main)/chat/(workspace)/features/TelemetryNotification.tsx +1 -1
  91. package/src/app/(main)/chat/(workspace)/page.tsx +21 -1
  92. package/src/app/(main)/market/page.tsx +17 -8
  93. package/src/app/(main)/profile/[[...slugs]]/page.tsx +7 -4
  94. package/src/app/(main)/settings/about/page.tsx +5 -2
  95. package/src/app/(main)/settings/agent/page.tsx +5 -3
  96. package/src/app/(main)/settings/common/page.tsx +5 -3
  97. package/src/app/(main)/settings/llm/page.tsx +5 -2
  98. package/src/app/(main)/settings/sync/page.tsx +5 -3
  99. package/src/app/(main)/settings/tts/page.tsx +5 -3
  100. package/src/app/(main)/welcome/page.tsx +19 -6
  101. package/src/app/layout.tsx +1 -1
  102. package/src/app/metadata.ts +44 -54
  103. package/src/app/page.tsx +4 -4
  104. package/src/components/StructuredData/index.tsx +12 -0
  105. package/src/features/User/UserPanel/useMenu.tsx +16 -0
  106. package/src/hooks/usePWAInstall.ts +18 -0
  107. package/src/locales/default/common.ts +2 -1
  108. package/src/locales/default/index.ts +2 -0
  109. package/src/locales/default/metadata.ts +20 -0
  110. package/src/server/ld.ts +218 -0
  111. package/src/server/metadata.ts +96 -0
  112. package/src/server/translation.ts +11 -1
  113. package/src/utils/genOG.ts +20 -0
  114. package/public/screenshots/screenshot-1.png +0 -0
  115. package/public/screenshots/screenshot-2.png +0 -0
  116. package/public/screenshots/screenshot-3.png +0 -0
  117. package/public/screenshots/screenshot-4.png +0 -0
  118. package/src/app/(auth)/login/[[...login]]/PageTitle.tsx +0 -13
  119. package/src/app/(auth)/signup/[[...signup]]/PageTitle.tsx +0 -13
  120. /package/public/icons/{maskable-icon-192x192.png → icon-192x192.maskable.png} +0 -0
  121. /package/public/icons/{maskable-icon-512x512.png → icon-512x512.maskable.png} +0 -0
@@ -4,6 +4,7 @@
4
4
  "downloading": "O link da imagem gerada pelo DALL·E3 é válido apenas por 1 hora, está baixando a imagem para o armazenamento local...",
5
5
  "generate": "Gerar",
6
6
  "generating": "Gerando...",
7
- "images": "Imagens:"
7
+ "images": "Imagens:",
8
+ "prompt": "Palavra-chave"
8
9
  }
9
10
  }
@@ -58,6 +58,7 @@
58
58
  },
59
59
  "title": "Импорт данных"
60
60
  },
61
+ "installPWA": "Установить веб-приложение",
61
62
  "lang": {
62
63
  "ar": "арабский",
63
64
  "bg-BG": "болгарский",
@@ -0,0 +1,18 @@
1
+ {
2
+ "chat": {
3
+ "description": "LobeChat предлагает вам лучший опыт использования ChatGPT, OLLaMA, Gemini, Claude WebUI",
4
+ "title": "LobeChat: персональный инструмент для повышения эффективности LLM, чтобы сделать ваш мозг умнее"
5
+ },
6
+ "market": {
7
+ "description": "Создание контента, копирайтинг, вопросы и ответы, генерация изображений, видео, голоса, интеллектуальный агент, автоматизация рабочих процессов, настройте своего собственного помощника AI / GPTs / OLLaMA",
8
+ "title": "Рынок помощников"
9
+ },
10
+ "plugins": {
11
+ "description": "Поиск, создание диаграмм, академические исследования, генерация изображений, видео, голоса, автоматизация рабочих процессов, настройте специальные возможности плагинов ToolCall для ChatGPT / OLLaMA",
12
+ "title": "Рынок плагинов"
13
+ },
14
+ "welcome": {
15
+ "description": "LobeChat предлагает вам лучший опыт использования ChatGPT, OLLaMA, Gemini, Claude WebUI",
16
+ "title": "Добро пожаловать в LobeChat: персональный инструмент для повышения эффективности LLM, чтобы сделать ваш мозг умнее"
17
+ }
18
+ }
@@ -4,7 +4,9 @@
4
4
  "function_call": "Вызов функции",
5
5
  "off": "Отключить отладку",
6
6
  "on": "Включить отображение информации о вызовах плагинов",
7
- "response": "Ответ"
7
+ "payload": "полезная нагрузка",
8
+ "response": "Ответ",
9
+ "tool_call": "запрос на вызов инструмента"
8
10
  },
9
11
  "detailModal": {
10
12
  "info": {
@@ -128,10 +130,6 @@
128
130
  "plugin": "Запуск плагина..."
129
131
  },
130
132
  "pluginList": "Список плагинов",
131
- "plugins": {
132
- "loading": "Загрузка плагинов...",
133
- "unknown": "Неизвестный плагин"
134
- },
135
133
  "setting": "Настройка плагина",
136
134
  "settings": {
137
135
  "indexUrl": {
@@ -162,5 +160,6 @@
162
160
  "installed": "Установленные"
163
161
  },
164
162
  "title": "Магазин плагинов"
165
- }
163
+ },
164
+ "unknownPlugin": "Неизвестный плагин"
166
165
  }
@@ -4,6 +4,7 @@
4
4
  "downloading": "Ссылка на изображение, созданное DALL·E3, действительна только в течение 1 часа. Идет кэширование изображения локально...",
5
5
  "generate": "Создать",
6
6
  "generating": "Создание...",
7
- "images": "Изображения:"
7
+ "images": "Изображения:",
8
+ "prompt": "подсказка"
8
9
  }
9
10
  }
@@ -58,6 +58,7 @@
58
58
  },
59
59
  "title": "Veri İçe Aktar"
60
60
  },
61
+ "installPWA": "Tarayıcı Uygulamasını Yükle",
61
62
  "lang": {
62
63
  "ar": "Arapça",
63
64
  "bg-BG": "Bulgarca",
@@ -0,0 +1,18 @@
1
+ {
2
+ "chat": {
3
+ "description": "LobeChat size en iyi ChatGPT, OLLaMA, Gemini, Claude WebUI kullanım deneyimini sunar",
4
+ "title": "LobeChat: Kişisel LLM Verimlilik Aracı, Daha Akıllı Bir Beyin İçin Kendinize Bir Hediye"
5
+ },
6
+ "market": {
7
+ "description": "İçerik oluşturma, metin yazma, soru cevap, görüntü oluşturma, video oluşturma, ses oluşturma, akıllı ajan, otomasyon iş akışı, kendi AI / GPTs / OLLaMA akıllı asistanınızı özelleştirin",
8
+ "title": "Asistan Pazarı"
9
+ },
10
+ "plugins": {
11
+ "description": "Arama, grafik oluşturma, akademik, görüntü oluşturma, video oluşturma, ses oluşturma, otomasyon iş akışı, ChatGPT / OLLaMA için özel ToolCall eklenti yeteneklerini özelleştirin",
12
+ "title": "Eklenti Pazarı"
13
+ },
14
+ "welcome": {
15
+ "description": "LobeChat size en iyi ChatGPT, OLLaMA, Gemini, Claude WebUI kullanım deneyimini sunar",
16
+ "title": "LobeChat'i Kullanmaya Hoş Geldiniz: Kişisel LLM Verimlilik Aracı, Daha Akıllı Bir Beyin İçin Kendinize Bir Hediye"
17
+ }
18
+ }
@@ -4,7 +4,9 @@
4
4
  "function_call": "Fonksiyon Çağrısı",
5
5
  "off": "Hata Ayıklamayı Kapat",
6
6
  "on": "Eklenti Çağrı Bilgilerini Görüntüle",
7
- "response": "Yanıt"
7
+ "payload": "eklenti yükü",
8
+ "response": "Yanıt",
9
+ "tool_call": "aracı çağrı"
8
10
  },
9
11
  "detailModal": {
10
12
  "info": {
@@ -128,10 +130,6 @@
128
130
  "plugin": "Eklenti çalışıyor..."
129
131
  },
130
132
  "pluginList": "Eklenti Listesi",
131
- "plugins": {
132
- "loading": "Eklentiler kontrol ediliyor...",
133
- "unknown": "Bilinmeyen eklenti"
134
- },
135
133
  "setting": "Eklenti Ayarları",
136
134
  "settings": {
137
135
  "indexUrl": {
@@ -162,5 +160,6 @@
162
160
  "installed": "Yüklü"
163
161
  },
164
162
  "title": "Eklenti Mağazası"
165
- }
163
+ },
164
+ "unknownPlugin": "Bilinmeyen eklenti"
166
165
  }
@@ -4,6 +4,7 @@
4
4
  "downloading": "DallE3 tarafından oluşturulan resim bağlantıları sadece 1 saat geçerlidir, resim yerel olarak önbelleğe alınıyor...",
5
5
  "generate": "Oluştur",
6
6
  "generating": "Oluşturuluyor...",
7
- "images": "Görseller:"
7
+ "images": "Görseller:",
8
+ "prompt": "İpucu"
8
9
  }
9
10
  }
@@ -58,6 +58,7 @@
58
58
  },
59
59
  "title": "Nhập dữ liệu"
60
60
  },
61
+ "installPWA": "Cài đặt ứng dụng trình duyệt",
61
62
  "lang": {
62
63
  "ar": "Tiếng Ả Rập",
63
64
  "bg-BG": "Tiếng Bun-ga-ri",
@@ -0,0 +1,18 @@
1
+ {
2
+ "chat": {
3
+ "description": "LobeChat mang đến trải nghiệm sử dụng tốt nhất với ChatGPT, OLLaMA, Gemini, Claude WebUI",
4
+ "title": "LobeChat: Công cụ hiệu suất cá nhân LLM, giúp tăng cường trí não của bạn"
5
+ },
6
+ "market": {
7
+ "description": "Tạo nội dung, viết copy, trả lời câu hỏi, tạo hình ảnh, tạo video, tạo giọng nói, trợ lý thông minh, quy trình làm việc tự động, tùy chỉnh trợ lý trí tuệ AI / GPTs / OLLaMA riêng của bạn",
8
+ "title": "Thị trường trợ lý"
9
+ },
10
+ "plugins": {
11
+ "description": "Tìm kiếm, tạo biểu đồ, học thuật, tạo hình ảnh, tạo video, tạo giọng nói, quy trình làm việc tự động, tùy chỉnh khả năng plugin ToolCall riêng của ChatGPT / OLLaMA",
12
+ "title": "Thị trường plugin"
13
+ },
14
+ "welcome": {
15
+ "description": "LobeChat mang đến trải nghiệm sử dụng tốt nhất với ChatGPT, OLLaMA, Gemini, Claude WebUI",
16
+ "title": "Chào mừng đến với LobeChat: Công cụ hiệu suất cá nhân LLM, giúp tăng cường trí não của bạn"
17
+ }
18
+ }
@@ -4,7 +4,9 @@
4
4
  "function_call": "Gọi hàm",
5
5
  "off": "Tắt gỡ lỗi",
6
6
  "on": "Xem thông tin gọi plugin",
7
- "response": "Kết quả trả về"
7
+ "payload": "Dữ liệu cắm",
8
+ "response": "Kết quả trả về",
9
+ "tool_call": "Yêu cầu công cụ"
8
10
  },
9
11
  "detailModal": {
10
12
  "info": {
@@ -128,10 +130,6 @@
128
130
  "plugin": "Plugin đang chạy..."
129
131
  },
130
132
  "pluginList": "Danh sách plugin",
131
- "plugins": {
132
- "loading": "Đang kiểm tra công cụ...",
133
- "unknown": "Công cụ không xác định"
134
- },
135
133
  "setting": "Cài đặt plugin",
136
134
  "settings": {
137
135
  "indexUrl": {
@@ -162,5 +160,6 @@
162
160
  "installed": "Đã cài đặt"
163
161
  },
164
162
  "title": "Cửa hàng plugin"
165
- }
163
+ },
164
+ "unknownPlugin": "Plugin không xác định"
166
165
  }
@@ -4,6 +4,7 @@
4
4
  "downloading": "Liên kết hình ảnh được tạo bởi DallE3 chỉ có hiệu lực trong 1 giờ, đang tải hình ảnh xuống máy...",
5
5
  "generate": "Tạo",
6
6
  "generating": "Đang tạo...",
7
- "images": "Hình ảnh:"
7
+ "images": "Hình ảnh:",
8
+ "prompt": "Từ khóa"
8
9
  }
9
10
  }
@@ -58,6 +58,7 @@
58
58
  },
59
59
  "title": "导入数据"
60
60
  },
61
+ "installPWA": "安装浏览器应用 (PWA)",
61
62
  "lang": {
62
63
  "ar": "阿拉伯语",
63
64
  "bg-BG": "保加利亚语",
@@ -0,0 +1,18 @@
1
+ {
2
+ "chat": {
3
+ "description": "LobeChat 带给你最好的 ChatGPT, OLLaMA, Gemini, Claude WebUI 使用体验",
4
+ "title": "LobeChat:个人 LLM 效能工具,给自己一个更聪明的大脑"
5
+ },
6
+ "market": {
7
+ "description": "内容创作、文案、问答、图像生成、视频生成、语音生成、智能 Agent、自动化工作流,定制你专属的 AI / GPTs / OLLaMA 智能助手",
8
+ "title": "助手市场"
9
+ },
10
+ "plugins": {
11
+ "description": "搜素、图表生成、学术、图像生成、视频生成、语音生成、自动化工作流,定制 ChatGPT / OLLaMA 专属的 ToolCall 插件能力",
12
+ "title": "插件市场"
13
+ },
14
+ "welcome": {
15
+ "description": "LobeChat 带给你最好的 ChatGPT, OLLaMA, Gemini, Claude WebUI 使用体验",
16
+ "title": "欢迎使用 LobeChat:个人 LLM 效能工具,给自己一个更聪明的大脑"
17
+ }
18
+ }
@@ -4,7 +4,9 @@
4
4
  "function_call": "函数调用",
5
5
  "off": "关闭调试",
6
6
  "on": "查看插件调用信息",
7
- "response": "返回结果"
7
+ "payload": "插件载荷",
8
+ "response": "返回结果",
9
+ "tool_call": "工具调用请求"
8
10
  },
9
11
  "detailModal": {
10
12
  "info": {
@@ -128,10 +130,6 @@
128
130
  "plugin": "插件运行中..."
129
131
  },
130
132
  "pluginList": "插件列表",
131
- "plugins": {
132
- "loading": "工具检测中...",
133
- "unknown": "未知工具"
134
- },
135
133
  "setting": "插件设置",
136
134
  "settings": {
137
135
  "indexUrl": {
@@ -162,5 +160,6 @@
162
160
  "installed": "已安装"
163
161
  },
164
162
  "title": "插件商店"
165
- }
163
+ },
164
+ "unknownPlugin": "未知插件"
166
165
  }
@@ -4,6 +4,7 @@
4
4
  "downloading": "DallE3 生成的图片链接有效期仅1小时,正在缓存图片到本地...",
5
5
  "generate": "生成",
6
6
  "generating": "生成中...",
7
- "images": "图片:"
7
+ "images": "图片:",
8
+ "prompt": "提示词"
8
9
  }
9
10
  }
@@ -58,6 +58,7 @@
58
58
  },
59
59
  "title": "匯入資料"
60
60
  },
61
+ "installPWA": "安裝瀏覽器應用 (PWA)",
61
62
  "lang": {
62
63
  "ar": "阿拉伯語",
63
64
  "bg-BG": "保加利亞語",
@@ -0,0 +1,18 @@
1
+ {
2
+ "chat": {
3
+ "description": "LobeChat 帶給你最佳的 ChatGPT、OLLaMA、Gemini、Claude WebUI 使用體驗",
4
+ "title": "LobeChat:個人 LLM 效能工具,給自己一個更聰明的大腦"
5
+ },
6
+ "market": {
7
+ "description": "內容創作、文案、問答、圖像生成、視頻生成、語音生成、智能 Agent、自動化工作流,定制你專屬的 AI / GPTs / OLLaMA 智能助手",
8
+ "title": "助手市場"
9
+ },
10
+ "plugins": {
11
+ "description": "搜尋、圖表生成、學術、圖像生成、視頻生成、語音生成、自動化工作流,定制 ChatGPT / OLLaMA 專屬的 ToolCall 插件能力",
12
+ "title": "插件市場"
13
+ },
14
+ "welcome": {
15
+ "description": "LobeChat 帶給你最佳的 ChatGPT、OLLaMA、Gemini、Claude WebUI 使用體驗",
16
+ "title": "歡迎使用 LobeChat:個人 LLM 效能工具,給自己一個更聰明的大腦"
17
+ }
18
+ }
@@ -4,7 +4,9 @@
4
4
  "function_call": "函式呼叫",
5
5
  "off": "關閉偵錯",
6
6
  "on": "查看插件呼叫資訊",
7
- "response": "回應"
7
+ "payload": "插件載荷",
8
+ "response": "回應",
9
+ "tool_call": "工具呼叫"
8
10
  },
9
11
  "detailModal": {
10
12
  "info": {
@@ -128,10 +130,6 @@
128
130
  "plugin": "外掛執行中..."
129
131
  },
130
132
  "pluginList": "外掛清單",
131
- "plugins": {
132
- "loading": "插件檢測中...",
133
- "unknown": "未知插件"
134
- },
135
133
  "setting": "插件設置",
136
134
  "settings": {
137
135
  "indexUrl": {
@@ -162,5 +160,6 @@
162
160
  "installed": "已安裝"
163
161
  },
164
162
  "title": "插件商店"
165
- }
163
+ },
164
+ "unknownPlugin": "未知插件"
166
165
  }
@@ -4,6 +4,7 @@
4
4
  "downloading": "DallE3 生成的圖片連結有效期僅1小時,正在快取圖片到本地...",
5
5
  "generate": "生成",
6
6
  "generating": "生成中...",
7
- "images": "圖片:"
7
+ "images": "圖片:",
8
+ "prompt": "提示詞"
8
9
  }
9
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "0.158.0",
3
+ "version": "0.158.2",
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",
@@ -141,6 +141,7 @@
141
141
  "pino": "^9.0.0",
142
142
  "polished": "^4.3.1",
143
143
  "posthog-js": "^1.131.4",
144
+ "pwa-install-handler": "^2.5.0",
144
145
  "query-string": "^9.0.0",
145
146
  "random-words": "^2.0.1",
146
147
  "react": "^18.3.1",
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "background_color": "#000000",
3
- "description": "An open-source, extensible (Function Calling), high-performance chatbot framework. It supports one-click free deployment of your private ChatGPT/LLM web application",
3
+ "categories": ["productivity", "design", "development", "education"],
4
+ "description": "Personal LLM productivity tool, brings you the best user experience of ChatGPT, OLLaMA, Gemini, Claude WebUI. Customize AI assistant features flexibly according to personalized needs to solve problems, enhance productivity, and explore future workflow in LobeChat.",
4
5
  "display": "standalone",
6
+ "display_override": ["tabbed"],
7
+ "edge_side_panel": {
8
+ "preferred_width": 480
9
+ },
10
+ "handle_links": "auto",
5
11
  "icons": [
6
12
  {
7
13
  "src": "/icons/icon-192x192.png",
@@ -10,7 +16,7 @@
10
16
  "purpose": "any"
11
17
  },
12
18
  {
13
- "src": "/icons/maskable-icon-192x192.png",
19
+ "src": "/icons/icon-192x192.maskable.png",
14
20
  "sizes": "192x192",
15
21
  "type": "image/png",
16
22
  "purpose": "maskable"
@@ -22,40 +28,94 @@
22
28
  "purpose": "any"
23
29
  },
24
30
  {
25
- "src": "/icons/maskable-icon-512x512.png",
31
+ "src": "/icons/icon-512x512.maskable.png",
26
32
  "sizes": "512x512",
27
33
  "type": "image/png",
28
34
  "purpose": "maskable"
29
35
  }
30
36
  ],
31
- "id": "/",
37
+ "id": "lobe-chat",
38
+ "launch_handler": {
39
+ "client_mode": ["navigate-existing", "auto"]
40
+ },
32
41
  "name": "LobeChat",
33
42
  "orientation": "portrait",
43
+ "related_applications": [
44
+ {
45
+ "platform": "webapp",
46
+ "url": "https://chat-preview.lobehub.com/manifest.json"
47
+ }
48
+ ],
34
49
  "scope": "/",
35
50
  "screenshots": [
36
51
  {
37
- "src": "/screenshots/screenshot-1.png",
38
- "sizes": "750x1334",
39
- "type": "image/png"
52
+ "src": "/screenshots/shot-1.mobile.png",
53
+ "sizes": "640x1138",
54
+ "type": "image/png",
55
+ "form_factor": "narrow"
56
+ },
57
+ {
58
+ "src": "/screenshots/shot-2.mobile.png",
59
+ "sizes": "640x1138",
60
+ "type": "image/png",
61
+ "form_factor": "narrow"
62
+ },
63
+ {
64
+ "src": "/screenshots/shot-3.mobile.png",
65
+ "sizes": "640x1138",
66
+ "type": "image/png",
67
+ "form_factor": "narrow"
68
+ },
69
+ {
70
+ "src": "/screenshots/shot-4.mobile.png",
71
+ "sizes": "640x1138",
72
+ "type": "image/png",
73
+ "form_factor": "narrow"
74
+ },
75
+ {
76
+ "src": "/screenshots/shot-5.mobile.png",
77
+ "sizes": "640x1138",
78
+ "type": "image/png",
79
+ "form_factor": "narrow"
40
80
  },
41
81
  {
42
- "src": "/screenshots/screenshot-2.png",
43
- "sizes": "750x1334",
44
- "type": "image/png"
82
+ "src": "/screenshots/shot-1.desktop.png",
83
+ "sizes": "1280x676",
84
+ "type": "image/png",
85
+ "form_factor": "wide"
45
86
  },
46
87
  {
47
- "src": "/screenshots/screenshot-3.png",
48
- "sizes": "750x1334",
49
- "type": "image/png"
88
+ "src": "/screenshots/shot-2.desktop.png",
89
+ "sizes": "1280x676",
90
+ "type": "image/png",
91
+ "form_factor": "wide"
50
92
  },
51
93
  {
52
- "src": "/screenshots/screenshot-4.png",
53
- "sizes": "750x1334",
54
- "type": "image/png"
94
+ "src": "/screenshots/shot-3.desktop.png",
95
+ "sizes": "1280x676",
96
+ "type": "image/png",
97
+ "form_factor": "wide"
98
+ },
99
+ {
100
+ "src": "/screenshots/shot-4.desktop.png",
101
+ "sizes": "1280x676",
102
+ "type": "image/png",
103
+ "form_factor": "wide"
104
+ },
105
+ {
106
+ "src": "/screenshots/shot-5.desktop.png",
107
+ "sizes": "1280x676",
108
+ "type": "image/png",
109
+ "form_factor": "wide"
55
110
  }
56
111
  ],
57
112
  "short_name": "LobeChat",
58
113
  "splash_pages": null,
59
114
  "start_url": ".",
115
+ "tab_strip": {
116
+ "new_tab_button": {
117
+ "url": "/"
118
+ }
119
+ },
60
120
  "theme_color": "#000000"
61
121
  }
Binary file
@@ -1,14 +1,21 @@
1
1
  import { SignIn } from '@clerk/nextjs';
2
2
 
3
- import PageTitle from './PageTitle';
3
+ import { metadataModule } from '@/server/metadata';
4
+ import { translation } from '@/server/translation';
5
+
6
+ export const generateMetadata = async () => {
7
+ const { t } = await translation('clerk');
8
+ return metadataModule.generate({
9
+ description: t('signIn.start.subtitle'),
10
+ title: t('signIn.start.title', { applicationName: 'LobeChat' }),
11
+ url: '/login',
12
+ });
13
+ };
4
14
 
5
15
  const Page = () => {
6
- return (
7
- <>
8
- <PageTitle />
9
- <SignIn path="/login" />
10
- </>
11
- );
16
+ return <SignIn path="/login" />;
12
17
  };
13
18
 
19
+ Page.displayName = 'Login';
20
+
14
21
  export default Page;
@@ -1,14 +1,21 @@
1
1
  import { SignUp } from '@clerk/nextjs';
2
2
 
3
- import PageTitle from './PageTitle';
3
+ import { metadataModule } from '@/server/metadata';
4
+ import { translation } from '@/server/translation';
5
+
6
+ export const generateMetadata = async () => {
7
+ const { t } = await translation('clerk');
8
+ return metadataModule.generate({
9
+ description: t('signUp.start.subtitle'),
10
+ title: t('signUp.start.title'),
11
+ url: '/signup',
12
+ });
13
+ };
4
14
 
5
15
  const Page = () => {
6
- return (
7
- <>
8
- <PageTitle />
9
- <SignUp path="/signup" />
10
- </>
11
- );
16
+ return <SignUp path="/signup" />;
12
17
  };
13
18
 
19
+ Page.displayName = 'SignUp';
20
+
14
21
  export default Page;
@@ -1,11 +1,12 @@
1
1
  import { DiscordIcon } from '@lobehub/ui';
2
- import { Book, CircleUserRound, Database, Feather, Settings2 } from 'lucide-react';
2
+ import { Book, CircleUserRound, Database, Download, Feather, Settings2 } from 'lucide-react';
3
3
  import { useRouter } from 'next/navigation';
4
4
  import { useTranslation } from 'react-i18next';
5
5
 
6
6
  import { CellProps } from '@/components/Cell';
7
7
  import { enableAuth } from '@/const/auth';
8
8
  import { DISCORD, DOCUMENTS, FEEDBACK } from '@/const/url';
9
+ import { usePWAInstall } from '@/hooks/usePWAInstall';
9
10
  import { useUserStore } from '@/store/user';
10
11
  import { authSelectors } from '@/store/user/slices/auth/selectors';
11
12
 
@@ -13,6 +14,7 @@ import { useCategory as useSettingsCategory } from '../../settings/features/useC
13
14
 
14
15
  export const useCategory = () => {
15
16
  const router = useRouter();
17
+ const { canInstall, install } = usePWAInstall();
16
18
  const { t } = useTranslation(['common', 'setting', 'auth']);
17
19
  const [isLogin, isLoginWithAuth, isLoginWithClerk] = useUserStore((s) => [
18
20
  authSelectors.isLogin(s),
@@ -41,6 +43,18 @@ export const useCategory = () => {
41
43
  },
42
44
  ];
43
45
 
46
+ const pwa: CellProps[] = [
47
+ {
48
+ icon: Download,
49
+ key: 'pwa',
50
+ label: t('installPWA'),
51
+ onClick: () => install(),
52
+ },
53
+ {
54
+ type: 'divider',
55
+ },
56
+ ];
57
+
44
58
  const settingsWithoutAuth = [
45
59
  ...useSettingsCategory(),
46
60
  {
@@ -87,6 +101,7 @@ export const useCategory = () => {
87
101
  },
88
102
  ...(isLoginWithClerk ? profile : []),
89
103
  ...(enableAuth ? (isLoginWithAuth ? settings : []) : settingsWithoutAuth),
104
+ ...(canInstall ? pwa : []),
90
105
  ...(isLogin ? data : []),
91
106
  ...helps,
92
107
  ].filter(Boolean) as CellProps[];