@lobehub/chat 1.0.7 → 1.0.8

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 (52) hide show
  1. package/.env.example +52 -0
  2. package/CHANGELOG.md +33 -0
  3. package/README.md +48 -7
  4. package/README.zh-CN.md +48 -7
  5. package/docs/self-hosting/advanced/feature-flags.mdx +13 -11
  6. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +1 -1
  7. package/docs/self-hosting/advanced/server-database.mdx +387 -0
  8. package/docs/self-hosting/advanced/server-database.zh-CN.mdx +376 -0
  9. package/docs/self-hosting/advanced/upstream-sync.zh-CN.mdx +15 -15
  10. package/docs/usage/features/auth.mdx +44 -0
  11. package/docs/usage/features/auth.zh-CN.mdx +58 -0
  12. package/docs/usage/features/database.mdx +54 -0
  13. package/docs/usage/features/database.zh-CN.mdx +54 -0
  14. package/locales/ar/common.json +1 -1
  15. package/locales/bg-BG/common.json +1 -1
  16. package/locales/de-DE/common.json +1 -1
  17. package/locales/en-US/chat.json +14 -14
  18. package/locales/en-US/common.json +12 -12
  19. package/locales/en-US/market.json +6 -6
  20. package/locales/en-US/metadata.json +2 -2
  21. package/locales/en-US/setting.json +16 -16
  22. package/locales/en-US/welcome.json +2 -2
  23. package/locales/es-ES/common.json +1 -1
  24. package/locales/fr-FR/common.json +1 -1
  25. package/locales/it-IT/common.json +1 -1
  26. package/locales/ja-JP/common.json +1 -1
  27. package/locales/ko-KR/common.json +1 -1
  28. package/locales/nl-NL/common.json +1 -1
  29. package/locales/pl-PL/common.json +1 -1
  30. package/locales/pt-BR/common.json +1 -1
  31. package/locales/ru-RU/common.json +1 -1
  32. package/locales/tr-TR/common.json +1 -1
  33. package/locales/vi-VN/common.json +1 -1
  34. package/locales/zh-CN/common.json +1 -1
  35. package/locales/zh-TW/common.json +1 -1
  36. package/package.json +2 -2
  37. package/scripts/i18nWorkflow/utils.ts +1 -4
  38. package/scripts/migrateServerDB/index.ts +2 -0
  39. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/SendMore.tsx +3 -5
  40. package/src/app/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +15 -6
  41. package/src/app/(main)/chat/(workspace)/features/ShareButton/Preview.tsx +3 -2
  42. package/src/app/(main)/chat/@session/_layout/Desktop/SessionHeader.tsx +3 -2
  43. package/src/app/(main)/chat/@session/_layout/Mobile/SessionHeader.tsx +3 -2
  44. package/src/app/(main)/market/_layout/Desktop/Header.tsx +3 -2
  45. package/src/app/(main)/market/_layout/Desktop/Hero.tsx +1 -1
  46. package/src/app/(main)/welcome/_layout/Desktop.tsx +3 -2
  47. package/src/app/layout.tsx +2 -1
  48. package/src/components/BrandWatermark/index.tsx +2 -2
  49. package/src/components/FullscreenLoading/index.tsx +3 -2
  50. package/src/config/featureFlags/schema.ts +1 -1
  51. package/src/locales/default/common.ts +1 -1
  52. package/src/store/serverConfig/selectors.test.ts +1 -1
@@ -2,17 +2,17 @@
2
2
  "ModelSwitch": {
3
3
  "title": "Model"
4
4
  },
5
- "agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Agent Settings](/chat/settings#session={{id}}) to complete my information.",
5
+ "agentDefaultMessage": "Hello, I'm **{{name}}**. You can start chatting with me right away, or go to [Assistant Settings](/chat/settings#session={{id}}) to complete my information.",
6
6
  "agentDefaultMessageWithSystemRole": "Hello, I'm **{{name}}**, {{systemRole}}. Let's start chatting!",
7
- "agentsAndConversations": "Agents and Conversations",
7
+ "agentsAndConversations": "Assistants and Conversations",
8
8
  "backToBottom": "Back to bottom",
9
9
  "clearCurrentMessages": "Clear current session messages",
