@lobehub/chat 1.77.1 → 1.77.3
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/CHANGELOG.md +50 -0
- package/changelog/v1.json +18 -0
- package/package.json +1 -1
- package/src/app/[variants]/(main)/repos/[id]/@menu/default.tsx +1 -1
- package/src/app/[variants]/(main)/repos/[id]/page.tsx +1 -1
- package/src/database/models/__tests__/_test_template.ts +1 -1
- package/src/database/models/__tests__/agent.test.ts +1 -1
- package/src/database/models/__tests__/aiModel.test.ts +1 -1
- package/src/database/models/__tests__/aiProvider.test.ts +1 -1
- package/src/database/models/__tests__/asyncTask.test.ts +1 -1
- package/src/database/models/__tests__/chunk.test.ts +1 -1
- package/src/database/models/__tests__/file.test.ts +1 -1
- package/src/database/models/__tests__/knowledgeBase.test.ts +1 -1
- package/src/database/models/__tests__/message.test.ts +1 -1
- package/src/database/models/__tests__/plugin.test.ts +1 -1
- package/src/database/models/__tests__/session.test.ts +1 -1
- package/src/database/models/__tests__/sessionGroup.test.ts +1 -1
- package/src/database/models/__tests__/topic.test.ts +1 -1
- package/src/database/{server/models → models}/_template.ts +1 -1
- package/src/database/{server/models → models}/aiModel.ts +1 -1
- package/src/database/{server/models → models}/aiProvider.ts +10 -2
- package/src/database/{server/models → models}/asyncTask.ts +1 -1
- package/src/database/{server/models → models}/chunk.ts +1 -1
- package/src/database/{server/models → models}/embedding.ts +1 -1
- package/src/database/{server/models → models}/file.ts +1 -1
- package/src/database/{server/models → models}/knowledgeBase.ts +1 -1
- package/src/database/{server/models → models}/message.ts +1 -1
- package/src/database/{server/models → models}/plugin.ts +11 -4
- package/src/database/{server/models → models}/session.ts +1 -1
- package/src/database/{server/models → models}/sessionGroup.ts +1 -1
- package/src/database/{server/models → models}/thread.ts +1 -1
- package/src/database/{server/models → models}/topic.ts +1 -1
- package/src/database/{server/models → models}/user.ts +1 -1
- package/src/database/repositories/aiInfra/index.ts +2 -2
- package/src/database/server/models/__tests__/user.test.ts +2 -2
- package/src/libs/next-auth/adapter/index.ts +1 -1
- package/src/libs/trpc/async/asyncAuth.ts +1 -1
- package/src/server/routers/async/file.ts +4 -4
- package/src/server/routers/async/ragEval.ts +3 -3
- package/src/server/routers/lambda/_template.ts +1 -1
- package/src/server/routers/lambda/agent.test.ts +10 -10
- package/src/server/routers/lambda/agent.ts +5 -5
- package/src/server/routers/lambda/aiModel.test.ts +4 -4
- package/src/server/routers/lambda/aiModel.ts +2 -2
- package/src/server/routers/lambda/aiProvider.test.ts +4 -4
- package/src/server/routers/lambda/aiProvider.ts +2 -2
- package/src/server/routers/lambda/chunk.ts +5 -5
- package/src/server/routers/lambda/file.ts +3 -3
- package/src/server/routers/lambda/knowledgeBase.ts +1 -1
- package/src/server/routers/lambda/message.ts +1 -1
- package/src/server/routers/lambda/plugin.ts +1 -1
- package/src/server/routers/lambda/ragEval.ts +1 -1
- package/src/server/routers/lambda/session.ts +2 -2
- package/src/server/routers/lambda/sessionGroup.ts +1 -1
- package/src/server/routers/lambda/thread.ts +2 -2
- package/src/server/routers/lambda/topic.ts +1 -1
- package/src/server/routers/lambda/user.test.ts +6 -6
- package/src/server/routers/lambda/user.ts +3 -3
- package/src/server/services/agent/index.test.ts +2 -2
- package/src/server/services/agent/index.ts +1 -1
- package/src/server/services/chunk/index.ts +2 -2
- package/src/server/services/nextAuthUser/index.test.ts +2 -2
- package/src/server/services/nextAuthUser/index.ts +1 -1
- package/src/server/services/user/index.test.ts +2 -2
- package/src/server/services/user/index.ts +1 -1
- package/src/services/aiModel/client.ts +1 -1
- package/src/services/aiProvider/client.ts +1 -1
- package/src/services/file/client.ts +1 -1
- package/src/services/message/client.ts +1 -1
- package/src/services/plugin/client.ts +1 -1
- package/src/services/session/client.ts +2 -2
- package/src/services/thread/client.ts +2 -2
- package/src/services/topic/client.ts +1 -1
- package/src/services/user/client.ts +3 -3
- /package/src/database/{server/models → models}/agent.ts +0 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,56 @@
|
|
2
2
|
|
3
3
|
# Changelog
|
4
4
|
|
5
|
+
### [Version 1.77.3](https://github.com/lobehub/lobe-chat/compare/v1.77.2...v1.77.3)
|
6
|
+
|
7
|
+
<sup>Released on **2025-03-29**</sup>
|
8
|
+
|
9
|
+
#### ♻ Code Refactoring
|
10
|
+
|
11
|
+
- **misc**: Move general db models to database folder.
|
12
|
+
|
13
|
+
<br/>
|
14
|
+
|
15
|
+
<details>
|
16
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
17
|
+
|
18
|
+
#### Code refactoring
|
19
|
+
|
20
|
+
- **misc**: Move general db models to database folder, closes [#7222](https://github.com/lobehub/lobe-chat/issues/7222) ([f831d86](https://github.com/lobehub/lobe-chat/commit/f831d86))
|
21
|
+
|
22
|
+
</details>
|
23
|
+
|
24
|
+
<div align="right">
|
25
|
+
|
26
|
+
[](#readme-top)
|
27
|
+
|
28
|
+
</div>
|
29
|
+
|
30
|
+
### [Version 1.77.2](https://github.com/lobehub/lobe-chat/compare/v1.77.1...v1.77.2)
|
31
|
+
|
32
|
+
<sup>Released on **2025-03-29**</sup>
|
33
|
+
|
34
|
+
#### 🐛 Bug Fixes
|
35
|
+
|
36
|
+
- **misc**: Fix decrypt error with imported pg data.
|
37
|
+
|
38
|
+
<br/>
|
39
|
+
|
40
|
+
<details>
|
41
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
42
|
+
|
43
|
+
#### What's fixed
|
44
|
+
|
45
|
+
- **misc**: Fix decrypt error with imported pg data, closes [#7220](https://github.com/lobehub/lobe-chat/issues/7220) ([f8a0aa0](https://github.com/lobehub/lobe-chat/commit/f8a0aa0))
|
46
|
+
|
47
|
+
</details>
|
48
|
+
|
49
|
+
<div align="right">
|
50
|
+
|
51
|
+
[](#readme-top)
|
52
|
+
|
53
|
+
</div>
|
54
|
+
|
5
55
|
### [Version 1.77.1](https://github.com/lobehub/lobe-chat/compare/v1.77.0...v1.77.1)
|
6
56
|
|
7
57
|
<sup>Released on **2025-03-29**</sup>
|
package/changelog/v1.json
CHANGED
@@ -1,4 +1,22 @@
|
|
1
1
|
[
|
2
|
+
{
|
3
|
+
"children": {
|
4
|
+
"improvements": [
|
5
|
+
"Move general db models to database folder."
|
6
|
+
]
|
7
|
+
},
|
8
|
+
"date": "2025-03-29",
|
9
|
+
"version": "1.77.3"
|
10
|
+
},
|
11
|
+
{
|
12
|
+
"children": {
|
13
|
+
"fixes": [
|
14
|
+
"Fix decrypt error with imported pg data."
|
15
|
+
]
|
16
|
+
},
|
17
|
+
"date": "2025-03-29",
|
18
|
+
"version": "1.77.2"
|
19
|
+
},
|
2
20
|
{
|
3
21
|
"children": {
|
4
22
|
"fixes": [
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@lobehub/chat",
|
3
|
-
"version": "1.77.
|
3
|
+
"version": "1.77.3",
|
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",
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { notFound } from 'next/navigation';
|
2
2
|
import { Flexbox } from 'react-layout-kit';
|
3
3
|
|
4
|
+
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
|
6
6
|
|
7
7
|
import Head from './Head';
|
8
8
|
import Menu from './Menu';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { redirect } from 'next/navigation';
|
2
2
|
|
3
|
+
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
3
4
|
import { serverDB } from '@/database/server';
|
4
|
-
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
|
5
5
|
import FileManager from '@/features/FileManager';
|
6
6
|
import { PagePropsWithId } from '@/types/next';
|
7
7
|
|
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
5
|
import { getTestDBInstance } from '@/database/server/core/dbForTest';
|
6
6
|
|
7
7
|
import { sessionGroups, users } from '../../schemas';
|
8
|
-
import { SessionGroupModel } from '
|
8
|
+
import { SessionGroupModel } from '../sessionGroup';
|
9
9
|
|
10
10
|
let serverDB = await getTestDBInstance();
|
11
11
|
|
@@ -6,7 +6,7 @@ import { LobeChatDatabase } from '@/database/type';
|
|
6
6
|
import { AiProviderModelListItem } from '@/types/aiModel';
|
7
7
|
|
8
8
|
import { AiModelSelectItem, NewAiModelItem, aiModels, users } from '../../schemas';
|
9
|
-
import { AiModelModel } from '
|
9
|
+
import { AiModelModel } from '../aiModel';
|
10
10
|
import { getTestDB } from './_util';
|
11
11
|
|
12
12
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -6,7 +6,7 @@ import { LobeChatDatabase } from '@/database/type';
|
|
6
6
|
import { ModelProvider } from '@/libs/agent-runtime';
|
7
7
|
|
8
8
|
import { aiProviders, users } from '../../schemas';
|
9
|
-
import { AiProviderModel } from '
|
9
|
+
import { AiProviderModel } from '../aiProvider';
|
10
10
|
import { getTestDB } from './_util';
|
11
11
|
|
12
12
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -6,7 +6,7 @@ import { LobeChatDatabase } from '@/database/type';
|
|
6
6
|
import { AsyncTaskStatus, AsyncTaskType } from '@/types/asyncTask';
|
7
7
|
|
8
8
|
import { asyncTasks, users } from '../../schemas';
|
9
|
-
import { ASYNC_TASK_TIMEOUT, AsyncTaskModel } from '
|
9
|
+
import { ASYNC_TASK_TIMEOUT, AsyncTaskModel } from '../asyncTask';
|
10
10
|
import { getTestDB } from './_util';
|
11
11
|
|
12
12
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -6,7 +6,7 @@ import { LobeChatDatabase } from '@/database/type';
|
|
6
6
|
import { uuid } from '@/utils/uuid';
|
7
7
|
|
8
8
|
import { chunks, embeddings, fileChunks, files, unstructuredChunks, users } from '../../schemas';
|
9
|
-
import { ChunkModel } from '
|
9
|
+
import { ChunkModel } from '../chunk';
|
10
10
|
import { getTestDB } from './_util';
|
11
11
|
import { codeEmbedding, designThinkingQuery, designThinkingQuery2 } from './fixtures/embedding';
|
12
12
|
|
@@ -6,7 +6,7 @@ import { LobeChatDatabase } from '@/database/type';
|
|
6
6
|
import { FilesTabs, SortType } from '@/types/files';
|
7
7
|
|
8
8
|
import { files, globalFiles, knowledgeBaseFiles, knowledgeBases, users } from '../../schemas';
|
9
|
-
import { FileModel } from '
|
9
|
+
import { FileModel } from '../file';
|
10
10
|
import { getTestDB } from './_util';
|
11
11
|
|
12
12
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -13,7 +13,7 @@ import {
|
|
13
13
|
knowledgeBases,
|
14
14
|
users,
|
15
15
|
} from '../../schemas';
|
16
|
-
import { KnowledgeBaseModel } from '
|
16
|
+
import { KnowledgeBaseModel } from '../knowledgeBase';
|
17
17
|
import { getTestDB } from './_util';
|
18
18
|
|
19
19
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -23,7 +23,7 @@ import {
|
|
23
23
|
topics,
|
24
24
|
users,
|
25
25
|
} from '../../schemas';
|
26
|
-
import { MessageModel } from '
|
26
|
+
import { MessageModel } from '../message';
|
27
27
|
import { codeEmbedding } from './fixtures/embedding';
|
28
28
|
|
29
29
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
4
|
import { LobeChatDatabase } from '@/database/type';
|
5
5
|
|
6
6
|
import { NewInstalledPlugin, userInstalledPlugins, users } from '../../schemas';
|
7
|
-
import { PluginModel } from '
|
7
|
+
import { PluginModel } from '../plugin';
|
8
8
|
import { getTestDB } from './_util';
|
9
9
|
|
10
10
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -17,7 +17,7 @@ import {
|
|
17
17
|
topics,
|
18
18
|
users,
|
19
19
|
} from '../../schemas';
|
20
|
-
import { SessionModel } from '
|
20
|
+
import { SessionModel } from '../session';
|
21
21
|
import { getTestDB } from './_util';
|
22
22
|
|
23
23
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -5,7 +5,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
5
|
import { LobeChatDatabase } from '@/database/type';
|
6
6
|
|
7
7
|
import { sessionGroups, users } from '../../schemas';
|
8
|
-
import { SessionGroupModel } from '
|
8
|
+
import { SessionGroupModel } from '../sessionGroup';
|
9
9
|
import { getTestDB } from './_util';
|
10
10
|
|
11
11
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -4,7 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
4
|
import { LobeChatDatabase } from '@/database/type';
|
5
5
|
|
6
6
|
import { messages, sessions, topics, users } from '../../schemas';
|
7
|
-
import { CreateTopicParams, TopicModel } from '
|
7
|
+
import { CreateTopicParams, TopicModel } from '../topic';
|
8
8
|
import { getTestDB } from './_util';
|
9
9
|
|
10
10
|
const serverDB: LobeChatDatabase = await getTestDB();
|
@@ -2,7 +2,7 @@ import { and, desc, eq } from 'drizzle-orm/expressions';
|
|
2
2
|
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
|
5
|
-
import { NewSessionGroup, SessionGroupItem, sessionGroups } from '
|
5
|
+
import { NewSessionGroup, SessionGroupItem, sessionGroups } from '../schemas';
|
6
6
|
|
7
7
|
export class TemplateModel {
|
8
8
|
private userId: string;
|
@@ -9,7 +9,7 @@ import {
|
|
9
9
|
ToggleAiModelEnableParams,
|
10
10
|
} from '@/types/aiModel';
|
11
11
|
|
12
|
-
import { AiModelSelectItem, NewAiModelItem, aiModels } from '
|
12
|
+
import { AiModelSelectItem, NewAiModelItem, aiModels } from '../schemas';
|
13
13
|
|
14
14
|
export class AiModelModel {
|
15
15
|
private userId: string;
|
@@ -13,7 +13,7 @@ import {
|
|
13
13
|
} from '@/types/aiProvider';
|
14
14
|
import { merge } from '@/utils/merge';
|
15
15
|
|
16
|
-
import { AiProviderSelectItem, aiModels, aiProviders } from '
|
16
|
+
import { AiProviderSelectItem, aiModels, aiProviders } from '../schemas';
|
17
17
|
|
18
18
|
type DecryptUserKeyVaults = (encryptKeyVaultsStr: string | null) => Promise<any>;
|
19
19
|
|
@@ -215,7 +215,15 @@ export class AiProviderModel {
|
|
215
215
|
|
216
216
|
const decrypt = decryptor ?? JSON.parse;
|
217
217
|
|
218
|
-
|
218
|
+
let keyVaults = {};
|
219
|
+
|
220
|
+
if (!!result.keyVaults) {
|
221
|
+
try {
|
222
|
+
keyVaults = await decrypt(result.keyVaults);
|
223
|
+
} catch {
|
224
|
+
/* empty */
|
225
|
+
}
|
226
|
+
}
|
219
227
|
|
220
228
|
return {
|
221
229
|
...result,
|
@@ -8,7 +8,7 @@ import {
|
|
8
8
|
AsyncTaskType,
|
9
9
|
} from '@/types/asyncTask';
|
10
10
|
|
11
|
-
import { AsyncTaskSelectItem, NewAsyncTaskItem, asyncTasks } from '
|
11
|
+
import { AsyncTaskSelectItem, NewAsyncTaskItem, asyncTasks } from '../schemas';
|
12
12
|
|
13
13
|
// set timeout to about 5 minutes, and give 2s padding time
|
14
14
|
export const ASYNC_TASK_TIMEOUT = 298 * 1000;
|
@@ -3,7 +3,7 @@ import { and, eq } from 'drizzle-orm/expressions';
|
|
3
3
|
|
4
4
|
import { LobeChatDatabase } from '@/database/type';
|
5
5
|
|
6
|
-
import { NewEmbeddingsItem, embeddings } from '
|
6
|
+
import { NewEmbeddingsItem, embeddings } from '../schemas';
|
7
7
|
|
8
8
|
export class EmbeddingModel {
|
9
9
|
private userId: string;
|
@@ -3,7 +3,7 @@ import { and, desc, eq, inArray } from 'drizzle-orm/expressions';
|
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
import { KnowledgeBaseItem } from '@/types/knowledgeBase';
|
5
5
|
|
6
|
-
import { NewKnowledgeBase, knowledgeBaseFiles, knowledgeBases } from '
|
6
|
+
import { NewKnowledgeBase, knowledgeBaseFiles, knowledgeBases } from '../schemas';
|
7
7
|
|
8
8
|
export class KnowledgeBaseModel {
|
9
9
|
private userId: string;
|
@@ -2,7 +2,7 @@ import { and, desc, eq } from 'drizzle-orm/expressions';
|
|
2
2
|
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
|
5
|
-
import { InstalledPluginItem, NewInstalledPlugin, userInstalledPlugins } from '
|
5
|
+
import { InstalledPluginItem, NewInstalledPlugin, userInstalledPlugins } from '../schemas';
|
6
6
|
|
7
7
|
export class PluginModel {
|
8
8
|
private userId: string;
|
@@ -31,7 +31,9 @@ export class PluginModel {
|
|
31
31
|
delete = async (id: string) => {
|
32
32
|
return this.db
|
33
33
|
.delete(userInstalledPlugins)
|
34
|
-
.where(
|
34
|
+
.where(
|
35
|
+
and(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)),
|
36
|
+
);
|
35
37
|
};
|
36
38
|
|
37
39
|
deleteAll = async () => {
|
@@ -56,7 +58,10 @@ export class PluginModel {
|
|
56
58
|
|
57
59
|
findById = async (id: string) => {
|
58
60
|
return this.db.query.userInstalledPlugins.findFirst({
|
59
|
-
where: and(
|
61
|
+
where: and(
|
62
|
+
eq(userInstalledPlugins.identifier, id),
|
63
|
+
eq(userInstalledPlugins.userId, this.userId),
|
64
|
+
),
|
60
65
|
});
|
61
66
|
};
|
62
67
|
|
@@ -64,6 +69,8 @@ export class PluginModel {
|
|
64
69
|
return this.db
|
65
70
|
.update(userInstalledPlugins)
|
66
71
|
.set({ ...value, updatedAt: new Date() })
|
67
|
-
.where(
|
72
|
+
.where(
|
73
|
+
and(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)),
|
74
|
+
);
|
68
75
|
};
|
69
76
|
}
|
@@ -3,7 +3,7 @@ import { and, asc, desc, eq } from 'drizzle-orm/expressions';
|
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
import { idGenerator } from '@/database/utils/idGenerator';
|
5
5
|
|
6
|
-
import { SessionGroupItem, sessionGroups } from '
|
6
|
+
import { SessionGroupItem, sessionGroups } from '../schemas';
|
7
7
|
|
8
8
|
export class SessionGroupModel {
|
9
9
|
private userId: string;
|
@@ -3,7 +3,7 @@ import { and, desc, eq } from 'drizzle-orm/expressions';
|
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
import { CreateThreadParams, ThreadStatus } from '@/types/topic';
|
5
5
|
|
6
|
-
import { ThreadItem, threads } from '
|
6
|
+
import { ThreadItem, threads } from '../schemas';
|
7
7
|
|
8
8
|
const queryColumns = {
|
9
9
|
createdAt: threads.createdAt,
|
@@ -12,7 +12,7 @@ import { idGenerator } from '@/database/utils/idGenerator';
|
|
12
12
|
import { MessageItem } from '@/types/message';
|
13
13
|
import { TopicRankItem } from '@/types/topic';
|
14
14
|
|
15
|
-
import { TopicItem, messages, topics } from '
|
15
|
+
import { TopicItem, messages, topics } from '../schemas';
|
16
16
|
|
17
17
|
export interface CreateTopicParams {
|
18
18
|
favorite?: boolean;
|
@@ -2,8 +2,8 @@ import { isEmpty } from 'lodash-es';
|
|
2
2
|
import pMap from 'p-map';
|
3
3
|
|
4
4
|
import { DEFAULT_MODEL_PROVIDER_LIST } from '@/config/modelProviders';
|
5
|
-
import { AiModelModel } from '@/database/
|
6
|
-
import { AiProviderModel } from '@/database/
|
5
|
+
import { AiModelModel } from '@/database/models/aiModel';
|
6
|
+
import { AiProviderModel } from '@/database/models/aiProvider';
|
7
7
|
import { LobeChatDatabase } from '@/database/type';
|
8
8
|
import {
|
9
9
|
AIChatModelCard,
|
@@ -9,9 +9,9 @@ import { LobeChatDatabase } from '@/database/type';
|
|
9
9
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
10
10
|
import { UserGuide, UserPreference } from '@/types/user';
|
11
11
|
|
12
|
+
import { SessionModel } from '../../../models/session';
|
13
|
+
import { UserModel, UserNotFoundError } from '../../../models/user';
|
12
14
|
import { UserSettingsItem, userSettings, users } from '../../../schemas';
|
13
|
-
import { SessionModel } from '../session';
|
14
|
-
import { UserModel, UserNotFoundError } from '../user';
|
15
15
|
|
16
16
|
let serverDB = await getTestDBInstance();
|
17
17
|
|
@@ -8,8 +8,8 @@ import { and, eq } from 'drizzle-orm/expressions';
|
|
8
8
|
import type { NeonDatabase } from 'drizzle-orm/neon-serverless';
|
9
9
|
import { Adapter, AdapterAccount } from 'next-auth/adapters';
|
10
10
|
|
11
|
+
import { UserModel } from '@/database/models/user';
|
11
12
|
import * as schema from '@/database/schemas';
|
12
|
-
import { UserModel } from '@/database/server/models/user';
|
13
13
|
import { AgentService } from '@/server/services/agent';
|
14
14
|
import { merge } from '@/utils/merge';
|
15
15
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { TRPCError } from '@trpc/server';
|
2
2
|
|
3
3
|
import { serverDBEnv } from '@/config/db';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { UserModel } from '@/database/server/models/user';
|
6
6
|
|
7
7
|
import { asyncTrpc } from './init';
|
8
8
|
|
@@ -6,12 +6,12 @@ import { z } from 'zod';
|
|
6
6
|
import { serverDBEnv } from '@/config/db';
|
7
7
|
import { fileEnv } from '@/config/file';
|
8
8
|
import { DEFAULT_FILE_EMBEDDING_MODEL_ITEM } from '@/const/settings/knowledge';
|
9
|
+
import { ASYNC_TASK_TIMEOUT, AsyncTaskModel } from '@/database/models/asyncTask';
|
10
|
+
import { ChunkModel } from '@/database/models/chunk';
|
11
|
+
import { EmbeddingModel } from '@/database/models/embedding';
|
12
|
+
import { FileModel } from '@/database/models/file';
|
9
13
|
import { NewChunkItem, NewEmbeddingsItem } from '@/database/schemas';
|
10
14
|
import { serverDB } from '@/database/server';
|
11
|
-
import { ASYNC_TASK_TIMEOUT, AsyncTaskModel } from '@/database/server/models/asyncTask';
|
12
|
-
import { ChunkModel } from '@/database/server/models/chunk';
|
13
|
-
import { EmbeddingModel } from '@/database/server/models/embedding';
|
14
|
-
import { FileModel } from '@/database/server/models/file';
|
15
15
|
import { asyncAuthedProcedure, asyncRouter as router } from '@/libs/trpc/async';
|
16
16
|
import { getServerDefaultFilesConfig } from '@/server/globalConfig';
|
17
17
|
import { initAgentRuntimeWithUserPayload } from '@/server/modules/AgentRuntime';
|
@@ -4,10 +4,10 @@ import { z } from 'zod';
|
|
4
4
|
|
5
5
|
import { chainAnswerWithContext } from '@/chains/answerWithContext';
|
6
6
|
import { DEFAULT_EMBEDDING_MODEL, DEFAULT_MODEL } from '@/const/settings';
|
7
|
+
import { ChunkModel } from '@/database/models/chunk';
|
8
|
+
import { EmbeddingModel } from '@/database/models/embedding';
|
9
|
+
import { FileModel } from '@/database/models/file';
|
7
10
|
import { serverDB } from '@/database/server';
|
8
|
-
import { ChunkModel } from '@/database/server/models/chunk';
|
9
|
-
import { EmbeddingModel } from '@/database/server/models/embedding';
|
10
|
-
import { FileModel } from '@/database/server/models/file';
|
11
11
|
import {
|
12
12
|
EvalDatasetRecordModel,
|
13
13
|
EvalEvaluationModel,
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
3
4
|
import { insertSessionGroupSchema } from '@/database/schemas';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { SessionGroupModel } from '@/database/server/models/sessionGroup';
|
6
6
|
import { authedProcedure, router } from '@/libs/trpc';
|
7
7
|
import { SessionGroupItem } from '@/types/session';
|
8
8
|
|
@@ -3,36 +3,36 @@ import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
3
|
|
4
4
|
import { INBOX_SESSION_ID } from '@/const/session';
|
5
5
|
import { DEFAULT_AGENT_CONFIG } from '@/const/settings';
|
6
|
+
import { AgentModel } from '@/database/models/agent';
|
7
|
+
import { FileModel } from '@/database/models/file';
|
8
|
+
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
9
|
+
import { SessionModel } from '@/database/models/session';
|
10
|
+
import { UserModel } from '@/database/models/user';
|
6
11
|
import { serverDB } from '@/database/server';
|
7
|
-
import { AgentModel } from '@/database/server/models/agent';
|
8
|
-
import { FileModel } from '@/database/server/models/file';
|
9
|
-
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
|
10
|
-
import { SessionModel } from '@/database/server/models/session';
|
11
|
-
import { UserModel } from '@/database/server/models/user';
|
12
12
|
import { AgentService } from '@/server/services/agent';
|
13
13
|
import { KnowledgeType } from '@/types/knowledgeBase';
|
14
14
|
|
15
15
|
import { agentRouter } from './agent';
|
16
16
|
|
17
|
-
vi.mock('@/database/
|
17
|
+
vi.mock('@/database/models/user', () => ({
|
18
18
|
UserModel: {
|
19
19
|
findById: vi.fn(),
|
20
20
|
},
|
21
21
|
}));
|
22
22
|
|
23
|
-
vi.mock('@/database/
|
23
|
+
vi.mock('@/database/models/agent', () => ({
|
24
24
|
AgentModel: vi.fn(),
|
25
25
|
}));
|
26
26
|
|
27
|
-
vi.mock('@/database/
|
27
|
+
vi.mock('@/database/models/session', () => ({
|
28
28
|
SessionModel: vi.fn(),
|
29
29
|
}));
|
30
30
|
|
31
|
-
vi.mock('@/database/
|
31
|
+
vi.mock('@/database/models/file', () => ({
|
32
32
|
FileModel: vi.fn(),
|
33
33
|
}));
|
34
34
|
|
35
|
-
vi.mock('@/database/
|
35
|
+
vi.mock('@/database/models/knowledgeBase', () => ({
|
36
36
|
KnowledgeBaseModel: vi.fn(),
|
37
37
|
}));
|
38
38
|
|
@@ -2,12 +2,12 @@ import { z } from 'zod';
|
|
2
2
|
|
3
3
|
import { INBOX_SESSION_ID } from '@/const/session';
|
4
4
|
import { DEFAULT_AGENT_CONFIG } from '@/const/settings';
|
5
|
+
import { AgentModel } from '@/database/models/agent';
|
6
|
+
import { FileModel } from '@/database/models/file';
|
7
|
+
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
8
|
+
import { SessionModel } from '@/database/models/session';
|
9
|
+
import { UserModel } from '@/database/models/user';
|
5
10
|
import { serverDB } from '@/database/server';
|
6
|
-
import { AgentModel } from '@/database/server/models/agent';
|
7
|
-
import { FileModel } from '@/database/server/models/file';
|
8
|
-
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
|
9
|
-
import { SessionModel } from '@/database/server/models/session';
|
10
|
-
import { UserModel } from '@/database/server/models/user';
|
11
11
|
import { pino } from '@/libs/logger';
|
12
12
|
import { authedProcedure, router } from '@/libs/trpc';
|
13
13
|
import { AgentService } from '@/server/services/agent';
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
2
2
|
|
3
|
+
import { AiModelModel } from '@/database/models/aiModel';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
3
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
4
|
-
import { AiModelModel } from '@/database/server/models/aiModel';
|
5
|
-
import { UserModel } from '@/database/server/models/user';
|
6
6
|
|
7
7
|
import { aiModelRouter } from './aiModel';
|
8
8
|
|
9
|
-
vi.mock('@/database/
|
10
|
-
vi.mock('@/database/
|
9
|
+
vi.mock('@/database/models/aiModel');
|
10
|
+
vi.mock('@/database/models/user');
|
11
11
|
vi.mock('@/database/repositories/aiInfra');
|
12
12
|
vi.mock('@/server/globalConfig', () => ({
|
13
13
|
getServerGlobalConfig: vi.fn().mockReturnValue({
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { AiModelModel } from '@/database/models/aiModel';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
3
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
4
6
|
import { serverDB } from '@/database/server';
|
5
|
-
import { AiModelModel } from '@/database/server/models/aiModel';
|
6
|
-
import { UserModel } from '@/database/server/models/user';
|
7
7
|
import { authedProcedure, router } from '@/libs/trpc';
|
8
8
|
import { getServerGlobalConfig } from '@/server/globalConfig';
|
9
9
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
2
2
|
|
3
|
+
import { AiProviderModel } from '@/database/models/aiProvider';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
3
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
4
6
|
import { serverDB } from '@/database/server';
|
5
|
-
import { AiProviderModel } from '@/database/server/models/aiProvider';
|
6
|
-
import { UserModel } from '@/database/server/models/user';
|
7
7
|
import { getServerGlobalConfig } from '@/server/globalConfig';
|
8
8
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
9
9
|
import { AiProviderDetailItem, AiProviderRuntimeState } from '@/types/aiProvider';
|
@@ -13,8 +13,8 @@ import { aiProviderRouter } from './aiProvider';
|
|
13
13
|
vi.mock('@/server/globalConfig');
|
14
14
|
vi.mock('@/server/modules/KeyVaultsEncrypt');
|
15
15
|
vi.mock('@/database/repositories/aiInfra');
|
16
|
-
vi.mock('@/database/
|
17
|
-
vi.mock('@/database/
|
16
|
+
vi.mock('@/database/models/aiProvider');
|
17
|
+
vi.mock('@/database/models/user');
|
18
18
|
|
19
19
|
describe('aiProviderRouter', () => {
|
20
20
|
const mockUserId = 'test-user-id';
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { AiProviderModel } from '@/database/models/aiProvider';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
3
5
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
4
6
|
import { serverDB } from '@/database/server';
|
5
|
-
import { AiProviderModel } from '@/database/server/models/aiProvider';
|
6
|
-
import { UserModel } from '@/database/server/models/user';
|
7
7
|
import { authedProcedure, router } from '@/libs/trpc';
|
8
8
|
import { getServerGlobalConfig } from '@/server/globalConfig';
|
9
9
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
@@ -3,13 +3,13 @@ import { inArray } from 'drizzle-orm/expressions';
|
|
3
3
|
import { z } from 'zod';
|
4
4
|
|
5
5
|
import { DEFAULT_FILE_EMBEDDING_MODEL_ITEM } from '@/const/settings/knowledge';
|
6
|
+
import { AsyncTaskModel } from '@/database/models/asyncTask';
|
7
|
+
import { ChunkModel } from '@/database/models/chunk';
|
8
|
+
import { EmbeddingModel } from '@/database/models/embedding';
|
9
|
+
import { FileModel } from '@/database/models/file';
|
10
|
+
import { MessageModel } from '@/database/models/message';
|
6
11
|
import { knowledgeBaseFiles } from '@/database/schemas';
|
7
12
|
import { serverDB } from '@/database/server';
|
8
|
-
import { AsyncTaskModel } from '@/database/server/models/asyncTask';
|
9
|
-
import { ChunkModel } from '@/database/server/models/chunk';
|
10
|
-
import { EmbeddingModel } from '@/database/server/models/embedding';
|
11
|
-
import { FileModel } from '@/database/server/models/file';
|
12
|
-
import { MessageModel } from '@/database/server/models/message';
|
13
13
|
import { authedProcedure, router } from '@/libs/trpc';
|
14
14
|
import { keyVaults } from '@/libs/trpc/middleware/keyVaults';
|
15
15
|
import { getServerDefaultFilesConfig } from '@/server/globalConfig';
|
@@ -2,10 +2,10 @@ import { TRPCError } from '@trpc/server';
|
|
2
2
|
import { z } from 'zod';
|
3
3
|
|
4
4
|
import { serverDBEnv } from '@/config/db';
|
5
|
+
import { AsyncTaskModel } from '@/database/models/asyncTask';
|
6
|
+
import { ChunkModel } from '@/database/models/chunk';
|
7
|
+
import { FileModel } from '@/database/models/file';
|
5
8
|
import { serverDB } from '@/database/server';
|
6
|
-
import { AsyncTaskModel } from '@/database/server/models/asyncTask';
|
7
|
-
import { ChunkModel } from '@/database/server/models/chunk';
|
8
|
-
import { FileModel } from '@/database/server/models/file';
|
9
9
|
import { authedProcedure, router } from '@/libs/trpc';
|
10
10
|
import { S3 } from '@/server/modules/S3';
|
11
11
|
import { getFullFileUrl } from '@/server/utils/files';
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { KnowledgeBaseModel } from '@/database/models/knowledgeBase';
|
3
4
|
import { insertKnowledgeBasesSchema } from '@/database/schemas';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { KnowledgeBaseModel } from '@/database/server/models/knowledgeBase';
|
6
6
|
import { authedProcedure, router } from '@/libs/trpc';
|
7
7
|
import { KnowledgeBaseItem } from '@/types/knowledgeBase';
|
8
8
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { MessageModel } from '@/database/models/message';
|
3
4
|
import { updateMessagePluginSchema } from '@/database/schemas';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { MessageModel } from '@/database/server/models/message';
|
6
6
|
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
7
7
|
import { getFullFileUrl } from '@/server/utils/files';
|
8
8
|
import { ChatMessage } from '@/types/message';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { PluginModel } from '@/database/models/plugin';
|
3
4
|
import { serverDB } from '@/database/server';
|
4
|
-
import { PluginModel } from '@/database/server/models/plugin';
|
5
5
|
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
6
6
|
import { LobeTool } from '@/types/tool';
|
7
7
|
|
@@ -6,8 +6,8 @@ import pMap from 'p-map';
|
|
6
6
|
import { z } from 'zod';
|
7
7
|
|
8
8
|
import { DEFAULT_EMBEDDING_MODEL, DEFAULT_MODEL } from '@/const/settings';
|
9
|
+
import { FileModel } from '@/database/models/file';
|
9
10
|
import { serverDB } from '@/database/server';
|
10
|
-
import { FileModel } from '@/database/server/models/file';
|
11
11
|
import {
|
12
12
|
EvalDatasetModel,
|
13
13
|
EvalDatasetRecordModel,
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { SessionModel } from '@/database/models/session';
|
4
|
+
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
3
5
|
import { insertAgentSchema, insertSessionSchema } from '@/database/schemas';
|
4
6
|
import { serverDB } from '@/database/server';
|
5
|
-
import { SessionModel } from '@/database/server/models/session';
|
6
|
-
import { SessionGroupModel } from '@/database/server/models/sessionGroup';
|
7
7
|
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
8
8
|
import { AgentChatConfigSchema } from '@/types/agent';
|
9
9
|
import { LobeMetaDataSchema } from '@/types/meta';
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
3
4
|
import { insertSessionGroupSchema } from '@/database/schemas';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { SessionGroupModel } from '@/database/server/models/sessionGroup';
|
6
6
|
import { authedProcedure, router } from '@/libs/trpc';
|
7
7
|
import { SessionGroupItem } from '@/types/session';
|
8
8
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { MessageModel } from '@/database/models/message';
|
4
|
+
import { ThreadModel } from '@/database/models/thread';
|
3
5
|
import { insertThreadSchema } from '@/database/schemas';
|
4
6
|
import { serverDB } from '@/database/server';
|
5
|
-
import { MessageModel } from '@/database/server/models/message';
|
6
|
-
import { ThreadModel } from '@/database/server/models/thread';
|
7
7
|
import { authedProcedure, router } from '@/libs/trpc';
|
8
8
|
import { ThreadItem, createThreadSchema } from '@/types/topic/thread';
|
9
9
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { z } from 'zod';
|
2
2
|
|
3
|
+
import { TopicModel } from '@/database/models/topic';
|
3
4
|
import { serverDB } from '@/database/server';
|
4
|
-
import { TopicModel } from '@/database/server/models/topic';
|
5
5
|
import { authedProcedure, publicProcedure, router } from '@/libs/trpc';
|
6
6
|
import { BatchTaskResult } from '@/types/service';
|
7
7
|
|
@@ -2,10 +2,10 @@
|
|
2
2
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
3
3
|
|
4
4
|
import { enableClerk } from '@/const/auth';
|
5
|
+
import { MessageModel } from '@/database/models/message';
|
6
|
+
import { SessionModel } from '@/database/models/session';
|
7
|
+
import { UserModel, UserNotFoundError } from '@/database/models/user';
|
5
8
|
import { serverDB } from '@/database/server';
|
6
|
-
import { MessageModel } from '@/database/server/models/message';
|
7
|
-
import { SessionModel } from '@/database/server/models/session';
|
8
|
-
import { UserModel, UserNotFoundError } from '@/database/server/models/user';
|
9
9
|
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
|
10
10
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
11
11
|
import { UserService } from '@/server/services/user';
|
@@ -21,9 +21,9 @@ vi.mock('@/database/server', () => ({
|
|
21
21
|
serverDB: {},
|
22
22
|
}));
|
23
23
|
|
24
|
-
vi.mock('@/database/
|
25
|
-
vi.mock('@/database/
|
26
|
-
vi.mock('@/database/
|
24
|
+
vi.mock('@/database/models/message');
|
25
|
+
vi.mock('@/database/models/session');
|
26
|
+
vi.mock('@/database/models/user');
|
27
27
|
vi.mock('@/libs/next-auth/adapter');
|
28
28
|
vi.mock('@/server/modules/KeyVaultsEncrypt');
|
29
29
|
vi.mock('@/server/services/user');
|
@@ -2,10 +2,10 @@ import { UserJSON } from '@clerk/backend';
|
|
2
2
|
import { z } from 'zod';
|
3
3
|
|
4
4
|
import { enableClerk } from '@/const/auth';
|
5
|
+
import { MessageModel } from '@/database/models/message';
|
6
|
+
import { SessionModel } from '@/database/models/session';
|
7
|
+
import { UserModel, UserNotFoundError } from '@/database/models/user';
|
5
8
|
import { serverDB } from '@/database/server';
|
6
|
-
import { MessageModel } from '@/database/server/models/message';
|
7
|
-
import { SessionModel } from '@/database/server/models/session';
|
8
|
-
import { UserModel, UserNotFoundError } from '@/database/server/models/user';
|
9
9
|
import { ClerkAuth } from '@/libs/clerk-auth';
|
10
10
|
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
|
11
11
|
import { authedProcedure, router } from '@/libs/trpc';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// @vitest-environment node
|
2
2
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
3
3
|
|
4
|
-
import { SessionModel } from '@/database/
|
4
|
+
import { SessionModel } from '@/database/models/session';
|
5
5
|
import { parseAgentConfig } from '@/server/globalConfig/parseDefaultAgent';
|
6
6
|
|
7
7
|
import { AgentService } from './index';
|
@@ -16,7 +16,7 @@ vi.mock('@/server/globalConfig/parseDefaultAgent', () => ({
|
|
16
16
|
parseAgentConfig: vi.fn(),
|
17
17
|
}));
|
18
18
|
|
19
|
-
vi.mock('@/database/
|
19
|
+
vi.mock('@/database/models/session', () => ({
|
20
20
|
SessionModel: vi.fn(),
|
21
21
|
}));
|
22
22
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { appEnv } from '@/config/app';
|
2
|
-
import { SessionModel } from '@/database/
|
2
|
+
import { SessionModel } from '@/database/models/session';
|
3
3
|
import { LobeChatDatabase } from '@/database/type';
|
4
4
|
import { parseAgentConfig } from '@/server/globalConfig/parseDefaultAgent';
|
5
5
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { JWTPayload } from '@/const/auth';
|
2
|
+
import { AsyncTaskModel } from '@/database/models/asyncTask';
|
3
|
+
import { FileModel } from '@/database/models/file';
|
2
4
|
import { serverDB } from '@/database/server';
|
3
|
-
import { AsyncTaskModel } from '@/database/server/models/asyncTask';
|
4
|
-
import { FileModel } from '@/database/server/models/file';
|
5
5
|
import { ChunkContentParams, ContentChunk } from '@/server/modules/ContentChunk';
|
6
6
|
import { createAsyncServerClient } from '@/server/routers/async';
|
7
7
|
import {
|
@@ -2,9 +2,9 @@
|
|
2
2
|
import { NextResponse } from 'next/server';
|
3
3
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
4
4
|
|
5
|
+
import { UserModel } from '@/database/models/user';
|
5
6
|
import { UserItem } from '@/database/schemas';
|
6
7
|
import { serverDB } from '@/database/server';
|
7
|
-
import { UserModel } from '@/database/server/models/user';
|
8
8
|
import { pino } from '@/libs/logger';
|
9
9
|
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
|
10
10
|
|
@@ -17,7 +17,7 @@ vi.mock('@/libs/logger', () => ({
|
|
17
17
|
},
|
18
18
|
}));
|
19
19
|
|
20
|
-
vi.mock('@/database/
|
20
|
+
vi.mock('@/database/models/user');
|
21
21
|
vi.mock('@/database/server');
|
22
22
|
|
23
23
|
describe('NextAuthUserService', () => {
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { NextResponse } from 'next/server';
|
2
2
|
|
3
|
+
import { UserModel } from '@/database/models/user';
|
3
4
|
import { UserItem } from '@/database/schemas';
|
4
5
|
import { serverDB } from '@/database/server';
|
5
|
-
import { UserModel } from '@/database/server/models/user';
|
6
6
|
import { pino } from '@/libs/logger';
|
7
7
|
import { LobeNextAuthDbAdapter } from '@/libs/next-auth/adapter';
|
8
8
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import { UserJSON } from '@clerk/backend';
|
2
2
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
3
3
|
|
4
|
+
import { UserModel } from '@/database/models/user';
|
4
5
|
import { UserItem } from '@/database/schemas';
|
5
|
-
import { UserModel } from '@/database/server/models/user';
|
6
6
|
import { pino } from '@/libs/logger';
|
7
7
|
import { AgentService } from '@/server/services/agent';
|
8
8
|
|
9
9
|
import { UserService } from './index';
|
10
10
|
|
11
11
|
// Mock dependencies
|
12
|
-
vi.mock('@/database/
|
12
|
+
vi.mock('@/database/models/user', () => {
|
13
13
|
const MockUserModel = vi.fn();
|
14
14
|
// @ts-ignore
|
15
15
|
MockUserModel.findById = vi.fn();
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { UserJSON } from '@clerk/backend';
|
2
2
|
|
3
|
+
import { UserModel } from '@/database/models/user';
|
3
4
|
import { serverDB } from '@/database/server';
|
4
|
-
import { UserModel } from '@/database/server/models/user';
|
5
5
|
import { pino } from '@/libs/logger';
|
6
6
|
import { KeyVaultsGateKeeper } from '@/server/modules/KeyVaultsEncrypt';
|
7
7
|
import { AgentService } from '@/server/services/agent';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { clientDB } from '@/database/client/db';
|
2
|
+
import { AiModelModel } from '@/database/models/aiModel';
|
2
3
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
3
|
-
import { AiModelModel } from '@/database/server/models/aiModel';
|
4
4
|
import { BaseClientService } from '@/services/baseClientService';
|
5
5
|
|
6
6
|
import { IAiModelService } from './type';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { clientDB } from '@/database/client/db';
|
2
|
+
import { AiProviderModel } from '@/database/models/aiProvider';
|
2
3
|
import { AiInfraRepos } from '@/database/repositories/aiInfra';
|
3
|
-
import { AiProviderModel } from '@/database/server/models/aiProvider';
|
4
4
|
import { BaseClientService } from '@/services/baseClientService';
|
5
5
|
|
6
6
|
import { IAiProviderService } from './type';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { clientDB } from '@/database/client/db';
|
2
|
-
import { FileModel } from '@/database/
|
2
|
+
import { FileModel } from '@/database/models/file';
|
3
3
|
import { BaseClientService } from '@/services/baseClientService';
|
4
4
|
import { clientS3Storage } from '@/services/file/ClientS3';
|
5
5
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { INBOX_SESSION_ID } from '@/const/session';
|
2
2
|
import { clientDB } from '@/database/client/db';
|
3
|
-
import { MessageModel } from '@/database/
|
3
|
+
import { MessageModel } from '@/database/models/message';
|
4
4
|
import { BaseClientService } from '@/services/baseClientService';
|
5
5
|
import { clientS3Storage } from '@/services/file/ClientS3';
|
6
6
|
import { ChatMessage } from '@/types/message';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { clientDB } from '@/database/client/db';
|
2
|
-
import { PluginModel } from '@/database/
|
2
|
+
import { PluginModel } from '@/database/models/plugin';
|
3
3
|
import { BaseClientService } from '@/services/baseClientService';
|
4
4
|
import { LobeTool } from '@/types/tool';
|
5
5
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { INBOX_SESSION_ID } from '@/const/session';
|
2
2
|
import { clientDB } from '@/database/client/db';
|
3
|
+
import { SessionModel } from '@/database/models/session';
|
4
|
+
import { SessionGroupModel } from '@/database/models/sessionGroup';
|
3
5
|
import { AgentItem } from '@/database/schemas';
|
4
|
-
import { SessionModel } from '@/database/server/models/session';
|
5
|
-
import { SessionGroupModel } from '@/database/server/models/sessionGroup';
|
6
6
|
import { BaseClientService } from '@/services/baseClientService';
|
7
7
|
import { LobeAgentConfig } from '@/types/agent';
|
8
8
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { INBOX_SESSION_ID } from '@/const/session';
|
2
2
|
import { clientDB } from '@/database/client/db';
|
3
|
-
import { MessageModel } from '@/database/
|
4
|
-
import { ThreadModel } from '@/database/
|
3
|
+
import { MessageModel } from '@/database/models/message';
|
4
|
+
import { ThreadModel } from '@/database/models/thread';
|
5
5
|
import { BaseClientService } from '@/services/baseClientService';
|
6
6
|
|
7
7
|
import { IThreadService } from './type';
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { INBOX_SESSION_ID } from '@/const/session';
|
2
2
|
import { clientDB } from '@/database/client/db';
|
3
|
-
import { TopicModel } from '@/database/
|
3
|
+
import { TopicModel } from '@/database/models/topic';
|
4
4
|
import { BaseClientService } from '@/services/baseClientService';
|
5
5
|
import { ChatTopic } from '@/types/topic';
|
6
6
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { clientDB } from '@/database/client/db';
|
2
|
+
import { MessageModel } from '@/database/models/message';
|
3
|
+
import { SessionModel } from '@/database/models/session';
|
4
|
+
import { UserModel } from '@/database/models/user';
|
2
5
|
import { users } from '@/database/schemas';
|
3
|
-
import { MessageModel } from '@/database/server/models/message';
|
4
|
-
import { SessionModel } from '@/database/server/models/session';
|
5
|
-
import { UserModel } from '@/database/server/models/user';
|
6
6
|
import { BaseClientService } from '@/services/baseClientService';
|
7
7
|
import { UserPreference } from '@/types/user';
|
8
8
|
import { AsyncLocalStorage } from '@/utils/localStorage';
|
File without changes
|