@lobehub/chat 1.77.2 → 1.77.4

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 (95) hide show
  1. package/CHANGELOG.md +58 -0
  2. package/changelog/v1.json +18 -0
  3. package/docs/self-hosting/environment-variables/model-provider.mdx +1 -1
  4. package/docs/self-hosting/environment-variables/model-provider.zh-CN.mdx +1 -1
  5. package/package.json +3 -3
  6. package/packages/electron-server-ipc/README.md +54 -0
  7. package/packages/electron-server-ipc/package.json +7 -0
  8. package/packages/electron-server-ipc/src/const.ts +5 -0
  9. package/packages/electron-server-ipc/src/index.ts +3 -0
  10. package/packages/electron-server-ipc/src/ipcClient.test.ts +211 -0
  11. package/packages/electron-server-ipc/src/ipcClient.ts +179 -0
  12. package/packages/electron-server-ipc/src/ipcServer.ts +126 -0
  13. package/packages/electron-server-ipc/src/types/event.ts +18 -0
  14. package/packages/electron-server-ipc/src/types/index.ts +1 -0
  15. package/scripts/migrateServerDB/index.ts +1 -1
  16. package/src/app/[variants]/(main)/repos/[id]/@menu/default.tsx +1 -1
  17. package/src/app/[variants]/(main)/repos/[id]/page.tsx +1 -1
  18. package/src/components/Branding/ProductLogo/index.tsx +3 -3
  19. package/src/database/core/db-adaptor.ts +6 -0
  20. package/src/database/{server/core → core}/dbForTest.ts +2 -2
  21. package/src/database/{server/core/db.ts → core/web-server.ts} +4 -5
  22. package/src/database/models/__tests__/_test_template.ts +4 -3
  23. package/src/database/models/__tests__/_util.ts +2 -2
  24. package/src/database/models/__tests__/agent.test.ts +1 -1
  25. package/src/database/models/__tests__/aiModel.test.ts +1 -1
  26. package/src/database/models/__tests__/aiProvider.test.ts +1 -1
  27. package/src/database/models/__tests__/asyncTask.test.ts +1 -1
  28. package/src/database/models/__tests__/chunk.test.ts +1 -1
  29. package/src/database/models/__tests__/file.test.ts +1 -1
  30. package/src/database/models/__tests__/knowledgeBase.test.ts +1 -1
  31. package/src/database/models/__tests__/message.test.ts +1 -1
  32. package/src/database/models/__tests__/plugin.test.ts +1 -1
  33. package/src/database/models/__tests__/session.test.ts +1 -2
  34. package/src/database/models/__tests__/sessionGroup.test.ts +1 -1
  35. package/src/database/models/__tests__/topic.test.ts +1 -1
  36. package/src/database/{server/models → models}/_template.ts +1 -1
  37. package/src/database/{server/models → models}/aiModel.ts +1 -1
  38. package/src/database/{server/models → models}/aiProvider.ts +1 -1
  39. package/src/database/{server/models → models}/asyncTask.ts +1 -1
  40. package/src/database/{server/models → models}/chunk.ts +1 -1
  41. package/src/database/{server/models → models}/embedding.ts +1 -1
  42. package/src/database/{server/models → models}/file.ts +1 -1
  43. package/src/database/{server/models → models}/knowledgeBase.ts +1 -1
  44. package/src/database/{server/models → models}/message.ts +1 -1
  45. package/src/database/{server/models → models}/plugin.ts +11 -4
  46. package/src/database/{server/models → models}/session.ts +1 -1
  47. package/src/database/{server/models → models}/sessionGroup.ts +1 -1
  48. package/src/database/{server/models → models}/thread.ts +1 -1
  49. package/src/database/{server/models → models}/topic.ts +1 -1
  50. package/src/database/{server/models → models}/user.ts +1 -1
  51. package/src/database/repositories/aiInfra/index.ts +2 -2
  52. package/src/database/repositories/dataImporter/deprecated/__tests__/index.test.ts +1 -1
  53. package/src/database/server/index.ts +1 -1
  54. package/src/database/server/models/__tests__/nextauth.test.ts +1 -1
  55. package/src/database/server/models/__tests__/user.test.ts +3 -3
  56. package/src/libs/next-auth/adapter/index.ts +1 -1
  57. package/src/libs/trpc/async/asyncAuth.ts +1 -1
  58. package/src/server/routers/async/file.ts +4 -4
  59. package/src/server/routers/async/ragEval.ts +3 -3
  60. package/src/server/routers/lambda/_template.ts +1 -1
  61. package/src/server/routers/lambda/agent.test.ts +10 -10
  62. package/src/server/routers/lambda/agent.ts +5 -5
  63. package/src/server/routers/lambda/aiModel.test.ts +4 -4
  64. package/src/server/routers/lambda/aiModel.ts +2 -2
  65. package/src/server/routers/lambda/aiProvider.test.ts +4 -4
  66. package/src/server/routers/lambda/aiProvider.ts +2 -2
  67. package/src/server/routers/lambda/chunk.ts +5 -5
  68. package/src/server/routers/lambda/file.ts +3 -3
  69. package/src/server/routers/lambda/knowledgeBase.ts +1 -1
  70. package/src/server/routers/lambda/message.ts +1 -1
  71. package/src/server/routers/lambda/plugin.ts +1 -1
  72. package/src/server/routers/lambda/ragEval.ts +1 -1
  73. package/src/server/routers/lambda/session.ts +2 -2
  74. package/src/server/routers/lambda/sessionGroup.ts +1 -1
  75. package/src/server/routers/lambda/thread.ts +2 -2
  76. package/src/server/routers/lambda/topic.ts +1 -1
  77. package/src/server/routers/lambda/user.test.ts +6 -6
  78. package/src/server/routers/lambda/user.ts +3 -3
  79. package/src/server/services/agent/index.test.ts +2 -2
  80. package/src/server/services/agent/index.ts +1 -1
  81. package/src/server/services/chunk/index.ts +2 -2
  82. package/src/server/services/nextAuthUser/index.test.ts +2 -2
  83. package/src/server/services/nextAuthUser/index.ts +1 -1
  84. package/src/server/services/user/index.test.ts +2 -2
  85. package/src/server/services/user/index.ts +1 -1
  86. package/src/services/aiModel/client.ts +1 -1
  87. package/src/services/aiProvider/client.ts +1 -1
  88. package/src/services/file/client.ts +1 -1
  89. package/src/services/message/client.ts +1 -1
  90. package/src/services/plugin/client.ts +1 -1
  91. package/src/services/session/client.ts +2 -2
  92. package/src/services/thread/client.ts +2 -2
  93. package/src/services/topic/client.ts +1 -1
  94. package/src/services/user/client.ts +3 -3
  95. /package/src/database/{server/models → models}/agent.ts +0 -0
@@ -4,14 +4,14 @@ import { eq } from 'drizzle-orm/expressions';
4
4
  import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
5
 
6
6
  import { INBOX_SESSION_ID } from '@/const/session';
7
- import { getTestDBInstance } from '@/database/server/core/dbForTest';
7
+ import { getTestDBInstance } from '@/database/core/dbForTest';
8
8
  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