10
10
  "confirmClearCurrentMessages": "You are about to clear the current session messages. Once cleared, they cannot be retrieved. Please confirm your action.",
11
- "confirmRemoveSessionItemAlert": "You are about to delete this agent. Once deleted, it cannot be retrieved. Please confirm your action.",
12
- "confirmRemoveSessionSuccess": "Agent removed successfully",
13
- "defaultAgent": "Default Agent",
11
+ "confirmRemoveSessionItemAlert": "You are about to delete this assistant. Once deleted, it cannot be retrieved. Please confirm your action.",
12
+ "confirmRemoveSessionSuccess": "Assistant removed successfully",
13
+ "defaultAgent": "Default Assistant",
14
14
  "defaultList": "Default List",
15
- "defaultSession": "Default Agent",
15
+ "defaultSession": "Default Assistant",
16
16
  "duplicateSession": {
17
17
  "loading": "Copying...",
18
18
  "success": "Copy successful",
@@ -22,7 +22,7 @@
22
22
  "emptyAgent": "No assistant available",
23
23
  "historyRange": "History Range",
24
24
  "inbox": {
25
- "desc": "Activate the brain cluster and spark creative thinking. Your virtual agent is here to communicate with you about everything.",
25
+ "desc": "Activate the brain cluster and spark creative thinking. Your virtual assistant is here to communicate with you about everything.",
26
26
  "title": "Just Chat"
27
27
  },
28
28
  "input": {
@@ -39,20 +39,20 @@
39
39
  "delAndRegenerate": "Delete and Regenerate",
40
40
  "regenerate": "Regenerate"
41
41
  },
42
- "newAgent": "New Agent",
42
+ "newAgent": "New Assistant",
43
43
  "pin": "Pin",
44
44
  "pinOff": "Unpin",
45
45
  "regenerate": "Regenerate",
46
46
  "roleAndArchive": "Role and Archive",
47
- "searchAgentPlaceholder": "Search agents and conversations...",
47
+ "searchAgentPlaceholder": "Search assistants and conversations...",
48
48
  "sendPlaceholder": "Type your message here...",
49
49
  "sessionGroup": {
50
50
  "config": "Group Management",
51
- "confirmRemoveGroupAlert": "This group is about to be deleted. After deletion, the agents in this group will be moved to the default list. Please confirm your operation.",
52
- "createAgentSuccess": "Agent created successfully",
51
+ "confirmRemoveGroupAlert": "This group is about to be deleted. After deletion, the assistants in this group will be moved to the default list. Please confirm your operation.",
52
+ "createAgentSuccess": "Assistant created successfully",
53
53
  "createGroup": "Add New Group",
54
54
  "createSuccess": "Created successfully",
55
- "creatingAgent": "Creating agent...",
55
+ "creatingAgent": "Creating assistant...",
56
56
  "inputPlaceholder": "Please enter group name...",
57
57
  "moveGroup": "Move to Group",
58
58
  "newGroup": "New Group",
@@ -71,7 +71,7 @@
71
71
  "withBackground": "Include Background Image",
72
72
  "withFooter": "Include Footer",
73
73
  "withPluginInfo": "Include Plugin Information",
74
- "withSystemRole": "Include Agent Role Setting"
74
+ "withSystemRole": "Include Assistant Role Setting"
75
75
  },
76
76
  "stt": {
77
77
  "action": "Voice Input",
@@ -124,7 +124,7 @@
124
124
  "action": "Text-to-Speech",
125
125
  "clear": "Clear Speech"
126
126
  },
127
- "updateAgent": "Update Agent Information",
127
+ "updateAgent": "Update Assistant Information",
128
128
  "upload": {
129
129
  "actionFiletip": "Update File",
130
130
  "actionTooltip": "Upload Image",
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "about": "About",
3
3
  "advanceSettings": "Advanced Settings",
4
- "appInitializing": "LobeChat is initializing, please wait...",
4
+ "appInitializing": "The application is initializing, please wait patiently...",
5
5
  "autoGenerate": "Auto Generate",
6
- "autoGenerateTooltip": "Auto-generate agent description based on prompts",
6
+ "autoGenerateTooltip": "Auto-generate assistant description based on prompts",
7
7
  "autoGenerateTooltipDisabled": "Please enter a tooltip before using the autocomplete feature",
8
8
  "blog": "Product Blog",
9
9
  "cancel": "Cancel",
@@ -15,23 +15,23 @@
15
15
  "copySuccess": "Copied successfully",
16
16
  "dataStatistics": {
17
17
  "messages": "Messages",
18
- "sessions": "Agents",
18
+ "sessions": "Assistants",
19
19
  "today": "Today's New",
20
20
  "topics": "Topics"
21
21
  },
22
- "defaultAgent": "Default Agent",
23
- "defaultSession": "Default Agent",
22
+ "defaultAgent": "Default Assistant",
23
+ "defaultSession": "Default Assistant",
24
24
  "delete": "Delete",
25
25
  "document": "User Manual",
26
26
  "duplicate": "Create Duplicate",
27
27
  "edit": "Edit",
28
28
  "export": "Export Configuration",
29
29
  "exportType": {
30
- "agent": "Export Agent Settings",
31
- "agentWithMessage": "Export Agent and Messages",
32
- "all": "Export Global Settings and All Agent Data",
33
- "allAgent": "Export All Agent Settings",
34
- "allAgentWithMessage": "Export All Agents and Messages",
30
+ "agent": "Export Assistant Settings",
31
+ "agentWithMessage": "Export Assistant and Messages",
32
+ "all": "Export Global Settings and All Assistant Data",
33
+ "allAgent": "Export All Assistant Settings",
34
+ "allAgentWithMessage": "Export All Assistants and Messages",
35
35
  "globalSetting": "Export Global Settings"
36
36
  },
37
37
  "feedback": "Feedback",
@@ -76,7 +76,7 @@
76
76
  "errors": "Import errors",
77
77
  "messages": "Messages",
78
78
  "sessionGroups": "Groups",
79
- "sessions": "Agents",
79
+ "sessions": "Assistants",
80
80
  "skips": "Duplicates skipped",
81
81
  "topics": "Topics",
82
82
  "type": "Data Type"
@@ -196,7 +196,7 @@
196
196
  },
197
197
  "temp": "Temporary",
198
198
  "terms": "Terms of Service",
199
- "updateAgent": "Update Agent Information",
199
+ "updateAgent": "Update Assistant Information",
200
200
  "upgradeVersion": {
201
201
  "action": "Upgrade",
202
202
  "hasNew": "New update available",
@@ -1,6 +1,6 @@
1
1
  {
2
- "addAgent": "Add Agent",
3
- "addAgentAndConverse": "Add Agent and Converse",
2
+ "addAgent": "Add Assistant",
3
+ "addAgentAndConverse": "Add Assistant and Converse",
4
4
  "addAgentSuccess": "Successfully Added",
5
5
  "guide": {
6
6
  "func1": {
@@ -17,16 +17,16 @@
17
17
  }
18
18
  },
19
19
  "search": {
20
- "placeholder": "Search agent name, description or keywords..."
20
+ "placeholder": "Search assistant name, description or keywords..."
21
21
  },
22
22
  "sidebar": {
23
23
  "comment": "Comments",
24
24
  "prompt": "Prompts",
25
- "title": "Agent Details"
25
+ "title": "Assistant Details"
26
26
  },
27
- "submitAgent": "Submit Agent",
27
+ "submitAgent": "Submit Assistant",
28
28
  "title": {
29
- "allAgents": "All Agents",
29
+ "allAgents": "All Assistants",
30
30
  "recentSubmits": "Recent Submits"
31
31
  }
32
32
  }
@@ -4,8 +4,8 @@
4
4
  "title": "LobeChat: Personal LLM Productivity Tool, Give Yourself a Smarter Brain"
5
5
  },
6
6
  "market": {
7
- "description": "Content creation, copywriting, Q&A, image generation, video generation, voice generation, smart agents, automation workflows, customize your own AI / GPTs / OLLaMA intelligent agent",
8
- "title": "Agent Market"
7
+ "description": "Content creation, copywriting, Q&A, image generation, video generation, voice generation, smart assistants, automation workflows, customize your own AI / GPTs / OLLaMA intelligent assistant",
8
+ "title": "Assistant Market"
9
9
  },
10
10
  "plugins": {
11
11
  "description": "Search, chart generation, academic, image generation, video generation, voice generation, automation workflows, customize ChatGPT / OLLaMA exclusive ToolCall plugin capabilities",
@@ -4,7 +4,7 @@
4
4
  },
5
5
  "agentTab": {
6
6
  "chat": "Chat Preferences",
7
- "meta": "Agent Info",
7
+ "meta": "Assistant Info",
8
8
  "modal": "Model Settings",
9
9
  "plugin": "Plugin Settings",
10
10
  "prompt": "Role Configuration",
@@ -21,7 +21,7 @@
21
21
  "clear": {
22
22
  "action": "Clear Now",
23
23
  "confirm": "Confirm to clear all chat data?",
24
- "desc": "This will clear all session data, including agent, files, messages, plugins, etc.",
24
+ "desc": "This will clear all session data, including assistant, files, messages, plugins, etc.",
25
25
  "success": "All session messages have been cleared",
26
26
  "title": "Clear All Session Messages"
27
27
  },
@@ -136,11 +136,11 @@
136
136
  "title": "Background Color"
137
137
  },
138
138
  "description": {
139
- "placeholder": "Enter agent description",
140
- "title": "Agent Description"
139
+ "placeholder": "Enter assistant description",
140
+ "title": "Assistant Description"
141
141
  },
142
142
  "name": {
143
- "placeholder": "Enter agent name",
143
+ "placeholder": "Enter assistant name",
144
144
  "title": "Name"
145
145
  },
146
146
  "prompt": {
@@ -151,7 +151,7 @@
151
151
  "placeholder": "Enter tag",
152
152
  "title": "Tag"
153
153
  },
154
- "title": "Agent Information"
154
+ "title": "Assistant Information"
155
155
  },
