@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.
Files changed (75) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/changelog/v1.json +18 -0
  3. package/package.json +1 -1
  4. package/src/app/[variants]/(main)/repos/[id]/@menu/default.tsx +1 -1
  5. package/src/app/[variants]/(main)/repos/[id]/page.tsx +1 -1
  6. package/src/database/models/__tests__/_test_template.ts +1 -1
  7. package/src/database/models/__tests__/agent.test.ts +1 -1
  8. package/src/database/models/__tests__/aiModel.test.ts +1 -1
  9. package/src/database/models/__tests__/aiProvider.test.ts +1 -1
  10. package/src/database/models/__tests__/asyncTask.test.ts +1 -1
  11. package/src/database/models/__tests__/chunk.test.ts +1 -1
  12. package/src/database/models/__tests__/file.test.ts +1 -1
  13. package/src/database/models/__tests__/knowledgeBase.test.ts +1 -1
  14. package/src/database/models/__tests__/message.test.ts +1 -1
  15. package/src/database/models/__tests__/plugin.test.ts +1 -1
  16. package/src/database/models/__tests__/session.test.ts +1 -1
  17. package/src/database/models/__tests__/sessionGroup.test.ts +1 -1
  18. package/src/database/models/__tests__/topic.test.ts +1 -1
  19. package/src/database/{server/models → models}/_template.ts +1 -1
  20. package/src/database/{server/models → models}/aiModel.ts +1 -1
  21. package/src/database/{server/models → models}/aiProvider.ts +10 -2
  22. package/src/database/{server/models → models}/asyncTask.ts +1 -1
  23. package/src/database/{server/models → models}/chunk.ts +1 -1
  24. package/src/database/{server/models → models}/embedding.ts +1 -1
  25. package/src/database/{server/models → models}/file.ts +1 -1
  26. package/src/database/{server/models → models}/knowledgeBase.ts +1 -1
  27. package/src/database/{server/models → models}/message.ts +1 -1
  28. package/src/database/{server/models → models}/plugin.ts +11 -4
  29. package/src/database/{server/models → models}/session.ts +1 -1
  30. package/src/database/{server/models → models}/sessionGroup.ts +1 -1
  31. package/src/database/{server/models → models}/thread.ts +1 -1
  32. package/src/database/{server/models → models}/topic.ts +1 -1
  33. package/src/database/{server/models → models}/user.ts +1 -1
  34. package/src/database/repositories/aiInfra/index.ts +2 -2
  35. package/src/database/server/models/__tests__/user.test.ts +2 -2
  36. package/src/libs/next-auth/adapter/index.ts +1 -1
  37. package/src/libs/trpc/async/asyncAuth.ts +1 -1
  38. package/src/server/routers/async/file.ts +4 -4
  39. package/src/server/routers/async/ragEval.ts +3 -3
  40. package/src/server/routers/lambda/_template.ts +1 -1
  41. package/src/server/routers/lambda/agent.test.ts +10 -10
  42. package/src/server/routers/lambda/agent.ts +5 -5
  43. package/src/server/routers/lambda/aiModel.test.ts +4 -4
  44. package/src/server/routers/lambda/aiModel.ts +2 -2
  45. package/src/server/routers/lambda/aiProvider.test.ts +4 -4
  46. package/src/server/routers/lambda/aiProvider.ts +2 -2
  47. package/src/server/routers/lambda/chunk.ts +5 -5
  48. package/src/server/routers/lambda/file.ts +3 -3
  49. package/src/server/routers/lambda/knowledgeBase.ts +1 -1
  50. package/src/server/routers/lambda/message.ts +1 -1
  51. package/src/server/routers/lambda/plugin.ts +1 -1
  52. package/src/server/routers/lambda/ragEval.ts +1 -1
  53. package/src/server/routers/lambda/session.ts +2 -2
  54. package/src/server/routers/lambda/sessionGroup.ts +1 -1
  55. package/src/server/routers/lambda/thread.ts +2 -2
  56. package/src/server/routers/lambda/topic.ts +1 -1
  57. package/src/server/routers/lambda/user.test.ts +6 -6
  58. package/src/server/routers/lambda/user.ts +3 -3
  59. package/src/server/services/agent/index.test.ts +2 -2
  60. package/src/server/services/agent/index.ts +1 -1
  61. package/src/server/services/chunk/index.ts +2 -2
  62. package/src/server/services/nextAuthUser/index.test.ts +2 -2
  63. package/src/server/services/nextAuthUser/index.ts +1 -1
  64. package/src/server/services/user/index.test.ts +2 -2
  65. package/src/server/services/user/index.ts +1 -1
  66. package/src/services/aiModel/client.ts +1 -1
  67. package/src/services/aiProvider/client.ts +1 -1
  68. package/src/services/file/client.ts +1 -1
  69. package/src/services/message/client.ts +1 -1
  70. package/src/services/plugin/client.ts +1 -1
  71. package/src/services/session/client.ts +2 -2
  72. package/src/services/thread/client.ts +2 -2
  73. package/src/services/topic/client.ts +1 -1
  74. package/src/services/user/client.ts +3 -3
  75. /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
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#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
+ [![](https://img.shields.io/badge/-BACK_TO_TOP-151515?style=flat-square)](#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.1",
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 '../../server/models/sessionGroup';
8
+ import { SessionGroupModel } from '../sessionGroup';
9
9
 
10
10
  let serverDB = await getTestDBInstance();
11
11
 
@@ -14,7 +14,7 @@ import {
14
14
  sessions,
15
15
  users,
16
16
  } from '../../schemas';
17
- import { AgentModel } from '../../server/models/agent';
17
+ import { AgentModel } from '../agent';
18
18
  import { getTestDB } from './_util';
19
19
 
20
20
  const serverDB: LobeChatDatabase = await getTestDB();
@@ -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 '../../server/models/aiModel';
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 '../../server/models/aiProvider';
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 '../../server/models/asyncTask';
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 '../../server/models/chunk';
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 '../../server/models/file';
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 '../../server/models/knowledgeBase';
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 '../../server/models/message';
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 '../../server/models/plugin';
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 '../../server/models/session';
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 '../../server/models/sessionGroup';
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 '../../server/models/topic';
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 '../../schemas';
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 '../../schemas';
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 '../../schemas';
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
- const keyVaults = !!result.keyVaults ? await decrypt(result.keyVaults) : {};
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 '../../schemas';
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;
@@ -13,7 +13,7 @@ import {
13
13
  fileChunks,
14
14
  files,
15
15
  unstructuredChunks,
16
- } from '../../schemas';
16
+ } from '../schemas';
17
17
 
18
18
  export class ChunkModel {
19
19
  private userId: string;
@@ -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 '../../schemas';
6
+ import { NewEmbeddingsItem, embeddings } from '../schemas';
7
7
 
8
8
  export class EmbeddingModel {
9
9
  private userId: string;
@@ -15,7 +15,7 @@ import {
15
15
  files,
16
16
  globalFiles,
17
17
  knowledgeBaseFiles,
18
- } from '../../schemas';
18
+ } from '../schemas';
19
19
 
20
20
  export class FileModel {
21
21
  private readonly 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 '../../schemas';
6
+ import { NewKnowledgeBase, knowledgeBaseFiles, knowledgeBases } from '../schemas';
7
7
 
8
8
  export class KnowledgeBaseModel {
9
9
  private userId: string;
@@ -40,7 +40,7 @@ import {
40
40
  messageTranslates,
41
41
  messages,
42
42
  messagesFiles,
43
- } from '../../schemas';
43
+ } from '../schemas';
44
44
 
45
45
  export interface QueryMessageParams {
46
46
  current?: number;
@@ -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 '../../schemas';
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(and(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)));
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(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)),
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(and(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)));
72
+ .where(
73
+ and(eq(userInstalledPlugins.identifier, id), eq(userInstalledPlugins.userId, this.userId)),
74
+ );
68
75
  };
