@lobehub/lobehub 2.0.0-next.14 → 2.0.0-next.16

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 (108) hide show
  1. package/.github/workflows/desktop-pr-build.yml +6 -6
  2. package/.github/workflows/release-desktop-beta.yml +4 -4
  3. package/.github/workflows/release.yml +1 -2
  4. package/.github/workflows/test.yml +4 -5
  5. package/.nvmrc +1 -1
  6. package/CHANGELOG.md +42 -0
  7. package/apps/desktop/tsconfig.json +0 -1
  8. package/changelog/v1.json +14 -0
  9. package/docs/self-hosting/advanced/feature-flags.mdx +0 -1
  10. package/docs/self-hosting/advanced/feature-flags.zh-CN.mdx +0 -1
  11. package/e2e/tsconfig.json +0 -1
  12. package/package.json +58 -58
  13. package/packages/types/src/serverConfig.ts +2 -6
  14. package/packages/web-crawler/tsconfig.json +0 -1
  15. package/src/app/[variants]/(auth)/signup/[[...signup]]/page.tsx +1 -8
  16. package/src/app/[variants]/(main)/(mobile)/me/(home)/features/UserBanner.tsx +3 -6
  17. package/src/app/[variants]/(main)/labs/components/LabCard.tsx +3 -1
  18. package/src/app/[variants]/(main)/settings/provider/detail/azure/index.tsx +5 -7
  19. package/src/components/InvalidAPIKey/APIKeyForm/Bedrock.tsx +8 -13
  20. package/src/config/featureFlags/schema.test.ts +0 -2
  21. package/src/config/featureFlags/schema.ts +0 -6
  22. package/src/config/modelProviders/ai21.ts +1 -16
  23. package/src/config/modelProviders/ai302.ts +1 -128
  24. package/src/config/modelProviders/ai360.ts +1 -32
  25. package/src/config/modelProviders/anthropic.ts +1 -71
  26. package/src/config/modelProviders/azure.ts +1 -51
  27. package/src/config/modelProviders/baichuan.ts +1 -57
  28. package/src/config/modelProviders/bedrock.ts +1 -276
  29. package/src/config/modelProviders/cloudflare.ts +1 -64
  30. package/src/config/modelProviders/deepseek.ts +1 -19
  31. package/src/config/modelProviders/fireworksai.ts +1 -174
  32. package/src/config/modelProviders/giteeai.ts +1 -135
  33. package/src/config/modelProviders/github.ts +1 -254
  34. package/src/config/modelProviders/google.ts +1 -130
  35. package/src/config/modelProviders/groq.ts +1 -119
  36. package/src/config/modelProviders/higress.ts +1 -1713
  37. package/src/config/modelProviders/huggingface.ts +1 -54
  38. package/src/config/modelProviders/hunyuan.ts +1 -83
  39. package/src/config/modelProviders/infiniai.ts +1 -74
  40. package/src/config/modelProviders/internlm.ts +1 -20
  41. package/src/config/modelProviders/mistral.ts +1 -95
  42. package/src/config/modelProviders/modelscope.ts +1 -27
  43. package/src/config/modelProviders/moonshot.ts +1 -29
  44. package/src/config/modelProviders/novita.ts +1 -105
  45. package/src/config/modelProviders/ollama.ts +1 -325
  46. package/src/config/modelProviders/openai.ts +1 -242
  47. package/src/config/modelProviders/openrouter.ts +1 -240
  48. package/src/config/modelProviders/perplexity.ts +1 -45
  49. package/src/config/modelProviders/ppio.ts +1 -152
  50. package/src/config/modelProviders/qiniu.ts +1 -18
  51. package/src/config/modelProviders/qwen.ts +1 -245
  52. package/src/config/modelProviders/search1api.ts +1 -34
  53. package/src/config/modelProviders/sensenova.ts +1 -69
  54. package/src/config/modelProviders/siliconcloud.ts +1 -417
  55. package/src/config/modelProviders/spark.ts +1 -59
  56. package/src/config/modelProviders/stepfun.ts +1 -98
  57. package/src/config/modelProviders/taichu.ts +1 -18
  58. package/src/config/modelProviders/togetherai.ts +1 -274
  59. package/src/config/modelProviders/upstage.ts +1 -28
  60. package/src/config/modelProviders/wenxin.ts +1 -140
  61. package/src/config/modelProviders/xai.ts +1 -38
  62. package/src/config/modelProviders/zeroone.ts +1 -81
  63. package/src/config/modelProviders/zhipu.ts +1 -108
  64. package/src/helpers/isCanUseFC.ts +0 -8
  65. package/src/hooks/useEnabledChatModels.ts +0 -8
  66. package/src/hooks/useModelContextWindowTokens.ts +0 -8
  67. package/src/hooks/useModelHasContextWindowToken.ts +1 -10
  68. package/src/hooks/useModelSupportFiles.ts +1 -11
  69. package/src/hooks/useModelSupportReasoning.ts +1 -11
  70. package/src/hooks/useModelSupportToolUse.ts +1 -11
  71. package/src/hooks/useModelSupportVision.ts +1 -11
  72. package/src/layout/AuthProvider/Clerk/index.tsx +2 -16
  73. package/src/server/globalConfig/index.ts +0 -23
  74. package/src/server/routers/lambda/config/__snapshots__/index.test.ts.snap +175 -12
  75. package/src/server/routers/lambda/config/index.test.ts +36 -28
  76. package/src/services/chat/chat.test.ts +12 -0
  77. package/src/services/chat/helper.ts +7 -31
  78. package/src/services/models.ts +2 -11
  79. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +41 -14
  80. package/src/store/global/store.ts +1 -7
  81. package/src/store/user/initialState.ts +1 -7
  82. package/src/store/user/selectors.ts +1 -5
  83. package/src/store/user/slices/common/action.ts +5 -4
  84. package/src/store/user/slices/settings/selectors/index.ts +1 -0
  85. package/src/store/user/slices/settings/selectors/keyVaults.ts +21 -0
  86. package/src/store/user/store.ts +0 -3
  87. package/src/tools/web-browsing/Render/Search/ConfigForm/Form.tsx +1 -1
  88. package/tsconfig.json +0 -1
  89. package/packages/utils/src/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -104
  90. package/packages/utils/src/_deprecated/parseModels.test.ts +0 -287
  91. package/packages/utils/src/_deprecated/parseModels.ts +0 -165
  92. package/src/hooks/_header.ts +0 -23
  93. package/src/server/globalConfig/_deprecated.test.ts +0 -92
  94. package/src/server/globalConfig/_deprecated.ts +0 -41
  95. package/src/store/global/actions/clientDb.ts +0 -67
  96. package/src/store/user/slices/modelList/__snapshots__/action.test.ts.snap +0 -12
  97. package/src/store/user/slices/modelList/action.test.ts +0 -359
  98. package/src/store/user/slices/modelList/action.ts +0 -223
  99. package/src/store/user/slices/modelList/initialState.ts +0 -15
  100. package/src/store/user/slices/modelList/reducers/customModelCard.test.ts +0 -204
  101. package/src/store/user/slices/modelList/reducers/customModelCard.ts +0 -64
  102. package/src/store/user/slices/modelList/selectors/index.ts +0 -3
  103. package/src/store/user/slices/modelList/selectors/keyVaults.test.ts +0 -201
  104. package/src/store/user/slices/modelList/selectors/keyVaults.ts +0 -50
  105. package/src/store/user/slices/modelList/selectors/modelConfig.test.ts +0 -219
  106. package/src/store/user/slices/modelList/selectors/modelConfig.ts +0 -95
  107. package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +0 -138
  108. package/src/store/user/slices/modelList/selectors/modelProvider.ts +0 -170