156
156
  "settingChat": {
157
157
  "autoCreateTopicThreshold": {
@@ -288,7 +288,7 @@
288
288
  "title": "Text-to-Speech Service"
289
289
  },
290
290
  "voice": {
291
- "desc": "Select a voice for the current agent, different TTS services support different voices",
291
+ "desc": "Select a voice for the current assistant, different TTS services support different voices",
292
292
  "preview": "Voice Preview",
293
293
  "title": "Text-to-Speech Voice"
294
294
  }
@@ -325,11 +325,11 @@
325
325
  "title": "Theme Settings"
326
326
  },
327
327
  "submitAgentModal": {
328
- "button": "Submit Agent",
329
- "identifier": "Agent Identifier",
330
- "metaMiss": "Please complete the agent information before submitting. It should include name, description, and tags",
331
- "placeholder": "Enter a unique identifier for the agent, e.g. web-development",
332
- "tooltips": "Share to the agent marketplace"
328
+ "button": "Submit Assistant",
329
+ "identifier": "Assistant Identifier",
330
+ "metaMiss": "Please complete the assistant information before submitting. It should include name, description, and tags",
331
+ "placeholder": "Enter a unique identifier for the assistant, e.g. web-development",
332
+ "tooltips": "Share to the assistant marketplace"
333
333
  },
