@lobehub/chat 1.79.8 → 1.79.10
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.
- package/.eslintrc.js +1 -0
- package/CHANGELOG.md +58 -0
- package/changelog/v1.json +18 -0
- package/locales/ar/models.json +9 -0
- package/locales/ar/oauth.json +7 -6
- package/locales/bg-BG/models.json +9 -0
- package/locales/bg-BG/oauth.json +7 -6
- package/locales/de-DE/models.json +9 -0
- package/locales/de-DE/oauth.json +7 -6
- package/locales/en-US/models.json +9 -0
- package/locales/en-US/oauth.json +7 -6
- package/locales/es-ES/models.json +9 -0
- package/locales/es-ES/oauth.json +7 -6
- package/locales/fa-IR/models.json +9 -0
- package/locales/fa-IR/oauth.json +7 -6
- package/locales/fr-FR/models.json +9 -0
- package/locales/fr-FR/oauth.json +7 -6
- package/locales/it-IT/models.json +9 -0
- package/locales/it-IT/oauth.json +7 -6
- package/locales/ja-JP/models.json +9 -0
- package/locales/ja-JP/oauth.json +7 -6
- package/locales/ko-KR/models.json +9 -0
- package/locales/ko-KR/oauth.json +7 -6
- package/locales/nl-NL/models.json +9 -0
- package/locales/nl-NL/oauth.json +7 -6
- package/locales/pl-PL/models.json +9 -0
- package/locales/pl-PL/oauth.json +7 -6
- package/locales/pt-BR/models.json +9 -0
- package/locales/pt-BR/oauth.json +7 -6
- package/locales/ru-RU/models.json +9 -0
- package/locales/ru-RU/oauth.json +7 -6
- package/locales/tr-TR/models.json +9 -0
- package/locales/tr-TR/oauth.json +7 -6
- package/locales/vi-VN/models.json +9 -0
- package/locales/vi-VN/oauth.json +7 -6
- package/locales/zh-CN/models.json +9 -0
- package/locales/zh-CN/oauth.json +7 -6
- package/locales/zh-TW/models.json +9 -0
- package/locales/zh-TW/oauth.json +7 -6
- package/package.json +1 -1
- package/src/app/(backend)/oidc/[...oidc]/route.ts +27 -201
- package/src/app/(backend)/oidc/consent/route.ts +58 -24
- package/src/app/(backend)/trpc/async/[trpc]/route.ts +1 -1
- package/src/app/(backend)/trpc/edge/[trpc]/route.ts +2 -2
- package/src/app/(backend)/trpc/lambda/[trpc]/route.ts +2 -2
- package/src/app/(backend)/trpc/tools/[trpc]/route.ts +2 -2
- package/src/app/[variants]/(main)/files/[id]/page.tsx +1 -1
- package/src/app/[variants]/oauth/consent/[uid]/Client.tsx +184 -57
- package/src/app/[variants]/oauth/consent/[uid]/ClientError.tsx +46 -0
- package/src/app/[variants]/oauth/consent/[uid]/page.tsx +19 -21
- package/src/components/Branding/ProductLogo/index.tsx +6 -1
- package/src/config/aiModels/openai.ts +63 -41
- package/src/config/modelProviders/openai.ts +17 -0
- package/src/const/settings/llm.ts +1 -1
- package/src/database/server/models/__tests__/adapter.test.ts +1 -5
- package/src/libs/oidc-provider/adapter.ts +47 -0
- package/src/libs/oidc-provider/config.ts +4 -5
- package/src/libs/oidc-provider/http-adapter.ts +60 -28
- package/src/libs/oidc-provider/provider.ts +41 -13
- package/src/libs/trpc/async/init.ts +1 -1
- package/src/{server → libs/trpc/edge}/context.ts +2 -2
- package/src/libs/trpc/{index.ts → edge/index.ts} +8 -8
- package/src/libs/trpc/{init.ts → edge/init.ts} +2 -2
- package/src/libs/trpc/{middleware → edge/middleware}/jwtPayload.test.ts +3 -3
- package/src/libs/trpc/{middleware → edge/middleware}/jwtPayload.ts +3 -2
- package/src/libs/trpc/lambda/context.ts +70 -0
- package/src/libs/trpc/lambda/index.ts +39 -1
- package/src/libs/trpc/lambda/init.ts +26 -0
- package/src/libs/trpc/lambda/middleware/index.ts +2 -0
- package/src/libs/trpc/{middleware → lambda/middleware}/keyVaults.ts +2 -1
- package/src/libs/trpc/lambda/{serverDatabase.ts → middleware/serverDatabase.ts} +2 -1
- package/src/libs/trpc/middleware/userAuth.test.ts +3 -3
- package/src/libs/trpc/middleware/userAuth.ts +1 -1
- package/src/libs/trpc/mock.ts +7 -0
- package/src/locales/default/oauth.ts +8 -6
- package/src/server/routers/edge/appStatus.ts +1 -1
- package/src/server/routers/edge/config/index.test.ts +2 -3
- package/src/server/routers/edge/config/index.ts +1 -1
- package/src/server/routers/edge/index.ts +1 -1
- package/src/server/routers/edge/upload.ts +1 -1
- package/src/server/routers/lambda/_template.ts +2 -2
- package/src/server/routers/lambda/agent.ts +2 -2
- package/src/server/routers/lambda/aiModel.ts +2 -2
- package/src/server/routers/lambda/aiProvider.ts +2 -2
- package/src/server/routers/lambda/chunk.ts +2 -3
- package/src/server/routers/lambda/exporter.ts +2 -2
- package/src/server/routers/lambda/file.ts +2 -2
- package/src/server/routers/lambda/importer.ts +2 -2
- package/src/server/routers/lambda/index.ts +1 -1
- package/src/server/routers/lambda/knowledgeBase.ts +2 -2
- package/src/server/routers/lambda/message.ts +2 -2
- package/src/server/routers/lambda/plugin.ts +2 -2
- package/src/server/routers/lambda/ragEval.ts +2 -3
- package/src/server/routers/lambda/session.ts +2 -2
- package/src/server/routers/lambda/sessionGroup.ts +2 -2
- package/src/server/routers/lambda/thread.ts +2 -2
- package/src/server/routers/lambda/topic.ts +2 -2
- package/src/server/routers/lambda/user.ts +2 -2
- package/src/server/routers/tools/__tests__/search.test.ts +2 -2
- package/src/server/routers/tools/index.ts +1 -1
- package/src/server/routers/tools/search.ts +3 -1
- package/src/server/services/oidc/index.ts +36 -1
- package/src/server/services/oidc/oidcProvider.ts +1 -3
- package/src/services/chat.ts +1 -0
- package/src/store/agent/slices/chat/selectors/__snapshots__/agent.test.ts.snap +1 -1
- package/src/store/user/slices/modelList/selectors/modelProvider.test.ts +1 -0
- package/src/store/user/slices/settings/selectors/__snapshots__/settings.test.ts.snap +8 -8
- package/src/server/mock.ts +0 -8
- /package/src/{server/asyncContext.ts → libs/trpc/async/context.ts} +0 -0
@@ -4,7 +4,8 @@ const oauth = {
|
|
4
4
|
accept: '授权',
|
5
5
|
deny: '拒绝',
|
6
6
|
},
|
7
|
-
description: '应用 {
|
7
|
+
description: '应用 {{clientName}} 申请您的账户授权',
|
8
|
+
|
8
9
|
error: {
|
9
10
|
sessionInvalid: {
|
10
11
|
message: '授权会话已过期或无效,请重新发起授权流程。',
|
@@ -16,16 +17,17 @@ const oauth = {
|
|
16
17
|
title: '不支持的交互类型',
|
17
18
|
},
|
18
19
|
},
|
19
|
-
permissionsTitle: '
|
20
|
+
permissionsTitle: '请求以下权限:',
|
21
|
+
redirectUri: '授权成功后将重定向到',
|
20
22
|
scope: {
|
21
23
|
'email': '访问您的电子邮件地址',
|
22
|
-
'offline_access': '
|
24
|
+
'offline_access': '允许客户端访问您的数据',
|
23
25
|
'openid': '使用您的 LobeChat 账户进行身份验证',
|
24
26
|
'profile': '访问您的基本资料信息(名称、头像等)',
|
25
|
-
'sync
|
26
|
-
'sync
|
27
|
+
'sync-read': '读取您的同步数据',
|
28
|
+
'sync-write': '写入并更新您的同步数据',
|
27
29
|
},
|
28
|
-
title: '
|
30
|
+
title: '授权 {{clientName}}',
|
29
31
|
},
|
30
32
|
failed: {
|
31
33
|
backToHome: '返回首页',
|
@@ -4,9 +4,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
4
|
/**
|
5
5
|
* This file contains the root router of your tRPC-backend
|
6
6
|
*/
|
7
|
-
import { createCallerFactory } from '@/libs/trpc';
|
8
|
-
import { AuthContext, createContextInner } from '@/
|
9
|
-
import { GlobalServerConfig } from '@/types/serverConfig';
|
7
|
+
import { createCallerFactory } from '@/libs/trpc/edge';
|
8
|
+
import { AuthContext, createContextInner } from '@/libs/trpc/edge/context';
|
10
9
|
|
11
10
|
import { configRouter } from './index';
|
12
11
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { getServerFeatureFlagsValue } from '@/config/featureFlags';
|
2
|
-
import { publicProcedure, router } from '@/libs/trpc';
|
2
|
+
import { publicProcedure, router } from '@/libs/trpc/edge';
|
3
3
|
import { getServerDefaultAgentConfig, getServerGlobalConfig } from '@/server/globalConfig';
|
4
4
|
import { GlobalRuntimeConfig } from '@/types/serverConfig';
|
5
5
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* This file contains the edge router of Lobe Chat tRPC-backend
|
3
3
|
*/
|
4
|
-
import { publicProcedure, router } from '@/libs/trpc';
|
4
|
+
import { publicProcedure, router } from '@/libs/trpc/edge';
|
5
5
|
|
6
6
|
import { appStatusRouter } from './appStatus';
|
7
7
|
import { configRouter } from './config';
|
@@ -2,8 +2,8 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
4
4
|
import { insertSessionGroupSchema } from '@/database/schemas';
|
5
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { SessionGroupItem } from '@/types/session';
|
8
8
|
|
9
9
|
const sessionProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -8,8 +8,8 @@ import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
|
8
8
|
import { SessionModel } from '@/database/models/session';
|
9
9
|
import { UserModel } from '@/database/models/user';
|
10
10
|
import { pino } from '@/libs/logger';
|
11
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
12
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
11
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
12
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
13
13
|
import { AgentService } from '@/server/services/agent';
|
14
14
|
import { KnowledgeItem, KnowledgeType } from '@/types/knowledgeBase';
|
15
15
|
|
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|
3
3
|
import { AiModelModel } from '@/database/models/aiModel';
|
4
4
|
import { UserModel } from '@/database/models/user';
|
5
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
6
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
7
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
6
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
7
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
8
8
|
import { getServerGlobalConfig } from '@/server/globalConfig';
|
9
9
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
10
10
|
import {
|
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|
3
3
|
import { AiProviderModel } from '@/database/models/aiProvider';
|
4
4
|
import { UserModel } from '@/database/models/user';
|
5
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
6
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
7
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
6
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
7
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
8
8
|
import { getServerGlobalConfig } from '@/server/globalConfig';
|
9
9
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
10
10
|
import {
|
@@ -9,9 +9,8 @@ import { EmbeddingModel } from '@/database/models/embedding';
|
|
9
9
|
import { FileModel } from '@/database/models/file';
|
10
10
|
import { MessageModel } from '@/database/models/message';
|
11
11
|
import { knowledgeBaseFiles } from '@/database/schemas';
|
12
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
13
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
14
|
-
import { keyVaults } from '@/libs/trpc/middleware/keyVaults';
|
12
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
13
|
+
import { keyVaults, serverDatabase } from '@/libs/trpc/lambda/middleware';
|
15
14
|
import { getServerDefaultFilesConfig } from '@/server/globalConfig';
|
16
15
|
import { initAgentRuntimeWithUserPayload } from '@/server/modules/AgentRuntime';
|
17
16
|
import { ChunkService } from '@/server/services/chunk';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { DrizzleMigrationModel } from '@/database/models/drizzleMigration';
|
2
2
|
import { DataExporterRepos } from '@/database/repositories/dataExporter';
|
3
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
4
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
3
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
4
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
5
5
|
import { ExportDatabaseData } from '@/types/export';
|
6
6
|
|
7
7
|
const exportProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -5,8 +5,8 @@ import { serverDBEnv } from '@/config/db';
|
|
5
5
|
import { AsyncTaskModel } from '@/database/models/asyncTask';
|
6
6
|
import { ChunkModel } from '@/database/models/chunk';
|
7
7
|
import { FileModel } from '@/database/models/file';
|
8
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
9
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
8
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
9
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
10
10
|
import { FileService } from '@/server/services/file';
|
11
11
|
import { AsyncTaskStatus, AsyncTaskType } from '@/types/asyncTask';
|
12
12
|
import { FileListItem, QueryFileListSchema, UploadFileSchema } from '@/types/files';
|
@@ -2,8 +2,8 @@ import { TRPCError } from '@trpc/server';
|
|
2
2
|
import { z } from 'zod';
|
3
3
|
|
4
4
|
import { DataImporterRepos } from '@/database/repositories/dataImporter';
|
5
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { FileService } from '@/server/services/file';
|
8
8
|
import { ImportPgDataStructure } from '@/types/export';
|
9
9
|
import { ImportResultData, ImporterEntryData } from '@/types/importer';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/**
|
2
2
|
* This file contains the root router of Lobe Chat tRPC-backend
|
3
3
|
*/
|
4
|
-
import { publicProcedure, router } from '@/libs/trpc';
|
4
|
+
import { publicProcedure, router } from '@/libs/trpc/lambda';
|
5
5
|
|
6
6
|
import { agentRouter } from './agent';
|
7
7
|
import { aiModelRouter } from './aiModel';
|
@@ -2,8 +2,8 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
4
4
|
import { insertKnowledgeBasesSchema } from '@/database/schemas';
|
5
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { KnowledgeBaseItem } from '@/types/knowledgeBase';
|
8
8
|
|
9
9
|
const knowledgeBaseProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|
3
3
|
import { MessageModel } from '@/database/models/message';
|
4
4
|
import { updateMessagePluginSchema } from '@/database/schemas';
|
5
5
|
import { getServerDB } from '@/database/server';
|
6
|
-
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
7
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
6
|
+
import { authedProcedure, publicProcedure, router } from '@/libs/trpc/lambda';
|
7
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
8
8
|
import { FileService } from '@/server/services/file';
|
9
9
|
import { ChatMessage } from '@/types/message';
|
10
10
|
import { BatchTaskResult } from '@/types/service';
|
@@ -2,8 +2,8 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { PluginModel } from '@/database/models/plugin';
|
4
4
|
import { getServerDB } from '@/database/server';
|
5
|
-
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, publicProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { LobeTool } from '@/types/tool';
|
8
8
|
|
9
9
|
const pluginProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -13,9 +13,8 @@ import {
|
|
13
13
|
EvalEvaluationModel,
|
14
14
|
EvaluationRecordModel,
|
15
15
|
} from '@/database/server/models/ragEval';
|
16
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
17
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
18
|
-
import { keyVaults } from '@/libs/trpc/middleware/keyVaults';
|
16
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
17
|
+
import { keyVaults, serverDatabase } from '@/libs/trpc/lambda/middleware';
|
19
18
|
import { createAsyncServerClient } from '@/server/routers/async';
|
20
19
|
import { FileService } from '@/server/services/file';
|
21
20
|
import {
|
@@ -4,8 +4,8 @@ import { SessionModel } from '@/database/models/session';
|
|
4
4
|
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
5
5
|
import { insertAgentSchema, insertSessionSchema } from '@/database/schemas';
|
6
6
|
import { getServerDB } from '@/database/server';
|
7
|
-
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
8
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
7
|
+
import { authedProcedure, publicProcedure, router } from '@/libs/trpc/lambda';
|
8
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
9
9
|
import { AgentChatConfigSchema } from '@/types/agent';
|
10
10
|
import { LobeMetaDataSchema } from '@/types/meta';
|
11
11
|
import { BatchTaskResult } from '@/types/service';
|
@@ -2,8 +2,8 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
4
4
|
import { insertSessionGroupSchema } from '@/database/schemas';
|
5
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { SessionGroupItem } from '@/types/session';
|
8
8
|
|
9
9
|
const sessionProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -3,8 +3,8 @@ import { z } from 'zod';
|
|
3
3
|
import { MessageModel } from '@/database/models/message';
|
4
4
|
import { ThreadModel } from '@/database/models/thread';
|
5
5
|
import { insertThreadSchema } from '@/database/schemas';
|
6
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
7
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
6
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
7
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
8
8
|
import { ThreadItem, createThreadSchema } from '@/types/topic/thread';
|
9
9
|
|
10
10
|
const threadProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -2,8 +2,8 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { TopicModel } from '@/database/models/topic';
|
4
4
|
import { getServerDB } from '@/database/server';
|
5
|
-
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
6
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
5
|
+
import { authedProcedure, publicProcedure, router } from '@/libs/trpc/lambda';
|
6
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
7
7
|
import { BatchTaskResult } from '@/types/service';
|
8
8
|
|
9
9
|
const topicProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
@@ -7,8 +7,8 @@ import { SessionModel } from '@/database/models/session';
|
|
7
7
|
import { UserModel, UserNotFoundError } from '@/database/models/user';
|
8
8
|
import { ClerkAuth } from '@/libs/clerk-auth';
|
9
9
|
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
|
10
|
-
import { authedProcedure, router } from '@/libs/trpc';
|
11
|
-
import { serverDatabase } from '@/libs/trpc/lambda';
|
10
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
11
|
+
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
12
12
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
13
13
|
import { UserService } from '@/server/services/user';
|
14
14
|
import {
|
@@ -6,8 +6,8 @@ import { isServerMode } from '@/const/version';
|
|
6
6
|
/**
|
7
7
|
* This file contains the root router of your tRPC-backend
|
8
8
|
*/
|
9
|
-
import { createCallerFactory } from '@/libs/trpc';
|
10
|
-
import { AuthContext, createContextInner } from '@/
|
9
|
+
import { createCallerFactory } from '@/libs/trpc/lambda';
|
10
|
+
import { AuthContext, createContextInner } from '@/libs/trpc/lambda/context';
|
11
11
|
import { SearXNGClient } from '@/server/modules/SearXNG';
|
12
12
|
|
13
13
|
import { searchRouter } from '../search';
|
@@ -5,10 +5,12 @@ import { z } from 'zod';
|
|
5
5
|
|
6
6
|
import { toolsEnv } from '@/config/tools';
|
7
7
|
import { isServerMode } from '@/const/version';
|
8
|
-
import {
|
8
|
+
import { passwordProcedure } from '@/libs/trpc/edge';
|
9
|
+
import { authedProcedure, router } from '@/libs/trpc/lambda';
|
9
10
|
import { SearXNGClient } from '@/server/modules/SearXNG';
|
10
11
|
import { SEARCH_SEARXNG_NOT_CONFIG } from '@/types/tool/search';
|
11
12
|
|
13
|
+
// TODO: password procedure 未来的处理方式可能要思考下
|
12
14
|
const searchProcedure = isServerMode ? authedProcedure : passwordProcedure;
|
13
15
|
|
14
16
|
export const searchRouter = router({
|
@@ -1,8 +1,12 @@
|
|
1
|
+
import debug from 'debug';
|
2
|
+
|
1
3
|
import { createContextForInteractionDetails } from '@/libs/oidc-provider/http-adapter';
|
2
4
|
import { OIDCProvider } from '@/libs/oidc-provider/provider';
|
3
5
|
|
4
6
|
import { getOIDCProvider } from './oidcProvider';
|
5
7
|
|
8
|
+
const log = debug('lobe-oidc:service');
|
9
|
+
|
6
10
|
export class OIDCService {
|
7
11
|
private provider: OIDCProvider;
|
8
12
|
|
@@ -22,7 +26,38 @@ export class OIDCService {
|
|
22
26
|
|
23
27
|
async getInteractionResult(uid: string, result: any) {
|
24
28
|
const { req, res } = await createContextForInteractionDetails(uid);
|
25
|
-
return this.provider.interactionResult(req, res, result
|
29
|
+
return this.provider.interactionResult(req, res, result);
|
30
|
+
}
|
31
|
+
|
32
|
+
async finishInteraction(uid: string, result: any) {
|
33
|
+
const { req, res } = await createContextForInteractionDetails(uid);
|
34
|
+
return this.provider.interactionFinished(req, res, result, { mergeWithLastSubmission: true });
|
35
|
+
}
|
36
|
+
|
37
|
+
async findOrCreateGrants(accountId: string, clientId: string, existingGrantId?: string) {
|
38
|
+
// 2. 查找或创建 Grant 对象
|
39
|
+
let grant;
|
40
|
+
if (existingGrantId) {
|
41
|
+
// 如果之前的交互步骤已经关联了 Grant
|
42
|
+
grant = await this.provider.Grant.find(existingGrantId);
|
43
|
+
log('Found existing grantId: %s', existingGrantId);
|
44
|
+
}
|
45
|
+
|
46
|
+
if (!grant) {
|
47
|
+
// 如果没有找到或没有 existingGrantId,则创建新的
|
48
|
+
grant = new this.provider.Grant({
|
49
|
+
accountId: accountId,
|
50
|
+
clientId: clientId,
|
51
|
+
});
|
52
|
+
log('Created new Grant for account %s and client %s', accountId, clientId);
|
53
|
+
}
|
54
|
+
|
55
|
+
return grant;
|
56
|
+
}
|
57
|
+
|
58
|
+
async getClientMetadata(clientId: string) {
|
59
|
+
const client = await this.provider.Client.find(clientId);
|
60
|
+
return client?.metadata();
|
26
61
|
}
|
27
62
|
}
|
28
63
|
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { appEnv } from '@/config/app';
|
2
1
|
import { getDBInstance } from '@/database/core/web-server';
|
3
2
|
import { oidcEnv } from '@/envs/oidc';
|
4
3
|
import { OIDCProvider, createOIDCProvider } from '@/libs/oidc-provider/provider';
|
@@ -18,9 +17,8 @@ export const getOIDCProvider = async (): Promise<OIDCProvider> => {
|
|
18
17
|
throw new Error('OIDC is not enabled. Set ENABLE_OIDC=1 to enable it.');
|
19
18
|
}
|
20
19
|
|
21
|
-
const baseUrl = appEnv.APP_URL!;
|
22
20
|
const db = getDBInstance();
|
23
|
-
provider = await createOIDCProvider(db
|
21
|
+
provider = await createOIDCProvider(db);
|
24
22
|
}
|
25
23
|
|
26
24
|
return provider;
|
package/src/services/chat.ts
CHANGED
@@ -180,6 +180,7 @@ class ChatService {
|
|
180
180
|
)(getAiInfraStoreState());
|
181
181
|
|
182
182
|
const useModelSearch = isModelHasBuiltinSearch && chatConfig.useModelBuiltinSearch;
|
183
|
+
|
183
184
|
const useApplicationBuiltinSearchTool = enabledSearch && !useModelSearch;
|
184
185
|
|
185
186
|
const pluginIds = [...(enabledPlugins || [])];
|
@@ -12,7 +12,7 @@ exports[`agentSelectors > defaultAgentConfig > should merge DEFAULT_AGENT_CONFIG
|
|
12
12
|
"historyCount": 8,
|
13
13
|
"reasoningBudgetToken": 1024,
|
14
14
|
"searchFCModel": {
|
15
|
-
"model": "gpt-
|
15
|
+
"model": "gpt-4.1-mini",
|
16
16
|
"provider": "openai",
|
17
17
|
},
|
18
18
|
"searchMode": "off",
|
@@ -51,30 +51,30 @@ exports[`settingsSelectors > currentSettings > should merge DEFAULT_SETTINGS and
|
|
51
51
|
exports[`settingsSelectors > currentSystemAgent > should merge DEFAULT_SYSTEM_AGENT_CONFIG and s.settings.systemAgent correctly 1`] = `
|
52
52
|
{
|
53
53
|
"agentMeta": {
|
54
|
-
"model": "gpt-
|
54
|
+
"model": "gpt-4.1-mini",
|
55
55
|
"provider": "openai",
|
56
56
|
},
|
57
57
|
"enableAutoReply": true,
|
58
58
|
"historyCompress": {
|
59
|
-
"model": "gpt-
|
59
|
+
"model": "gpt-4.1-mini",
|
60
60
|
"provider": "openai",
|
61
61
|
},
|
62
62
|
"queryRewrite": {
|
63
63
|
"enabled": true,
|
64
|
-
"model": "gpt-
|
64
|
+
"model": "gpt-4.1-mini",
|
65
65
|
"provider": "openai",
|
66
66
|
},
|
67
67
|
"replyMessage": "Custom auto reply",
|
68
68
|
"thread": {
|
69
|
-
"model": "gpt-
|
69
|
+
"model": "gpt-4.1-mini",
|
70
70
|
"provider": "openai",
|
71
71
|
},
|
72
72
|
"topic": {
|
73
|
-
"model": "gpt-
|
73
|
+
"model": "gpt-4.1-mini",
|
74
74
|
"provider": "openai",
|
75
75
|
},
|
76
76
|
"translation": {
|
77
|
-
"model": "gpt-
|
77
|
+
"model": "gpt-4.1-mini",
|
78
78
|
"provider": "openai",
|
79
79
|
},
|
80
80
|
}
|
@@ -111,7 +111,7 @@ exports[`settingsSelectors > defaultAgent > should merge DEFAULT_AGENT and s.set
|
|
111
111
|
"historyCount": 8,
|
112
112
|
"reasoningBudgetToken": 1024,
|
113
113
|
"searchFCModel": {
|
114
|
-
"model": "gpt-
|
114
|
+
"model": "gpt-4.1-mini",
|
115
115
|
"provider": "openai",
|
116
116
|
},
|
117
117
|
"searchMode": "off",
|
@@ -154,7 +154,7 @@ exports[`settingsSelectors > defaultAgentConfig > should merge DEFAULT_AGENT_CON
|
|
154
154
|
"historyCount": 8,
|
155
155
|
"reasoningBudgetToken": 1024,
|
156
156
|
"searchFCModel": {
|
157
|
-
"model": "gpt-
|
157
|
+
"model": "gpt-4.1-mini",
|
158
158
|
"provider": "openai",
|
159
159
|
},
|
160
160
|
"searchMode": "off",
|
package/src/server/mock.ts
DELETED
File without changes
|