@@ -4,9 +4,9 @@ on:
4
4
  pull_request_target:
5
5
  types: [synchronize, labeled, unlabeled] # PR 更新或标签变化时触发
6
6
 
7
- # 确保同一时间只运行一个相同的 workflow,取消正在进行的旧的运行
7
+ # 确保同一 PR 同一时间只运行一个相同的 workflow,取消正在进行的旧的运行
8
8
  concurrency:
9
- group: ${{ github.ref }}-${{ github.workflow }}
9
+ group: pr-${{ github.event.pull_request.number }}-${{ github.workflow }}
10
10
  cancel-in-progress: true
11
11
 
12
12
  # Add default permissions
@@ -32,7 +32,7 @@ jobs:
32
32
  - name: Setup Node.js
33
33
  uses: actions/setup-node@v6
34
34
  with:
35
- node-version: 22
35
+ node-version: 24
36
36
  package-manager-cache: false
37
37
 
38
38
  - name: Install bun
@@ -66,7 +66,7 @@ jobs:
66
66
  - name: Setup Node.js
67
67
  uses: actions/setup-node@v6
68
68
  with:
69
- node-version: 22
69
+ node-version: 24
70
70
  package-manager-cache: false
71
71
 
72
72
  # 主要逻辑:确定构建版本号
@@ -111,7 +111,7 @@ jobs:
111
111
  - name: Setup Node.js
112
112
  uses: actions/setup-node@v6
113
113
  with:
114
- node-version: 22
114
+ node-version: 24
115
115
  package-manager-cache: false
116
116
 
117
117
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
@@ -230,7 +230,7 @@ jobs:
230
230
  - name: Setup Node.js
231
231
  uses: actions/setup-node@v6
232
232
  with:
233
- node-version: 22
233
+ node-version: 24
234
234
  package-manager-cache: false
235
235
 
236
236
  - name: Install bun
@@ -26,7 +26,7 @@ jobs:
26
26
  - name: Setup Node.js
27
27
  uses: actions/setup-node@v6
28
28
  with:
29
- node-version: 22
29
+ node-version: 24
30
30
  package-manager-cache: false
31
31
 
32
32
  - name: Install bun
@@ -55,7 +55,7 @@ jobs:
55
55
  - name: Setup Node.js
56
56
  uses: actions/setup-node@v6
57
57
  with:
58
- node-version: 22
58
+ node-version: 24
59
59
  package-manager-cache: false
60
60
 
61
61
  # 主要逻辑:确定构建版本号
@@ -96,7 +96,7 @@ jobs:
96
96
  - name: Setup Node.js
97
97
  uses: actions/setup-node@v6
98
98
  with:
99
- node-version: 22
99
+ node-version: 24
100
100
  package-manager-cache: false
101
101
 
102
102
  # node-linker=hoisted 模式将可以确保 asar 压缩可用
@@ -210,7 +210,7 @@ jobs:
210
210
  - name: Setup Node.js
211
211
  uses: actions/setup-node@v6
212
212
  with:
213
- node-version: 22
213
+ node-version: 24
214
214
  package-manager-cache: false
215
215
 
216
216
  - name: Install bun
@@ -24,7 +24,6 @@ jobs:
24
24
  options: >-
25
25
  --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
26
26
 
27
-
28
27
  ports:
29
28
  - 5432:5432
30
29
 
@@ -36,7 +35,7 @@ jobs:
36
35
  - name: Setup Node.js
37
36
  uses: actions/setup-node@v6
38
37
  with:
39
- node-version: 22
38
+ node-version: 24
40
39
  package-manager-cache: false
41
40
 
42
41
  - name: Install bun
@@ -30,7 +30,7 @@ jobs:
30
30
  - name: Setup Node.js
31
31
  uses: actions/setup-node@v6
32
32
  with:
33
- node-version: 22
33
+ node-version: 24
34
34
  package-manager-cache: false
35
35
 
36
36
  - name: Install bun
@@ -65,7 +65,7 @@ jobs:
65
65
  - name: Setup Node.js
66
66
  uses: actions/setup-node@v6
67
67
  with:
68
- node-version: 22
68
+ node-version: 24
69
69
  package-manager-cache: false
70
70
 
71
71
  - name: Install bun
@@ -98,7 +98,7 @@ jobs:
98
98
  - name: Setup Node.js
99
99
  uses: actions/setup-node@v6
100
100
  with:
101
- node-version: 22
101
+ node-version: 24
102
102
  package-manager-cache: false
103
103
 
104
104
  - name: Install bun
@@ -132,7 +132,6 @@ jobs:
132
132
  options: >-
133
133
  --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
134
134
 
135
-
136
135
  ports:
137
136
  - 5432:5432
138
137
 
@@ -142,7 +141,7 @@ jobs:
142
141
  - name: Setup Node.js
143
142
  uses: actions/setup-node@v6
144
143
  with:
145
- node-version: 22
144
+ node-version: 24
146
145
  package-manager-cache: false
147
146
 
148
147
  - name: Install pnpm
package/.nvmrc CHANGED
@@ -1 +1 @@
1
- lts/jod
1
+ lts/Krypton
package/CHANGELOG.md CHANGED
@@ -2,6 +2,48 @@
2
2
 
3
3
  # Changelog
4
4
 