334
334
  "sync": {
335
335
  "device": {
@@ -366,26 +366,26 @@
366
366
  }
367
367
  },
368
368
  "systemAgent": {
369
- "title": "System Agents",
369
+ "title": "System Assistants",
370
370
  "topic": {
371
371
  "label": "Topic Naming Model",
372
372
  "modelDesc": "Model designated for automatic topic renaming",
373
373
  "title": "Automatic Topic Naming"
374
374
  },
375
375
  "translation": {
376
- "label": "Translation Agent",
376
+ "label": "Translation Assistant",
377
377
  "modelDesc": "Specific model for translate message",
378
378
  "title": "Translation Settings"
379
379
  }
380
380
  },
381
381
  "tab": {
382
382
  "about": "About",
383
- "agent": "Default Agent",
383
+ "agent": "Default Assistant",
384
384
  "common": "Common Settings",
385
385
  "experiment": "Experiment",
386
386
  "llm": "Language Model",
387
387
  "sync": "Cloud Sync",
388
- "system-agent": "System Agent",
388
+ "system-agent": "System Assistant",
389
389
  "tts": "Text-to-Speech"
390
390
  },
391
391
  "tools": {
@@ -39,11 +39,11 @@
39
39
  }
40
40
  },
41
41
  "header": "Welcome",