69
76
  }
@@ -27,7 +27,7 @@ import {
27
27
  sessionGroups,
28
28
  sessions,
29
29
  topics,
30
- } from '../../schemas';
30
+ } from '../schemas';
31
31
 
32
32
  export class SessionModel {
33
33
  private userId: string;
@@ -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 '../../schemas';
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 '../../schemas';
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 '../../schemas';
15
+ import { TopicItem, messages, topics } from '../schemas';
16
16
 
17
17
  export interface CreateTopicParams {
18
18
  favorite?: boolean;
@@ -17,7 +17,7 @@ import {
17
17
  nextauthAccounts,
18
18
  userSettings,
19
19
  users,
20
- } from '../../schemas';
20
+ } from '../schemas';
21
21
 
22
22
  type DecryptUserKeyVaults = (
23
23
  encryptKeyVaultsStr: string | null,
@@ -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/server/models/aiModel';
6
- import { AiProviderModel } from '@/database/server/models/aiProvider';
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/server/models/user', () => ({
17
+ vi.mock('@/database/models/user', () => ({
18
18
  UserModel: {
19
19
  findById: vi.fn(),
20
20
  },
21
21
  }));
22
22
 
23
- vi.mock('@/database/server/models/agent', () => ({
23
+ vi.mock('@/database/models/agent', () => ({
24
24
  AgentModel: vi.fn(),
25
25
  }));
26
26
 
27
- vi.mock('@/database/server/models/session', () => ({
27
+ vi.mock('@/database/models/session', () => ({
28
28
  SessionModel: vi.fn(),
29
29
  }));
30
30
 
31
- vi.mock('@/database/server/models/file', () => ({
31
+ vi.mock('@/database/models/file', () => ({
32
32
  FileModel: vi.fn(),
33
33
  }));
34
34
 
35
- vi.mock('@/database/server/models/knowledgeBase', () => ({
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/server/models/aiModel');
10
- vi.mock('@/database/server/models/user');
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/server/models/aiProvider');
17
- vi.mock('@/database/server/models/user');
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/server/models/message');
25
- vi.mock('@/database/server/models/session');
26
- vi.mock('@/database/server/models/user');
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/server/models/session';
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/server/models/session', () => ({
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/server/models/session';
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/server/models/user');
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/server/models/user', () => {
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/server/models/file';
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/server/models/message';
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/server/models/plugin';
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/server/models/message';
4
- import { ThreadModel } from '@/database/server/models/thread';
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/server/models/topic';
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