5
+ ## [Version 2.0.0-next.16](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.15...v2.0.0-next.16)
6
+
7
+ <sup>Released on **2025-11-03**</sup>
8
+
9
+ #### ♻ Code Refactoring
10
+
11
+ - **misc**: Remove deperated code.
12
+
13
+ <br/>
14
+
15
+ <details>
16
+ <summary><kbd>Improvements and Fixes</kbd></summary>
17
+
18
+ #### Code refactoring
19
+
20
+ - **misc**: Remove deperated code, closes [#10001](https://github.com/lobehub/lobe-chat/issues/10001) ([4ee4590](https://github.com/lobehub/lobe-chat/commit/4ee4590))
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
+
30
+ ## [Version 2.0.0-next.15](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.14...v2.0.0-next.15)
31
+
32
+ <sup>Released on **2025-11-03**</sup>
33
+
34
+ <br/>
35
+
36
+ <details>
37
+ <summary><kbd>Improvements and Fixes</kbd></summary>
38
+
39
+ </details>
40
+
41
+ <div align="right">
42
+
43
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#readme-top)
44
+
45
+ </div>
46
+
5
47
  ## [Version 2.0.0-next.14](https://github.com/lobehub/lobe-chat/compare/v2.0.0-next.13...v2.0.0-next.14)
6
48
 
7
49
  <sup>Released on **2025-11-02**</sup>
@@ -11,7 +11,6 @@
11
11
  "module": "esnext",
12
12
  "moduleResolution": "bundler",
13
13
  "resolveJsonModule": true,
14
- "baseUrl": ".",
15
14
  "paths": {
16
15
  "@/*": ["src/main/*"],
17
16
  "~common/*": ["src/common/*"]
package/changelog/v1.json CHANGED
@@ -1,4 +1,18 @@
1
1
  [
2
+ {
3
+ "children": {
4
+ "improvements": [
5
+ "Remove deperated code."
6
+ ]
7
+ },
8
+ "date": "2025-11-03",
9
+ "version": "2.0.0-next.16"
10
+ },
11
+ {
12
+ "children": {},
13
+ "date": "2025-11-03",
14
+ "version": "2.0.0-next.15"
15
+ },
2
16
  {
3
17
  "children": {
4
18
  "improvements": [
@@ -49,7 +49,6 @@ You can achieve various feature combinations using the above configuration synta
49
49
  | `token_counter` | Reserved for token counter display. | Enabled |
50
50
  | `welcome_suggest` | Displays welcome suggestions. | Enabled |
51
51
  | `changelog` | Controls changelog modal/page display. | Enabled |
52
- | `clerk_sign_up` | Enables the Clerk SignUp functionality. | Enabled |
53
52
  | `market` | Enables the assistant market functionality. | Enabled |
54
53
  | `knowledge_base` | Enables the knowledge base functionality. | Enabled |
55
54
  | `rag_eval` | Controls RAG evaluation feature (/repos/\[id]/evals). | Disabled |
@@ -46,7 +46,6 @@ tags:
46
46
  | `token_counter` | 保留用于令牌计数器显示。 | 开启 |
47
47
  | `welcome_suggest` | 显示欢迎建议。 | 开启 |
48
48
  | `changelog` | 控制更新日志弹窗 / 页面的显示。 | 开启 |
49
- | `clerk_sign_up` | 启用 Clerk 注册功能。 | 开启 |
50
49
  | `market` | 启用助手市场功能。 | 开启 |
51
50
  | `knowledge_base` | 启用知识库功能。 | 开启 |
52
51
  | `rag_eval` | 控制 RAG 评估功能 (/repos/\[id]/evals)。 | 关闭 |
package/e2e/tsconfig.json CHANGED
@@ -8,7 +8,6 @@
8
8
  "esModuleInterop": true,
9
9
  "resolveJsonModule": true,
10
10
  "skipLibCheck": true,
11
- "baseUrl": ".",
12
11
  "paths": {
13
12
  "@/*": ["../*"]
14
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobehub/lobehub",
3
- "version": "2.0.0-next.14",
3
+ "version": "2.0.0-next.16",
4
4
  "description": "LobeHub - an open-source,comprehensive AI Agent framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
5
5
  "keywords": [
6
6
  "framework",
@@ -126,24 +126,24 @@
126
126
  "dependencies": {
127
127
  "@ant-design/icons": "^5.6.1",
128
128
  "@ant-design/pro-components": "^2.8.10",
129
- "@anthropic-ai/sdk": "^0.67.0",
129
+ "@anthropic-ai/sdk": "^0.67.1",
130
130
  "@auth/core": "^0.40.0",
131
131
  "@aws-sdk/client-s3": "~3.893.0",
132
132
  "@aws-sdk/s3-request-presigner": "~3.893.0",
133
133
  "@azure-rest/ai-inference": "1.0.0-beta.5",
134
134
  "@azure/core-auth": "^1.10.1",
135
135
  "@cfworker/json-schema": "^4.1.1",
136
- "@clerk/localizations": "^3.25.7",
137
- "@clerk/nextjs": "^6.33.3",
138
- "@clerk/themes": "^2.4.25",
136
+ "@clerk/localizations": "^3.26.4",
137
+ "@clerk/nextjs": "^6.34.1",
138
+ "@clerk/themes": "^2.4.30",
139
139
  "@codesandbox/sandpack-react": "^2.20.0",
140
140
  "@cyntler/react-doc-viewer": "^1.17.1",
141
141
  "@electric-sql/pglite": "0.2.17",
142
142
  "@emotion/react": "^11.14.0",
143
- "@fal-ai/client": "^1.6.2",
143
+ "@fal-ai/client": "^1.7.2",
144
144
  "@formkit/auto-animate": "^0.9.0",
145
- "@google/genai": "^1.24.0",
146
- "@huggingface/inference": "^4.11.3",
145
+ "@google/genai": "^1.28.0",
146
+ "@huggingface/inference": "^4.13.0",
147
147
  "@icons-pack/react-simple-icons": "^13.8.0",
148
148
  "@khmyznikov/pwa-install": "0.3.9",
149
149
  "@langchain/community": "^0.3.57",
@@ -164,44 +164,44 @@
164
164
  "@lobehub/charts": "^2.1.2",
165
165
  "@lobehub/chat-plugin-sdk": "^1.32.4",
166
166
  "@lobehub/chat-plugins-gateway": "^1.9.0",
167
- "@lobehub/editor": "^1.20.2",
168
- "@lobehub/icons": "^2.42.0",
167
+ "@lobehub/editor": "^1.21.2",
168
+ "@lobehub/icons": "^2.43.1",
169
169
  "@lobehub/market-sdk": "^0.22.7",
170
170
  "@lobehub/tts": "^2.0.1",
171
- "@lobehub/ui": "^2.13.2",
172
- "@modelcontextprotocol/sdk": "^1.20.0",
171
+ "@lobehub/ui": "^2.13.5",
172
+ "@modelcontextprotocol/sdk": "^1.20.2",
173
173
  "@neondatabase/serverless": "^1.0.2",
174
174
  "@next/third-parties": "^16.0.1",
175
- "@opentelemetry/exporter-jaeger": "^2.1.0",
175
+ "@opentelemetry/exporter-jaeger": "^2.2.0",
176
176
  "@opentelemetry/winston-transport": "^0.18.0",
177
- "@react-pdf/renderer": "^4.3.0",
177
+ "@react-pdf/renderer": "^4.3.1",
178
178
  "@react-spring/web": "^9.7.5",
179
- "@saintno/comfyui-sdk": "^0.2.48",
179
+ "@saintno/comfyui-sdk": "^0.2.49",
180
180
  "@serwist/next": "^9.2.1",
181
181
  "@t3-oss/env-nextjs": "^0.13.8",
182
- "@tanstack/react-query": "^5.90.2",
183
- "@trpc/client": "^11.6.0",
184
- "@trpc/next": "^11.6.0",
185
- "@trpc/react-query": "^11.6.0",
186
- "@trpc/server": "^11.6.0",
182
+ "@tanstack/react-query": "^5.90.6",
183
+ "@trpc/client": "^11.7.1",
184
+ "@trpc/next": "^11.7.1",
185
+ "@trpc/react-query": "^11.7.1",
186
+ "@trpc/server": "^11.7.1",
187
187
  "@vercel/analytics": "^1.5.0",
188
- "@vercel/edge-config": "^1.4.0",
189
- "@vercel/functions": "^3.1.3",
188
+ "@vercel/edge-config": "^1.4.3",
189
+ "@vercel/functions": "^3.1.4",
190
190
  "@vercel/speed-insights": "^1.2.0",
191
191
  "@virtuoso.dev/masonry": "^1.3.5",
192
192
  "@xterm/xterm": "^5.5.0",
193
- "ahooks": "^3.9.5",
194
- "antd": "^5.27.4",
193
+ "ahooks": "^3.9.6",
194
+ "antd": "^5.28.0",
195
195
  "antd-style": "^3.7.1",
196
196
  "brotli-wasm": "^3.0.1",
197
197
  "chroma-js": "^3.1.2",
198
198
  "cookie": "^1.0.2",
199
199
  "countries-and-timezones": "^3.8.0",
200
- "dayjs": "^1.11.18",
200
+ "dayjs": "^1.11.19",
201
201
  "debug": "^4.4.3",
202
202
  "dexie": "^3.2.7",
203
203
  "diff": "^8.0.2",
204
- "drizzle-orm": "^0.44.6",
204
+ "drizzle-orm": "^0.44.7",
205
205
  "drizzle-zod": "^0.5.1",
206
206
  "epub2": "^3.0.2",
207
207
  "fast-deep-equal": "^3.1.3",
@@ -215,19 +215,19 @@
215
215
  "i18next-browser-languagedetector": "^8.2.0",
216
216
  "i18next-resources-to-backend": "^1.2.1",
217
217
  "idb-keyval": "^6.2.2",
218
- "immer": "^10.1.3",
218
+ "immer": "^10.2.0",
219
219
  "jose": "^5.10.0",
220
220
  "js-sha256": "^0.11.1",
221
221
  "jsonl-parse-stringify": "^1.0.3",
222
222
  "keyv": "^4.5.4",
223
- "langchain": "^0.3.35",
224
- "langfuse": "^3.38.5",
225
- "langfuse-core": "^3.38.5",
223
+ "langchain": "^0.3.36",
224
+ "langfuse": "^3.38.6",
225
+ "langfuse-core": "^3.38.6",
226
226
  "lodash-es": "^4.17.21",
227
227
  "lucide-react": "^0.548.0",
228
228
  "mammoth": "^1.11.0",
229
229
  "markdown-to-txt": "^2.0.1",
230
- "marked": "^16.3.0",
230
+ "marked": "^16.4.1",
231
231
  "mdast-util-to-markdown": "^2.1.2",
232
232
  "model-bank": "workspace:*",
233
233
  "modern-screenshot": "^4.6.6",
@@ -238,19 +238,19 @@
238
238
  "nextjs-toploader": "^3.9.17",
239
239
  "node-machine-id": "^1.1.12",
240
240
  "numeral": "^2.0.6",
241
- "nuqs": "^2.7.1",
241
+ "nuqs": "^2.7.2",
242
242
  "officeparser": "5.1.1",
243
- "oidc-provider": "^9.5.1",
244
- "ollama": "^0.6.0",
243
+ "oidc-provider": "^9.5.2",
244
+ "ollama": "^0.6.2",
245
245
  "openai": "^4.104.0",
246
- "openapi-fetch": "^0.14.0",
246
+ "openapi-fetch": "^0.14.1",
247
247
  "partial-json": "^0.1.7",
248
248
  "path-browserify-esm": "^1.0.6",
249
- "pdf-parse": "^1.1.1",
249
+ "pdf-parse": "^1.1.4",
250
250
  "pdfjs-dist": "4.8.69",
251
251
  "pdfkit": "^0.17.2",
252
252
  "pg": "^8.16.3",
253
- "pino": "^9.13.1",
253
+ "pino": "^9.14.0",
254
254
  "plaiceholder": "^3.0.0",
255
255
  "polished": "^4.3.1",
256
256
  "posthog-js": "~1.278.0",
@@ -262,14 +262,14 @@
262
262
  "react-confetti": "^6.4.0",
263
263
  "react-dom": "19.2.0",
264
264
  "react-fast-marquee": "^1.6.5",
265
- "react-hotkeys-hook": "^5.1.0",
265
+ "react-hotkeys-hook": "^5.2.1",
266
266
  "react-i18next": "^15.7.4",
267
267
  "react-layout-kit": "^2.0.0",
268
268
  "react-lazy-load": "^4.0.1",
269
269
  "react-pdf": "^9.2.1",
270
270
  "react-responsive": "^10.0.1",
271
271
  "react-rnd": "^10.5.2",
272
- "react-router-dom": "^7.9.4",
272
+ "react-router-dom": "^7.9.5",
273
273
  "react-scan": "^0.4.3",
274
274
  "react-virtuoso": "^4.14.1",
275
275
  "react-wrap-balancer": "^1.1.1",
@@ -280,14 +280,14 @@
280
280
  "rtl-detect": "^1.1.2",
281
281
  "semver": "^7.7.3",
282
282
  "sharp": "^0.34.4",
283
- "shiki": "^3.13.0",
283
+ "shiki": "^3.14.0",
284
284
  "ssrf-safe-fetch": "workspace:*",
285
285
  "stripe": "^17.7.0",
286
- "superjson": "^2.2.2",
287
- "svix": "^1.77.0",
286
+ "superjson": "^2.2.5",
287
+ "svix": "^1.81.0",
288
288
  "swr": "^2.3.6",
289
289
  "systemjs": "^6.15.1",
290
- "tokenx": "^1.1.0",
290
+ "tokenx": "^1.2.0",
291
291
  "ts-md5": "^2.0.1",
292
292
  "ua-parser-js": "^1.0.41",
293
293
  "unstructured-client": "^0.19.0",
@@ -304,7 +304,7 @@
304
304
  "devDependencies": {
305
305
  "@commitlint/cli": "^19.8.1",
306
306
  "@edge-runtime/vm": "^5.0.0",
307
- "@huggingface/tasks": "^0.19.50",
307
+ "@huggingface/tasks": "^0.19.61",
308
308
  "@lobechat/types": "workspace:*",
309
309
  "@lobehub/i18n-cli": "^1.25.1",
310
310
  "@lobehub/lint": "^1.26.2",
@@ -313,13 +313,13 @@
313
313
  "@next/bundle-analyzer": "^16.0.1",
314
314
  "@next/eslint-plugin-next": "^15.5.6",
315
315
  "@peculiar/webcrypto": "^1.5.0",
316
- "@playwright/test": "^1.49.1",
316
+ "@playwright/test": "^1.56.1",
317
317
  "@prettier/sync": "^0.6.1",
318
318
  "@semantic-release/exec": "^6.0.3",
319
319
  "@testing-library/jest-dom": "^6.9.1",
320
320
  "@testing-library/react": "^16.3.0",
321
321
  "@testing-library/user-event": "^14.6.1",
322
- "@types/chroma-js": "^3.1.1",
322
+ "@types/chroma-js": "^3.1.2",
323
323
  "@types/crypto-js": "^4.2.2",
324
324
  "@types/debug": "^4.1.12",
325
325
  "@types/fs-extra": "^11.0.4",
@@ -327,11 +327,11 @@
327
327
  "@types/json-schema": "^7.0.15",
328
328
  "@types/lodash": "^4.17.20",
329
329
  "@types/lodash-es": "^4.17.12",
330
- "@types/node": "^22.18.9",
330
+ "@types/node": "^24.10.0",
331
331
  "@types/numeral": "^2.0.5",
332
332
  "@types/oidc-provider": "^9.5.0",
333
333
  "@types/pdfkit": "^0.17.3",
334
- "@types/pg": "^8.15.5",
334
+ "@types/pg": "^8.15.6",
335
335
  "@types/react": "19.2.2",
336
336
  "@types/react-dom": "19.2.2",
337
337
  "@types/rtl-detect": "^1.0.3",
@@ -340,7 +340,7 @@
340
340
  "@types/ua-parser-js": "^0.7.39",
341
341
  "@types/unist": "^3.0.3",
342
342
  "@types/ws": "^8.18.1",
343
- "@typescript/native-preview": "7.0.0-dev.20250711.1",
343
+ "@typescript/native-preview": "7.0.0-dev.20251102.1",
344
344
  "@vitest/coverage-v8": "^3.2.4",
345
345
  "ajv-keywords": "^5.1.0",
346
346
  "commitlint": "^19.8.1",
@@ -352,24 +352,24 @@
352
352
  "dotenv-expand": "^12.0.3",
353
353
  "dpdm-fast": "^1.0.14",
354
354
  "drizzle-dbml-generator": "^0.10.0",
355
- "drizzle-kit": "^0.31.5",
355
+ "drizzle-kit": "^0.31.6",
356
356
  "eslint": "^8.57.1",
357
357
  "eslint-plugin-mdx": "^3.6.2",
358
- "fake-indexeddb": "^6.2.3",
358
+ "fake-indexeddb": "^6.2.4",
359
359
  "fs-extra": "^11.3.2",
360
360
  "glob": "^11.0.3",
361
- "happy-dom": "^20.0.0",
361
+ "happy-dom": "^20.0.10",
362
362
  "husky": "^9.1.7",
363
363
  "import-in-the-middle": "^1.15.0",
364
364
  "just-diff": "^6.0.2",
365
- "lint-staged": "^15.5.2",
365
+ "lint-staged": "^16.2.6",
366
366
  "lodash": "^4.17.21",
367
367
  "markdown-table": "^3.0.4",
368
368
  "mcp-hello-world": "^1.1.2",
369
369
  "mime": "^4.1.0",
370
370
  "node-fetch": "^3.3.2",
371
- "node-gyp": "^11.4.2",
372
- "openapi-typescript": "^7.9.1",
371
+ "node-gyp": "^11.5.0",
372
+ "openapi-typescript": "^7.10.1",
373
373
  "p-map": "^7.0.3",
374
374
  "prettier": "^3.6.2",
375
375
  "remark-cli": "^12.0.1",
@@ -381,14 +381,14 @@
381
381
  "serwist": "^9.2.1",
382
382
  "stylelint": "^15.11.0",
383
383
  "tsx": "^4.20.6",
384
- "type-fest": "^4.41.0",
384
+ "type-fest": "^5.1.0",
385
385
  "typescript": "^5.9.3",
386
386
  "unified": "^11.0.5",
387
387
  "unist-util-visit": "^5.0.0",
388
- "vite": "^7.1.9",
388
+ "vite": "^7.1.12",
389
389
  "vitest": "^3.2.4"
390
390
  },
391
- "packageManager": "pnpm@10.18.3",
391
+ "packageManager": "pnpm@10.20.0",
392
392
  "publishConfig": {
393
393
  "access": "public",
394
394
  "registry": "https://registry.npmjs.org"
@@ -15,9 +15,9 @@ export interface ServerModelProviderConfig {
15
15
  enabledModels?: string[];
16
16
  fetchOnClient?: boolean;
17
17
  /**
18
- * the model cards defined in server
18
+ * the model lists defined in server
19
19
  */
20
- serverModelCards?: ChatModelCard[];
20
+ serverModelLists?: ChatModelCard[];
21
21
  }
22
22
 
23
23
  export type ServerLanguageModel = Partial<Record<GlobalLLMProviderKey, ServerModelProviderConfig>>;
@@ -32,10 +32,6 @@ export interface GlobalServerConfig {
32
32
  */
33
33
  enabledOAuthSSO?: boolean;
34
34
  image?: PartialDeep<UserImageConfig>;
35
- /**
36
- * @deprecated
37
- */
38
- languageModel?: ServerLanguageModel;
39
35
  oAuthSSOProviders?: string[];
40
36
  systemAgent?: PartialDeep<UserSystemAgentConfig>;
41
37
  telemetry: {
@@ -6,7 +6,6 @@
6
6
  "sourceMap": true,
7
7
  "skipDefaultLibCheck": true,
8
8
  "jsx": "react-jsx",
9
- "baseUrl": ".",
10
9
  "allowSyntheticDefaultImports": true,
11
10
  "moduleResolution": "node",
12
11
  "forceConsistentCasingInFileNames": true,
@@ -1,7 +1,6 @@
1
1
  import { SignUp } from '@clerk/nextjs';
2
- import { notFound, redirect } from 'next/navigation';
2
+ import { notFound } from 'next/navigation';
3
3
 
4
- import { serverFeatureFlags } from '@/config/featureFlags';
5
4
  import { enableClerk } from '@/const/auth';
6
5
  import { metadataModule } from '@/server/metadata';
7
6
  import { translation } from '@/server/translation';
@@ -21,12 +20,6 @@ export const generateMetadata = async (props: DynamicLayoutProps) => {
21
20
  const Page = () => {
22
21
  if (!enableClerk) return notFound();
23
22
 
24
- const enableClerkSignUp = serverFeatureFlags().enableClerkSignUp;
25
-
26
- if (!enableClerkSignUp) {
27
- redirect('/login');
28
- }
29
-
30
23
  return <SignUp path="/signup" />;
31
24
  };
32
25
 
@@ -6,7 +6,6 @@ import { memo } from 'react';
6
6
  import { Flexbox } from 'react-layout-kit';
7
7
 
8
8
  import { enableAuth, enableNextAuth } from '@/const/auth';
9
- import { isDeprecatedEdition } from '@/const/version';
10
9
  import DataStatistics from '@/features/User/DataStatistics';
11
10
  import UserInfo from '@/features/User/UserInfo';
12
11
  import UserLoginOrSignup from '@/features/User/UserLoginOrSignup/Community';
@@ -25,11 +24,9 @@ const UserBanner = memo(() => {
25
24
  <Link href={'/profile'} style={{ color: 'inherit' }}>
26
25
  <UserInfo />
27
26
  </Link>
28
- {!isDeprecatedEdition && (
29
- <Link href={'/profile/stats'} style={{ color: 'inherit' }}>
30
- <DataStatistics paddingInline={12} />
31
- </Link>
32
- )}
27
+ <Link href={'/profile/stats'} style={{ color: 'inherit' }}>
28
+ <DataStatistics paddingInline={12} />
29
+ </Link>
33
30
  </>
34
31
  ) : (
35
32
  <UserLoginOrSignup
@@ -71,7 +71,9 @@ const LabCard = memo<PropsWithChildren<LabCardProps>>(
71
71
  <div className={styles.card}>
72
72
  <div className={styles.row}>
73
73
  <div className={styles.thumb}>
74
- {cover && <Image alt={title} fill src={cover} style={{ objectFit: 'cover' }} />}
74
+ {cover && (
75
+ <Image alt={title} fill src={cover} style={{ objectFit: 'cover' }} unoptimized />
76
+ )}
75
77
  </div>
76
78
  <Flexbox gap={6}>
77
79
  <div className={styles.title}>{title}</div>
@@ -7,9 +7,7 @@ import { useTranslation } from 'react-i18next';
7
7
 
8
8
  import { FormInput, FormPassword } from '@/components/FormInput';
9
9
  import { AzureProviderCard } from '@/config/modelProviders';
10
- import { aiProviderSelectors, useAiInfraStore } from '@/store/aiInfra';
11
- import { useUserStore } from '@/store/user';
12
- import { modelProviderSelectors } from '@/store/user/selectors';
10
+ import { aiModelSelectors, aiProviderSelectors, useAiInfraStore } from '@/store/aiInfra';
13
11
 
14
12
  import { KeyVaultsConfigKey, LLMProviderApiTokenKey, LLMProviderBaseUrlKey } from '../../const';
15
13
  import { SkeletonInput } from '../../features/ProviderConfig';
@@ -35,11 +33,11 @@ const useProviderCard = (): ProviderItem => {
35
33
  const { styles } = useStyles();
36
34
 
37
35
  // Get the first model card's deployment name as the check model
38
- const checkModel = useUserStore((s) => {
39
- const chatModelCards = modelProviderSelectors.getModelCardsById(providerKey)(s);
36
+ const checkModel = useAiInfraStore((s) => {
37
+ const modelList = aiModelSelectors.enabledAiProviderModelList(s);
40
38
 
41
- if (chatModelCards.length > 0) {
42
- return chatModelCards[0].deploymentName;
39
+ if (modelList.length > 0) {
40
+ return modelList[0].id;
43
41
  }
44
42
 
45
43
  return 'gpt-35-turbo';