42
- "pickAgent": "Or choose from the following agent templates",
42
+ "pickAgent": "Or choose from the following assistant templates",
43
43
  "skip": "Skip Creation",
44
44
  "slogan": {
45
45
  "desc1": "Pioneering the new age of thinking and creating. Built for you, the Super Individual.",
46
- "desc2": "Create your first agent and let's get started~",
46
+ "desc2": "Create your first assistant and let's get started~",
47
47
  "title": "Unlock the superpower of your brain"
48
48
  }
49
49
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Acerca de",
3
3
  "advanceSettings": "Configuración avanzada",
4
- "appInitializing": "LobeChat está inicializando, por favor espere...",
4
+ "appInitializing": "Iniciando la aplicación, por favor espere...",
5
5
  "autoGenerate": "Generación automática",
6
6
  "autoGenerateTooltip": "Completar automáticamente la descripción del asistente basándose en las sugerencias",
7
7
  "autoGenerateTooltipDisabled": "Por favor, complete la palabra clave antes de usar la función de autocompletar",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "À propos",
3
3
  "advanceSettings": "Paramètres avancés",
4
- "appInitializing": "LobeChat est en cours de démarrage, veuillez patienter...",
4
+ "appInitializing": "L'application est en cours de démarrage, veuillez patienter...",
5
5
  "autoGenerate": "Générer automatiquement",
6
6
  "autoGenerateTooltip": "Générer automatiquement la description de l'agent basée sur les suggestions",
7
7
  "autoGenerateTooltipDisabled": "Veuillez saisir un mot-clé avant d'activer la fonction de complétion automatique",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Informazioni",
3
3
  "advanceSettings": "Impostazioni avanzate",
4
- "appInitializing": "LobeChat inizializzazione in corso, attendere prego...",
4
+ "appInitializing": "Inizializzazione dell'app in corso, attendere pazientemente...",
5
5
  "autoGenerate": "Generazione automatica",
6
6
  "autoGenerateTooltip": "Completamento automatico basato su suggerimenti",
7
7
  "autoGenerateTooltipDisabled": "Si prega di compilare il campo suggerimento per abilitare la funzione di completamento automatico",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "概要",
3
3
  "advanceSettings": "高度な設定",
4
- "appInitializing": "LobeChatを初期化中です。しばらくお待ちください...",
4
+ "appInitializing": "アプリケーションを初期化しています。しばらくお待ちください...",
5
5
  "autoGenerate": "自動生成",
6
6
  "autoGenerateTooltip": "ヒントに基づいてエージェントの説明を自動生成します",
7
7
  "autoGenerateTooltipDisabled": "ツールチップを入力してから自動生成機能を使用してください",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "소개",
3
3
  "advanceSettings": "고급 설정",
4
- "appInitializing": "LobeChat이 초기화 중입니다. 잠시 기다려주세요...",
4
+ "appInitializing": "앱을 시작하는 중입니다. 잠시 기다려주세요...",
5
5
  "autoGenerate": "자동 생성",
6
6
  "autoGenerateTooltip": "힌트 단어를 기반으로 에이전트 설명을 자동으로 완성합니다",
7
7
  "autoGenerateTooltipDisabled": "자동 완성 기능을 사용하려면 툴팁을 입력하십시오",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Over",
3
3
  "advanceSettings": "Geavanceerde instellingen",
4
- "appInitializing": "LobeChat wordt geïnitialiseerd, even geduld a.u.b...",
4
+ "appInitializing": "Applicatie wordt gestart, gelieve geduld te hebben...",
5
5
  "autoGenerate": "Automatisch genereren",
6
6
  "autoGenerateTooltip": "Automatisch assistentbeschrijving genereren op basis van suggesties",
7
7
  "autoGenerateTooltipDisabled": "Schakel de automatische aanvulling in nadat u een suggestiewoord heeft ingevoerd",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "O nas",
3
3
  "advanceSettings": "Zaawansowane ustawienia",
4
- "appInitializing": "LobeChat inicjuje, proszę czekać...",
4
+ "appInitializing": "Inicjowanie aplikacji, prosimy o cierpliwość...",
5
5
  "autoGenerate": "Automatyczne generowanie",
6
6
  "autoGenerateTooltip": "Automatyczne uzupełnianie opisu asystenta na podstawie sugestii",
7
7
  "autoGenerateTooltipDisabled": "Proszę wprowadzić słowo kluczowe przed użyciem funkcji automatycznego uzupełniania",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Sobre",
3
3
  "advanceSettings": "Configurações avançadas",
4
- "appInitializing": "LobeChat inicializando, por favor aguarde...",
4
+ "appInitializing": "Inicializando o aplicativo, por favor, aguarde...",
5
5
  "autoGenerate": "Auto completar",
6
6
  "autoGenerateTooltip": "Auto completar descrição do assistente com base em sugestões",
7
7
  "autoGenerateTooltipDisabled": "Por favor, preencha a dica antes de usar a função de preenchimento automático",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "О нас",
3
3
  "advanceSettings": "Расширенные настройки",
4
- "appInitializing": "LobeChat запускается, пожалуйста, подождите…",
4
+ "appInitializing": "Приложение запускается, пожалуйста, подождите...",
5
5
  "autoGenerate": "Автозаполнение",
6
6
  "autoGenerateTooltip": "Автоматическое дополнение описания агента на основе подсказок",
7
7
  "autoGenerateTooltipDisabled": "Пожалуйста, введите подсказку перед использованием функции автозаполнения",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Hakkında",
3
3
  "advanceSettings": "Gelişmiş Ayarlar",
4
- "appInitializing": "LobeChat başlatılıyor, lütfen bekleyin...",
4
+ "appInitializing": "Uygulama başlatılıyor, lütfen bekleyin...",
5
5
  "autoGenerate": "Otomatik Oluştur",
6
6
  "autoGenerateTooltip": "Auto-generate agent description based on prompts",
7
7
  "autoGenerateTooltipDisabled": "Otomatik tamamlama işlevini kullanmadan önce ipucu kelimesini girin",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "Giới thiệu",
3
3
  "advanceSettings": "Cài đặt nâng cao",
4
- "appInitializing": "LobeChat đang khởi động, vui lòng chờ...",
4
+ "appInitializing": "Ứng dụng đang khởi động, vui lòng chờ...",
5
5
  "autoGenerate": "Tự động tạo",
6
6
  "autoGenerateTooltip": "Tự động hoàn thành mô tả trợ lý dựa trên từ gợi ý",
7
7
  "autoGenerateTooltipDisabled": "Vui lòng nhập từ gợi ý trước khi sử dụng tính năng tự động hoàn thành",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "关于",
3
3
  "advanceSettings": "高级设置",
4
- "appInitializing": "LobeChat 启动中,请耐心等待...",
4
+ "appInitializing": "应用启动中,请耐心等待...",
5
5
  "autoGenerate": "自动补全",
6
6
  "autoGenerateTooltip": "基于提示词自动补全助手描述",
7
7
  "autoGenerateTooltipDisabled": "请填写提示词后使用自动补全功能",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "about": "關於",
3
3
  "advanceSettings": "進階設定",
4
- "appInitializing": "LobeChat 初始化中,請耐心等候...",
4
+ "appInitializing": "應用程式初始化中,請耐心等候...",
5
5
  "autoGenerate": "自動生成",
6
6
  "autoGenerateTooltip": "基於提示詞自動生成助手描述",
7
7
  "autoGenerateTooltipDisabled": "請填寫提示詞後使用自動補全功能",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/chat",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
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",
@@ -109,7 +109,7 @@
109
109
  "@lobehub/chat-plugins-gateway": "^1.9.0",
110
110
  "@lobehub/icons": "^1.23.0",
111
111
  "@lobehub/tts": "^1.24.1",
112
- "@lobehub/ui": "^1.142.4",
112
+ "@lobehub/ui": "^1.143.3",
113
113
  "@microsoft/fetch-event-source": "^2.0.1",
114
114
  "@neondatabase/serverless": "^0.9.3",
115
115
  "@next/third-parties": "^14.2.3",
@@ -10,12 +10,9 @@ export const readJSON = (filePath: string) => {
10
10
  return JSON.parse(data);
11
11
  };
12
12
 
13
- export const replaceAssistantToAgent = (text: string) =>
14
- text.replaceAll('assistant', 'agent').replaceAll('Assistant', 'Agent');
15
-
16
13
  export const writeJSON = (filePath: string, data: any) => {
17
14
  const jsonStr = JSON.stringify(data, null, 2);
18
- writeFileSync(filePath, replaceAssistantToAgent(jsonStr), 'utf8');
15
+ writeFileSync(filePath, jsonStr, 'utf8');
19
16
  };
20
17
 
21
18
  export const genResourcesContent = (locales: string[]) => {
@@ -27,4 +27,6 @@ if (connectionString) {
27
27
  // eslint-disable-next-line unicorn/no-process-exit
28
28
  process.exit(1);
29
29
  });
30
+ } else {
31
+ console.log('🟢 not find database env, migration skipped');
30
32
  }
@@ -13,7 +13,6 @@ import { useSendMessage } from '@/features/ChatInput/useSend';
13
13
  import { useChatStore } from '@/store/chat';
14
14
  import { useUserStore } from '@/store/user';
15
15
  import { preferenceSelectors } from '@/store/user/selectors';
16
- import { isMacOS } from '@/utils/platform';
17
16
 
18
17
  const useStyles = createStyles(({ css, prefixCls }) => {
19
18
  return {
@@ -25,13 +24,12 @@ const useStyles = createStyles(({ css, prefixCls }) => {
25
24
  };
26
25
  });
27
26
 
28
- const isMac = isMacOS();
29
-
30
27
  interface SendMoreProps {
31
28
  disabled?: boolean;
29
+ isMac?: boolean;
32
30
  }
33
31
 
34
- const SendMore = memo<SendMoreProps>(({ disabled }) => {
32
+ const SendMore = memo<SendMoreProps>(({ disabled, isMac }) => {
35
33
  const { t } = useTranslation('chat');
36
34
 
37
35
  const { styles } = useStyles();
@@ -74,7 +72,7 @@ const SendMore = memo<SendMoreProps>(({ disabled }) => {
74
72
  icon: useCmdEnterToSend ? <Icon icon={LucideCheck} /> : <div />,
75
73
  key: 'sendWithCmdEnter',
76
74
  label: t('input.sendWithCmdEnter', {
77
- meta: isMac ? 'Cmd' : 'Ctrl',
75
+ meta: typeof isMac === 'boolean' ? (isMac ? '' : 'Ctrl') : '…',
78
76
  }),
79
77
  onClick: () => {
80
78
  updatePreference({ useCmdEnterToSend: true });
@@ -1,9 +1,9 @@
1
1
  import { Icon } from '@lobehub/ui';
2
- import { Button, Space } from 'antd';
2
+ import { Button, Skeleton, Space } from 'antd';
3
3
  import { createStyles } from 'antd-style';
4
4
  import { ChevronUp, CornerDownLeft, LucideCommand } from 'lucide-react';
5
5
  import { rgba } from 'polished';
6
- import { memo } from 'react';
6
+ import { memo, useEffect, useState } from 'react';
7
7
  import { useTranslation } from 'react-i18next';
8
8
  import { Center, Flexbox } from 'react-layout-kit';
9
9
 
@@ -50,8 +50,6 @@ const useStyles = createStyles(({ css, prefixCls, token }) => {
50
50
  };
51
51
  });
52
52
 
53
- const isMac = isMacOS();
54
-
55
53
  interface FooterProps {
56
54
  setExpand?: (expand: boolean) => void;
57
55
  }
@@ -86,9 +84,20 @@ const Footer = memo<FooterProps>(({ setExpand }) => {
86
84
 
87
85
  const sendMessage = useSendMessage();
88
86
 
87
+ const [isMac, setIsMac] = useState<boolean>();
88
+ useEffect(() => {
89
+ setIsMac(isMacOS());
90
+ }, [setIsMac]);
91
+
89
92
  const cmdEnter = (
90
93
  <Flexbox gap={2} horizontal>
91
- <Icon icon={isMac ? LucideCommand : ChevronUp} />
94
+ {typeof isMac === 'boolean' ? (
95
+ <Icon icon={isMac ? LucideCommand : ChevronUp} />
96
+ ) : (
97
+ <Skeleton.Node active style={{ height: '100%', width: 12 }}>
98
+ {' '}
99
+ </Skeleton.Node>
100
+ )}
92
101
  <Icon icon={CornerDownLeft} />
93
102
  </Flexbox>
94
103
  );
@@ -159,7 +168,7 @@ const Footer = memo<FooterProps>(({ setExpand }) => {
159
168
  >
160
169
  {t('input.send')}
161
170
  </Button>
162
- <SendMore disabled={buttonDisabled} />
171
+ <SendMore disabled={buttonDisabled} isMac={isMac} />
163
172
  </Space.Compact>
164
173
  )}
165
174
  </Flexbox>
@@ -1,4 +1,5 @@
1
- import { Avatar, ChatHeaderTitle, Logo, Markdown } from '@lobehub/ui';
1
+ import { Avatar, ChatHeaderTitle, Markdown } from '@lobehub/ui';
2
+ import { LobeChat } from '@lobehub/ui/brand';
2
3
  import { memo } from 'react';
3
4
  import { useTranslation } from 'react-i18next';
4
5
  import { Flexbox } from 'react-layout-kit';
@@ -62,7 +63,7 @@ const Preview = memo<FieldType & { title?: string }>(
62
63
  <ChatList />
63
64
  {withFooter ? (
64
65
  <Flexbox align={'center'} className={styles.footer} gap={4}>
65
- <Logo extra={'chat'} type={'combine'} />
66
+ <LobeChat type={'combine'} />
66
67
  <div className={styles.url}>{pkg.homepage}</div>
67
68
  </Flexbox>
68
69
  ) : (
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { ActionIcon, Logo } from '@lobehub/ui';
3
+ import { ActionIcon } from '@lobehub/ui';
4
+ import { LobeChat } from '@lobehub/ui/brand';
4
5
  import { createStyles } from 'antd-style';
5
6
  import { MessageSquarePlus } from 'lucide-react';
6
7
  import { memo } from 'react';
@@ -37,7 +38,7 @@ const Header = memo(() => {
37
38
  <Flexbox className={styles.top} gap={16} padding={16}>
38
39
  <Flexbox distribution={'space-between'} horizontal>
39
40
  <Flexbox align={'center'} gap={4} horizontal>
40
- <Logo className={styles.logo} size={36} type={'text'} />
41
+ <LobeChat className={styles.logo} size={36} type={'text'} />
41
42
  {enableWebrtc && <SyncStatusTag />}
42
43
  </Flexbox>
43
44
  {showCreateSession && (
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { ActionIcon, Logo, MobileNavBar } from '@lobehub/ui';
3
+ import { ActionIcon, MobileNavBar } from '@lobehub/ui';
4
+ import { LobeChat } from '@lobehub/ui/brand';
4
5
  import { MessageSquarePlus } from 'lucide-react';
5
6
  import { useRouter } from 'next/navigation';
6
7
  import { memo } from 'react';
@@ -23,7 +24,7 @@ const Header = memo(() => {
23
24
  left={
24
25
  <Flexbox align={'center'} gap={8} horizontal style={{ marginLeft: 8 }}>
25
26
  <UserAvatar onClick={() => router.push('/me')} size={32} />
26
- <Logo type={'text'} />
27
+ <LobeChat type={'text'} />
27
28
  {enableWebrtc && <SyncStatusInspector placement={'bottom'} />}
28
29
  </Flexbox>
29
30
  }
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
- import { ChatHeader, Logo } from '@lobehub/ui';
3
+ import { ChatHeader } from '@lobehub/ui';
4
+ import { LobeChat } from '@lobehub/ui/brand';
4
5
  import { createStyles } from 'antd-style';
5
6
  import { memo } from 'react';
6
7
 
@@ -18,7 +19,7 @@ const Header = memo(() => {
18
19
 
19
20
  return (
20
21
  <ChatHeader
21
- left={<Logo className={styles.logo} extra={'Discover'} size={36} type={'text'} />}
22
+ left={<LobeChat className={styles.logo} extra={'Discover'} size={36} type={'text'} />}
22
23
  right={<ShareAgentButton />}
23
24
  />
24
25
  );
@@ -30,7 +30,7 @@ const Hero = memo(() => {
30
30
  const { theme, styles } = useStyles();
31
31
  return (
32
32
  <Center>
33
- <h1 className={styles.title}>Find & Use The Best Agents</h1>
33
+ <h1 className={styles.title}>Find & Use The Best Assistants</h1>
34
34
  <GridBackground animation className={styles.background} colorFront={theme.colorText} random />
35
35
  </Center>
36
36
  );